tnx-shared 5.0.52 → 5.0.53
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/bundles/tnx-shared.umd.js +1 -1
- 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/form-schema.d.ts +1 -0
- package/classes/form-schema.d.ts.map +1 -1
- package/esm2015/classes/form-schema.js +1 -1
- package/esm2015/components/crud/crud-list/crud-list.component.js +2 -2
- package/fesm2015/tnx-shared.js +1 -1
- package/fesm2015/tnx-shared.js.map +1 -1
- package/package.json +2 -2
- package/tnx-shared.metadata.json +1 -1
|
@@ -1107,4 +1107,4 @@ export var ExportAllMode;
|
|
|
1107
1107
|
ExportAllMode[ExportAllMode["ManualGetData"] = 0] = "ManualGetData";
|
|
1108
1108
|
ExportAllMode[ExportAllMode["AutoGetData"] = 1] = "AutoGetData";
|
|
1109
1109
|
})(ExportAllMode || (ExportAllMode = {}));
|
|
1110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zY2hlbWEuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG54LXNoYXJlZC9zcmMvbGliLyIsInNvdXJjZXMiOlsiY2xhc3Nlcy9mb3JtLXNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBZ0JBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxlQUFlLEVBQUUsOEJBQThCLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR2xJLE1BQU0sT0FBTyxXQUFXO0lBTXBCLFlBQVksSUFBa0I7UUFEOUIsYUFBUSxHQUE4RixRQUFRLENBQUM7UUFFM0csS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6QjtJQUNMLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyxRQUFRO0lBR2pCLFlBQVksSUFBZTtRQUYzQixvR0FBb0c7UUFDcEcsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBRS9CLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDekI7SUFDTCxDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sZUFBZTtJQW1GeEIsWUFBWSxJQUFzQjtRQWpGbEMsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBR2pCLGlCQUFZLEdBQW1CLEVBQUUsQ0FBQztRQUNsQyxTQUFJLEdBQXdCLEVBQUUsQ0FBQztRQUMvQixrQkFBYSxHQUFtQixJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ3BELGdCQUFXLEdBQWlCLElBQUksV0FBVyxFQUFFLENBQUM7UUFDOUMsZUFBVSxHQUFnQixVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMseURBQXlEO1FBQ3ZHLDBCQUFxQixHQUFHLElB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QUFOLElBQVksYUFHWDtBQUhELFdBQVksYUFBYTtJQUNyQixtRUFBaUIsQ0FBQTtJQUNqQiwrREFBZSxDQUFBO0FBQ25CLENBQUMsRUFIVyxhQUFhLEtBQWIsYUFBYSxRQUd4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGVUcmFuc2Zvcm0sIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ3RuLWN1c3RvbS1wcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IEF1dG9Db21wbGV0ZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlLXBpY2tlci9hdXRvY29tcGxldGUtcGlja2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENydWRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9jcnVkL2NydWQtbGlzdC9jcnVkLWxpc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW50aXR5UGlja2VyRGF0YUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvZW50aXR5LXBpY2tlci9lbnRpdHktcGlja2VyLWRpYWxvZy9jb21wb25lbnRzL2VudGl0eS1waWNrZXItZGF0YS9lbnRpdHktcGlja2VyLWRhdGEuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW50aXR5UGlja2VyU2VsZWN0ZWRDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2VudGl0eS1waWNrZXIvZW50aXR5LXBpY2tlci1kaWFsb2cvY29tcG9uZW50cy9lbnRpdHktcGlja2VyLXNlbGVjdGVkL2VudGl0eS1waWNrZXItc2VsZWN0ZWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW50aXR5UGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9lbnRpdHktcGlja2VyL2VudGl0eS1waWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmlsZURhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9maWxlLWV4cGxvcmVyL3NlcnZpY2VzL2ZpbGUtZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmlsdGVyLCBTb3J0IH0gZnJvbSAnLi4vbW9kZWxzL2dyaWQtaW5mbyc7XHJcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYmFzZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW50aXR5TWV0YWRhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZW50aXR5LW1ldGFkYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYXN0ZXJEYXRhU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL21hc3Rlci1kYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb250cm9sVHJlZU5vZGUsIENydWRGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi8uLi9jb21wb25lbnRzL2NydWQvY3J1ZC1mb3JtL2NydWQtZm9ybS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJQ29ycmVjdG9yIH0gZnJvbSAnLi9iYXNlL2NvcnJlY3RvcnMnO1xyXG5pbXBvcnQgeyBJVmFsaWRhdG9yIH0gZnJvbSAnLi9iYXNlL3ZhbGlkYXRvcnMnO1xyXG5pbXBvcnQgeyBFbnVtQ29udHJvbFBpY2tlclR5cGUsIEVudW1Db3JlVmVyc2lvbiwgRW51bVdvcmtmbG93Q29yZUNvZGVTZXR0aW5nS2V5LCBGb3JtU3RhdGUsIFNoYXJlZEZvbGRlclR5cGUgfSBmcm9tICcuL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IFdvcmtmbG93U2V0dGluZywgV29ya2Zsb3dTZXR0aW5nTmV3IH0gZnJvbSAnLi93b3JrZmxvdy1zY2hlbWEnO1xyXG5cclxuZXhwb3J0IGNsYXNzIE1vZGVsU2NoZW1hIHtcclxuICAgIGZpZWxkOiBzdHJpbmc7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICBmdWxsTmFtZTogc3RyaW5nO1xyXG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcclxuICAgIGRhdGFUeXBlPzogJ2ludCcgfCAnZGVjaW1hbCcgfCAnZGF0ZScgfCAnZGF0ZXRpbWUnIHwgJ3N0cmluZycgfCAnYm9vbGVhbicgfCAnY3VycmVuY3knIHwgJ3RpbWVzcGFuJyA9ICdzdHJpbmcnO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IE1vZGVsU2NoZW1hKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ3J1ZEJhc2Uge1xyXG4gICAgLy8gQ29tcG9uZW50IHN1YnNjcmliZSAtIEtoaSBzdWJjcmliZSBt4buZdCBjb21wb25lbnQgdGjDrCBhZGQgdsOgbyBhcnJheSDEkeG7gyBraGkgZGVzdHJveSB0aMOsIHVuc3Vic2NyaWJlXHJcbiAgICBjb21wb25lbnRTdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENydWRCYXNlKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ3J1ZExpc3RTZXR0aW5nIHtcclxuICAgIHRpdGxlOiBzdHJpbmc7XHJcbiAgICBvYmplY3ROYW1lID0gJyc7XHJcbiAgICBlbnRpdHlLZXkgPSAnaWQnO1xyXG4gICAgc2V0dGluZ0tleT86IHN0cmluZztcclxuICAgIGVudGl0eU1ldGFkYXRhU2VydmljZT86IEVudGl0eU1ldGFkYXRhU2VydmljZTtcclxuICAgIG1vZGVsU2NoZW1hcz86IE1vZGVsU2NoZW1hW10gPSBbXTtcclxuICAgIGNvbHM/OiBDb2x1bW5TY2hlbWFCYXNlW10gPSBbXTtcclxuICAgIGNvbHVtblNldHRpbmc/OiBDb2x1bW5TZXR0aW5nID0gbmV3IENvbHVtblNldHRpbmcoKTtcclxuICAgIHBhZ2VTZXR0aW5nPzogUGFnZVNldHRpbmcgPSBuZXcgUGFnZVNldHRpbmcoKTtcclxuICAgIGhlaWdodFR5cGU/OiBIZWlnaHRUeXBlID0gSGVpZ2h0VHlwZS5kZWZhdWx0OyAvLyBDw7MgY3VzdG9tIGNoaeG7gXUgY2FvIGtow7RuZzogVGjGsOG7nW5nIHPhu60gZOG7pW5nIHRyb25nIGRpYWxvZ1xyXG4gICAgZml4SGVpZ2h0VHlwZUluRGlhbG9nPz0gdHJ1ZTtcclxuICAgIG11bHRpcGxlQ2hlY2tXaGVuQ2xpY2tSb3cgPSB0cnVlO1xyXG4gICAgY3VzdG9tV29ya2Zsb3dDb2RlVHJpbmhLeTogRW51bVdvcmtmbG93Q29yZUNvZGVTZXR0aW5nS2V5ID0gRW51bVdvcmtmbG93Q29yZUNvZGVTZXR0aW5nS2V5Lk1BQ19ESU5IO1xyXG4gICAgc3RpY2t5Q29sdW1uID0gZmFsc2U7XHJcbiAgICB0YWJsZU5hbWU/OiBzdHJpbmc7XHJcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlO1xyXG4gICAgcmVTZWxlY3RMYXN0SXRlbT89IHRydWU7IC8vIFNlbGVjdCBs4bqhaSBpdGVtIGN14buRaSBjw7luZyDEkcOjIGNo4buNbiBj4bunYSBncmlkXHJcbiAgICBmaXJlRXZlbnRXaGVuUmVTZWxlY3Q/PSBmYWxzZTtcclxuICAgIGFkdmFuY2VEYXRhPzogYW55ID0ge307XHJcbiAgICB3b3JrZmxvd1NldHRpbmc/OiBXb3JrZmxvd1NldHRpbmc7XHJcbiAgICB3b3JrZmxvd0NvbmZpZ0FkdmFuY2U/OiBXb3JrZmxvd0NvbmZpZ0FkdmFuY2U7XHJcbiAgICBkaXNwbGF5RmllbGQ6IHN0cmluZyB8ICgoaXRlbSkgPT4gc3RyaW5nKTsgLy8gdHLGsOG7nW5nIMSR4bqhaSBkaeG7h24gY2hvIGLhuqNuIGdoaSBsw6BtIHRpw6p1IMSR4buBIGhp4buDbiB0aOG7iyAocGjhu6VjIHbhu6UgY2hvIGPDoWMgZOG7i2NoIHbhu6Uga2jDoWMga2hhaSB0aMOhYylcclxuICAgIGhhc0N1c3RvbUhhbmRsZUNsaWNrUm93ID0gZmFsc2U7XHJcbiAgICBjaGVja0FsbG93VHJpbmhLeTogKHJvd0RhdGEpID0+IFByb21pc2U8Ym9vbGVhbj47XHJcbiAgICBjaGVja1Blcm1pc2lvblRyaW5oS3kgPSBmYWxzZTtcclxuXHJcbiAgICBzaG93RWRpdExpbmsgPSB0cnVlO1xyXG5cclxuICAgIGhpZGRlbkhlYWRlciA9IGZhbHNlO1xyXG4gICAgaGlkZGVuUGFnZVNldHRpbmcgPSBmYWxzZTtcclxuICAgIGhpZGRlblRleHRQYWdlID0gZmFsc2U7XHJcbiAgICBoaWRkZW5Ub29sYmFyID0gZmFsc2U7XHJcbiAgICBoaWRkZW5CdXR0b25zID0gZmFsc2U7XHJcbiAgICBoaWRkZW5BZHZhbmNlU2VhcmNoID0gZmFsc2U7XHJcbiAgICBoaWRkZW5TYXZlU2V0dGluZyA9IGZhbHNlO1xyXG4gICAgaGlkZGVuU2V0dGluZyA9IGZhbHNlO1xyXG4gICAgaGlkZGVuU2V0dGluZ1Blcm1pc3Npb24gPSBmYWxzZTtcclxuICAgIGhpZGRlblNldHRpbmdXb3JrZmxvdyA9IGZhbHNlO1xyXG4gICAgaGlkZGVuU2V0dGluZ1dvcmtmbG93TmV3ID0gdHJ1ZTtcclxuICAgIGhpZGRlblBhZ2VUaXRsZSA9IGZhbHNlO1xyXG5cclxuICAgIGhpZGRlbkNoZWNrYm94ID0gZmFsc2U7XHJcbiAgICBoaWRkZW5PcmRlckNvbHVtbiA9IGZhbHNlO1xyXG4gICAgaGlkZGVuV29ya2Zsb3dDb2x1bW4gPSBmYWxzZTtcclxuICAgIGhpZGRlbkZ1bmN0aW9uQ29sdW1uID0gZmFsc2U7XHJcbiAgICBoaWRkZW5SZWZyZXNoID0gZmFsc2U7XHJcbiAgICBoaWRkZW5GaWx0ZXJSb3cgPSBmYWxzZTtcclxuICAgIGhpZGRlblRyaW5oS3kgPSB0cnVlO1xyXG4gICAgdXNlQmFzZVRyaW5oS3kgPSB0cnVlO1xyXG4gICAgaGlkZGVuV29ya2Zsb3dDb3JlU3RhdHVzID0gdHJ1ZTtcclxuICAgIHJlcXVpcmVkVmFuQmFuRGlBZnRlclRyaW5oS3kgPSBmYWxzZTtcclxuXHJcbiAgICBncm91cENvbHVtbj86IENvbHVtblNjaGVtYUJhc2U7XHJcblxyXG4gICAgc2hvd0V4cG9ydEFsbCA9IGZhbHNlO1xyXG4gICAgZXhwb3J0QWxsTW9kZWw6IEV4cG9ydEFsbE1vZGUgPSBFeHBvcnRBbGxNb2RlLkF1dG9HZXREYXRhO1xyXG4gICAgZXhwb3J0SXRlbXNNb2RlOiBFeHBvcnRJdGVtc01vZGUgPSBFeHBvcnRJdGVtc01vZGUuRnJvbUh0bWw7XHJcblxyXG4gICAgZW5hYmxlVmVyc2lvbiA9IGZhbHNlO1xyXG4gICAgc2hvd1ZlcnNpb25CdXR0b24gPSBmYWxzZTtcclxuICAgIHZlcnNpb25Nb2RlbD86IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcclxuICAgIHNob3dIaXN0b3J5ID0gZmFsc2U7XHJcbiAgICBoaXN0b3J5PzogYW55O1xyXG5cclxuICAgIGNvbG9yRmlsdGVyRmllbGQgPSAnJztcclxuICAgIGNvbG9yRmlsdGVyVGFibGU/OiBSb3dDb2xvck9wdGlvbltdID0gW107XHJcblxyXG4gICAgZW50aXR5TWV0YWRhdGFTZXR0aW5nPzogQ3J1ZEZvcm1TZXR0aW5nID0gbmV3IENydWRGb3JtU2V0dGluZygpO1xyXG5cclxuICAgIGZpZWxkU2VhcmNoVGV4dD86IHN0cmluZ1tdID0gW107XHJcbiAgICBmaWx0ZXJUZW1wbGF0ZUFkdnM/OiBGaWx0ZXJbXTtcclxuXHJcbiAgICBmdW5jdGlvbjogQ3J1ZExpc3RDdXN0b21GdW5jdGlvbiA9IG5ldyBDcnVkTGlzdEN1c3RvbUZ1bmN0aW9uKCk7XHJcblxyXG4gICAgcG9wdXBIZWFkZXI/PSAnJztcclxuICAgIHBvcHVwU2l6ZT86IFBvcHVwU2l6ZSA9IG5ldyBQb3B1cFNpemUoKTtcclxuICAgIG1hc2tDbGFzcz86IHN0cmluZztcclxuXHJcbiAgICBnZXRDdXN0b21EYXRhVHJpbmhLeTogKHJvd0RhdGEpID0+IGFueSA9IChyb3dEYXRhKSA9PiAoe30pO1xyXG4gICAgZ2V0TGFiZWxCdXR0b25UcmluaEt5OiAocm93RGF0YSkgPT4gc3RyaW5nID0gKHJvd0RhdGEpID0+ICdUcsOsbmgga8O9JztcclxuICAgIGNoZWNrUmVhZHlUb1RyaW5oS3k6ICgpID0+IGJvb2xlYW4gPSAoKSA9PiB0cnVlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkTGlzdFNldHRpbmcpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBXb3JrZmxvd0NvbmZpZ0FkdmFuY2Uge1xyXG4gICAgZ2V0V29ya2Zsb3dTZXR0aW5nOiAocm93RGF0YSkgPT4gV29ya2Zsb3dTZXR0aW5nTmV3O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ3J1ZExpc3RDdXN0b21GdW5jdGlvbiB7XHJcbiAgICAvLyBDdXN0b21pemVcclxuICAgIGdldFNlYXJjaENvbnRyb2w/OiAoZmllbGQ6IHN0cmluZykgPT4gRm9ybVNjaGVtYUJhc2VbXSA9IChmaWVsZDogc3RyaW5nKSA9PiBudWxsO1xyXG4gICAgLy8gQXN5bmMgZnVuY3Rpb25cclxuICAgIG1vZGlmeUFkdmFuY2VTZWFjaE1vZGVsPzogKGRhdGE6IEFkdmFuY2VTZWFyY2hEYXRhLCBzZXR0aW5nOiBBZHZhbmNlU2VhcmNoU2V0dGluZykgPT4gUHJvbWlzZTx2b2lkPiA9IGFzeW5jIChkYXRhKSA9PiBudWxsO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENydWRMaXN0Q3VzdG9tRnVuY3Rpb24pIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQZXJzb25hbFNldHRpbmcge1xyXG4gICAgY29sdW1uU2V0dGluZz86IENvbHVtblNldHRpbmcgPSBuZXcgQ29sdW1uU2V0dGluZygpO1xyXG4gICAgcGFnZVNldHRpbmc/OiBQYWdlU2V0dGluZyA9IG5ldyBQYWdlU2V0dGluZygpO1xyXG4gICAgY29sb3JGaWx0ZXJGaWVsZCA9ICcnO1xyXG4gICAgY29sb3JGaWx0ZXJUYWJsZT86IFJvd0NvbG9yT3B0aW9uW10gPSBbXTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBQZXJzb25hbFNldHRpbmcpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDcnVkTGlzdERhdGEgZXh0ZW5kcyBDcnVkQmFzZSB7XHJcbiAgICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgICByZWFkeSA9IHRydWU7XHJcbiAgICBkYXRhU291cmNlPzogYW55W10gPSBbXTtcclxuICAgIHNlbGVjdGVkSXRlbXM/OiBhbnlbXSA9IFtdO1xyXG4gICAgc2VsZWN0ZWRJdGVtPzogYW55O1xyXG4gICAgc2VsZWN0ZWRJdGVtTGFzdD86IGFueTtcclxuICAgIHNlbGVjdGVkSWQ/OiBudW1iZXI7XHJcbiAgICB0b3RhbCA9IDA7XHJcbiAgICBpdGVtRGF0YT86IGFueTtcclxuICAgIGFkdmFuY2VEYXRhOiBhbnkgPSB7fTtcclxuXHJcbiAgICBleHBhbmRlZFJvd0tleXM/OiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkTGlzdERhdGEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEVudGl0eU1lZGF0YURhdGFTZXR0aW5nIHtcclxuICAgIGRhdGE/OiBhbnkgPSB7fTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBFbnRpdHlNZWRhdGFEYXRhU2V0dGluZykge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFJvd0NvbG9yT3B0aW9uIHtcclxuICAgIGZpbHRlclZhbHVlID0gJyc7XHJcbiAgICBjb21wYXJlVHlwZSA9ICcnO1xyXG4gICAgY29sb3IgPSAnJztcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBSb3dDb2xvck9wdGlvbikge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBhZ2VTZXR0aW5nIHtcclxuICAgIHBhZ2UgPSAxO1xyXG4gICAgcGFnZVNpemUgPSAxNTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBQYWdlU2V0dGluZykge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENvbHVtblNldHRpbmcge1xyXG4gICAgc29ydHM/OiBTb3J0W10gPSBbXTtcclxuICAgIHNvcnRGaWVsZD86IHN0cmluZztcclxuICAgIHNvcnREaXI/OiAtMSB8IDAgfCAxIHwgMiA9IC0xO1xyXG4gICAgZ3JvdXBGaWVsZCA9ICcnO1xyXG4gICAgZGV0YWlscz86IENvbHVtblNldHRpbmdEZXRhaWxbXSA9IFtdO1xyXG4gICAgY29sdW1uUmVvcmRlcj9cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDb2x1bW5TZXR0aW5nKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29sdW1uU2V0dGluZ0RldGFpbCB7XHJcbiAgICBvcmRlcj86IG51bWJlcjtcclxuICAgIGNvbHVtbkNvZGU/OiBzdHJpbmc7XHJcbiAgICBjb2x1bW5OYW1lPzogc3RyaW5nO1xyXG4gICAgdmlzaWJsZT86IGJvb2xlYW47XHJcbiAgICB0ZXh0QWxpZ24/OiBUZXh0QWxpZ247XHJcbiAgICB3aWR0aD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENydWRGb3JtRGF0YSBleHRlbmRzIENydWRCYXNlIHtcclxuICAgIGRhdGE/OiBhbnkgPSB7fTtcclxuICAgIHN1Ym1pdHRpbmc/PSBmYWxzZTtcclxuICAgIC8qKlxyXG4gICAgICogVHLhuqFuZyB0aMOhaSBj4bunYSBmb3JtIMSRYW5nIMSRxrDhu6NjIG3hu586IEzDoCBmb3JtIHRow6ptIG3hu5tpLCBoYXkgZm9ybSBz4butYSwgaGF5IGZvcm0geMOzYVxyXG4gICAgICovXHJcbiAgICBmb3JtU3RhdGU/OiBGb3JtU3RhdGUgPSBGb3JtU3RhdGUuQUREO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENydWRGb3JtRGF0YSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ3J1ZEZvcm1DdXN0b21GdW5jdGlvbiB7XHJcbiAgICAvLyBDdXN0b21pemVcclxuICAgIG1vZGlmeURhdGFBZnRlckdldENhY2hlPzogKGRhdGE6IGFueSkgPT4gdm9pZCA9IChkYXRhOiBhbnkpID0+IG51bGw7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ3J1ZExpc3RDdXN0b21GdW5jdGlvbikge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENydWRGb3JtU2V0dGluZyB7XHJcbiAgICBkaXNhYmxlQ2FjaGluZyA9IGZhbHNlO1xyXG4gICAgaGlkZGVuVHJpbmhLeSA9IHRydWU7XHJcbiAgICBzY2hlbWE/OiBGb3JtU2NoZW1hQmFzZVtdID0gW107XHJcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlO1xyXG4gICAgYnVpbGRJblNjaGVtYT86IEZvcm1Db250cm9sQmFzZVtdID0gW107XHJcbiAgICB1bmlxdWVGaWVsZD86IHN0cmluZ1tdIHwgc3RyaW5nW11bXSA9IFtdO1xyXG4gICAgZmllbGREcm9wZG93bj86IHsgW2tleTogc3RyaW5nXTogRHJvcGRvd25Db250cm9sU2NoZW1hIH0gPSB7fTtcclxuICAgIGZpZWxkTmVlZEdldFJlZj86IHsgW2tleTogc3RyaW5nXTogVGV4dENvbnRyb2xTY2hlbWEgfSA9IHt9O1xyXG4gICAgZGlzcGxheUZpZWxkPzogc3RyaW5nIHwgKChpdGVtKSA9PiBzdHJpbmcpO1xyXG4gICAgZmlyc3RGb2N1c0NvbnRyb2w/OiBzdHJpbmc7XHJcbiAgICBmaWx0ZXJDaGVja0V4aXN0QnlWZXJzaW9uPzogRmlsdGVyW107XHJcbiAgICBkZWZhdWx0RmlsdGVyQ2hlY2tFeGlzdD86IEZpbHRlcltdIHwgKCgpID0+IEZpbHRlcltdKTtcclxuICAgIGN1c3RvbVdvcmtmbG93Q29kZVRyaW5oS3k6IEVudW1Xb3JrZmxvd0NvcmVDb2RlU2V0dGluZ0tleSA9IEVudW1Xb3JrZmxvd0NvcmVDb2RlU2V0dGluZ0tleS5NQUNfRElOSDtcclxuICAgIGVudGl0eU1ldGFkYXRhRGF0YT86IENydWRGb3JtRGF0YTtcclxuICAgIGVudGl0eU1ldGFkYXRhU2V0dGluZz86IENydWRGb3JtU2V0dGluZztcclxuICAgIGZ1bmN0aW9uPzogQ3J1ZEZvcm1DdXN0b21GdW5jdGlvbiA9IG5ldyBDcnVkRm9ybUN1c3RvbUZ1bmN0aW9uKCk7XHJcbiAgICBnZXRDdXN0b21EYXRhVHJpbmhLeTogKHJvd0RhdGEpID0+IGFueSA9IChyb3dEYXRhKSA9PiAoe30pO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENydWRGb3JtU2V0dGluZykge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEFkdmFuY2VTZWFyY2hEYXRhIGV4dGVuZHMgQ3J1ZEZvcm1EYXRhIHtcclxuICAgIGluaXREYXRhPzogYW55ID0ge307XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQWR2YW5jZVNlYXJjaERhdGEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEFkdmFuY2VTZWFyY2hTZXR0aW5nIGV4dGVuZHMgQ3J1ZEZvcm1TZXR0aW5nIHtcclxuICAgIGZpZWxkS2V5ID0gJ19rJztcclxuICAgIGVudGl0eVBlcm1pc3Npb25TY2hlbWE/OiBGb3JtQ29udHJvbEJhc2VbXSA9IFtdO1xyXG4gICAga2VlcEluaXRTZWFyY2hEYXRhTm90TnVsbCA9IHRydWU7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQWR2YW5jZVNlYXJjaFNldHRpbmcpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNjaGVtYUJhc2Uge1xyXG4gICAgZmllbGQ/OiBzdHJpbmc7XHJcbiAgICB1bmlxdWVGaWVsZD86IHN0cmluZztcclxuICAgIHR5cGU/OiAnYm9vbGVhbicgfCAnaW50JyB8ICdkZWNpbWFsJyB8ICdkYXRldGltZScgfCAnc3RyaW5nJyA9ICdzdHJpbmcnO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBTY2hlbWFCYXNlKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRm9ybVNjaGVtYUJhc2UgZXh0ZW5kcyBTY2hlbWFCYXNlIHtcclxuICAgIGxhYmVsPzogc3RyaW5nO1xyXG4gICAgZnVsbExhYmVsPzogc3RyaW5nO1xyXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XHJcbiAgICBzaG93TGFiZWw/PSB0cnVlO1xyXG4gICAgZ1dpZHRoPz0gMTI7XHJcbiAgICBtZFdpZHRoPz0gNjtcclxuICAgIHdpZHRoPzogc3RyaW5nO1xyXG4gICAgY2xhc3M/PSAnJztcclxuICAgIHN0eWxlPzogYW55ID0ge307XHJcbiAgICBkaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgICBoaWRkZW4/PSBmYWxzZTtcclxuICAgIGhpZGRlbkNoZWNrPzogKHJvb3RNb2RlbDogYW55LCBjdXJyZW50Tm9kZTogQ29udHJvbFRyZWVOb2RlKSA9PiBib29sZWFuO1xyXG4gICAgaGlkZGVuT25WaWV3Pz0gZmFsc2U7XHJcbiAgICB2aXNpYmxlSW5MaXN0Pz0gdHJ1ZTtcclxuICAgIG9wZXJhdG9yPzogT3BlcmF0b3I7XHJcbiAgICBncm91cENvZGU/PSAnJztcclxuICAgIGRlZmF1bHRWYWx1ZT86IGFueTtcclxuICAgIGZpZWxkQWxpYXM/PSAnJztcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBGb3JtU2NoZW1hQmFzZSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29udGFpbmVyU2NoZW1hIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2Uge1xyXG4gICAgY29udHJvbHM6IEZvcm1TY2hlbWFCYXNlW107XHJcbiAgICBzaG93SW5Cb3g/PSB0cnVlO1xyXG4gICAgYm94U3R5bGU/OiBhbnk7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ29udGFpbmVyU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBGb3JtU2NoZW1hQmFzZVdpdGhTZXJ2aWNlIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2Uge1xyXG4gICAgLy8gVXJsIMSR4buDIGzhuqV5IGThu68gbGnhu4d1ICoqKiBLSMOUTkcgU+G7rCBE4bukTkcgVFJPTkcgQ8OBQyBDQVNFIFBI4buUIEJJ4bq+TiwgQ0jhu4ggU+G7rCBE4bukTkcgxJDhu5BJIFbhu5pJIEZPUk0gS0jhuqJPIFPDgVQgKioqXHJcbiAgICBzZXJ2aWNlVXJpPz0gJyc7XHJcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlIHwgTWFzdGVyRGF0YVNlcnZpY2U7XHJcbiAgICByZWZGaWVsZHM/OiBSZWZGaWVsZFtdID0gW107XHJcbiAgICBncm91cENvZGU/OiBzdHJpbmc7XHJcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcclxuICAgIGRpc3BsYXlGaWVsZD89ICd0ZW4nO1xyXG4gICAgZGF0YVNvdXJjZT86IGFueVtdID0gW107XHJcblxyXG4gICAgaXNTZXJ2ZXJMb2FkPz0gZmFsc2U7XHJcbiAgICBzZWFyY2hGaWVsZD86IHN0cmluZ1tdO1xyXG5cclxuICAgIGlzVHJlZT89IGZhbHNlO1xyXG4gICAgZmllbGRUcmVlPzogc3RyaW5nO1xyXG4gICAgdmFsdWVQYXJlbnRSb290PzogYW55ID0gbnVsbDsgLy8gR2nDoSB0cuG7iyB0csaw4budbmcgW2ZpZWxkVHJlZV0gY+G7p2EgaXRlbSB0cmVlIHJvb3RcclxuICAgIGZpZWxkUGFyZW50VHJlZUl0ZW0/PSAnaWQnOyAvLyBUcsaw4budbmcgeMOhYyDEkeG7i25oIGLhuqNuIGdoaSBsw6AgYuG6o24gZ2hpIGNoYSBj4bunYSBi4bqjbiBnaGkgY29uXHJcbiAgICBzZWxlY3RDaGlsZEl0ZW0/PSBmYWxzZTsgLy8gQ8OzIHNlbGVjdCBi4bqjbiBnaGkgY29uIG7hur91IGNo4buNbiBi4bqjbiBnaGkgY2hhXHJcblxyXG4gICAgcGx1c1VybD86IHN0cmluZztcclxuICAgIHNvcnRzPzogU29ydFtdID0gW107XHJcbiAgICBzb3J0RmllbGQ/PSAnJztcclxuICAgIHNvcnREaXI/OiAxIHwgLTEgPSAxO1xyXG4gICAgZmllbGRQbHVzPz0gJyc7IC8vIERhbmggc8OhY2ggbmjhu69uZyB0csaw4budbmcgYuG7lSBzdW5nIGPhuqduIGzhuqV5IHRow6ptIG5nb8OgaSBpZCwgdGVuOyBWw60gZOG7pSAsbWFcclxuICAgIGRlZmF1bHRGaWx0ZXJzPzogRmlsdGVyW10gfCBGdW5jdGlvbiB8IFByb21pc2U8RmlsdGVyW10+OyAvLyB0dW5ndHMgdGjDqm0ga2nhu4N1IGThu68gbGnhu4d1IGRlZmF1bHRGaWx0ZXJzIGzDoCBwcm9taXNlXHJcbiAgICBhZnRlckdldERhdGE/OiBGdW5jdGlvbjtcclxuXHJcbiAgICBmdW5jU2V0RGVmYXVsdFZhbHVlPzogRnVuY3Rpb247XHJcblxyXG4gICAgZmllbGRWYWx1ZVBhcmVudD89ICd2YWx1ZSc7IC8vIFRyxrDhu51uZyBz4butIGThu6VuZyDEkeG7gyBs4bqleSBk4buvIGxp4buHdSBsw6BtIGtow7NhIHThu6sgYuG6o25nIGNoYSBj4bunYSBpdGVtIGRyb3AgZG93biDEkcaw4bujYyBjaOG7jW5cclxuXHJcbiAgICBjYWxsYmFja0RhdGFGaW5pc2g/OiAoZXZ0OiBFdmVudERhdGEpID0+IHZvaWQ7XHJcbiAgICBtb2RpZnlGaWx0ZXI/OiBGdW5jdGlvbjtcclxuICAgIGZ1bmNHZXRMYWJlbD86IChpdGVtKSA9PiBzdHJpbmc7XHJcbiAgICBmdW5jQ29tcGFyZT86IChpdGVtOiBhbnksIHZhbHVlKSA9PiBib29sZWFuID0gKGl0ZW0sIHZhbHVlKSA9PiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gPT0gdmFsdWU7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRm9ybVNjaGVtYUJhc2VXaXRoU2VydmljZSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTGFiZWxTY2hlbWEgZXh0ZW5kcyBGb3JtU2NoZW1hQmFzZSB7XHJcbiAgICBmb3I/PSAnJztcclxuICAgIGlzSHRtbD89IGZhbHNlO1xyXG4gICAgbWRXaWR0aD89IDEyO1xyXG4gICAgaW5kZXhMYWJlbD86IG51bWJlcjtcclxuICAgIHRleHQ/PSAnJztcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogTGFiZWxTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRpdGxlU2NoZW1hIGV4dGVuZHMgTGFiZWxTY2hlbWEge1xyXG4gICAgY2xhc3M/PSAndGl0bGUtZ3JvdXAgdGV4dC1ib2xkJztcclxuICAgIG1kV2lkdGg/PSAxMjtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUaXRsZVNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRm9ybUNvbnRyb2xCYXNlIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2Uge1xyXG4gICAgX2NvbXBvbmVudD86IGFueTsgLy8gQ29tcG9uZW50IGPhu6dhIHNjaGVtYSBraGkga2jhu59pIHThuqFvXHJcbiAgICB1bmlxdWVGaWVsZD86IHN0cmluZzsgLy8gU+G7rSBk4bulbmcgdHJvbmcgdGFibGUgc2NoZW1hXHJcbiAgICBhdXRvZm9jdXM/PSBmYWxzZTtcclxuICAgIHZhbGlkYXRvcnM/OiBJVmFsaWRhdG9yW10gPSBbXTtcclxuICAgIGNvcnJlY3RvcnM/OiBJQ29ycmVjdG9yW10gPSBbXTtcclxuICAgIHJlcXVpcmVkPz0gZmFsc2U7XHJcbiAgICBlbmFibGVDYWNoaW5nPz0gZmFsc2U7XHJcbiAgICBvbkNoYW5nZWQ/OiBGdW5jdGlvbjtcclxuICAgIHRyaWdnZXJMb2FkQ2hpbGQ/OiBGdW5jdGlvbjtcclxuICAgIGhhc09wZXJhdG9yQ2FuQm8/PSBmYWxzZTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBGb3JtQ29udHJvbEJhc2UpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEZvcm1Db250cm9sQmFzZVdpdGhTZXJ2aWNlIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIC8qKiBDb3B5IHThu6sgRm9ybVNjaGVtYUJhc2VXaXRoU2VydmljZSAqL1xyXG4gICAgLy8gVXJsIMSR4buDIGzhuqV5IGThu68gbGnhu4d1ICoqKiBLSMOUTkcgU+G7rCBE4bukTkcgVFJPTkcgQ8OBQyBDQVNFIFBI4buUIEJJ4bq+TiwgQ0jhu4ggU+G7rCBE4bukTkcgxJDhu5BJIFbhu5pJIEZPUk0gS0jhuqJPIFPDgVQgKioqXHJcbiAgICBzZXJ2aWNlVXJpPz0gJyc7XHJcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlIHwgTWFzdGVyRGF0YVNlcnZpY2U7XHJcbiAgICByZWZGaWVsZHM/OiBSZWZGaWVsZFtdID0gW107XHJcbiAgICBncm91cENvZGU/OiBzdHJpbmc7XHJcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcclxuICAgIGRpc3BsYXlGaWVsZD89ICd0ZW4nO1xyXG5cclxuICAgIGlzU2VydmVyTG9hZD89IGZhbHNlO1xyXG4gICAgc2VhcmNoRmllbGQ/OiBzdHJpbmdbXTtcclxuXHJcbiAgICBpc1RyZWU/PSBmYWxzZTtcclxuICAgIGZpZWxkVHJlZT86IHN0cmluZztcclxuICAgIHZhbHVlUGFyZW50Um9vdD86IGFueSA9IG51bGw7IC8vIEdpw6EgdHLhu4sgdHLGsOG7nW5nIFtmaWVsZFRyZWVdIGPhu6dhIGl0ZW0gdHJlZSByb290XHJcbiAgICBmaWVsZFBhcmVudFRyZWVJdGVtPz0gJ2lkJzsgLy8gVHLGsOG7nW5nIHjDoWMgxJHhu4tuaCBi4bqjbiBnaGkgbMOgIGLhuqNuIGdoaSBjaGEgY+G7p2EgYuG6o24gZ2hpIGNvblxyXG4gICAgc2VsZWN0Q2hpbGRJdGVtPz0gZmFsc2U7IC8vIEPDsyBzZWxlY3QgYuG6o24gZ2hpIGNvbiBu4bq/dSBjaOG7jW4gYuG6o24gZ2hpIGNoYVxyXG5cclxuICAgIHBsdXNVcmw/OiBzdHJpbmc7XHJcbiAgICBzb3J0cz86IFNvcnRbXSA9IFtdO1xyXG4gICAgc29ydEZpZWxkPz0gJyc7XHJcbiAgICBzb3J0RGlyPzogMSB8IC0xID0gMTtcclxuICAgIGZpZWxkUGx1cz89ICcnOyAvLyBEYW5oIHPDoWNoIG5o4buvbmcgdHLGsOG7nW5nIGLhu5Ugc3VuZyBj4bqnbiBs4bqleSB0aMOqbSBuZ2/DoGkgaWQsIHRlbjsgVsOtIGThu6UgLG1hXHJcbiAgICBkZWZhdWx0RmlsdGVycz86IEZpbHRlcltdIHwgRnVuY3Rpb24gfCBQcm9taXNlPEZpbHRlcltdPjsgLy8gdHVuZ3RzIHRow6ptIGtp4buDdSBk4buvIGxp4buHdSBkZWZhdWx0RmlsdGVycyBsw6AgcHJvbWlzZVxyXG4gICAgYmluZGluZ0ZpbHRlcnM/OiBGaWx0ZXJbXSB8IEZ1bmN0aW9uIHwgUHJvbWlzZTxGaWx0ZXJbXT47IC8vIHR1bmd0cyB0aMOqbSBraeG7g3UgZOG7ryBsaeG7h3UgZGVmYXVsdEZpbHRlcnMgbMOgIHByb21pc2VcclxuICAgIGFmdGVyR2V0RGF0YT86IEZ1bmN0aW9uO1xyXG5cclxuICAgIGZ1bmNTZXREZWZhdWx0VmFsdWU/OiBGdW5jdGlvbjtcclxuXHJcbiAgICBwYXJlbnRGaWVsZD86IHN0cmluZzsgLy8gQ29sdW1uIHTGsMahbmcg4bupbmcgdHJvbmcgdGFibGUgc3FsIHNlcnZlci5cclxuICAgIGZpZWxkVmFsdWVQYXJlbnQ/PSAndmFsdWUnOyAvLyBUcsaw4budbmcgc+G7rSBk4bulbmcgxJHhu4MgbOG6pXkgZOG7ryBsaeG7h3UgbMOgbSBraMOzYSB04burIGLhuqNuZyBjaGEgY+G7p2EgaXRlbSBkcm9wIGRvd24gxJHGsOG7o2MgY2jhu41uXHJcblxyXG4gICAgY2FsbGJhY2tEYXRhRmluaXNoPzogKGV2dDogRXZlbnREYXRhKSA9PiB2b2lkO1xyXG4gICAgZmlyZUNhbGxCYWNrSW5zaWRlPz0gdHJ1ZTtcclxuICAgIG1vZGlmeUZpbHRlcj86IEZ1bmN0aW9uO1xyXG4gICAgY29yZVZlcnNpb24/PSBFbnVtQ29yZVZlcnNpb24uVjU7XHJcblxyXG4gICAgZnVuY0dldExhYmVsPzogKGl0ZW0pID0+IHN0cmluZztcclxuICAgIGZ1bmNDb21wYXJlPzogKGl0ZW06IGFueSwgdmFsdWUpID0+IGJvb2xlYW4gPSAoaXRlbSwgdmFsdWUpID0+IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA9PSB2YWx1ZTtcclxuICAgIC8qKiBFbmQgY29weSB04burIEZvcm1TY2hlbWFCYXNlV2l0aFNlcnZpY2UgKi9cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRm9ybUNvbnRyb2xCYXNlV2l0aFNlcnZpY2UpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRleHRDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIHNlbGVjdEFsbFRleHQ/PSBmYWxzZTsgLy8gQ2jhu41uIHThuqV0IGPhuqMgdGV4dCBraGkgZm9jdXNcclxuXHJcbiAgICBwbGFjZWhvbGRlcj89ICcnO1xyXG4gICAgZGF0YUZvcm1hdD86ICd0ZXh0JyB8ICdwYXNzd29yZCcgfCAnbnVtYmVyJyB8ICdlbWFpbCcgfCAncGhvbmUnIHwgJ2ZheCcgfCAnbW9uZXknIHwgJ21vbmV5aW50JyB8ICdhbW91bnQnID0gJ3RleHQnO1xyXG4gICAgbWF4TGVuZ3RoPzogbnVtYmVyO1xyXG4gICAgbWluPz0gMDtcclxuICAgIG1heD89IDk5OTk5OTk5O1xyXG5cclxuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2UgfCBNYXN0ZXJEYXRhU2VydmljZTtcclxuICAgIGdyb3VwQ29kZT86IHN0cmluZztcclxuICAgIHZhbHVlRmllbGQ/PSAnaWQnO1xyXG4gICAgZGlzcGxheUZpZWxkPz0gJ3Rlbic7XHJcblxyXG4gICAgcGx1c1VybD86IHN0cmluZztcclxuICAgIHNvcnRzPzogU29ydFtdID0gW107XHJcbiAgICBzb3J0RmllbGQ/PSAnJztcclxuICAgIHNvcnREaXI/OiAxIHwgLTEgPSAxO1xyXG4gICAgZmllbGRQbHVzPz0gJyc7IC8vIERhbmggc8OhY2ggbmjhu69uZyB0csaw4budbmcgYuG7lSBzdW5nIGPhuqduIGzhuqV5IHRow6ptIG5nb8OgaSBpZCwgdGVuOyBWw60gZOG7pSAsbWFcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVGV4dENvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRleHRDb250cm9sU2NoZW1hV2l0aFNlcnZpY2UgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2VXaXRoU2VydmljZSB7XHJcbiAgICBwbGFjZWhvbGRlcj89ICcnO1xyXG4gICAgZGF0YUZvcm1hdD86ICd0ZXh0JyB8ICdudW1iZXInIHwgJ2VtYWlsJyB8ICdwaG9uZScgfCAnZmF4JyB8ICdtb25leScgfCAnbW9uZXlpbnQnIHwgJ2Ftb3VudCcgPSAndGV4dCc7XHJcbiAgICBtYXhMZW5ndGg/OiBudW1iZXI7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFRleHRDb250cm9sU2NoZW1hV2l0aFNlcnZpY2UpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE1hc2tDb250cm9sU2NoZW1hIGV4dGVuZHMgVGV4dENvbnRyb2xTY2hlbWEge1xyXG4gICAgbWFza1R5cGU/OiAnZGVjaW1hbCcgfCAnaW50JyA9ICdpbnQnO1xyXG4gICAgbWluPz0gMDtcclxuICAgIG1heD89IDk5OTk5OTk5OTk7XHJcbiAgICBwcmVmaXg/PSAnJztcclxuICAgIHN1ZmZpeD89ICcnO1xyXG4gICAgZGVjaW1hbFBsYWNlcz89IDI7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogTWFza0NvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE51bWJlclJhbmdlQ29udHJvbFNjaGVtYSBleHRlbmRzIFRleHRDb250cm9sU2NoZW1hIHtcclxuICAgIG1hc2tUeXBlPzogJ2RlY2ltYWwnIHwgJ2ludCc7XHJcbiAgICBtaW4/PSAwO1xyXG4gICAgbWF4Pz0gOTk5OTk5OTk5OTtcclxuICAgIHByZWZpeD89ICcnO1xyXG4gICAgc3VmZml4Pz0gJyc7XHJcbiAgICBkZWNpbWFsUGxhY2VzPz0gMjtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBOdW1iZXJSYW5nZUNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERhdGVUaW1lQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XHJcbiAgICBhcHBlbmRUbz89ICdib2R5JztcclxuICAgIHBhbmVsQ2xhc3M/PSAnJztcclxuICAgIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gICAgc2hvd1RpbWU/PSBmYWxzZTtcclxuICAgIHNob3dJY29uPz0gdHJ1ZTtcclxuICAgIGZvcm1hdD86ICdub3JtYWwnIHwgJ2Zyb21Ob3cnID0gJ2Zyb21Ob3cnO1xyXG4gICAgc2hvd09uRm9jdXM/PSB0cnVlO1xyXG4gICAgbWluRGF0ZT86IERhdGUgPSBudWxsO1xyXG4gICAgbWF4RGF0ZT86IERhdGUgPSBudWxsO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBEYXRlVGltZUNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLnBsYWNlaG9sZGVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGxhY2Vob2xkZXIgPSB0aGlzLnNob3dUaW1lID8gJ2RkL01NL3l5eXkgaGg6bW0nIDogJ2RkL01NL3l5eXknO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERhdGVUaW1lUmFuZ2VDb250cm9sU2NoZW1hIGV4dGVuZHMgRGF0ZVRpbWVDb250cm9sU2NoZW1hIHtcclxuICAgIHNob3dJY29uPz0gZmFsc2U7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRGF0ZVRpbWVDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBFbnRpdHlQaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlV2l0aFNlcnZpY2Uge1xyXG5cclxuICAgIC8vICNQcm9wZXJ0eSBvdmVycmlkZVxyXG4gICAgYmFzZVNlcnZpY2U/OiBCYXNlU2VydmljZTtcclxuICAgIC8vICNFbmQgcHJvcGVydHkgb3ZlcnJpZGVcclxuXHJcbiAgICByZXR1cm5UeXBlPzogJ3ZhbHVlJyB8ICdvYmplY3QnID0gJ3ZhbHVlJztcclxuXHJcbiAgICBtdWx0aXBsZT89IHRydWU7XHJcbiAgICBsaW1pdD89IDEwMDA7XHJcbiAgICB0aXRsZT89ICcgJztcclxuICAgIGNvbHVtbnM/OiBFbnRpdHlQaWNrZXJDb2x1bW5bXTtcclxuICAgIGZpZWxkU2VhcmNoVGV4dD86IHN0cmluZ1tdID0gW107XHJcbiAgICBkYXRhSW5pdD86IGFueSA9IHt9O1xyXG4gICAgYWR2YW5jZVNlYXJjaE1vZGVsPzogYW55ID0ge307XHJcbiAgICBvblNlYXJjaEZvcm1Jbml0aWFsaXplZD86IEZ1bmN0aW9uO1xyXG4gICAgb25Gb3JtRXZlbnQ/OiBGdW5jdGlvbjtcclxuICAgIG9uU2VsZWN0RW50aXR5PzogRnVuY3Rpb247IC8vIG7hur91IGZ1bmN0aW9uIGtow6FjIG51bGwgdsOgIHJldHVybiB0cnVlIHPhur0gY2hvIHBow6lwIG3hu58gZGlhbG9nXHJcbiAgICBhZnRlckNvbnRlbnRMZWZ0SW5pdD86IChjcnVkTGlzdDogQ3J1ZExpc3RDb21wb25lbnQpID0+IHZvaWQ7IC8vIFNhdSBraGkgY8OhYyB0ZW1wbGF0ZSBjb250ZW50IGluaXRcclxuICAgIGFmdGVyQ29udGVudFJpZ2h0SW5pdD86IChjcnVkTGlzdDogQ3J1ZExpc3RDb21wb25lbnQpID0+IHZvaWQ7IC8vIFNhdSBraGkgY8OhYyB0ZW1wbGF0ZSBjb250ZW50IGluaXRcclxuICAgIGFmdGVyR2V0RGF0YT86IChzb3VyY2VzOiBhbnlbXSwgZWxlbWVudDogRW50aXR5UGlja2VyQ29tcG9uZW50KSA9PiB2b2lkO1xyXG4gICAgYWZ0ZXJHZXREYXRhVW5QaWNrZWQ/OiAoc291cmNlczogYW55W10sIGVsZW1lbnQ6IEVudGl0eVBpY2tlckRhdGFDb21wb25lbnQpID0+IHZvaWQ7XHJcbiAgICBhZnRlckdldERhdGFQaWNrZWQ/OiAoc291cmNlczogYW55W10sIGVsZW1lbnQ6IEVudGl0eVBpY2tlclNlbGVjdGVkQ29tcG9uZW50KSA9PiB2b2lkO1xyXG5cclxuICAgIC8vIEPDsyBz4butIGThu6VuZyBwbHVzVXJsIOG7nyBtw6BuIGjDrG5oIGNow61uaCBFbnRpdHlQaWNrZXIgaGF5IGtow7RuZy5cclxuICAgIHVzZURlZmF1bHRQbHVzbFVybEluTGlzdD89IGZhbHNlO1xyXG5cclxuICAgIC8vIEPDsyBz4butIGThu6VuZyBkZWZhdWx0RmlsdGVyIGtoaSB0w6xtIGtp4bq/bSBkYW5oIHPDoWNoIOG7nyBtw6BuIGjDrG5oIGNow61uaCBFbnRpdHlQaWNrZXIuXHJcbiAgICB1c2VEZWZhdWx0RmlsdGVySW5MaXN0Pz0gZmFsc2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEVudGl0eVBpY2tlckNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEF1dG9Db21wbGV0ZVBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBFbnRpdHlQaWNrZXJDb250cm9sU2NoZW1hIHtcclxuICAgIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gICAgZGF0YVR5cGU/OiBFbnVtQ29udHJvbFBpY2tlclR5cGUgPSBFbnVtQ29udHJvbFBpY2tlclR5cGUuVVNFUjtcclxuICAgIGFwcGVuZFRvPz0gJ2JvZHknO1xyXG4gICAgbW9kaWZ5SW5pdFNlYXJjaERhdGE/OiBGdW5jdGlvbjsgLy8gU+G7rSBk4bulbmcgxJHhu4MgbW9kaWZ5IGRhdGEgY+G7p2EgcGjhuqduIHNlYXJjaCwgdGjGsOG7nW5nIMSR4buDIHNldCBpbml0IGRhdGEgZHluYW1pYyB0aGVvIG5odSBj4bqndVxyXG4gICAgY2FsbEJhY2s/OiB7IFtrZXk6IHN0cmluZ106IEZ1bmN0aW9uIH07XHJcbiAgICBvblJlYWR5PzogKGV2dDogRXZlbnREYXRhKSA9PiB2b2lkO1xyXG4gICAgbW9kaWZ5Q29udHJvbD86IEZ1bmN0aW9uOyAvLyBT4butIGThu6VuZyDEkeG7gyBtb2RpZnkgc2NoZW1hIGJhc2VcclxuICAgIG5lZWRDbG9uZT89IGZhbHNlOyAvLyBT4butIGThu6VuZyB0cm9uZyB0YWJsZSBzY2hlbWEsIGtoaSBkYXRhc291cmNlIGPhu6dhIG3hu5l0IGPhu5l0IHRyw6puIG3hu5dpIGTDsm5nIGzDoCBraMOhYyBuaGF1IGPhuqduIHNldCBuZWVkQ2xvbmUgPSB0cnVlXFxcclxuICAgIGFmdGVyR2V0RGF0YURyb3Bkb3duPzogKHNvdXJjZXM6IGFueVtdLCBlbGVtZW50OiBBdXRvQ29tcGxldGVQaWNrZXJDb21wb25lbnQpID0+IHZvaWQ7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQXV0b0NvbXBsZXRlUGlja2VyQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgV3JhcFBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBBdXRvQ29tcGxldGVQaWNrZXJDb250cm9sU2NoZW1hIHtcclxuICAgIGRhdGFUeXBlPzogRW51bUNvbnRyb2xQaWNrZXJUeXBlID0gRW51bUNvbnRyb2xQaWNrZXJUeXBlLlVTRVI7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogV3JhcFBpY2tlckNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEN1c3RvbUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ3VzdG9tQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29sb3JQaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIGVuYWJsZUNhY2hpbmc/PSB0cnVlO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENvbG9yUGlja2VyQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIFNwYW5Db250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIHNvdXJjZUZpZWxkPzogc3RyaW5nO1xyXG4gICAgaXNodG1sPz0gZmFsc2U7XHJcbiAgICBlZGl0YWJsZT89IGZhbHNlO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFNwYW5Db250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb2xvckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgc291cmNlRmllbGQ/OiBzdHJpbmc7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ29sb3JDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBLZXlWYWx1ZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEtleVZhbHVlQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRmlsZU1hbmFnZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIG1kV2lkdGg/PSAxMjtcclxuICAgIGFjY2VwdD86IHN0cmluZztcclxuICAgIG1heEZpbGVTaXplPz0gMTAwMDAwMDAwO1xyXG4gICAgaW52YWxpZEZpbGVTaXplTWVzc2FnZVN1bW1hcnk/PSAnezB9OiBRdcOhIGR1bmcgbMaw4bujbmcgZmlsZSBjaG8gcGjDqXAsICc7XHJcbiAgICBpbnZhbGlkRmlsZVNpemVNZXNzYWdlRGV0YWlsPz0gJ2R1bmcgbMaw4bujbmcgdOG7kWkgxJFhIGzDoCB7MH0uJztcclxuICAgIGludmFsaWRGaWxlVHlwZU1lc3NhZ2VTdW1tYXJ5Pz0gJ3swfTogS2jDtG5nIMSRw7puZyDEkeG7i25oIGThuqFuZyBmaWxlLCAnO1xyXG4gICAgaW52YWxpZEZpbGVUeXBlTWVzc2FnZURldGFpbD89ICfEkeG7i25oIGThuqFuZyBmaWxlIGNobyBwaMOpcDogezB9Lic7XHJcbiAgICBpbnZhbGlkRmlsZUxpbWl0TWVzc2FnZVN1bW1hcnk/PSAnUXXDoSBz4buRIGzGsOG7o25nIGZpbGUgY2hvIHBow6lwLCAnO1xyXG4gICAgaW52YWxpZEZpbGVMaW1pdE1lc3NhZ2VEZXRhaWw/PSAndOG7kWkgxJFhIHswfSBmaWxlLic7XHJcbiAgICBtb2RlPzogRmlsZU1hbmFnZXJNb2RlIHwgRmlsZVVwbG9hZE1vZGUgPSBGaWxlTWFuYWdlck1vZGUubXVsdGlwbGU7XHJcbiAgICBsYXlvdXQ/OiBFbnVtRmlsZUxheW91dCA9IEVudW1GaWxlTGF5b3V0LkxJU1Q7XHJcbiAgICByZWFkb25seT89IGZhbHNlO1xyXG5cclxuICAgIC8vIFNlcnZpY2UgZMO5bmcgxJHhu4MgbOG6pXkgZGF0YXNvdXJjZSBj4bunYSBuaGnhu4F1IGNvbnRyb2wgbeG7mXQgbOG6p24uXHJcbiAgICBmaWxlRGF0YVNlcnZpY2U/OiBGaWxlRGF0YVNlcnZpY2U7XHJcblxyXG4gICAgLy8gQuG7mSAzIGtleSDEkeG7gyBs4bqleSB0aMawIG3hu6VjIGfhu5FjLlxyXG4gICAgc2VydmljZUNvZGU/OiBzdHJpbmc7XHJcbiAgICBlbnRpdHk/OiBzdHJpbmc7XHJcbiAgICBlbnRpdHlLZXk/OiBzdHJpbmc7XHJcblxyXG4gICAgLy8gVMOqbiB0aMawIG3hu6VjIGfhu5FjIGtoaSBoaeG7g24gdGjhu4sgdHLDqm4gYnJlYWRjcnVtYnMuXHJcbiAgICByb290Rm9sZGVyTmFtZT86IHN0cmluZztcclxuXHJcbiAgICAvLyBUcsaw4budbmcgaOG7o3Ag4bufIHRyb25nIGZvcm0sIGTDuW5nIHRyxrDhu51uZyBuw6B5IMSR4buDIGzhuqV5XHJcbiAgICAvLyBlbnRpdHlLZXkgdOG7qyBtb2RlbC5kYXRhIHRoYXkgdsOsIHRydXnhu4FuIHbDoG8gZW50aXR5S2V5XHJcbiAgICBlbnRpdHlLZXlGaWVsZD89ICdpZCc7XHJcbiAgICBtdWx0aXBsZT89IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBGaWxlTWFuYWdlckNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRDb250cm9sU2NoZW1hIGV4dGVuZHMgRmlsZU1hbmFnZXJDb250cm9sU2NoZW1hIHtcclxuICAgIG1vZGU/PSBGaWxlVXBsb2FkTW9kZS51c2luZ1NlcnZpY2VGaWxlO1xyXG4gICAgbWRXaWR0aD89IDY7XHJcbiAgICBzaGFyZWRGb2xkZXJUeXBlPzogU2hhcmVkRm9sZGVyVHlwZSA9IFNoYXJlZEZvbGRlclR5cGUuVGVtcHQ7XHJcblxyXG4gICAgaGlkZGVuQnV0dG9ucz89IGZhbHNlO1xyXG4gICAgZGlzYWJsZWQ/PSBmYWxzZTtcclxuICAgIHJlYWRvbmx5Pz0gZmFsc2U7XHJcbiAgICBhdXRvU2F2ZWQ/PSB0cnVlO1xyXG5cclxuICAgIGVuYWJsZVNjYW4/PSBmYWxzZTtcclxuICAgIGV4dHJhY3RaaXBGaWxlPz0gZmFsc2U7XHJcbiAgICBlbmFibGVEcml2ZUZpbGU/PSBmYWxzZTtcclxuXHJcbiAgICBzaG93RG93bmxvYWRGaWxlPz0gdHJ1ZTtcclxuICAgIHNob3dEZWxldGVGaWxlPz0gdHJ1ZTtcclxuICAgIHNob3dQcmludEZpbGU/PSB0cnVlO1xyXG4gICAgbWF4RmlsZVNpemU/PSAxMDAwMDAwMDA7IC8vIDEwMCBNQlxyXG4gICAgaW52YWxpZEZpbGVTaXplTWVzc2FnZVN1bW1hcnk/PSAnezB9OiBRdcOhIGR1bmcgbMaw4bujbmcgZmlsZSBjaG8gcGjDqXAsICc7XHJcbiAgICBpbnZhbGlkRmlsZVNpemVNZXNzYWdlRGV0YWlsPz0gJ2R1bmcgbMaw4bujbmcgdOG7kWkgxJFhIGzDoCB7MH0uJztcclxuICAgIGludmFsaWRGaWxlVHlwZU1lc3NhZ2VTdW1tYXJ5Pz0gJ3swfTogS2jDtG5nIMSRw7puZyDEkeG7i25oIGThuqFuZyBmaWxlLCAnO1xyXG4gICAgaW52YWxpZEZpbGVUeXBlTWVzc2FnZURldGFpbD89ICfEkeG7i25oIGThuqFuZyBmaWxlIGNobyBwaMOpcDogezB9Lic7XHJcbiAgICBpbnZhbGlkRmlsZUxpbWl0TWVzc2FnZVN1bW1hcnk/PSAnUXXDoSBz4buRIGzGsOG7o25nIGZpbGUgY2hvIHBow6lwLCAnO1xyXG4gICAgaW52YWxpZEZpbGVMaW1pdE1lc3NhZ2VEZXRhaWw/PSAndOG7kWkgxJFhIHswfSBmaWxlLic7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEZpbGVVcGxvYWRDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBjbGFzcyBTd2l0Y2hDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBTd2l0Y2hDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDaGVja2JveENvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgZW5hYmxlQ2FjaGluZz89IHRydWU7XHJcbiAgICBoaWRkZW5MYWJlbD89IGZhbHNlOyAvLyBTZXQgPSB0cnVlIGNo4bunIHnhur91IGtoaSBkw7luZyB0cm9uZyB0YWJsZSBzY2hlbWEgxJHhu4Mg4bqpbiBsYWJlbCDEkWksIHbDrCBsYWJlbCDEkcOjIGPDsyB0csOqbiB0acOqdSDEkeG7gSBj4buZdFxyXG4gICAgY2hlY2tib3hMYWJlbD86IHN0cmluZztcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDaGVja2JveENvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEJ1dHRvbkNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtU2NoZW1hQmFzZSB7XHJcbiAgICBzaG93TGFiZWw/PSBmYWxzZTtcclxuICAgIGJ0Q2xhc3M/PSAncC1idXR0b24tdGV4dCc7XHJcbiAgICBpY29uPztcclxuICAgIGJ0U3R5bGU/PSB7IHdpZHRoOiAnYXV0bycgfTtcclxuICAgIG9uQ2xpY2s/OiBGdW5jdGlvbjtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBCdXR0b25Db250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtU2NoZW1hQmFzZSB7XHJcbiAgICB0ZW1wbGF0ZTogYW55O1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFRlbXBsYXRlQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVGV4dEFyZWFDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIHJvd3M/PSA1O1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFRleHRBcmVhQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVXNlclBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgYXBwZW5kVG8/PSAnYm9keSc7XHJcbiAgICBtdWx0aXBsZT89IHRydWU7XHJcbiAgICBsaW1pdD89IDIwOyAvLyBHaeG7m2kgaOG6oW4gc+G7kSBuZ8aw4budaSBkw7luZyB04buRaSDEkWEgxJHGsOG7o2MgcGlja1xyXG4gICAgdGl0bGU/PSAnQ2jhu41uIG5nxrDhu51pIGTDuW5nJztcclxuICAgIGRlZmF1bHRGaWx0ZXJzPzogRmlsdGVyW10gfCBGdW5jdGlvbiB8IFByb21pc2U8RmlsdGVyW10+O1xyXG4gICAgZW5hYmxlQ2FjaGluZz89IHRydWU7XHJcbiAgICBwYXJlbnRPcmdDb2RlPzogc3RyaW5nO1xyXG4gICAgcGxhY2Vob2xkZXI/PSAnJztcclxuICAgIGxhenlMb2FkT3JnYW5pemF0aW9uPz0gZmFsc2U7XHJcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcclxuICAgIGRpc3BsYXlGaWVsZD89ICdmdWxsTmFtZU5ldyc7XHJcbiAgICBmaWVsZFBsdXM/PSAnJztcclxuICAgIHBsdXNVcmw/OiBzdHJpbmc7XHJcbiAgICByZXR1cm5UeXBlPzogJ3ZhbHVlJyB8ICdvYmplY3QnID0gJ3ZhbHVlJztcclxuICAgIG9uUmVhZHk/OiAoZXZ0OiBFdmVudERhdGEpID0+IHZvaWQ7XHJcbiAgICBmdW5jR2V0TGFiZWw/OiAoaXRlbSkgPT4gc3RyaW5nO1xyXG4gICAgZnVuY0NvbXBhcmU/OiAoaXRlbTogYW55LCB2YWx1ZSkgPT4gYm9vbGVhbiA9IChpdGVtLCB2YWx1ZSkgPT4gaXRlbVt0aGlzLnZhbHVlRmllbGRdID09IHZhbHVlO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFVzZXJQaWNrZXJDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb0NhdVRvQ2h1Y1BpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgYXBwZW5kVG8/PSAnYm9keSc7XHJcbiAgICBtdWx0aXBsZT89IHRydWU7XHJcbiAgICBsaW1pdD89IDIwOyAvLyBHaeG7m2kgaOG6oW4gc+G7kSBi4bqjbiBnaGkgdOG7kWkgxJFhIMSRxrDhu6NjIHBpY2tcclxuICAgIHRpdGxlPz0gJ0No4buNbiDEkcahbiB24buLJztcclxuICAgIGRlZmF1bHRGaWx0ZXJzPzogRmlsdGVyW10gfCBGdW5jdGlvbiB8IFByb21pc2U8RmlsdGVyW10+O1xyXG4gICAgZW5hYmxlQ2FjaGluZz89IHRydWU7XHJcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcclxuICAgIGRpc3BsYXlGaWVsZD89ICd0ZW4nO1xyXG4gICAgZmllbGRQbHVzPz0gJyc7XHJcbiAgICBwbHVzVXJsPzogc3RyaW5nO1xyXG4gICAgb25SZWFkeT86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcclxuICAgIGZ1bmNHZXRMYWJlbD86IChpdGVtKSA9PiBzdHJpbmc7XHJcbiAgICBmdW5jQ29tcGFyZT86IChpdGVtOiBhbnksIHZhbHVlKSA9PiBib29sZWFuID0gKGl0ZW0sIHZhbHVlKSA9PiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gPT0gdmFsdWU7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVXNlclBpY2tlckNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE9yZ2FuaXphdGlvblBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgZmlsdGVyPz0gdHJ1ZTtcclxuICAgIG11bHRpcGxlPz0gdHJ1ZTtcclxuICAgIHBhcmVudE9yZ0lkPzogbnVtYmVyO1xyXG4gICAgcGFyZW50T3JnQ29kZT86IHN0cmluZztcclxuICAgIGVuYWJsZUNhY2hpbmc/PSB0cnVlO1xyXG4gICAgaXNVc2luZ0lkPz0gdHJ1ZTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBPcmdhbml6YXRpb25QaWNrZXJDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb0NhdVRvQ2h1Y0NvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgZmlsdGVyPz0gdHJ1ZTtcclxuICAgIG11bHRpcGxlPz0gdHJ1ZTtcclxuICAgIHBhcmVudE9yZ0lkPzogbnVtYmVyO1xyXG4gICAgcGFyZW50T3JnQ29kZT86IHN0cmluZztcclxuICAgIGVuYWJsZUNhY2hpbmc/PSB0cnVlO1xyXG4gICAgaXNVc2luZ0lkPz0gdHJ1ZTtcclxuICAgIGRpc2FibGVkUGFyZW50SXRlbT89IHRydWU7XHJcbiAgICByb290UGFyZW50SWQ/OiBzdHJpbmcgPSBudWxsO1xyXG4gICAgZGlzYWJsZWQ/PSBmYWxzZTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDb0NhdVRvQ2h1Y0NvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEVkaXRvckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgbW9kZT86ICdiYXNpYycgfCAnbWVkaXVtJyB8ICdmdWxsJyB8ICdzaW1wbGUnID0gJ2Jhc2ljJztcclxuICAgIGhlaWdodD89IDI1MDtcclxuICAgIGluaXQ/OiBhbnk7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRWRpdG9yQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2VXaXRoU2VydmljZSB7XHJcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcclxuICAgIGRpc3BsYXlGaWVsZD89ICd0ZW4nO1xyXG4gICAgcmV0dXJuVHlwZT86ICd2YWx1ZScgfCAnb2JqZWN0JyA9ICd2YWx1ZSc7XHJcbiAgICBkYXRhU291cmNlPzogYW55IHwgRnVuY3Rpb247XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERyb3Bkb3duQ29udHJvbFNjaGVtYSBleHRlbmRzIERhdGFTb3VyY2VDb250cm9sU2NoZW1hIHtcclxuICAgIGFwcGVuZFRvPz0gJ2JvZHknO1xyXG4gICAgcGFuZWxDbGFzcz89ICcnO1xyXG4gICAgcGxhY2Vob2xkZXI/PSAnQ2jhu41uJztcclxuICAgIHNlbGVjdGVkSXRlbXNMYWJlbD89ICfEkMOjIGNo4buNbiB7MH0gbeG7pWMnO1xyXG4gICAgc2VsZWN0ZWRBbGxJdGVtTGFiZWw/PSAnxJDDoyBjaOG7jW4gdOG6pXQgY+G6oyc7XHJcbiAgICBzaG93Q2xlYXI/PSB0cnVlO1xyXG4gICAgZmlsdGVyPz0gdHJ1ZTtcclxuICAgIG11bHRpcGxlPz0gZmFsc2U7XHJcbiAgICBnZW5lcmF0ZVRvb2x0aXA/OiAoaXRlbSkgPT4gc3RyaW5nO1xyXG4gICAgbWF4U2VsZWN0ZWRMYWJlbHM/PSA1O1xyXG4gICAgbWF4SXRlbURpc3BsYXk/PSA1MDtcclxuICAgIGVuYWJsZUNhY2hpbmc/PSB0cnVlO1xyXG4gICAgbmVlZENsb25lPz0gZmFsc2U7IC8vIFPhu60gZOG7pW5nIHRyb25nIHRhYmxlIHNjaGVtYSwga2hpIGRhdGFzb3VyY2UgY+G7p2EgbeG7mXQgY+G7mXQgdHLDqm4gbeG7l2kgZMOybmcgbMOgIGtow6FjIG5oYXUgY+G6p24gc2V0IG5lZWRDbG9uZSA9IHRydWVcclxuICAgIHRlbXBsYXRlSXRlbT86IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgICB0ZW1wbGF0ZVNlbGVjdGVkSXRlbT86IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgICBxdWlja0FkZD89IGZhbHNlO1xyXG4gICAgY29scz86IEZvcm1TY2hlbWFCYXNlW107XHJcbiAgICBpbml0RGF0YT86IGFueSA9IHt9O1xyXG4gICAgcG9wdXBTaXplPzogUG9wdXBTaXplID0gbmV3IFBvcHVwU2l6ZSh7IHdpZHRoOiA3NTAsIGhlaWdodDogNDAwIH0pO1xyXG5cclxuICAgIGxvYWRJbkZpcnN0RGlzcGxheT89IHRydWU7XHJcblxyXG4gICAgYXV0b0dldERhdGE/PSB0cnVlO1xyXG5cclxuICAgIHZhbHVlRmllbGQ/PSAnaWQnO1xyXG4gICAgZGlzcGxheUZpZWxkPz0gJ3Rlbic7XHJcblxyXG4gICAgYXV0b0Rpc3BsYXlGaXJzdD89IGZhbHNlO1xyXG4gICAgbm90SW5DcnVkRm9ybT89IGZhbHNlO1xyXG4gICAgc2VhcmNoTXVsdGlwbGU/PSB0cnVlO1xyXG4gICAgZGlzYWJsZURpc3BsYXlGaWVsZFNlcnZlclNlYXJjaD89IGZhbHNlO1xyXG5cclxuICAgIGxvYWRPbkluaXQ/PSBmYWxzZTtcclxuICAgIGFsbG93TG9hZERhdGFXaGVuUGFyZW50TnVsbD89IGZhbHNlO1xyXG5cclxuICAgIGRpc2FibGVkUGFyZW50SXRlbT89IHRydWU7XHJcbiAgICBvbkFkanVzdGVkVmFsdWU/OiBGdW5jdGlvbjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRHJvcGRvd25Db250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBZGRyZXNzQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XHJcbiAgICBoaWRlTm8/PSBmYWxzZTtcclxuICAgIGhpZGVTdHJlZXQ/PSBmYWxzZTtcclxuICAgIGhpZGVXYXJkPz0gZmFsc2U7XHJcbiAgICBoaWRlRGlzdHJpY3Q/PSBmYWxzZTtcclxuICAgIHJlcXVpcmVkTm8/PSB0cnVlO1xyXG4gICAgcmVxdWlyZWRTdHJlZXQ/PSB0cnVlO1xyXG4gICAgcmVxdWlyZWRXYXJkPz0gdHJ1ZTtcclxuICAgIHJlcXVpcmVkRGlzdHJpY3Q/PSB0cnVlO1xyXG4gICAgcmVxdWlyZWRQcm92aW5jZT89IHRydWU7XHJcbiAgICB3YXJkVG9Qcm92aW5jZT89IHRydWU7XHJcbiAgICBub1dpZHRoPz0gMTtcclxuICAgIHN0cmVldFdpZHRoPz0gMztcclxuICAgIHdhcmRXaWR0aD89IDM7XHJcbiAgICBkaXN0cmljdFdpZHRoPz0gMjtcclxuICAgIHByb3ZpbmNlV2lkdGg/PSAzO1xyXG4gICAgc2hvd0luQm94Pz0gZmFsc2U7XHJcblxyXG4gICAgaGlkZUhvbGRlcj89IHRydWU7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQWRkcmVzc0NvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFZhbkJhblBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgbWRXaWR0aD89IDEyO1xyXG4gICAgdXNlVmJEZW4/PSB0cnVlO1xyXG4gICAgdXNlVmJEaT89IHRydWU7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVmFuQmFuUGlja2VyQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29uZ1ZpZWNQaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIG1kV2lkdGg/PSAxMjtcclxuICAgIHNlcnZpY2VDb2RlPzogc3RyaW5nO1xyXG4gICAgZW50aXR5Pzogc3RyaW5nO1xyXG4gICAgZW50aXR5S2V5Pzogc3RyaW5nO1xyXG4gICAgc3RhdGU/OiBhbnkgPSB7fTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDb25nVmllY1BpY2tlckNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEF1dG9Db21wbGV0ZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBEYXRhU291cmNlQ29udHJvbFNjaGVtYSB7XHJcbiAgICBwbGFjZWhvbGRlcj89ICcnO1xyXG4gICAgbXVsdGlwbGU/PSBmYWxzZTtcclxuICAgIG1pbkxlbmd0aEZpbHRlcj89IDE7XHJcbiAgICBhcHBlbmRUbz86IHN0cmluZyA9ICdib2R5JztcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBBdXRvQ29tcGxldGVDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBSYWRpb0J1dHRvbkxpc3RDb250cm9sU2NoZW1hIGV4dGVuZHMgRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEge1xyXG4gICAgdmFsdWVGaWVsZD89ICdpZCc7XHJcbiAgICBkaXNwbGF5RmllbGQ/PSAndGVuJztcclxuICAgIGVuYWJsZUNhY2hpbmc/PSB0cnVlO1xyXG4gICAgbGF5b3V0PzogJ3ZlcnRpY2FsJyB8ICdob3Jpem9udGFsJyA9ICdob3Jpem9udGFsJztcclxuICAgIGFsaWduPzogJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnID0gJ2xlZnQnO1xyXG4gICAgb25BZGp1c3RlZFZhbHVlPzogRnVuY3Rpb247XHJcbiAgICBkaXNhYmxlQ2hlY2s/OiAoKSA9PiBib29sZWFuO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBSYWRpb0J1dHRvbkxpc3RDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDaGVja0JveExpc3RDb250cm9sU2NoZW1hIGV4dGVuZHMgRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEge1xyXG4gICAgZW5hYmxlQ2FjaGluZz89IHRydWU7XHJcbiAgICBsYXlvdXQ/OiAndmVydGljYWwnIHwgJ2hvcml6b250YWwnID0gJ2hvcml6b250YWwnO1xyXG4gICAgYWxpZ24/OiAnbGVmdCcgfCAnY2VudGVyJyB8ICdyaWdodCcgPSAnbGVmdCc7XHJcbiAgICBjbGFzc1BsdXM/PSAnJztcclxuICAgIGZyZWVUZXh0Pz0gJyc7XHJcbiAgICBwQ29sQ2xhc3M/OiBudW1iZXI7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ2hlY2tCb3hMaXN0Q29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVGFibGVTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgcm93VGVtcGxhdGU6IEZvcm1TY2hlbWFCYXNlW107XHJcbiAgICByb3dCdXR0b25zPzogKHJvd0RhdGEpID0+IE1lbnVJdGVtW107XHJcbiAgICBmb290ZXJCdXR0b25zPzoge1xyXG4gICAgICAgIGljb24/OiBzdHJpbmc7XHJcbiAgICAgICAgbGFiZWw/OiBzdHJpbmc7XHJcbiAgICAgICAgY2xhc3M/OiBzdHJpbmc7XHJcbiAgICAgICAgbWVzc2FnZTogc3RyaW5nO1xyXG4gICAgfVtdO1xyXG4gICAgc2hvd051bWJlcj89IHRydWU7XHJcbiAgICBzaG93RnVuY3Rpb24/PSB0cnVlO1xyXG4gICAgc2hvd0Zvb3Rlcj89IHRydWU7XHJcbiAgICBzaG93U2F2ZT89IGZhbHNlO1xyXG4gICAgc2hvd0VkaXQ/PSBmYWxzZTtcclxuICAgIHNob3dEZWxldGU/PSB0cnVlO1xyXG4gICAgc2hvd0FkZD89IHRydWU7XHJcbiAgICBlbmFibGVSZW9yZGVyUm93Pz0gZmFsc2U7XHJcbiAgICBvblJlb3JkZXJlZD86IEZ1bmN0aW9uO1xyXG4gICAgZW5hYmxlQWRkTXVsdGk/PSBmYWxzZTtcclxuICAgIHBpY2tlckNvbnRyb2xGaWVsZD86IHN0cmluZztcclxuICAgIGlzVW5pcXVlPz0gdHJ1ZTtcclxuICAgIGVuYWJsZVBhZ2luZz89IGZhbHNlO1xyXG4gICAgbGltaXQ/PSA1MDtcclxuICAgIGluaXRSb3dDb3VudD89IDE7XHJcbiAgICBtZFdpZHRoPz0gMTI7XHJcblxyXG4gICAgb25BZGRpbmc/OiBGdW5jdGlvbjtcclxuICAgIG9uQWRkZWQ/OiBGdW5jdGlvbjtcclxuICAgIG9uU2F2ZT86IEZ1bmN0aW9uO1xyXG4gICAgb25NZXNzYWdlPzogRnVuY3Rpb247XHJcbiAgICBvbkRlbGV0aW5nPzogRnVuY3Rpb247XHJcbiAgICBvbkRlbGV0ZWQ/OiBGdW5jdGlvbjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVGFibGVTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENvbHVtblNjaGVtYUJhc2UgZXh0ZW5kcyBGb3JtU2NoZW1hQmFzZVdpdGhTZXJ2aWNlIHtcclxuICAgIHdpZHRoPzogc3RyaW5nO1xyXG4gICAgc2hvd0VkaXRMaW5rPz0gZmFsc2U7XHJcbiAgICBjb2xTcGFuPzogbnVtYmVyO1xyXG4gICAgZ3JvdXA/PSBmYWxzZTtcclxuICAgIHZpc2libGU/PSB0cnVlO1xyXG4gICAgcmVtb3ZlT25Jbml0Pz0gZmFsc2U7XHJcbiAgICBhbGxvd0ZpbHRlcj89IHRydWU7XHJcbiAgICB0ZXh0QWxpZ24/OiBUZXh0QWxpZ247XHJcbiAgICBjZWxsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgICBmdWxsVGV4dFNlYXJjaD89IGZhbHNlO1xyXG4gICAgcmF3Q29sdW1uPzogQ29sdW1uU2NoZW1hQmFzZTtcclxuICAgIHNlcGFyYXRvcj89ICcsICc7XHJcblxyXG4gICAgZGF0YVR5cGVSZWZGaWVsZD86IERhdGFUeXBlIHwgc3RyaW5nO1xyXG4gICAgZm9yY2VHZXREYXRhPz0gZmFsc2U7XHJcbiAgICBmdW5jR2V0UmVmRGF0YVJvdz86IChyZWZJdGVtcykgPT4ge307XHJcbiAgICBmdW5jU2V0VmFsdWVSb3c/OiAocm93SXRlbSwgZGF0YSkgPT4gdm9pZDtcclxuICAgIHJvd1NwYW4/PSAxO1xyXG4gICAgZm9ybWF0Pzogc3RyaW5nO1xyXG4gICAgZGF0YVR5cGU/OiBEYXRhVHlwZSB8IHN0cmluZztcclxuICAgIGNvbnRyb2xUeXBlPzogQ29udHJvbFR5cGUgPSBDb250cm9sVHlwZS50ZXh0Ym94O1xyXG4gICAgdGVtcGxhdGVGaWx0ZXI/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gICAgZmllbGRGaWx0ZXI/OiBzdHJpbmc7XHJcbiAgICBkaXNhYmxlQ2hlY2tCb3g/PSB0cnVlO1xyXG4gICAgLy8gVGjhu6kgdOG7sSDGsHUgdGnDqm4gZ2V0IHJlZiBkYXRhIGPhu6dhIGNydWQtbGlzdFxyXG4gICAgLy8gTuG6v3UgY8OzIHZhbHVlIG5naMSpYSBsw6Agbmjhu69uZyBj4buZdCBuw6B5IGPhuqduIHBo4bqjaSBs4bqleSBk4buvIGxp4buHdSB4b25nIHLhu5NpIG3hu5tpIMSR4bq/biBj4buZdCBraMOhY1xyXG4gICAgb3JkZXI/OiBudW1iZXI7XHJcbiAgICBtYXhXb3JkRGlzcGxheT86IG51bWJlcjtcclxuICAgIG1heExlbmd0aERpc3BsYXk/OiBudW1iZXI7XHJcblxyXG4gICAgbWRXaWR0aEluU2VhcmNoPz0gMTI7XHJcblxyXG4gICAgbWluPz0gMDtcclxuICAgIG1heD89IDk5OTk5OTtcclxuXHJcbiAgICBzaG93Q2xlYXI/PSB0cnVlO1xyXG4gICAgbXVsdGlwbGU/PSBmYWxzZTtcclxuXHJcbiAgICBwaXBlPzogUGlwZVRyYW5zZm9ybTtcclxuICAgIGFzeW5jUGlwZT89IHRydWU7XHJcbiAgICBzb3J0Pz0gdHJ1ZTtcclxuICAgIGV4dGVuZERhdGE/OiBhbnkgPSB7fTtcclxuXHJcbiAgICBnZW5lcmF0ZWRSZWZDb2x1bW4/OiBhbnk7IC8vIFRPRE86IE5hbU5IIHRow6ptIHThuqFtIHRoZW8gecOqdSBj4bqndSBj4bunYSBMaW5oLCBMaW5oIGNoZWNrIGzhuqFpIHNhdVxyXG4gICAgaGFzT3BlcmF0b3JDYW5Cbz89IGZhbHNlO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENvbHVtblNjaGVtYUJhc2UpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERyb3Bkb3duT3B0aW9ucyB7XHJcbiAgICBkaXNwbGF5RmllbGQ/PSAndGVuJztcclxuICAgIHZhbHVlRmllbGQ/PSAnaWQnO1xyXG4gICAgZmllbGRUcmVlPz0gJyc7XHJcbiAgICBzZWxlY3RDaGlsZEl0ZW0/PSBmYWxzZTsgLy8gQ8OzIHNlbGVjdCBi4bqjbiBnaGkgY29uIG7hur91IGNo4buNbiBi4bqjbiBnaGkgY2hhXHJcbiAgICBmaWVsZFBhcmVudFRyZWVJdGVtPz0gJ2lkJzsgLy8gVHLGsOG7nW5nIHjDoWMgxJHhu4tuaCBi4bqjbiBnaGkgbMOgIGLhuqNuIGdoaSBjaGEgY+G7p2EgYuG6o24gZ2hpIGNvblxyXG4gICAgc29ydHM/OiBTb3J0W10gPSBbXTtcclxuICAgIHNvcnRGaWVsZD89ICcnO1xyXG4gICAgc29ydERpcj86IDEgfCAtMSA9IDE7XHJcbiAgICBmaWVsZFBsdXM/PSAnJztcclxuICAgIHBsdXNVcmw/OiBzdHJpbmc7XHJcbiAgICBjYWxsYmFja0RhdGFGaW5pc2g/OiAoZXZ0OiBFdmVudERhdGEpID0+IHZvaWQ7XHJcbiAgICBwYWdlU2l6ZT89IDk5OTk7XHJcbiAgICBpc1NlcnZlckxvYWQ/PSBmYWxzZTtcclxuICAgIHJlZkZpZWxkcz86IFJlZkZpZWxkW10gPSBbXTtcclxuICAgIGZ1bmNHZXRMYWJlbD86IChpdGVtKSA9PiBzdHJpbmc7XHJcbiAgICBmdW5jQ29tcGFyZT86IChpdGVtOiBhbnksIHZhbHVlKSA9PiBib29sZWFuID0gKGl0ZW0sIHZhbHVlKSA9PiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gPT0gdmFsdWU7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRHJvcGRvd25PcHRpb25zKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBjbGFzcyBSZWZGaWVsZCB7XHJcbiAgICBmaWVsZDogc3RyaW5nO1xyXG4gICAgbXVsdGlwbGU/PSBmYWxzZTtcclxuICAgIHNlcGFyYXRvcj89ICcsICc7XHJcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlIHwgTWFzdGVyRGF0YVNlcnZpY2U7XHJcbiAgICBkaXNwbGF5RmllbGQ/PSAndGVuJztcclxuICAgIHZhbHVlRmllbGQ/PSAnaWQnO1xyXG4gICAgZmllbGRQbHVzPz0gJyc7XHJcbiAgICBncm91cENvZGU/OiBzdHJpbmc7XHJcbiAgICBkYXRhU291cmNlPzogYW55W107XHJcbiAgICBvcmRlcj86IG51bWJlcjtcclxuXHJcbiAgICBpc1RyZWU/PSBmYWxzZTtcclxuICAgIGZpZWxkVHJlZT86IHN0cmluZztcclxuICAgIHZhbHVlUGFyZW50Um9vdD86IGFueSA9IG51bGw7IC8vIEdpw6EgdHLhu4sgdHLGsOG7nW5nIFtmaWVsZFRyZWVdIGPhu6dhIGl0ZW0gdHJlZSByb290XHJcbiAgICBmaWVsZFBhcmVudFRyZWVJdGVtPz0gJ2lkJzsgLy8gVHLGsOG7nW5nIHjDoWMgxJHhu4tuaCBi4bqjbiBnaGkgbMOgIGLhuqNuIGdoaSBjaGEgY+G7p2EgYuG6o24gZ2hpIGNvblxyXG4gICAgc29ydHM/OiBTb3J0W10gPSBbXTtcclxuICAgIHNvcnRGaWVsZD89ICcnO1xyXG4gICAgc29ydERpcj86IDEgfCAtMSA9IDE7XHJcbiAgICBwbHVzVXJsPzogc3RyaW5nO1xyXG4gICAgZnVuY1NldFZhbHVlUm93PzogKHJvd0l0ZW0sIGRhdGEpID0+IHZvaWQ7XHJcbiAgICBmdW5jR2V0UmVmRGF0YVJvdz86IChyZWZJdGVtcykgPT4ge307XHJcbiAgICBjYWxsYmFja0RhdGFGaW5pc2g/OiAoZXZ0OiBFdmVudERhdGEpID0+IHZvaWQ7XHJcbiAgICBmdW5jR2V0TGFiZWw/OiAoaXRlbSkgPT4gc3RyaW5nO1xyXG4gICAgZnVuY0NvbXBhcmU/OiAoaXRlbTogYW55LCB2YWx1ZSkgPT4gYm9vbGVhbiA9IChpdGVtLCB2YWx1ZSkgPT4gaXRlbVt0aGlzLnZhbHVlRmllbGRdID09IHZhbHVlO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFJlZkZpZWxkKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5jbGFzcyBQcm9wRm9yRHJvcGRvd24ge1xyXG4gICAgc2VydmVyRmlsdGVyVXJpPzogc3RyaW5nO1xyXG4gICAgbG9hZEluRmlyc3REaXNwbGF5Pz0gdHJ1ZTtcclxuICAgIGRpc3BsYXlGaWVsZFNlcnZlcj89ICd0ZW4nO1xyXG4gICAgdmFsdWVGaWVsZFNlcnZlcj89ICdpZCc7XHJcblxyXG4gICAgZGF0YVNvdXJjZT86IGFueTtcclxuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2UgfCBNYXN0ZXJEYXRhU2VydmljZTtcclxuICAgIGRlZmF1bHRGaWx0ZXJzPzogRmlsdGVyW10gfCBGdW5jdGlvbjtcclxuICAgIGNhbGxiYWNrRGF0YUZpbmlzaD86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcclxuICAgIG1vZGlmeUZpbHRlcj86IEZ1bmN0aW9uO1xyXG4gICAgbXVsdGlwbGU/PSBmYWxzZTtcclxuICAgIHNlcGFyYXRvcj89ICcsICc7XHJcbiAgICBzZWFyY2hNdWx0aXBsZT89IHRydWU7XHJcbiAgICBpc1RyZWU/PSBmYWxzZTtcclxuICAgIGZpZWxkVHJlZT86IHN0cmluZztcclxuICAgIHNlbGVjdENoaWxkSXRlbT89IGZhbHNlOyAvLyBDw7Mgc2VsZWN0IGLhuqNuIGdoaSBjb24gbuG6v3UgY2jhu41uIGLhuqNuIGdoaSBjaGFcclxuICAgIHZhbHVlUGFyZW50Um9vdD86IGFueSA9IG51bGw7IC8vIEdpw6EgdHLhu4sgdHLGsOG7nW5nIFtmaWVsZFRyZWVdIGPhu6dhIGl0ZW0gdHJlZSByb290XHJcbiAgICBmaWVsZFBhcmVudFRyZWVJdGVtPz0gJ2lkJzsgLy8gVHLGsOG7nW5nIHjDoWMgxJHhu4tuaCBi4bqjbiBnaGkgbMOgIGLhuqNuIGdoaSBjaGEgY+G7p2EgYuG6o24gZ2hpIGNvblxyXG4gICAgZ3JvdXBDb2RlPzogc3RyaW5nO1xyXG4gICAgdmFsdWVGaWVsZD89ICdpZCc7XHJcbiAgICBkaXNwbGF5RmllbGQ/PSAndGVuJztcclxuICAgIHNlYXJjaEZpZWxkPzogc3RyaW5nW10gPSBbXTtcclxuICAgIGZpZWxkUGx1cz89ICcnO1xyXG4gICAgc29ydHM/OiBTb3J0W10gPSBbXTtcclxuICAgIHNvcnRGaWVsZD89ICcnO1xyXG4gICAgc29ydERpcj86IDEgfCAtMSA9IDE7XHJcbiAgICBwbHVzVXJsPzogc3RyaW5nO1xyXG5cclxuICAgIGZpZWxkVmFsdWVQYXJlbnQ/PSAndmFsdWUnOyAvLyBUcsaw4budbmcgc+G7rSBk4bulbmcgxJHhu4MgbOG6pXkgZOG7ryBsaeG7h3UgbMOgbSBraMOzYSB04burIGLhuqNuZyBjaGEgY+G7p2EgaXRlbSBkcm9wIGRvd24gxJHGsOG7o2MgY2jhu41uXHJcblxyXG4gICAgZnVuY0dldExhYmVsPzogKGl0ZW0pID0+IHN0cmluZztcclxuICAgIGZ1bmNDb21wYXJlPzogKGl0ZW06IGFueSwgdmFsdWUpID0+IGJvb2xlYW4gPSAoaXRlbSwgdmFsdWUpID0+IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA9PSB2YWx1ZTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogUHJvcEZvckRyb3Bkb3duKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRW50aXR5UGlja2VyQ29sdW1uIGV4dGVuZHMgQ29sdW1uU2NoZW1hQmFzZSB7XHJcbiAgICBsYWJlbD86IHN0cmluZztcclxuICAgIGNvZGU/OiBzdHJpbmc7XHJcbiAgICBkaXNhYmxlZD89IGZhbHNlO1xyXG4gICAgaXNTZWFyY2hhYmxlPz0gdHJ1ZTtcclxuICAgIGlzRGlzcGxheT89IHRydWU7XHJcbiAgICBkYXRhVHlwZT86IERhdGFUeXBlIHwgc3RyaW5nO1xyXG4gICAgb3BlcmF0b3I/OiBPcGVyYXRvcjtcclxuICAgIHdpZHRoPz0gJyc7XHJcbiAgICBub3RJbkZpZWxkcz89IGZhbHNlOyAvLyBDw6FjIHRyxrDhu51uZyBk4buvIGxp4buHdSDEkcaw4bujYyB04buVbmcgaOG7o3AgbOG6oWkgaGnhu4NuIHRo4buLIGzDqm4gZ3JpZCBtw6Aga2jDtG5nIHBo4bqjaSBs4bqleSB04burIHRyb25nIHRhYmxlIHJhLlxyXG5cclxuICAgIHRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRW50aXR5UGlja2VyQ29sdW1uKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBHZXRSZWZEYXRhU2NoZW1hIGV4dGVuZHMgUHJvcEZvckRyb3Bkb3duIHtcclxuICAgIGZpZWxkPzogc3RyaW5nO1xyXG4gICAgZnVuY1NldFZhbHVlUm93PzogKHJvd0l0ZW0sIGRhdGEpID0+IHZvaWQ7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogR2V0UmVmRGF0YVNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ3J1ZExpc3RDb25maWcge1xyXG4gICAgdG9vbHRpcFZpZXc/OiBzdHJpbmc7XHJcbiAgICBvblZpZXc/OiBGdW5jdGlvbjtcclxuICAgIGRpc2FibGVSb3dTZWxlY3RXaGVuQ2xpY2tBY3Rpb24/PSB0cnVlO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENydWRMaXN0Q29uZmlnKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVHJlZURhdGFPcHRpb24ge1xyXG4gICAgZGlzcGxheUZpZWxkID0gJ3Rlbic7XHJcbiAgICBzaG9ydERpc3BsYXlGaWVsZCA9ICd0ZW4nO1xyXG4gICAgZXhwYW5kZWRJY29uID0gJ3BpIHBpLWZvbGRlci1vcGVuJztcclxuICAgIGNvbGxhcHNlZEljb24gPSAncGkgcGktZm9sZGVyJztcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUcmVlRGF0YU9wdGlvbikge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERpYWxvZ01vZGVsIHtcclxuICAgIHNob3dFZGl0Rm9ybT86IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGhlYWRlcj86IHN0cmluZyA9ICcnO1xyXG4gICAgcG9wdXBTaXplPzogUG9wdXBTaXplID0gbmV3IFBvcHVwU2l6ZSh7IG1heGltaXplOiB0cnVlIH0pXHJcbiAgICBkYXRhPzogYW55ID0ge307XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRGlhbG9nTW9kZWwpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQb3B1cFNpemUge1xyXG4gICAgd2lkdGg/OiBudW1iZXI7XHJcbiAgICBoZWlnaHQ/OiBudW1iZXI7XHJcbiAgICBtYXhpbWl6ZT89IGZhbHNlO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFBvcHVwU2l6ZSkge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEV2ZW50RGF0YSB7XHJcbiAgICBjdXJyZW50Tm9kZTogQ29udHJvbFRyZWVOb2RlO1xyXG4gICAgc291cmNlTm9kZT86IENvbnRyb2xUcmVlTm9kZTtcclxuICAgIHNvdXJjZUV2ZW50PzogYW55O1xyXG4gICAgZXZlbnRUeXBlPzogYW55O1xyXG4gICAgZGF0YT86IGFueTtcclxuICAgIHByaXZhdGUgX2NydWRGb3JtOiBDcnVkRm9ybUNvbXBvbmVudDtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIGluaXQ/OiB7XHJcbiAgICAgICAgICAgIGN1cnJlbnROb2RlOiBDb250cm9sVHJlZU5vZGUsXHJcbiAgICAgICAgICAgIHNvdXJjZU5vZGU/OiBDb250cm9sVHJlZU5vZGUsXHJcbiAgICAgICAgICAgIHNvdXJjZUV2ZW50PzogYW55LFxyXG4gICAgICAgICAgICBldmVudFR5cGU/OiBhbnksXHJcbiAgICAgICAgICAgIGRhdGE/OiBhbnksXHJcbiAgICAgICAgICAgIGNydWRGb3JtPzogQ3J1ZEZvcm1Db21wb25lbnRcclxuICAgICAgICB9XHJcbiAgICApIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHZhbHVlKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE5vZGUubW9kZWw7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IG1vZGVsKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE5vZGUubW9kZWw7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHBhcmVudE1vZGVsKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE5vZGUucGFyZW50TW9kZWw7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHBhcmVudFBhdGgoKTogYW55IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50Tm9kZS5wYXJlbnRNb2RlbFBhdGg7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGdldCByb290TW9kZWwoKTogYW55IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50Tm9kZS5yb290Tm9kZS5tb2RlbDtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29udHJvbCgpOiBGb3JtU2NoZW1hQmFzZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE5vZGUuY29udHJvbFxyXG4gICAgfVxyXG5cclxuICAgIGdldCBwYXJlbnRDb250cm9sKCk6IEZvcm1TY2hlbWFCYXNlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50Tm9kZS5wYXJlbnRDb250cm9sO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBmb3JtQ29udHJvbHMoKTogRm9ybVNjaGVtYUJhc2VbXSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE5vZGUuZm9ybUNvbnRyb2xzO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgZW51bSBEYXRhVHlwZSB7XHJcbiAgICBkYXRlID0gJ2RhdGUnLFxyXG4gICAgZGF0ZXRpbWUgPSAnZGF0ZXRpbWUnLFxyXG4gICAgaHRtbCA9ICdodG1sJyxcclxuICAgIHN0cmluZyA9ICdzdHJpbmcnLFxyXG4gICAgaW50ID0gJ2ludCcsXHJcbiAgICBkZWNpbWFsID0gJ2RlY2ltYWwnLFxyXG4gICAgYm9vbGVhbiA9ICdib29sZWFuJyxcclxuICAgIGVudW0gPSAnZW51bScsXHJcbiAgICBjdXJyZW5jeSA9ICdjdXJyZW5jeSdcclxufVxyXG5cclxuZXhwb3J0IGVudW0gQ29udHJvbFR5cGUge1xyXG4gICAgZHJvcGRvd24gPSAnZHJvcGRvd24nLFxyXG4gICAgZGF0ZXRpbWUgPSAnZGF0ZXRpbWUnLFxyXG4gICAgZGF0ZSA9ICdkYXRlJyxcclxuICAgIHRpbWUgPSAndGltZScsXHJcbiAgICBudW1iZXIgPSAnbnVtYmVyJyxcclxuICAgIHRleHRib3ggPSAndGV4dGJveCcsXHJcbiAgICBjaGVja2JveCA9ICdjaGVja2JveCcsXHJcbiAgICBzd2l0Y2ggPSAnc3dpdGNoJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBPcGVyYXRvciB7XHJcbiAgICBlcXVhbCA9ICdlcScsXHJcbiAgICBub3RFcXVhbCA9ICduZXEnLFxyXG4gICAgZ3JlYXRlciA9ICdndCcsXHJcbiAgICBncmVhdGVyVGhhbkVxdWFsID0gJ2d0ZScsXHJcbiAgICBsb3dlciA9ICdsdCcsXHJcbiAgICBsb3dlclRoYW5FcXVhbCA9ICdsdGUnLFxyXG5cclxuICAgIGNvbnRhaW4gPSAnY29udGFpbnMnLFxyXG4gICAgbm90Q29udGFpbiA9ICduY29udGFpbnMnLFxyXG4gICAgc3RhcnRXaXRoID0gJ3N0YXJ0c3dpdGgnLFxyXG4gICAgbm90U3RhcnRXaXRoID0gJ25zdGFydHN3aXRoJyxcclxuICAgIGVuZFdpdGggPSAnZW5kc3dpdGgnLFxyXG4gICAgbm90RW5kV2l0aCA9ICduZW5kc3dpdGgnLFxyXG5cclxuICAgIGluID0gJ2luJyxcclxuICAgIG5vdEluID0gJ25pbicsXHJcblxyXG4gICAgaXNOdWxsID0gJ2lzbnVsbCcsXHJcbiAgICBpc05vdE51bGwgPSAnaXNub3RudWxsJyxcclxuXHJcbiAgICBpblJvbGUgPSAnaGFzUm9sZScsXHJcbiAgICBub3RJblJvbGUgPSAnbm90SGFzUm9sZScsXHJcbiAgICBpbkNhdGVnb3J5ID0gJ2luQ2F0ZWdvcnknLFxyXG4gICAgbm90SW5DYXRlZ29yeSA9ICdub3RJbkNhdGVnb3J5JyxcclxuICAgIGluUG9zaXRpb24gPSAnaW5Qb3NpdGlvbicsXHJcbiAgICBub3RJblBvc2l0aW9uID0gJ25vdEluUG9zaXRpb24nLFxyXG4gICAgaW5MaXN0VXNlciA9ICdpbkxpc3RVc2VyJyxcclxuICAgIG5vdEluTGlzdFVzZXIgPSAnbm90SW5MaXN0VXNlcicsXHJcbiAgICBpbkxpc3RHcm91cCA9ICdpbkxpc3RHcm91cCcsXHJcbiAgICBub3RJbkxpc3RHcm91cCA9ICdub3RJbkxpc3RHcm91cCcsXHJcbiAgICBpc0N1cnJlbnRVc2VyID0gJ2lzQ3VycmVudFVzZXInLFxyXG4gICAgaXNDdXJyZW50Q2FuQm8gPSAnaXNDdXJyZW50Q2FuQm8nXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEhlaWdodFR5cGUge1xyXG4gICAgZGVmYXVsdCA9IDAsXHJcbiAgICBkeW5hbWljID0gLTEsXHJcbiAgICBjdXN0b20gPSAxXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEZpbGVNYW5hZ2VyTW9kZSB7XHJcbiAgICBzaW5nbGUgPSAnc2luZ2xlJyxcclxuICAgIG11bHRpcGxlID0gJ211bHRpcGxlJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBGaWxlVXBsb2FkTW9kZSB7XHJcbiAgICB1c2luZ0ZpbGVJbnN0YW5jZUlkID0gJ3VzaW5nRmlsZUluc3RhbmNlSWQnLFxyXG4gICAgdXNpbmdTZXJ2aWNlRmlsZSA9ICd1c2luZ1NlcnZpY2VGaWxlJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBFbnVtRmlsZUxheW91dCB7XHJcbiAgICBTSU1QTEUgPSAnU0lNUExFJyxcclxuICAgIExJU1QgPSAnTElTVCdcclxufVxyXG5cclxuZXhwb3J0IGVudW0gVGV4dEFsaWduIHtcclxuICAgIExlZnQgPSAwLFxyXG4gICAgQ2VudGVyID0gMSxcclxuICAgIFJpZ2h0ID0gLTFcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRXhwb3J0SXRlbXNNb2RlIHtcclxuICAgIEZyb21IdG1sID0gMCxcclxuICAgIE1hbnVhbEdldERhdGEgPSAxLFxyXG4gICAgQXV0b0dldERhdGEgPSAyXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEV4cG9ydEFsbE1vZGUge1xyXG4gICAgTWFudWFsR2V0RGF0YSA9IDAsXHJcbiAgICBBdXRvR2V0RGF0YSA9IDFcclxufVxyXG4iXX0=
|
|
1110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zY2hlbWEuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG54LXNoYXJlZC9zcmMvbGliLyIsInNvdXJjZXMiOlsiY2xhc3Nlcy9mb3JtLXNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBZ0JBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxlQUFlLEVBQUUsOEJBQThCLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR2xJLE1BQU0sT0FBTyxXQUFXO0lBTXBCLFlBQVksSUFBa0I7UUFEOUIsYUFBUSxHQUE4RixRQUFRLENBQUM7UUFFM0csS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6QjtJQUNMLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyxRQUFRO0lBR2pCLFlBQVksSUFBZTtRQUYzQixvR0FBb0c7UUFDcEcsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBRS9CLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDekI7SUFDTCxDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sZUFBZTtJQW1GeEIsWUFBWSxJQUFzQjtRQWpGbEMsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBR2pCLGlCQUFZLEdBQW1CLEVBQUUsQ0FBQztRQUNsQyxTQUFJLEdBQXdCLEVBQUUsQ0FBQztRQUMvQixrQkFBYSxHQUFtQixJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ3BELGdCQUFXLEdBQWlCLElBQUksV0FBVyxFQUFFLENBQUM7UUFDOUMsZUFBVSxHQUFnQixVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMseURBQXlEO1FBQ3ZHLDBCQUFxQixHQUFHLElB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QUFOLElBQVksYUFHWDtBQUhELFdBQVksYUFBYTtJQUNyQixtRUFBaUIsQ0FBQTtJQUNqQiwrREFBZSxDQUFBO0FBQ25CLENBQUMsRUFIVyxhQUFhLEtBQWIsYUFBYSxRQUd4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGVUcmFuc2Zvcm0sIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ3RuLWN1c3RvbS1wcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IEF1dG9Db21wbGV0ZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlLXBpY2tlci9hdXRvY29tcGxldGUtcGlja2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENydWRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9jcnVkL2NydWQtbGlzdC9jcnVkLWxpc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW50aXR5UGlja2VyRGF0YUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvZW50aXR5LXBpY2tlci9lbnRpdHktcGlja2VyLWRpYWxvZy9jb21wb25lbnRzL2VudGl0eS1waWNrZXItZGF0YS9lbnRpdHktcGlja2VyLWRhdGEuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW50aXR5UGlja2VyU2VsZWN0ZWRDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2VudGl0eS1waWNrZXIvZW50aXR5LXBpY2tlci1kaWFsb2cvY29tcG9uZW50cy9lbnRpdHktcGlja2VyLXNlbGVjdGVkL2VudGl0eS1waWNrZXItc2VsZWN0ZWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW50aXR5UGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9lbnRpdHktcGlja2VyL2VudGl0eS1waWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmlsZURhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9maWxlLWV4cGxvcmVyL3NlcnZpY2VzL2ZpbGUtZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmlsdGVyLCBTb3J0IH0gZnJvbSAnLi4vbW9kZWxzL2dyaWQtaW5mbyc7XHJcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYmFzZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW50aXR5TWV0YWRhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZW50aXR5LW1ldGFkYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYXN0ZXJEYXRhU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL21hc3Rlci1kYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb250cm9sVHJlZU5vZGUsIENydWRGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi8uLi9jb21wb25lbnRzL2NydWQvY3J1ZC1mb3JtL2NydWQtZm9ybS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJQ29ycmVjdG9yIH0gZnJvbSAnLi9iYXNlL2NvcnJlY3RvcnMnO1xyXG5pbXBvcnQgeyBJVmFsaWRhdG9yIH0gZnJvbSAnLi9iYXNlL3ZhbGlkYXRvcnMnO1xyXG5pbXBvcnQgeyBFbnVtQ29udHJvbFBpY2tlclR5cGUsIEVudW1Db3JlVmVyc2lvbiwgRW51bVdvcmtmbG93Q29yZUNvZGVTZXR0aW5nS2V5LCBGb3JtU3RhdGUsIFNoYXJlZEZvbGRlclR5cGUgfSBmcm9tICcuL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IFdvcmtmbG93U2V0dGluZywgV29ya2Zsb3dTZXR0aW5nTmV3IH0gZnJvbSAnLi93b3JrZmxvdy1zY2hlbWEnO1xyXG5cclxuZXhwb3J0IGNsYXNzIE1vZGVsU2NoZW1hIHtcclxuICAgIGZpZWxkOiBzdHJpbmc7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICBmdWxsTmFtZTogc3RyaW5nO1xyXG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcclxuICAgIGRhdGFUeXBlPzogJ2ludCcgfCAnZGVjaW1hbCcgfCAnZGF0ZScgfCAnZGF0ZXRpbWUnIHwgJ3N0cmluZycgfCAnYm9vbGVhbicgfCAnY3VycmVuY3knIHwgJ3RpbWVzcGFuJyA9ICdzdHJpbmcnO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IE1vZGVsU2NoZW1hKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ3J1ZEJhc2Uge1xyXG4gICAgLy8gQ29tcG9uZW50IHN1YnNjcmliZSAtIEtoaSBzdWJjcmliZSBt4buZdCBjb21wb25lbnQgdGjDrCBhZGQgdsOgbyBhcnJheSDEkeG7gyBraGkgZGVzdHJveSB0aMOsIHVuc3Vic2NyaWJlXHJcbiAgICBjb21wb25lbnRTdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENydWRCYXNlKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ3J1ZExpc3RTZXR0aW5nIHtcclxuICAgIHRpdGxlOiBzdHJpbmc7XHJcbiAgICBvYmplY3ROYW1lID0gJyc7XHJcbiAgICBlbnRpdHlLZXkgPSAnaWQnO1xyXG4gICAgc2V0dGluZ0tleT86IHN0cmluZztcclxuICAgIGVudGl0eU1ldGFkYXRhU2VydmljZT86IEVudGl0eU1ldGFkYXRhU2VydmljZTtcclxuICAgIG1vZGVsU2NoZW1hcz86IE1vZGVsU2NoZW1hW10gPSBbXTtcclxuICAgIGNvbHM/OiBDb2x1bW5TY2hlbWFCYXNlW10gPSBbXTtcclxuICAgIGNvbHVtblNldHRpbmc/OiBDb2x1bW5TZXR0aW5nID0gbmV3IENvbHVtblNldHRpbmcoKTtcclxuICAgIHBhZ2VTZXR0aW5nPzogUGFnZVNldHRpbmcgPSBuZXcgUGFnZVNldHRpbmcoKTtcclxuICAgIGhlaWdodFR5cGU/OiBIZWlnaHRUeXBlID0gSGVpZ2h0VHlwZS5kZWZhdWx0OyAvLyBDw7MgY3VzdG9tIGNoaeG7gXUgY2FvIGtow7RuZzogVGjGsOG7nW5nIHPhu60gZOG7pW5nIHRyb25nIGRpYWxvZ1xyXG4gICAgZml4SGVpZ2h0VHlwZUluRGlhbG9nPz0gdHJ1ZTtcclxuICAgIG11bHRpcGxlQ2hlY2tXaGVuQ2xpY2tSb3cgPSB0cnVlO1xyXG4gICAgY3VzdG9tV29ya2Zsb3dDb2RlVHJpbmhLeTogRW51bVdvcmtmbG93Q29yZUNvZGVTZXR0aW5nS2V5ID0gRW51bVdvcmtmbG93Q29yZUNvZGVTZXR0aW5nS2V5Lk1BQ19ESU5IO1xyXG4gICAgc3RpY2t5Q29sdW1uID0gZmFsc2U7XHJcbiAgICB0YWJsZU5hbWU/OiBzdHJpbmc7XHJcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlO1xyXG4gICAgcmVTZWxlY3RMYXN0SXRlbT89IHRydWU7IC8vIFNlbGVjdCBs4bqhaSBpdGVtIGN14buRaSBjw7luZyDEkcOjIGNo4buNbiBj4bunYSBncmlkXHJcbiAgICBmaXJlRXZlbnRXaGVuUmVTZWxlY3Q/PSBmYWxzZTtcclxuICAgIGFkdmFuY2VEYXRhPzogYW55ID0ge307XHJcbiAgICB3b3JrZmxvd1NldHRpbmc/OiBXb3JrZmxvd1NldHRpbmc7XHJcbiAgICB3b3JrZmxvd0NvbmZpZ0FkdmFuY2U/OiBXb3JrZmxvd0NvbmZpZ0FkdmFuY2U7XHJcbiAgICBkaXNwbGF5RmllbGQ6IHN0cmluZyB8ICgoaXRlbSkgPT4gc3RyaW5nKTsgLy8gdHLGsOG7nW5nIMSR4bqhaSBkaeG7h24gY2hvIGLhuqNuIGdoaSBsw6BtIHRpw6p1IMSR4buBIGhp4buDbiB0aOG7iyAocGjhu6VjIHbhu6UgY2hvIGPDoWMgZOG7i2NoIHbhu6Uga2jDoWMga2hhaSB0aMOhYylcclxuICAgIGhhc0N1c3RvbUhhbmRsZUNsaWNrUm93ID0gZmFsc2U7XHJcbiAgICBjaGVja0FsbG93VHJpbmhLeTogKHJvd0RhdGEpID0+IFByb21pc2U8Ym9vbGVhbj47XHJcbiAgICBjaGVja1Blcm1pc2lvblRyaW5oS3kgPSBmYWxzZTtcclxuXHJcbiAgICBzaG93RWRpdExpbmsgPSB0cnVlO1xyXG5cclxuICAgIGhpZGRlbkhlYWRlciA9IGZhbHNlO1xyXG4gICAgaGlkZGVuUGFnZVNldHRpbmcgPSBmYWxzZTtcclxuICAgIGhpZGRlblRleHRQYWdlID0gZmFsc2U7XHJcbiAgICBoaWRkZW5Ub29sYmFyID0gZmFsc2U7XHJcbiAgICBoaWRkZW5CdXR0b25zID0gZmFsc2U7XHJcbiAgICBoaWRkZW5BZHZhbmNlU2VhcmNoID0gZmFsc2U7XHJcbiAgICBoaWRkZW5TYXZlU2V0dGluZyA9IGZhbHNlO1xyXG4gICAgaGlkZGVuU2V0dGluZyA9IGZhbHNlO1xyXG4gICAgaGlkZGVuU2V0dGluZ1Blcm1pc3Npb24gPSBmYWxzZTtcclxuICAgIGhpZGRlblNldHRpbmdXb3JrZmxvdyA9IGZhbHNlO1xyXG4gICAgaGlkZGVuU2V0dGluZ1dvcmtmbG93TmV3ID0gdHJ1ZTtcclxuICAgIGhpZGRlblBhZ2VUaXRsZSA9IGZhbHNlO1xyXG5cclxuICAgIGhpZGRlbkNoZWNrYm94ID0gZmFsc2U7XHJcbiAgICBoaWRkZW5PcmRlckNvbHVtbiA9IGZhbHNlO1xyXG4gICAgaGlkZGVuV29ya2Zsb3dDb2x1bW4gPSBmYWxzZTtcclxuICAgIGhpZGRlbkZ1bmN0aW9uQ29sdW1uID0gZmFsc2U7XHJcbiAgICBoaWRkZW5SZWZyZXNoID0gZmFsc2U7XHJcbiAgICBoaWRkZW5GaWx0ZXJSb3cgPSBmYWxzZTtcclxuICAgIGhpZGRlblRyaW5oS3kgPSB0cnVlO1xyXG4gICAgdXNlQmFzZVRyaW5oS3kgPSB0cnVlO1xyXG4gICAgaGlkZGVuV29ya2Zsb3dDb3JlU3RhdHVzID0gdHJ1ZTtcclxuICAgIHJlcXVpcmVkVmFuQmFuRGlBZnRlclRyaW5oS3kgPSBmYWxzZTtcclxuXHJcbiAgICBncm91cENvbHVtbj86IENvbHVtblNjaGVtYUJhc2U7XHJcblxyXG4gICAgc2hvd0V4cG9ydEFsbCA9IGZhbHNlO1xyXG4gICAgZXhwb3J0QWxsTW9kZWw6IEV4cG9ydEFsbE1vZGUgPSBFeHBvcnRBbGxNb2RlLkF1dG9HZXREYXRhO1xyXG4gICAgZXhwb3J0SXRlbXNNb2RlOiBFeHBvcnRJdGVtc01vZGUgPSBFeHBvcnRJdGVtc01vZGUuRnJvbUh0bWw7XHJcblxyXG4gICAgZW5hYmxlVmVyc2lvbiA9IGZhbHNlO1xyXG4gICAgc2hvd1ZlcnNpb25CdXR0b24gPSBmYWxzZTtcclxuICAgIHZlcnNpb25Nb2RlbD86IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcclxuICAgIHNob3dIaXN0b3J5ID0gZmFsc2U7XHJcbiAgICBoaXN0b3J5PzogYW55O1xyXG5cclxuICAgIGNvbG9yRmlsdGVyRmllbGQgPSAnJztcclxuICAgIGNvbG9yRmlsdGVyVGFibGU/OiBSb3dDb2xvck9wdGlvbltdID0gW107XHJcblxyXG4gICAgZW50aXR5TWV0YWRhdGFTZXR0aW5nPzogQ3J1ZEZvcm1TZXR0aW5nID0gbmV3IENydWRGb3JtU2V0dGluZygpO1xyXG5cclxuICAgIGZpZWxkU2VhcmNoVGV4dD86IHN0cmluZ1tdID0gW107XHJcbiAgICBmaWx0ZXJUZW1wbGF0ZUFkdnM/OiBGaWx0ZXJbXTtcclxuXHJcbiAgICBmdW5jdGlvbjogQ3J1ZExpc3RDdXN0b21GdW5jdGlvbiA9IG5ldyBDcnVkTGlzdEN1c3RvbUZ1bmN0aW9uKCk7XHJcblxyXG4gICAgcG9wdXBIZWFkZXI/PSAnJztcclxuICAgIHBvcHVwU2l6ZT86IFBvcHVwU2l6ZSA9IG5ldyBQb3B1cFNpemUoKTtcclxuICAgIG1hc2tDbGFzcz86IHN0cmluZztcclxuXHJcbiAgICBnZXRDdXN0b21EYXRhVHJpbmhLeTogKHJvd0RhdGEpID0+IGFueSA9IChyb3dEYXRhKSA9PiAoe30pO1xyXG4gICAgZ2V0TGFiZWxCdXR0b25UcmluaEt5OiAocm93RGF0YSkgPT4gc3RyaW5nID0gKHJvd0RhdGEpID0+ICdUcsOsbmgga8O9JztcclxuICAgIGNoZWNrUmVhZHlUb1RyaW5oS3k6ICgpID0+IGJvb2xlYW4gPSAoKSA9PiB0cnVlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkTGlzdFNldHRpbmcpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBXb3JrZmxvd0NvbmZpZ0FkdmFuY2Uge1xyXG4gICAgZ2V0V29ya2Zsb3dTZXR0aW5nOiAocm93RGF0YSkgPT4gV29ya2Zsb3dTZXR0aW5nTmV3O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ3J1ZExpc3RDdXN0b21GdW5jdGlvbiB7XHJcbiAgICAvLyBDdXN0b21pemVcclxuICAgIGdldFNlYXJjaENvbnRyb2w/OiAoZmllbGQ6IHN0cmluZykgPT4gRm9ybVNjaGVtYUJhc2VbXSA9IChmaWVsZDogc3RyaW5nKSA9PiBudWxsO1xyXG4gICAgLy8gQXN5bmMgZnVuY3Rpb25cclxuICAgIG1vZGlmeUFkdmFuY2VTZWFjaE1vZGVsPzogKGRhdGE6IEFkdmFuY2VTZWFyY2hEYXRhLCBzZXR0aW5nOiBBZHZhbmNlU2VhcmNoU2V0dGluZykgPT4gUHJvbWlzZTx2b2lkPiA9IGFzeW5jIChkYXRhKSA9PiBudWxsO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENydWRMaXN0Q3VzdG9tRnVuY3Rpb24pIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQZXJzb25hbFNldHRpbmcge1xyXG4gICAgY29sdW1uU2V0dGluZz86IENvbHVtblNldHRpbmcgPSBuZXcgQ29sdW1uU2V0dGluZygpO1xyXG4gICAgcGFnZVNldHRpbmc/OiBQYWdlU2V0dGluZyA9IG5ldyBQYWdlU2V0dGluZygpO1xyXG4gICAgY29sb3JGaWx0ZXJGaWVsZCA9ICcnO1xyXG4gICAgY29sb3JGaWx0ZXJUYWJsZT86IFJvd0NvbG9yT3B0aW9uW10gPSBbXTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBQZXJzb25hbFNldHRpbmcpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDcnVkTGlzdERhdGEgZXh0ZW5kcyBDcnVkQmFzZSB7XHJcbiAgICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgICByZWFkeSA9IHRydWU7XHJcbiAgICBkYXRhU291cmNlPzogYW55W10gPSBbXTtcclxuICAgIHNlbGVjdGVkSXRlbXM/OiBhbnlbXSA9IFtdO1xyXG4gICAgc2VsZWN0ZWRJdGVtPzogYW55O1xyXG4gICAgc2VsZWN0ZWRJdGVtTGFzdD86IGFueTtcclxuICAgIHNlbGVjdGVkSWQ/OiBudW1iZXI7XHJcbiAgICB0b3RhbCA9IDA7XHJcbiAgICBpdGVtRGF0YT86IGFueTtcclxuICAgIGFkdmFuY2VEYXRhOiBhbnkgPSB7fTtcclxuXHJcbiAgICBleHBhbmRlZFJvd0tleXM/OiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkTGlzdERhdGEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEVudGl0eU1lZGF0YURhdGFTZXR0aW5nIHtcclxuICAgIGRhdGE/OiBhbnkgPSB7fTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBFbnRpdHlNZWRhdGFEYXRhU2V0dGluZykge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFJvd0NvbG9yT3B0aW9uIHtcclxuICAgIGZpbHRlclZhbHVlID0gJyc7XHJcbiAgICBjb21wYXJlVHlwZSA9ICcnO1xyXG4gICAgY29sb3IgPSAnJztcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBSb3dDb2xvck9wdGlvbikge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBhZ2VTZXR0aW5nIHtcclxuICAgIHBhZ2UgPSAxO1xyXG4gICAgcGFnZVNpemUgPSAxNTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBQYWdlU2V0dGluZykge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENvbHVtblNldHRpbmcge1xyXG4gICAgc29ydHM/OiBTb3J0W10gPSBbXTtcclxuICAgIHNvcnRGaWVsZD86IHN0cmluZztcclxuICAgIHNvcnREaXI/OiAtMSB8IDAgfCAxIHwgMiA9IC0xO1xyXG4gICAgZ3JvdXBGaWVsZCA9ICcnO1xyXG4gICAgZGV0YWlscz86IENvbHVtblNldHRpbmdEZXRhaWxbXSA9IFtdO1xyXG4gICAgY29sdW1uUmVvcmRlcj9cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDb2x1bW5TZXR0aW5nKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29sdW1uU2V0dGluZ0RldGFpbCB7XHJcbiAgICBvcmRlcj86IG51bWJlcjtcclxuICAgIGNvbHVtbkNvZGU/OiBzdHJpbmc7XHJcbiAgICBjb2x1bW5OYW1lPzogc3RyaW5nO1xyXG4gICAgdmlzaWJsZT86IGJvb2xlYW47XHJcbiAgICB0ZXh0QWxpZ24/OiBUZXh0QWxpZ247XHJcbiAgICB3aWR0aD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENydWRGb3JtRGF0YSBleHRlbmRzIENydWRCYXNlIHtcclxuICAgIGRhdGE/OiBhbnkgPSB7fTtcclxuICAgIHN1Ym1pdHRpbmc/PSBmYWxzZTtcclxuICAgIC8qKlxyXG4gICAgICogVHLhuqFuZyB0aMOhaSBj4bunYSBmb3JtIMSRYW5nIMSRxrDhu6NjIG3hu586IEzDoCBmb3JtIHRow6ptIG3hu5tpLCBoYXkgZm9ybSBz4butYSwgaGF5IGZvcm0geMOzYVxyXG4gICAgICovXHJcbiAgICBmb3JtU3RhdGU/OiBGb3JtU3RhdGUgPSBGb3JtU3RhdGUuQUREO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENydWRGb3JtRGF0YSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ3J1ZEZvcm1DdXN0b21GdW5jdGlvbiB7XHJcbiAgICAvLyBDdXN0b21pemVcclxuICAgIG1vZGlmeURhdGFBZnRlckdldENhY2hlPzogKGRhdGE6IGFueSkgPT4gdm9pZCA9IChkYXRhOiBhbnkpID0+IG51bGw7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ3J1ZExpc3RDdXN0b21GdW5jdGlvbikge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENydWRGb3JtU2V0dGluZyB7XHJcbiAgICBkaXNhYmxlQ2FjaGluZyA9IGZhbHNlO1xyXG4gICAgaGlkZGVuVHJpbmhLeSA9IHRydWU7XHJcbiAgICBzY2hlbWE/OiBGb3JtU2NoZW1hQmFzZVtdID0gW107XHJcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlO1xyXG4gICAgYnVpbGRJblNjaGVtYT86IEZvcm1Db250cm9sQmFzZVtdID0gW107XHJcbiAgICB1bmlxdWVGaWVsZD86IHN0cmluZ1tdIHwgc3RyaW5nW11bXSA9IFtdO1xyXG4gICAgZmllbGREcm9wZG93bj86IHsgW2tleTogc3RyaW5nXTogRHJvcGRvd25Db250cm9sU2NoZW1hIH0gPSB7fTtcclxuICAgIGZpZWxkTmVlZEdldFJlZj86IHsgW2tleTogc3RyaW5nXTogVGV4dENvbnRyb2xTY2hlbWEgfSA9IHt9O1xyXG4gICAgZGlzcGxheUZpZWxkPzogc3RyaW5nIHwgKChpdGVtKSA9PiBzdHJpbmcpO1xyXG4gICAgZmlyc3RGb2N1c0NvbnRyb2w/OiBzdHJpbmc7XHJcbiAgICBmaWx0ZXJDaGVja0V4aXN0QnlWZXJzaW9uPzogRmlsdGVyW107XHJcbiAgICBkZWZhdWx0RmlsdGVyQ2hlY2tFeGlzdD86IEZpbHRlcltdIHwgKCgpID0+IEZpbHRlcltdKTtcclxuICAgIGN1c3RvbVdvcmtmbG93Q29kZVRyaW5oS3k6IEVudW1Xb3JrZmxvd0NvcmVDb2RlU2V0dGluZ0tleSA9IEVudW1Xb3JrZmxvd0NvcmVDb2RlU2V0dGluZ0tleS5NQUNfRElOSDtcclxuICAgIGVudGl0eU1ldGFkYXRhRGF0YT86IENydWRGb3JtRGF0YTtcclxuICAgIGVudGl0eU1ldGFkYXRhU2V0dGluZz86IENydWRGb3JtU2V0dGluZztcclxuICAgIGZ1bmN0aW9uPzogQ3J1ZEZvcm1DdXN0b21GdW5jdGlvbiA9IG5ldyBDcnVkRm9ybUN1c3RvbUZ1bmN0aW9uKCk7XHJcbiAgICBnZXRDdXN0b21EYXRhVHJpbmhLeTogKHJvd0RhdGEpID0+IGFueSA9IChyb3dEYXRhKSA9PiAoe30pO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENydWRGb3JtU2V0dGluZykge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEFkdmFuY2VTZWFyY2hEYXRhIGV4dGVuZHMgQ3J1ZEZvcm1EYXRhIHtcclxuICAgIGluaXREYXRhPzogYW55ID0ge307XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQWR2YW5jZVNlYXJjaERhdGEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEFkdmFuY2VTZWFyY2hTZXR0aW5nIGV4dGVuZHMgQ3J1ZEZvcm1TZXR0aW5nIHtcclxuICAgIGZpZWxkS2V5ID0gJ19rJztcclxuICAgIGVudGl0eVBlcm1pc3Npb25TY2hlbWE/OiBGb3JtQ29udHJvbEJhc2VbXSA9IFtdO1xyXG4gICAga2VlcEluaXRTZWFyY2hEYXRhTm90TnVsbCA9IHRydWU7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQWR2YW5jZVNlYXJjaFNldHRpbmcpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNjaGVtYUJhc2Uge1xyXG4gICAgZmllbGQ/OiBzdHJpbmc7XHJcbiAgICB1bmlxdWVGaWVsZD86IHN0cmluZztcclxuICAgIHR5cGU/OiAnYm9vbGVhbicgfCAnaW50JyB8ICdkZWNpbWFsJyB8ICdkYXRldGltZScgfCAnc3RyaW5nJyA9ICdzdHJpbmcnO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBTY2hlbWFCYXNlKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRm9ybVNjaGVtYUJhc2UgZXh0ZW5kcyBTY2hlbWFCYXNlIHtcclxuICAgIGxhYmVsPzogc3RyaW5nO1xyXG4gICAgZnVsbExhYmVsPzogc3RyaW5nO1xyXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XHJcbiAgICBzaG93TGFiZWw/PSB0cnVlO1xyXG4gICAgZ1dpZHRoPz0gMTI7XHJcbiAgICBtZFdpZHRoPz0gNjtcclxuICAgIHdpZHRoPzogc3RyaW5nO1xyXG4gICAgY2xhc3M/PSAnJztcclxuICAgIHN0eWxlPzogYW55ID0ge307XHJcbiAgICBkaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgICBoaWRkZW4/PSBmYWxzZTtcclxuICAgIGhpZGRlbkNoZWNrPzogKHJvb3RNb2RlbDogYW55LCBjdXJyZW50Tm9kZTogQ29udHJvbFRyZWVOb2RlKSA9PiBib29sZWFuO1xyXG4gICAgaGlkZGVuT25WaWV3Pz0gZmFsc2U7XHJcbiAgICB2aXNpYmxlSW5MaXN0Pz0gdHJ1ZTtcclxuICAgIG9wZXJhdG9yPzogT3BlcmF0b3I7XHJcbiAgICBncm91cENvZGU/PSAnJztcclxuICAgIGRlZmF1bHRWYWx1ZT86IGFueTtcclxuICAgIGZpZWxkQWxpYXM/PSAnJztcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBGb3JtU2NoZW1hQmFzZSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29udGFpbmVyU2NoZW1hIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2Uge1xyXG4gICAgY29udHJvbHM6IEZvcm1TY2hlbWFCYXNlW107XHJcbiAgICBzaG93SW5Cb3g/PSB0cnVlO1xyXG4gICAgYm94U3R5bGU/OiBhbnk7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ29udGFpbmVyU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBGb3JtU2NoZW1hQmFzZVdpdGhTZXJ2aWNlIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2Uge1xyXG4gICAgLy8gVXJsIMSR4buDIGzhuqV5IGThu68gbGnhu4d1ICoqKiBLSMOUTkcgU+G7rCBE4bukTkcgVFJPTkcgQ8OBQyBDQVNFIFBI4buUIEJJ4bq+TiwgQ0jhu4ggU+G7rCBE4bukTkcgxJDhu5BJIFbhu5pJIEZPUk0gS0jhuqJPIFPDgVQgKioqXHJcbiAgICBzZXJ2aWNlVXJpPz0gJyc7XHJcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlIHwgTWFzdGVyRGF0YVNlcnZpY2U7XHJcbiAgICByZWZGaWVsZHM/OiBSZWZGaWVsZFtdID0gW107XHJcbiAgICBncm91cENvZGU/OiBzdHJpbmc7XHJcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcclxuICAgIGRpc3BsYXlGaWVsZD89ICd0ZW4nO1xyXG4gICAgZGF0YVNvdXJjZT86IGFueVtdID0gW107XHJcblxyXG4gICAgaXNTZXJ2ZXJMb2FkPz0gZmFsc2U7XHJcbiAgICBzZWFyY2hGaWVsZD86IHN0cmluZ1tdO1xyXG5cclxuICAgIGlzVHJlZT89IGZhbHNlO1xyXG4gICAgZmllbGRUcmVlPzogc3RyaW5nO1xyXG4gICAgdmFsdWVQYXJlbnRSb290PzogYW55ID0gbnVsbDsgLy8gR2nDoSB0cuG7iyB0csaw4budbmcgW2ZpZWxkVHJlZV0gY+G7p2EgaXRlbSB0cmVlIHJvb3RcclxuICAgIGZpZWxkUGFyZW50VHJlZUl0ZW0/PSAnaWQnOyAvLyBUcsaw4budbmcgeMOhYyDEkeG7i25oIGLhuqNuIGdoaSBsw6AgYuG6o24gZ2hpIGNoYSBj4bunYSBi4bqjbiBnaGkgY29uXHJcbiAgICBzZWxlY3RDaGlsZEl0ZW0/PSBmYWxzZTsgLy8gQ8OzIHNlbGVjdCBi4bqjbiBnaGkgY29uIG7hur91IGNo4buNbiBi4bqjbiBnaGkgY2hhXHJcblxyXG4gICAgcGx1c1VybD86IHN0cmluZztcclxuICAgIHNvcnRzPzogU29ydFtdID0gW107XHJcbiAgICBzb3J0RmllbGQ/PSAnJztcclxuICAgIHNvcnREaXI/OiAxIHwgLTEgPSAxO1xyXG4gICAgZmllbGRQbHVzPz0gJyc7IC8vIERhbmggc8OhY2ggbmjhu69uZyB0csaw4budbmcgYuG7lSBzdW5nIGPhuqduIGzhuqV5IHRow6ptIG5nb8OgaSBpZCwgdGVuOyBWw60gZOG7pSAsbWFcclxuICAgIGRlZmF1bHRGaWx0ZXJzPzogRmlsdGVyW10gfCBGdW5jdGlvbiB8IFByb21pc2U8RmlsdGVyW10+OyAvLyB0dW5ndHMgdGjDqm0ga2nhu4N1IGThu68gbGnhu4d1IGRlZmF1bHRGaWx0ZXJzIGzDoCBwcm9taXNlXHJcbiAgICBhZnRlckdldERhdGE/OiBGdW5jdGlvbjtcclxuXHJcbiAgICBmdW5jU2V0RGVmYXVsdFZhbHVlPzogRnVuY3Rpb247XHJcblxyXG4gICAgZmllbGRWYWx1ZVBhcmVudD89ICd2YWx1ZSc7IC8vIFRyxrDhu51uZyBz4butIGThu6VuZyDEkeG7gyBs4bqleSBk4buvIGxp4buHdSBsw6BtIGtow7NhIHThu6sgYuG6o25nIGNoYSBj4bunYSBpdGVtIGRyb3AgZG93biDEkcaw4bujYyBjaOG7jW5cclxuXHJcbiAgICBjYWxsYmFja0RhdGFGaW5pc2g/OiAoZXZ0OiBFdmVudERhdGEpID0+IHZvaWQ7XHJcbiAgICBtb2RpZnlGaWx0ZXI/OiBGdW5jdGlvbjtcclxuICAgIGZ1bmNHZXRMYWJlbD86IChpdGVtKSA9PiBzdHJpbmc7XHJcbiAgICBmdW5jQ29tcGFyZT86IChpdGVtOiBhbnksIHZhbHVlKSA9PiBib29sZWFuID0gKGl0ZW0sIHZhbHVlKSA9PiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gPT0gdmFsdWU7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRm9ybVNjaGVtYUJhc2VXaXRoU2VydmljZSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTGFiZWxTY2hlbWEgZXh0ZW5kcyBGb3JtU2NoZW1hQmFzZSB7XHJcbiAgICBmb3I/PSAnJztcclxuICAgIGlzSHRtbD89IGZhbHNlO1xyXG4gICAgbWRXaWR0aD89IDEyO1xyXG4gICAgaW5kZXhMYWJlbD86IG51bWJlcjtcclxuICAgIHRleHQ/PSAnJztcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogTGFiZWxTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRpdGxlU2NoZW1hIGV4dGVuZHMgTGFiZWxTY2hlbWEge1xyXG4gICAgY2xhc3M/PSAndGl0bGUtZ3JvdXAgdGV4dC1ib2xkJztcclxuICAgIG1kV2lkdGg/PSAxMjtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUaXRsZVNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRm9ybUNvbnRyb2xCYXNlIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2Uge1xyXG4gICAgX2NvbXBvbmVudD86IGFueTsgLy8gQ29tcG9uZW50IGPhu6dhIHNjaGVtYSBraGkga2jhu59pIHThuqFvXHJcbiAgICB1bmlxdWVGaWVsZD86IHN0cmluZzsgLy8gU+G7rSBk4bulbmcgdHJvbmcgdGFibGUgc2NoZW1hXHJcbiAgICBhdXRvZm9jdXM/PSBmYWxzZTtcclxuICAgIHZhbGlkYXRvcnM/OiBJVmFsaWRhdG9yW10gPSBbXTtcclxuICAgIGNvcnJlY3RvcnM/OiBJQ29ycmVjdG9yW10gPSBbXTtcclxuICAgIHJlcXVpcmVkPz0gZmFsc2U7XHJcbiAgICBlbmFibGVDYWNoaW5nPz0gZmFsc2U7XHJcbiAgICBvbkNoYW5nZWQ/OiBGdW5jdGlvbjtcclxuICAgIHRyaWdnZXJMb2FkQ2hpbGQ/OiBGdW5jdGlvbjtcclxuICAgIGhhc09wZXJhdG9yQ2FuQm8/PSBmYWxzZTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBGb3JtQ29udHJvbEJhc2UpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEZvcm1Db250cm9sQmFzZVdpdGhTZXJ2aWNlIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIC8qKiBDb3B5IHThu6sgRm9ybVNjaGVtYUJhc2VXaXRoU2VydmljZSAqL1xyXG4gICAgLy8gVXJsIMSR4buDIGzhuqV5IGThu68gbGnhu4d1ICoqKiBLSMOUTkcgU+G7rCBE4bukTkcgVFJPTkcgQ8OBQyBDQVNFIFBI4buUIEJJ4bq+TiwgQ0jhu4ggU+G7rCBE4bukTkcgxJDhu5BJIFbhu5pJIEZPUk0gS0jhuqJPIFPDgVQgKioqXHJcbiAgICBzZXJ2aWNlVXJpPz0gJyc7XHJcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlIHwgTWFzdGVyRGF0YVNlcnZpY2U7XHJcbiAgICByZWZGaWVsZHM/OiBSZWZGaWVsZFtdID0gW107XHJcbiAgICBncm91cENvZGU/OiBzdHJpbmc7XHJcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcclxuICAgIGRpc3BsYXlGaWVsZD89ICd0ZW4nO1xyXG5cclxuICAgIGlzU2VydmVyTG9hZD89IGZhbHNlO1xyXG4gICAgc2VhcmNoRmllbGQ/OiBzdHJpbmdbXTtcclxuXHJcbiAgICBpc1RyZWU/PSBmYWxzZTtcclxuICAgIGZpZWxkVHJlZT86IHN0cmluZztcclxuICAgIHZhbHVlUGFyZW50Um9vdD86IGFueSA9IG51bGw7IC8vIEdpw6EgdHLhu4sgdHLGsOG7nW5nIFtmaWVsZFRyZWVdIGPhu6dhIGl0ZW0gdHJlZSByb290XHJcbiAgICBmaWVsZFBhcmVudFRyZWVJdGVtPz0gJ2lkJzsgLy8gVHLGsOG7nW5nIHjDoWMgxJHhu4tuaCBi4bqjbiBnaGkgbMOgIGLhuqNuIGdoaSBjaGEgY+G7p2EgYuG6o24gZ2hpIGNvblxyXG4gICAgc2VsZWN0Q2hpbGRJdGVtPz0gZmFsc2U7IC8vIEPDsyBzZWxlY3QgYuG6o24gZ2hpIGNvbiBu4bq/dSBjaOG7jW4gYuG6o24gZ2hpIGNoYVxyXG5cclxuICAgIHBsdXNVcmw/OiBzdHJpbmc7XHJcbiAgICBzb3J0cz86IFNvcnRbXSA9IFtdO1xyXG4gICAgc29ydEZpZWxkPz0gJyc7XHJcbiAgICBzb3J0RGlyPzogMSB8IC0xID0gMTtcclxuICAgIGZpZWxkUGx1cz89ICcnOyAvLyBEYW5oIHPDoWNoIG5o4buvbmcgdHLGsOG7nW5nIGLhu5Ugc3VuZyBj4bqnbiBs4bqleSB0aMOqbSBuZ2/DoGkgaWQsIHRlbjsgVsOtIGThu6UgLG1hXHJcbiAgICBkZWZhdWx0RmlsdGVycz86IEZpbHRlcltdIHwgRnVuY3Rpb24gfCBQcm9taXNlPEZpbHRlcltdPjsgLy8gdHVuZ3RzIHRow6ptIGtp4buDdSBk4buvIGxp4buHdSBkZWZhdWx0RmlsdGVycyBsw6AgcHJvbWlzZVxyXG4gICAgYmluZGluZ0ZpbHRlcnM/OiBGaWx0ZXJbXSB8IEZ1bmN0aW9uIHwgUHJvbWlzZTxGaWx0ZXJbXT47IC8vIHR1bmd0cyB0aMOqbSBraeG7g3UgZOG7ryBsaeG7h3UgZGVmYXVsdEZpbHRlcnMgbMOgIHByb21pc2VcclxuICAgIGFmdGVyR2V0RGF0YT86IEZ1bmN0aW9uO1xyXG5cclxuICAgIGZ1bmNTZXREZWZhdWx0VmFsdWU/OiBGdW5jdGlvbjtcclxuXHJcbiAgICBwYXJlbnRGaWVsZD86IHN0cmluZzsgLy8gQ29sdW1uIHTGsMahbmcg4bupbmcgdHJvbmcgdGFibGUgc3FsIHNlcnZlci5cclxuICAgIGZpZWxkVmFsdWVQYXJlbnQ/PSAndmFsdWUnOyAvLyBUcsaw4budbmcgc+G7rSBk4bulbmcgxJHhu4MgbOG6pXkgZOG7ryBsaeG7h3UgbMOgbSBraMOzYSB04burIGLhuqNuZyBjaGEgY+G7p2EgaXRlbSBkcm9wIGRvd24gxJHGsOG7o2MgY2jhu41uXHJcblxyXG4gICAgY2FsbGJhY2tEYXRhRmluaXNoPzogKGV2dDogRXZlbnREYXRhKSA9PiB2b2lkO1xyXG4gICAgZmlyZUNhbGxCYWNrSW5zaWRlPz0gdHJ1ZTtcclxuICAgIG1vZGlmeUZpbHRlcj86IEZ1bmN0aW9uO1xyXG4gICAgY29yZVZlcnNpb24/PSBFbnVtQ29yZVZlcnNpb24uVjU7XHJcblxyXG4gICAgZnVuY0dldExhYmVsPzogKGl0ZW0pID0+IHN0cmluZztcclxuICAgIGZ1bmNDb21wYXJlPzogKGl0ZW06IGFueSwgdmFsdWUpID0+IGJvb2xlYW4gPSAoaXRlbSwgdmFsdWUpID0+IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA9PSB2YWx1ZTtcclxuICAgIC8qKiBFbmQgY29weSB04burIEZvcm1TY2hlbWFCYXNlV2l0aFNlcnZpY2UgKi9cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRm9ybUNvbnRyb2xCYXNlV2l0aFNlcnZpY2UpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRleHRDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIHNlbGVjdEFsbFRleHQ/PSBmYWxzZTsgLy8gQ2jhu41uIHThuqV0IGPhuqMgdGV4dCBraGkgZm9jdXNcclxuXHJcbiAgICBwbGFjZWhvbGRlcj89ICcnO1xyXG4gICAgZGF0YUZvcm1hdD86ICd0ZXh0JyB8ICdwYXNzd29yZCcgfCAnbnVtYmVyJyB8ICdlbWFpbCcgfCAncGhvbmUnIHwgJ2ZheCcgfCAnbW9uZXknIHwgJ21vbmV5aW50JyB8ICdhbW91bnQnID0gJ3RleHQnO1xyXG4gICAgbWF4TGVuZ3RoPzogbnVtYmVyO1xyXG4gICAgbWluPz0gMDtcclxuICAgIG1heD89IDk5OTk5OTk5O1xyXG5cclxuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2UgfCBNYXN0ZXJEYXRhU2VydmljZTtcclxuICAgIGdyb3VwQ29kZT86IHN0cmluZztcclxuICAgIHZhbHVlRmllbGQ/PSAnaWQnO1xyXG4gICAgZGlzcGxheUZpZWxkPz0gJ3Rlbic7XHJcblxyXG4gICAgcGx1c1VybD86IHN0cmluZztcclxuICAgIHNvcnRzPzogU29ydFtdID0gW107XHJcbiAgICBzb3J0RmllbGQ/PSAnJztcclxuICAgIHNvcnREaXI/OiAxIHwgLTEgPSAxO1xyXG4gICAgZmllbGRQbHVzPz0gJyc7IC8vIERhbmggc8OhY2ggbmjhu69uZyB0csaw4budbmcgYuG7lSBzdW5nIGPhuqduIGzhuqV5IHRow6ptIG5nb8OgaSBpZCwgdGVuOyBWw60gZOG7pSAsbWFcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVGV4dENvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRleHRDb250cm9sU2NoZW1hV2l0aFNlcnZpY2UgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2VXaXRoU2VydmljZSB7XHJcbiAgICBwbGFjZWhvbGRlcj89ICcnO1xyXG4gICAgZGF0YUZvcm1hdD86ICd0ZXh0JyB8ICdudW1iZXInIHwgJ2VtYWlsJyB8ICdwaG9uZScgfCAnZmF4JyB8ICdtb25leScgfCAnbW9uZXlpbnQnIHwgJ2Ftb3VudCcgPSAndGV4dCc7XHJcbiAgICBtYXhMZW5ndGg/OiBudW1iZXI7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFRleHRDb250cm9sU2NoZW1hV2l0aFNlcnZpY2UpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE1hc2tDb250cm9sU2NoZW1hIGV4dGVuZHMgVGV4dENvbnRyb2xTY2hlbWEge1xyXG4gICAgbWFza1R5cGU/OiAnZGVjaW1hbCcgfCAnaW50JyA9ICdpbnQnO1xyXG4gICAgbWluPz0gMDtcclxuICAgIG1heD89IDk5OTk5OTk5OTk7XHJcbiAgICBwcmVmaXg/PSAnJztcclxuICAgIHN1ZmZpeD89ICcnO1xyXG4gICAgZGVjaW1hbFBsYWNlcz89IDI7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogTWFza0NvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE51bWJlclJhbmdlQ29udHJvbFNjaGVtYSBleHRlbmRzIFRleHRDb250cm9sU2NoZW1hIHtcclxuICAgIG1hc2tUeXBlPzogJ2RlY2ltYWwnIHwgJ2ludCc7XHJcbiAgICBtaW4/PSAwO1xyXG4gICAgbWF4Pz0gOTk5OTk5OTk5OTtcclxuICAgIHByZWZpeD89ICcnO1xyXG4gICAgc3VmZml4Pz0gJyc7XHJcbiAgICBkZWNpbWFsUGxhY2VzPz0gMjtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBOdW1iZXJSYW5nZUNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERhdGVUaW1lQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XHJcbiAgICBhcHBlbmRUbz89ICdib2R5JztcclxuICAgIHBhbmVsQ2xhc3M/PSAnJztcclxuICAgIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gICAgc2hvd1RpbWU/PSBmYWxzZTtcclxuICAgIHNob3dJY29uPz0gdHJ1ZTtcclxuICAgIGZvcm1hdD86ICdub3JtYWwnIHwgJ2Zyb21Ob3cnID0gJ2Zyb21Ob3cnO1xyXG4gICAgc2hvd09uRm9jdXM/PSB0cnVlO1xyXG4gICAgbWluRGF0ZT86IERhdGUgPSBudWxsO1xyXG4gICAgbWF4RGF0ZT86IERhdGUgPSBudWxsO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBEYXRlVGltZUNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLnBsYWNlaG9sZGVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGxhY2Vob2xkZXIgPSB0aGlzLnNob3dUaW1lID8gJ2RkL01NL3l5eXkgaGg6bW0nIDogJ2RkL01NL3l5eXknO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERhdGVUaW1lUmFuZ2VDb250cm9sU2NoZW1hIGV4dGVuZHMgRGF0ZVRpbWVDb250cm9sU2NoZW1hIHtcclxuICAgIHNob3dJY29uPz0gZmFsc2U7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRGF0ZVRpbWVDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBFbnRpdHlQaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlV2l0aFNlcnZpY2Uge1xyXG5cclxuICAgIC8vICNQcm9wZXJ0eSBvdmVycmlkZVxyXG4gICAgYmFzZVNlcnZpY2U/OiBCYXNlU2VydmljZTtcclxuICAgIC8vICNFbmQgcHJvcGVydHkgb3ZlcnJpZGVcclxuXHJcbiAgICByZXR1cm5UeXBlPzogJ3ZhbHVlJyB8ICdvYmplY3QnID0gJ3ZhbHVlJztcclxuXHJcbiAgICBtdWx0aXBsZT89IHRydWU7XHJcbiAgICBsaW1pdD89IDEwMDA7XHJcbiAgICB0aXRsZT89ICcgJztcclxuICAgIGNvbHVtbnM/OiBFbnRpdHlQaWNrZXJDb2x1bW5bXTtcclxuICAgIGZpZWxkU2VhcmNoVGV4dD86IHN0cmluZ1tdID0gW107XHJcbiAgICBkYXRhSW5pdD86IGFueSA9IHt9O1xyXG4gICAgYWR2YW5jZVNlYXJjaE1vZGVsPzogYW55ID0ge307XHJcbiAgICBvblNlYXJjaEZvcm1Jbml0aWFsaXplZD86IEZ1bmN0aW9uO1xyXG4gICAgb25Gb3JtRXZlbnQ/OiBGdW5jdGlvbjtcclxuICAgIG9uU2VsZWN0RW50aXR5PzogRnVuY3Rpb247IC8vIG7hur91IGZ1bmN0aW9uIGtow6FjIG51bGwgdsOgIHJldHVybiB0cnVlIHPhur0gY2hvIHBow6lwIG3hu58gZGlhbG9nXHJcbiAgICBhZnRlckNvbnRlbnRMZWZ0SW5pdD86IChjcnVkTGlzdDogQ3J1ZExpc3RDb21wb25lbnQpID0+IHZvaWQ7IC8vIFNhdSBraGkgY8OhYyB0ZW1wbGF0ZSBjb250ZW50IGluaXRcclxuICAgIGFmdGVyQ29udGVudFJpZ2h0SW5pdD86IChjcnVkTGlzdDogQ3J1ZExpc3RDb21wb25lbnQpID0+IHZvaWQ7IC8vIFNhdSBraGkgY8OhYyB0ZW1wbGF0ZSBjb250ZW50IGluaXRcclxuICAgIGFmdGVyR2V0RGF0YT86IChzb3VyY2VzOiBhbnlbXSwgZWxlbWVudDogRW50aXR5UGlja2VyQ29tcG9uZW50KSA9PiB2b2lkO1xyXG4gICAgYWZ0ZXJHZXREYXRhVW5QaWNrZWQ/OiAoc291cmNlczogYW55W10sIGVsZW1lbnQ6IEVudGl0eVBpY2tlckRhdGFDb21wb25lbnQpID0+IHZvaWQ7XHJcbiAgICBhZnRlckdldERhdGFQaWNrZWQ/OiAoc291cmNlczogYW55W10sIGVsZW1lbnQ6IEVudGl0eVBpY2tlclNlbGVjdGVkQ29tcG9uZW50KSA9PiB2b2lkO1xyXG5cclxuICAgIC8vIEPDsyBz4butIGThu6VuZyBwbHVzVXJsIOG7nyBtw6BuIGjDrG5oIGNow61uaCBFbnRpdHlQaWNrZXIgaGF5IGtow7RuZy5cclxuICAgIHVzZURlZmF1bHRQbHVzbFVybEluTGlzdD89IGZhbHNlO1xyXG5cclxuICAgIC8vIEPDsyBz4butIGThu6VuZyBkZWZhdWx0RmlsdGVyIGtoaSB0w6xtIGtp4bq/bSBkYW5oIHPDoWNoIOG7nyBtw6BuIGjDrG5oIGNow61uaCBFbnRpdHlQaWNrZXIuXHJcbiAgICB1c2VEZWZhdWx0RmlsdGVySW5MaXN0Pz0gZmFsc2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEVudGl0eVBpY2tlckNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEF1dG9Db21wbGV0ZVBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBFbnRpdHlQaWNrZXJDb250cm9sU2NoZW1hIHtcclxuICAgIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gICAgZGF0YVR5cGU/OiBFbnVtQ29udHJvbFBpY2tlclR5cGUgPSBFbnVtQ29udHJvbFBpY2tlclR5cGUuVVNFUjtcclxuICAgIGFwcGVuZFRvPz0gJ2JvZHknO1xyXG4gICAgbW9kaWZ5SW5pdFNlYXJjaERhdGE/OiBGdW5jdGlvbjsgLy8gU+G7rSBk4bulbmcgxJHhu4MgbW9kaWZ5IGRhdGEgY+G7p2EgcGjhuqduIHNlYXJjaCwgdGjGsOG7nW5nIMSR4buDIHNldCBpbml0IGRhdGEgZHluYW1pYyB0aGVvIG5odSBj4bqndVxyXG4gICAgY2FsbEJhY2s/OiB7IFtrZXk6IHN0cmluZ106IEZ1bmN0aW9uIH07XHJcbiAgICBvblJlYWR5PzogKGV2dDogRXZlbnREYXRhKSA9PiB2b2lkO1xyXG4gICAgbW9kaWZ5Q29udHJvbD86IEZ1bmN0aW9uOyAvLyBT4butIGThu6VuZyDEkeG7gyBtb2RpZnkgc2NoZW1hIGJhc2VcclxuICAgIG5lZWRDbG9uZT89IGZhbHNlOyAvLyBT4butIGThu6VuZyB0cm9uZyB0YWJsZSBzY2hlbWEsIGtoaSBkYXRhc291cmNlIGPhu6dhIG3hu5l0IGPhu5l0IHRyw6puIG3hu5dpIGTDsm5nIGzDoCBraMOhYyBuaGF1IGPhuqduIHNldCBuZWVkQ2xvbmUgPSB0cnVlXFxcclxuICAgIGFmdGVyR2V0RGF0YURyb3Bkb3duPzogKHNvdXJjZXM6IGFueVtdLCBlbGVtZW50OiBBdXRvQ29tcGxldGVQaWNrZXJDb21wb25lbnQpID0+IHZvaWQ7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQXV0b0NvbXBsZXRlUGlja2VyQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgV3JhcFBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBBdXRvQ29tcGxldGVQaWNrZXJDb250cm9sU2NoZW1hIHtcclxuICAgIGRhdGFUeXBlPzogRW51bUNvbnRyb2xQaWNrZXJUeXBlID0gRW51bUNvbnRyb2xQaWNrZXJUeXBlLlVTRVI7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogV3JhcFBpY2tlckNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEN1c3RvbUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ3VzdG9tQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29sb3JQaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIGVuYWJsZUNhY2hpbmc/PSB0cnVlO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENvbG9yUGlja2VyQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIFNwYW5Db250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIHNvdXJjZUZpZWxkPzogc3RyaW5nO1xyXG4gICAgaXNodG1sPz0gZmFsc2U7XHJcbiAgICBlZGl0YWJsZT89IGZhbHNlO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFNwYW5Db250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb2xvckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgc291cmNlRmllbGQ/OiBzdHJpbmc7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ29sb3JDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBLZXlWYWx1ZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEtleVZhbHVlQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRmlsZU1hbmFnZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIG1kV2lkdGg/PSAxMjtcclxuICAgIGFjY2VwdD86IHN0cmluZztcclxuICAgIG1heEZpbGVTaXplPz0gMTAwMDAwMDAwO1xyXG4gICAgaW52YWxpZEZpbGVTaXplTWVzc2FnZVN1bW1hcnk/PSAnezB9OiBRdcOhIGR1bmcgbMaw4bujbmcgZmlsZSBjaG8gcGjDqXAsICc7XHJcbiAgICBpbnZhbGlkRmlsZVNpemVNZXNzYWdlRGV0YWlsPz0gJ2R1bmcgbMaw4bujbmcgdOG7kWkgxJFhIGzDoCB7MH0uJztcclxuICAgIGludmFsaWRGaWxlVHlwZU1lc3NhZ2VTdW1tYXJ5Pz0gJ3swfTogS2jDtG5nIMSRw7puZyDEkeG7i25oIGThuqFuZyBmaWxlLCAnO1xyXG4gICAgaW52YWxpZEZpbGVUeXBlTWVzc2FnZURldGFpbD89ICfEkeG7i25oIGThuqFuZyBmaWxlIGNobyBwaMOpcDogezB9Lic7XHJcbiAgICBpbnZhbGlkRmlsZUxpbWl0TWVzc2FnZVN1bW1hcnk/PSAnUXXDoSBz4buRIGzGsOG7o25nIGZpbGUgY2hvIHBow6lwLCAnO1xyXG4gICAgaW52YWxpZEZpbGVMaW1pdE1lc3NhZ2VEZXRhaWw/PSAndOG7kWkgxJFhIHswfSBmaWxlLic7XHJcbiAgICBtb2RlPzogRmlsZU1hbmFnZXJNb2RlIHwgRmlsZVVwbG9hZE1vZGUgPSBGaWxlTWFuYWdlck1vZGUubXVsdGlwbGU7XHJcbiAgICBsYXlvdXQ/OiBFbnVtRmlsZUxheW91dCA9IEVudW1GaWxlTGF5b3V0LkxJU1Q7XHJcbiAgICByZWFkb25seT89IGZhbHNlO1xyXG5cclxuICAgIC8vIFNlcnZpY2UgZMO5bmcgxJHhu4MgbOG6pXkgZGF0YXNvdXJjZSBj4bunYSBuaGnhu4F1IGNvbnRyb2wgbeG7mXQgbOG6p24uXHJcbiAgICBmaWxlRGF0YVNlcnZpY2U/OiBGaWxlRGF0YVNlcnZpY2U7XHJcblxyXG4gICAgLy8gQuG7mSAzIGtleSDEkeG7gyBs4bqleSB0aMawIG3hu6VjIGfhu5FjLlxyXG4gICAgc2VydmljZUNvZGU/OiBzdHJpbmc7XHJcbiAgICBlbnRpdHk/OiBzdHJpbmc7XHJcbiAgICBlbnRpdHlLZXk/OiBzdHJpbmc7XHJcblxyXG4gICAgLy8gVMOqbiB0aMawIG3hu6VjIGfhu5FjIGtoaSBoaeG7g24gdGjhu4sgdHLDqm4gYnJlYWRjcnVtYnMuXHJcbiAgICByb290Rm9sZGVyTmFtZT86IHN0cmluZztcclxuXHJcbiAgICAvLyBUcsaw4budbmcgaOG7o3Ag4bufIHRyb25nIGZvcm0sIGTDuW5nIHRyxrDhu51uZyBuw6B5IMSR4buDIGzhuqV5XHJcbiAgICAvLyBlbnRpdHlLZXkgdOG7qyBtb2RlbC5kYXRhIHRoYXkgdsOsIHRydXnhu4FuIHbDoG8gZW50aXR5S2V5XHJcbiAgICBlbnRpdHlLZXlGaWVsZD89ICdpZCc7XHJcbiAgICBtdWx0aXBsZT89IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBGaWxlTWFuYWdlckNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRDb250cm9sU2NoZW1hIGV4dGVuZHMgRmlsZU1hbmFnZXJDb250cm9sU2NoZW1hIHtcclxuICAgIG1vZGU/PSBGaWxlVXBsb2FkTW9kZS51c2luZ1NlcnZpY2VGaWxlO1xyXG4gICAgbWRXaWR0aD89IDY7XHJcbiAgICBzaGFyZWRGb2xkZXJUeXBlPzogU2hhcmVkRm9sZGVyVHlwZSA9IFNoYXJlZEZvbGRlclR5cGUuVGVtcHQ7XHJcblxyXG4gICAgaGlkZGVuQnV0dG9ucz89IGZhbHNlO1xyXG4gICAgZGlzYWJsZWQ/PSBmYWxzZTtcclxuICAgIHJlYWRvbmx5Pz0gZmFsc2U7XHJcbiAgICBhdXRvU2F2ZWQ/PSB0cnVlO1xyXG5cclxuICAgIGVuYWJsZVNjYW4/PSBmYWxzZTtcclxuICAgIGV4dHJhY3RaaXBGaWxlPz0gZmFsc2U7XHJcbiAgICBlbmFibGVEcml2ZUZpbGU/PSBmYWxzZTtcclxuXHJcbiAgICBzaG93RG93bmxvYWRGaWxlPz0gdHJ1ZTtcclxuICAgIHNob3dEZWxldGVGaWxlPz0gdHJ1ZTtcclxuICAgIHNob3dQcmludEZpbGU/PSB0cnVlO1xyXG4gICAgbWF4RmlsZVNpemU/PSAxMDAwMDAwMDA7IC8vIDEwMCBNQlxyXG4gICAgaW52YWxpZEZpbGVTaXplTWVzc2FnZVN1bW1hcnk/PSAnezB9OiBRdcOhIGR1bmcgbMaw4bujbmcgZmlsZSBjaG8gcGjDqXAsICc7XHJcbiAgICBpbnZhbGlkRmlsZVNpemVNZXNzYWdlRGV0YWlsPz0gJ2R1bmcgbMaw4bujbmcgdOG7kWkgxJFhIGzDoCB7MH0uJztcclxuICAgIGludmFsaWRGaWxlVHlwZU1lc3NhZ2VTdW1tYXJ5Pz0gJ3swfTogS2jDtG5nIMSRw7puZyDEkeG7i25oIGThuqFuZyBmaWxlLCAnO1xyXG4gICAgaW52YWxpZEZpbGVUeXBlTWVzc2FnZURldGFpbD89ICfEkeG7i25oIGThuqFuZyBmaWxlIGNobyBwaMOpcDogezB9Lic7XHJcbiAgICBpbnZhbGlkRmlsZUxpbWl0TWVzc2FnZVN1bW1hcnk/PSAnUXXDoSBz4buRIGzGsOG7o25nIGZpbGUgY2hvIHBow6lwLCAnO1xyXG4gICAgaW52YWxpZEZpbGVMaW1pdE1lc3NhZ2VEZXRhaWw/PSAndOG7kWkgxJFhIHswfSBmaWxlLic7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEZpbGVVcGxvYWRDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBjbGFzcyBTd2l0Y2hDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBTd2l0Y2hDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDaGVja2JveENvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgZW5hYmxlQ2FjaGluZz89IHRydWU7XHJcbiAgICBoaWRkZW5MYWJlbD89IGZhbHNlOyAvLyBTZXQgPSB0cnVlIGNo4bunIHnhur91IGtoaSBkw7luZyB0cm9uZyB0YWJsZSBzY2hlbWEgxJHhu4Mg4bqpbiBsYWJlbCDEkWksIHbDrCBsYWJlbCDEkcOjIGPDsyB0csOqbiB0acOqdSDEkeG7gSBj4buZdFxyXG4gICAgY2hlY2tib3hMYWJlbD86IHN0cmluZztcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDaGVja2JveENvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEJ1dHRvbkNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtU2NoZW1hQmFzZSB7XHJcbiAgICBzaG93TGFiZWw/PSBmYWxzZTtcclxuICAgIGJ0Q2xhc3M/PSAncC1idXR0b24tdGV4dCc7XHJcbiAgICBpY29uPztcclxuICAgIGJ0U3R5bGU/PSB7IHdpZHRoOiAnYXV0bycgfTtcclxuICAgIG9uQ2xpY2s/OiBGdW5jdGlvbjtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBCdXR0b25Db250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtU2NoZW1hQmFzZSB7XHJcbiAgICB0ZW1wbGF0ZTogYW55O1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFRlbXBsYXRlQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVGV4dEFyZWFDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIHJvd3M/PSA1O1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFRleHRBcmVhQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVXNlclBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgYXBwZW5kVG8/PSAnYm9keSc7XHJcbiAgICBtdWx0aXBsZT89IHRydWU7XHJcbiAgICBsaW1pdD89IDIwOyAvLyBHaeG7m2kgaOG6oW4gc+G7kSBuZ8aw4budaSBkw7luZyB04buRaSDEkWEgxJHGsOG7o2MgcGlja1xyXG4gICAgdGl0bGU/PSAnQ2jhu41uIG5nxrDhu51pIGTDuW5nJztcclxuICAgIGRlZmF1bHRGaWx0ZXJzPzogRmlsdGVyW10gfCBGdW5jdGlvbiB8IFByb21pc2U8RmlsdGVyW10+O1xyXG4gICAgZW5hYmxlQ2FjaGluZz89IHRydWU7XHJcbiAgICBwYXJlbnRPcmdDb2RlPzogc3RyaW5nO1xyXG4gICAgcGxhY2Vob2xkZXI/PSAnJztcclxuICAgIGxhenlMb2FkT3JnYW5pemF0aW9uPz0gZmFsc2U7XHJcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcclxuICAgIGRpc3BsYXlGaWVsZD89ICdmdWxsTmFtZU5ldyc7XHJcbiAgICBmaWVsZFBsdXM/PSAnJztcclxuICAgIHBsdXNVcmw/OiBzdHJpbmc7XHJcbiAgICByZXR1cm5UeXBlPzogJ3ZhbHVlJyB8ICdvYmplY3QnID0gJ3ZhbHVlJztcclxuICAgIG9uUmVhZHk/OiAoZXZ0OiBFdmVudERhdGEpID0+IHZvaWQ7XHJcbiAgICBmdW5jR2V0TGFiZWw/OiAoaXRlbSkgPT4gc3RyaW5nO1xyXG4gICAgZnVuY0NvbXBhcmU/OiAoaXRlbTogYW55LCB2YWx1ZSkgPT4gYm9vbGVhbiA9IChpdGVtLCB2YWx1ZSkgPT4gaXRlbVt0aGlzLnZhbHVlRmllbGRdID09IHZhbHVlO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFVzZXJQaWNrZXJDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb0NhdVRvQ2h1Y1BpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgYXBwZW5kVG8/PSAnYm9keSc7XHJcbiAgICBtdWx0aXBsZT89IHRydWU7XHJcbiAgICBsaW1pdD89IDIwOyAvLyBHaeG7m2kgaOG6oW4gc+G7kSBi4bqjbiBnaGkgdOG7kWkgxJFhIMSRxrDhu6NjIHBpY2tcclxuICAgIHRpdGxlPz0gJ0No4buNbiDEkcahbiB24buLJztcclxuICAgIGRlZmF1bHRGaWx0ZXJzPzogRmlsdGVyW10gfCBGdW5jdGlvbiB8IFByb21pc2U8RmlsdGVyW10+O1xyXG4gICAgZW5hYmxlQ2FjaGluZz89IHRydWU7XHJcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcclxuICAgIGRpc3BsYXlGaWVsZD89ICd0ZW4nO1xyXG4gICAgZmllbGRQbHVzPz0gJyc7XHJcbiAgICBwbHVzVXJsPzogc3RyaW5nO1xyXG4gICAgb25SZWFkeT86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcclxuICAgIGZ1bmNHZXRMYWJlbD86IChpdGVtKSA9PiBzdHJpbmc7XHJcbiAgICBmdW5jQ29tcGFyZT86IChpdGVtOiBhbnksIHZhbHVlKSA9PiBib29sZWFuID0gKGl0ZW0sIHZhbHVlKSA9PiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gPT0gdmFsdWU7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVXNlclBpY2tlckNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE9yZ2FuaXphdGlvblBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgZmlsdGVyPz0gdHJ1ZTtcclxuICAgIG11bHRpcGxlPz0gdHJ1ZTtcclxuICAgIHBhcmVudE9yZ0lkPzogbnVtYmVyO1xyXG4gICAgcGFyZW50T3JnQ29kZT86IHN0cmluZztcclxuICAgIGVuYWJsZUNhY2hpbmc/PSB0cnVlO1xyXG4gICAgaXNVc2luZ0lkPz0gdHJ1ZTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBPcmdhbml6YXRpb25QaWNrZXJDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb0NhdVRvQ2h1Y0NvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgZmlsdGVyPz0gdHJ1ZTtcclxuICAgIG11bHRpcGxlPz0gdHJ1ZTtcclxuICAgIHBhcmVudE9yZ0lkPzogbnVtYmVyO1xyXG4gICAgcGFyZW50T3JnQ29kZT86IHN0cmluZztcclxuICAgIGVuYWJsZUNhY2hpbmc/PSB0cnVlO1xyXG4gICAgaXNVc2luZ0lkPz0gdHJ1ZTtcclxuICAgIGRpc2FibGVkUGFyZW50SXRlbT89IHRydWU7XHJcbiAgICByb290UGFyZW50SWQ/OiBzdHJpbmcgPSBudWxsO1xyXG4gICAgZGlzYWJsZWQ/PSBmYWxzZTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDb0NhdVRvQ2h1Y0NvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEVkaXRvckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgbW9kZT86ICdiYXNpYycgfCAnbWVkaXVtJyB8ICdmdWxsJyB8ICdzaW1wbGUnID0gJ2Jhc2ljJztcclxuICAgIGhlaWdodD89IDI1MDtcclxuICAgIGluaXQ/OiBhbnk7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRWRpdG9yQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2VXaXRoU2VydmljZSB7XHJcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcclxuICAgIGRpc3BsYXlGaWVsZD89ICd0ZW4nO1xyXG4gICAgcmV0dXJuVHlwZT86ICd2YWx1ZScgfCAnb2JqZWN0JyA9ICd2YWx1ZSc7XHJcbiAgICBkYXRhU291cmNlPzogYW55IHwgRnVuY3Rpb247XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERyb3Bkb3duQ29udHJvbFNjaGVtYSBleHRlbmRzIERhdGFTb3VyY2VDb250cm9sU2NoZW1hIHtcclxuICAgIGFwcGVuZFRvPz0gJ2JvZHknO1xyXG4gICAgcGFuZWxDbGFzcz89ICcnO1xyXG4gICAgcGxhY2Vob2xkZXI/PSAnQ2jhu41uJztcclxuICAgIHNlbGVjdGVkSXRlbXNMYWJlbD89ICfEkMOjIGNo4buNbiB7MH0gbeG7pWMnO1xyXG4gICAgc2VsZWN0ZWRBbGxJdGVtTGFiZWw/PSAnxJDDoyBjaOG7jW4gdOG6pXQgY+G6oyc7XHJcbiAgICBzaG93Q2xlYXI/PSB0cnVlO1xyXG4gICAgZmlsdGVyPz0gdHJ1ZTtcclxuICAgIG11bHRpcGxlPz0gZmFsc2U7XHJcbiAgICBnZW5lcmF0ZVRvb2x0aXA/OiAoaXRlbSkgPT4gc3RyaW5nO1xyXG4gICAgbWF4U2VsZWN0ZWRMYWJlbHM/PSA1O1xyXG4gICAgbWF4SXRlbURpc3BsYXk/PSA1MDtcclxuICAgIGVuYWJsZUNhY2hpbmc/PSB0cnVlO1xyXG4gICAgbmVlZENsb25lPz0gZmFsc2U7IC8vIFPhu60gZOG7pW5nIHRyb25nIHRhYmxlIHNjaGVtYSwga2hpIGRhdGFzb3VyY2UgY+G7p2EgbeG7mXQgY+G7mXQgdHLDqm4gbeG7l2kgZMOybmcgbMOgIGtow6FjIG5oYXUgY+G6p24gc2V0IG5lZWRDbG9uZSA9IHRydWVcclxuICAgIHRlbXBsYXRlSXRlbT86IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgICB0ZW1wbGF0ZVNlbGVjdGVkSXRlbT86IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgICBxdWlja0FkZD89IGZhbHNlO1xyXG4gICAgY29scz86IEZvcm1TY2hlbWFCYXNlW107XHJcbiAgICBpbml0RGF0YT86IGFueSA9IHt9O1xyXG4gICAgcG9wdXBTaXplPzogUG9wdXBTaXplID0gbmV3IFBvcHVwU2l6ZSh7IHdpZHRoOiA3NTAsIGhlaWdodDogNDAwIH0pO1xyXG5cclxuICAgIGxvYWRJbkZpcnN0RGlzcGxheT89IHRydWU7XHJcblxyXG4gICAgYXV0b0dldERhdGE/PSB0cnVlO1xyXG5cclxuICAgIHZhbHVlRmllbGQ/PSAnaWQnO1xyXG4gICAgZGlzcGxheUZpZWxkPz0gJ3Rlbic7XHJcblxyXG4gICAgYXV0b0Rpc3BsYXlGaXJzdD89IGZhbHNlO1xyXG4gICAgbm90SW5DcnVkRm9ybT89IGZhbHNlO1xyXG4gICAgc2VhcmNoTXVsdGlwbGU/PSB0cnVlO1xyXG4gICAgZGlzYWJsZURpc3BsYXlGaWVsZFNlcnZlclNlYXJjaD89IGZhbHNlO1xyXG5cclxuICAgIGxvYWRPbkluaXQ/PSBmYWxzZTtcclxuICAgIGFsbG93TG9hZERhdGFXaGVuUGFyZW50TnVsbD89IGZhbHNlO1xyXG5cclxuICAgIGRpc2FibGVkUGFyZW50SXRlbT89IHRydWU7XHJcbiAgICBvbkFkanVzdGVkVmFsdWU/OiBGdW5jdGlvbjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRHJvcGRvd25Db250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBZGRyZXNzQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XHJcbiAgICBoaWRlTm8/PSBmYWxzZTtcclxuICAgIGhpZGVTdHJlZXQ/PSBmYWxzZTtcclxuICAgIGhpZGVXYXJkPz0gZmFsc2U7XHJcbiAgICBoaWRlRGlzdHJpY3Q/PSBmYWxzZTtcclxuICAgIHJlcXVpcmVkTm8/PSB0cnVlO1xyXG4gICAgcmVxdWlyZWRTdHJlZXQ/PSB0cnVlO1xyXG4gICAgcmVxdWlyZWRXYXJkPz0gdHJ1ZTtcclxuICAgIHJlcXVpcmVkRGlzdHJpY3Q/PSB0cnVlO1xyXG4gICAgcmVxdWlyZWRQcm92aW5jZT89IHRydWU7XHJcbiAgICB3YXJkVG9Qcm92aW5jZT89IHRydWU7XHJcbiAgICBub1dpZHRoPz0gMTtcclxuICAgIHN0cmVldFdpZHRoPz0gMztcclxuICAgIHdhcmRXaWR0aD89IDM7XHJcbiAgICBkaXN0cmljdFdpZHRoPz0gMjtcclxuICAgIHByb3ZpbmNlV2lkdGg/PSAzO1xyXG4gICAgc2hvd0luQm94Pz0gZmFsc2U7XHJcblxyXG4gICAgaGlkZUhvbGRlcj89IHRydWU7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQWRkcmVzc0NvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFZhbkJhblBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgbWRXaWR0aD89IDEyO1xyXG4gICAgdXNlVmJEZW4/PSB0cnVlO1xyXG4gICAgdXNlVmJEaT89IHRydWU7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVmFuQmFuUGlja2VyQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29uZ1ZpZWNQaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIG1kV2lkdGg/PSAxMjtcclxuICAgIHNlcnZpY2VDb2RlPzogc3RyaW5nO1xyXG4gICAgZW50aXR5Pzogc3RyaW5nO1xyXG4gICAgZW50aXR5S2V5Pzogc3RyaW5nO1xyXG4gICAgc3RhdGU/OiBhbnkgPSB7fTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDb25nVmllY1BpY2tlckNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEF1dG9Db21wbGV0ZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBEYXRhU291cmNlQ29udHJvbFNjaGVtYSB7XHJcbiAgICBwbGFjZWhvbGRlcj89ICcnO1xyXG4gICAgbXVsdGlwbGU/PSBmYWxzZTtcclxuICAgIG1pbkxlbmd0aEZpbHRlcj89IDE7XHJcbiAgICBhcHBlbmRUbz86IHN0cmluZyA9ICdib2R5JztcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBBdXRvQ29tcGxldGVDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBSYWRpb0J1dHRvbkxpc3RDb250cm9sU2NoZW1hIGV4dGVuZHMgRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEge1xyXG4gICAgdmFsdWVGaWVsZD89ICdpZCc7XHJcbiAgICBkaXNwbGF5RmllbGQ/PSAndGVuJztcclxuICAgIGVuYWJsZUNhY2hpbmc/PSB0cnVlO1xyXG4gICAgbGF5b3V0PzogJ3ZlcnRpY2FsJyB8ICdob3Jpem9udGFsJyA9ICdob3Jpem9udGFsJztcclxuICAgIGFsaWduPzogJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnID0gJ2xlZnQnO1xyXG4gICAgb25BZGp1c3RlZFZhbHVlPzogRnVuY3Rpb247XHJcbiAgICBkaXNhYmxlQ2hlY2s/OiAoKSA9PiBib29sZWFuO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBSYWRpb0J1dHRvbkxpc3RDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDaGVja0JveExpc3RDb250cm9sU2NoZW1hIGV4dGVuZHMgRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEge1xyXG4gICAgZW5hYmxlQ2FjaGluZz89IHRydWU7XHJcbiAgICBsYXlvdXQ/OiAndmVydGljYWwnIHwgJ2hvcml6b250YWwnID0gJ2hvcml6b250YWwnO1xyXG4gICAgYWxpZ24/OiAnbGVmdCcgfCAnY2VudGVyJyB8ICdyaWdodCcgPSAnbGVmdCc7XHJcbiAgICBjbGFzc1BsdXM/PSAnJztcclxuICAgIGZyZWVUZXh0Pz0gJyc7XHJcbiAgICBwQ29sQ2xhc3M/OiBudW1iZXI7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ2hlY2tCb3hMaXN0Q29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVGFibGVTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgcm93VGVtcGxhdGU6IEZvcm1TY2hlbWFCYXNlW107XHJcbiAgICByb3dCdXR0b25zPzogKHJvd0RhdGEpID0+IE1lbnVJdGVtW107XHJcbiAgICBmb290ZXJCdXR0b25zPzoge1xyXG4gICAgICAgIGljb24/OiBzdHJpbmc7XHJcbiAgICAgICAgbGFiZWw/OiBzdHJpbmc7XHJcbiAgICAgICAgY2xhc3M/OiBzdHJpbmc7XHJcbiAgICAgICAgbWVzc2FnZTogc3RyaW5nO1xyXG4gICAgfVtdO1xyXG4gICAgc2hvd051bWJlcj89IHRydWU7XHJcbiAgICBzaG93RnVuY3Rpb24/PSB0cnVlO1xyXG4gICAgc2hvd0Zvb3Rlcj89IHRydWU7XHJcbiAgICBzaG93U2F2ZT89IGZhbHNlO1xyXG4gICAgc2hvd0VkaXQ/PSBmYWxzZTtcclxuICAgIHNob3dEZWxldGU/PSB0cnVlO1xyXG4gICAgc2hvd0FkZD89IHRydWU7XHJcbiAgICBlbmFibGVSZW9yZGVyUm93Pz0gZmFsc2U7XHJcbiAgICBvblJlb3JkZXJlZD86IEZ1bmN0aW9uO1xyXG4gICAgZW5hYmxlQWRkTXVsdGk/PSBmYWxzZTtcclxuICAgIHBpY2tlckNvbnRyb2xGaWVsZD86IHN0cmluZztcclxuICAgIGlzVW5pcXVlPz0gdHJ1ZTtcclxuICAgIGVuYWJsZVBhZ2luZz89IGZhbHNlO1xyXG4gICAgbGltaXQ/PSA1MDtcclxuICAgIGluaXRSb3dDb3VudD89IDE7XHJcbiAgICBtZFdpZHRoPz0gMTI7XHJcblxyXG4gICAgb25BZGRpbmc/OiBGdW5jdGlvbjtcclxuICAgIG9uQWRkZWQ/OiBGdW5jdGlvbjtcclxuICAgIG9uU2F2ZT86IEZ1bmN0aW9uO1xyXG4gICAgb25NZXNzYWdlPzogRnVuY3Rpb247XHJcbiAgICBvbkRlbGV0aW5nPzogRnVuY3Rpb247XHJcbiAgICBvbkRlbGV0ZWQ/OiBGdW5jdGlvbjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVGFibGVTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENvbHVtblNjaGVtYUJhc2UgZXh0ZW5kcyBGb3JtU2NoZW1hQmFzZVdpdGhTZXJ2aWNlIHtcclxuICAgIHdpZHRoPzogc3RyaW5nO1xyXG4gICAgc2hvd0VkaXRMaW5rPz0gZmFsc2U7XHJcbiAgICBjb2xTcGFuPzogbnVtYmVyO1xyXG4gICAgZ3JvdXA/PSBmYWxzZTtcclxuICAgIHZpc2libGU/PSB0cnVlO1xyXG4gICAgcmVtb3ZlT25Jbml0Pz0gZmFsc2U7XHJcbiAgICBhbGxvd0ZpbHRlcj89IHRydWU7XHJcbiAgICB0ZXh0QWxpZ24/OiBUZXh0QWxpZ247XHJcbiAgICBjZWxsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgICBmdWxsVGV4dFNlYXJjaD89IGZhbHNlO1xyXG4gICAgcmF3Q29sdW1uPzogQ29sdW1uU2NoZW1hQmFzZTtcclxuICAgIHNlcGFyYXRvcj89ICcsICc7XHJcblxyXG4gICAgZGF0YVR5cGVSZWZGaWVsZD86IERhdGFUeXBlIHwgc3RyaW5nO1xyXG4gICAgZm9yY2VHZXREYXRhPz0gZmFsc2U7XHJcbiAgICBmdW5jR2V0UmVmRGF0YVJvdz86IChyZWZJdGVtcykgPT4ge307XHJcbiAgICBmdW5jU2V0VmFsdWVSb3c/OiAocm93SXRlbSwgZGF0YSkgPT4gdm9pZDtcclxuICAgIHJvd1NwYW4/PSAxO1xyXG4gICAgZm9ybWF0Pzogc3RyaW5nO1xyXG4gICAgZGF0YVR5cGU/OiBEYXRhVHlwZSB8IHN0cmluZztcclxuICAgIGNvbnRyb2xUeXBlPzogQ29udHJvbFR5cGUgPSBDb250cm9sVHlwZS50ZXh0Ym94O1xyXG4gICAgdGVtcGxhdGVGaWx0ZXI/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gICAgZmllbGRGaWx0ZXI/OiBzdHJpbmc7XHJcbiAgICBkaXNhYmxlQ2hlY2tCb3g/PSB0cnVlO1xyXG4gICAgLy8gVGjhu6kgdOG7sSDGsHUgdGnDqm4gZ2V0IHJlZiBkYXRhIGPhu6dhIGNydWQtbGlzdFxyXG4gICAgLy8gTuG6v3UgY8OzIHZhbHVlIG5naMSpYSBsw6Agbmjhu69uZyBj4buZdCBuw6B5IGPhuqduIHBo4bqjaSBs4bqleSBk4buvIGxp4buHdSB4b25nIHLhu5NpIG3hu5tpIMSR4bq/biBj4buZdCBraMOhY1xyXG4gICAgb3JkZXI/OiBudW1iZXI7XHJcbiAgICBtYXhXb3JkRGlzcGxheT86IG51bWJlcjtcclxuICAgIG1heExlbmd0aERpc3BsYXk/OiBudW1iZXI7XHJcblxyXG4gICAgbWRXaWR0aEluU2VhcmNoPz0gMTI7XHJcblxyXG4gICAgbWluPz0gMDtcclxuICAgIG1heD89IDk5OTk5OTtcclxuXHJcbiAgICBzaG93Q2xlYXI/PSB0cnVlO1xyXG4gICAgbXVsdGlwbGU/PSBmYWxzZTtcclxuXHJcbiAgICBwaXBlPzogUGlwZVRyYW5zZm9ybTtcclxuICAgIGFzeW5jUGlwZT89IHRydWU7XHJcbiAgICBzb3J0Pz0gdHJ1ZTtcclxuICAgIGV4dGVuZERhdGE/OiBhbnkgPSB7fTtcclxuXHJcbiAgICBnZW5lcmF0ZWRSZWZDb2x1bW4/OiBhbnk7IC8vIFRPRE86IE5hbU5IIHRow6ptIHThuqFtIHRoZW8gecOqdSBj4bqndSBj4bunYSBMaW5oLCBMaW5oIGNoZWNrIGzhuqFpIHNhdVxyXG4gICAgaGFzT3BlcmF0b3JDYW5Cbz89IGZhbHNlO1xyXG4gICAgdXNlVHJpU3RhdGVDaGVja2JveD86IGJvb2xlYW47XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ29sdW1uU2NoZW1hQmFzZSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRHJvcGRvd25PcHRpb25zIHtcclxuICAgIGRpc3BsYXlGaWVsZD89ICd0ZW4nO1xyXG4gICAgdmFsdWVGaWVsZD89ICdpZCc7XHJcbiAgICBmaWVsZFRyZWU/PSAnJztcclxuICAgIHNlbGVjdENoaWxkSXRlbT89IGZhbHNlOyAvLyBDw7Mgc2VsZWN0IGLhuqNuIGdoaSBjb24gbuG6v3UgY2jhu41uIGLhuqNuIGdoaSBjaGFcclxuICAgIGZpZWxkUGFyZW50VHJlZUl0ZW0/PSAnaWQnOyAvLyBUcsaw4budbmcgeMOhYyDEkeG7i25oIGLhuqNuIGdoaSBsw6AgYuG6o24gZ2hpIGNoYSBj4bunYSBi4bqjbiBnaGkgY29uXHJcbiAgICBzb3J0cz86IFNvcnRbXSA9IFtdO1xyXG4gICAgc29ydEZpZWxkPz0gJyc7XHJcbiAgICBzb3J0RGlyPzogMSB8IC0xID0gMTtcclxuICAgIGZpZWxkUGx1cz89ICcnO1xyXG4gICAgcGx1c1VybD86IHN0cmluZztcclxuICAgIGNhbGxiYWNrRGF0YUZpbmlzaD86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcclxuICAgIHBhZ2VTaXplPz0gOTk5OTtcclxuICAgIGlzU2VydmVyTG9hZD89IGZhbHNlO1xyXG4gICAgcmVmRmllbGRzPzogUmVmRmllbGRbXSA9IFtdO1xyXG4gICAgZnVuY0dldExhYmVsPzogKGl0ZW0pID0+IHN0cmluZztcclxuICAgIGZ1bmNDb21wYXJlPzogKGl0ZW06IGFueSwgdmFsdWUpID0+IGJvb2xlYW4gPSAoaXRlbSwgdmFsdWUpID0+IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA9PSB2YWx1ZTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBEcm9wZG93bk9wdGlvbnMpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuZXhwb3J0IGNsYXNzIFJlZkZpZWxkIHtcclxuICAgIGZpZWxkOiBzdHJpbmc7XHJcbiAgICBtdWx0aXBsZT89IGZhbHNlO1xyXG4gICAgc2VwYXJhdG9yPz0gJywgJztcclxuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2UgfCBNYXN0ZXJEYXRhU2VydmljZTtcclxuICAgIGRpc3BsYXlGaWVsZD89ICd0ZW4nO1xyXG4gICAgdmFsdWVGaWVsZD89ICdpZCc7XHJcbiAgICBmaWVsZFBsdXM/PSAnJztcclxuICAgIGdyb3VwQ29kZT86IHN0cmluZztcclxuICAgIGRhdGFTb3VyY2U/OiBhbnlbXTtcclxuICAgIG9yZGVyPzogbnVtYmVyO1xyXG5cclxuICAgIGlzVHJlZT89IGZhbHNlO1xyXG4gICAgZmllbGRUcmVlPzogc3RyaW5nO1xyXG4gICAgdmFsdWVQYXJlbnRSb290PzogYW55ID0gbnVsbDsgLy8gR2nDoSB0cuG7iyB0csaw4budbmcgW2ZpZWxkVHJlZV0gY+G7p2EgaXRlbSB0cmVlIHJvb3RcclxuICAgIGZpZWxkUGFyZW50VHJlZUl0ZW0/PSAnaWQnOyAvLyBUcsaw4budbmcgeMOhYyDEkeG7i25oIGLhuqNuIGdoaSBsw6AgYuG6o24gZ2hpIGNoYSBj4bunYSBi4bqjbiBnaGkgY29uXHJcbiAgICBzb3J0cz86IFNvcnRbXSA9IFtdO1xyXG4gICAgc29ydEZpZWxkPz0gJyc7XHJcbiAgICBzb3J0RGlyPzogMSB8IC0xID0gMTtcclxuICAgIHBsdXNVcmw/OiBzdHJpbmc7XHJcbiAgICBmdW5jU2V0VmFsdWVSb3c/OiAocm93SXRlbSwgZGF0YSkgPT4gdm9pZDtcclxuICAgIGZ1bmNHZXRSZWZEYXRhUm93PzogKHJlZkl0ZW1zKSA9PiB7fTtcclxuICAgIGNhbGxiYWNrRGF0YUZpbmlzaD86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcclxuICAgIGZ1bmNHZXRMYWJlbD86IChpdGVtKSA9PiBzdHJpbmc7XHJcbiAgICBmdW5jQ29tcGFyZT86IChpdGVtOiBhbnksIHZhbHVlKSA9PiBib29sZWFuID0gKGl0ZW0sIHZhbHVlKSA9PiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gPT0gdmFsdWU7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogUmVmRmllbGQpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmNsYXNzIFByb3BGb3JEcm9wZG93biB7XHJcbiAgICBzZXJ2ZXJGaWx0ZXJVcmk/OiBzdHJpbmc7XHJcbiAgICBsb2FkSW5GaXJzdERpc3BsYXk/PSB0cnVlO1xyXG4gICAgZGlzcGxheUZpZWxkU2VydmVyPz0gJ3Rlbic7XHJcbiAgICB2YWx1ZUZpZWxkU2VydmVyPz0gJ2lkJztcclxuXHJcbiAgICBkYXRhU291cmNlPzogYW55O1xyXG4gICAgYmFzZVNlcnZpY2U/OiBCYXNlU2VydmljZSB8IE1hc3RlckRhdGFTZXJ2aWNlO1xyXG4gICAgZGVmYXVsdEZpbHRlcnM/OiBGaWx0ZXJbXSB8IEZ1bmN0aW9uO1xyXG4gICAgY2FsbGJhY2tEYXRhRmluaXNoPzogKGV2dDogRXZlbnREYXRhKSA9PiB2b2lkO1xyXG4gICAgbW9kaWZ5RmlsdGVyPzogRnVuY3Rpb247XHJcbiAgICBtdWx0aXBsZT89IGZhbHNlO1xyXG4gICAgc2VwYXJhdG9yPz0gJywgJztcclxuICAgIHNlYXJjaE11bHRpcGxlPz0gdHJ1ZTtcclxuICAgIGlzVHJlZT89IGZhbHNlO1xyXG4gICAgZmllbGRUcmVlPzogc3RyaW5nO1xyXG4gICAgc2VsZWN0Q2hpbGRJdGVtPz0gZmFsc2U7IC8vIEPDsyBzZWxlY3QgYuG6o24gZ2hpIGNvbiBu4bq/dSBjaOG7jW4gYuG6o24gZ2hpIGNoYVxyXG4gICAgdmFsdWVQYXJlbnRSb290PzogYW55ID0gbnVsbDsgLy8gR2nDoSB0cuG7iyB0csaw4budbmcgW2ZpZWxkVHJlZV0gY+G7p2EgaXRlbSB0cmVlIHJvb3RcclxuICAgIGZpZWxkUGFyZW50VHJlZUl0ZW0/PSAnaWQnOyAvLyBUcsaw4budbmcgeMOhYyDEkeG7i25oIGLhuqNuIGdoaSBsw6AgYuG6o24gZ2hpIGNoYSBj4bunYSBi4bqjbiBnaGkgY29uXHJcbiAgICBncm91cENvZGU/OiBzdHJpbmc7XHJcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcclxuICAgIGRpc3BsYXlGaWVsZD89ICd0ZW4nO1xyXG4gICAgc2VhcmNoRmllbGQ/OiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgZmllbGRQbHVzPz0gJyc7XHJcbiAgICBzb3J0cz86IFNvcnRbXSA9IFtdO1xyXG4gICAgc29ydEZpZWxkPz0gJyc7XHJcbiAgICBzb3J0RGlyPzogMSB8IC0xID0gMTtcclxuICAgIHBsdXNVcmw/OiBzdHJpbmc7XHJcblxyXG4gICAgZmllbGRWYWx1ZVBhcmVudD89ICd2YWx1ZSc7IC8vIFRyxrDhu51uZyBz4butIGThu6VuZyDEkeG7gyBs4bqleSBk4buvIGxp4buHdSBsw6BtIGtow7NhIHThu6sgYuG6o25nIGNoYSBj4bunYSBpdGVtIGRyb3AgZG93biDEkcaw4bujYyBjaOG7jW5cclxuXHJcbiAgICBmdW5jR2V0TGFiZWw/OiAoaXRlbSkgPT4gc3RyaW5nO1xyXG4gICAgZnVuY0NvbXBhcmU/OiAoaXRlbTogYW55LCB2YWx1ZSkgPT4gYm9vbGVhbiA9IChpdGVtLCB2YWx1ZSkgPT4gaXRlbVt0aGlzLnZhbHVlRmllbGRdID09IHZhbHVlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBQcm9wRm9yRHJvcGRvd24pIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBFbnRpdHlQaWNrZXJDb2x1bW4gZXh0ZW5kcyBDb2x1bW5TY2hlbWFCYXNlIHtcclxuICAgIGxhYmVsPzogc3RyaW5nO1xyXG4gICAgY29kZT86IHN0cmluZztcclxuICAgIGRpc2FibGVkPz0gZmFsc2U7XHJcbiAgICBpc1NlYXJjaGFibGU/PSB0cnVlO1xyXG4gICAgaXNEaXNwbGF5Pz0gdHJ1ZTtcclxuICAgIGRhdGFUeXBlPzogRGF0YVR5cGUgfCBzdHJpbmc7XHJcbiAgICBvcGVyYXRvcj86IE9wZXJhdG9yO1xyXG4gICAgd2lkdGg/PSAnJztcclxuICAgIG5vdEluRmllbGRzPz0gZmFsc2U7IC8vIEPDoWMgdHLGsOG7nW5nIGThu68gbGnhu4d1IMSRxrDhu6NjIHThu5VuZyBo4bujcCBs4bqhaSBoaeG7g24gdGjhu4sgbMOqbiBncmlkIG3DoCBraMO0bmcgcGjhuqNpIGzhuqV5IHThu6sgdHJvbmcgdGFibGUgcmEuXHJcblxyXG4gICAgdGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBFbnRpdHlQaWNrZXJDb2x1bW4pIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEdldFJlZkRhdGFTY2hlbWEgZXh0ZW5kcyBQcm9wRm9yRHJvcGRvd24ge1xyXG4gICAgZmllbGQ/OiBzdHJpbmc7XHJcbiAgICBmdW5jU2V0VmFsdWVSb3c/OiAocm93SXRlbSwgZGF0YSkgPT4gdm9pZDtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBHZXRSZWZEYXRhU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDcnVkTGlzdENvbmZpZyB7XHJcbiAgICB0b29sdGlwVmlldz86IHN0cmluZztcclxuICAgIG9uVmlldz86IEZ1bmN0aW9uO1xyXG4gICAgZGlzYWJsZVJvd1NlbGVjdFdoZW5DbGlja0FjdGlvbj89IHRydWU7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ3J1ZExpc3RDb25maWcpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUcmVlRGF0YU9wdGlvbiB7XHJcbiAgICBkaXNwbGF5RmllbGQgPSAndGVuJztcclxuICAgIHNob3J0RGlzcGxheUZpZWxkID0gJ3Rlbic7XHJcbiAgICBleHBhbmRlZEljb24gPSAncGkgcGktZm9sZGVyLW9wZW4nO1xyXG4gICAgY29sbGFwc2VkSWNvbiA9ICdwaSBwaS1mb2xkZXInO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFRyZWVEYXRhT3B0aW9uKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRGlhbG9nTW9kZWwge1xyXG4gICAgc2hvd0VkaXRGb3JtPzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgaGVhZGVyPzogc3RyaW5nID0gJyc7XHJcbiAgICBwb3B1cFNpemU/OiBQb3B1cFNpemUgPSBuZXcgUG9wdXBTaXplKHsgbWF4aW1pemU6IHRydWUgfSlcclxuICAgIGRhdGE/OiBhbnkgPSB7fTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBEaWFsb2dNb2RlbCkge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBvcHVwU2l6ZSB7XHJcbiAgICB3aWR0aD86IG51bWJlcjtcclxuICAgIGhlaWdodD86IG51bWJlcjtcclxuICAgIG1heGltaXplPz0gZmFsc2U7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogUG9wdXBTaXplKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRXZlbnREYXRhIHtcclxuICAgIGN1cnJlbnROb2RlOiBDb250cm9sVHJlZU5vZGU7XHJcbiAgICBzb3VyY2VOb2RlPzogQ29udHJvbFRyZWVOb2RlO1xyXG4gICAgc291cmNlRXZlbnQ/OiBhbnk7XHJcbiAgICBldmVudFR5cGU/OiBhbnk7XHJcbiAgICBkYXRhPzogYW55O1xyXG4gICAgcHJpdmF0ZSBfY3J1ZEZvcm06IENydWRGb3JtQ29tcG9uZW50O1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgaW5pdD86IHtcclxuICAgICAgICAgICAgY3VycmVudE5vZGU6IENvbnRyb2xUcmVlTm9kZSxcclxuICAgICAgICAgICAgc291cmNlTm9kZT86IENvbnRyb2xUcmVlTm9kZSxcclxuICAgICAgICAgICAgc291cmNlRXZlbnQ/OiBhbnksXHJcbiAgICAgICAgICAgIGV2ZW50VHlwZT86IGFueSxcclxuICAgICAgICAgICAgZGF0YT86IGFueSxcclxuICAgICAgICAgICAgY3J1ZEZvcm0/OiBDcnVkRm9ybUNvbXBvbmVudFxyXG4gICAgICAgIH1cclxuICAgICkge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXQgdmFsdWUoKTogYW55IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50Tm9kZS5tb2RlbDtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgbW9kZWwoKTogYW55IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50Tm9kZS5tb2RlbDtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgcGFyZW50TW9kZWwoKTogYW55IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50Tm9kZS5wYXJlbnRNb2RlbDtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgcGFyZW50UGF0aCgpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLnBhcmVudE1vZGVsUGF0aDtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHJvb3RNb2RlbCgpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLnJvb3ROb2RlLm1vZGVsO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBjb250cm9sKCk6IEZvcm1TY2hlbWFCYXNlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50Tm9kZS5jb250cm9sXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHBhcmVudENvbnRyb2woKTogRm9ybVNjaGVtYUJhc2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLnBhcmVudENvbnRyb2w7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGZvcm1Db250cm9scygpOiBGb3JtU2NoZW1hQmFzZVtdIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50Tm9kZS5mb3JtQ29udHJvbHM7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIERhdGFUeXBlIHtcclxuICAgIGRhdGUgPSAnZGF0ZScsXHJcbiAgICBkYXRldGltZSA9ICdkYXRldGltZScsXHJcbiAgICBodG1sID0gJ2h0bWwnLFxyXG4gICAgc3RyaW5nID0gJ3N0cmluZycsXHJcbiAgICBpbnQgPSAnaW50JyxcclxuICAgIGRlY2ltYWwgPSAnZGVjaW1hbCcsXHJcbiAgICBib29sZWFuID0gJ2Jvb2xlYW4nLFxyXG4gICAgZW51bSA9ICdlbnVtJyxcclxuICAgIGN1cnJlbmN5ID0gJ2N1cnJlbmN5J1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBDb250cm9sVHlwZSB7XHJcbiAgICBkcm9wZG93biA9ICdkcm9wZG93bicsXHJcbiAgICBkYXRldGltZSA9ICdkYXRldGltZScsXHJcbiAgICBkYXRlID0gJ2RhdGUnLFxyXG4gICAgdGltZSA9ICd0aW1lJyxcclxuICAgIG51bWJlciA9ICdudW1iZXInLFxyXG4gICAgdGV4dGJveCA9ICd0ZXh0Ym94JyxcclxuICAgIGNoZWNrYm94ID0gJ2NoZWNrYm94JyxcclxuICAgIHN3aXRjaCA9ICdzd2l0Y2gnXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIE9wZXJhdG9yIHtcclxuICAgIGVxdWFsID0gJ2VxJyxcclxuICAgIG5vdEVxdWFsID0gJ25lcScsXHJcbiAgICBncmVhdGVyID0gJ2d0JyxcclxuICAgIGdyZWF0ZXJUaGFuRXF1YWwgPSAnZ3RlJyxcclxuICAgIGxvd2VyID0gJ2x0JyxcclxuICAgIGxvd2VyVGhhbkVxdWFsID0gJ2x0ZScsXHJcblxyXG4gICAgY29udGFpbiA9ICdjb250YWlucycsXHJcbiAgICBub3RDb250YWluID0gJ25jb250YWlucycsXHJcbiAgICBzdGFydFdpdGggPSAnc3RhcnRzd2l0aCcsXHJcbiAgICBub3RTdGFydFdpdGggPSAnbnN0YXJ0c3dpdGgnLFxyXG4gICAgZW5kV2l0aCA9ICdlbmRzd2l0aCcsXHJcbiAgICBub3RFbmRXaXRoID0gJ25lbmRzd2l0aCcsXHJcblxyXG4gICAgaW4gPSAnaW4nLFxyXG4gICAgbm90SW4gPSAnbmluJyxcclxuXHJcbiAgICBpc051bGwgPSAnaXNudWxsJyxcclxuICAgIGlzTm90TnVsbCA9ICdpc25vdG51bGwnLFxyXG5cclxuICAgIGluUm9sZSA9ICdoYXNSb2xlJyxcclxuICAgIG5vdEluUm9sZSA9ICdub3RIYXNSb2xlJyxcclxuICAgIGluQ2F0ZWdvcnkgPSAnaW5DYXRlZ29yeScsXHJcbiAgICBub3RJbkNhdGVnb3J5ID0gJ25vdEluQ2F0ZWdvcnknLFxyXG4gICAgaW5Qb3NpdGlvbiA9ICdpblBvc2l0aW9uJyxcclxuICAgIG5vdEluUG9zaXRpb24gPSAnbm90SW5Qb3NpdGlvbicsXHJcbiAgICBpbkxpc3RVc2VyID0gJ2luTGlzdFVzZXInLFxyXG4gICAgbm90SW5MaXN0VXNlciA9ICdub3RJbkxpc3RVc2VyJyxcclxuICAgIGluTGlzdEdyb3VwID0gJ2luTGlzdEdyb3VwJyxcclxuICAgIG5vdEluTGlzdEdyb3VwID0gJ25vdEluTGlzdEdyb3VwJyxcclxuICAgIGlzQ3VycmVudFVzZXIgPSAnaXNDdXJyZW50VXNlcicsXHJcbiAgICBpc0N1cnJlbnRDYW5CbyA9ICdpc0N1cnJlbnRDYW5CbydcclxufVxyXG5cclxuZXhwb3J0IGVudW0gSGVpZ2h0VHlwZSB7XHJcbiAgICBkZWZhdWx0ID0gMCxcclxuICAgIGR5bmFtaWMgPSAtMSxcclxuICAgIGN1c3RvbSA9IDFcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRmlsZU1hbmFnZXJNb2RlIHtcclxuICAgIHNpbmdsZSA9ICdzaW5nbGUnLFxyXG4gICAgbXVsdGlwbGUgPSAnbXVsdGlwbGUnXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEZpbGVVcGxvYWRNb2RlIHtcclxuICAgIHVzaW5nRmlsZUluc3RhbmNlSWQgPSAndXNpbmdGaWxlSW5zdGFuY2VJZCcsXHJcbiAgICB1c2luZ1NlcnZpY2VGaWxlID0gJ3VzaW5nU2VydmljZUZpbGUnXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEVudW1GaWxlTGF5b3V0IHtcclxuICAgIFNJTVBMRSA9ICdTSU1QTEUnLFxyXG4gICAgTElTVCA9ICdMSVNUJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBUZXh0QWxpZ24ge1xyXG4gICAgTGVmdCA9IDAsXHJcbiAgICBDZW50ZXIgPSAxLFxyXG4gICAgUmlnaHQgPSAtMVxyXG59XHJcblxyXG5leHBvcnQgZW51bSBFeHBvcnRJdGVtc01vZGUge1xyXG4gICAgRnJvbUh0bWwgPSAwLFxyXG4gICAgTWFudWFsR2V0RGF0YSA9IDEsXHJcbiAgICBBdXRvR2V0RGF0YSA9IDJcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRXhwb3J0QWxsTW9kZSB7XHJcbiAgICBNYW51YWxHZXREYXRhID0gMCxcclxuICAgIEF1dG9HZXREYXRhID0gMVxyXG59XHJcbiJdfQ==
|