tin-spa 2.8.4 → 2.8.6
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/esm2020/lib/classes/Classes.mjs +1 -1
- package/esm2020/lib/components/form/form.component.mjs +1 -9
- package/esm2020/lib/components/table/table.component.mjs +2 -5
- package/esm2020/lib/components/table-internal/table-internal.component.mjs +2 -5
- package/esm2020/lib/components/table-lite/table-lite.component.mjs +2 -5
- package/esm2020/lib/pages/logs/logs.component.mjs +5 -3
- package/esm2020/lib/services/button.service.mjs +3 -1
- package/esm2020/lib/services/datalib.service.mjs +11 -4
- package/esm2020/lib/services/dialog.service.mjs +4 -1
- package/esm2020/lib/services/table-config.service.mjs +24 -15
- package/fesm2015/tin-spa.mjs +50 -43
- package/fesm2015/tin-spa.mjs.map +1 -1
- package/fesm2020/tin-spa.mjs +45 -39
- package/fesm2020/tin-spa.mjs.map +1 -1
- package/lib/classes/Classes.d.ts +1 -0
- package/lib/services/table-config.service.d.ts +1 -1
- package/package.json +1 -1
|
@@ -96,4 +96,4 @@ export class FinAccount {
|
|
|
96
96
|
this.currency = "";
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xhc3Nlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9jbGFzc2VzL0NsYXNzZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsTUFBTSxDQUFOLElBQVksYUFBd0I7QUFBcEMsV0FBWSxhQUFhO0lBQUUsK0NBQUcsQ0FBQTtJQUFFLCtDQUFHLENBQUE7QUFBQSxDQUFDLEVBQXhCLGFBQWEsS0FBYixhQUFhLFFBQVc7QUFFcEMsTUFBTSxPQUFPLGFBQWE7Q0FHekI7QUFFRCxNQUFNLE9BQU8sbUJBQW1CO0NBYy9CO0FBSUQsTUFBTSxPQUFPLE1BQU07Q0FPbEI7QUFPRCxNQUFNLE9BQU8sWUFBWTtDQUt4QjtBQUlELE1BQU0sT0FBTyxjQUFjO0NBRzFCO0FBNERELE1BQU0sT0FBTyxZQUFZO0NBSXhCO0FBRUQsTUFBTSxPQUFPLGFBQWE7Q0FHekI7QUFFRCxNQUFNLE9BQU8sVUFBVTtDQWN0QjtBQXVDRCxNQUFNLE9BQU8sVUFBVTtDQUt0QjtBQUVELE1BQU0sT0FBTyxJQUFJO0NBS2hCO0FBQ0QsTUFBTSxPQUFPLFVBQVU7Q0FLdEI7QUFpQ0QsTUFBTSxPQUFPLFdBQVc7Q0FnQ3ZCO0FBRUQsTUFBTSxPQUFPLFVBQVU7Q0FJdEI7QUFLRCxZQUFZO0FBRVosTUFBTSxPQUFPLFdBQVc7Q0FJdkI7QUFFRCxNQUFNLE9BQU8sU0FBUzs7QUFDRyxtQkFBUyxHQUFHLEdBQUcsQ0FBQztBQUNoQixtQkFBUyxHQUFHLEdBQUcsQ0FBQztBQUNoQixvQkFBVSxHQUFHLEdBQUcsQ0FBQztBQUNqQixvQkFBVSxHQUFHLEdBQUcsQ0FBQztBQUNqQiwyQkFBaUIsR0FBRyxHQUFHLENBQUM7QUFDeEIsMEJBQWdCLEdBQUcsR0FBRyxDQUFDO0FBR2hELE1BQU0sT0FBTyxnQkFBZ0I7Q0FJNUI7QUFFRCxNQUFNLE9BQU8sT0FBTztJQUVsQjtRQUNFLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLE9BQU8sR0FBRyxjQUFjLENBQUM7UUFDOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQy9CLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxlQUFlLENBQUM7UUFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUM7SUFFdkIsQ0FBQztDQWVGO0FBRUQsTUFBTSxPQUFPLFNBQVM7SUFDcEI7UUFDRSxJQUFJLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQzVCLElBQUksQ0FBQyxRQUFRLEdBQUcsNEJBQTRCLENBQUM7UUFDN0MsSUFBSSxDQUFDLFVBQVUsR0FBRyw4QkFBOEIsQ0FBQztRQUNqRCxJQUFJLENBQUMsT0FBTyxHQUFHLHNCQUFzQixDQUFDO1FBQ3RDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO0lBRTFCLENBQUM7Q0FxQkY7QUFLRCwyQkFBMkI7QUFDM0IsTUFBTSxPQUFPLFdBQVc7SUFFdEI7UUFDRSxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUNsQixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFDdEIsQ0FBQztDQVdGO0FBRUQsTUFBTSxPQUFPLFVBQVU7SUFFckI7UUFDRSxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBRXJCLENBQUM7Q0FRRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHN0eWxlIH0gZnJvbSBcIkBhbmd1bGFyL2FuaW1hdGlvbnNcIjtcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuXHJcblxyXG5cclxuZXhwb3J0IGVudW0gRGV0YWlsc1NvdXJjZSB7Um93LCBVcmx9XHJcblxyXG5leHBvcnQgY2xhc3MgZGlhbG9nT3B0aW9ucyB7XHJcbiAgd2lkdGg/OiBzdHJpbmc7XHJcbiAgaGVpZ2h0Pzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRGV0YWlsc0RpYWxvZ0NvbmZpZyB7XHJcblxyXG4gIHN0ZXBDb25maWc/IDogU3RlcENvbmZpZztcclxuICBmb3JtQ29uZmlnOiBGb3JtQ29uZmlnO1xyXG4gIHRhYmxlQ29uZmlnPzogVGFibGVDb25maWc7XHJcbiAgdGFibGVDb25maWdzPzogVGFibGVDb25maWdbXTtcclxuICBidXR0b25zPzogQnV0dG9uW107XHJcbiAgZGV0YWlscz8gOiBhbnlcclxuICBoZXJvRmllbGQ/IDogYW55XHJcbiAgaGVyb1ZhbHVlPzogYW55XHJcbiAgbW9kZT86ICdjcmVhdGUnIHwgJ2VkaXQnIHwgJ3ZpZXcnXHJcbiAgd2lkdGg/OiBzdHJpbmdcclxuICBkZXRhaWxzU291cmNlPzogRGV0YWlsc1NvdXJjZVxyXG4gIG9wdGlvbnM/OiBkaWFsb2dPcHRpb25zXHJcbn1cclxuXHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEFjdGlvbntcclxuICBtZXRob2Q/OiAnZ2V0JyB8ICdwb3N0J1xyXG4gIHVybDogc3RyaW5nO1xyXG4gIHBhcmFtcz8gOiBhbnlbXVxyXG4gIHN1Y2Nlc3NNZXNzYWdlPzogc3RyaW5nXHJcbiAgaXNGb3JtRGF0YT86IGJvb2xlYW5cclxuICBza2lwQ2FjaGU/OiBib29sZWFuXHJcbn1cclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaEZpZWxkIGV4dGVuZHMgRmllbGQge1xyXG4gIHNob3c/OiBib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTZWFyY2hDb25maWcge1xyXG4gIGZpZWxkczogU2VhcmNoRmllbGRbXVxyXG4gIHNlYXJjaEFjdGlvbj86IEFjdGlvblxyXG4gIGVtYWlsUmVzdWx0cz86IGJvb2xlYW5cclxuICB0aWxlQ29uZmlnPzogVGlsZUNvbmZpZ1xyXG59XHJcblxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBTZWN1cml0eUNvbmZpZyB7XHJcbiAgYWxsb3c/OiBDYXBJdGVtW107XHJcbiAgZGVueT86IENhcEl0ZW1bXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDaGlsZEZpZWxkIHtcclxuICBjaGlsZEZpZWxkPzogc3RyaW5nXHJcbiAgY2hpbGRWYWx1ZUZpZWxkPzogc3RyaW5nXHJcbn1cclxuXHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGaWVsZCB7XHJcbiAgc2VjdXJpdHlDb25maWc/OiBTZWN1cml0eUNvbmZpZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdHlwZTogJ3RleHQnIHwgJ211bHRpLXRleHQnIHwgJ3Bhc3N3b3JkJyB8ICdkYXRlJyB8ICdkYXRldGltZScgfCAnZGF0ZXRpbWVzZWMnIHwgJ2NoZWNrYm94JyB8ICdzZWxlY3QnIHwgJ211bHRpLXNlbGVjdCcgfCAnbW9uZXknIHwgJ251bWJlcicgfCAnc2VjdGlvbicgfCAnYmxhbmsnIHwgJ2NoaXAnIHwgJ2ZpbGUnIHwgJ2ZpbGUtdmlldycgfCAnaWNvbicgfCAnc3Bpbm5lcicgfCAnYnV0dG9uJyB8ICdsYWJlbCcgfCAnZW1haWwnIHwgJ2NvbXBvc2l0ZScgfCAnc3RyaW5nJztcclxuICBhbGlhcz86IHN0cmluZztcclxuICBvcHRpb25zPzogYW55W107XHJcbiAgb3B0aW9uRGlzcGxheT86IHN0cmluZ1xyXG4gIG9wdGlvblZhbHVlPzogc3RyaW5nXHJcbiAgbWFzdGVyT3B0aW9uVmFsdWU/OiBzdHJpbmdcclxuICBkZWZhdWx0VmFsdWU/OiBhbnlcclxuICBkZWZhdWx0Rmlyc3RWYWx1ZT86IGJvb2xlYW5cclxuICByZXF1aXJlZD86IGJvb2xlYW5cclxuICBtaW4/OiBhbnlcclxuICBtYXg/OiBhbnlcclxuICByb3dzPzogbnVtYmVyXHJcbiAgc3Bhbj86IGJvb2xlYW5cclxuICB3aWR0aD86IHN0cmluZ1xyXG4gIHNpemU/OiBzdHJpbmdcclxuICByZWFkb25seT86IGJvb2xlYW5cclxuICBoaWRkZW4/OiBib29sZWFuXHJcbiAgc3RyaWN0PzogYm9vbGVhblxyXG4gIHBhdGg/OiBzdHJpbmdcclxuICBrZXlGaWVsZD86IHN0cmluZ1xyXG4gIGhpbnQ/OiBzdHJpbmdcclxuICBtYXN0ZXJGaWVsZD86IHN0cmluZ1xyXG4gIC8vIGNoaWxkPzogQ2hpbGRGaWVsZFxyXG4gIGNoaWxkcmVuPzogQ2hpbGRGaWVsZFtdXHJcbiAgbWFzdGVyT3B0aW9ucz86IGFueVtdXHJcbiAgbnVsbGFibGU/OiBib29sZWFuXHJcbiAgY29weUNvbnRlbnQ/OiBib29sZWFuXHJcbiAgY2xlYXJDb250ZW50PzogYm9vbGVhblxyXG4gIGZvcm1hdD86ICd0ZXh0JyB8ICdtb25leScgfCAnZGF0ZScgfCAnZGF0ZXRpbWUnIHwgJ251bWJlcidcclxuICBoaWRlT25DcmVhdGU/OiBib29sZWFuXHJcbiAgaGlkZU9uRXhpc3RzPzogYm9vbGVhblxyXG4gIGhpZGRlbkNvbmRpdGlvbj86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuO1xyXG4gIHJlYWRvbmx5Q29uZGl0aW9uPzogKHZhbHVlOiBhbnkpID0+IGJvb2xlYW47XHJcbiAgZGV0YWlsc0NvbmZpZz86IERldGFpbHNEaWFsb2dDb25maWc7XHJcbiAgbG9hZEFjdGlvbj86IEFjdGlvblxyXG4gIGluZm9NZXNzYWdlPzogc3RyaW5nO1xyXG4gIHN1ZmZpeD86IHN0cmluZztcclxuICBzdWJmaWVsZHM/OiBGaWVsZFtdO1xyXG4gIG9wdGlvbnNTdWJqZWN0PzogQmVoYXZpb3JTdWJqZWN0PGFueVtdPjtcclxuICBzZWN0aW9uPzogc3RyaW5nO1xyXG4gIGZpbGVPcHRpb25zPzoge1xyXG4gICAgYWxsb3dlZEV4dGVuc2lvbnM/OiBzdHJpbmdbXTtcclxuICAgIG1heFNpemVNQj86IG51bWJlcjtcclxuICAgIGNvbXByZXNzSW1hZ2VzPzogYm9vbGVhbjtcclxuICB9O1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEFsZXJ0TWVzc2FnZSB7XHJcbiAgdHlwZT86ICdzdWNjZXNzJyB8ICdpbmZvJyB8ICd3YXJuJyB8ICdjcml0aWNhbCdcclxuICBjb250ZW50OiBzdHJpbmdcclxuICBoaWRkZW5Db25kaXRpb24/OiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEFsZXJ0TWVzc2FnZXMge1xyXG4gIHN1YmplY3Q/OiBzdHJpbmdcclxuICBtZXNzYWdlczogQWxlcnRNZXNzYWdlW11cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEZvcm1Db25maWcge1xyXG4gIHRpdGxlPzogc3RyaW5nXHJcbiAgZml4ZWRUaXRsZT86IGJvb2xlYW5cclxuICBhbGVydE1lc3NhZ2VzPzogQWxlcnRNZXNzYWdlc1xyXG4gIGZpZWxkczogRmllbGRbXVxyXG4gIG1vZGU/OiAnY3JlYXRlJyB8ICdlZGl0JyB8ICd2aWV3J1xyXG4gIGJ1dHRvbj8gOiBCdXR0b25cclxuICBtdWx0aUNvbHVtbj86IGJvb2xlYW5cclxuICByZXNldD86IGJvb2xlYW5cclxuICBsb2FkQWN0aW9uPzogQWN0aW9uXHJcbiAgaGVyb0ZpZWxkPzogYW55XHJcbiAgaGVyb1ZhbHVlPzogYW55XHJcbiAgc2VjdXJpdHk/OiBTZWN1cml0eUNvbmZpZztcclxuXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlybSB7XHJcbiAgbWVzc2FnZTogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQnV0dG9ue1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIHZpc2libGU/OiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjtcclxuICBkaXNwbGF5Pzogc3RyaW5nO1xyXG4gIGljb24/OiBJY29uO1xyXG4gIGRpc2FibGVkPzogKHZhbHVlOiBhbnkpID0+IGJvb2xlYW47XHJcbiAgY29sb3I/OiBzdHJpbmc7XHJcbiAgdGlwPzogc3RyaW5nXHJcbiAgZGlhbG9nPzogYm9vbGVhblxyXG4gIGFjdGlvbj86IEFjdGlvblxyXG4gIGNvbmZpcm0/OiBDb25maXJtXHJcbiAgaW5EaWFsb2c/OiBib29sZWFuXHJcbiAgaW5IZWFkZXI/OiBib29sZWFuXHJcbiAgZGV0YWlsc0NvbmZpZz86IERldGFpbHNEaWFsb2dDb25maWdcclxuICBzZXRIZXJvRmllbGQ/OiBib29sZWFuO1xyXG59XHJcblxyXG5cclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRpbGUge1xyXG5cclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgYWxpYXM/OiBzdHJpbmc7XHJcbiAgdmFsdWU/OiBzdHJpbmc7XHJcbiAgY29sb3I/OiBzdHJpbmc7XHJcbiAgc2VsZWN0ZWRUaWxlPzogc3RyaW5nO1xyXG4gIGhpZGRlbj86IGJvb2xlYW47XHJcbiAgaW5mbz86IHN0cmluZztcclxuICBwcmVmaXg/OiBzdHJpbmc7XHJcbiAgc3VmZml4Pzogc3RyaW5nO1xyXG4gIGFjdGlvbj86IEFjdGlvbjtcclxufVxyXG5leHBvcnQgY2xhc3MgVGlsZUNvbmZpZyB7XHJcbiAgdGlsZXM6IFRpbGVbXVxyXG4gIGxvYWRBY3Rpb24/OiBBY3Rpb25cclxuICBsb2FkSW5pdD86IGJvb2xlYW5cclxuICBjbGlja2FibGU/OiBib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTdGVwIHtcclxuICBuYW1lOiBzdHJpbmdcclxuICB2YWx1ZT86IGFueVxyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgaGlkZGVuQ29uZGl0aW9uPzogKHZhbHVlOiBhbnkpID0+IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGNsYXNzIFN0ZXBDb25maWcge1xyXG4gIHN0ZXBzOiBTdGVwW11cclxuICB2YWx1ZUZpZWxkPzogc3RyaW5nXHJcbiAgbG9hZEFjdGlvbj86IEFjdGlvbjtcclxuICBsb2FkSURGaWVsZD86IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEljb24ge1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGNvbG9yPzogc3RyaW5nXHJcbiAgdGlwPzogc3RyaW5nXHJcbiAgdGlwRmllbGQ/OiBzdHJpbmdcclxuICBiYW5uZXJGaWVsZD86IHN0cmluZ1xyXG4gIGNvbmRpdGlvbj86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbG9yIHtcclxuICBuYW1lOiBzdHJpbmdcclxuICBjb25kaXRpb24/OiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb2x1bW4ge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0eXBlPzogJ3RleHQnIHwgJ2RhdGUnIHwgJ2RhdGV0aW1lJyB8ICdkYXRldGltZXNlYycgfCAnY2hlY2tib3gnIHwgJ3NlbGVjdCcgfCAnbW9uZXknIHwgJ251bWJlcicgfCAnY2hpcCcgfCAnaWNvbicgfCAnc3Bpbm5lcicgfCAnYnV0dG9uJztcclxuICBhbGlhcz86IHN0cmluZztcclxuICBtYXhMZW5ndGg/OiBudW1iZXI7XHJcbiAgaWNvbj86IEljb247XHJcbiAgY29sb3I/OiBDb2xvcjtcclxuICBjb2xvcnM/OiBDb2xvcltdO1xyXG4gIGljb25zPzogSWNvbltdO1xyXG4gIG9wdGlvbnM/OiBhbnlbXTtcclxuICBvcHRpb25EaXNwbGF5Pzogc3RyaW5nXHJcbiAgb3B0aW9uVmFsdWU/OiBzdHJpbmdcclxuICBkZXRhaWxzQ29uZmlnPzogRGV0YWlsc0RpYWxvZ0NvbmZpZ1xyXG4gIGhpZGRlbkNvbmRpdGlvbj86IChwYXJlbnREYXRhOiBhbnkpID0+IGJvb2xlYW47XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgVGFibGVDb25maWd7XHJcbiAgdGFiVGl0bGU/OiBzdHJpbmdcclxuICBub0RhdGFNZXNzYWdlID86IHN0cmluZ1xyXG4gIGNvbHVtbnM/IDogQ29sdW1uW11cclxuICBtaW5Db2x1bW5zPzogc3RyaW5nW11cclxuICBzaG93RmlsdGVyPzogYm9vbGVhblxyXG4gIHNob3dGaWx0ZXJCdXR0b24/OiBib29sZWFuXHJcbiAgaG9sZEZpbHRlclNwYWNlPzogYm9vbGVhblxyXG4gIGhvbGRIZWFkZXJCdXR0b25TcGFjZT86IGJvb2xlYW5cclxuICBlbGV2YXRpb24/OiAnbm9uZScgfCAnbG93JyB8ICdtZWRpdW0nIHwgJ2hpZ2gnXHJcbiAgZm9ybUNvbmZpZz86IEZvcm1Db25maWdcclxuICBzZWFyY2hDb25maWc/OiBTZWFyY2hDb25maWdcclxuICB0aWxlQ29uZmlnPzogVGlsZUNvbmZpZ1xyXG4gIHN0ZXBDb25maWc/OiBTdGVwQ29uZmlnXHJcbiAgYnV0dG9ucz86IEJ1dHRvbltdXHJcbiAgbWluQnV0dG9ucz86IHN0cmluZ1tdXHJcbiAgbG9hZEFjdGlvbj86IEFjdGlvblxyXG4gIGxvYWRJREZpZWxkID86IHN0cmluZ1xyXG4gIGxvYWRDcml0ZXJpYT86IHN0cmluZ1xyXG4gIGxvZ1Jlc3BvbnNlPzogYm9vbGVhblxyXG4gIGZsYXRCdXR0b25zPzogYm9vbGVhblxyXG4gIGdyZXlPdXQ/OiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjtcclxuICBoZXJvRmllbGQ/OiBhbnlcclxuICBoZXJvVmFsdWU/OiBhbnlcclxuICBjb2xsYXBzZUJ1dHRvbnM/OiBib29sZWFuXHJcbiAgcGFyZW50RGF0YSA/IDogYW55XHJcbiAgcGFnZVNpemVzPzogbnVtYmVyW11cclxuICBtYXhCdXR0b25zQ291bnQ/OiBudW1iZXJcclxuICBoaWRlVGFiQ29uZGl0aW9uPzogKHZhbHVlOiBhbnkpID0+IGJvb2xlYW47XHJcblxyXG4gIGRvd25sb2FkPzogeyBjb2x1bW5zOiBzdHJpbmdbXSwgZmlsZU5hbWU/OiBzdHJpbmcsIGhpZGRlbkNvbmRpdGlvbj86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuOyB9XHJcbiAgdXBsb2FkPzogeyBhY3Rpb246IEFjdGlvbiwgbWVzc2FnZXM/OiBBbGVydE1lc3NhZ2VbXSwgaGlkZGVuQ29uZGl0aW9uPzogKHZhbHVlOiBhbnkpID0+IGJvb2xlYW47IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBhZ2VDb25maWcge1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIHRhYmxlQ29uZmlnPzogVGFibGVDb25maWc7XHJcbiAgc2VhcmNoVGFibGVDb25maWc/OiBUYWJsZUNvbmZpZztcclxufVxyXG5cclxuXHJcblxyXG5cclxuLy8tLS1CYXNlLS0tXHJcblxyXG5leHBvcnQgY2xhc3MgQXBpUmVzcG9uc2Uge1xyXG4gIHN1Y2Nlc3M6IGJvb2xlYW47XHJcbiAgbWVzc2FnZTogc3RyaW5nO1xyXG4gIGRhdGE7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb25zdGFudHMge1xyXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQVVUSF9VU0VSID0gJ2EnO1xyXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQVVUSF9OQU1FID0gJ2InO1xyXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQVVUSF9ST0xFUyA9ICdjJztcclxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFVVEhfVE9LRU4gPSAnZCc7XHJcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVVRIX1RPS0VOX0VYUElSRSA9ICdlJztcclxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFVVEhfVEVOQU5UX05BTUUgPSAnZic7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBMaXN0RGlhbG9nQ29uZmlnIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBsaXN0TmFtZTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ2FwSXRlbSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5uYW1lID0gXCJcIjtcclxuICAgIHRoaXMuZGlzcGxheSA9IFwiTmV3IENhcCBJdGVtXCI7XHJcbiAgICB0aGlzLmVuYWJsZWQgPSBmYWxzZTtcclxuICAgIHRoaXMudHlwZSA9IFwiXCI7XHJcbiAgICB0aGlzLm5ld0xpbmUgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd01lbnUgPSB0cnVlO1xyXG4gICAgdGhpcy5pZ25vcmVTdWJzRGlzcGxheSA9IGZhbHNlO1xyXG4gICAgdGhpcy5saW5rID0gXCJcIjtcclxuICAgIHRoaXMuaWNvbiA9IFwibmF2aWdhdGVfbmV4dFwiO1xyXG4gICAgdGhpcy5jb2xvciA9IFwiYmxhY2tcIjtcclxuXHJcbiAgfVxyXG5cclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgZGlzcGxheTogc3RyaW5nO1xyXG4gIGVuYWJsZWQ6IGJvb2xlYW47XHJcbiAgc2hvd01lbnU6IGJvb2xlYW47XHJcblxyXG4gIGlnbm9yZVN1YnNEaXNwbGF5OiBib29sZWFuO1xyXG4gIHR5cGU6IHN0cmluZztcclxuICBuZXdMaW5lOiBib29sZWFuO1xyXG4gIGxpbms6IHN0cmluZztcclxuICBpY29uOiBzdHJpbmc7XHJcbiAgY2FwU3ViSXRlbXM6IENhcEl0ZW1bXTtcclxuICBjb2xvcjogc3RyaW5nO1xyXG5cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEFwcENvbmZpZyB7XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLmFwcE5hbWUgPSBcIkFwcCBOYW1lXCI7XHJcbiAgICB0aGlzLmxvZ28gPSBcIlwiO1xyXG4gICAgdGhpcy5sb2dvU2l6ZSA9IFwibm9ybWFsXCI7XHJcbiAgICB0aGlzLkFEQXV0aCA9IHRydWU7XHJcbiAgICB0aGlzLmxvY2FsQXV0aCA9IHRydWU7XHJcbiAgICB0aGlzLmdvb2dsZUF1dGggPSBmYWxzZTtcclxuICAgIHRoaXMuc2VsZlNlcnZpY2UgPSBmYWxzZTtcclxuICAgIHRoaXMubXVsdGl0ZW5hbnQgPSBmYWxzZTtcclxuICAgIHRoaXMubmF2aWdhdGlvbiA9ICd0b3AnO1xyXG4gICAgdGhpcy5wcm9ncmVzc0xpbmUgPSBmYWxzZTtcclxuICAgIHRoaXMubG9naW5TdHlsZSA9ICdkZWZhdWx0JztcclxuICAgIHRoaXMudGVybXNVcmwgPSBcImh0dHBzOi8veW91cnNpdGUuY29tL3Rlcm1zXCI7XHJcbiAgICB0aGlzLnByaXZhY3lVcmwgPSBcImh0dHBzOi8veW91cnNpdGUuY29tL3ByaXZhY3lcIjtcclxuICAgIHRoaXMuc2l0ZVVybCA9IFwiaHR0cHM6Ly95b3Vyc2l0ZS5jb21cIjtcclxuICAgIHRoaXMubmF2V2lkdGggPSAnMjAwcHgnO1xyXG5cclxuICB9XHJcbiAgYXBwTmFtZTogc3RyaW5nO1xyXG4gIGxvZ286IHN0cmluZztcclxuICBsb2dvU2l6ZTogc3RyaW5nO1xyXG4gIEFEQXV0aDogYm9vbGVhbjtcclxuICBsb2NhbEF1dGg6IGJvb2xlYW47XHJcbiAgZ29vZ2xlQXV0aDogYm9vbGVhbjtcclxuICBzZWxmU2VydmljZTogYm9vbGVhbjtcclxuICBjYXBJdGVtczogQ2FwSXRlbVtdO1xyXG4gIG11bHRpdGVuYW50IDogYm9vbGVhbjtcclxuICBuYXZpZ2F0aW9uIDogJ3RvcCcgfCAnc2lkZSdcclxuICBwcm9ncmVzc0xpbmU6IGJvb2xlYW47XHJcbiAgZG9jc0Jhc2VVcmwgOiBzdHJpbmc7XHJcbiAgbG9naW5TdHlsZSA6IHN0cmluZztcclxuICBsb2dpblRpdGxlIDogc3RyaW5nO1xyXG4gIGxvZ2luTWVzc2FnZSA6IHN0cmluZztcclxuICB0ZXJtc1VybDogc3RyaW5nO1xyXG4gIHByaXZhY3lVcmw6IHN0cmluZztcclxuICBzaXRlVXJsOiBzdHJpbmc7XHJcbiAgbmF2V2lkdGg6IHN0cmluZztcclxuXHJcbn1cclxuXHJcblxyXG5cclxuXHJcbi8vLS0tLS0tLS0tLS1Nb3ZlIG91dC0tLS0tLVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb24ge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25JRCA9IDA7XHJcbiAgICB0aGlzLm5hcnJhdGlvbiA9IFwiXCI7XHJcbiAgICB0aGlzLmFtb3VudCA9ICcwJztcclxuICAgIHRoaXMudHlwZSA9IDA7XHJcbiAgICB0aGlzLmRhdGUgPSBcIlwiO1xyXG4gICAgdGhpcy5hY2NvdW50SUQgPSAwO1xyXG4gICAgdGhpcy5kZXN0aW5hdGlvbklEID0gMDtcclxuICAgIHRoaXMuY2F0ZWdvcnlJRCA9IDA7XHJcbiAgfVxyXG5cclxuICB0cmFuc2FjdGlvbklEIDogbnVtYmVyO1xyXG4gIG5hcnJhdGlvbiA6IHN0cmluZztcclxuICBhbW91bnQgOiBzdHJpbmc7XHJcbiAgdHlwZTogbnVtYmVyO1xyXG4gIGRhdGUgOiBzdHJpbmc7XHJcbiAgYWNjb3VudElEIDogbnVtYmVyO1xyXG4gIGRlc3RpbmF0aW9uSUQgOiBudW1iZXI7XHJcbiAgY2F0ZWdvcnlJRCA6IG51bWJlcjtcclxuXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBGaW5BY2NvdW50IHtcclxuXHJcbiAgY29uc3RydWN0b3IoKXtcclxuICAgIHRoaXMuYWNjb3VudElEID0gMDtcclxuICAgIHRoaXMubmFtZSA9IFwiXCI7XHJcbiAgICB0aGlzLmRlc2NyaXB0aW9uID0gXCJcIjtcclxuICAgIHRoaXMuY3VycmVuY3kgPSBcIlwiO1xyXG5cclxuICB9XHJcblxyXG5cclxuICBhY2NvdW50SUQ6IG51bWJlclxyXG4gIG5hbWU6IHN0cmluZztcclxuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xyXG4gIGN1cnJlbmN5OiBzdHJpbmc7XHJcblxyXG59XHJcblxyXG4iXX0=
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xhc3Nlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9jbGFzc2VzL0NsYXNzZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsTUFBTSxDQUFOLElBQVksYUFBd0I7QUFBcEMsV0FBWSxhQUFhO0lBQUUsK0NBQUcsQ0FBQTtJQUFFLCtDQUFHLENBQUE7QUFBQSxDQUFDLEVBQXhCLGFBQWEsS0FBYixhQUFhLFFBQVc7QUFFcEMsTUFBTSxPQUFPLGFBQWE7Q0FHekI7QUFFRCxNQUFNLE9BQU8sbUJBQW1CO0NBYy9CO0FBSUQsTUFBTSxPQUFPLE1BQU07Q0FPbEI7QUFPRCxNQUFNLE9BQU8sWUFBWTtDQUt4QjtBQUlELE1BQU0sT0FBTyxjQUFjO0NBRzFCO0FBNERELE1BQU0sT0FBTyxZQUFZO0NBSXhCO0FBRUQsTUFBTSxPQUFPLGFBQWE7Q0FHekI7QUFFRCxNQUFNLE9BQU8sVUFBVTtDQWV0QjtBQXVDRCxNQUFNLE9BQU8sVUFBVTtDQUt0QjtBQUVELE1BQU0sT0FBTyxJQUFJO0NBS2hCO0FBQ0QsTUFBTSxPQUFPLFVBQVU7Q0FLdEI7QUFpQ0QsTUFBTSxPQUFPLFdBQVc7Q0FnQ3ZCO0FBRUQsTUFBTSxPQUFPLFVBQVU7Q0FJdEI7QUFLRCxZQUFZO0FBRVosTUFBTSxPQUFPLFdBQVc7Q0FJdkI7QUFFRCxNQUFNLE9BQU8sU0FBUzs7QUFDRyxtQkFBUyxHQUFHLEdBQUcsQ0FBQztBQUNoQixtQkFBUyxHQUFHLEdBQUcsQ0FBQztBQUNoQixvQkFBVSxHQUFHLEdBQUcsQ0FBQztBQUNqQixvQkFBVSxHQUFHLEdBQUcsQ0FBQztBQUNqQiwyQkFBaUIsR0FBRyxHQUFHLENBQUM7QUFDeEIsMEJBQWdCLEdBQUcsR0FBRyxDQUFDO0FBR2hELE1BQU0sT0FBTyxnQkFBZ0I7Q0FJNUI7QUFFRCxNQUFNLE9BQU8sT0FBTztJQUVsQjtRQUNFLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLE9BQU8sR0FBRyxjQUFjLENBQUM7UUFDOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQy9CLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxlQUFlLENBQUM7UUFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUM7SUFFdkIsQ0FBQztDQWVGO0FBRUQsTUFBTSxPQUFPLFNBQVM7SUFDcEI7UUFDRSxJQUFJLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQzVCLElBQUksQ0FBQyxRQUFRLEdBQUcsNEJBQTRCLENBQUM7UUFDN0MsSUFBSSxDQUFDLFVBQVUsR0FBRyw4QkFBOEIsQ0FBQztRQUNqRCxJQUFJLENBQUMsT0FBTyxHQUFHLHNCQUFzQixDQUFDO1FBQ3RDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO0lBRTFCLENBQUM7Q0FxQkY7QUFLRCwyQkFBMkI7QUFDM0IsTUFBTSxPQUFPLFdBQVc7SUFFdEI7UUFDRSxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUNsQixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFDdEIsQ0FBQztDQVdGO0FBRUQsTUFBTSxPQUFPLFVBQVU7SUFFckI7UUFDRSxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBRXJCLENBQUM7Q0FRRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHN0eWxlIH0gZnJvbSBcIkBhbmd1bGFyL2FuaW1hdGlvbnNcIjtcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuXHJcblxyXG5cclxuZXhwb3J0IGVudW0gRGV0YWlsc1NvdXJjZSB7Um93LCBVcmx9XHJcblxyXG5leHBvcnQgY2xhc3MgZGlhbG9nT3B0aW9ucyB7XHJcbiAgd2lkdGg/OiBzdHJpbmc7XHJcbiAgaGVpZ2h0Pzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRGV0YWlsc0RpYWxvZ0NvbmZpZyB7XHJcblxyXG4gIHN0ZXBDb25maWc/IDogU3RlcENvbmZpZztcclxuICBmb3JtQ29uZmlnOiBGb3JtQ29uZmlnO1xyXG4gIHRhYmxlQ29uZmlnPzogVGFibGVDb25maWc7XHJcbiAgdGFibGVDb25maWdzPzogVGFibGVDb25maWdbXTtcclxuICBidXR0b25zPzogQnV0dG9uW107XHJcbiAgZGV0YWlscz8gOiBhbnlcclxuICBoZXJvRmllbGQ/IDogYW55XHJcbiAgaGVyb1ZhbHVlPzogYW55XHJcbiAgbW9kZT86ICdjcmVhdGUnIHwgJ2VkaXQnIHwgJ3ZpZXcnXHJcbiAgd2lkdGg/OiBzdHJpbmdcclxuICBkZXRhaWxzU291cmNlPzogRGV0YWlsc1NvdXJjZVxyXG4gIG9wdGlvbnM/OiBkaWFsb2dPcHRpb25zXHJcbn1cclxuXHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEFjdGlvbntcclxuICBtZXRob2Q/OiAnZ2V0JyB8ICdwb3N0J1xyXG4gIHVybDogc3RyaW5nO1xyXG4gIHBhcmFtcz8gOiBhbnlbXVxyXG4gIHN1Y2Nlc3NNZXNzYWdlPzogc3RyaW5nXHJcbiAgaXNGb3JtRGF0YT86IGJvb2xlYW5cclxuICBza2lwQ2FjaGU/OiBib29sZWFuXHJcbn1cclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaEZpZWxkIGV4dGVuZHMgRmllbGQge1xyXG4gIHNob3c/OiBib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTZWFyY2hDb25maWcge1xyXG4gIGZpZWxkczogU2VhcmNoRmllbGRbXVxyXG4gIHNlYXJjaEFjdGlvbj86IEFjdGlvblxyXG4gIGVtYWlsUmVzdWx0cz86IGJvb2xlYW5cclxuICB0aWxlQ29uZmlnPzogVGlsZUNvbmZpZ1xyXG59XHJcblxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBTZWN1cml0eUNvbmZpZyB7XHJcbiAgYWxsb3c/OiBDYXBJdGVtW107XHJcbiAgZGVueT86IENhcEl0ZW1bXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDaGlsZEZpZWxkIHtcclxuICBjaGlsZEZpZWxkPzogc3RyaW5nXHJcbiAgY2hpbGRWYWx1ZUZpZWxkPzogc3RyaW5nXHJcbn1cclxuXHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGaWVsZCB7XHJcbiAgc2VjdXJpdHlDb25maWc/OiBTZWN1cml0eUNvbmZpZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdHlwZTogJ3RleHQnIHwgJ211bHRpLXRleHQnIHwgJ3Bhc3N3b3JkJyB8ICdkYXRlJyB8ICdkYXRldGltZScgfCAnZGF0ZXRpbWVzZWMnIHwgJ2NoZWNrYm94JyB8ICdzZWxlY3QnIHwgJ211bHRpLXNlbGVjdCcgfCAnbW9uZXknIHwgJ251bWJlcicgfCAnc2VjdGlvbicgfCAnYmxhbmsnIHwgJ2NoaXAnIHwgJ2ZpbGUnIHwgJ2ZpbGUtdmlldycgfCAnaWNvbicgfCAnc3Bpbm5lcicgfCAnYnV0dG9uJyB8ICdsYWJlbCcgfCAnZW1haWwnIHwgJ2NvbXBvc2l0ZScgfCAnc3RyaW5nJztcclxuICBhbGlhcz86IHN0cmluZztcclxuICBvcHRpb25zPzogYW55W107XHJcbiAgb3B0aW9uRGlzcGxheT86IHN0cmluZ1xyXG4gIG9wdGlvblZhbHVlPzogc3RyaW5nXHJcbiAgbWFzdGVyT3B0aW9uVmFsdWU/OiBzdHJpbmdcclxuICBkZWZhdWx0VmFsdWU/OiBhbnlcclxuICBkZWZhdWx0Rmlyc3RWYWx1ZT86IGJvb2xlYW5cclxuICByZXF1aXJlZD86IGJvb2xlYW5cclxuICBtaW4/OiBhbnlcclxuICBtYXg/OiBhbnlcclxuICByb3dzPzogbnVtYmVyXHJcbiAgc3Bhbj86IGJvb2xlYW5cclxuICB3aWR0aD86IHN0cmluZ1xyXG4gIHNpemU/OiBzdHJpbmdcclxuICByZWFkb25seT86IGJvb2xlYW5cclxuICBoaWRkZW4/OiBib29sZWFuXHJcbiAgc3RyaWN0PzogYm9vbGVhblxyXG4gIHBhdGg/OiBzdHJpbmdcclxuICBrZXlGaWVsZD86IHN0cmluZ1xyXG4gIGhpbnQ/OiBzdHJpbmdcclxuICBtYXN0ZXJGaWVsZD86IHN0cmluZ1xyXG4gIC8vIGNoaWxkPzogQ2hpbGRGaWVsZFxyXG4gIGNoaWxkcmVuPzogQ2hpbGRGaWVsZFtdXHJcbiAgbWFzdGVyT3B0aW9ucz86IGFueVtdXHJcbiAgbnVsbGFibGU/OiBib29sZWFuXHJcbiAgY29weUNvbnRlbnQ/OiBib29sZWFuXHJcbiAgY2xlYXJDb250ZW50PzogYm9vbGVhblxyXG4gIGZvcm1hdD86ICd0ZXh0JyB8ICdtb25leScgfCAnZGF0ZScgfCAnZGF0ZXRpbWUnIHwgJ251bWJlcidcclxuICBoaWRlT25DcmVhdGU/OiBib29sZWFuXHJcbiAgaGlkZU9uRXhpc3RzPzogYm9vbGVhblxyXG4gIGhpZGRlbkNvbmRpdGlvbj86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuO1xyXG4gIHJlYWRvbmx5Q29uZGl0aW9uPzogKHZhbHVlOiBhbnkpID0+IGJvb2xlYW47XHJcbiAgZGV0YWlsc0NvbmZpZz86IERldGFpbHNEaWFsb2dDb25maWc7XHJcbiAgbG9hZEFjdGlvbj86IEFjdGlvblxyXG4gIGluZm9NZXNzYWdlPzogc3RyaW5nO1xyXG4gIHN1ZmZpeD86IHN0cmluZztcclxuICBzdWJmaWVsZHM/OiBGaWVsZFtdO1xyXG4gIG9wdGlvbnNTdWJqZWN0PzogQmVoYXZpb3JTdWJqZWN0PGFueVtdPjtcclxuICBzZWN0aW9uPzogc3RyaW5nO1xyXG4gIGZpbGVPcHRpb25zPzoge1xyXG4gICAgYWxsb3dlZEV4dGVuc2lvbnM/OiBzdHJpbmdbXTtcclxuICAgIG1heFNpemVNQj86IG51bWJlcjtcclxuICAgIGNvbXByZXNzSW1hZ2VzPzogYm9vbGVhbjtcclxuICB9O1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEFsZXJ0TWVzc2FnZSB7XHJcbiAgdHlwZT86ICdzdWNjZXNzJyB8ICdpbmZvJyB8ICd3YXJuJyB8ICdjcml0aWNhbCdcclxuICBjb250ZW50OiBzdHJpbmdcclxuICBoaWRkZW5Db25kaXRpb24/OiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEFsZXJ0TWVzc2FnZXMge1xyXG4gIHN1YmplY3Q/OiBzdHJpbmdcclxuICBtZXNzYWdlczogQWxlcnRNZXNzYWdlW11cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEZvcm1Db25maWcge1xyXG4gIHRpdGxlPzogc3RyaW5nXHJcbiAgZml4ZWRUaXRsZT86IGJvb2xlYW5cclxuICBhbGVydE1lc3NhZ2VzPzogQWxlcnRNZXNzYWdlc1xyXG4gIGZpZWxkczogRmllbGRbXVxyXG4gIG1vZGU/OiAnY3JlYXRlJyB8ICdlZGl0JyB8ICd2aWV3J1xyXG4gIGJ1dHRvbj8gOiBCdXR0b25cclxuICBtdWx0aUNvbHVtbj86IGJvb2xlYW5cclxuICByZXNldD86IGJvb2xlYW5cclxuICBsb2FkQWN0aW9uPzogQWN0aW9uXHJcbiAgaGVyb0ZpZWxkPzogYW55XHJcbiAgaGVyb1ZhbHVlPzogYW55XHJcbiAgc2VjdXJpdHk/OiBTZWN1cml0eUNvbmZpZztcclxuICBpbmNsdWRlQXVkaXQ/OiBib29sZWFuXHJcblxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpcm0ge1xyXG4gIG1lc3NhZ2U6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEJ1dHRvbntcclxuICBuYW1lOiBzdHJpbmdcclxuICB2aXNpYmxlPzogKHZhbHVlOiBhbnkpID0+IGJvb2xlYW47XHJcbiAgZGlzcGxheT86IHN0cmluZztcclxuICBpY29uPzogSWNvbjtcclxuICBkaXNhYmxlZD86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuO1xyXG4gIGNvbG9yPzogc3RyaW5nO1xyXG4gIHRpcD86IHN0cmluZ1xyXG4gIGRpYWxvZz86IGJvb2xlYW5cclxuICBhY3Rpb24/OiBBY3Rpb25cclxuICBjb25maXJtPzogQ29uZmlybVxyXG4gIGluRGlhbG9nPzogYm9vbGVhblxyXG4gIGluSGVhZGVyPzogYm9vbGVhblxyXG4gIGRldGFpbHNDb25maWc/OiBEZXRhaWxzRGlhbG9nQ29uZmlnXHJcbiAgc2V0SGVyb0ZpZWxkPzogYm9vbGVhbjtcclxufVxyXG5cclxuXHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUaWxlIHtcclxuXHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGFsaWFzPzogc3RyaW5nO1xyXG4gIHZhbHVlPzogc3RyaW5nO1xyXG4gIGNvbG9yPzogc3RyaW5nO1xyXG4gIHNlbGVjdGVkVGlsZT86IHN0cmluZztcclxuICBoaWRkZW4/OiBib29sZWFuO1xyXG4gIGluZm8/OiBzdHJpbmc7XHJcbiAgcHJlZml4Pzogc3RyaW5nO1xyXG4gIHN1ZmZpeD86IHN0cmluZztcclxuICBhY3Rpb24/OiBBY3Rpb247XHJcbn1cclxuZXhwb3J0IGNsYXNzIFRpbGVDb25maWcge1xyXG4gIHRpbGVzOiBUaWxlW11cclxuICBsb2FkQWN0aW9uPzogQWN0aW9uXHJcbiAgbG9hZEluaXQ/OiBib29sZWFuXHJcbiAgY2xpY2thYmxlPzogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU3RlcCB7XHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgdmFsdWU/OiBhbnlcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIGhpZGRlbkNvbmRpdGlvbj86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuO1xyXG59XHJcbmV4cG9ydCBjbGFzcyBTdGVwQ29uZmlnIHtcclxuICBzdGVwczogU3RlcFtdXHJcbiAgdmFsdWVGaWVsZD86IHN0cmluZ1xyXG4gIGxvYWRBY3Rpb24/OiBBY3Rpb247XHJcbiAgbG9hZElERmllbGQ/OiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJY29uIHtcclxuICBuYW1lOiBzdHJpbmdcclxuICBjb2xvcj86IHN0cmluZ1xyXG4gIHRpcD86IHN0cmluZ1xyXG4gIHRpcEZpZWxkPzogc3RyaW5nXHJcbiAgYmFubmVyRmllbGQ/OiBzdHJpbmdcclxuICBjb25kaXRpb24/OiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb2xvciB7XHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgY29uZGl0aW9uPzogKHZhbHVlOiBhbnkpID0+IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdHlwZT86ICd0ZXh0JyB8ICdkYXRlJyB8ICdkYXRldGltZScgfCAnZGF0ZXRpbWVzZWMnIHwgJ2NoZWNrYm94JyB8ICdzZWxlY3QnIHwgJ21vbmV5JyB8ICdudW1iZXInIHwgJ2NoaXAnIHwgJ2ljb24nIHwgJ3NwaW5uZXInIHwgJ2J1dHRvbic7XHJcbiAgYWxpYXM/OiBzdHJpbmc7XHJcbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xyXG4gIGljb24/OiBJY29uO1xyXG4gIGNvbG9yPzogQ29sb3I7XHJcbiAgY29sb3JzPzogQ29sb3JbXTtcclxuICBpY29ucz86IEljb25bXTtcclxuICBvcHRpb25zPzogYW55W107XHJcbiAgb3B0aW9uRGlzcGxheT86IHN0cmluZ1xyXG4gIG9wdGlvblZhbHVlPzogc3RyaW5nXHJcbiAgZGV0YWlsc0NvbmZpZz86IERldGFpbHNEaWFsb2dDb25maWdcclxuICBoaWRkZW5Db25kaXRpb24/OiAocGFyZW50RGF0YTogYW55KSA9PiBib29sZWFuO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIFRhYmxlQ29uZmlne1xyXG4gIHRhYlRpdGxlPzogc3RyaW5nXHJcbiAgbm9EYXRhTWVzc2FnZSA/OiBzdHJpbmdcclxuICBjb2x1bW5zPyA6IENvbHVtbltdXHJcbiAgbWluQ29sdW1ucz86IHN0cmluZ1tdXHJcbiAgc2hvd0ZpbHRlcj86IGJvb2xlYW5cclxuICBzaG93RmlsdGVyQnV0dG9uPzogYm9vbGVhblxyXG4gIGhvbGRGaWx0ZXJTcGFjZT86IGJvb2xlYW5cclxuICBob2xkSGVhZGVyQnV0dG9uU3BhY2U/OiBib29sZWFuXHJcbiAgZWxldmF0aW9uPzogJ25vbmUnIHwgJ2xvdycgfCAnbWVkaXVtJyB8ICdoaWdoJ1xyXG4gIGZvcm1Db25maWc/OiBGb3JtQ29uZmlnXHJcbiAgc2VhcmNoQ29uZmlnPzogU2VhcmNoQ29uZmlnXHJcbiAgdGlsZUNvbmZpZz86IFRpbGVDb25maWdcclxuICBzdGVwQ29uZmlnPzogU3RlcENvbmZpZ1xyXG4gIGJ1dHRvbnM/OiBCdXR0b25bXVxyXG4gIG1pbkJ1dHRvbnM/OiBzdHJpbmdbXVxyXG4gIGxvYWRBY3Rpb24/OiBBY3Rpb25cclxuICBsb2FkSURGaWVsZCA/OiBzdHJpbmdcclxuICBsb2FkQ3JpdGVyaWE/OiBzdHJpbmdcclxuICBsb2dSZXNwb25zZT86IGJvb2xlYW5cclxuICBmbGF0QnV0dG9ucz86IGJvb2xlYW5cclxuICBncmV5T3V0PzogKHZhbHVlOiBhbnkpID0+IGJvb2xlYW47XHJcbiAgaGVyb0ZpZWxkPzogYW55XHJcbiAgaGVyb1ZhbHVlPzogYW55XHJcbiAgY29sbGFwc2VCdXR0b25zPzogYm9vbGVhblxyXG4gIHBhcmVudERhdGEgPyA6IGFueVxyXG4gIHBhZ2VTaXplcz86IG51bWJlcltdXHJcbiAgbWF4QnV0dG9uc0NvdW50PzogbnVtYmVyXHJcbiAgaGlkZVRhYkNvbmRpdGlvbj86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuO1xyXG5cclxuICBkb3dubG9hZD86IHsgY29sdW1uczogc3RyaW5nW10sIGZpbGVOYW1lPzogc3RyaW5nLCBoaWRkZW5Db25kaXRpb24/OiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjsgfVxyXG4gIHVwbG9hZD86IHsgYWN0aW9uOiBBY3Rpb24sIG1lc3NhZ2VzPzogQWxlcnRNZXNzYWdlW10sIGhpZGRlbkNvbmRpdGlvbj86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQYWdlQ29uZmlnIHtcclxuICB0aXRsZT86IHN0cmluZztcclxuICB0YWJsZUNvbmZpZz86IFRhYmxlQ29uZmlnO1xyXG4gIHNlYXJjaFRhYmxlQ29uZmlnPzogVGFibGVDb25maWc7XHJcbn1cclxuXHJcblxyXG5cclxuXHJcbi8vLS0tQmFzZS0tLVxyXG5cclxuZXhwb3J0IGNsYXNzIEFwaVJlc3BvbnNlIHtcclxuICBzdWNjZXNzOiBib29sZWFuO1xyXG4gIG1lc3NhZ2U6IHN0cmluZztcclxuICBkYXRhO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29uc3RhbnRzIHtcclxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFVVEhfVVNFUiA9ICdhJztcclxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFVVEhfTkFNRSA9ICdiJztcclxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFVVEhfUk9MRVMgPSAnYyc7XHJcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVVRIX1RPS0VOID0gJ2QnO1xyXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQVVUSF9UT0tFTl9FWFBJUkUgPSAnZSc7XHJcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVVRIX1RFTkFOVF9OQU1FID0gJ2YnO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTGlzdERpYWxvZ0NvbmZpZyB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgbGlzdE5hbWU6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENhcEl0ZW0ge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMubmFtZSA9IFwiXCI7XHJcbiAgICB0aGlzLmRpc3BsYXkgPSBcIk5ldyBDYXAgSXRlbVwiO1xyXG4gICAgdGhpcy5lbmFibGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLnR5cGUgPSBcIlwiO1xyXG4gICAgdGhpcy5uZXdMaW5lID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dNZW51ID0gdHJ1ZTtcclxuICAgIHRoaXMuaWdub3JlU3Vic0Rpc3BsYXkgPSBmYWxzZTtcclxuICAgIHRoaXMubGluayA9IFwiXCI7XHJcbiAgICB0aGlzLmljb24gPSBcIm5hdmlnYXRlX25leHRcIjtcclxuICAgIHRoaXMuY29sb3IgPSBcImJsYWNrXCI7XHJcblxyXG4gIH1cclxuXHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGRpc3BsYXk6IHN0cmluZztcclxuICBlbmFibGVkOiBib29sZWFuO1xyXG4gIHNob3dNZW51OiBib29sZWFuO1xyXG5cclxuICBpZ25vcmVTdWJzRGlzcGxheTogYm9vbGVhbjtcclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgbmV3TGluZTogYm9vbGVhbjtcclxuICBsaW5rOiBzdHJpbmc7XHJcbiAgaWNvbjogc3RyaW5nO1xyXG4gIGNhcFN1Ykl0ZW1zOiBDYXBJdGVtW107XHJcbiAgY29sb3I6IHN0cmluZztcclxuXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBcHBDb25maWcge1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5hcHBOYW1lID0gXCJBcHAgTmFtZVwiO1xyXG4gICAgdGhpcy5sb2dvID0gXCJcIjtcclxuICAgIHRoaXMubG9nb1NpemUgPSBcIm5vcm1hbFwiO1xyXG4gICAgdGhpcy5BREF1dGggPSB0cnVlO1xyXG4gICAgdGhpcy5sb2NhbEF1dGggPSB0cnVlO1xyXG4gICAgdGhpcy5nb29nbGVBdXRoID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlbGZTZXJ2aWNlID0gZmFsc2U7XHJcbiAgICB0aGlzLm11bHRpdGVuYW50ID0gZmFsc2U7XHJcbiAgICB0aGlzLm5hdmlnYXRpb24gPSAndG9wJztcclxuICAgIHRoaXMucHJvZ3Jlc3NMaW5lID0gZmFsc2U7XHJcbiAgICB0aGlzLmxvZ2luU3R5bGUgPSAnZGVmYXVsdCc7XHJcbiAgICB0aGlzLnRlcm1zVXJsID0gXCJodHRwczovL3lvdXJzaXRlLmNvbS90ZXJtc1wiO1xyXG4gICAgdGhpcy5wcml2YWN5VXJsID0gXCJodHRwczovL3lvdXJzaXRlLmNvbS9wcml2YWN5XCI7XHJcbiAgICB0aGlzLnNpdGVVcmwgPSBcImh0dHBzOi8veW91cnNpdGUuY29tXCI7XHJcbiAgICB0aGlzLm5hdldpZHRoID0gJzIwMHB4JztcclxuXHJcbiAgfVxyXG4gIGFwcE5hbWU6IHN0cmluZztcclxuICBsb2dvOiBzdHJpbmc7XHJcbiAgbG9nb1NpemU6IHN0cmluZztcclxuICBBREF1dGg6IGJvb2xlYW47XHJcbiAgbG9jYWxBdXRoOiBib29sZWFuO1xyXG4gIGdvb2dsZUF1dGg6IGJvb2xlYW47XHJcbiAgc2VsZlNlcnZpY2U6IGJvb2xlYW47XHJcbiAgY2FwSXRlbXM6IENhcEl0ZW1bXTtcclxuICBtdWx0aXRlbmFudCA6IGJvb2xlYW47XHJcbiAgbmF2aWdhdGlvbiA6ICd0b3AnIHwgJ3NpZGUnXHJcbiAgcHJvZ3Jlc3NMaW5lOiBib29sZWFuO1xyXG4gIGRvY3NCYXNlVXJsIDogc3RyaW5nO1xyXG4gIGxvZ2luU3R5bGUgOiBzdHJpbmc7XHJcbiAgbG9naW5UaXRsZSA6IHN0cmluZztcclxuICBsb2dpbk1lc3NhZ2UgOiBzdHJpbmc7XHJcbiAgdGVybXNVcmw6IHN0cmluZztcclxuICBwcml2YWN5VXJsOiBzdHJpbmc7XHJcbiAgc2l0ZVVybDogc3RyaW5nO1xyXG4gIG5hdldpZHRoOiBzdHJpbmc7XHJcblxyXG59XHJcblxyXG5cclxuXHJcblxyXG4vLy0tLS0tLS0tLS0tTW92ZSBvdXQtLS0tLS1cclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uSUQgPSAwO1xyXG4gICAgdGhpcy5uYXJyYXRpb24gPSBcIlwiO1xyXG4gICAgdGhpcy5hbW91bnQgPSAnMCc7XHJcbiAgICB0aGlzLnR5cGUgPSAwO1xyXG4gICAgdGhpcy5kYXRlID0gXCJcIjtcclxuICAgIHRoaXMuYWNjb3VudElEID0gMDtcclxuICAgIHRoaXMuZGVzdGluYXRpb25JRCA9IDA7XHJcbiAgICB0aGlzLmNhdGVnb3J5SUQgPSAwO1xyXG4gIH1cclxuXHJcbiAgdHJhbnNhY3Rpb25JRCA6IG51bWJlcjtcclxuICBuYXJyYXRpb24gOiBzdHJpbmc7XHJcbiAgYW1vdW50IDogc3RyaW5nO1xyXG4gIHR5cGU6IG51bWJlcjtcclxuICBkYXRlIDogc3RyaW5nO1xyXG4gIGFjY291bnRJRCA6IG51bWJlcjtcclxuICBkZXN0aW5hdGlvbklEIDogbnVtYmVyO1xyXG4gIGNhdGVnb3J5SUQgOiBudW1iZXI7XHJcblxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRmluQWNjb3VudCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCl7XHJcbiAgICB0aGlzLmFjY291bnRJRCA9IDA7XHJcbiAgICB0aGlzLm5hbWUgPSBcIlwiO1xyXG4gICAgdGhpcy5kZXNjcmlwdGlvbiA9IFwiXCI7XHJcbiAgICB0aGlzLmN1cnJlbmN5ID0gXCJcIjtcclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgYWNjb3VudElEOiBudW1iZXJcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb246IHN0cmluZztcclxuICBjdXJyZW5jeTogc3RyaW5nO1xyXG5cclxufVxyXG5cclxuIl19
|
|
@@ -119,16 +119,8 @@ export class FormComponent {
|
|
|
119
119
|
this.inputChange.emit({ field: field, value: value });
|
|
120
120
|
this.updateChildOptions(field.name);
|
|
121
121
|
if (this.config.mode == 'create' && field.children) {
|
|
122
|
-
console.log("Children found for master field ", field);
|
|
123
|
-
console.log("Master value is ", value);
|
|
124
122
|
field.children.forEach(childConfig => {
|
|
125
123
|
let child = this.fields.find(x => x.name == childConfig.childField);
|
|
126
|
-
console.log("Child found ", child);
|
|
127
|
-
console.log("Current data is ", this.data);
|
|
128
|
-
console.log("Setting field ", child.name);
|
|
129
|
-
console.log("Picked option is ", field.options.find(x => x[field.optionValue] == value));
|
|
130
|
-
console.log("Set value is ", field.options.find(x => x[field.optionValue] == value)[childConfig.childValueField]);
|
|
131
|
-
// this.data[child.name] = field.options.find(x => x[field.optionValue] == value)[childConfig.childValueField]
|
|
132
124
|
this.data[child.name] = field.options.find(x => x[field.optionValue ?? 'value'] == value)[childConfig.childValueField];
|
|
133
125
|
});
|
|
134
126
|
}
|
|
@@ -239,4 +231,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
239
231
|
}], inputChange: [{
|
|
240
232
|
type: Output
|
|
241
233
|
}] } });
|
|
242
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90aW4tc3BhL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2Zvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBRTFHLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUc3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVN2QyxNQUFNLE9BQU8sYUFBYTtJQUV4QixZQUFvQixjQUE4QixFQUFVLFdBQTJCLEVBQVUsV0FBd0I7UUFBckcsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUE4R3pILGNBQVMsR0FBRyxLQUFLLENBQUM7UUFJVCxVQUFLLEdBQVUsRUFBRSxDQUFDO1FBRTNCLGtCQUFhLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLGlCQUFZLEdBQWEsS0FBSyxDQUFDO1FBQy9CLGdCQUFXLEdBQWEsS0FBSyxDQUFDO1FBTXBCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUE3SGtGLENBQUM7SUFFOUgsUUFBUTtRQUVOLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENB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QUFDO0lBRUQsV0FBVztJQU1YLENBQUM7OzBHQW5TVSxhQUFhOzhGQUFiLGFBQWEscVNDZDFCLDJ4V0EwSEE7MkZENUdhLGFBQWE7a0JBTHpCLFNBQVM7K0JBQ0UsVUFBVTs0SkFrSFcscUJBQXFCO3NCQUFuRCxZQUFZO3VCQUFDLGVBQWU7Z0JBTXBCLEtBQUs7c0JBQWIsS0FBSztnQkFRRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbmZpZywgRmllbGQsIEJ1dHRvbiwgQXBpUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9jbGFzc2VzL0NsYXNzZXMnO1xyXG5pbXBvcnQgeyBDb3JlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9UaW5Db3JlJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZUxpYiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGFsaWIuc2VydmljZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzcGEtZm9ybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Zvcm0uY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlTGliLCBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG5cclxuICAgIHRoaXMuaGFzQWNjZXNzID0gQ29yZS5jaGVja0Zvcm1BY2Nlc3ModGhpcy5jb25maWcsIHRoaXMuYXV0aFNlcnZpY2UuY3VycmVudFJvbGVTb3VyY2UudmFsdWUpO1xyXG5cclxuICAgIGlmICghdGhpcy5oYXNBY2Nlc3MpIHtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdCgnQWNjZXNzIGRlbmllZCcpOyAvLyBPcHRpb25hbCAtIG5vdGlmeSB1c2VyXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMuY29uZmlnLmZpZWxkcyl7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJQbGVhc2UgQ29uZmlndXJlIEZvcm0gRmllbGRzXCIpXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMuZGF0YSkge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiUGxlYXNlIENvbmZpZ3VyZSBGb3JtIERhdGFcIilcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZmllbGRzID0gdGhpcy5jb25maWcuZmllbGRzO1xyXG5cclxuICAgIC8vIEluaXRpYWxpemUgQmVoYXZpb3JTdWJqZWN0cyBmb3IgZmllbGRzIHdpdGggbG9hZEFjdGlvbnNcclxuICAgIHRoaXMuZmllbGRzPy5mb3JFYWNoKGZpZWxkID0+IHtcclxuICAgICAgaWYgKGZpZWxkLmxvYWRBY3Rpb24gJiYgIWZpZWxkLm9wdGlvbnNTdWJqZWN0ICYmICFmaWVsZC5tYXN0ZXJGaWVsZCkge1xyXG4gICAgICAgIGZpZWxkLm9wdGlvbnNTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnlbXT4oW10pO1xyXG5cclxuICAgICAgICAvLyBTdWJzY3JpYmUgdG8gb3B0aW9ucyBjaGFuZ2VzXHJcbiAgICAgICAgZmllbGQub3B0aW9uc1N1YmplY3Quc3Vic2NyaWJlKG5ld09wdGlvbnMgPT4ge1xyXG4gICAgICAgICAgZmllbGQub3B0aW9ucyA9IG5ld09wdGlvbnM7XHJcblxyXG4gICAgICAgICAgLy8gVXBkYXRlIGNoaWxkIGZpZWxkcyB0aGF0IGRlcGVuZCBvbiB0aGlzIGZpZWxkXHJcbiAgICAgICAgICBpZiAodGhpcy5jaGlsZEZpZWxkcz8uc29tZSh4ID0+IHgubWFzdGVyRmllbGQgPT09IGZpZWxkLm5hbWUpKSB7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2hpbGRPcHRpb25zKGZpZWxkLm5hbWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnLm11bHRpQ29sdW1uKXtcclxuICAgICAgdGhpcy5tdWx0aUNvbHVtbiA9IHRoaXMuY29uZmlnLm11bHRpQ29sdW1uXHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5tdWx0aUNvbHVtbiA9IHRoaXMuZmllbGRzLmxlbmd0aCA+IDJcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5jb25maWc/LmJ1dHRvbj8uZGlzcGxheSl7XHJcbiAgICAgIHRoaXMuYnV0dG9uRGlzcGxheSA9IHRoaXMuY29uZmlnLmJ1dHRvbi5kaXNwbGF5O1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZmlsZUZpZWxkID0gdGhpcy5maWVsZHMuZmluZCh4ID0+IHgudHlwZSA9PSAnZmlsZScpXHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnPy5idXR0b24/LmFjdGlvbiAmJiB0aGlzLmZpbGVGaWVsZCkge1xyXG4gICAgICB0aGlzLmNvbmZpZy5idXR0b24uYWN0aW9uLmlzRm9ybURhdGEgPSB0cnVlO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNoaWxkRmllbGRzID0gdGhpcy5maWVsZHMuZmlsdGVyKHggPT4geC5tYXN0ZXJGaWVsZClcclxuXHJcblxyXG4gICAgdGhpcy5jaGlsZEZpZWxkcy5mb3JFYWNoKGNoaWxkID0+IHtcclxuICAgICAgbGV0IG1hc3RlciA9IHRoaXMuZmllbGRzLmZpbmQoeCA9PiB4Lm5hbWUgPT0gY2hpbGQubWFzdGVyRmllbGQpXHJcbiAgICAgIGlmIChjaGlsZC5sb2FkQWN0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5sb2FkQ2hpbGRNYXN0ZXJPcHRpb25zKGNoaWxkKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy51cGRhdGVDaGlsZE9wdGlvbnMobWFzdGVyLm5hbWUpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5maWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XHJcbiAgICAgIGlmIChmaWVsZC5sb2FkQWN0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5sb2FkQ2hpbGRNYXN0ZXJPcHRpb25zKGZpZWxkKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5pbml0aWFsaXplQ29tcG9zaXRlRmllbGRzKCk7XHJcblxyXG5cclxuICB9XHJcblxyXG4gIGluaXRpYWxpemVDb21wb3NpdGVGaWVsZHMoKSB7XHJcbiAgICB0aGlzLmZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcclxuICAgICAgaWYgKGZpZWxkLnR5cGUgPT09ICdjb21wb3NpdGUnICYmIGZpZWxkLnN1YmZpZWxkcykge1xyXG4gICAgICAgIGZpZWxkLnN1YmZpZWxkcy5mb3JFYWNoKHN1YmZpZWxkID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzLmRhdGFbc3ViZmllbGQubmFtZV0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGFbc3ViZmllbGQubmFtZV0gPSBDb3JlLmdldEluaXRpYWxWYWx1ZShzdWJmaWVsZCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmlzaWJsZVN1YmZpZWxkcyhmaWVsZCA6IEZpZWxkKXtcclxuICAgIHJldHVybiBDb3JlLmdldFZpc2libGVTdWJmaWVsZHModGhpcy5jb25maWcsIHRoaXMuZGF0YSwgZmllbGQsIHRoaXMuYXV0aFNlcnZpY2UuY3VycmVudFJvbGVTb3VyY2UudmFsdWUpO1xyXG4gIH1cclxuXHJcblxyXG4gIGdldFZpc2libGVGaWVsZHMoKXtcclxuICAgIHJldHVybiB0aGlzLmZpZWxkcz8uZmlsdGVyKHggPT4gQ29yZS50ZXN0VmlzaWJsZSh0aGlzLmNvbmZpZywgdGhpcy5kYXRhLCB4LCB0aGlzLmF1dGhTZXJ2aWNlLmN1cnJlbnRSb2xlU291cmNlLnZhbHVlKSlcclxuICB9XHJcblxyXG4gIHRlc3RSZWFkT25seShmaWVsZDogRmllbGQpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBDb3JlLnRlc3RSZWFkT25seSh0aGlzLmNvbmZpZywgdGhpcy5kYXRhLCBmaWVsZCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgQENvbnRlbnRDaGlsZCgnZHluYW1pY1NlbGVjdCcpIGR5bmFtaWNTZWxlY3RUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgaGFzQWNjZXNzID0gZmFsc2U7XHJcbiAgZmlsZU5hbWVzXHJcbiAgZmlsZUZpZWxkOiBGaWVsZDtcclxuICBmaWxlVmlld0ZpZWxkOiBGaWVsZDtcclxuICBASW5wdXQoKSBmaWxlczogYW55W10gPSBbXTtcclxuICBmaWVsZHM6IEZpZWxkW107XHJcbiAgYnV0dG9uRGlzcGxheSA9IFwiU3VibWl0XCI7XHJcbiAgaXNQcm9jZXNzaW5nIDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG11bHRpQ29sdW1uIDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjaGlsZEZpZWxkcyA6IEZpZWxkW107XHJcblxyXG4gIEBJbnB1dCgpIGRhdGE6IGFueTtcclxuICBASW5wdXQoKSBjb25maWc6IEZvcm1Db25maWc7XHJcbiAgQE91dHB1dCgpIGJ1dHRvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBpbnB1dENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgc2VsZWN0Q2hhbmdlZChmaWVsZDogRmllbGQpe1xyXG4gICAgdGhpcy5pbnB1dENoYW5nZWQoZmllbGQsIHRoaXMuZGF0YVtmaWVsZC5uYW1lXSApXHJcbiAgfVxyXG5cclxuICBpbnB1dENoYW5nZWQoZmllbGQgOiBGaWVsZCwgdmFsdWUpe1xyXG5cclxuXHJcbiAgICB0aGlzLmlucHV0Q2hhbmdlLmVtaXQoeyBmaWVsZDogZmllbGQsIHZhbHVlOiB2YWx1ZX0pXHJcblxyXG4gICAgdGhpcy51cGRhdGVDaGlsZE9wdGlvbnMoZmllbGQubmFtZSlcclxuXHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnLm1vZGUgPT0gJ2NyZWF0ZScgJiYgZmllbGQuY2hpbGRyZW4pe1xyXG4gICAgICBjb25zb2xlLmxvZyhcIkNoaWxkcmVuIGZvdW5kIGZvciBtYXN0ZXIgZmllbGQgXCIsIGZpZWxkKVxyXG4gICAgICBjb25zb2xlLmxvZyhcIk1hc3RlciB2YWx1ZSBpcyBcIiwgdmFsdWUpXHJcblxyXG4gICAgICBmaWVsZC5jaGlsZHJlbi5mb3JFYWNoKGNoaWxkQ29uZmlnID0+IHtcclxuXHJcbiAgICAgICAgbGV0IGNoaWxkID0gdGhpcy5maWVsZHMuZmluZCh4ID0+IHgubmFtZSA9PSBjaGlsZENvbmZpZy5jaGlsZEZpZWxkKVxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiQ2hpbGQgZm91bmQgXCIsIGNoaWxkKVxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiQ3VycmVudCBkYXRhIGlzIFwiLCB0aGlzLmRhdGEpXHJcbiAgICAgICAgY29uc29sZS5sb2coXCJTZXR0aW5nIGZpZWxkIFwiLCBjaGlsZC5uYW1lIClcclxuICAgICAgICBjb25zb2xlLmxvZyhcIlBpY2tlZCBvcHRpb24gaXMgXCIsIGZpZWxkLm9wdGlvbnMuZmluZCh4ID0+IHhbZmllbGQub3B0aW9uVmFsdWVdID09IHZhbHVlKSlcclxuICAgICAgICBjb25zb2xlLmxvZyhcIlNldCB2YWx1ZSBpcyBcIiwgZmllbGQub3B0aW9ucy5maW5kKHggPT4geFtmaWVsZC5vcHRpb25WYWx1ZV0gPT0gdmFsdWUpW2NoaWxkQ29uZmlnLmNoaWxkVmFsdWVGaWVsZF0pXHJcblxyXG5cclxuICAgICAgICAvLyB0aGlzLmRhdGFbY2hpbGQubmFtZV0gPSBmaWVsZC5vcHRpb25zLmZpbmQoeCA9PiB4W2ZpZWxkLm9wdGlvblZhbHVlXSA9PSB2YWx1ZSlbY2hpbGRDb25maWcuY2hpbGRWYWx1ZUZpZWxkXVxyXG4gICAgICAgIHRoaXMuZGF0YVtjaGlsZC5uYW1lXSA9IGZpZWxkLm9wdGlvbnMuZmluZCh4ID0+IHhbZmllbGQub3B0aW9uVmFsdWUgPz8gJ3ZhbHVlJ10gPT0gdmFsdWUpW2NoaWxkQ29uZmlnLmNoaWxkVmFsdWVGaWVsZF1cclxuXHJcbiAgICAgIH0pO1xyXG5cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICB1cGRhdGVDaGlsZE9wdGlvbnMobWFzdGVyRmllbGROYW1lOiBzdHJpbmcpe1xyXG5cclxuICAgIGxldCBjaGlsZCA9IHRoaXMuY2hpbGRGaWVsZHMuZmluZCh4ID0+IHgubWFzdGVyRmllbGQgPT0gbWFzdGVyRmllbGROYW1lKVxyXG4gICAgaWYgKGNoaWxkICE9IG51bGwpIHtcclxuXHJcbiAgICAgIC8vY3VycmVudCBpcyBtYXN0ZXJcclxuXHJcblxyXG4gICAgICBpZiAoY2hpbGQubWFzdGVyT3B0aW9ucyl7XHJcbiAgICAgICAgY2hpbGQub3B0aW9ucyA9IGNoaWxkLm1hc3Rlck9wdGlvbnMuZmlsdGVyKHggPT4geFtjaGlsZC5tYXN0ZXJPcHRpb25WYWx1ZSA/PyAnbWFzdGVyVmFsdWUnXSA9PSB0aGlzLmRhdGFbbWFzdGVyRmllbGROYW1lXSlcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJNYXN0ZXIgT3B0aW9ucyBub3QgZm91bmRcIilcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbG9hZENoaWxkTWFzdGVyT3B0aW9ucyhjaGlsZDogRmllbGQpIHtcclxuICAgIGlmICghY2hpbGQubG9hZEFjdGlvbikgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuQ2FsbEFwaShjaGlsZC5sb2FkQWN0aW9uKS5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlOiBBcGlSZXNwb25zZSkgPT4ge1xyXG4gICAgICBpZiAoYXBpUmVzcG9uc2Uuc3VjY2Vzcykge1xyXG5cclxuICAgICAgICBjaGlsZC5tYXN0ZXJPcHRpb25zID0gYXBpUmVzcG9uc2UuZGF0YTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUNoaWxkT3B0aW9ucyhjaGlsZC5tYXN0ZXJGaWVsZCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIGJ1dHRvbkNsaWNrZWQoKXtcclxuXHJcbiAgICB0aGlzLmJ1dHRvbkNsaWNrLmVtaXQodGhpcy5kYXRhKTtcclxuXHJcbiAgICBsZXQgYnV0dG9uID0gdGhpcy5jb25maWcuYnV0dG9uO1xyXG5cclxuICAgIGlmICghYnV0dG9uKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvL3ZhbGlkYXRpb25cclxuICAgIGxldCByZXNwID0gQ29yZS52YWxpZGF0ZU9iamVjdCh0aGlzLmdldFZpc2libGVGaWVsZHMoKSx0aGlzLmRhdGEpO1xyXG4gICAgaWYgKHJlc3AgIT0gJycpe1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KHJlc3ApXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIGlmICh0aGlzLmZpbGVzLmxlbmd0aCA8IDEgJiYgdGhpcy5maWxlRmllbGQ/LnJlcXVpcmVkICYmIHRoaXMuY29uZmlnLm1vZGUgPT0nY3JlYXRlJykge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiUGxlYXNlIGF0dGFjaCBmaWxlKHMpXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGlmIChidXR0b24uY29uZmlybSl7XHJcblxyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmNvbmZpcm0oYCR7YnV0dG9uLmNvbmZpcm0ubWVzc2FnZX1gKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQgPT0gXCJ5ZXNcIikge1xyXG4gICAgICAgICAgdGhpcy5wcm9jZXNzQ2FsbChidXR0b24pXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5wcm9jZXNzQ2FsbChidXR0b24pXHJcbiAgICB9XHJcblxyXG5cclxuXHJcblxyXG4gIH1cclxuXHJcbiAgcHJvY2Vzc0NhbGwoYnV0dG9uOiBCdXR0b24pe1xyXG5cclxuICAgIGlmICghYnV0dG9uLmFjdGlvbikgcmV0dXJuXHJcblxyXG4gICAgbGV0IGRhdGFPdXQ7XHJcblxyXG4gICAgaWYgKGJ1dHRvbi5hY3Rpb24uaXNGb3JtRGF0YSl7XHJcblxyXG4gICAgICBsZXQgZm9ybURhdGE6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5maWxlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZChgdXBsb2FkRmlsZSR7aX1gLCB0aGlzLmZpbGVzW2ldLCB0aGlzLmZpbGVzW2ldLm5hbWUpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBmb3JtRGF0YS5hcHBlbmQoXCJkYXRhXCIsIEpTT04uc3RyaW5naWZ5KHRoaXMuZGF0YSkpO1xyXG5cclxuXHJcbiAgICAgIGRhdGFPdXQgPSBmb3JtRGF0YVxyXG4gICAgfWVsc2V7XHJcblxyXG4gICAgICBkYXRhT3V0ID0gdGhpcy5kYXRhXHJcbiAgICB9XHJcblxyXG5cclxuXHJcblxyXG4gICAgdGhpcy5pc1Byb2Nlc3NpbmcgPSB0cnVlXHJcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLkNhbGxBcGkoYnV0dG9uLmFjdGlvbiwgZGF0YU91dCkuc3Vic2NyaWJlKChhcGlSZXNwb25zZSkgPT4ge1xyXG4gICAgICB0aGlzLmlzUHJvY2Vzc2luZyA9IGZhbHNlXHJcblxyXG4gICAgICBpZiAoYXBpUmVzcG9uc2Uuc3VjY2Vzcykge1xyXG5cclxuICAgICAgICBpZiAoYnV0dG9uLmFjdGlvbi5zdWNjZXNzTWVzc2FnZSkge1xyXG4gICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChidXR0b24uYWN0aW9uLnN1Y2Nlc3NNZXNzYWdlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIlN1Ym1pdHRlZFwiKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5yZXNldCkge1xyXG4gICAgICAgICAgQ29yZS5yZXNldE9iamVjdCh0aGlzLmZpZWxkcywgdGhpcy5kYXRhKVxyXG4gICAgICAgICAgdGhpcy5maWxlcyA9IFtdO1xyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJFcnJvcjogXCIgKyBhcGlSZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcm9jZXNzRm9ybSgpe1xyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgfVxyXG5cclxufVxyXG5cclxuXHJcbiIsIlxyXG48ZGl2IFtuZ0NsYXNzXT1cIm11bHRpQ29sdW1uID8gJ3Rpbi1ncmlkJyA6ICd0aW4tY29sJ1wiID5cclxuXHJcbiAgPGRpdiAqbmdJZj1cIiFoYXNBY2Nlc3NcIiBjbGFzcz1cInRpbi1jZW50ZXJcIj5cclxuICAgIDxwPjxlbT5BY2Nlc3MgUmVzdHJpY3RlZDwvZW0+PC9wPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IFtuZ0NsYXNzXT1cImZpZWxkLnNwYW4gfHwgZmllbGQudHlwZSA9PSdzZWN0aW9uJyB8fCBmaWVsZC50eXBlID09J2ZpbGUnIHx8IGZpZWxkLnR5cGUgPT0nZmlsZS12aWV3JyAgPyAnc3Bhbi1jb2wnIDogJydcIiAqbmdGb3I9XCJsZXQgZmllbGQgb2YgZ2V0VmlzaWJsZUZpZWxkcygpXCI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAgPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZmllbGQudHlwZVwiIGNsYXNzPVwiaGlnaGxpZ2h0XCI+XHJcblxyXG4gICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidzZWN0aW9uJ1wiIGNsYXNzPVwidGl0bGVcIj5cclxuICAgICAgICAgIDxsYWJlbCBzdHlsZT1cImZvbnQtc2l6ZTogbGFyZ2VyO1wiPnt7ZmllbGQuYWxpYXMgPz8gZmllbGQubmFtZSB8IGNhbWVsVG9Xb3Jkc319PC9sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2ZpbGUnXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMSBtYi0yXCIgKm5nSWY9XCJjb25maWcubW9kZSAhPSd2aWV3J1wiPlxyXG4gICAgICAgICAgICA8c3BhLWF0dGFjaCBbbWVzc2FnZV09XCJmaWVsZC5hbGlhcyA/PyAnRHJhZyBhbmQgRHJvcCBmaWxlcyBoZXJlJ1wiIFsoZmlsZXMpXT1cImZpbGVzXCIgW2ZpbGVPcHRpb25zXT1cImZpZWxkLmZpbGVPcHRpb25zXCI+PC9zcGEtYXR0YWNoPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidmaWxlLXZpZXcnXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMSBtYi0yXCIgKm5nSWY9XCJjb25maWcubW9kZSAmJiBjb25maWcubW9kZSAhPSdjcmVhdGUnXCI+XHJcbiAgICAgICAgICAgIDxzcGEtdmlld2VyIFtmaWxlQWN0aW9uXT1cImZpZWxkLmxvYWRBY3Rpb25cIiBbcGF0aF09XCJmaWVsZC5wYXRoXCIgW2ZvbGRlck5hbWVdPVwiZGF0YVtmaWVsZC5rZXlGaWVsZF1cIiA+PC9zcGEtdmlld2VyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG5cclxuICAgICAgICA8bGFiZWwgKm5nU3dpdGNoQ2FzZT1cIidibGFuaydcIj48L2xhYmVsPlxyXG5cclxuICAgICAgICA8bGFiZWwgKm5nU3dpdGNoQ2FzZT1cIidzdHJpbmcnXCIgW25nU3R5bGVdPVwieydmb250LXNpemUnOmZpZWxkLnNpemUgPz8gJzE0cHgnfVwiID57e2RhdGFbZmllbGQubmFtZV0gPz8gZmllbGQuYWxpYXMgPz8gZmllbGQubmFtZX19IHt7ZmllbGQuc3VmZml4ID8/ICcnfX08L2xhYmVsPlxyXG5cclxuICAgICAgICA8c3BhLWxhYmVsICpuZ1N3aXRjaENhc2U9XCInbGFiZWwnXCIgW2Rpc3BsYXldPVwiZmllbGQuYWxpYXMgPz8gZmllbGQubmFtZSB8IGNhbWVsVG9Xb3Jkc1wiIFt2YWx1ZV09XCJkYXRhW2ZpZWxkLm5hbWVdXCIgKHZhbHVlQ2hhbmdlKT1cImlucHV0Q2hhbmdlZChmaWVsZCwgZGF0YVtmaWVsZC5uYW1lXSlcIiBbZm9ybWF0XT1cImZpZWxkLmZvcm1hdCA/PyAndGV4dCdcIiBbc3VmZml4XT1cImZpZWxkLnN1ZmZpeFwiPjwvc3BhLWxhYmVsPlxyXG5cclxuICAgICAgICA8c3BhLW51bWJlciAqbmdTd2l0Y2hDYXNlPVwiJ251bWJlcidcIiBbZGlzcGxheV09XCJmaWVsZC5hbGlhcyA/PyBmaWVsZC5uYW1lIHwgY2FtZWxUb1dvcmRzXCIgW3dpZHRoXT1cImZpZWxkLndpZHRoXCIgWyh2YWx1ZSldPVwiZGF0YVtmaWVsZC5uYW1lXVwiICh2YWx1ZUNoYW5nZSk9XCJpbnB1dENoYW5nZWQoZmllbGQsIGRhdGFbZmllbGQubmFtZV0pXCIgW3JlcXVpcmVkXT1cImZpZWxkLnJlcXVpcmVkXCIgW21pbl09XCJmaWVsZC5taW5cIiBbbWF4XT1cImZpZWxkLm1heFwiIFtyZWFkb25seV09XCJ0ZXN0UmVhZE9ubHkoZmllbGQpXCIgW2hpbnRdPVwiZmllbGQuaGludFwiIFtpbmZvTWVzc2FnZV09XCJmaWVsZC5pbmZvTWVzc2FnZVwiIFtzdWZmaXhdPVwiZmllbGQuc3VmZml4XCIgW2NvcHlDb250ZW50XT1cImZpZWxkLmNvcHlDb250ZW50XCIgW2NsZWFyQ29udGVudF09XCJmaWVsZC5jbGVhckNvbnRlbnRcIj48L3NwYS1udW1iZXI+XHJcblxyXG4gICAgICAgIDxzcGEtbW9uZXkgKm5nU3dpdGNoQ2FzZT1cIidtb25leSdcIiBbZGlzcGxheV09XCJmaWVsZC5hbGlhcyA/PyBmaWVsZC5uYW1lIHwgY2FtZWxUb1dvcmRzXCIgW3dpZHRoXT1cImZpZWxkLndpZHRoXCIgWyh2YWx1ZSldPVwiZGF0YVtmaWVsZC5uYW1lXVwiICh2YWx1ZUNoYW5nZSk9XCJpbnB1dENoYW5nZWQoZmllbGQsIGRhdGFbZmllbGQubmFtZV0pXCIgW3JlcXVpcmVkXT1cImZpZWxkLnJlcXVpcmVkXCIgW21pbl09XCJmaWVsZC5taW5cIiBbbWF4XT1cImZpZWxkLm1heFwiIFtyZWFkb25seV09XCJ0ZXN0UmVhZE9ubHkoZmllbGQpXCIgW2hpbnRdPVwiZmllbGQuaGludFwiIFtpbmZvTWVzc2FnZV09XCJmaWVsZC5pbmZvTWVzc2FnZVwiIFtzdWZmaXhdPVwiZmllbGQuc3VmZml4XCIgW2NvcHlDb250ZW50XT1cImZpZWxkLmNvcHlDb250ZW50XCIgW2NsZWFyQ29udGVudF09XCJmaWVsZC5jbGVhckNvbnRlbnRcIj48L3NwYS1tb25leT5cclxuXHJcbiAgICAgICAgPHNwYS1jaGVjayAqbmdTd2l0Y2hDYXNlPVwiJ2NoZWNrYm94J1wiIFtkaXNwbGF5XT1cImZpZWxkLmFsaWFzID8/IGZpZWxkLm5hbWUgfCBjYW1lbFRvV29yZHNcIiBbKHZhbHVlKV09XCJkYXRhW2ZpZWxkLm5hbWVdXCIgKHZhbHVlQ2hhbmdlKT1cImlucHV0Q2hhbmdlZChmaWVsZCwgZGF0YVtmaWVsZC5uYW1lXSlcIiBbcmVhZG9ubHldPVwidGVzdFJlYWRPbmx5KGZpZWxkKVwiIFtpbmZvTWVzc2FnZV09XCJmaWVsZC5pbmZvTWVzc2FnZVwiID48L3NwYS1jaGVjaz5cclxuXHJcbiAgICAgICAgPHNwYS1kYXRlICpuZ1N3aXRjaENhc2U9XCInZGF0ZSdcIiBbZGlzcGxheV09XCJmaWVsZC5hbGlhcyA/PyBmaWVsZC5uYW1lIHwgY2FtZWxUb1dvcmRzXCIgW3dpZHRoXT1cImZpZWxkLndpZHRoXCIgWyh2YWx1ZSldPVwiZGF0YVtmaWVsZC5uYW1lXVwiICh2YWx1ZUNoYW5nZSk9XCJpbnB1dENoYW5nZWQoZmllbGQsIGRhdGFbZmllbGQubmFtZV0pXCIgW21pbl09XCJmaWVsZD8ubWluXCIgW21heF09XCJmaWVsZD8ubWF4XCIgW3JlYWRvbmx5XT1cInRlc3RSZWFkT25seShmaWVsZClcIiBbaGludF09XCJmaWVsZC5oaW50XCIgW2luZm9NZXNzYWdlXT1cImZpZWxkLmluZm9NZXNzYWdlXCIgPjwvc3BhLWRhdGU+XHJcblxyXG4gICAgICAgIDxzcGEtZGF0ZXRpbWUgKm5nU3dpdGNoQ2FzZT1cIidkYXRldGltZSdcIiBbZGlzcGxheV09XCJmaWVsZC5hbGlhcyA/PyBmaWVsZC5uYW1lIHwgY2FtZWxUb1dvcmRzXCIgWyh2YWx1ZSldPVwiZGF0YVtmaWVsZC5uYW1lXVwiICh2YWx1ZUNoYW5nZSk9XCJpbnB1dENoYW5nZWQoZmllbGQsIGRhdGFbZmllbGQubmFtZV0pXCIgW3JlYWRvbmx5XT1cInRlc3RSZWFkT25seShmaWVsZClcIiBbbWluXT1cImZpZWxkLm1pblwiIFttYXhdPVwiZmllbGQubWF4XCIgW2luZm9NZXNzYWdlXT1cImZpZWxkLmluZm9NZXNzYWdlXCIgPjwvc3BhLWRhdGV0aW1lPlxyXG5cclxuICAgICAgICA8c3BhLWVtYWlsICpuZ1N3aXRjaENhc2U9XCInZW1haWwnXCIgW2Rpc3BsYXldPVwiZmllbGQuYWxpYXMgPz8gZmllbGQubmFtZSB8IGNhbWVsVG9Xb3Jkc1wiIFsodmFsdWUpXT1cImRhdGFbZmllbGQubmFtZV1cIiAodmFsdWVDaGFuZ2UpPVwiaW5wdXRDaGFuZ2VkKGZpZWxkLGRhdGFbZmllbGQubmFtZV0pXCIgW3JlcXVpcmVkXT1cImZpZWxkLnJlcXVpcmVkXCIgW3JlYWRvbmx5XT1cInRlc3RSZWFkT25seShmaWVsZClcIiBbaGludF09XCJmaWVsZC5oaW50XCIgW2luZm9NZXNzYWdlXT1cImZpZWxkLmluZm9NZXNzYWdlXCIgIFtzdWZmaXhdPVwiZmllbGQuc3VmZml4XCIgW2NvcHlDb250ZW50XT1cImZpZWxkLmNvcHlDb250ZW50XCIgW2NsZWFyQ29udGVudF09XCJmaWVsZC5jbGVhckNvbnRlbnRcIj48L3NwYS1lbWFpbD5cclxuXHJcbiAgICAgICAgPHNwYS10ZXh0ICpuZ1N3aXRjaENhc2U9XCIncGFzc3dvcmQnXCIgW2Zvcm1hdF09XCIncGFzc3dvcmQnXCIgW2Rpc3BsYXldPVwiZmllbGQuYWxpYXMgPz8gZmllbGQubmFtZSB8IGNhbWVsVG9Xb3Jkc1wiIFt3aWR0aF09XCJmaWVsZC53aWR0aFwiIFtvcHRpb25zXT1cImZpZWxkLm9wdGlvbnNcIiBbb3B0aW9uVmFsdWVdPVwiZmllbGQub3B0aW9uVmFsdWUgPz8gJ3ZhbHVlJ1wiIFtyb3dzXT1cImZpZWxkLnJvd3NcIiBbKHZhbHVlKV09XCJkYXRhW2ZpZWxkLm5hbWVdXCIgKHZhbHVlQ2hhbmdlKT1cImlucHV0Q2hhbmdlZChmaWVsZCxkYXRhW2ZpZWxkLm5hbWVdKVwiIFtyZXF1aXJlZF09XCJmaWVsZC5yZXF1aXJlZFwiIFttaW5dPVwiZmllbGQubWluXCIgW21heF09XCJmaWVsZC5tYXhcIiBbcmVhZG9ubHldPVwidGVzdFJlYWRPbmx5KGZpZWxkKVwiIFtoaW50XT1cImZpZWxkLmhpbnRcIiBbaW5mb01lc3NhZ2VdPVwiZmllbGQuaW5mb01lc3NhZ2VcIiBbc3VmZml4XT1cImZpZWxkLnN1ZmZpeFwiIFtjb3B5Q29udGVudF09XCJmaWVsZC5jb3B5Q29udGVudFwiIFtjbGVhckNvbnRlbnRdPVwiZmllbGQuY2xlYXJDb250ZW50XCI+PC9zcGEtdGV4dD5cclxuXHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidzZWxlY3QnXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZHluYW1pY1NlbGVjdFRlbXBsYXRlOyBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogZmllbGQsXHJcbiAgICAgICAgICAgICAgICAgIGZpZWxkOiBmaWVsZCxcclxuICAgICAgICAgICAgICAgICAgZGF0YTogZGF0YSxcclxuICAgICAgICAgICAgICAgICAgdGVzdFJlYWRPbmx5OiB0ZXN0UmVhZE9ubHkuYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgICAgICAgc2VsZWN0Q2hhbmdlZDogc2VsZWN0Q2hhbmdlZC5iaW5kKHRoaXMpXHJcbiAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG4gICAgICAgIDxzcGEtbXVsdGktc2VsZWN0ICpuZ1N3aXRjaENhc2U9XCInbXVsdGktc2VsZWN0J1wiIFtkaXNwbGF5XT1cImZpZWxkLmFsaWFzID8/IGZpZWxkLm5hbWUgfCBjYW1lbFRvV29yZHNcIiBbd2lkdGhdPVwiZmllbGQud2lkdGhcIiBbb3B0aW9uc109XCJmaWVsZC5vcHRpb25zXCIgW29wdGlvbkRpc3BsYXldPVwiZmllbGQub3B0aW9uRGlzcGxheSA/PyAnbmFtZSdcIiBbb3B0aW9uVmFsdWVdPVwiZmllbGQub3B0aW9uVmFsdWUgPz8gJ3ZhbHVlJ1wiIFsodmFsdWUpXT1cImRhdGFbZmllbGQubmFtZV1cIiAodmFsdWVDaGFuZ2UpPVwiaW5wdXRDaGFuZ2VkKGZpZWxkLCBkYXRhW2ZpZWxkLm5hbWVdKVwiIFtyZXF1aXJlZF09XCJmaWVsZC5yZXF1aXJlZFwiIFtyZWFkb25seV09XCJ0ZXN0UmVhZE9ubHkoZmllbGQpXCIgW2hpbnRdPVwiZmllbGQuaGludFwiIFtpbmZvTWVzc2FnZV09XCJmaWVsZC5pbmZvTWVzc2FnZVwiIFtzdWZmaXhdPVwiZmllbGQuc3VmZml4XCIgW2NvcHlDb250ZW50XT1cImZpZWxkLmNvcHlDb250ZW50XCIgW2NsZWFyQ29udGVudF09XCJmaWVsZC5jbGVhckNvbnRlbnRcIiBbbG9hZEFjdGlvbl09XCJmaWVsZC5sb2FkQWN0aW9uXCI+XHJcbiAgICAgICAgPC9zcGEtbXVsdGktc2VsZWN0PlxyXG5cclxuICAgICAgICA8c3BhLW11bHRpLXRleHQgKm5nU3dpdGNoQ2FzZT1cIidtdWx0aS10ZXh0J1wiIFtzdHJpY3RdPVwiZmllbGQuc3RyaWN0XCIgW2Rpc3BsYXldPVwiZmllbGQuYWxpYXMgPz8gZmllbGQubmFtZSB8IGNhbWVsVG9Xb3Jkc1wiIFtvcHRpb25zXT1cImZpZWxkLm9wdGlvbnNcIiBbb3B0aW9uRGlzcGxheV09XCJmaWVsZC5vcHRpb25EaXNwbGF5ID8/ICduYW1lJ1wiIFtvcHRpb25WYWx1ZV09XCJmaWVsZC5vcHRpb25WYWx1ZSA/PyAndmFsdWUnXCIgWyh2YWx1ZSldPVwiZGF0YVtmaWVsZC5uYW1lXVwiICh2YWx1ZUNoYW5nZSk9XCJpbnB1dENoYW5nZWQoZmllbGQsZGF0YVtmaWVsZC5uYW1lXSlcIiBbcmVxdWlyZWRdPVwiZmllbGQucmVxdWlyZWRcIiBbcmVhZG9ubHldPVwidGVzdFJlYWRPbmx5KGZpZWxkKVwiIFtoaW50XT1cImZpZWxkLmhpbnRcIiBbaW5mb01lc3NhZ2VdPVwiZmllbGQuaW5mb01lc3NhZ2VcIiBbc3VmZml4XT1cImZpZWxkLnN1ZmZpeFwiIFtjb3B5Q29udGVudF09XCJmaWVsZC5jb3B5Q29udGVudFwiIFtjbGVhckNvbnRlbnRdPVwiZmllbGQuY2xlYXJDb250ZW50XCIgW2xvYWRBY3Rpb25dPVwiZmllbGQubG9hZEFjdGlvblwiPjwvc3BhLW11bHRpLXRleHQ+XHJcblxyXG5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2NvbXBvc2l0ZSdcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb21wb3NpdGUtZmllbGQtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb21wb3NpdGUtZmllbGQtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzdWJmaWVsZCBvZiBnZXRWaXNpYmxlU3ViZmllbGRzKGZpZWxkKVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwic3ViZmllbGQudHlwZVwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPHNwYS1udW1iZXIgKm5nU3dpdGNoQ2FzZT1cIidudW1iZXInXCIgW2Rpc3BsYXldPVwic3ViZmllbGQuYWxpYXMgPz8gc3ViZmllbGQubmFtZSB8IGNhbWVsVG9Xb3Jkc1wiIFt3aWR0aF09XCJzdWJmaWVsZC53aWR0aFwiIFsodmFsdWUpXT1cImRhdGFbc3ViZmllbGQubmFtZV1cIiAodmFsdWVDaGFuZ2UpPVwiaW5wdXRDaGFuZ2VkKHN1YmZpZWxkLCAkZXZlbnQpXCIgW3JlcXVpcmVkXT1cInN1YmZpZWxkLnJlcXVpcmVkXCIgW21pbl09XCJzdWJmaWVsZC5taW5cIiBbbWF4XT1cInN1YmZpZWxkLm1heFwiIFtyZWFkb25seV09XCJ0ZXN0UmVhZE9ubHkoZmllbGQpIHx8IHRlc3RSZWFkT25seShzdWJmaWVsZClcIiBbaGludF09XCJzdWJmaWVsZC5oaW50XCIgW2luZm9NZXNzYWdlXT1cInN1YmZpZWxkLmluZm9NZXNzYWdlXCIgIFtzdWZmaXhdPVwic3ViZmllbGQuc3VmZml4XCIgW2NvcHlDb250ZW50XT1cInN1YmZpZWxkLmNvcHlDb250ZW50XCIgW2NsZWFyQ29udGVudF09XCJzdWJmaWVsZC5jbGVhckNvbnRlbnRcIj48L3NwYS1udW1iZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8c3BhLW1vbmV5ICpuZ1N3aXRjaENhc2U9XCInbW9uZXknXCIgW2Rpc3BsYXldPVwic3ViZmllbGQuYWxpYXMgPz8gc3ViZmllbGQubmFtZSB8IGNhbWVsVG9Xb3Jkc1wiIFt3aWR0aF09XCJzdWJmaWVsZC53aWR0aFwiIFsodmFsdWUpXT1cImRhdGFbc3ViZmllbGQubmFtZV1cIiAodmFsdWVDaGFuZ2UpPVwiaW5wdXRDaGFuZ2VkKHN1YmZpZWxkLCAkZXZlbnQpXCIgW3JlcXVpcmVkXT1cInN1YmZpZWxkLnJlcXVpcmVkXCIgW21pbl09XCJzdWJmaWVsZC5taW5cIiBbbWF4XT1cInN1YmZpZWxkLm1heFwiIFtyZWFkb25seV09XCJ0ZXN0UmVhZE9ubHkoZmllbGQpIHx8IHRlc3RSZWFkT25seShzdWJmaWVsZClcIiBbaGludF09XCJzdWJmaWVsZC5oaW50XCIgW2luZm9NZXNzYWdlXT1cInN1YmZpZWxkLmluZm9NZXNzYWdlXCIgW3N1ZmZpeF09XCJzdWJmaWVsZC5zdWZmaXhcIiBbY29weUNvbnRlbnRdPVwiZmllbGQuY29weUNvbnRlbnRcIiBbY2xlYXJDb250ZW50XT1cImZpZWxkLmNsZWFyQ29udGVudFwiPjwvc3BhLW1vbmV5PlxyXG5cclxuICAgICAgICAgICAgICAgICAgPHNwYS1jaGVjayAqbmdTd2l0Y2hDYXNlPVwiJ2NoZWNrYm94J1wiIFtkaXNwbGF5XT1cInN1YmZpZWxkLmFsaWFzID8/IHN1YmZpZWxkLm5hbWUgfCBjYW1lbFRvV29yZHNcIiBbKHZhbHVlKV09XCJkYXRhW3N1YmZpZWxkLm5hbWVdXCIgKHZhbHVlQ2hhbmdlKT1cImlucHV0Q2hhbmdlZChzdWJmaWVsZCwgJGV2ZW50KVwiIFtyZWFkb25seV09XCJ0ZXN0UmVhZE9ubHkoZmllbGQpIHx8IHRlc3RSZWFkT25seShzdWJmaWVsZClcIiBbaW5mb01lc3NhZ2VdPVwic3ViZmllbGQuaW5mb01lc3NhZ2VcIiA+PC9zcGEtY2hlY2s+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8c3BhLWRhdGUgKm5nU3dpdGNoQ2FzZT1cIidkYXRlJ1wiIFtkaXNwbGF5XT1cInN1YmZpZWxkLmFsaWFzID8/IHN1YmZpZWxkLm5hbWUgfCBjYW1lbFRvV29yZHNcIiBbd2lkdGhdPVwic3ViZmllbGQud2lkdGhcIiBbKHZhbHVlKV09XCJkYXRhW3N1YmZpZWxkLm5hbWVdXCIgKHZhbHVlQ2hhbmdlKT1cImlucHV0Q2hhbmdlZChzdWJmaWVsZCwgJGV2ZW50KVwiIFttaW5dPVwic3ViZmllbGQubWluXCIgW21heF09XCJzdWJmaWVsZC5tYXhcIiBbcmVhZG9ubHldPVwidGVzdFJlYWRPbmx5KGZpZWxkKSB8fCB0ZXN0UmVhZE9ubHkoc3ViZmllbGQpXCIgW2hpbnRdPVwic3ViZmllbGQuaGludFwiIFtpbmZvTWVzc2FnZV09XCJzdWJmaWVsZC5pbmZvTWVzc2FnZVwiID48L3NwYS1kYXRlPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPHNwYS1kYXRldGltZSAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGV0aW1lJ1wiIFtkaXNwbGF5XT1cInN1YmZpZWxkLmFsaWFzID8/IHN1YmZpZWxkLm5hbWUgfCBjYW1lbFRvV29yZHNcIiBbKHZhbHVlKV09XCJkYXRhW3N1YmZpZWxkLm5hbWVdXCIgKHZhbHVlQ2hhbmdlKT1cImlucHV0Q2hhbmdlZChzdWJmaWVsZCwgJGV2ZW50KVwiIFtyZWFkb25seV09XCJ0ZXN0UmVhZE9ubHkoZmllbGQpIHx8IHRlc3RSZWFkT25seShzdWJmaWVsZClcIiBbbWluXT1cInN1YmZpZWxkLm1pblwiIFttYXhdPVwic3ViZmllbGQubWF4XCIgW2luZm9NZXNzYWdlXT1cInN1YmZpZWxkLmluZm9NZXNzYWdlXCIgPjwvc3BhLWRhdGV0aW1lPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3NlbGVjdCdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZHluYW1pY1NlbGVjdFRlbXBsYXRlOyBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogZmllbGQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkOiBmaWVsZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogZGF0YSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJlYWRPbmx5OiB0ZXN0UmVhZE9ubHkuYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0Q2hhbmdlZDogc2VsZWN0Q2hhbmdlZC5iaW5kKHRoaXMpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPHNwYS10ZXh0ICpuZ1N3aXRjaERlZmF1bHQgW2Rpc3BsYXldPVwic3ViZmllbGQuYWxpYXMgPz8gc3ViZmllbGQubmFtZSB8IGNhbWVsVG9Xb3Jkc1wiIFt3aWR0aF09XCJzdWJmaWVsZC53aWR0aFwiICBbb3B0aW9uc109XCJzdWJmaWVsZC5vcHRpb25zXCIgW29wdGlvbkRpc3BsYXldPVwic3ViZmllbGQub3B0aW9uRGlzcGxheSA/PyAnbmFtZSdcIiBbb3B0aW9uVmFsdWVdPVwic3ViZmllbGQub3B0aW9uVmFsdWUgPz8gJ3ZhbHVlJ1wiIFtyb3dzXT1cInN1YmZpZWxkLnJvd3NcIiBbKHZhbHVlKV09XCJkYXRhW3N1YmZpZWxkLm5hbWVdXCIgKHZhbHVlQ2hhbmdlKT1cImlucHV0Q2hhbmdlZChzdWJmaWVsZCwgJGV2ZW50KVwiIFtyZXF1aXJlZF09XCJzdWJmaWVsZC5yZXF1aXJlZFwiIFttaW5dPVwic3ViZmllbGQubWluXCIgW21heF09XCJzdWJmaWVsZC5tYXhcIiBbcmVhZG9ubHldPVwidGVzdFJlYWRPbmx5KGZpZWxkKSB8fCB0ZXN0UmVhZE9ubHkoc3ViZmllbGQpXCIgW2hpbnRdPVwic3ViZmllbGQuaGludFwiIFtpbmZvTWVzc2FnZV09XCJzdWJmaWVsZC5pbmZvTWVzc2FnZVwiICBbc3VmZml4XT1cInN1YmZpZWxkLnN1ZmZpeFwiIFtjb3B5Q29udGVudF09XCJzdWJmaWVsZC5jb3B5Q29udGVudFwiIFtjbGVhckNvbnRlbnRdPVwic3ViZmllbGQuY2xlYXJDb250ZW50XCIgW2xvYWRBY3Rpb25dPVwic3ViZmllbGQubG9hZEFjdGlvblwiPjwvc3BhLXRleHQ+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbiAgICAgICAgPHNwYS10ZXh0ICpuZ1N3aXRjaERlZmF1bHQgW2Rpc3BsYXldPVwiZmllbGQuYWxpYXMgPz8gZmllbGQubmFtZSB8IGNhbWVsVG9Xb3Jkc1wiIFt3aWR0aF09XCJmaWVsZC53aWR0aFwiIFtvcHRpb25zXT1cImZpZWxkLm9wdGlvbnNcIiBbb3B0aW9uRGlzcGxheV09XCJmaWVsZC5vcHRpb25EaXNwbGF5ID8/ICduYW1lJ1wiIFtvcHRpb25WYWx1ZV09XCJmaWVsZC5vcHRpb25WYWx1ZSA/PyAndmFsdWUnXCIgW3Jvd3NdPVwiZmllbGQucm93c1wiIFsodmFsdWUpXT1cImRhdGFbZmllbGQubmFtZV1cIiAodmFsdWVDaGFuZ2UpPVwiaW5wdXRDaGFuZ2VkKGZpZWxkLGRhdGFbZmllbGQubmFtZV0pXCIgW3JlcXVpcmVkXT1cImZpZWxkLnJlcXVpcmVkXCIgW21pbl09XCJmaWVsZC5taW5cIiBbbWF4XT1cImZpZWxkLm1heFwiIFtyZWFkb25seV09XCJ0ZXN0UmVhZE9ubHkoZmllbGQpXCIgW2hpbnRdPVwiZmllbGQuaGludFwiIFtpbmZvTWVzc2FnZV09XCJmaWVsZC5pbmZvTWVzc2FnZVwiICBbc3VmZml4XT1cImZpZWxkLnN1ZmZpeFwiIFtjb3B5Q29udGVudF09XCJmaWVsZC5jb3B5Q29udGVudFwiIFtjbGVhckNvbnRlbnRdPVwiZmllbGQuY2xlYXJDb250ZW50XCIgW2xvYWRBY3Rpb25dPVwiZmllbGQubG9hZEFjdGlvblwiPjwvc3BhLXRleHQ+XHJcblxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPC9kaXY+XHJcblxyXG5cclxuICA8ZGl2IGNsYXNzPVwic3Bhbi1jb2wtY2VudGVyXCIgKm5nSWY9XCJjb25maWcuYnV0dG9uXCI+XHJcbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiICAoY2xpY2spPVwiYnV0dG9uQ2xpY2tlZCgpXCIgIGNka0ZvY3VzSW5pdGlhbD57e2J1dHRvbkRpc3BsYXl9fTwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG5cclxuXHJcbjwvZGl2PlxyXG4iXX0=
|
|
234
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90aW4tc3BhL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2Zvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBRTFHLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUc3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVN2QyxNQUFNLE9BQU8sYUFBYTtJQUV4QixZQUFvQixjQUE4QixFQUFVLFdBQTJCLEVBQVUsV0FBd0I7UUFBckcsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUE4R3pILGNBQVMsR0FBRyxLQUFLLENBQUM7UUFJVCxVQUFLLEdBQVUsRUFBRSxDQUFDO1FBRTNCLGtCQUFhLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLGlCQUFZLEdBQWEsS0FBSyxDQUFDO1FBQy9CLGdCQUFXLEdBQWEsS0FBSyxDQUFDO1FBTXBCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUE3SGtGLENBQUM7SUFFOUgsUUFBUTtRQUVOLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENB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LENBQUMsQ0FBQztpQkFDeEM7Z0JBRUQsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRTtvQkFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtvQkFDeEMsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7aUJBQ2pCO2FBR0Y7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUM1RDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7SUFNWCxDQUFDOzswR0FwUlUsYUFBYTs4RkFBYixhQUFhLHFTQ2QxQiwyeFdBMEhBOzJGRDVHYSxhQUFhO2tCQUx6QixTQUFTOytCQUNFLFVBQVU7NEpBa0hXLHFCQUFxQjtzQkFBbkQsWUFBWTt1QkFBQyxlQUFlO2dCQU1wQixLQUFLO3NCQUFiLEtBQUs7Z0JBUUcsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db25maWcsIEZpZWxkLCBCdXR0b24sIEFwaVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9DbGFzc2VzJztcclxuaW1wb3J0IHsgQ29yZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvVGluQ29yZSc7XHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWVzc2FnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2VMaWIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXRhbGliLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3BhLWZvcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mb3JtLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLCBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZUxpYiwgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuXHJcbiAgICB0aGlzLmhhc0FjY2VzcyA9IENvcmUuY2hlY2tGb3JtQWNjZXNzKHRoaXMuY29uZmlnLCB0aGlzLmF1dGhTZXJ2aWNlLmN1cnJlbnRSb2xlU291cmNlLnZhbHVlKTtcclxuXHJcbiAgICBpZiAoIXRoaXMuaGFzQWNjZXNzKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoJ0FjY2VzcyBkZW5pZWQnKTsgLy8gT3B0aW9uYWwgLSBub3RpZnkgdXNlclxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLmNvbmZpZy5maWVsZHMpe1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiUGxlYXNlIENvbmZpZ3VyZSBGb3JtIEZpZWxkc1wiKVxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLmRhdGEpIHtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIlBsZWFzZSBDb25maWd1cmUgRm9ybSBEYXRhXCIpXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZpZWxkcyA9IHRoaXMuY29uZmlnLmZpZWxkcztcclxuXHJcbiAgICAvLyBJbml0aWFsaXplIEJlaGF2aW9yU3ViamVjdHMgZm9yIGZpZWxkcyB3aXRoIGxvYWRBY3Rpb25zXHJcbiAgICB0aGlzLmZpZWxkcz8uZm9yRWFjaChmaWVsZCA9PiB7XHJcbiAgICAgIGlmIChmaWVsZC5sb2FkQWN0aW9uICYmICFmaWVsZC5vcHRpb25zU3ViamVjdCAmJiAhZmllbGQubWFzdGVyRmllbGQpIHtcclxuICAgICAgICBmaWVsZC5vcHRpb25zU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55W10+KFtdKTtcclxuXHJcbiAgICAgICAgLy8gU3Vic2NyaWJlIHRvIG9wdGlvbnMgY2hhbmdlc1xyXG4gICAgICAgIGZpZWxkLm9wdGlvbnNTdWJqZWN0LnN1YnNjcmliZShuZXdPcHRpb25zID0+IHtcclxuICAgICAgICAgIGZpZWxkLm9wdGlvbnMgPSBuZXdPcHRpb25zO1xyXG5cclxuICAgICAgICAgIC8vIFVwZGF0ZSBjaGlsZCBmaWVsZHMgdGhhdCBkZXBlbmQgb24gdGhpcyBmaWVsZFxyXG4gICAgICAgICAgaWYgKHRoaXMuY2hpbGRGaWVsZHM/LnNvbWUoeCA9PiB4Lm1hc3RlckZpZWxkID09PSBmaWVsZC5uYW1lKSkge1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNoaWxkT3B0aW9ucyhmaWVsZC5uYW1lKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG5cclxuICAgIGlmICh0aGlzLmNvbmZpZy5tdWx0aUNvbHVtbil7XHJcbiAgICAgIHRoaXMubXVsdGlDb2x1bW4gPSB0aGlzLmNvbmZpZy5tdWx0aUNvbHVtblxyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMubXVsdGlDb2x1bW4gPSB0aGlzLmZpZWxkcy5sZW5ndGggPiAyXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnPy5idXR0b24/LmRpc3BsYXkpe1xyXG4gICAgICB0aGlzLmJ1dHRvbkRpc3BsYXkgPSB0aGlzLmNvbmZpZy5idXR0b24uZGlzcGxheTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZpbGVGaWVsZCA9IHRoaXMuZmllbGRzLmZpbmQoeCA9PiB4LnR5cGUgPT0gJ2ZpbGUnKVxyXG5cclxuICAgIGlmICh0aGlzLmNvbmZpZz8uYnV0dG9uPy5hY3Rpb24gJiYgdGhpcy5maWxlRmllbGQpIHtcclxuICAgICAgdGhpcy5jb25maWcuYnV0dG9uLmFjdGlvbi5pc0Zvcm1EYXRhID0gdHJ1ZTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jaGlsZEZpZWxkcyA9IHRoaXMuZmllbGRzLmZpbHRlcih4ID0+IHgubWFzdGVyRmllbGQpXHJcblxyXG5cclxuICAgIHRoaXMuY2hpbGRGaWVsZHMuZm9yRWFjaChjaGlsZCA9PiB7XHJcbiAgICAgIGxldCBtYXN0ZXIgPSB0aGlzLmZpZWxkcy5maW5kKHggPT4geC5uYW1lID09IGNoaWxkLm1hc3RlckZpZWxkKVxyXG4gICAgICBpZiAoY2hpbGQubG9hZEFjdGlvbikge1xyXG4gICAgICAgIHRoaXMubG9hZENoaWxkTWFzdGVyT3B0aW9ucyhjaGlsZCk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMudXBkYXRlQ2hpbGRPcHRpb25zKG1hc3Rlci5uYW1lKTtcclxuICAgICAgfVxyXG5cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xyXG4gICAgICBpZiAoZmllbGQubG9hZEFjdGlvbikge1xyXG4gICAgICAgIHRoaXMubG9hZENoaWxkTWFzdGVyT3B0aW9ucyhmaWVsZCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuaW5pdGlhbGl6ZUNvbXBvc2l0ZUZpZWxkcygpO1xyXG5cclxuXHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplQ29tcG9zaXRlRmllbGRzKCkge1xyXG4gICAgdGhpcy5maWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XHJcbiAgICAgIGlmIChmaWVsZC50eXBlID09PSAnY29tcG9zaXRlJyAmJiBmaWVsZC5zdWJmaWVsZHMpIHtcclxuICAgICAgICBmaWVsZC5zdWJmaWVsZHMuZm9yRWFjaChzdWJmaWVsZCA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5kYXRhW3N1YmZpZWxkLm5hbWVdID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5kYXRhW3N1YmZpZWxkLm5hbWVdID0gQ29yZS5nZXRJbml0aWFsVmFsdWUoc3ViZmllbGQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFZpc2libGVTdWJmaWVsZHMoZmllbGQgOiBGaWVsZCl7XHJcbiAgICByZXR1cm4gQ29yZS5nZXRWaXNpYmxlU3ViZmllbGRzKHRoaXMuY29uZmlnLCB0aGlzLmRhdGEsIGZpZWxkLCB0aGlzLmF1dGhTZXJ2aWNlLmN1cnJlbnRSb2xlU291cmNlLnZhbHVlKTtcclxuICB9XHJcblxyXG5cclxuICBnZXRWaXNpYmxlRmllbGRzKCl7XHJcbiAgICByZXR1cm4gdGhpcy5maWVsZHM/LmZpbHRlcih4ID0+IENvcmUudGVzdFZpc2libGUodGhpcy5jb25maWcsIHRoaXMuZGF0YSwgeCwgdGhpcy5hdXRoU2VydmljZS5jdXJyZW50Um9sZVNvdXJjZS52YWx1ZSkpXHJcbiAgfVxyXG5cclxuICB0ZXN0UmVhZE9ubHkoZmllbGQ6IEZpZWxkKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gQ29yZS50ZXN0UmVhZE9ubHkodGhpcy5jb25maWcsIHRoaXMuZGF0YSwgZmllbGQpO1xyXG4gIH1cclxuXHJcblxyXG4gIEBDb250ZW50Q2hpbGQoJ2R5bmFtaWNTZWxlY3QnKSBkeW5hbWljU2VsZWN0VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIGhhc0FjY2VzcyA9IGZhbHNlO1xyXG4gIGZpbGVOYW1lc1xyXG4gIGZpbGVGaWVsZDogRmllbGQ7XHJcbiAgZmlsZVZpZXdGaWVsZDogRmllbGQ7XHJcbiAgQElucHV0KCkgZmlsZXM6IGFueVtdID0gW107XHJcbiAgZmllbGRzOiBGaWVsZFtdO1xyXG4gIGJ1dHRvbkRpc3BsYXkgPSBcIlN1Ym1pdFwiO1xyXG4gIGlzUHJvY2Vzc2luZyA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBtdWx0aUNvbHVtbiA6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY2hpbGRGaWVsZHMgOiBGaWVsZFtdO1xyXG5cclxuICBASW5wdXQoKSBkYXRhOiBhbnk7XHJcbiAgQElucHV0KCkgY29uZmlnOiBGb3JtQ29uZmlnO1xyXG4gIEBPdXRwdXQoKSBidXR0b25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgaW5wdXRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHNlbGVjdENoYW5nZWQoZmllbGQ6IEZpZWxkKXtcclxuICAgIHRoaXMuaW5wdXRDaGFuZ2VkKGZpZWxkLCB0aGlzLmRhdGFbZmllbGQubmFtZV0gKVxyXG4gIH1cclxuXHJcbiAgaW5wdXRDaGFuZ2VkKGZpZWxkIDogRmllbGQsIHZhbHVlKXtcclxuXHJcbiAgICB0aGlzLmlucHV0Q2hhbmdlLmVtaXQoeyBmaWVsZDogZmllbGQsIHZhbHVlOiB2YWx1ZX0pXHJcblxyXG4gICAgdGhpcy51cGRhdGVDaGlsZE9wdGlvbnMoZmllbGQubmFtZSlcclxuXHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnLm1vZGUgPT0gJ2NyZWF0ZScgJiYgZmllbGQuY2hpbGRyZW4pe1xyXG4gICAgICBmaWVsZC5jaGlsZHJlbi5mb3JFYWNoKGNoaWxkQ29uZmlnID0+IHtcclxuICAgICAgICBsZXQgY2hpbGQgPSB0aGlzLmZpZWxkcy5maW5kKHggPT4geC5uYW1lID09IGNoaWxkQ29uZmlnLmNoaWxkRmllbGQpXHJcbiAgICAgICAgdGhpcy5kYXRhW2NoaWxkLm5hbWVdID0gZmllbGQub3B0aW9ucy5maW5kKHggPT4geFtmaWVsZC5vcHRpb25WYWx1ZSA/PyAndmFsdWUnXSA9PSB2YWx1ZSlbY2hpbGRDb25maWcuY2hpbGRWYWx1ZUZpZWxkXVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICB1cGRhdGVDaGlsZE9wdGlvbnMobWFzdGVyRmllbGROYW1lOiBzdHJpbmcpe1xyXG5cclxuICAgIGxldCBjaGlsZCA9IHRoaXMuY2hpbGRGaWVsZHMuZmluZCh4ID0+IHgubWFzdGVyRmllbGQgPT0gbWFzdGVyRmllbGROYW1lKVxyXG4gICAgaWYgKGNoaWxkICE9IG51bGwpIHtcclxuXHJcbiAgICAgIC8vY3VycmVudCBpcyBtYXN0ZXJcclxuXHJcblxyXG4gICAgICBpZiAoY2hpbGQubWFzdGVyT3B0aW9ucyl7XHJcbiAgICAgICAgY2hpbGQub3B0aW9ucyA9IGNoaWxkLm1hc3Rlck9wdGlvbnMuZmlsdGVyKHggPT4geFtjaGlsZC5tYXN0ZXJPcHRpb25WYWx1ZSA/PyAnbWFzdGVyVmFsdWUnXSA9PSB0aGlzLmRhdGFbbWFzdGVyRmllbGROYW1lXSlcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJNYXN0ZXIgT3B0aW9ucyBub3QgZm91bmRcIilcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbG9hZENoaWxkTWFzdGVyT3B0aW9ucyhjaGlsZDogRmllbGQpIHtcclxuICAgIGlmICghY2hpbGQubG9hZEFjdGlvbikgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuQ2FsbEFwaShjaGlsZC5sb2FkQWN0aW9uKS5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlOiBBcGlSZXNwb25zZSkgPT4ge1xyXG4gICAgICBpZiAoYXBpUmVzcG9uc2Uuc3VjY2Vzcykge1xyXG5cclxuICAgICAgICBjaGlsZC5tYXN0ZXJPcHRpb25zID0gYXBpUmVzcG9uc2UuZGF0YTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUNoaWxkT3B0aW9ucyhjaGlsZC5tYXN0ZXJGaWVsZCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIGJ1dHRvbkNsaWNrZWQoKXtcclxuXHJcbiAgICB0aGlzLmJ1dHRvbkNsaWNrLmVtaXQodGhpcy5kYXRhKTtcclxuXHJcbiAgICBsZXQgYnV0dG9uID0gdGhpcy5jb25maWcuYnV0dG9uO1xyXG5cclxuICAgIGlmICghYnV0dG9uKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvL3ZhbGlkYXRpb25cclxuICAgIGxldCByZXNwID0gQ29yZS52YWxpZGF0ZU9iamVjdCh0aGlzLmdldFZpc2libGVGaWVsZHMoKSx0aGlzLmRhdGEpO1xyXG4gICAgaWYgKHJlc3AgIT0gJycpe1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KHJlc3ApXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIGlmICh0aGlzLmZpbGVzLmxlbmd0aCA8IDEgJiYgdGhpcy5maWxlRmllbGQ/LnJlcXVpcmVkICYmIHRoaXMuY29uZmlnLm1vZGUgPT0nY3JlYXRlJykge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiUGxlYXNlIGF0dGFjaCBmaWxlKHMpXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGlmIChidXR0b24uY29uZmlybSl7XHJcblxyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmNvbmZpcm0oYCR7YnV0dG9uLmNvbmZpcm0ubWVzc2FnZX1gKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQgPT0gXCJ5ZXNcIikge1xyXG4gICAgICAgICAgdGhpcy5wcm9jZXNzQ2FsbChidXR0b24pXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5wcm9jZXNzQ2FsbChidXR0b24pXHJcbiAgICB9XHJcblxyXG5cclxuXHJcblxyXG4gIH1cclxuXHJcbiAgcHJvY2Vzc0NhbGwoYnV0dG9uOiBCdXR0b24pe1xyXG5cclxuICAgIGlmICghYnV0dG9uLmFjdGlvbikgcmV0dXJuXHJcblxyXG4gICAgbGV0IGRhdGFPdXQ7XHJcblxyXG4gICAgaWYgKGJ1dHRvbi5hY3Rpb24uaXNGb3JtRGF0YSl7XHJcblxyXG4gICAgICBsZXQgZm9ybURhdGE6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5maWxlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZChgdXBsb2FkRmlsZSR7aX1gLCB0aGlzLmZpbGVzW2ldLCB0aGlzLmZpbGVzW2ldLm5hbWUpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBmb3JtRGF0YS5hcHBlbmQoXCJkYXRhXCIsIEpTT04uc3RyaW5naWZ5KHRoaXMuZGF0YSkpO1xyXG5cclxuXHJcbiAgICAgIGRhdGFPdXQgPSBmb3JtRGF0YVxyXG4gICAgfWVsc2V7XHJcblxyXG4gICAgICBkYXRhT3V0ID0gdGhpcy5kYXRhXHJcbiAgICB9XHJcblxyXG5cclxuXHJcblxyXG4gICAgdGhpcy5pc1Byb2Nlc3NpbmcgPSB0cnVlXHJcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLkNhbGxBcGkoYnV0dG9uLmFjdGlvbiwgZGF0YU91dCkuc3Vic2NyaWJlKChhcGlSZXNwb25zZSkgPT4ge1xyXG4gICAgICB0aGlzLmlzUHJvY2Vzc2luZyA9IGZhbHNlXHJcblxyXG4gICAgICBpZiAoYXBpUmVzcG9uc2Uuc3VjY2Vzcykge1xyXG5cclxuICAgICAgICBpZiAoYnV0dG9uLmFjdGlvbi5zdWNjZXNzTWVzc2FnZSkge1xyXG4gICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChidXR0b24uYWN0aW9uLnN1Y2Nlc3NNZXNzYWdlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIlN1Ym1pdHRlZFwiKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5yZXNldCkge1xyXG4gICAgICAgICAgQ29yZS5yZXNldE9iamVjdCh0aGlzLmZpZWxkcywgdGhpcy5kYXRhKVxyXG4gICAgICAgICAgdGhpcy5maWxlcyA9IFtdO1xyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJFcnJvcjogXCIgKyBhcGlSZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcm9jZXNzRm9ybSgpe1xyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgfVxyXG5cclxufVxyXG5cclxuXHJcbiIsIlxyXG48ZGl2IFtuZ0NsYXNzXT1cIm11bHRpQ29sdW1uID8gJ3Rpbi1ncmlkJyA6ICd0aW4tY29sJ1wiID5cclxuXHJcbiAgPGRpdiAqbmdJZj1cIiFoYXNBY2Nlc3NcIiBjbGFzcz1cInRpbi1jZW50ZXJcIj5cclxuICAgIDxwPjxlbT5BY2Nlc3MgUmVzdHJpY3RlZDwvZW0+PC9wPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IFtuZ0NsYXNzXT1cImZpZWxkLnNwYW4gfHwgZmllbGQudHlwZSA9PSdzZWN0aW9uJyB8fCBmaWVsZC50eXBlID09J2ZpbGUnIHx8IGZpZWxkLnR5cGUgPT0nZmlsZS12aWV3JyAgPyAnc3Bhbi1jb2wnIDogJydcIiAqbmdGb3I9XCJsZXQgZmllbGQgb2YgZ2V0VmlzaWJsZUZpZWxkcygpXCI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAgPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZmllbGQudHlwZVwiIGNsYXNzPVwiaGlnaGxpZ2h0XCI+XHJcblxyXG4gICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidzZWN0aW9uJ1wiIGNsYXNzPVwidGl0bGVcIj5cclxuICAgICAgICAgIDxsYWJlbCBzdHlsZT1cImZvbnQtc2l6ZTogbGFyZ2VyO1wiPnt7ZmllbGQuYWxpYXMgPz8gZmllbGQubmFtZSB8IGNhbWVsVG9Xb3Jkc319PC9sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2ZpbGUnXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMSBtYi0yXCIgKm5nSWY9XCJjb25maWcubW9kZSAhPSd2aWV3J1wiPlxyXG4gICAgICAgICAgICA8c3BhLWF0dGFjaCBbbWVzc2FnZV09XCJmaWVsZC5hbGlhcyA/PyAnRHJhZyBhbmQgRHJvcCBmaWxlcyBoZXJlJ1wiIFsoZmlsZXMpXT1cImZpbGVzXCIgW2ZpbGVPcHRpb25zXT1cImZpZWxkLmZpbGVPcHRpb25zXCI+PC9zcGEtYXR0YWNoPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidmaWxlLXZpZXcnXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMSBtYi0yXCIgKm5nSWY9XCJjb25maWcubW9kZSAmJiBjb25maWcubW9kZSAhPSdjcmVhdGUnXCI+XHJcbiAgICAgICAgICAgIDxzcGEtdmlld2VyIFtmaWxlQWN0aW9uXT1cImZpZWxkLmxvYWRBY3Rpb25cIiBbcGF0aF09XCJmaWVsZC5wYXRoXCIgW2ZvbGRlck5hbWVdPVwiZGF0YVtmaWVsZC5rZXlGaWVsZF1cIiA+PC9zcGEtdmlld2VyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG5cclxuICAgICAgICA8bGFiZWwgKm5nU3dpdGNoQ2FzZT1cIidibGFuaydcIj48L2xhYmVsPlxyXG5cclxuICAgICAgICA8bGFiZWwgKm5nU3dpdGNoQ2FzZT1cIidzdHJpbmcnXCIgW25nU3R5bGVdPVwieydmb250LXNpemUnOmZpZWxkLnNpemUgPz8gJzE0cHgnfVwiID57e2RhdGFbZmllbGQubmFtZV0gPz8gZmllbGQuYWxpYXMgPz8gZmllbGQubmFtZX19IHt7ZmllbGQuc3VmZml4ID8/ICcnfX08L2xhYmVsPlxyXG5cclxuICAgICAgICA8c3BhLWxhYmVsICpuZ1N3aXRjaENhc2U9XCInbGFiZWwnXCIgW2Rpc3BsYXldPVwiZmllbGQuYWxpYXMgPz8gZmllbGQubmFtZSB8IGNhbWVsVG9Xb3Jkc1wiIFt2YWx1ZV09XCJkYXRhW2ZpZWxkLm5hbWVdXCIgKHZhbHVlQ2hhbmdlKT1cImlucHV0Q2hhbmdlZChmaWVsZCwgZGF0YVtmaWVsZC5uYW1lXSlcIiBbZm9ybWF0XT1cImZpZWxkLmZvcm1hdCA/PyAndGV4dCdcIiBbc3VmZml4XT1cImZpZWxkLnN1ZmZpeFwiPjwvc3BhLWxhYmVsPlxyXG5cclxuICAgICAgICA8c3BhLW51bWJlciAqbmdTd2l0Y2hDYXNlPVwiJ251bWJlcidcIiBbZGlzcGxheV09XCJmaWVsZC5hbGlhcyA/PyBmaWVsZC5uYW1lIHwgY2FtZWxUb1dvcmRzXCIgW3dpZHRoXT1cImZpZWxkLndpZHRoXCIgWyh2YWx1ZSldPVwiZGF0YVtmaWVsZC5uYW1lXVwiICh2YWx1ZUNoYW5nZSk9XCJpbnB1dENoYW5nZWQoZmllbGQsIGRhdGFbZmllbGQubmFtZV0pXCIgW3JlcXVpcmVkXT1cImZpZWxkLnJlcXVpcmVkXCIgW21pbl09XCJmaWVsZC5taW5cIiBbbWF4XT1cImZpZWxkLm1heFwiIFtyZWFkb25seV09XCJ0ZXN0UmVhZE9ubHkoZmllbGQpXCIgW2hpbnRdPVwiZmllbGQuaGludFwiIFtpbmZvTWVzc2FnZV09XCJmaWVsZC5pbmZvTWVzc2FnZVwiIFtzdWZmaXhdPVwiZmllbGQuc3VmZml4XCIgW2NvcHlDb250ZW50XT1cImZpZWxkLmNvcHlDb250ZW50XCIgW2NsZWFyQ29udGVudF09XCJmaWVsZC5jbGVhckNvbnRlbnRcIj48L3NwYS1udW1iZXI+XHJcblxyXG4gICAgICAgIDxzcGEtbW9uZXkgKm5nU3dpdGNoQ2FzZT1cIidtb25leSdcIiBbZGlzcGxheV09XCJmaWVsZC5hbGlhcyA/PyBmaWVsZC5uYW1lIHwgY2FtZWxUb1dvcmRzXCIgW3dpZHRoXT1cImZpZWxkLndpZHRoXCIgWyh2YWx1ZSldPVwiZGF0YVtmaWVsZC5uYW1lXVwiICh2YWx1ZUNoYW5nZSk9XCJpbnB1dENoYW5nZWQoZmllbGQsIGRhdGFbZmllbGQubmFtZV0pXCIgW3JlcXVpcmVkXT1cImZpZWxkLnJlcXVpcmVkXCIgW21pbl09XCJmaWVsZC5taW5cIiBbbWF4XT1cImZpZWxkLm1heFwiIFtyZWFkb25seV09XCJ0ZXN0UmVhZE9ubHkoZmllbGQpXCIgW2hpbnRdPVwiZmllbGQuaGludFwiIFtpbmZvTWVzc2FnZV09XCJmaWVsZC5pbmZvTWVzc2FnZVwiIFtzdWZmaXhdPVwiZmllbGQuc3VmZml4XCIgW2NvcHlDb250ZW50XT1cImZpZWxkLmNvcHlDb250ZW50XCIgW2NsZWFyQ29udGVudF09XCJmaWVsZC5jbGVhckNvbnRlbnRcIj48L3NwYS1tb25leT5cclxuXHJcbiAgICAgICAgPHNwYS1jaGVjayAqbmdTd2l0Y2hDYXNlPVwiJ2NoZWNrYm94J1wiIFtkaXNwbGF5XT1cImZpZWxkLmFsaWFzID8/IGZpZWxkLm5hbWUgfCBjYW1lbFRvV29yZHNcIiBbKHZhbHVlKV09XCJkYXRhW2ZpZWxkLm5hbWVdXCIgKHZhbHVlQ2hhbmdlKT1cImlucHV0Q2hhbmdlZChmaWVsZCwgZGF0YVtmaWVsZC5uYW1lXSlcIiBbcmVhZG9ubHldPVwidGVzdFJlYWRPbmx5KGZpZWxkKVwiIFtpbmZvTWVzc2FnZV09XCJmaWVsZC5pbmZvTWVzc2FnZVwiID48L3NwYS1jaGVjaz5cclxuXHJcbiAgICAgICAgPHNwYS1kYXRlICpuZ1N3aXRjaENhc2U9XCInZGF0ZSdcIiBbZGlzcGxheV09XCJmaWVsZC5hbGlhcyA/PyBmaWVsZC5uYW1lIHwgY2FtZWxUb1dvcmRzXCIgW3dpZHRoXT1cImZpZWxkLndpZHRoXCIgWyh2YWx1ZSldPVwiZGF0YVtmaWVsZC5uYW1lXVwiICh2YWx1ZUNoYW5nZSk9XCJpbnB1dENoYW5nZWQoZmllbGQsIGRhdGFbZmllbGQubmFtZV0pXCIgW21pbl09XCJmaWVsZD8ubWluXCIgW21heF09XCJmaWVsZD8ubWF4XCIgW3JlYWRvbmx5XT1cInRlc3RSZWFkT25seShmaWVsZClcIiBbaGludF09XCJmaWVsZC5oaW50XCIgW2luZm9NZXNzYWdlXT1cImZpZWxkLmluZm9NZXNzYWdlXCIgPjwvc3BhLWRhdGU+XHJcblxyXG4gICAgICAgIDxzcGEtZGF0ZXRpbWUgKm5nU3dpdGNoQ2FzZT1cIidkYXRldGltZSdcIiBbZGlzcGxheV09XCJmaWVsZC5hbGlhcyA/PyBmaWVsZC5uYW1lIHwgY2FtZWxUb1dvcmRzXCIgWyh2YWx1ZSldPVwiZGF0YVtmaWVsZC5uYW1lXVwiICh2YWx1ZUNoYW5nZSk9XCJpbnB1dENoYW5nZWQoZmllbGQsIGRhdGFbZmllbGQubmFtZV0pXCIgW3JlYWRvbmx5XT1cInRlc3RSZWFkT25seShmaWVsZClcIiBbbWluXT1cImZpZWxkLm1pblwiIFttYXhdPVwiZmllbGQubWF4XCIgW2luZm9NZXNzYWdlXT1cImZpZWxkLmluZm9NZXNzYWdlXCIgPjwvc3BhLWRhdGV0aW1lPlxyXG5cclxuICAgICAgICA8c3BhLWVtYWlsICpuZ1N3aXRjaENhc2U9XCInZW1haWwnXCIgW2Rpc3BsYXldPVwiZmllbGQuYWxpYXMgPz8gZmllbGQubmFtZSB8IGNhbWVsVG9Xb3Jkc1wiIFsodmFsdWUpXT1cImRhdGFbZmllbGQubmFtZV1cIiAodmFsdWVDaGFuZ2UpPVwiaW5wdXRDaGFuZ2VkKGZpZWxkLGRhdGFbZmllbGQubmFtZV0pXCIgW3JlcXVpcmVkXT1cImZpZWxkLnJlcXVpcmVkXCIgW3JlYWRvbmx5XT1cInRlc3RSZWFkT25seShmaWVsZClcIiBbaGludF09XCJmaWVsZC5oaW50XCIgW2luZm9NZXNzYWdlXT1cImZpZWxkLmluZm9NZXNzYWdlXCIgIFtzdWZmaXhdPVwiZmllbGQuc3VmZml4XCIgW2NvcHlDb250ZW50XT1cImZpZWxkLmNvcHlDb250ZW50XCIgW2NsZWFyQ29udGVudF09XCJmaWVsZC5jbGVhckNvbnRlbnRcIj48L3NwYS1lbWFpbD5cclxuXHJcbiAgICAgICAgPHNwYS10ZXh0ICpuZ1N3aXRjaENhc2U9XCIncGFzc3dvcmQnXCIgW2Zvcm1hdF09XCIncGFzc3dvcmQnXCIgW2Rpc3BsYXldPVwiZmllbGQuYWxpYXMgPz8gZmllbGQubmFtZSB8IGNhbWVsVG9Xb3Jkc1wiIFt3aWR0aF09XCJmaWVsZC53aWR0aFwiIFtvcHRpb25zXT1cImZpZWxkLm9wdGlvbnNcIiBbb3B0aW9uVmFsdWVdPVwiZmllbGQub3B0aW9uVmFsdWUgPz8gJ3ZhbHVlJ1wiIFtyb3dzXT1cImZpZWxkLnJvd3NcIiBbKHZhbHVlKV09XCJkYXRhW2ZpZWxkLm5hbWVdXCIgKHZhbHVlQ2hhbmdlKT1cImlucHV0Q2hhbmdlZChmaWVsZCxkYXRhW2ZpZWxkLm5hbWVdKVwiIFtyZXF1aXJlZF09XCJmaWVsZC5yZXF1aXJlZFwiIFttaW5dPVwiZmllbGQubWluXCIgW21heF09XCJmaWVsZC5tYXhcIiBbcmVhZG9ubHldPVwidGVzdFJlYWRPbmx5KGZpZWxkKVwiIFtoaW50XT1cImZpZWxkLmhpbnRcIiBbaW5mb01lc3NhZ2VdPVwiZmllbGQuaW5mb01lc3NhZ2VcIiBbc3VmZml4XT1cImZpZWxkLnN1ZmZpeFwiIFtjb3B5Q29udGVudF09XCJmaWVsZC5jb3B5Q29udGVudFwiIFtjbGVhckNvbnRlbnRdPVwiZmllbGQuY2xlYXJDb250ZW50XCI+PC9zcGEtdGV4dD5cclxuXHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidzZWxlY3QnXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZHluYW1pY1NlbGVjdFRlbXBsYXRlOyBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogZmllbGQsXHJcbiAgICAgICAgICAgICAgICAgIGZpZWxkOiBmaWVsZCxcclxuICAgICAgICAgICAgICAgICAgZGF0YTogZGF0YSxcclxuICAgICAgICAgICAgICAgICAgdGVzdFJlYWRPbmx5OiB0ZXN0UmVhZE9ubHkuYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgICAgICAgc2VsZWN0Q2hhbmdlZDogc2VsZWN0Q2hhbmdlZC5iaW5kKHRoaXMpXHJcbiAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG4gICAgICAgIDxzcGEtbXVsdGktc2VsZWN0ICpuZ1N3aXRjaENhc2U9XCInbXVsdGktc2VsZWN0J1wiIFtkaXNwbGF5XT1cImZpZWxkLmFsaWFzID8/IGZpZWxkLm5hbWUgfCBjYW1lbFRvV29yZHNcIiBbd2lkdGhdPVwiZmllbGQud2lkdGhcIiBbb3B0aW9uc109XCJmaWVsZC5vcHRpb25zXCIgW29wdGlvbkRpc3BsYXldPVwiZmllbGQub3B0aW9uRGlzcGxheSA/PyAnbmFtZSdcIiBbb3B0aW9uVmFsdWVdPVwiZmllbGQub3B0aW9uVmFsdWUgPz8gJ3ZhbHVlJ1wiIFsodmFsdWUpXT1cImRhdGFbZmllbGQubmFtZV1cIiAodmFsdWVDaGFuZ2UpPVwiaW5wdXRDaGFuZ2VkKGZpZWxkLCBkYXRhW2ZpZWxkLm5hbWVdKVwiIFtyZXF1aXJlZF09XCJmaWVsZC5yZXF1aXJlZFwiIFtyZWFkb25seV09XCJ0ZXN0UmVhZE9ubHkoZmllbGQpXCIgW2hpbnRdPVwiZmllbGQuaGludFwiIFtpbmZvTWVzc2FnZV09XCJmaWVsZC5pbmZvTWVzc2FnZVwiIFtzdWZmaXhdPVwiZmllbGQuc3VmZml4XCIgW2NvcHlDb250ZW50XT1cImZpZWxkLmNvcHlDb250ZW50XCIgW2NsZWFyQ29udGVudF09XCJmaWVsZC5jbGVhckNvbnRlbnRcIiBbbG9hZEFjdGlvbl09XCJmaWVsZC5sb2FkQWN0aW9uXCI+XHJcbiAgICAgICAgPC9zcGEtbXVsdGktc2VsZWN0PlxyXG5cclxuICAgICAgICA8c3BhLW11bHRpLXRleHQgKm5nU3dpdGNoQ2FzZT1cIidtdWx0aS10ZXh0J1wiIFtzdHJpY3RdPVwiZmllbGQuc3RyaWN0XCIgW2Rpc3BsYXldPVwiZmllbGQuYWxpYXMgPz8gZmllbGQubmFtZSB8IGNhbWVsVG9Xb3Jkc1wiIFtvcHRpb25zXT1cImZpZWxkLm9wdGlvbnNcIiBbb3B0aW9uRGlzcGxheV09XCJmaWVsZC5vcHRpb25EaXNwbGF5ID8/ICduYW1lJ1wiIFtvcHRpb25WYWx1ZV09XCJmaWVsZC5vcHRpb25WYWx1ZSA/PyAndmFsdWUnXCIgWyh2YWx1ZSldPVwiZGF0YVtmaWVsZC5uYW1lXVwiICh2YWx1ZUNoYW5nZSk9XCJpbnB1dENoYW5nZWQoZmllbGQsZGF0YVtmaWVsZC5uYW1lXSlcIiBbcmVxdWlyZWRdPVwiZmllbGQucmVxdWlyZWRcIiBbcmVhZG9ubHldPVwidGVzdFJlYWRPbmx5KGZpZWxkKVwiIFtoaW50XT1cImZpZWxkLmhpbnRcIiBbaW5mb01lc3NhZ2VdPVwiZmllbGQuaW5mb01lc3NhZ2VcIiBbc3VmZml4XT1cImZpZWxkLnN1ZmZpeFwiIFtjb3B5Q29udGVudF09XCJmaWVsZC5jb3B5Q29udGVudFwiIFtjbGVhckNvbnRlbnRdPVwiZmllbGQuY2xlYXJDb250ZW50XCIgW2xvYWRBY3Rpb25dPVwiZmllbGQubG9hZEFjdGlvblwiPjwvc3BhLW11bHRpLXRleHQ+XHJcblxyXG5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2NvbXBvc2l0ZSdcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb21wb3NpdGUtZmllbGQtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb21wb3NpdGUtZmllbGQtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzdWJmaWVsZCBvZiBnZXRWaXNpYmxlU3ViZmllbGRzKGZpZWxkKVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwic3ViZmllbGQudHlwZVwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPHNwYS1udW1iZXIgKm5nU3dpdGNoQ2FzZT1cIidudW1iZXInXCIgW2Rpc3BsYXldPVwic3ViZmllbGQuYWxpYXMgPz8gc3ViZmllbGQubmFtZSB8IGNhbWVsVG9Xb3Jkc1wiIFt3aWR0aF09XCJzdWJmaWVsZC53aWR0aFwiIFsodmFsdWUpXT1cImRhdGFbc3ViZmllbGQubmFtZV1cIiAodmFsdWVDaGFuZ2UpPVwiaW5wdXRDaGFuZ2VkKHN1YmZpZWxkLCAkZXZlbnQpXCIgW3JlcXVpcmVkXT1cInN1YmZpZWxkLnJlcXVpcmVkXCIgW21pbl09XCJzdWJmaWVsZC5taW5cIiBbbWF4XT1cInN1YmZpZWxkLm1heFwiIFtyZWFkb25seV09XCJ0ZXN0UmVhZE9ubHkoZmllbGQpIHx8IHRlc3RSZWFkT25seShzdWJmaWVsZClcIiBbaGludF09XCJzdWJmaWVsZC5oaW50XCIgW2luZm9NZXNzYWdlXT1cInN1YmZpZWxkLmluZm9NZXNzYWdlXCIgIFtzdWZmaXhdPVwic3ViZmllbGQuc3VmZml4XCIgW2NvcHlDb250ZW50XT1cInN1YmZpZWxkLmNvcHlDb250ZW50XCIgW2NsZWFyQ29udGVudF09XCJzdWJmaWVsZC5jbGVhckNvbnRlbnRcIj48L3NwYS1udW1iZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8c3BhLW1vbmV5ICpuZ1N3aXRjaENhc2U9XCInbW9uZXknXCIgW2Rpc3BsYXldPVwic3ViZmllbGQuYWxpYXMgPz8gc3ViZmllbGQubmFtZSB8IGNhbWVsVG9Xb3Jkc1wiIFt3aWR0aF09XCJzdWJmaWVsZC53aWR0aFwiIFsodmFsdWUpXT1cImRhdGFbc3ViZmllbGQubmFtZV1cIiAodmFsdWVDaGFuZ2UpPVwiaW5wdXRDaGFuZ2VkKHN1YmZpZWxkLCAkZXZlbnQpXCIgW3JlcXVpcmVkXT1cInN1YmZpZWxkLnJlcXVpcmVkXCIgW21pbl09XCJzdWJmaWVsZC5taW5cIiBbbWF4XT1cInN1YmZpZWxkLm1heFwiIFtyZWFkb25seV09XCJ0ZXN0UmVhZE9ubHkoZmllbGQpIHx8IHRlc3RSZWFkT25seShzdWJmaWVsZClcIiBbaGludF09XCJzdWJmaWVsZC5oaW50XCIgW2luZm9NZXNzYWdlXT1cInN1YmZpZWxkLmluZm9NZXNzYWdlXCIgW3N1ZmZpeF09XCJzdWJmaWVsZC5zdWZmaXhcIiBbY29weUNvbnRlbnRdPVwiZmllbGQuY29weUNvbnRlbnRcIiBbY2xlYXJDb250ZW50XT1cImZpZWxkLmNsZWFyQ29udGVudFwiPjwvc3BhLW1vbmV5PlxyXG5cclxuICAgICAgICAgICAgICAgICAgPHNwYS1jaGVjayAqbmdTd2l0Y2hDYXNlPVwiJ2NoZWNrYm94J1wiIFtkaXNwbGF5XT1cInN1YmZpZWxkLmFsaWFzID8/IHN1YmZpZWxkLm5hbWUgfCBjYW1lbFRvV29yZHNcIiBbKHZhbHVlKV09XCJkYXRhW3N1YmZpZWxkLm5hbWVdXCIgKHZhbHVlQ2hhbmdlKT1cImlucHV0Q2hhbmdlZChzdWJmaWVsZCwgJGV2ZW50KVwiIFtyZWFkb25seV09XCJ0ZXN0UmVhZE9ubHkoZmllbGQpIHx8IHRlc3RSZWFkT25seShzdWJmaWVsZClcIiBbaW5mb01lc3NhZ2VdPVwic3ViZmllbGQuaW5mb01lc3NhZ2VcIiA+PC9zcGEtY2hlY2s+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8c3BhLWRhdGUgKm5nU3dpdGNoQ2FzZT1cIidkYXRlJ1wiIFtkaXNwbGF5XT1cInN1YmZpZWxkLmFsaWFzID8/IHN1YmZpZWxkLm5hbWUgfCBjYW1lbFRvV29yZHNcIiBbd2lkdGhdPVwic3ViZmllbGQud2lkdGhcIiBbKHZhbHVlKV09XCJkYXRhW3N1YmZpZWxkLm5hbWVdXCIgKHZhbHVlQ2hhbmdlKT1cImlucHV0Q2hhbmdlZChzdWJmaWVsZCwgJGV2ZW50KVwiIFttaW5dPVwic3ViZmllbGQubWluXCIgW21heF09XCJzdWJmaWVsZC5tYXhcIiBbcmVhZG9ubHldPVwidGVzdFJlYWRPbmx5KGZpZWxkKSB8fCB0ZXN0UmVhZE9ubHkoc3ViZmllbGQpXCIgW2hpbnRdPVwic3ViZmllbGQuaGludFwiIFtpbmZvTWVzc2FnZV09XCJzdWJmaWVsZC5pbmZvTWVzc2FnZVwiID48L3NwYS1kYXRlPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPHNwYS1kYXRldGltZSAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGV0aW1lJ1wiIFtkaXNwbGF5XT1cInN1YmZpZWxkLmFsaWFzID8/IHN1YmZpZWxkLm5hbWUgfCBjYW1lbFRvV29yZHNcIiBbKHZhbHVlKV09XCJkYXRhW3N1YmZpZWxkLm5hbWVdXCIgKHZhbHVlQ2hhbmdlKT1cImlucHV0Q2hhbmdlZChzdWJmaWVsZCwgJGV2ZW50KVwiIFtyZWFkb25seV09XCJ0ZXN0UmVhZE9ubHkoZmllbGQpIHx8IHRlc3RSZWFkT25seShzdWJmaWVsZClcIiBbbWluXT1cInN1YmZpZWxkLm1pblwiIFttYXhdPVwic3ViZmllbGQubWF4XCIgW2luZm9NZXNzYWdlXT1cInN1YmZpZWxkLmluZm9NZXNzYWdlXCIgPjwvc3BhLWRhdGV0aW1lPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3NlbGVjdCdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZHluYW1pY1NlbGVjdFRlbXBsYXRlOyBjb250ZXh0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogZmllbGQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkOiBmaWVsZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogZGF0YSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJlYWRPbmx5OiB0ZXN0UmVhZE9ubHkuYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0Q2hhbmdlZDogc2VsZWN0Q2hhbmdlZC5iaW5kKHRoaXMpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPHNwYS10ZXh0ICpuZ1N3aXRjaERlZmF1bHQgW2Rpc3BsYXldPVwic3ViZmllbGQuYWxpYXMgPz8gc3ViZmllbGQubmFtZSB8IGNhbWVsVG9Xb3Jkc1wiIFt3aWR0aF09XCJzdWJmaWVsZC53aWR0aFwiICBbb3B0aW9uc109XCJzdWJmaWVsZC5vcHRpb25zXCIgW29wdGlvbkRpc3BsYXldPVwic3ViZmllbGQub3B0aW9uRGlzcGxheSA/PyAnbmFtZSdcIiBbb3B0aW9uVmFsdWVdPVwic3ViZmllbGQub3B0aW9uVmFsdWUgPz8gJ3ZhbHVlJ1wiIFtyb3dzXT1cInN1YmZpZWxkLnJvd3NcIiBbKHZhbHVlKV09XCJkYXRhW3N1YmZpZWxkLm5hbWVdXCIgKHZhbHVlQ2hhbmdlKT1cImlucHV0Q2hhbmdlZChzdWJmaWVsZCwgJGV2ZW50KVwiIFtyZXF1aXJlZF09XCJzdWJmaWVsZC5yZXF1aXJlZFwiIFttaW5dPVwic3ViZmllbGQubWluXCIgW21heF09XCJzdWJmaWVsZC5tYXhcIiBbcmVhZG9ubHldPVwidGVzdFJlYWRPbmx5KGZpZWxkKSB8fCB0ZXN0UmVhZE9ubHkoc3ViZmllbGQpXCIgW2hpbnRdPVwic3ViZmllbGQuaGludFwiIFtpbmZvTWVzc2FnZV09XCJzdWJmaWVsZC5pbmZvTWVzc2FnZVwiICBbc3VmZml4XT1cInN1YmZpZWxkLnN1ZmZpeFwiIFtjb3B5Q29udGVudF09XCJzdWJmaWVsZC5jb3B5Q29udGVudFwiIFtjbGVhckNvbnRlbnRdPVwic3ViZmllbGQuY2xlYXJDb250ZW50XCIgW2xvYWRBY3Rpb25dPVwic3ViZmllbGQubG9hZEFjdGlvblwiPjwvc3BhLXRleHQ+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbiAgICAgICAgPHNwYS10ZXh0ICpuZ1N3aXRjaERlZmF1bHQgW2Rpc3BsYXldPVwiZmllbGQuYWxpYXMgPz8gZmllbGQubmFtZSB8IGNhbWVsVG9Xb3Jkc1wiIFt3aWR0aF09XCJmaWVsZC53aWR0aFwiIFtvcHRpb25zXT1cImZpZWxkLm9wdGlvbnNcIiBbb3B0aW9uRGlzcGxheV09XCJmaWVsZC5vcHRpb25EaXNwbGF5ID8/ICduYW1lJ1wiIFtvcHRpb25WYWx1ZV09XCJmaWVsZC5vcHRpb25WYWx1ZSA/PyAndmFsdWUnXCIgW3Jvd3NdPVwiZmllbGQucm93c1wiIFsodmFsdWUpXT1cImRhdGFbZmllbGQubmFtZV1cIiAodmFsdWVDaGFuZ2UpPVwiaW5wdXRDaGFuZ2VkKGZpZWxkLGRhdGFbZmllbGQubmFtZV0pXCIgW3JlcXVpcmVkXT1cImZpZWxkLnJlcXVpcmVkXCIgW21pbl09XCJmaWVsZC5taW5cIiBbbWF4XT1cImZpZWxkLm1heFwiIFtyZWFkb25seV09XCJ0ZXN0UmVhZE9ubHkoZmllbGQpXCIgW2hpbnRdPVwiZmllbGQuaGludFwiIFtpbmZvTWVzc2FnZV09XCJmaWVsZC5pbmZvTWVzc2FnZVwiICBbc3VmZml4XT1cImZpZWxkLnN1ZmZpeFwiIFtjb3B5Q29udGVudF09XCJmaWVsZC5jb3B5Q29udGVudFwiIFtjbGVhckNvbnRlbnRdPVwiZmllbGQuY2xlYXJDb250ZW50XCIgW2xvYWRBY3Rpb25dPVwiZmllbGQubG9hZEFjdGlvblwiPjwvc3BhLXRleHQ+XHJcblxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPC9kaXY+XHJcblxyXG5cclxuICA8ZGl2IGNsYXNzPVwic3Bhbi1jb2wtY2VudGVyXCIgKm5nSWY9XCJjb25maWcuYnV0dG9uXCI+XHJcbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiICAoY2xpY2spPVwiYnV0dG9uQ2xpY2tlZCgpXCIgIGNka0ZvY3VzSW5pdGlhbD57e2J1dHRvbkRpc3BsYXl9fTwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG5cclxuXHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -83,16 +83,13 @@ export class TableComponent {
|
|
|
83
83
|
this.elevation = this.getElevationClass(this.config?.elevation);
|
|
84
84
|
this.displayedColumns = this.tableConfigService.setColumns(this.config, this.smallScreen);
|
|
85
85
|
this.displayedButtons = this.tableConfigService.getDisplayedButtons(this.config?.buttons, this.smallScreen, this.config);
|
|
86
|
-
this.actionsWidth = this.tableConfigService.getActionsWidth(this.displayedButtons, this.config);
|
|
86
|
+
this.actionsWidth = this.tableConfigService.getActionsWidth(this.displayedButtons, this.smallScreen, this.config);
|
|
87
87
|
if (this.config?.searchConfig) {
|
|
88
88
|
this.showFilterButton = false;
|
|
89
89
|
}
|
|
90
90
|
if (this.config?.showFilterButton === false) {
|
|
91
91
|
this.showFilterButton = false;
|
|
92
92
|
}
|
|
93
|
-
if (this.displayedButtons?.length > 0 && !this.displayedColumns.includes('action')) {
|
|
94
|
-
this.displayedColumns.push('action');
|
|
95
|
-
}
|
|
96
93
|
}
|
|
97
94
|
setupDataLoading() {
|
|
98
95
|
if (this.config.loadAction) {
|
|
@@ -403,4 +400,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
403
400
|
}], actionResponse: [{
|
|
404
401
|
type: Output
|
|
405
402
|
}] } });
|
|
406
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFzRCxVQUFVLEVBQWtDLE1BQU0sdUJBQXVCLENBQUM7QUFJdkksT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRzFELE9BQU8sRUFBRSxJQUFJLEVBQTBCLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVkvQixNQUFNLE9BQU8sY0FBYztJQUV6QixZQUFvQixXQUEyQixFQUFVLGNBQThCLEVBQVUsa0JBQXNDLEVBQVMsTUFBaUIsRUFDdkosYUFBNEIsRUFBVSxhQUE0QixFQUFVLGtCQUFzQyxFQUFVLGdCQUFrQyxFQUFVLFdBQXdCO1FBRHRMLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ3ZKLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFBVSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FB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LFNBQVMsSUFBSSxRQUFRLEVBQUM7WUFDN0IsT0FBTyxrQkFBa0IsQ0FBQTtTQUMxQjthQUNJLElBQUksU0FBUyxJQUFJLE1BQU0sRUFBQztZQUMzQixPQUFPLGtCQUFrQixDQUFBO1NBQzFCO2FBQ0c7WUFDRixPQUFPLGtCQUFrQixDQUFBO1NBQzFCO0lBRUgsQ0FBQzs7MkdBcGJVLGNBQWM7K0ZBQWQsY0FBYywrZEN0QjNCLCt4R0EyRUE7MkZEckRhLGNBQWM7a0JBTDFCLFNBQVM7K0JBQ0UsV0FBVzs2VUFzRFEsY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBRWxCLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IEFjdGlvbiwgQnV0dG9uLCBDb2xvciwgQ29sdW1uLCBEZXRhaWxzRGlhbG9nQ29uZmlnLCBGb3JtQ29uZmlnLCBJY29uLCBUYWJsZUNvbmZpZywgQXBpUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9jbGFzc2VzL0NsYXNzZXMnO1xyXG5pbXBvcnQgeyBNYXRQYWdpbmF0b3IgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21lc3NhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IERldGFpbHNEaWFsb2cgfSBmcm9tICcuL2RldGFpbHNEaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50U3RhdGUgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2VMaWIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXRhbGliLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb3JlLCBEZXRhaWxzRGlhbG9nUHJvY2Vzc29yIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9UaW5Db3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBCdXR0b25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYnV0dG9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUYWJsZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YWJsZS1jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbmRpdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb25kaXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3BhLXRhYmxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZUxpYiwgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsIHByaXZhdGUgYnJlYWtwb2ludE9ic2VydmVyOiBCcmVha3BvaW50T2JzZXJ2ZXIsIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgYnV0dG9uU2VydmljZTogQnV0dG9uU2VydmljZSwgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLCBwcml2YXRlIHRhYmxlQ29uZmlnU2VydmljZTogVGFibGVDb25maWdTZXJ2aWNlLCBwcml2YXRlIGNvbmRpdGlvblNlcnZpY2U6IENvbmRpdGlvblNlcnZpY2UsIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlIClcclxuICB7XHJcbiAgICAvLyBkZXRlY3Qgc2NyZWVuIHNpemUgY2hhbmdlc1xyXG4gICAgdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZShbXCIobWF4LXdpZHRoOiA2MDBweClcIl0pLnN1YnNjcmliZSgocmVzdWx0OiBCcmVha3BvaW50U3RhdGUpID0+IHtcclxuICAgICAgdGhpcy5zbWFsbFNjcmVlbiA9IHJlc3VsdC5tYXRjaGVzO1xyXG4gICAgICB0aGlzLnVwZGF0ZVRhYmxlQ29uZmlndXJhdGlvbigpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuXHJcbiAgICBpZiAodGhpcy5jb25maWc/LmZvcm1Db25maWcpIHtcclxuICAgICAgdGhpcy5oYXNGb3JtQWNjZXNzID0gQ29yZS5jaGVja0Zvcm1BY2Nlc3MoIHRoaXMuY29uZmlnLmZvcm1Db25maWcsIHRoaXMuYXV0aFNlcnZpY2UuY3VycmVudFJvbGVTb3VyY2UudmFsdWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5oYXNGb3JtQWNjZXNzKXtcclxuICAgICAgdGhpcy5pbml0aWFsaXplQ29tcG9uZW50KCk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcblxyXG4gICAgaWYgKCF0aGlzLmNvbmZpZy5sb2FkQWN0aW9uICYmICF0aGlzLmNvbmZpZy5zZWFyY2hDb25maWcpIHtcclxuICAgICAgdGhpcy5kYXRhU291cmNlID0gdGhpcy5kYXRhO1xyXG4gICAgICB0aGlzLnRhYmxlRGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2U8YW55Pih0aGlzLmRhdGFTb3VyY2UpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4geyB0aGlzLnRhYmxlRGF0YVNvdXJjZS5wYWdpbmF0b3IgPSB0aGlzLnRhYmxlUGFnaW5hdG9yOyB9LCAxMDAwKVxyXG4gIH1cclxuXHJcblxyXG4gIGVsZXZhdGlvbiA9IFwibWF0LWVsZXZhdGlvbi16NVwiO1xyXG4gIGFjdGlvbnNXaWR0aCA9IFwiNTBweFwiO1xyXG4gIHNob3dGaWx0ZXJCdXR0b24gPSB0cnVlO1xyXG4gIHRpbGVSZWxvYWQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBzbWFsbFNjcmVlbiA9IGZhbHNlXHJcbiAgaGFzRm9ybUFjY2VzcyA9IHRydWU7XHJcblxyXG4gIC8vVGFibGVcclxuICB0YWJsZURhdGFTb3VyY2U7XHJcbiAgZGF0YVNvdXJjZTogYW55W107XHJcbiAgZGlzcGxheWVkQ29sdW1ucyA9IFtdXHJcbiAgZGlzcGxheWVkQnV0dG9ucyA9IFtdXHJcbiAgb3JpZ2luYWxUYWJsZUxvYWRBY3Rpb246IEFjdGlvblxyXG5cclxuICBAVmlld0NoaWxkKCd0YWJsZVBhZ2luYXRvcicpIHRhYmxlUGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XHJcblxyXG4gIEBJbnB1dCgpIGRhdGE6IGFueSA9IFtdO1xyXG4gIEBJbnB1dCgpIHRpbGVEYXRhOiBhbnkgPSBbXTtcclxuICBASW5wdXQoKSBjb25maWc6IFRhYmxlQ29uZmlnO1xyXG4gIEBJbnB1dCgpIHJlbG9hZDogU3ViamVjdDxib29sZWFuPjtcclxuICBAT3V0cHV0KCkgZGF0YUxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHJlZnJlc2hDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgc2VhcmNoQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNyZWF0ZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBhY3Rpb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgaW5wdXRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGFjdGlvblJlc3BvbnNlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBwcml2YXRlIGluaXRpYWxpemVDb21wb25lbnQoKSB7XHJcbiAgICB0aGlzLnVwZGF0ZVRhYmxlQ29uZmlndXJhdGlvbigpO1xyXG4gICAgdGhpcy5zZXR1cERhdGFMb2FkaW5nKCk7XHJcbiAgICB0aGlzLmZvcm1EZWZhdWx0cygpO1xyXG4gICAgdGhpcy5vcmlnaW5hbFRhYmxlTG9hZEFjdGlvbiA9IHsgLi4udGhpcy5jb25maWcubG9hZEFjdGlvbiB9IC8vQ29yZS5nZXRDbG9uZSh0aGlzLmNvbmZpZy5sb2FkQWN0aW9uKTtcclxuICAgIHRoaXMuZGF0YVNvdXJjZSA9IHRoaXMuZGF0YTtcclxuICAgIHRoaXMudGFibGVEYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZTxhbnk+KHRoaXMuZGF0YVNvdXJjZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZVRhYmxlQ29uZmlndXJhdGlvbigpIHtcclxuICAgIHRoaXMuZWxldmF0aW9uID0gdGhpcy5nZXRFbGV2YXRpb25DbGFzcyh0aGlzLmNvbmZpZz8uZWxldmF0aW9uKTtcclxuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyA9IHRoaXMudGFibGVDb25maWdTZXJ2aWNlLnNldENvbHVtbnModGhpcy5jb25maWcsIHRoaXMuc21hbGxTY3JlZW4pO1xyXG4gICAgdGhpcy5kaXNwbGF5ZWRCdXR0b25zID0gdGhpcy50YWJsZUNvbmZpZ1NlcnZpY2UuZ2V0RGlzcGxheWVkQnV0dG9ucyh0aGlzLmNvbmZpZz8uYnV0dG9ucywgdGhpcy5zbWFsbFNjcmVlbiwgdGhpcy5jb25maWcpO1xyXG4gICAgdGhpcy5hY3Rpb25zV2lkdGggPSB0aGlzLnRhYmxlQ29uZmlnU2VydmljZS5nZXRBY3Rpb25zV2lkdGgodGhpcy5kaXNwbGF5ZWRCdXR0b25zLCB0aGlzLmNvbmZpZyk7XHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnPy5zZWFyY2hDb25maWcpIHtcclxuICAgICAgdGhpcy5zaG93RmlsdGVyQnV0dG9uID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnPy5zaG93RmlsdGVyQnV0dG9uID09PSBmYWxzZSkge1xyXG4gICAgICB0aGlzLnNob3dGaWx0ZXJCdXR0b24gPSBmYWxzZTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgaWYgKHRoaXMuZGlzcGxheWVkQnV0dG9ucz8ubGVuZ3RoID4gMCAmJiAhdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLmluY2x1ZGVzKCdhY3Rpb24nKSkge1xyXG4gICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMucHVzaCgnYWN0aW9uJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldHVwRGF0YUxvYWRpbmcoKSB7XHJcbiAgICBpZiAodGhpcy5jb25maWcubG9hZEFjdGlvbikge1xyXG4gICAgICB0aGlzLmxvYWREYXRhKHRoaXMuY29uZmlnLmxvYWRBY3Rpb24sIFwiXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnJlbG9hZCkge1xyXG4gICAgICB0aGlzLnJlbG9hZC5zdWJzY3JpYmUodiA9PiB7XHJcbiAgICAgICAgaWYgKHYgJiYgdGhpcy5jb25maWc/LmxvYWRBY3Rpb24pIHtcclxuICAgICAgICAgIHRoaXMubG9hZERhdGEodGhpcy5jb25maWcubG9hZEFjdGlvbiwgXCJcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxvYWREYXRhKGFjdGlvbjogQWN0aW9uLCBkYXRhOiBhbnkpIHtcclxuXHJcbiAgICAvL2lmIHNlYXJjaENvbmZpZyBpcyBzZXQsIHVzZSBsYXN0IHNlYXJjaFxyXG5cclxuXHJcbiAgICBpZiAoYWN0aW9uLm1ldGhvZCA9PSAncG9zdCcpIHtcclxuICAgICAgaWYgKHRoaXMuY29uZmlnLnNlYXJjaENvbmZpZykge1xyXG4gICAgICAgIGlmICghdGhpcy5sYXN0U2VhcmNoKSByZXR1cm47XHJcbiAgICAgICAgZGF0YSA9IHRoaXMubGFzdFNlYXJjaDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBpZiAoYWN0aW9uKSB7XHJcblxyXG4gICAgICB0aGlzLmRhdGFTZXJ2aWNlLkNhbGxBcGkoYWN0aW9uLCBkYXRhKS5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlOiBBcGlSZXNwb25zZSkgPT4ge1xyXG5cclxuICAgICAgICBpZiAodGhpcy5jb25maWcubG9nUmVzcG9uc2UpIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGFwaVJlc3BvbnNlKVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGFwaVJlc3BvbnNlLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZSA9IGFwaVJlc3BvbnNlLmRhdGFcclxuICAgICAgICAgIHRoaXMudGFibGVEYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZShhcGlSZXNwb25zZS5kYXRhKTtcclxuICAgICAgICAgIHRoaXMudGFibGVEYXRhU291cmNlLnBhZ2luYXRvciA9IHRoaXMudGFibGVQYWdpbmF0b3I7XHJcblxyXG4gICAgICAgICAgdGhpcy5kYXRhTG9hZGVkKGFwaVJlc3BvbnNlLmRhdGEpO1xyXG5cclxuICAgICAgICAgIGlmIChhcGlSZXNwb25zZS5tZXNzYWdlICE9IFwic3VjY2Vzc1wiICYmIGFwaVJlc3BvbnNlLm1lc3NhZ2UgIT0gXCJcIil7XHJcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoYXBpUmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiRXJyb3I6IFwiICsgYXBpUmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBpbnB1dENoYW5nZWQoZXZlbnQpIHtcclxuICAgIHRoaXMuaW5wdXRDaGFuZ2UuZW1pdCh7IGZpZWxkOiBldmVudC5maWVsZCwgdmFsdWU6IGV2ZW50LnZhbHVlIH0pXHJcbiAgfVxyXG5cclxuICBmb3JtRGVmYXVsdHMoKSB7XHJcblxyXG4gICAgaWYgKCF0aGlzLmNvbmZpZy5mb3JtQ29uZmlnKSB7XHJcbiAgICAgIGxldCBjb25maWcgPSBuZXcgRm9ybUNvbmZpZ1xyXG5cclxuICAgICAgY29uZmlnLmZpZWxkcyA9IFtdXHJcblxyXG4gICAgICB0aGlzLmNvbmZpZy5jb2x1bW5zLmZvckVhY2goY29sdW1uID0+IHtcclxuXHJcbiAgICAgICAgbGV0IGZpZWxkID0geyBuYW1lOiBjb2x1bW4ubmFtZSwgdHlwZTogY29sdW1uLnR5cGUgfVxyXG4gICAgICAgIGNvbmZpZy5maWVsZHMucHVzaChmaWVsZClcclxuXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5jb25maWcuZm9ybUNvbmZpZyA9IGNvbmZpZztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldEJ1dHRvbnMoKXtcclxuICAgIGlmICghdGhpcy5jb25maWcuYnV0dG9ucykgcmV0dXJuXHJcbiAgICBpZiAoIXRoaXMuc21hbGxTY3JlZW4pe1xyXG4gICAgICB0aGlzLmRpc3BsYXllZEJ1dHRvbnMgPSB0aGlzLmNvbmZpZy5idXR0b25zO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuZGlzcGxheWVkQnV0dG9ucyA9IHRoaXMuY29uZmlnLmJ1dHRvbnM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRCdXR0b24obmFtZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5idXR0b25TZXJ2aWNlLmdldEJ1dHRvbih0aGlzLmNvbmZpZy5idXR0b25zLCBuYW1lKTtcclxuICB9XHJcblxyXG4gIGdldEljb24oYnV0dG9uTmFtZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBidXR0b24gPSB0aGlzLmdldEJ1dHRvbihidXR0b25OYW1lKTtcclxuICAgIHJldHVybiB0aGlzLmJ1dHRvblNlcnZpY2UuZ2V0SWNvbihidXR0b24sIHRoaXMuY29uZmlnKTtcclxuICB9XHJcblxyXG4gIGdldEJ1dHRvbkNvbG9yKGJ1dHRvbjogQnV0dG9uLCByb3cpIHtcclxuICAgIHJldHVybiB0aGlzLmJ1dHRvblNlcnZpY2UuZ2V0QnV0dG9uQ29sb3IoYnV0dG9uLCByb3cpO1xyXG4gIH1cclxuXHJcbiAgZ2V0T3B0aW9ucyhjb2x1bW4pe1xyXG4gICAgbGV0IHggPSB0aGlzLmNvbmZpZy5jb2x1bW5zLmZpbmQob3B0ID0+IG9wdC5uYW1lID09PSBjb2x1bW4pO1xyXG4gICAgcmV0dXJuICB4XHJcbiAgfVxyXG5cclxuICBnZXRDb2xvcih2YWx1ZTogYW55LCBvcHRpb25zOiBhbnlbXSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TZXJ2aWNlLmdldENvbG9yKHZhbHVlLCBvcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHRlc3RJY29uQ29uZGl0aW9uKHJvdzogYW55LCBpY29uOiBJY29uKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TZXJ2aWNlLnRlc3RJY29uQ29uZGl0aW9uKGljb24sIHJvdyk7XHJcbiAgfVxyXG5cclxuICB0ZXN0Q29sb3JDb25kaXRpb24ocm93OiBhbnksIGNvbG9yOiBDb2xvcik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uU2VydmljZS50ZXN0Q29sb3JDb25kaXRpb24oY29sb3IsIHJvdyk7XHJcbiAgfVxyXG5cclxuICBzaG93QmFubmVyKG1lc3NhZ2U6IHN0cmluZykge1xyXG4gICAgaWYgKG1lc3NhZ2UgJiYgbWVzc2FnZSAhPT0gJycpIHtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5pbmZvKG1lc3NhZ2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdGVzdERpc2FibGVkKHJvdywgYnV0dG9uTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBidXR0b24gPSB0aGlzLmdldEJ1dHRvbihidXR0b25OYW1lKTtcclxuICAgIHJldHVybiB0aGlzLmJ1dHRvblNlcnZpY2UudGVzdERpc2FibGVkKGJ1dHRvbiwgcm93KTtcclxuICB9XHJcblxyXG4gIC8vIHRlc3RWaXNpYmxlKHJvdywgYnV0dG9uTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgLy8gICBjb25zdCBidXR0b24gPSB0aGlzLmdldEJ1dHRvbihidXR0b25OYW1lKTtcclxuICAvLyAgIHJldHVybiB0aGlzLmJ1dHRvblNlcnZpY2UudGVzdFZpc2libGUoYnV0dG9uLCByb3csIHRoaXMuY29uZmlnKTtcclxuICAvLyB9XHJcblxyXG5cclxuXHJcbiAgLy9FdmVudHNcclxuICBsYXN0U2VhcmNoXHJcbiAgc2VhcmNoQ2xpY2tlZCh4KXtcclxuICAgIHRoaXMuc2VhcmNoQ2xpY2suZW1pdCh4KTtcclxuICAgIHRoaXMubGFzdFNlYXJjaCA9IHg7XHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnLnNlYXJjaENvbmZpZy5zZWFyY2hBY3Rpb24pe1xyXG4gICAgICB0aGlzLmNvbmZpZy5sb2FkQWN0aW9uID0geyAuLi50aGlzLmNvbmZpZy5zZWFyY2hDb25maWcuc2VhcmNoQWN0aW9uIH0gLy9Db3JlLmdldENsb25lKHRoaXMuY29uZmlnLnNlYXJjaENvbmZpZy5zZWFyY2hBY3Rpb24pO1xyXG4gICAgICB0aGlzLm9yaWdpbmFsVGFibGVMb2FkQWN0aW9uID0geyAuLi50aGlzLmNvbmZpZy5zZWFyY2hDb25maWcuc2VhcmNoQWN0aW9uIH0gLy9Db3JlLmdldENsb25lKHRoaXMuY29uZmlnLnNlYXJjaENvbmZpZy5zZWFyY2hBY3Rpb24pO1xyXG4gICAgICB0aGlzLmxvYWREYXRhKHRoaXMuY29uZmlnLmxvYWRBY3Rpb24sIHgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdGlsZUNsaWNrZWQodGlsZSl7XHJcbiAgICB0aGlzLmNvbmZpZy5sb2FkQWN0aW9uID0geyAuLi50aWxlLmRhdGEuYWN0aW9uIH0gLy9Db3JlLmdldENsb25lKHRpbGUuZGF0YS5hY3Rpb24pO1xyXG4gICAgdGhpcy5yZWZyZXNoQ2xpY2tlZCgpO1xyXG4gIH1cclxuXHJcbiAgdGlsZVVuQ2xpY2tlZCh0aWxlKSB7XHJcbiAgICB0aGlzLmNvbmZpZy5sb2FkQWN0aW9uID0geyAuLi50aGlzLm9yaWdpbmFsVGFibGVMb2FkQWN0aW9uIH0gLy9Db3JlLmdldENsb25lKHRoaXMub3JpZ2luYWxUYWJsZUxvYWRBY3Rpb24pO1xyXG4gICAgdGhpcy5yZWZyZXNoQ2xpY2tlZCgpO1xyXG4gIH1cclxuXHJcbiAgcmVmcmVzaENsaWNrZWQoKSB7XHJcbiAgICB0aGlzLnJlZnJlc2hDbGljay5lbWl0KCk7XHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnLmxvYWRBY3Rpb24pIHtcclxuXHJcbiAgICAgIHRoaXMubG9hZERhdGEodGhpcy5jb25maWcubG9hZEFjdGlvbixcIlwiKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmRhdGFMb2FkLmVtaXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRhdGFMb2FkZWQoeCkge1xyXG4gICAgdGhpcy5kYXRhTG9hZC5lbWl0KHgpXHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnLnRpbGVDb25maWc/LmxvYWRBY3Rpb24pIHtcclxuICAgICAgdGhpcy50aWxlUmVsb2FkLm5leHQodHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgYWN0aW9uQ2xpY2tlZChuYW1lOiBzdHJpbmcsIHJvdzogYW55KSB7XHJcbiAgICBpZiAobmFtZSA9PT0gJ3ZpZXcnKSB7XHJcbiAgICAgIHRoaXMudmlld01vZGVsKHJvdyk7XHJcbiAgICB9IGVsc2UgaWYgKG5hbWUgPT09ICdlZGl0Jykge1xyXG4gICAgICB0aGlzLmVkaXRNb2RlbChyb3cpO1xyXG4gICAgfSBlbHNlIGlmIChuYW1lID09PSAnZGVsZXRlJykge1xyXG4gICAgICB0aGlzLmRlbGV0ZU1vZGVsKHJvdyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmN1c3RvbU1vZGVsKG5hbWUsIHJvdyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgLy9EaWFsb2cgZXZlbnRzXHJcbiAgY29sdW1uQ2xpY2tlZChjb2x1bW4gOiBDb2x1bW4sIHJvdyl7XHJcbiAgICBpZiAoY29sdW1uLmRldGFpbHNDb25maWcpIHtcclxuICAgICAgY29uc3QgYnV0dG9uIDogQnV0dG9uID0geyBuYW1lOiBjb2x1bW4ubmFtZSwgZGlhbG9nOiB0cnVlLCBkZXRhaWxzQ29uZmlnOiBjb2x1bW4uZGV0YWlsc0NvbmZpZyB9XHJcbiAgICAgIHRoaXMub3BlbihidXR0b24sIHJvdywgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYWN0aW9uQ2xpY2tlZEVtaXQoY29sdW1uLm5hbWUsIHJvdyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjdXN0b21Nb2RlbChuYW1lLCByb3cpIHtcclxuICAgIGNvbnN0IGJ1dHRvbiA9IHRoaXMuZ2V0QnV0dG9uKG5hbWUpO1xyXG4gICAgdGhpcy5vcGVuKGJ1dHRvbiwgcm93KTtcclxuICB9XHJcblxyXG5cclxuICBhY3Rpb25DbGlja2VkRW1pdChuYW1lLCByb3cpIHtcclxuICAgIHRoaXMuYWN0aW9uQ2xpY2suZW1pdCh7bmFtZTpuYW1lLGRhdGEgOiByb3d9KTtcclxuICB9XHJcblxyXG4gIHZpZXdNb2RlbChyb3cpIHtcclxuICAgIGNvbnN0IGJ1dHRvbiA9IHRoaXMuZ2V0QnV0dG9uKCd2aWV3Jyk7XHJcbiAgICB0aGlzLm9wZW4oYnV0dG9uLCByb3cpO1xyXG4gIH1cclxuXHJcbiAgbmV3TW9kZWwoKSB7XHJcbiAgICBjb25zdCBidXR0b24gPSB0aGlzLmdldEJ1dHRvbignY3JlYXRlJyk7XHJcbiAgICB0aGlzLm9wZW4oYnV0dG9uLCBudWxsKTtcclxuICB9XHJcblxyXG4gIGVkaXRNb2RlbChyb3cpIHtcclxuICAgIGxldCBidXR0b24gPSB0aGlzLmdldEJ1dHRvbignZWRpdCcpO1xyXG4gICAgdGhpcy5vcGVuKGJ1dHRvbiwgcm93KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb3BlbihidXR0b246IEJ1dHRvbiwgcm93OiBhbnkgfCBudWxsICk6IHZvaWQge1xyXG5cclxuICAgIGNvbnN0IGJ1dHRvbk5hbWUgPSBidXR0b24ubmFtZVxyXG5cclxuICAgIGxldCBidG4gOiBCdXR0b24gPSB7IC4uLmJ1dHRvbixcclxuICAgICAgZGV0YWlsc0NvbmZpZzogYnV0dG9uLmRldGFpbHNDb25maWcgPz8ge1xyXG4gICAgICAgIC4uLmJ1dHRvbi5kZXRhaWxzQ29uZmlnLFxyXG4gICAgICAgIGZvcm1Db25maWc6IHRoaXMuY29uZmlnLmZvcm1Db25maWcsXHJcbiAgICAgICAgc3RlcENvbmZpZzogdGhpcy5jb25maWcuc3RlcENvbmZpZyxcclxuICAgICAgICBidXR0b25zOiB0aGlzLmNvbmZpZy5idXR0b25zLFxyXG4gICAgICAgIGhlcm9GaWVsZDogdGhpcy5jb25maWcuaGVyb0ZpZWxkLFxyXG4gICAgICAgIGhlcm9WYWx1ZTogdGhpcy5jb25maWcuaGVyb1ZhbHVlLFxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHRoaXMuZGlhbG9nU2VydmljZS5vcGVuQ29uZmlndXJlZERldGFpbHNEaWFsb2coYnRuLCByb3csIERldGFpbHNEaWFsb2csICkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQuYWN0aW9uID09PSAnZG9BY3Rpb24nKSB7XHJcbiAgICAgICAgdGhpcy5kb0FjdGlvbihyZXN1bHQubmFtZSwgcmVzdWx0LnJvdyk7XHJcbiAgICAgICAgdGhpcy5hY3Rpb25DbGlja2VkRW1pdChyZXN1bHQubmFtZSwgcmVzdWx0LnJvdyk7XHJcbiAgICAgIH0gZWxzZSBpZiAocmVzdWx0LmFjdGlvbiA9PT0gJ2lucHV0Q2hhbmdlJykge1xyXG4gICAgICAgIHRoaXMuaW5wdXRDaGFuZ2VkKHJlc3VsdC5jaGFuZ2UpO1xyXG4gICAgICB9IGVsc2UgaWYgKHJlc3VsdC5tZXNzYWdlID09PSAnc3VjY2VzcycpIHtcclxuICAgICAgICB0aGlzLmFjdGlvbkNsaWNrZWRFbWl0KGJ1dHRvbk5hbWUsIHJlc3VsdC5kYXRhKTtcclxuICAgICAgICB0aGlzLmFjdGlvblJlc3BvbnNlLmVtaXQoeyBuYW1lOiBidXR0b25OYW1lLCBkYXRhOiByZXN1bHQuZGF0YSB9KTtcclxuICAgICAgICB0aGlzLnJlZnJlc2hDbGlja2VkKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAocmVzdWx0Lm1lc3NhZ2UgPT09ICdlbWl0Jykge1xyXG4gICAgICAgIHRoaXMuYWN0aW9uQ2xpY2tlZEVtaXQoYnV0dG9uTmFtZSwgcmVzdWx0LmRhdGEpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZU1vZGVsKHJvdykge1xyXG5cclxuICAgIGxldCBidXR0b24gPSB0aGlzLmdldEJ1dHRvbignZGVsZXRlJyk7XHJcbiAgICBpZiAoIWJ1dHRvbikgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuY29uZmlybShgREVMRVRFID9gKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICBpZiAocmVzdWx0ID09IFwieWVzXCIpIHtcclxuICAgICAgICB0aGlzLmFjdGlvbkNsaWNrZWRFbWl0KCdkZWxldGUnLCByb3cpXHJcbiAgICAgICAgdGhpcy5kb0FjdGlvbihidXR0b24ubmFtZSxyb3cpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgLy9BY3Rpb25zXHJcbiAgZG9BY3Rpb24oYnV0dG9uTmFtZTogc3RyaW5nLCByb3cpIHtcclxuXHJcbiAgICBsZXQgYiA9IHRoaXMuZ2V0QnV0dG9uKGJ1dHRvbk5hbWUpXHJcblxyXG4gICAgaWYgKCFiKSByZXR1cm47XHJcbiAgICBpZiAoIWIuYWN0aW9uKSByZXR1cm47XHJcblxyXG4gICAgaWYgKGIuc2V0SGVyb0ZpZWxkICYmIHRoaXMuY29uZmlnLmhlcm9WYWx1ZSkge1xyXG4gICAgICByb3dbdGhpcy5jb25maWcuaGVyb0ZpZWxkXSA9IHRoaXMuY29uZmlnLmhlcm9WYWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoYi5jb25maXJtKXtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5jb25maXJtKGAke2IuY29uZmlybS5tZXNzYWdlfWApLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCA9PSBcInllc1wiKSB7XHJcbiAgICAgICAgICB0aGlzLmV4ZWNBY3Rpb24oYixyb3cpXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmV4ZWNBY3Rpb24oYiwgcm93KVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGV4ZWNBY3Rpb24oYnV0dG9uOiBCdXR0b24sIHJvdyl7XHJcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLkNhbGxBcGkoYnV0dG9uLmFjdGlvbiwgcm93KS5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlIDogQXBpUmVzcG9uc2UpID0+IHtcclxuXHJcbiAgICAgIGlmIChhcGlSZXNwb25zZS5zdWNjZXNzKSB7XHJcblxyXG4gICAgICAgIGlmIChhcGlSZXNwb25zZS5tZXNzYWdlLmluY2x1ZGVzKFwiYXBwcm92YWxcIikgfHwgYXBpUmVzcG9uc2UubWVzc2FnZS5pbmNsdWRlcyhcImFwcHJvdmVcIikgfHwgYXBpUmVzcG9uc2UubWVzc2FnZS5pbmNsdWRlcyhcImRlY2xpbmVcIikpIHtcclxuICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoYXBpUmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgICAgfWVsc2UgaWYgKGJ1dHRvbi5hY3Rpb24uc3VjY2Vzc01lc3NhZ2UpIHtcclxuICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoYnV0dG9uLmFjdGlvbi5zdWNjZXNzTWVzc2FnZSk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChhcGlSZXNwb25zZS5tZXNzYWdlICE9IFwic3VjY2Vzc1wiICYmIGFwaVJlc3BvbnNlLm1lc3NhZ2UgIT0gXCJcIikge1xyXG4gICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChhcGlSZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIlVwZGF0ZWRcIik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnJlZnJlc2hDbGlja2VkKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIkVycm9yOiBcIiArIGFwaVJlc3BvbnNlLm1lc3NhZ2UpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmFjdGlvblJlc3BvbnNlLmVtaXQoe25hbWU6YnV0dG9uLm5hbWUsIGRhdGE6YXBpUmVzcG9uc2V9KTtcclxuICAgIH0sXHJcbiAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJFcnJvcjogXCIgKyBlcnJvcik7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy9NaXNjXHJcbiAgcHJpdmF0ZSBnZXRFbGV2YXRpb25DbGFzcyhlbGV2YXRpb246IHN0cmluZyk6IHN0cmluZyB7XHJcblxyXG4gICAgaWYgKGVsZXZhdGlvbiA9PSBcIm5vbmVcIil7XHJcbiAgICAgIHJldHVybiBcIlwiXHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChlbGV2YXRpb24gPT0gXCJsb3dcIil7XHJcbiAgICAgIHJldHVybiBcIm1hdC1lbGV2YXRpb24tejFcIlxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoZWxldmF0aW9uID09IFwibWVkaXVtXCIpe1xyXG4gICAgICByZXR1cm4gXCJtYXQtZWxldmF0aW9uLXo1XCJcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGVsZXZhdGlvbiA9PSBcImhpZ2hcIil7XHJcbiAgICAgIHJldHVybiBcIm1hdC1lbGV2YXRpb24tejlcIlxyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcmV0dXJuIFwibWF0LWVsZXZhdGlvbi16NVwiXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbn1cclxuIiwiXHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNGb3JtQWNjZXNzXCI+XHJcblxyXG4gIDwhLS0gU2VhcmNoIC0tPlxyXG4gIDxzcGEtc2VhcmNoXHJcbiAgICAqbmdJZj1cImNvbmZpZy5zZWFyY2hDb25maWdcIiBbY29uZmlnXT1cImNvbmZpZy5zZWFyY2hDb25maWdcIiBbc21hbGxTY3JlZW5dPVwic21hbGxTY3JlZW5cIiBbdGFibGVEYXRhU291cmNlXT1cInRhYmxlRGF0YVNvdXJjZVwiIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMjBweDtcIiAoc2VhcmNoQ2xpY2spPVwic2VhcmNoQ2xpY2tlZCgkZXZlbnQpXCI+XHJcbiAgPC9zcGEtc2VhcmNoPlxyXG5cclxuICA8IS0tIEhlYWRlciAtLT5cclxuICA8YXBwLXRhYmxlLWhlYWRlclxyXG4gICAgW2NvbmZpZ109XCJjb25maWdcIiBbZGF0YV09XCJkYXRhU291cmNlXCIgW3RhYmxlRGF0YVNvdXJjZV09XCJ0YWJsZURhdGFTb3VyY2VcIiBbdGlsZUNvbmZpZ109XCJjb25maWcudGlsZUNvbmZpZ1wiIFt0aWxlRGF0YV09XCJ0aWxlRGF0YVwiIFt0aWxlUmVsb2FkXT1cInRpbGVSZWxvYWRcIiBbbGFzdFNlYXJjaF09XCJsYXN0U2VhcmNoXCIgW3NtYWxsU2NyZWVuXT1cInNtYWxsU2NyZWVuXCJcclxuICAgIFtzaG93RmlsdGVyQnV0dG9uXT1cInNob3dGaWx0ZXJCdXR0b25cIiAoY3JlYXRlQ2xpY2spPVwibmV3TW9kZWwoKVwiIChjdXN0b21DbGljayk9XCJjdXN0b21Nb2RlbCgkZXZlbnQsbnVsbClcIlxyXG4gICAgKHJlZnJlc2hDbGljayk9XCJyZWZyZXNoQ2xpY2tlZCgpXCIgKHRpbGVDbGljayk9XCJ0aWxlQ2xpY2tlZCgkZXZlbnQpXCIgKHRpbGVVbkNsaWNrKT1cInRpbGVVbkNsaWNrZWQoJGV2ZW50KVwiPlxyXG4gIDwvYXBwLXRhYmxlLWhlYWRlcj5cclxuXHJcblxyXG4gIDwhLS0gVGFibGUgLS0+XHJcbiAgPGRpdj5cclxuXHJcbiAgICA8cCAqbmdJZj1cIiFjb25maWdcIj48ZW0+Q29uZmlndXJlIFRhYmxlPC9lbT48L3A+XHJcbiAgICA8cCAqbmdJZj1cIiFkYXRhU291cmNlXCI+PGVtPkxvYWRpbmcuLi48L2VtPjwvcD5cclxuXHJcbiAgICA8ZGl2ICpuZ0lmPVwiZGF0YVNvdXJjZSAmJiAoIXNtYWxsU2NyZWVuIHx8IChzbWFsbFNjcmVlbiAmJiBkYXRhU291cmNlPy5sZW5ndGggPiAwKSlcIj5cclxuXHJcbiAgICAgIDx0YWJsZSBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwidGFibGVEYXRhU291cmNlXCIgIFtuZ0NsYXNzXT1cImVsZXZhdGlvblwiPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29uZmlnLmNvbHVtbnNcIiBbbWF0Q29sdW1uRGVmXT1cImNvbHVtbi5uYW1lXCI+XHJcbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmID57eyBjb2x1bW4uYWxpYXMgPz8gY29sdW1uLm5hbWUgfCBjYW1lbFRvV29yZHMgfX08L3RoPlxyXG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvdztcIiBjbGFzcz1cInJpZ2h0LXBhZGRpbmdcIiA+XHJcblxyXG4gICAgICAgICAgICA8IS0tIFJvd3MgLS0+XHJcbiAgICAgICAgICAgIDxhcHAtdGFibGUtcm93IFtjb2x1bW5dPVwiY29sdW1uXCIgW3Jvd109XCJyb3dcIiBbY29uZmlnXT1cImNvbmZpZ1wiIFtzbWFsbFNjcmVlbl09XCJzbWFsbFNjcmVlblwiXHJcbiAgICAgICAgICAgICAgKGFjdGlvbkNsaWNrKT1cImFjdGlvbkNsaWNrZWQoY29sdW1uLm5hbWUsIHJvdylcIiAoY29sdW1uQ2xpY2spPVwiY29sdW1uQ2xpY2tlZChjb2x1bW4sIHJvdylcIiAoc2hvd0Jhbm5lckV2ZW50KT1cInNob3dCYW5uZXIoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8L2FwcC10YWJsZS1yb3c+XHJcblxyXG4gICAgICAgICAgPC90ZD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJhY3Rpb25cIj5cclxuICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IEFjdGlvbiA8L3RoPlxyXG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiIFtuZ1N0eWxlXT1cInt3aWR0aDpmYWxzZSA/ICc1MHB4JyA6IGFjdGlvbnNXaWR0aH1cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbi1idXR0b25zLWNvbnRhaW5lclwiPlxyXG5cclxuICAgICAgICAgICAgICA8IS0tIEFjdGlvbnMgLS0+XHJcbiAgICAgICAgICAgICAgPGFwcC10YWJsZS1hY3Rpb25cclxuICAgICAgICAgICAgICAgIFtkaXNwbGF5ZWRCdXR0b25zXT1cImRpc3BsYXllZEJ1dHRvbnNcIiBbY29uZmlnXT1cImNvbmZpZ1wiIFtzbWFsbFNjcmVlbl09XCJzbWFsbFNjcmVlblwiIFtyb3ddPVwicm93XCIgKGFjdGlvbkNsaWNrKT1cImFjdGlvbkNsaWNrZWQoJGV2ZW50Lm5hbWUsICRldmVudC5yb3cpXCI+XHJcbiAgICAgICAgICAgICAgPC9hcHAtdGFibGUtYWN0aW9uPlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbiAgICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cclxuICAgICAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1ucztcIiBbbmdDbGFzc109XCJ7J21ha2UtZ3JheSc6IChjb25maWcuZ3JleU91dCAmJiBjb25maWcuZ3JleU91dChyb3cpKSB8fCByb3cucGVuZGluZ0FwcHJvdmFsfVwiPjwvdHI+XHJcbiAgICAgIDwvdGFibGU+XHJcblxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPG1hdC1wYWdpbmF0b3IgKm5nSWY9XCJkYXRhU291cmNlICYmICghc21hbGxTY3JlZW4gfHwgKHNtYWxsU2NyZWVuICYmIGRhdGFTb3VyY2U/Lmxlbmd0aCA+IDApKVwiICN0YWJsZVBhZ2luYXRvciBbcGFnZVNpemVPcHRpb25zXT1cImNvbmZpZy5wYWdlU2l6ZXMgPz8gWzEwLCAyMCwgNTBdXCIgc2hvd0ZpcnN0TGFzdEJ1dHRvbnM+PC9tYXQtcGFnaW5hdG9yPlxyXG5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cInRpbi1jZW50ZXJcIj5cclxuICAgIDxwICpuZ0lmPVwiZGF0YVNvdXJjZT8ubGVuZ3RoID09IDBcIj48ZW0+e3tjb25maWcubm9EYXRhTWVzc2FnZSA/PyAnTm8gRGF0YSd9fTwvZW0+PC9wPlxyXG4gIDwvZGl2PlxyXG5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48bmctY29udGFpbmVyICpuZ0lmPVwiIWhhc0Zvcm1BY2Nlc3NcIj5cclxuICA8ZGl2IGNsYXNzPVwidGluLWNlbnRlclwiPlxyXG4gICAgPHA+PGVtPkFjY2VzcyBSZXN0cmljdGVkPC9lbT48L3A+XHJcbiAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuIl19
|
|
403
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFzRCxVQUFVLEVBQWtDLE1BQU0sdUJBQXVCLENBQUM7QUFJdkksT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRzFELE9BQU8sRUFBRSxJQUFJLEVBQTBCLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVkvQixNQUFNLE9BQU8sY0FBYztJQUV6QixZQUFvQixXQUEyQixFQUFVLGNBQThCLEVBQVUsa0JBQXNDLEVBQVMsTUFBaUIsRUFDdkosYUFBNEIsRUFBVSxhQUE0QixFQUFVLGtCQUFzQyxFQUFVLGdCQUFrQyxFQUFVLFdBQXdCO1FBRHRMLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ3ZKLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFBVSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FB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QUVILENBQUM7OzJHQWhiVSxjQUFjOytGQUFkLGNBQWMsK2RDdEIzQiwreEdBMkVBOzJGRHJEYSxjQUFjO2tCQUwxQixTQUFTOytCQUNFLFdBQVc7NlVBc0RRLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUVsQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNJLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0VGFibGVEYXRhU291cmNlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xyXG5pbXBvcnQgeyBBY3Rpb24sIEJ1dHRvbiwgQ29sb3IsIENvbHVtbiwgRGV0YWlsc0RpYWxvZ0NvbmZpZywgRm9ybUNvbmZpZywgSWNvbiwgVGFibGVDb25maWcsIEFwaVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9DbGFzc2VzJztcclxuaW1wb3J0IHsgTWF0UGFnaW5hdG9yIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBEZXRhaWxzRGlhbG9nIH0gZnJvbSAnLi9kZXRhaWxzRGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlciwgQnJlYWtwb2ludFN0YXRlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlTGliIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YWxpYi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29yZSwgRGV0YWlsc0RpYWxvZ1Byb2Nlc3NvciB9IGZyb20gJy4uLy4uL2NsYXNzZXMvVGluQ29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQnV0dG9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2J1dHRvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGFibGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGFibGUtY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb25kaXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29uZGl0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NwYS10YWJsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90YWJsZS5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2VMaWIsIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLCBwcml2YXRlIGJyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyLCBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIGJ1dHRvblNlcnZpY2U6IEJ1dHRvblNlcnZpY2UsIHByaXZhdGUgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSwgcHJpdmF0ZSB0YWJsZUNvbmZpZ1NlcnZpY2U6IFRhYmxlQ29uZmlnU2VydmljZSwgcHJpdmF0ZSBjb25kaXRpb25TZXJ2aWNlOiBDb25kaXRpb25TZXJ2aWNlLCBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSApXHJcbiAge1xyXG4gICAgLy8gZGV0ZWN0IHNjcmVlbiBzaXplIGNoYW5nZXNcclxuICAgIHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLm9ic2VydmUoW1wiKG1heC13aWR0aDogNjAwcHgpXCJdKS5zdWJzY3JpYmUoKHJlc3VsdDogQnJlYWtwb2ludFN0YXRlKSA9PiB7XHJcbiAgICAgIHRoaXMuc21hbGxTY3JlZW4gPSByZXN1bHQubWF0Y2hlcztcclxuICAgICAgdGhpcy51cGRhdGVUYWJsZUNvbmZpZ3VyYXRpb24oKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnPy5mb3JtQ29uZmlnKSB7XHJcbiAgICAgIHRoaXMuaGFzRm9ybUFjY2VzcyA9IENvcmUuY2hlY2tGb3JtQWNjZXNzKCB0aGlzLmNvbmZpZy5mb3JtQ29uZmlnLCB0aGlzLmF1dGhTZXJ2aWNlLmN1cnJlbnRSb2xlU291cmNlLnZhbHVlICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaGFzRm9ybUFjY2Vzcyl7XHJcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZUNvbXBvbmVudCgpO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCkge1xyXG5cclxuICAgIGlmICghdGhpcy5jb25maWcubG9hZEFjdGlvbiAmJiAhdGhpcy5jb25maWcuc2VhcmNoQ29uZmlnKSB7XHJcbiAgICAgIHRoaXMuZGF0YVNvdXJjZSA9IHRoaXMuZGF0YTtcclxuICAgICAgdGhpcy50YWJsZURhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlPGFueT4odGhpcy5kYXRhU291cmNlKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHsgdGhpcy50YWJsZURhdGFTb3VyY2UucGFnaW5hdG9yID0gdGhpcy50YWJsZVBhZ2luYXRvcjsgfSwgMTAwMClcclxuICB9XHJcblxyXG5cclxuICBlbGV2YXRpb24gPSBcIm1hdC1lbGV2YXRpb24tejVcIjtcclxuICBhY3Rpb25zV2lkdGggPSBcIjUwcHhcIjtcclxuICBzaG93RmlsdGVyQnV0dG9uID0gdHJ1ZTtcclxuICB0aWxlUmVsb2FkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgc21hbGxTY3JlZW4gPSBmYWxzZVxyXG4gIGhhc0Zvcm1BY2Nlc3MgPSB0cnVlO1xyXG5cclxuICAvL1RhYmxlXHJcbiAgdGFibGVEYXRhU291cmNlO1xyXG4gIGRhdGFTb3VyY2U6IGFueVtdO1xyXG4gIGRpc3BsYXllZENvbHVtbnMgPSBbXVxyXG4gIGRpc3BsYXllZEJ1dHRvbnMgPSBbXVxyXG4gIG9yaWdpbmFsVGFibGVMb2FkQWN0aW9uOiBBY3Rpb25cclxuXHJcbiAgQFZpZXdDaGlsZCgndGFibGVQYWdpbmF0b3InKSB0YWJsZVBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xyXG5cclxuICBASW5wdXQoKSBkYXRhOiBhbnkgPSBbXTtcclxuICBASW5wdXQoKSB0aWxlRGF0YTogYW55ID0gW107XHJcbiAgQElucHV0KCkgY29uZmlnOiBUYWJsZUNvbmZpZztcclxuICBASW5wdXQoKSByZWxvYWQ6IFN1YmplY3Q8Ym9vbGVhbj47XHJcbiAgQE91dHB1dCgpIGRhdGFMb2FkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSByZWZyZXNoQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHNlYXJjaENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjcmVhdGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgYWN0aW9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGlucHV0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBhY3Rpb25SZXNwb25zZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplQ29tcG9uZW50KCkge1xyXG4gICAgdGhpcy51cGRhdGVUYWJsZUNvbmZpZ3VyYXRpb24oKTtcclxuICAgIHRoaXMuc2V0dXBEYXRhTG9hZGluZygpO1xyXG4gICAgdGhpcy5mb3JtRGVmYXVsdHMoKTtcclxuICAgIHRoaXMub3JpZ2luYWxUYWJsZUxvYWRBY3Rpb24gPSB7IC4uLnRoaXMuY29uZmlnLmxvYWRBY3Rpb24gfSAvL0NvcmUuZ2V0Q2xvbmUodGhpcy5jb25maWcubG9hZEFjdGlvbik7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2UgPSB0aGlzLmRhdGE7XHJcbiAgICB0aGlzLnRhYmxlRGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2U8YW55Pih0aGlzLmRhdGFTb3VyY2UpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVUYWJsZUNvbmZpZ3VyYXRpb24oKSB7XHJcbiAgICB0aGlzLmVsZXZhdGlvbiA9IHRoaXMuZ2V0RWxldmF0aW9uQ2xhc3ModGhpcy5jb25maWc/LmVsZXZhdGlvbik7XHJcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSB0aGlzLnRhYmxlQ29uZmlnU2VydmljZS5zZXRDb2x1bW5zKHRoaXMuY29uZmlnLCB0aGlzLnNtYWxsU2NyZWVuKTtcclxuICAgIHRoaXMuZGlzcGxheWVkQnV0dG9ucyA9IHRoaXMudGFibGVDb25maWdTZXJ2aWNlLmdldERpc3BsYXllZEJ1dHRvbnModGhpcy5jb25maWc/LmJ1dHRvbnMsIHRoaXMuc21hbGxTY3JlZW4sIHRoaXMuY29uZmlnKTtcclxuICAgIHRoaXMuYWN0aW9uc1dpZHRoID0gdGhpcy50YWJsZUNvbmZpZ1NlcnZpY2UuZ2V0QWN0aW9uc1dpZHRoKHRoaXMuZGlzcGxheWVkQnV0dG9ucywgdGhpcy5zbWFsbFNjcmVlbiwgdGhpcy5jb25maWcpO1xyXG5cclxuICAgIGlmICh0aGlzLmNvbmZpZz8uc2VhcmNoQ29uZmlnKSB7XHJcbiAgICAgIHRoaXMuc2hvd0ZpbHRlckJ1dHRvbiA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmNvbmZpZz8uc2hvd0ZpbHRlckJ1dHRvbiA9PT0gZmFsc2UpIHtcclxuICAgICAgdGhpcy5zaG93RmlsdGVyQnV0dG9uID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXR1cERhdGFMb2FkaW5nKCkge1xyXG4gICAgaWYgKHRoaXMuY29uZmlnLmxvYWRBY3Rpb24pIHtcclxuICAgICAgdGhpcy5sb2FkRGF0YSh0aGlzLmNvbmZpZy5sb2FkQWN0aW9uLCBcIlwiKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5yZWxvYWQpIHtcclxuICAgICAgdGhpcy5yZWxvYWQuc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICAgIGlmICh2ICYmIHRoaXMuY29uZmlnPy5sb2FkQWN0aW9uKSB7XHJcbiAgICAgICAgICB0aGlzLmxvYWREYXRhKHRoaXMuY29uZmlnLmxvYWRBY3Rpb24sIFwiXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsb2FkRGF0YShhY3Rpb246IEFjdGlvbiwgZGF0YTogYW55KSB7XHJcblxyXG4gICAgLy9pZiBzZWFyY2hDb25maWcgaXMgc2V0LCB1c2UgbGFzdCBzZWFyY2hcclxuXHJcblxyXG4gICAgaWYgKGFjdGlvbi5tZXRob2QgPT0gJ3Bvc3QnKSB7XHJcbiAgICAgIGlmICh0aGlzLmNvbmZpZy5zZWFyY2hDb25maWcpIHtcclxuICAgICAgICBpZiAoIXRoaXMubGFzdFNlYXJjaCkgcmV0dXJuO1xyXG4gICAgICAgIGRhdGEgPSB0aGlzLmxhc3RTZWFyY2g7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgaWYgKGFjdGlvbikge1xyXG5cclxuICAgICAgdGhpcy5kYXRhU2VydmljZS5DYWxsQXBpKGFjdGlvbiwgZGF0YSkuc3Vic2NyaWJlKChhcGlSZXNwb25zZTogQXBpUmVzcG9uc2UpID0+IHtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmxvZ1Jlc3BvbnNlKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhhcGlSZXNwb25zZSlcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChhcGlSZXNwb25zZS5zdWNjZXNzKSB7XHJcbiAgICAgICAgICB0aGlzLmRhdGFTb3VyY2UgPSBhcGlSZXNwb25zZS5kYXRhXHJcbiAgICAgICAgICB0aGlzLnRhYmxlRGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UoYXBpUmVzcG9uc2UuZGF0YSk7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlRGF0YVNvdXJjZS5wYWdpbmF0b3IgPSB0aGlzLnRhYmxlUGFnaW5hdG9yO1xyXG5cclxuICAgICAgICAgIHRoaXMuZGF0YUxvYWRlZChhcGlSZXNwb25zZS5kYXRhKTtcclxuXHJcbiAgICAgICAgICBpZiAoYXBpUmVzcG9uc2UubWVzc2FnZSAhPSBcInN1Y2Nlc3NcIiAmJiBhcGlSZXNwb25zZS5tZXNzYWdlICE9IFwiXCIpe1xyXG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KGFwaVJlc3BvbnNlLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIkVycm9yOiBcIiArIGFwaVJlc3BvbnNlLm1lc3NhZ2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgaW5wdXRDaGFuZ2VkKGV2ZW50KSB7XHJcbiAgICB0aGlzLmlucHV0Q2hhbmdlLmVtaXQoeyBmaWVsZDogZXZlbnQuZmllbGQsIHZhbHVlOiBldmVudC52YWx1ZSB9KVxyXG4gIH1cclxuXHJcbiAgZm9ybURlZmF1bHRzKCkge1xyXG5cclxuICAgIGlmICghdGhpcy5jb25maWcuZm9ybUNvbmZpZykge1xyXG4gICAgICBsZXQgY29uZmlnID0gbmV3IEZvcm1Db25maWdcclxuXHJcbiAgICAgIGNvbmZpZy5maWVsZHMgPSBbXVxyXG5cclxuICAgICAgdGhpcy5jb25maWcuY29sdW1ucy5mb3JFYWNoKGNvbHVtbiA9PiB7XHJcblxyXG4gICAgICAgIGxldCBmaWVsZCA9IHsgbmFtZTogY29sdW1uLm5hbWUsIHR5cGU6IGNvbHVtbi50eXBlIH1cclxuICAgICAgICBjb25maWcuZmllbGRzLnB1c2goZmllbGQpXHJcblxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMuY29uZmlnLmZvcm1Db25maWcgPSBjb25maWc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRCdXR0b25zKCl7XHJcbiAgICBpZiAoIXRoaXMuY29uZmlnLmJ1dHRvbnMpIHJldHVyblxyXG4gICAgaWYgKCF0aGlzLnNtYWxsU2NyZWVuKXtcclxuICAgICAgdGhpcy5kaXNwbGF5ZWRCdXR0b25zID0gdGhpcy5jb25maWcuYnV0dG9ucztcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmRpc3BsYXllZEJ1dHRvbnMgPSB0aGlzLmNvbmZpZy5idXR0b25zO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0QnV0dG9uKG5hbWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuYnV0dG9uU2VydmljZS5nZXRCdXR0b24odGhpcy5jb25maWcuYnV0dG9ucywgbmFtZSk7XHJcbiAgfVxyXG5cclxuICBnZXRJY29uKGJ1dHRvbk5hbWU6IHN0cmluZykge1xyXG4gICAgY29uc3QgYnV0dG9uID0gdGhpcy5nZXRCdXR0b24oYnV0dG9uTmFtZSk7XHJcbiAgICByZXR1cm4gdGhpcy5idXR0b25TZXJ2aWNlLmdldEljb24oYnV0dG9uLCB0aGlzLmNvbmZpZyk7XHJcbiAgfVxyXG5cclxuICBnZXRCdXR0b25Db2xvcihidXR0b246IEJ1dHRvbiwgcm93KSB7XHJcbiAgICByZXR1cm4gdGhpcy5idXR0b25TZXJ2aWNlLmdldEJ1dHRvbkNvbG9yKGJ1dHRvbiwgcm93KTtcclxuICB9XHJcblxyXG4gIGdldE9wdGlvbnMoY29sdW1uKXtcclxuICAgIGxldCB4ID0gdGhpcy5jb25maWcuY29sdW1ucy5maW5kKG9wdCA9PiBvcHQubmFtZSA9PT0gY29sdW1uKTtcclxuICAgIHJldHVybiAgeFxyXG4gIH1cclxuXHJcbiAgZ2V0Q29sb3IodmFsdWU6IGFueSwgb3B0aW9uczogYW55W10pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uU2VydmljZS5nZXRDb2xvcih2YWx1ZSwgb3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICB0ZXN0SWNvbkNvbmRpdGlvbihyb3c6IGFueSwgaWNvbjogSWNvbik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uU2VydmljZS50ZXN0SWNvbkNvbmRpdGlvbihpY29uLCByb3cpO1xyXG4gIH1cclxuXHJcbiAgdGVzdENvbG9yQ29uZGl0aW9uKHJvdzogYW55LCBjb2xvcjogQ29sb3IpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmRpdGlvblNlcnZpY2UudGVzdENvbG9yQ29uZGl0aW9uKGNvbG9yLCByb3cpO1xyXG4gIH1cclxuXHJcbiAgc2hvd0Jhbm5lcihtZXNzYWdlOiBzdHJpbmcpIHtcclxuICAgIGlmIChtZXNzYWdlICYmIG1lc3NhZ2UgIT09ICcnKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuaW5mbyhtZXNzYWdlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRlc3REaXNhYmxlZChyb3csIGJ1dHRvbk5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgYnV0dG9uID0gdGhpcy5nZXRCdXR0b24oYnV0dG9uTmFtZSk7XHJcbiAgICByZXR1cm4gdGhpcy5idXR0b25TZXJ2aWNlLnRlc3REaXNhYmxlZChidXR0b24sIHJvdyk7XHJcbiAgfVxyXG5cclxuICAvLyB0ZXN0VmlzaWJsZShyb3csIGJ1dHRvbk5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gIC8vICAgY29uc3QgYnV0dG9uID0gdGhpcy5nZXRCdXR0b24oYnV0dG9uTmFtZSk7XHJcbiAgLy8gICByZXR1cm4gdGhpcy5idXR0b25TZXJ2aWNlLnRlc3RWaXNpYmxlKGJ1dHRvbiwgcm93LCB0aGlzLmNvbmZpZyk7XHJcbiAgLy8gfVxyXG5cclxuXHJcblxyXG4gIC8vRXZlbnRzXHJcbiAgbGFzdFNlYXJjaFxyXG4gIHNlYXJjaENsaWNrZWQoeCl7XHJcbiAgICB0aGlzLnNlYXJjaENsaWNrLmVtaXQoeCk7XHJcbiAgICB0aGlzLmxhc3RTZWFyY2ggPSB4O1xyXG5cclxuICAgIGlmICh0aGlzLmNvbmZpZy5zZWFyY2hDb25maWcuc2VhcmNoQWN0aW9uKXtcclxuICAgICAgdGhpcy5jb25maWcubG9hZEFjdGlvbiA9IHsgLi4udGhpcy5jb25maWcuc2VhcmNoQ29uZmlnLnNlYXJjaEFjdGlvbiB9IC8vQ29yZS5nZXRDbG9uZSh0aGlzLmNvbmZpZy5zZWFyY2hDb25maWcuc2VhcmNoQWN0aW9uKTtcclxuICAgICAgdGhpcy5vcmlnaW5hbFRhYmxlTG9hZEFjdGlvbiA9IHsgLi4udGhpcy5jb25maWcuc2VhcmNoQ29uZmlnLnNlYXJjaEFjdGlvbiB9IC8vQ29yZS5nZXRDbG9uZSh0aGlzLmNvbmZpZy5zZWFyY2hDb25maWcuc2VhcmNoQWN0aW9uKTtcclxuICAgICAgdGhpcy5sb2FkRGF0YSh0aGlzLmNvbmZpZy5sb2FkQWN0aW9uLCB4KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRpbGVDbGlja2VkKHRpbGUpe1xyXG4gICAgdGhpcy5jb25maWcubG9hZEFjdGlvbiA9IHsgLi4udGlsZS5kYXRhLmFjdGlvbiB9IC8vQ29yZS5nZXRDbG9uZSh0aWxlLmRhdGEuYWN0aW9uKTtcclxuICAgIHRoaXMucmVmcmVzaENsaWNrZWQoKTtcclxuICB9XHJcblxyXG4gIHRpbGVVbkNsaWNrZWQodGlsZSkge1xyXG4gICAgdGhpcy5jb25maWcubG9hZEFjdGlvbiA9IHsgLi4udGhpcy5vcmlnaW5hbFRhYmxlTG9hZEFjdGlvbiB9IC8vQ29yZS5nZXRDbG9uZSh0aGlzLm9yaWdpbmFsVGFibGVMb2FkQWN0aW9uKTtcclxuICAgIHRoaXMucmVmcmVzaENsaWNrZWQoKTtcclxuICB9XHJcblxyXG4gIHJlZnJlc2hDbGlja2VkKCkge1xyXG4gICAgdGhpcy5yZWZyZXNoQ2xpY2suZW1pdCgpO1xyXG5cclxuICAgIGlmICh0aGlzLmNvbmZpZy5sb2FkQWN0aW9uKSB7XHJcblxyXG4gICAgICB0aGlzLmxvYWREYXRhKHRoaXMuY29uZmlnLmxvYWRBY3Rpb24sXCJcIik7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5kYXRhTG9hZC5lbWl0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkYXRhTG9hZGVkKHgpIHtcclxuICAgIHRoaXMuZGF0YUxvYWQuZW1pdCh4KVxyXG5cclxuICAgIGlmICh0aGlzLmNvbmZpZy50aWxlQ29uZmlnPy5sb2FkQWN0aW9uKSB7XHJcbiAgICAgIHRoaXMudGlsZVJlbG9hZC5uZXh0KHRydWUpO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGFjdGlvbkNsaWNrZWQobmFtZTogc3RyaW5nLCByb3c6IGFueSkge1xyXG4gICAgaWYgKG5hbWUgPT09ICd2aWV3Jykge1xyXG4gICAgICB0aGlzLnZpZXdNb2RlbChyb3cpO1xyXG4gICAgfSBlbHNlIGlmIChuYW1lID09PSAnZWRpdCcpIHtcclxuICAgICAgdGhpcy5lZGl0TW9kZWwocm93KTtcclxuICAgIH0gZWxzZSBpZiAobmFtZSA9PT0gJ2RlbGV0ZScpIHtcclxuICAgICAgdGhpcy5kZWxldGVNb2RlbChyb3cpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jdXN0b21Nb2RlbChuYW1lLCByb3cpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC8vRGlhbG9nIGV2ZW50c1xyXG4gIGNvbHVtbkNsaWNrZWQoY29sdW1uIDogQ29sdW1uLCByb3cpe1xyXG4gICAgaWYgKGNvbHVtbi5kZXRhaWxzQ29uZmlnKSB7XHJcbiAgICAgIGNvbnN0IGJ1dHRvbiA6IEJ1dHRvbiA9IHsgbmFtZTogY29sdW1uLm5hbWUsIGRpYWxvZzogdHJ1ZSwgZGV0YWlsc0NvbmZpZzogY29sdW1uLmRldGFpbHNDb25maWcgfVxyXG4gICAgICB0aGlzLm9wZW4oYnV0dG9uLCByb3csICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmFjdGlvbkNsaWNrZWRFbWl0KGNvbHVtbi5uYW1lLCByb3cpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY3VzdG9tTW9kZWwobmFtZSwgcm93KSB7XHJcbiAgICBjb25zdCBidXR0b24gPSB0aGlzLmdldEJ1dHRvbihuYW1lKTtcclxuICAgIHRoaXMub3BlbihidXR0b24sIHJvdyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgYWN0aW9uQ2xpY2tlZEVtaXQobmFtZSwgcm93KSB7XHJcbiAgICB0aGlzLmFjdGlvbkNsaWNrLmVtaXQoe25hbWU6bmFtZSxkYXRhIDogcm93fSk7XHJcbiAgfVxyXG5cclxuICB2aWV3TW9kZWwocm93KSB7XHJcbiAgICBjb25zdCBidXR0b24gPSB0aGlzLmdldEJ1dHRvbigndmlldycpO1xyXG4gICAgdGhpcy5vcGVuKGJ1dHRvbiwgcm93KTtcclxuICB9XHJcblxyXG4gIG5ld01vZGVsKCkge1xyXG4gICAgY29uc3QgYnV0dG9uID0gdGhpcy5nZXRCdXR0b24oJ2NyZWF0ZScpO1xyXG4gICAgdGhpcy5vcGVuKGJ1dHRvbiwgbnVsbCk7XHJcbiAgfVxyXG5cclxuICBlZGl0TW9kZWwocm93KSB7XHJcbiAgICBsZXQgYnV0dG9uID0gdGhpcy5nZXRCdXR0b24oJ2VkaXQnKTtcclxuICAgIHRoaXMub3BlbihidXR0b24sIHJvdyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9wZW4oYnV0dG9uOiBCdXR0b24sIHJvdzogYW55IHwgbnVsbCApOiB2b2lkIHtcclxuXHJcbiAgICBjb25zdCBidXR0b25OYW1lID0gYnV0dG9uLm5hbWVcclxuXHJcbiAgICBsZXQgYnRuIDogQnV0dG9uID0geyAuLi5idXR0b24sXHJcbiAgICAgIGRldGFpbHNDb25maWc6IGJ1dHRvbi5kZXRhaWxzQ29uZmlnID8/IHtcclxuICAgICAgICAuLi5idXR0b24uZGV0YWlsc0NvbmZpZyxcclxuICAgICAgICBmb3JtQ29uZmlnOiB0aGlzLmNvbmZpZy5mb3JtQ29uZmlnLFxyXG4gICAgICAgIHN0ZXBDb25maWc6IHRoaXMuY29uZmlnLnN0ZXBDb25maWcsXHJcbiAgICAgICAgYnV0dG9uczogdGhpcy5jb25maWcuYnV0dG9ucyxcclxuICAgICAgICBoZXJvRmllbGQ6IHRoaXMuY29uZmlnLmhlcm9GaWVsZCxcclxuICAgICAgICBoZXJvVmFsdWU6IHRoaXMuY29uZmlnLmhlcm9WYWx1ZSxcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbkNvbmZpZ3VyZWREZXRhaWxzRGlhbG9nKGJ0biwgcm93LCBEZXRhaWxzRGlhbG9nLCApLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICBpZiAocmVzdWx0LmFjdGlvbiA9PT0gJ2RvQWN0aW9uJykge1xyXG4gICAgICAgIHRoaXMuZG9BY3Rpb24ocmVzdWx0Lm5hbWUsIHJlc3VsdC5yb3cpO1xyXG4gICAgICAgIHRoaXMuYWN0aW9uQ2xpY2tlZEVtaXQocmVzdWx0Lm5hbWUsIHJlc3VsdC5yb3cpO1xyXG4gICAgICB9IGVsc2UgaWYgKHJlc3VsdC5hY3Rpb24gPT09ICdpbnB1dENoYW5nZScpIHtcclxuICAgICAgICB0aGlzLmlucHV0Q2hhbmdlZChyZXN1bHQuY2hhbmdlKTtcclxuICAgICAgfSBlbHNlIGlmIChyZXN1bHQubWVzc2FnZSA9PT0gJ3N1Y2Nlc3MnKSB7XHJcbiAgICAgICAgdGhpcy5hY3Rpb25DbGlja2VkRW1pdChidXR0b25OYW1lLCByZXN1bHQuZGF0YSk7XHJcbiAgICAgICAgdGhpcy5hY3Rpb25SZXNwb25zZS5lbWl0KHsgbmFtZTogYnV0dG9uTmFtZSwgZGF0YTogcmVzdWx0LmRhdGEgfSk7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoQ2xpY2tlZCgpO1xyXG4gICAgICB9IGVsc2UgaWYgKHJlc3VsdC5tZXNzYWdlID09PSAnZW1pdCcpIHtcclxuICAgICAgICB0aGlzLmFjdGlvbkNsaWNrZWRFbWl0KGJ1dHRvbk5hbWUsIHJlc3VsdC5kYXRhKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVNb2RlbChyb3cpIHtcclxuXHJcbiAgICBsZXQgYnV0dG9uID0gdGhpcy5nZXRCdXR0b24oJ2RlbGV0ZScpO1xyXG4gICAgaWYgKCFidXR0b24pIHJldHVybjtcclxuXHJcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmNvbmZpcm0oYERFTEVURSA/YCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgaWYgKHJlc3VsdCA9PSBcInllc1wiKSB7XHJcbiAgICAgICAgdGhpcy5hY3Rpb25DbGlja2VkRW1pdCgnZGVsZXRlJywgcm93KVxyXG4gICAgICAgIHRoaXMuZG9BY3Rpb24oYnV0dG9uLm5hbWUscm93KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcblxyXG4gIC8vQWN0aW9uc1xyXG4gIGRvQWN0aW9uKGJ1dHRvbk5hbWU6IHN0cmluZywgcm93KSB7XHJcblxyXG4gICAgbGV0IGIgPSB0aGlzLmdldEJ1dHRvbihidXR0b25OYW1lKVxyXG5cclxuICAgIGlmICghYikgcmV0dXJuO1xyXG4gICAgaWYgKCFiLmFjdGlvbikgcmV0dXJuO1xyXG5cclxuICAgIGlmIChiLnNldEhlcm9GaWVsZCAmJiB0aGlzLmNvbmZpZy5oZXJvVmFsdWUpIHtcclxuICAgICAgcm93W3RoaXMuY29uZmlnLmhlcm9GaWVsZF0gPSB0aGlzLmNvbmZpZy5oZXJvVmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGIuY29uZmlybSl7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuY29uZmlybShgJHtiLmNvbmZpcm0ubWVzc2FnZX1gKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQgPT0gXCJ5ZXNcIikge1xyXG4gICAgICAgICAgdGhpcy5leGVjQWN0aW9uKGIscm93KVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5leGVjQWN0aW9uKGIsIHJvdylcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBleGVjQWN0aW9uKGJ1dHRvbjogQnV0dG9uLCByb3cpe1xyXG4gICAgdGhpcy5kYXRhU2VydmljZS5DYWxsQXBpKGJ1dHRvbi5hY3Rpb24sIHJvdykuc3Vic2NyaWJlKChhcGlSZXNwb25zZSA6IEFwaVJlc3BvbnNlKSA9PiB7XHJcblxyXG4gICAgICBpZiAoYXBpUmVzcG9uc2Uuc3VjY2Vzcykge1xyXG5cclxuICAgICAgICBpZiAoYXBpUmVzcG9uc2UubWVzc2FnZS5pbmNsdWRlcyhcImFwcHJvdmFsXCIpIHx8IGFwaVJlc3BvbnNlLm1lc3NhZ2UuaW5jbHVkZXMoXCJhcHByb3ZlXCIpIHx8IGFwaVJlc3BvbnNlLm1lc3NhZ2UuaW5jbHVkZXMoXCJkZWNsaW5lXCIpKSB7XHJcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KGFwaVJlc3BvbnNlLm1lc3NhZ2UpO1xyXG4gICAgICAgIH1lbHNlIGlmIChidXR0b24uYWN0aW9uLnN1Y2Nlc3NNZXNzYWdlKSB7XHJcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KGJ1dHRvbi5hY3Rpb24uc3VjY2Vzc01lc3NhZ2UpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoYXBpUmVzcG9uc2UubWVzc2FnZSAhPSBcInN1Y2Nlc3NcIiAmJiBhcGlSZXNwb25zZS5tZXNzYWdlICE9IFwiXCIpIHtcclxuICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoYXBpUmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJVcGRhdGVkXCIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5yZWZyZXNoQ2xpY2tlZCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJFcnJvcjogXCIgKyBhcGlSZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5hY3Rpb25SZXNwb25zZS5lbWl0KHtuYW1lOmJ1dHRvbi5uYW1lLCBkYXRhOmFwaVJlc3BvbnNlfSk7XHJcbiAgICB9LFxyXG4gICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiRXJyb3I6IFwiICsgZXJyb3IpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vTWlzY1xyXG4gIHByaXZhdGUgZ2V0RWxldmF0aW9uQ2xhc3MoZWxldmF0aW9uOiBzdHJpbmcpOiBzdHJpbmcge1xyXG5cclxuICAgIGlmIChlbGV2YXRpb24gPT0gXCJub25lXCIpe1xyXG4gICAgICByZXR1cm4gXCJcIlxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoZWxldmF0aW9uID09IFwibG93XCIpe1xyXG4gICAgICByZXR1cm4gXCJtYXQtZWxldmF0aW9uLXoxXCJcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGVsZXZhdGlvbiA9PSBcIm1lZGl1bVwiKXtcclxuICAgICAgcmV0dXJuIFwibWF0LWVsZXZhdGlvbi16NVwiXHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChlbGV2YXRpb24gPT0gXCJoaWdoXCIpe1xyXG4gICAgICByZXR1cm4gXCJtYXQtZWxldmF0aW9uLXo5XCJcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHJldHVybiBcIm1hdC1lbGV2YXRpb24tejVcIlxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG59XHJcbiIsIlxyXG48bmctY29udGFpbmVyICpuZ0lmPVwiaGFzRm9ybUFjY2Vzc1wiPlxyXG5cclxuICA8IS0tIFNlYXJjaCAtLT5cclxuICA8c3BhLXNlYXJjaFxyXG4gICAgKm5nSWY9XCJjb25maWcuc2VhcmNoQ29uZmlnXCIgW2NvbmZpZ109XCJjb25maWcuc2VhcmNoQ29uZmlnXCIgW3NtYWxsU2NyZWVuXT1cInNtYWxsU2NyZWVuXCIgW3RhYmxlRGF0YVNvdXJjZV09XCJ0YWJsZURhdGFTb3VyY2VcIiBzdHlsZT1cIm1hcmdpbi1ib3R0b206IDIwcHg7XCIgKHNlYXJjaENsaWNrKT1cInNlYXJjaENsaWNrZWQoJGV2ZW50KVwiPlxyXG4gIDwvc3BhLXNlYXJjaD5cclxuXHJcbiAgPCEtLSBIZWFkZXIgLS0+XHJcbiAgPGFwcC10YWJsZS1oZWFkZXJcclxuICAgIFtjb25maWddPVwiY29uZmlnXCIgW2RhdGFdPVwiZGF0YVNvdXJjZVwiIFt0YWJsZURhdGFTb3VyY2VdPVwidGFibGVEYXRhU291cmNlXCIgW3RpbGVDb25maWddPVwiY29uZmlnLnRpbGVDb25maWdcIiBbdGlsZURhdGFdPVwidGlsZURhdGFcIiBbdGlsZVJlbG9hZF09XCJ0aWxlUmVsb2FkXCIgW2xhc3RTZWFyY2hdPVwibGFzdFNlYXJjaFwiIFtzbWFsbFNjcmVlbl09XCJzbWFsbFNjcmVlblwiXHJcbiAgICBbc2hvd0ZpbHRlckJ1dHRvbl09XCJzaG93RmlsdGVyQnV0dG9uXCIgKGNyZWF0ZUNsaWNrKT1cIm5ld01vZGVsKClcIiAoY3VzdG9tQ2xpY2spPVwiY3VzdG9tTW9kZWwoJGV2ZW50LG51bGwpXCJcclxuICAgIChyZWZyZXNoQ2xpY2spPVwicmVmcmVzaENsaWNrZWQoKVwiICh0aWxlQ2xpY2spPVwidGlsZUNsaWNrZWQoJGV2ZW50KVwiICh0aWxlVW5DbGljayk9XCJ0aWxlVW5DbGlja2VkKCRldmVudClcIj5cclxuICA8L2FwcC10YWJsZS1oZWFkZXI+XHJcblxyXG5cclxuICA8IS0tIFRhYmxlIC0tPlxyXG4gIDxkaXY+XHJcblxyXG4gICAgPHAgKm5nSWY9XCIhY29uZmlnXCI+PGVtPkNvbmZpZ3VyZSBUYWJsZTwvZW0+PC9wPlxyXG4gICAgPHAgKm5nSWY9XCIhZGF0YVNvdXJjZVwiPjxlbT5Mb2FkaW5nLi4uPC9lbT48L3A+XHJcblxyXG4gICAgPGRpdiAqbmdJZj1cImRhdGFTb3VyY2UgJiYgKCFzbWFsbFNjcmVlbiB8fCAoc21hbGxTY3JlZW4gJiYgZGF0YVNvdXJjZT8ubGVuZ3RoID4gMCkpXCI+XHJcblxyXG4gICAgICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cInRhYmxlRGF0YVNvdXJjZVwiICBbbmdDbGFzc109XCJlbGV2YXRpb25cIj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbmZpZy5jb2x1bW5zXCIgW21hdENvbHVtbkRlZl09XCJjb2x1bW4ubmFtZVwiPlxyXG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiA+e3sgY29sdW1uLmFsaWFzID8/IGNvbHVtbi5uYW1lIHwgY2FtZWxUb1dvcmRzIH19PC90aD5cclxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3c7XCIgY2xhc3M9XCJyaWdodC1wYWRkaW5nXCIgPlxyXG5cclxuICAgICAgICAgICAgPCEtLSBSb3dzIC0tPlxyXG4gICAgICAgICAgICA8YXBwLXRhYmxlLXJvdyBbY29sdW1uXT1cImNvbHVtblwiIFtyb3ddPVwicm93XCIgW2NvbmZpZ109XCJjb25maWdcIiBbc21hbGxTY3JlZW5dPVwic21hbGxTY3JlZW5cIlxyXG4gICAgICAgICAgICAgIChhY3Rpb25DbGljayk9XCJhY3Rpb25DbGlja2VkKGNvbHVtbi5uYW1lLCByb3cpXCIgKGNvbHVtbkNsaWNrKT1cImNvbHVtbkNsaWNrZWQoY29sdW1uLCByb3cpXCIgKHNob3dCYW5uZXJFdmVudCk9XCJzaG93QmFubmVyKCRldmVudClcIj5cclxuICAgICAgICAgICAgPC9hcHAtdGFibGUtcm93PlxyXG5cclxuICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiYWN0aW9uXCI+XHJcbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBBY3Rpb24gPC90aD5cclxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiBbbmdTdHlsZV09XCJ7d2lkdGg6ZmFsc2UgPyAnNTBweCcgOiBhY3Rpb25zV2lkdGh9XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb24tYnV0dG9ucy1jb250YWluZXJcIj5cclxuXHJcbiAgICAgICAgICAgICAgPCEtLSBBY3Rpb25zIC0tPlxyXG4gICAgICAgICAgICAgIDxhcHAtdGFibGUtYWN0aW9uXHJcbiAgICAgICAgICAgICAgICBbZGlzcGxheWVkQnV0dG9uc109XCJkaXNwbGF5ZWRCdXR0b25zXCIgW2NvbmZpZ109XCJjb25maWdcIiBbc21hbGxTY3JlZW5dPVwic21hbGxTY3JlZW5cIiBbcm93XT1cInJvd1wiIChhY3Rpb25DbGljayk9XCJhY3Rpb25DbGlja2VkKCRldmVudC5uYW1lLCAkZXZlbnQucm93KVwiPlxyXG4gICAgICAgICAgICAgIDwvYXBwLXRhYmxlLWFjdGlvbj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC90ZD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG4gICAgICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc1wiPjwvdHI+XHJcbiAgICAgICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCIgW25nQ2xhc3NdPVwieydtYWtlLWdyYXknOiAoY29uZmlnLmdyZXlPdXQgJiYgY29uZmlnLmdyZXlPdXQocm93KSkgfHwgcm93LnBlbmRpbmdBcHByb3ZhbH1cIj48L3RyPlxyXG4gICAgICA8L3RhYmxlPlxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxtYXQtcGFnaW5hdG9yICpuZ0lmPVwiZGF0YVNvdXJjZSAmJiAoIXNtYWxsU2NyZWVuIHx8IChzbWFsbFNjcmVlbiAmJiBkYXRhU291cmNlPy5sZW5ndGggPiAwKSlcIiAjdGFibGVQYWdpbmF0b3IgW3BhZ2VTaXplT3B0aW9uc109XCJjb25maWcucGFnZVNpemVzID8/IFsxMCwgMjAsIDUwXVwiIHNob3dGaXJzdExhc3RCdXR0b25zPjwvbWF0LXBhZ2luYXRvcj5cclxuXHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJ0aW4tY2VudGVyXCI+XHJcbiAgICA8cCAqbmdJZj1cImRhdGFTb3VyY2U/Lmxlbmd0aCA9PSAwXCI+PGVtPnt7Y29uZmlnLm5vRGF0YU1lc3NhZ2UgPz8gJ05vIERhdGEnfX08L2VtPjwvcD5cclxuICA8L2Rpdj5cclxuXHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFoYXNGb3JtQWNjZXNzXCI+XHJcbiAgPGRpdiBjbGFzcz1cInRpbi1jZW50ZXJcIj5cclxuICAgIDxwPjxlbT5BY2Nlc3MgUmVzdHJpY3RlZDwvZW0+PC9wPlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbiJdfQ==
|