imm-element-ui 0.0.6 → 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/am/am.component.mjs +2 -2
- package/esm2022/lib/form/form-type/codemirror.type.mjs +43 -2
- package/esm2022/lib/grid/grid/grid.component.mjs +18 -4
- package/esm2022/lib/grid/grid-utils.mjs +9 -2
- package/esm2022/lib/service/userHistory.service.mjs +7 -3
- package/fesm2022/imm-element-ui.mjs +74 -8
- package/fesm2022/imm-element-ui.mjs.map +1 -1
- package/lib/form/form-type/codemirror.type.d.ts +1 -0
- package/lib/grid/grid/grid.component.d.ts +4 -1
- package/lib/search/pop-date/pop-date.component.d.ts +1 -1
- package/lib/service/themeConfig.service.d.ts +1 -1
- package/lib/service/userHistory.service.d.ts +1 -1
- package/package.json +1 -1
|
@@ -274,7 +274,7 @@ export class AmComponent {
|
|
|
274
274
|
}
|
|
275
275
|
web_searchmap(param) {
|
|
276
276
|
this.isLoading.set(true);
|
|
277
|
-
return this.http.post(apiPath + "
|
|
277
|
+
return this.http.post(apiPath + "searchMap", param)
|
|
278
278
|
.pipe(map((response) => {
|
|
279
279
|
this.searchPrm = { ...response };
|
|
280
280
|
console.log('upsey-----', this.upsertPrm);
|
|
@@ -499,4 +499,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
499
499
|
providers: [MessageService]
|
|
500
500
|
}]
|
|
501
501
|
}], ctorParameters: () => [] });
|
|
502
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLWVsZW1lbnQtdWkvc3JjL2xpYi9hbS9hbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9DLE9BQU8sS0FBSyxTQUFTLE1BQU0sWUFBWSxDQUFDO0FBR3hDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFvSXpELE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQTtBQVFsQixNQUFNLE9BQU8sV0FBVztJQXNDdEI7UUFyQ0EsUUFBUTtRQUNSLFVBQUssR0FBWSxLQUFLLENBQUM7UUFDdkIsT0FBTztRQUNQLE9BQUUsR0FBUyxDQUFDLENBQUE7UUFDWixNQUFNO1FBQ04sY0FBUyxHQUFTLEVBQUUsQ0FBQTtRQUNwQixNQUFNO1FBQ04sVUFBSyxHQUFRLEVBQUUsQ0FBQTtRQUNmLFFBQUcsR0FBUyxFQUFFLENBQUE7UUFDZCxJQUFJO1FBQ0osY0FBUyxHQUFjLEVBQUUsQ0FBQztRQUMxQixJQUFJO1FBQ0osa0JBQWEsR0FBZ0IsRUFBRSxDQUFDO1FBQ2hDLE1BQU07UUFDTixnQkFBVyxHQUFjLEVBQUUsQ0FBQztRQUM1QixRQUFRO1FBQ1IsY0FBUyxHQUFTLEVBQUMsT0FBTyxFQUFDLEVBQUUsRUFBQyxPQUFPLEVBQUMsRUFBRSxFQUFDLE9BQU8sRUFBQyxFQUFFLEVBQUMsR0FBRyxFQUFDLEVBQUUsRUFBQyxDQUFDO1FB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LElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBQ0QsaUJBQWlCO0lBQ2pCLFFBQVEsQ0FBQyxNQUFjO1FBQ3JCLFFBQU8sTUFBTSxFQUFDLENBQUM7WUFDYixLQUFLLFFBQVE7Z0JBQ1gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO2dCQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQTtnQkFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUNsQyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7b0JBQ3JCLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztvQkFDckIsQ0FBQyxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUE7Z0JBQ2hCLENBQUMsQ0FBQyxDQUFDO2dCQUNILE1BQU07WUFDUjtnQkFDRSxFQUFFLENBQUE7UUFDTixDQUFDO0lBQ0gsQ0FBQzsrR0ExZ0JVLFdBQVc7bUdBQVgsV0FBVyxxREFGWixDQUFDLGNBQWMsQ0FBQywwQkFEaEIsRUFBRTs7NEZBR0QsV0FBVztrQkFQdkIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsUUFBUTtvQkFDbEIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxFQUFFO29CQUNYLFFBQVEsRUFBRSxFQUFFO29CQUNaLFNBQVMsRUFBQyxDQUFDLGNBQWMsQ0FBQztpQkFDM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsaW5qZWN0LHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBmaW5hbGl6ZSwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCAqIGFzIEZpbGVTYXZlciBmcm9tICdmaWxlLXNhdmVyJztcclxuaW1wb3J0IHsgRm9ybU9wdGlvbnMgfSBmcm9tICcuLi9mb3JtL2Zvcm0vZm9ybS5jb21wb25lbnQnXHJcbmltcG9ydCB7IFNlYXJjaE9wdGlvbnMgfSBmcm9tICcuLi9zZWFyY2gvc2VhcmNoL3NlYXJjaC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHtUb2FzdH0gZnJvbSAncHJpbWVuZy90b2FzdCc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5leHBvcnQgaW50ZXJmYWNlIFBhcmFte1xyXG4gIGlkPzpudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVHJhY2VNZXNzYWdlIHtcclxuICBpZD86IG51bWJlcjtcclxuICBwaWQ/Om51bWJlcjsgIC8vIOihqOS4rWlkXHJcbiAgZnVuYz86c3RyaW5nO1xyXG4gIG9wZXJhdG9yPzpzdHJpbmc7XHJcbiAgY29udGVudD86c3RyaW5nOyAgLy8g5Li76KGo5Y+Y5pu05omA5pyJ5a2X5q615ou85o6l5LiA5Z2XXHJcbiAgc3ViQ29udGVudD86c3RyaW5nOyAvLyDlrZDooajlj5jmm7Tmi7zmjqXkuIDotbdcclxuICBjcmVhdGVkQXQ/OnN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEltcG9ydEV4Y2Vse1xyXG4gIG1vZGVsTmFtZT86IHN0cmluZztcclxuICBvcmdJZD86IG51bWJlcjtcclxuICBvcmdOYW1lPzpzdHJpbmc7XHJcbiAgb3JnSWRGZWlsZD86IHN0cmluZztcclxuICBvcmdOYW1lRmVpbGQ/OnN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVcHNlcnQge1xyXG4gIG1vZGVsTmFtZT86IHN0cmluZztcclxuICBhZGREYXRhPzogUmVjb3JkPHN0cmluZyxhbnk+O1xyXG4gIHVwZERhdGE/OiBSZWNvcmQ8c3RyaW5nLGFueT47XHJcbiAgc3Vic2VydD86IFN1YlVwc2VydFtdO1xyXG4gIGxvZ01vZGVsPzogc3RyaW5nO1xyXG4gIGxvZz86IFRyYWNlTWVzc2FnZTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTdWJVcHNlcnQge1xyXG4gIHN1Yk1vZGVsTmFtZT86IHN0cmluZztcclxuICBmaz86c3RyaW5nO1xyXG4gIHN1YkRhdGE/OiBSZWNvcmQ8c3RyaW5nLGFueT5bXVxyXG4gIG1hcHRtcD86IE1hcDxudW1iZXIsYW55PjtcclxuICBsb2d0bXA/OiBNYXA8c3RyaW5nLGFueT5cclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIERlYWx7XHJcbiAgbW9kZWxOYW1lPzogc3RyaW5nO1xyXG4gIGRhdGE/OmFueTtcclxufVxyXG4vLyDmm7TmlrDnibnlrprlrZfmrrVcclxuZXhwb3J0IGludGVyZmFjZSBXcml0ZXtcclxuICBtb2RlbE5hbWU/OnN0cmluZztcclxuICBkYXRhPzpSZWNvcmQ8c3RyaW5nLGFueT47XHJcbiAgbG9nTW9kZWw/OnN0cmluZztcclxuICBsb2c/OlRyYWNlTWVzc2FnZTtcclxuICB0cmFuc2FjdGlvbj86IGJvb2xlYW47XHJcbn1cclxuLy8g5Yig6Zmk5o6l5Y+j5aOw5piOXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVtb3Zle1xyXG4gIG1vZGVsTmFtZT86c3RyaW5nO1xyXG4gIGlkcz86bnVtYmVyW107XHJcbiAgZGF0YT86YW55O1xyXG4gIGxvZ01vZGVsPzpzdHJpbmc7XHJcbiAgbG9nPzpUcmFjZU1lc3NhZ2U7XHJcbiAgdHJhbnNhY3Rpb24/OiBib29sZWFuO1xyXG59XHJcbi8vIOiOt+WPluWNleadoeaVsOaNruivpuaDhVxyXG5leHBvcnQgaW50ZXJmYWNlIEdldHtcclxuICBtb2RlbE5hbWU/OnN0cmluZztcclxuICB1c2VyQ29kZT86IHN0cmluZztcclxuICBvcmdGaWVsZD86IHN0cmluZztcclxuICBpZD86bnVtYmVyO1xyXG4gIHByZWxvYWRzPzpzdHJpbmdbXTsgLy8g6IGU6KGo5p+l6K+i6KGo5ZCN56ew77yM6ZyA5a+55bqU5ZCO56uvc3RydWN0XHJcbiAgZml0ZXJQcmVsb2Fkcz86UHJlbG9hZFtdOyAvLyDlj6rog73liqDkuIDlsYIg57G75Ly8ICdtb2R1bGUgPScgbW9kdWxlXHJcbiAgZ2V0TG9nPzpib29sZWFuOyAvL+iOt+WPluaXpeW/l1xyXG4gIGRhdGE/OmFueTsgLy/lkI7nq6/ov5Tlm57nmoRyZXNwb25zZVxyXG4gIGNvbHVtbkZpbHRlcnM/OiBDb2x1bW5GaWx0ZXJbXTsgLy/ov4fmu6TnmoTliJdcclxuICBmb3JlaWduS2V5PzpzdHJpbmcgIC8v55u05o6l5o+S5YWl5a2Q6KGo6ZyA6KaB5Lyg6YCS5aSW6ZSu5a2X5q615Lul5Y+K5aSW6ZSu5YC8XHJcbiAgW3Byb3BOYW1lOiBzdHJpbmddOmFueVxyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJlbG9hZHtcclxuICBmZWlsZE5hbWU/OiBzdHJpbmc7XHJcbiAgZml0ZXJzPzpDb2x1bW5GaWx0ZXJbXTtcclxuICBzb3J0cz86U29ydFtdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uRmlsdGVyIHtcclxuICBjb2x1bW5GaWVsZD86c3RyaW5nO1xyXG4gIHR5cGU/OnN0cmluZztcclxuICBmaXRlcj86IGFueTtcclxuICBmcm9tPzpzdHJpbmcgfCBudW1iZXI7XHJcbiAgdG8/OnN0cmluZyB8IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTb3J0e1xyXG4gIGZpZWxkPzpzdHJpbmc7XHJcbiAgaXNBc2M/OmJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoe1xyXG4gIG1vZGVsTmFtZT86IHN0cmluZztcclxuICB1c2VyQ29kZT86IHN0cmluZztcclxuICBvcmdGaWVsZD86IHN0cmluZztcclxuICBjb3VudD86Ym9vbGVhbjsgLy/mmK/lkKbov5Tlm550b3RhbE51bSBcclxuICBwcmVsb2Fkcz86c3RyaW5nW107XHJcbiAgZml0ZXJQcmVsb2Fkcz86UHJlbG9hZFtdO1xyXG4gIG1vZGVsPzphbnk7IFxyXG4gIGRhdGE/OmFueTtcclxuICBjb2x1bW5GaWx0ZXJzPzogQ29sdW1uRmlsdGVyW107IC8v6L+H5ruk55qE5YiXXHJcbiAgc29ydHM/OiBTb3J0W107XHJcbiAgZ3JvdXBzPzogc3RyaW5nW107XHJcbiAgcmVhZD86c3RyaW5nW107ICAvL3JlYWQg5oyH5a6a5p+l6K+i54m55a6a5a2X5q61XHJcbiAgZnVuY3M/OlJlY29yZDxzdHJpbmcsc3RyaW5nPjsgLy/pgI/op4booajlkI7mnJ/opoHnlKhcclxuICBvZmZzZXQ/Om51bWJlcjsgXHJcbiAgbGltaXQ/Om51bWJlcjtcclxuICB0b3RhbE51bT86bnVtYmVyO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgVG9rZW5JbmZvIHtcclxuICB0b2tlbj86c3RyaW5nXHJcbiAgZXhwaXJlZD86IG51bWJlclxyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgYW1XZWJ7XHJcbiAgaWQ/OiBudW1iZXI7XHJcbiAgY29kZT86IHN0cmluZztcclxuICB0eXBlPzogc3RyaW5nO1xyXG4gIG5hbWU/OiBzdHJpbmc7XHJcbiAgYXBwSWQ/OiBudW1iZXI7XHJcbiAgY29udGVudD86IHN0cmluZztcclxuICBjcmVhdGVkQXQ/OiBzdHJpbmc7XHJcbiAgdXBkYXRlZEF0PzpzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBSZmQge1xyXG4gIG1vZGVsTmFtZT86IHN0cmluZztcclxuICBsYWJlbEZpZWxkPzogc3RyaW5nO1xyXG4gIHZhbHVlRmllbGQ/OiBzdHJpbmc7XHJcbiAgd2hlcmVGaWVsZD86IHN0cmluZztcclxuICB0eXBlPzogc3RyaW5nO1xyXG4gIGZpdGVyPzogYW55O1xyXG4gIGRhdGE/OiBhbnk7XHJcbn1cclxuY29uc3QgYXBpUGF0aCA9IFwiXCJcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtYW0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW10sXHJcbiAgdGVtcGxhdGU6ICcnLFxyXG4gIHByb3ZpZGVyczpbTWVzc2FnZVNlcnZpY2VdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbUNvbXBvbmVudCB7XHJcbiAgLy/mmK/lkKbmj5DkuqTml6Xlv5dcclxuICBpc0xvZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8v5Li75pWw5o2uaWRcclxuICBpZDogbnVtYmVyPTBcclxuICAvL+S4u+ihqOaooeWei1xyXG4gIG1vZGVsTmFtZTogc3RyaW5nPScnXHJcbiAgLy9JROWPguaVsFxyXG4gIHBhcmFtOiBQYXJhbT17fVxyXG4gIGZpZDogc3RyaW5nPScnXHJcbiAgLy/lr7zlhaVcclxuICBpbXBvcnRQcm06IEltcG9ydEV4Y2VsPXt9O1xyXG4gIC8v5pCc57SgXHJcbiAgc2VhcmNoT3B0aW9uczogU2VhcmNoT3B0aW9ucz17fTtcclxuICAvL2Zvcm1cclxuICBmb3JtT3B0aW9uczogRm9ybU9wdGlvbnM9e307XHJcbiAgLy/liJvlu7rmiJbogIXmm7TmlrBcclxuICB1cHNlcnRQcm06IFVwc2VydD17dXBkRGF0YTp7fSxhZGREYXRhOnt9LHN1YnNlcnQ6W10sbG9nOnt9fTtcclxuICAvL+WkhOeQhlxyXG4gIGRlYWxQcm06IERlYWw9e307XHJcbiAgLy9tYXDmm7TmlrBcclxuICB3cml0ZVBybTogV3JpdGU9e307XHJcbiAgLy/liKDpmaRcclxuICByZW1vdmVQcm06IFJlbW92ZT17fTtcclxuICAvL+iOt+WPluS4gOadoeaVsOaNrlxyXG4gIGdldFBybTogR2V0PXtkYXRhOnt9fTtcclxuICAvL+afpeivouadoeS7tlxyXG4gIGZpbHRlcjogQ29sdW1uRmlsdGVyPXt9O1xyXG4gIC8v5p+l6K+i5YiX6KGo5pWw5o2uXHJcbiAgc2VhcmNoUHJtOiBTZWFyY2g9e307XHJcbiAgZXhwb3J0UHJtOiBTZWFyY2g9e307XHJcbiAgdGFtcGxhdGU6IERlYWw9e31cclxuICAvLyDooajnpLrmmK/lkKbmraPlnKjliqDovb3nlKjmiLfmlbDmja7nmoRTaWduYWzvvIzliJ3lp4vlgLzkuLogZmFsc2VcclxuICBpc0xvYWRpbmcgPSBzaWduYWwoZmFsc2UpO1xyXG4gIGh0dHA6IEh0dHBDbGllbnQgPSBpbmplY3QoSHR0cENsaWVudClcclxuICBtZXNzYWdlU2VydmljZSA6TWVzc2FnZVNlcnZpY2UgPSBpbmplY3QoTWVzc2FnZVNlcnZpY2UpXHJcbiAgcm91dGUgOkFjdGl2YXRlZFJvdXRlID1pbmplY3QoQWN0aXZhdGVkUm91dGUpXHJcbiAgcm91dGVyID0gaW5qZWN0KFJvdXRlcilcclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIHJmZChwcm06IFJmZCk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGgrXCJSRkRcIixwcm0sKVxyXG4gICAgLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT57XHJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICB9KSxcclxuICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIOaXoOiuuuivt+axguaIkOWKn+S4juWQpu+8jOmDveWwhuWKoOi9veS4reeKtuaAgeiuvue9ruS4uiBmYWxzZVxyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICB3ZWJnZXQocGFyYW06YW1XZWIpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoK1wid2ViZ2V0XCIscGFyYW0sKVxyXG4gICAgLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT57XHJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICB9KSxcclxuICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIOaXoOiuuuivt+axguaIkOWKn+S4juWQpu+8jOmDveWwhuWKoOi9veS4reeKtuaAgeiuvue9ruS4uiBmYWxzZVxyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgd2Vic2F2ZShwYXJhbTphbVdlYik6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGgrXCJ3ZWJzYXZlXCIscGFyYW0sKVxyXG4gICAgLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT57XHJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICB9KSxcclxuICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIOaXoOiuuuivt+axguaIkOWKn+S4juWQpu+8jOmDveWwhuWKoOi9veS4reeKtuaAgeiuvue9ruS4uiBmYWxzZVxyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgd2ViZGVsKHBhcmFtOmFtV2ViKTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCtcIndlYmRlbFwiLHBhcmFtLClcclxuICAgIC5waXBlKFxyXG4gICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+e1xyXG4gICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgfSksXHJcbiAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyDml6Dorrror7fmsYLmiJDlip/kuI7lkKbvvIzpg73lsIbliqDovb3kuK3nirbmgIHorr7nva7kuLogZmFsc2VcclxuICAgICAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwc2VydChwcm0/OmFueSxjYj86RnVuY3Rpb24pe1xyXG4gICAgaWYocHJtKXtcclxuICAgICAgdGhpcy53ZWJfdXBzZXJ0KHBybSkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgY2IgJiYgY2IocmVzKVxyXG5cdFx0ICAgIHRoaXMucmVzZXRQcm0oJ3Vwc2VydCcpXHJcbiAgICAgIH0pO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIC8vIGNvbnN0IHBtOiBVcHNlcnQgPSB0aGlzLnVwc2VydHMoKVxyXG4gICAgICAvLyBjb25zb2xlLmxvZygnMT09PT0nLHBtKVxyXG4gICAgICB0aGlzLndlYl91cHNlcnQodGhpcy51cHNlcnRQcm0pLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgIGNiICYmIGNiKHJlcylcclxuXHRcdCAgICB0aGlzLnJlc2V0UHJtKCd1cHNlcnQnKVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgLy/lhajpg6jliJvlu7rmiJbmm7TmlrDvvIzmoLnmja5JROWIpOaWrVxyXG4gIHdlYl91cHNlcnQocGFyYW06VXBzZXJ0KTpPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgdGhpcy5pc0xvYWRpbmcuc2V0KHRydWUpO1xyXG4gICAgaWYoIXBhcmFtLm1vZGVsTmFtZSl7XHJcbiAgICAgIHBhcmFtID0ge21vZGVsTmFtZTogdGhpcy5tb2RlbE5hbWUsLi4ucGFyYW19XHJcbiAgICB9XHJcbiAgICBsZXQgYWRkRGF0YTogYW55ID0gcGFyYW0uYWRkRGF0YVxyXG4gICAgaWYoT2JqZWN0LmtleXMoYWRkRGF0YSkubGVuZ3RoPT0wKXtcclxuICAgICAgZGVsZXRlIHBhcmFtLmFkZERhdGFcclxuICAgIH1cclxuICAgIGxldCB1cGREYXRhOiBhbnkgPXBhcmFtLnVwZERhdGFcclxuICAgIGlmKE9iamVjdC5rZXlzKHVwZERhdGEpLmxlbmd0aD09MCl7XHJcbiAgICAgIGRlbGV0ZSBwYXJhbS51cGREYXRhXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBwYXJhbS51cGREYXRhIVsnaWQnXSA9IHRoaXMuaWRcclxuICAgICAgcGFyYW0ubG9nIS5waWQgPSB0aGlzLmlkXHJcbiAgICB9XHJcbiAgICBpZighcGFyYW0/LmFkZERhdGEgJiYgIXBhcmFtLnVwZERhdGEpe1xyXG4gICAgICBwYXJhbSA9IHt1cGREYXRhOntpZDp0aGlzLmlkfSwuLi5wYXJhbX1cclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKCd0aGlzLmlzTG9nLS0tLScsdGhpcy5pc0xvZylcclxuICAgIGlmKCF0aGlzLmlzTG9nKXtcclxuICAgICAgZGVsZXRlIHBhcmFtLmxvZ1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIGxldCBsZzpzdHJpbmc9JydcclxuICAgICAgcGFyYW0uc3Vic2VydD8uZm9yRWFjaCh2PT57XHJcbiAgICAgICAgdi5sb2d0bXA/LmZvckVhY2goKHYsayk9PntcclxuICAgICAgICAgIGlmKHYuaWQ9PT0wKXtcclxuICAgICAgICAgICAgbGcgKz0n5paw5bu677yaIC0+ICcrdi5uZXdWYWx1ZSsnOydcclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICBsZyArPSAnWycrdi5pZCsnLScrdi5sYWJlbCsnXSAnICsgKHYub2xkVmFsdWUgfHwgJycpICsnIC0+ICcrKHYubmV3VmFsdWUgfHwgJycpKyc7J1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0pXHJcbiAgICAgIHBhcmFtPXsuLi5wYXJhbSxsb2c6ey4uLnBhcmFtLmxvZyxzdWJDb250ZW50OmxnfX1cclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKCdwYXJhbT09PT0nLHBhcmFtKVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGgrXCJ1cHNlcnRcIixwYXJhbSwpXHJcbiAgICAucGlwZShcclxuICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PntcclxuICAgICAgICBpZiAocGFyYW0ubG9nKXtcclxuICAgICAgICAgIGRlbGV0ZSBwYXJhbS5sb2c7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgfSksXHJcbiAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyDml6Dorrror7fmsYLmiJDlip/kuI7lkKbvvIzpg73lsIbliqDovb3kuK3nirbmgIHorr7nva7kuLogZmFsc2VcclxuICAgICAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgLy/oh6rlpITnkIbpgLvovpFcclxuICBkZWFsKHBybT86RGVhbCl7XHJcbiAgICBpZiAocHJtKSB7XHJcbiAgICAgIHRoaXMud2ViX2RlYWwocHJtKS5zdWJzY3JpYmUoKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLndlYl9kZWFsKHRoaXMuZGVhbFBybSkuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHdlYl9kZWFsKHBhcmFtOkRlYWwpOk9ic2VydmFibGU8YW55PiB7XHJcbiAgICB0aGlzLmlzTG9hZGluZy5zZXQodHJ1ZSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCtcImRlYWxcIixwYXJhbSlcclxuICAgIC5waXBlKFxyXG4gICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+e1xyXG4gICAgICAgIHRoaXMuZGVhbFBybT17ZGF0YTogcmVzcG9uc2UsLi4udGhpcy5kZWFsUHJtfVxyXG4gICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgfSksXHJcbiAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyDml6Dorrror7fmsYLmiJDlip/kuI7lkKbvvIzpg73lsIbliqDovb3kuK3nirbmgIHorr7nva7kuLogZmFsc2VcclxuICAgICAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbi8v5Lyg5YWlbWFw77yM5qC55o2uSUTvvIzmm7TmlrBtYXDmlbDmja5cclxuICB3cml0ZShwcm0/OldyaXRlKSB7XHJcbiAgICBpZihwcm0pe1xyXG4gICAgICB0aGlzLndlYl93cml0ZShwcm0pLnN1YnNjcmliZSgpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMud2ViX3dyaXRlKHRoaXMud3JpdGVQcm0pLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICB3ZWJfd3JpdGUocGFyYW06V3JpdGUpOk9ic2VydmFibGU8YW55PiB7XHJcbiAgICB0aGlzLmlzTG9hZGluZy5zZXQodHJ1ZSk7XHJcbiAgICBpZighcGFyYW0ubW9kZWxOYW1lKXtcclxuICAgICAgcGFyYW0gPSB7bW9kZWxOYW1lOiB0aGlzLm1vZGVsTmFtZSwuLi5wYXJhbX1cclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoK1wid3JpdGVcIixwYXJhbSlcclxuICAgIC5waXBlKFxyXG4gICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+e1xyXG4gICAgICAgIGlmIChwYXJhbS5sb2cpe1xyXG4gICAgICAgICAgZGVsZXRlIHBhcmFtLmxvZztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICB9KSxcclxuICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIOaXoOiuuuivt+axguaIkOWKn+S4juWQpu+8jOmDveWwhuWKoOi9veS4reeKtuaAgeiuvue9ruS4uiBmYWxzZVxyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuLy/moLnmja5JROWIoOmZpFxyXG4gIHJlbW92ZShwcm0/OlJlbW92ZSl7XHJcbiAgICBpZihwcm0pe1xyXG4gICAgICB0aGlzLndlYl9yZW1vdmUocHJtKS5zdWJzY3JpYmUoKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLndlYl9yZW1vdmUodGhpcy5yZW1vdmVQcm0pLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICB3ZWJfcmVtb3ZlKHBhcmFtOlJlbW92ZSk6T2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHRoaXMuaXNMb2FkaW5nLnNldCh0cnVlKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoK1wicmVtb3ZlXCIscGFyYW0sKVxyXG4gICAgLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT57XHJcbiAgICAgICAgaWYgKHBhcmFtLmxvZyl7XHJcbiAgICAgICAgICBkZWxldGUgcGFyYW0ubG9nO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgIH0pLFxyXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8g5peg6K666K+35rGC5oiQ5Yqf5LiO5ZCm77yM6YO95bCG5Yqg6L295Lit54q25oCB6K6+572u5Li6IGZhbHNlXHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KGZhbHNlKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4vL+agueaNrklE6I635Y+W5LiA5p2h5pWw5o2uXHJcbiAgZ2V0KHBybT86R2V0KXtcclxuICAgIGlmKHBybSl7XHJcbiAgICAgIHRoaXMud2ViX2dldChwcm0pLnN1YnNjcmliZSgpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMud2ViX2dldCh0aGlzLmdldFBybSkuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHdlYl9nZXQocGFyYW06R2V0KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICBpZighcGFyYW0uaGFzT3duUHJvcGVydHkoJ21vZGVsTmFtZScpKXtcclxuICAgICAgcGFyYW0ubW9kZWxOYW1lPXRoaXMubW9kZWxOYW1lO1xyXG4gICAgfSBcclxuICAgIHRoaXMuaXNMb2FkaW5nLnNldCh0cnVlKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoK1wiZ2V0XCIscGFyYW0pXHJcbiAgICAucGlwZShcclxuICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PntcclxuICAgICAgICB0aGlzLmdldFBybS5kYXRhID0gcmVzcG9uc2VcclxuICAgICAgICBpZihyZXNwb25zZS5pZCA9PT0gMCAmJiBwYXJhbS5oYXNPd25Qcm9wZXJ0eSgnZm9yZWlnbktleScpKXtcclxuICAgICAgICAgIHRoaXMudXBzZXJ0UHJtLmFkZERhdGEhW3BhcmFtLmZvcmVpZ25LZXkhXSA9IHBhcmFtW3BhcmFtLmZvcmVpZ25LZXkhXVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmlkPXJlc3BvbnNlPy5pZFxyXG4gICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgfSksXHJcbiAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyDml6Dorrror7fmsYLmiJDlip/kuI7lkKbvvIzpg73lsIbliqDovb3kuK3nirbmgIHorr7nva7kuLogZmFsc2VcclxuICAgICAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbi8v6I635Y+W5aSa5p2h5pWw5o2u77yM5qC55o2u5Lyg5YWl55qE5p2h5Lu26Ieq5Yqo57uE57uHc3FsXHJcbiAgc2VhcmNoKHBybT86U2VhcmNoKXtcclxuICAgIGlmKHBybSl7XHJcbiAgICAgIHRoaXMud2ViX3NlYXJjaChwcm0pLnN1YnNjcmliZSgpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMud2ViX3NlYXJjaCh0aGlzLnNlYXJjaFBybSkuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHdlYl9zZWFyY2gocGFyYW06U2VhcmNoKTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICB0aGlzLmlzTG9hZGluZy5zZXQodHJ1ZSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCtcInNlYXJjaFwiLHBhcmFtKVxyXG4gICAgLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT57XHJcbiAgICAgICAgdGhpcy5zZWFyY2hQcm0gPXsuLi5yZXNwb25zZX1cclxuICAgICAgICBjb25zb2xlLmxvZygndXBzZXktLS0tLScsdGhpcy51cHNlcnRQcm0pXHJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICB9KSxcclxuICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIOaXoOiuuuivt+axguaIkOWKn+S4juWQpu+8jOmDveWwhuWKoOi9veS4reeKtuaAgeiuvue9ruS4uiBmYWxzZVxyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICBzZWFyY2htYXAocHJtPzpTZWFyY2gpe1xyXG4gICAgaWYocHJtKXtcclxuICAgICAgdGhpcy53ZWJfc2VhcmNoKHBybSkuc3Vic2NyaWJlKCk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy53ZWJfc2VhcmNoKHRoaXMuc2VhcmNoUHJtKS5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcbiAgd2ViX3NlYXJjaG1hcChwYXJhbTpTZWFyY2gpOk9ic2VydmFibGU8YW55PntcclxuICAgIHRoaXMuaXNMb2FkaW5nLnNldCh0cnVlKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoK1wic2VhcmNoXCIscGFyYW0pXHJcbiAgICAucGlwZShcclxuICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PntcclxuICAgICAgICB0aGlzLnNlYXJjaFBybSA9ey4uLnJlc3BvbnNlfVxyXG4gICAgICAgIGNvbnNvbGUubG9nKCd1cHNleS0tLS0tJyx0aGlzLnVwc2VydFBybSlcclxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgIH0pLFxyXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8g5peg6K666K+35rGC5oiQ5Yqf5LiO5ZCm77yM6YO95bCG5Yqg6L295Lit54q25oCB6K6+572u5Li6IGZhbHNlXHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KGZhbHNlKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIC8v6I635Y+W5aSa5p2h5pWw5o2u77yM5qC55o2u5Lyg5YWl55qE5p2h5Lu26Ieq5Yqo57uE57uHc3FsXHJcbiAgc2VhcmNoQ291bnQocHJtPzpTZWFyY2gpe1xyXG4gICAgaWYocHJtKXtcclxuICAgICAgdGhpcy53ZWJfc2VhcmNoQ291bnQocHJtKS5zdWJzY3JpYmUoKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLndlYl9zZWFyY2hDb3VudCh0aGlzLnNlYXJjaFBybSkuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHdlYl9zZWFyY2hDb3VudChwYXJhbTpTZWFyY2gpOk9ic2VydmFibGU8YW55PntcclxuICAgIHRoaXMuaXNMb2FkaW5nLnNldCh0cnVlKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoK1wic2VhcmNoQ291bnRcIixwYXJhbSlcclxuICAgIC5waXBlKFxyXG4gICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+e1xyXG4gICAgICAgIHRoaXMuc2VhcmNoUHJtID17Li4ucmVzcG9uc2V9XHJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICB9KSxcclxuICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIOaXoOiuuuivt+axguaIkOWKn+S4juWQpu+8jOmDveWwhuWKoOi9veS4reeKtuaAgeiuvue9ruS4uiBmYWxzZVxyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuIC8vZXhjZWzlr7zlhaVcclxuICAvLyBpbXBvcnQocGFyYW06IEltcG9ydEV4Y2VsKTpPYnNlcnZhYmxlPGFueT4ge1xyXG4gIC8vICAgdGhpcy5pc0xvYWRpbmcuc2V0KHRydWUpO1xyXG4gIC8vICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFwiYW0vcmVtb3ZlXCIscGFyYW0saHR0cE9wdGlvbnMpXHJcbiAgLy8gICAucGlwZShcclxuICAvLyAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PntcclxuICAvLyAgICAgICB0aGlzLm1lc3NhZ2Uuc2V0KHJlc3BvbnNlKTtcclxuICAvLyAgICAgICB0aGlzLmlzU3VjY2Vzcy5zZXQodHJ1ZSk7XHJcbiAgLy8gICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gIC8vICAgICB9KSxcclxuICAvLyAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAvLyAgICAgICAvLyDoi6Xor7fmsYLlh7rplJnvvIzorr7nva7or7fmsYLmiJDlip/nirbmgIHkuLogZmFsc2XvvIzlubblsIbplJnor6/ph43mlrDmipvlh7pcclxuICAvLyAgICAgICB0aGlzLmlzU3VjY2Vzcy5zZXQoZmFsc2UpO1xyXG4gIC8vICAgICAgIHRoaXMubWVzc2FnZS5zZXQoZXJyb3IpO1xyXG4gIC8vICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcclxuICAvLyAgICAgfSksXHJcbiAgLy8gICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAvLyAgICAgICAvLyDml6Dorrror7fmsYLmiJDlip/kuI7lkKbvvIzpg73lsIbliqDovb3kuK3nirbmgIHorr7nva7kuLogZmFsc2VcclxuICAvLyAgICAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xyXG4gIC8vICAgICB9KVxyXG4gIC8vICAgKTtcclxuICAvLyB9XHJcbiAgLy8vL2V4Y2VsIOWvvOWHulxyXG4gIGV4cG9ydChwcm0/OlNlYXJjaCl7XHJcbiAgICBpZihwcm0pe1xyXG4gICAgICB0aGlzLndlYl9leHBvcnQocHJtKS5zdWJzY3JpYmUoKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLndlYl9leHBvcnQodGhpcy5leHBvcnRQcm0pLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICB3ZWJfZXhwb3J0KHBhcmFtOiBTZWFyY2gpOk9ic2VydmFibGU8YW55PntcclxuICAgIGlmKCFwYXJhbS5tb2RlbE5hbWUpe1xyXG4gICAgICBwYXJhbSA9IHttb2RlbE5hbWU6IHRoaXMubW9kZWxOYW1lLC4uLnBhcmFtfVxyXG4gICAgfVxyXG4gICAgdGhpcy5pc0xvYWRpbmcuc2V0KHRydWUpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGgrXCJleHBvcnRcIixwYXJhbSx7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIH0pXHJcbiAgICAucGlwZShcclxuICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PntcclxuICAgICAgICBjb25zdCBkYXRhOiBCbG9iID0gbmV3IEJsb2IoW3Jlc3BvbnNlXSwgeyB0eXBlOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQ7IGNoYXJzZXQ9VVRGLTgnIH0pO1xyXG4gICAgICAgIGNvbnN0IGZpbGVOYW1lID0gcGFyYW0ubW9kZWxOYW1lKycueGxzeCc7XHJcbiAgICAgICAgRmlsZVNhdmVyLnNhdmVBcyhkYXRhLCBmaWxlTmFtZSk7XHJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICB9KSxcclxuICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIOaXoOiuuuivt+axguaIkOWKn+S4juWQpu+8jOmDveWwhuWKoOi9veS4reeKtuaAgeiuvue9ruS4uiBmYWxzZVxyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICAvL+S6uuW3peWkhOeQhuWvvOWFpVxyXG4gIGRlYWxFeHBvcnQocHJtPzpTZWFyY2gpe1xyXG4gICAgaWYocHJtKXtcclxuICAgICAgdGhpcy53ZWJfZGVhbF9leHBvcnQocHJtKS5zdWJzY3JpYmUoKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLndlYl9kZWFsX2V4cG9ydCh0aGlzLmV4cG9ydFBybSkuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHdlYl9kZWFsX2V4cG9ydChwYXJhbTogU2VhcmNoKTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICBpZighcGFyYW0ubW9kZWxOYW1lKXtcclxuICAgICAgcGFyYW0gPSB7bW9kZWxOYW1lOiB0aGlzLm1vZGVsTmFtZSwuLi5wYXJhbX1cclxuICAgIH1cclxuICAgIHRoaXMuaXNMb2FkaW5nLnNldCh0cnVlKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoK1wiZGVhbEV4cG9ydFwiLHBhcmFtLHsgcmVzcG9uc2VUeXBlOiAnYmxvYicgfSlcclxuICAgIC5waXBlKFxyXG4gICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+e1xyXG4gICAgICAgIGNvbnN0IGRhdGE6IEJsb2IgPSBuZXcgQmxvYihbcmVzcG9uc2VdLCB7IHR5cGU6ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldDsgY2hhcnNldD1VVEYtOCcgfSk7XHJcbiAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBwYXJhbS5tb2RlbE5hbWUrJy54bHN4JztcclxuICAgICAgICBGaWxlU2F2ZXIuc2F2ZUFzKGRhdGEsIGZpbGVOYW1lKTtcclxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgIH0pLFxyXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8g5peg6K666K+35rGC5oiQ5Yqf5LiO5ZCm77yM6YO95bCG5Yqg6L295Lit54q25oCB6K6+572u5Li6IGZhbHNlXHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KGZhbHNlKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIC8v5LiL6L295a+85YWl55qE5qih5p2/XHJcbiAgZG93bmxvYWRUZW1wbGF0ZShwcm0/OkRlYWwpe1xyXG4gICAgaWYocHJtKXtcclxuICAgICAgdGhpcy53ZWJfZG93bmxvYWRUZW1wbGF0ZShwcm0pLnN1YnNjcmliZSgpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMud2ViX2Rvd25sb2FkVGVtcGxhdGUodGhpcy50YW1wbGF0ZSkuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHdlYl9kb3dubG9hZFRlbXBsYXRlKHBhcmFtOiBEZWFsKTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICB0aGlzLmlzTG9hZGluZy5zZXQodHJ1ZSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCtcImRvd25sb2FkXCIscGFyYW0seyByZXNwb25zZVR5cGU6ICdibG9iJyB9KVxyXG4gICAgLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT57XHJcbiAgICAgICAgY29uc3QgZGF0YTogQmxvYiA9IG5ldyBCbG9iKFtyZXNwb25zZV0sIHsgdHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0OyBjaGFyc2V0PVVURi04JyB9KTtcclxuICAgICAgICBjb25zdCBmaWxlTmFtZSA9IHBhcmFtLm1vZGVsTmFtZSsn5qih5p2/Lnhsc3gnO1xyXG4gICAgICAgIEZpbGVTYXZlci5zYXZlQXMoZGF0YSwgZmlsZU5hbWUpO1xyXG4gICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgfSksXHJcbiAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyDml6Dorrror7fmsYLmiJDlip/kuI7lkKbvvIzpg73lsIbliqDovb3kuK3nirbmgIHorr7nva7kuLogZmFsc2VcclxuICAgICAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgLy/liKDpmaTlm77niYdcclxuICBpbWFnZURlbGV0ZShmaWQ/OnN0cmluZyl7XHJcbiAgICBpZihmaWQpe1xyXG4gICAgICB0aGlzLndlYl9pbWFnZURlbGV0ZShmaWQpLnN1YnNjcmliZSgpO1xyXG4gICAgfWVsc2UgaWYgKHRoaXMuZmlkLmxlbmd0aD4wKXtcclxuICAgICAgdGhpcy53ZWJfaW1hZ2VEZWxldGUodGhpcy5maWQpLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICB3ZWJfaW1hZ2VEZWxldGUoZmlkOnN0cmluZyk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgdGhpcy5pc0xvYWRpbmcuc2V0KHRydWUpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGgrXCJpbWFnZURlbGV0ZVwiLGZpZClcclxuICAgIC5waXBlKFxyXG4gICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+e1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtzZXZlcml0eTogJ3N1Y2Nlc3MnLHN1bW1hcnk6ICdTdWNjZXNzJyxkZXRhaWw6IHJlc3BvbnNlfSlcclxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgIH0pLFxyXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8g5peg6K666K+35rGC5oiQ5Yqf5LiO5ZCm77yM6YO95bCG5Yqg6L295Lit54q25oCB6K6+572u5Li6IGZhbHNlXHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KGZhbHNlKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gICAgLy/liKDpmaTlm77niYdcclxuICBmaWxlckRlbGV0ZShmaWQ/OnN0cmluZyl7XHJcbiAgICAgIGlmKGZpZCl7XHJcbiAgICAgICAgdGhpcy53ZWJfZmlsZXJEZWxldGUoZmlkKS5zdWJzY3JpYmUoKTtcclxuICAgICAgfWVsc2UgaWYgKHRoaXMuZmlkLmxlbmd0aD4wKXtcclxuICAgICAgICB0aGlzLndlYl9maWxlckRlbGV0ZSh0aGlzLmZpZCkuc3Vic2NyaWJlKCk7XHJcbiAgICAgIH1cclxuICB9XHJcbiAgd2ViX2ZpbGVyRGVsZXRlKGZpZDpzdHJpbmcpOk9ic2VydmFibGU8YW55PntcclxuICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KHRydWUpO1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCtcImltYWdlRGVsZXRlXCIsZmlkKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+e1xyXG4gICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe3NldmVyaXR5OiAnc3VjY2Vzcycsc3VtbWFyeTogJ1N1Y2Nlc3MnLGRldGFpbDogcmVzcG9uc2V9KVxyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAgIC8vIOaXoOiuuuivt+axguaIkOWKn+S4juWQpu+8jOmDveWwhuWKoOi9veS4reeKtuaAgeiuvue9ruS4uiBmYWxzZVxyXG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KGZhbHNlKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIC8v5Yi35pawdG9rZW5cclxuICByZWZyZXNoVG9rZW4ocGFyYW06VG9rZW5JbmZvKTpPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGgrXCJyZWZyZXNoVG9rZW5cIixwYXJhbSlcclxuICAgIC5waXBlKFxyXG4gICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+e1xyXG4gICAgICAgIHRoaXMuZGVhbFBybT17ZGF0YTogcmVzcG9uc2UsLi4udGhpcy5kZWFsUHJtfVxyXG4gICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgfSksXHJcbiAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyDml6Dorrror7fmsYLmiJDlip/kuI7lkKbvvIzpg73lsIbliqDovb3kuK3nirbmgIHorr7nva7kuLogZmFsc2VcclxuICAgICAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgLy/liJvlu7rooahcclxuICBjcmVhdGVUYWJsZShwcm0/OlBhcmFtKXtcclxuICAgIGlmKHBybSl7XHJcbiAgICAgIHRoaXMud2ViX2NyZWF0ZVRhYmxlKHBybSkuc3Vic2NyaWJlKCk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy53ZWJfY3JlYXRlVGFibGUodGhpcy5wYXJhbSkuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHdlYl9jcmVhdGVUYWJsZShwYXJhbTpQYXJhbSk6T2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHRoaXMuaXNMb2FkaW5nLnNldCh0cnVlKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoK1wiY3JlYXRlVGFibGVcIixwYXJhbSlcclxuICAgIC5waXBlKFxyXG4gICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+e1xyXG4gICAgICAgIC8vIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtzZXZlcml0eTogJ3N1Y2Nlc3MnLHN1bW1hcnk6ICdTdWNjZXNzJyxkZXRhaWw6IHJlc3BvbnNlfSlcclxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgIH0pLFxyXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8g5peg6K666K+35rGC5oiQ5Yqf5LiO5ZCm77yM6YO95bCG5Yqg6L295Lit54q25oCB6K6+572u5Li6IGZhbHNlXHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KGZhbHNlKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIC8vIOaaguaXoOehruWumuaYr+WQpumHjee9ruWFtuS7luWFrOWFseWPmOmHj1xyXG4gIHJlc2V0UHJtKHNlYXJjaD86c3RyaW5nKXtcclxuICAgIHN3aXRjaChzZWFyY2gpe1xyXG4gICAgICBjYXNlICd1cHNlcnQnOlxyXG4gICAgICAgIHRoaXMudXBzZXJ0UHJtLmFkZERhdGEgPSB7fTtcclxuICAgICAgICB0aGlzLnVwc2VydFBybS51cGREYXRhID0ge307XHJcbiAgICAgICAgdGhpcy51cHNlcnRQcm0ubG9nID0ge31cclxuICAgICAgICB0aGlzLnVwc2VydFBybS5zdWJzZXJ0Py5mb3JFYWNoKHYgPT4ge1xyXG4gICAgICAgICAgdi5sb2d0bXAgPSBuZXcgTWFwKCk7XHJcbiAgICAgICAgICB2Lm1hcHRtcCA9IG5ldyBNYXAoKTtcclxuICAgICAgICAgIHYuc3ViRGF0YSA9IFtdXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6IFxyXG4gICAgICAgICcnICBcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
502
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLWVsZW1lbnQtdWkvc3JjL2xpYi9hbS9hbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9DLE9BQU8sS0FBSyxTQUFTLE1BQU0sWUFBWSxDQUFDO0FBR3hDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFvSXpELE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQTtBQVFsQixNQUFNLE9BQU8sV0FBVztJQXNDdEI7UUFyQ0EsUUFBUTtRQUNSLFVBQUssR0FBWSxLQUFLLENBQUM7UUFDdkIsT0FBTztRQUNQLE9BQUUsR0FBUyxDQUFDLENBQUE7UUFDWixNQUFNO1FBQ04sY0FBUyxHQUFTLEVBQUUsQ0FBQTtRQUNwQixNQUFNO1FBQ04sVUFBSyxHQUFRLEVBQUUsQ0FBQTtRQUNmLFFBQUcsR0FBUyxFQUFFLENBQUE7UUFDZCxJQUFJO1FBQ0osY0FBUyxHQUFjLEVBQUUsQ0FBQztRQUMxQixJQUFJO1FBQ0osa0JBQWEsR0FBZ0IsRUFBRSxDQUFDO1FBQ2hDLE1BQU07UUFDTixnQkFBVyxHQUFjLEVBQUUsQ0FBQztRQUM1QixRQUFRO1FBQ1IsY0FBUyxHQUFTLEVBQUMsT0FBTyxFQUFDLEVBQUUsRUFBQyxPQUFPLEVBQUMsRUFBRSxFQUFDLE9BQU8sRUFBQyxFQUFFLEVBQUMsR0FBRyxFQUFDLEVBQUUsRUFBQyxDQUFDO1FB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LElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBQ0QsaUJBQWlCO0lBQ2pCLFFBQVEsQ0FBQyxNQUFjO1FBQ3JCLFFBQU8sTUFBTSxFQUFDLENBQUM7WUFDYixLQUFLLFFBQVE7Z0JBQ1gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO2dCQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQTtnQkFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUNsQyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7b0JBQ3JCLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztvQkFDckIsQ0FBQyxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUE7Z0JBQ2hCLENBQUMsQ0FBQyxDQUFDO2dCQUNILE1BQU07WUFDUjtnQkFDRSxFQUFFLENBQUE7UUFDTixDQUFDO0lBQ0gsQ0FBQzsrR0ExZ0JVLFdBQVc7bUdBQVgsV0FBVyxxREFGWixDQUFDLGNBQWMsQ0FBQywwQkFEaEIsRUFBRTs7NEZBR0QsV0FBVztrQkFQdkIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsUUFBUTtvQkFDbEIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxFQUFFO29CQUNYLFFBQVEsRUFBRSxFQUFFO29CQUNaLFNBQVMsRUFBQyxDQUFDLGNBQWMsQ0FBQztpQkFDM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsaW5qZWN0LHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBmaW5hbGl6ZSwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCAqIGFzIEZpbGVTYXZlciBmcm9tICdmaWxlLXNhdmVyJztcclxuaW1wb3J0IHsgRm9ybU9wdGlvbnMgfSBmcm9tICcuLi9mb3JtL2Zvcm0vZm9ybS5jb21wb25lbnQnXHJcbmltcG9ydCB7IFNlYXJjaE9wdGlvbnMgfSBmcm9tICcuLi9zZWFyY2gvc2VhcmNoL3NlYXJjaC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHtUb2FzdH0gZnJvbSAncHJpbWVuZy90b2FzdCc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5leHBvcnQgaW50ZXJmYWNlIFBhcmFte1xyXG4gIGlkPzpudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVHJhY2VNZXNzYWdlIHtcclxuICBpZD86IG51bWJlcjtcclxuICBwaWQ/Om51bWJlcjsgIC8vIOihqOS4rWlkXHJcbiAgZnVuYz86c3RyaW5nO1xyXG4gIG9wZXJhdG9yPzpzdHJpbmc7XHJcbiAgY29udGVudD86c3RyaW5nOyAgLy8g5Li76KGo5Y+Y5pu05omA5pyJ5a2X5q615ou85o6l5LiA5Z2XXHJcbiAgc3ViQ29udGVudD86c3RyaW5nOyAvLyDlrZDooajlj5jmm7Tmi7zmjqXkuIDotbdcclxuICBjcmVhdGVkQXQ/OnN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEltcG9ydEV4Y2Vse1xyXG4gIG1vZGVsTmFtZT86IHN0cmluZztcclxuICBvcmdJZD86IG51bWJlcjtcclxuICBvcmdOYW1lPzpzdHJpbmc7XHJcbiAgb3JnSWRGZWlsZD86IHN0cmluZztcclxuICBvcmdOYW1lRmVpbGQ/OnN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVcHNlcnQge1xyXG4gIG1vZGVsTmFtZT86IHN0cmluZztcclxuICBhZGREYXRhPzogUmVjb3JkPHN0cmluZyxhbnk+O1xyXG4gIHVwZERhdGE/OiBSZWNvcmQ8c3RyaW5nLGFueT47XHJcbiAgc3Vic2VydD86IFN1YlVwc2VydFtdO1xyXG4gIGxvZ01vZGVsPzogc3RyaW5nO1xyXG4gIGxvZz86IFRyYWNlTWVzc2FnZTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTdWJVcHNlcnQge1xyXG4gIHN1Yk1vZGVsTmFtZT86IHN0cmluZztcclxuICBmaz86c3RyaW5nO1xyXG4gIHN1YkRhdGE/OiBSZWNvcmQ8c3RyaW5nLGFueT5bXVxyXG4gIG1hcHRtcD86IE1hcDxudW1iZXIsYW55PjtcclxuICBsb2d0bXA/OiBNYXA8c3RyaW5nLGFueT5cclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIERlYWx7XHJcbiAgbW9kZWxOYW1lPzogc3RyaW5nO1xyXG4gIGRhdGE/OmFueTtcclxufVxyXG4vLyDmm7TmlrDnibnlrprlrZfmrrVcclxuZXhwb3J0IGludGVyZmFjZSBXcml0ZXtcclxuICBtb2RlbE5hbWU/OnN0cmluZztcclxuICBkYXRhPzpSZWNvcmQ8c3RyaW5nLGFueT47XHJcbiAgbG9nTW9kZWw/OnN0cmluZztcclxuICBsb2c/OlRyYWNlTWVzc2FnZTtcclxuICB0cmFuc2FjdGlvbj86IGJvb2xlYW47XHJcbn1cclxuLy8g5Yig6Zmk5o6l5Y+j5aOw5piOXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVtb3Zle1xyXG4gIG1vZGVsTmFtZT86c3RyaW5nO1xyXG4gIGlkcz86bnVtYmVyW107XHJcbiAgZGF0YT86YW55O1xyXG4gIGxvZ01vZGVsPzpzdHJpbmc7XHJcbiAgbG9nPzpUcmFjZU1lc3NhZ2U7XHJcbiAgdHJhbnNhY3Rpb24/OiBib29sZWFuO1xyXG59XHJcbi8vIOiOt+WPluWNleadoeaVsOaNruivpuaDhVxyXG5leHBvcnQgaW50ZXJmYWNlIEdldHtcclxuICBtb2RlbE5hbWU/OnN0cmluZztcclxuICB1c2VyQ29kZT86IHN0cmluZztcclxuICBvcmdGaWVsZD86IHN0cmluZztcclxuICBpZD86bnVtYmVyO1xyXG4gIHByZWxvYWRzPzpzdHJpbmdbXTsgLy8g6IGU6KGo5p+l6K+i6KGo5ZCN56ew77yM6ZyA5a+55bqU5ZCO56uvc3RydWN0XHJcbiAgZml0ZXJQcmVsb2Fkcz86UHJlbG9hZFtdOyAvLyDlj6rog73liqDkuIDlsYIg57G75Ly8ICdtb2R1bGUgPScgbW9kdWxlXHJcbiAgZ2V0TG9nPzpib29sZWFuOyAvL+iOt+WPluaXpeW/l1xyXG4gIGRhdGE/OmFueTsgLy/lkI7nq6/ov5Tlm57nmoRyZXNwb25zZVxyXG4gIGNvbHVtbkZpbHRlcnM/OiBDb2x1bW5GaWx0ZXJbXTsgLy/ov4fmu6TnmoTliJdcclxuICBmb3JlaWduS2V5PzpzdHJpbmcgIC8v55u05o6l5o+S5YWl5a2Q6KGo6ZyA6KaB5Lyg6YCS5aSW6ZSu5a2X5q615Lul5Y+K5aSW6ZSu5YC8XHJcbiAgW3Byb3BOYW1lOiBzdHJpbmddOmFueVxyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJlbG9hZHtcclxuICBmZWlsZE5hbWU/OiBzdHJpbmc7XHJcbiAgZml0ZXJzPzpDb2x1bW5GaWx0ZXJbXTtcclxuICBzb3J0cz86U29ydFtdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uRmlsdGVyIHtcclxuICBjb2x1bW5GaWVsZD86c3RyaW5nO1xyXG4gIHR5cGU/OnN0cmluZztcclxuICBmaXRlcj86IGFueTtcclxuICBmcm9tPzpzdHJpbmcgfCBudW1iZXI7XHJcbiAgdG8/OnN0cmluZyB8IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTb3J0e1xyXG4gIGZpZWxkPzpzdHJpbmc7XHJcbiAgaXNBc2M/OmJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoe1xyXG4gIG1vZGVsTmFtZT86IHN0cmluZztcclxuICB1c2VyQ29kZT86IHN0cmluZztcclxuICBvcmdGaWVsZD86IHN0cmluZztcclxuICBjb3VudD86Ym9vbGVhbjsgLy/mmK/lkKbov5Tlm550b3RhbE51bSBcclxuICBwcmVsb2Fkcz86c3RyaW5nW107XHJcbiAgZml0ZXJQcmVsb2Fkcz86UHJlbG9hZFtdO1xyXG4gIG1vZGVsPzphbnk7IFxyXG4gIGRhdGE/OmFueTtcclxuICBjb2x1bW5GaWx0ZXJzPzogQ29sdW1uRmlsdGVyW107IC8v6L+H5ruk55qE5YiXXHJcbiAgc29ydHM/OiBTb3J0W107XHJcbiAgZ3JvdXBzPzogc3RyaW5nW107XHJcbiAgcmVhZD86c3RyaW5nW107ICAvL3JlYWQg5oyH5a6a5p+l6K+i54m55a6a5a2X5q61XHJcbiAgZnVuY3M/OlJlY29yZDxzdHJpbmcsc3RyaW5nPjsgLy/pgI/op4booajlkI7mnJ/opoHnlKhcclxuICBvZmZzZXQ/Om51bWJlcjsgXHJcbiAgbGltaXQ/Om51bWJlcjtcclxuICB0b3RhbE51bT86bnVtYmVyO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgVG9rZW5JbmZvIHtcclxuICB0b2tlbj86c3RyaW5nXHJcbiAgZXhwaXJlZD86IG51bWJlclxyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgYW1XZWJ7XHJcbiAgaWQ/OiBudW1iZXI7XHJcbiAgY29kZT86IHN0cmluZztcclxuICB0eXBlPzogc3RyaW5nO1xyXG4gIG5hbWU/OiBzdHJpbmc7XHJcbiAgYXBwSWQ/OiBudW1iZXI7XHJcbiAgY29udGVudD86IHN0cmluZztcclxuICBjcmVhdGVkQXQ/OiBzdHJpbmc7XHJcbiAgdXBkYXRlZEF0PzpzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBSZmQge1xyXG4gIG1vZGVsTmFtZT86IHN0cmluZztcclxuICBsYWJlbEZpZWxkPzogc3RyaW5nO1xyXG4gIHZhbHVlRmllbGQ/OiBzdHJpbmc7XHJcbiAgd2hlcmVGaWVsZD86IHN0cmluZztcclxuICB0eXBlPzogc3RyaW5nO1xyXG4gIGZpdGVyPzogYW55O1xyXG4gIGRhdGE/OiBhbnk7XHJcbn1cclxuY29uc3QgYXBpUGF0aCA9IFwiXCJcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtYW0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW10sXHJcbiAgdGVtcGxhdGU6ICcnLFxyXG4gIHByb3ZpZGVyczpbTWVzc2FnZVNlcnZpY2VdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbUNvbXBvbmVudCB7XHJcbiAgLy/mmK/lkKbmj5DkuqTml6Xlv5dcclxuICBpc0xvZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8v5Li75pWw5o2uaWRcclxuICBpZDogbnVtYmVyPTBcclxuICAvL+S4u+ihqOaooeWei1xyXG4gIG1vZGVsTmFtZTogc3RyaW5nPScnXHJcbiAgLy9JROWPguaVsFxyXG4gIHBhcmFtOiBQYXJhbT17fVxyXG4gIGZpZDogc3RyaW5nPScnXHJcbiAgLy/lr7zlhaVcclxuICBpbXBvcnRQcm06IEltcG9ydEV4Y2VsPXt9O1xyXG4gIC8v5pCc57SgXHJcbiAgc2VhcmNoT3B0aW9uczogU2VhcmNoT3B0aW9ucz17fTtcclxuICAvL2Zvcm1cclxuICBmb3JtT3B0aW9uczogRm9ybU9wdGlvbnM9e307XHJcbiAgLy/liJvlu7rmiJbogIXmm7TmlrBcclxuICB1cHNlcnRQcm06IFVwc2VydD17dXBkRGF0YTp7fSxhZGREYXRhOnt9LHN1YnNlcnQ6W10sbG9nOnt9fTtcclxuICAvL+WkhOeQhlxyXG4gIGRlYWxQcm06IERlYWw9e307XHJcbiAgLy9tYXDmm7TmlrBcclxuICB3cml0ZVBybTogV3JpdGU9e307XHJcbiAgLy/liKDpmaRcclxuICByZW1vdmVQcm06IFJlbW92ZT17fTtcclxuICAvL+iOt+WPluS4gOadoeaVsOaNrlxyXG4gIGdldFBybTogR2V0PXtkYXRhOnt9fTtcclxuICAvL+afpeivouadoeS7tlxyXG4gIGZpbHRlcjogQ29sdW1uRmlsdGVyPXt9O1xyXG4gIC8v5p+l6K+i5YiX6KGo5pWw5o2uXHJcbiAgc2VhcmNoUHJtOiBTZWFyY2g9e307XHJcbiAgZXhwb3J0UHJtOiBTZWFyY2g9e307XHJcbiAgdGFtcGxhdGU6IERlYWw9e31cclxuICAvLyDooajnpLrmmK/lkKbmraPlnKjliqDovb3nlKjmiLfmlbDmja7nmoRTaWduYWzvvIzliJ3lp4vlgLzkuLogZmFsc2VcclxuICBpc0xvYWRpbmcgPSBzaWduYWwoZmFsc2UpO1xyXG4gIGh0dHA6IEh0dHBDbGllbnQgPSBpbmplY3QoSHR0cENsaWVudClcclxuICBtZXNzYWdlU2VydmljZSA6TWVzc2FnZVNlcnZpY2UgPSBpbmplY3QoTWVzc2FnZVNlcnZpY2UpXHJcbiAgcm91dGUgOkFjdGl2YXRlZFJvdXRlID1pbmplY3QoQWN0aXZhdGVkUm91dGUpXHJcbiAgcm91dGVyID0gaW5qZWN0KFJvdXRlcilcclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIHJmZChwcm06IFJmZCk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGgrXCJSRkRcIixwcm0sKVxyXG4gICAgLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT57XHJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICB9KSxcclxuICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIOaXoOiuuuivt+axguaIkOWKn+S4juWQpu+8jOmDveWwhuWKoOi9veS4reeKtuaAgeiuvue9ruS4uiBmYWxzZVxyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICB3ZWJnZXQocGFyYW06YW1XZWIpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoK1wid2ViZ2V0XCIscGFyYW0sKVxyXG4gICAgLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT57XHJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICB9KSxcclxuICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIOaXoOiuuuivt+axguaIkOWKn+S4juWQpu+8jOmDveWwhuWKoOi9veS4reeKtuaAgeiuvue9ruS4uiBmYWxzZVxyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgd2Vic2F2ZShwYXJhbTphbVdlYik6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGgrXCJ3ZWJzYXZlXCIscGFyYW0sKVxyXG4gICAgLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT57XHJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICB9KSxcclxuICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIOaXoOiuuuivt+axguaIkOWKn+S4juWQpu+8jOmDveWwhuWKoOi9veS4reeKtuaAgeiuvue9ruS4uiBmYWxzZVxyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgd2ViZGVsKHBhcmFtOmFtV2ViKTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCtcIndlYmRlbFwiLHBhcmFtLClcclxuICAgIC5waXBlKFxyXG4gICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+e1xyXG4gICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgfSksXHJcbiAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyDml6Dorrror7fmsYLmiJDlip/kuI7lkKbvvIzpg73lsIbliqDovb3kuK3nirbmgIHorr7nva7kuLogZmFsc2VcclxuICAgICAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwc2VydChwcm0/OmFueSxjYj86RnVuY3Rpb24pe1xyXG4gICAgaWYocHJtKXtcclxuICAgICAgdGhpcy53ZWJfdXBzZXJ0KHBybSkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgY2IgJiYgY2IocmVzKVxyXG5cdFx0ICAgIHRoaXMucmVzZXRQcm0oJ3Vwc2VydCcpXHJcbiAgICAgIH0pO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIC8vIGNvbnN0IHBtOiBVcHNlcnQgPSB0aGlzLnVwc2VydHMoKVxyXG4gICAgICAvLyBjb25zb2xlLmxvZygnMT09PT0nLHBtKVxyXG4gICAgICB0aGlzLndlYl91cHNlcnQodGhpcy51cHNlcnRQcm0pLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgIGNiICYmIGNiKHJlcylcclxuXHRcdCAgICB0aGlzLnJlc2V0UHJtKCd1cHNlcnQnKVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgLy/lhajpg6jliJvlu7rmiJbmm7TmlrDvvIzmoLnmja5JROWIpOaWrVxyXG4gIHdlYl91cHNlcnQocGFyYW06VXBzZXJ0KTpPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgdGhpcy5pc0xvYWRpbmcuc2V0KHRydWUpO1xyXG4gICAgaWYoIXBhcmFtLm1vZGVsTmFtZSl7XHJcbiAgICAgIHBhcmFtID0ge21vZGVsTmFtZTogdGhpcy5tb2RlbE5hbWUsLi4ucGFyYW19XHJcbiAgICB9XHJcbiAgICBsZXQgYWRkRGF0YTogYW55ID0gcGFyYW0uYWRkRGF0YVxyXG4gICAgaWYoT2JqZWN0LmtleXMoYWRkRGF0YSkubGVuZ3RoPT0wKXtcclxuICAgICAgZGVsZXRlIHBhcmFtLmFkZERhdGFcclxuICAgIH1cclxuICAgIGxldCB1cGREYXRhOiBhbnkgPXBhcmFtLnVwZERhdGFcclxuICAgIGlmKE9iamVjdC5rZXlzKHVwZERhdGEpLmxlbmd0aD09MCl7XHJcbiAgICAgIGRlbGV0ZSBwYXJhbS51cGREYXRhXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBwYXJhbS51cGREYXRhIVsnaWQnXSA9IHRoaXMuaWRcclxuICAgICAgcGFyYW0ubG9nIS5waWQgPSB0aGlzLmlkXHJcbiAgICB9XHJcbiAgICBpZighcGFyYW0/LmFkZERhdGEgJiYgIXBhcmFtLnVwZERhdGEpe1xyXG4gICAgICBwYXJhbSA9IHt1cGREYXRhOntpZDp0aGlzLmlkfSwuLi5wYXJhbX1cclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKCd0aGlzLmlzTG9nLS0tLScsdGhpcy5pc0xvZylcclxuICAgIGlmKCF0aGlzLmlzTG9nKXtcclxuICAgICAgZGVsZXRlIHBhcmFtLmxvZ1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIGxldCBsZzpzdHJpbmc9JydcclxuICAgICAgcGFyYW0uc3Vic2VydD8uZm9yRWFjaCh2PT57XHJcbiAgICAgICAgdi5sb2d0bXA/LmZvckVhY2goKHYsayk9PntcclxuICAgICAgICAgIGlmKHYuaWQ9PT0wKXtcclxuICAgICAgICAgICAgbGcgKz0n5paw5bu677yaIC0+ICcrdi5uZXdWYWx1ZSsnOydcclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICBsZyArPSAnWycrdi5pZCsnLScrdi5sYWJlbCsnXSAnICsgKHYub2xkVmFsdWUgfHwgJycpICsnIC0+ICcrKHYubmV3VmFsdWUgfHwgJycpKyc7J1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0pXHJcbiAgICAgIHBhcmFtPXsuLi5wYXJhbSxsb2c6ey4uLnBhcmFtLmxvZyxzdWJDb250ZW50OmxnfX1cclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKCdwYXJhbT09PT0nLHBhcmFtKVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGgrXCJ1cHNlcnRcIixwYXJhbSwpXHJcbiAgICAucGlwZShcclxuICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PntcclxuICAgICAgICBpZiAocGFyYW0ubG9nKXtcclxuICAgICAgICAgIGRlbGV0ZSBwYXJhbS5sb2c7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgfSksXHJcbiAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyDml6Dorrror7fmsYLmiJDlip/kuI7lkKbvvIzpg73lsIbliqDovb3kuK3nirbmgIHorr7nva7kuLogZmFsc2VcclxuICAgICAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgLy/oh6rlpITnkIbpgLvovpFcclxuICBkZWFsKHBybT86RGVhbCl7XHJcbiAgICBpZiAocHJtKSB7XHJcbiAgICAgIHRoaXMud2ViX2RlYWwocHJtKS5zdWJzY3JpYmUoKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLndlYl9kZWFsKHRoaXMuZGVhbFBybSkuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHdlYl9kZWFsKHBhcmFtOkRlYWwpOk9ic2VydmFibGU8YW55PiB7XHJcbiAgICB0aGlzLmlzTG9hZGluZy5zZXQodHJ1ZSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCtcImRlYWxcIixwYXJhbSlcclxuICAgIC5waXBlKFxyXG4gICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+e1xyXG4gICAgICAgIHRoaXMuZGVhbFBybT17ZGF0YTogcmVzcG9uc2UsLi4udGhpcy5kZWFsUHJtfVxyXG4gICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgfSksXHJcbiAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyDml6Dorrror7fmsYLmiJDlip/kuI7lkKbvvIzpg73lsIbliqDovb3kuK3nirbmgIHorr7nva7kuLogZmFsc2VcclxuICAgICAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbi8v5Lyg5YWlbWFw77yM5qC55o2uSUTvvIzmm7TmlrBtYXDmlbDmja5cclxuICB3cml0ZShwcm0/OldyaXRlKSB7XHJcbiAgICBpZihwcm0pe1xyXG4gICAgICB0aGlzLndlYl93cml0ZShwcm0pLnN1YnNjcmliZSgpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMud2ViX3dyaXRlKHRoaXMud3JpdGVQcm0pLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICB3ZWJfd3JpdGUocGFyYW06V3JpdGUpOk9ic2VydmFibGU8YW55PiB7XHJcbiAgICB0aGlzLmlzTG9hZGluZy5zZXQodHJ1ZSk7XHJcbiAgICBpZighcGFyYW0ubW9kZWxOYW1lKXtcclxuICAgICAgcGFyYW0gPSB7bW9kZWxOYW1lOiB0aGlzLm1vZGVsTmFtZSwuLi5wYXJhbX1cclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoK1wid3JpdGVcIixwYXJhbSlcclxuICAgIC5waXBlKFxyXG4gICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+e1xyXG4gICAgICAgIGlmIChwYXJhbS5sb2cpe1xyXG4gICAgICAgICAgZGVsZXRlIHBhcmFtLmxvZztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICB9KSxcclxuICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIOaXoOiuuuivt+axguaIkOWKn+S4juWQpu+8jOmDveWwhuWKoOi9veS4reeKtuaAgeiuvue9ruS4uiBmYWxzZVxyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuLy/moLnmja5JROWIoOmZpFxyXG4gIHJlbW92ZShwcm0/OlJlbW92ZSl7XHJcbiAgICBpZihwcm0pe1xyXG4gICAgICB0aGlzLndlYl9yZW1vdmUocHJtKS5zdWJzY3JpYmUoKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLndlYl9yZW1vdmUodGhpcy5yZW1vdmVQcm0pLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICB3ZWJfcmVtb3ZlKHBhcmFtOlJlbW92ZSk6T2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHRoaXMuaXNMb2FkaW5nLnNldCh0cnVlKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoK1wicmVtb3ZlXCIscGFyYW0sKVxyXG4gICAgLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT57XHJcbiAgICAgICAgaWYgKHBhcmFtLmxvZyl7XHJcbiAgICAgICAgICBkZWxldGUgcGFyYW0ubG9nO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgIH0pLFxyXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8g5peg6K666K+35rGC5oiQ5Yqf5LiO5ZCm77yM6YO95bCG5Yqg6L295Lit54q25oCB6K6+572u5Li6IGZhbHNlXHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KGZhbHNlKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4vL+agueaNrklE6I635Y+W5LiA5p2h5pWw5o2uXHJcbiAgZ2V0KHBybT86R2V0KXtcclxuICAgIGlmKHBybSl7XHJcbiAgICAgIHRoaXMud2ViX2dldChwcm0pLnN1YnNjcmliZSgpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMud2ViX2dldCh0aGlzLmdldFBybSkuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHdlYl9nZXQocGFyYW06R2V0KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICBpZighcGFyYW0uaGFzT3duUHJvcGVydHkoJ21vZGVsTmFtZScpKXtcclxuICAgICAgcGFyYW0ubW9kZWxOYW1lPXRoaXMubW9kZWxOYW1lO1xyXG4gICAgfSBcclxuICAgIHRoaXMuaXNMb2FkaW5nLnNldCh0cnVlKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoK1wiZ2V0XCIscGFyYW0pXHJcbiAgICAucGlwZShcclxuICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PntcclxuICAgICAgICB0aGlzLmdldFBybS5kYXRhID0gcmVzcG9uc2VcclxuICAgICAgICBpZihyZXNwb25zZS5pZCA9PT0gMCAmJiBwYXJhbS5oYXNPd25Qcm9wZXJ0eSgnZm9yZWlnbktleScpKXtcclxuICAgICAgICAgIHRoaXMudXBzZXJ0UHJtLmFkZERhdGEhW3BhcmFtLmZvcmVpZ25LZXkhXSA9IHBhcmFtW3BhcmFtLmZvcmVpZ25LZXkhXVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmlkPXJlc3BvbnNlPy5pZFxyXG4gICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgfSksXHJcbiAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyDml6Dorrror7fmsYLmiJDlip/kuI7lkKbvvIzpg73lsIbliqDovb3kuK3nirbmgIHorr7nva7kuLogZmFsc2VcclxuICAgICAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbi8v6I635Y+W5aSa5p2h5pWw5o2u77yM5qC55o2u5Lyg5YWl55qE5p2h5Lu26Ieq5Yqo57uE57uHc3FsXHJcbiAgc2VhcmNoKHBybT86U2VhcmNoKXtcclxuICAgIGlmKHBybSl7XHJcbiAgICAgIHRoaXMud2ViX3NlYXJjaChwcm0pLnN1YnNjcmliZSgpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMud2ViX3NlYXJjaCh0aGlzLnNlYXJjaFBybSkuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHdlYl9zZWFyY2gocGFyYW06U2VhcmNoKTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICB0aGlzLmlzTG9hZGluZy5zZXQodHJ1ZSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCtcInNlYXJjaFwiLHBhcmFtKVxyXG4gICAgLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT57XHJcbiAgICAgICAgdGhpcy5zZWFyY2hQcm0gPXsuLi5yZXNwb25zZX1cclxuICAgICAgICBjb25zb2xlLmxvZygndXBzZXktLS0tLScsdGhpcy51cHNlcnRQcm0pXHJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICB9KSxcclxuICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIOaXoOiuuuivt+axguaIkOWKn+S4juWQpu+8jOmDveWwhuWKoOi9veS4reeKtuaAgeiuvue9ruS4uiBmYWxzZVxyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICBzZWFyY2htYXAocHJtPzpTZWFyY2gpe1xyXG4gICAgaWYocHJtKXtcclxuICAgICAgdGhpcy53ZWJfc2VhcmNoKHBybSkuc3Vic2NyaWJlKCk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy53ZWJfc2VhcmNoKHRoaXMuc2VhcmNoUHJtKS5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcbiAgd2ViX3NlYXJjaG1hcChwYXJhbTpTZWFyY2gpOk9ic2VydmFibGU8YW55PntcclxuICAgIHRoaXMuaXNMb2FkaW5nLnNldCh0cnVlKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoK1wic2VhcmNoTWFwXCIscGFyYW0pXHJcbiAgICAucGlwZShcclxuICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PntcclxuICAgICAgICB0aGlzLnNlYXJjaFBybSA9ey4uLnJlc3BvbnNlfVxyXG4gICAgICAgIGNvbnNvbGUubG9nKCd1cHNleS0tLS0tJyx0aGlzLnVwc2VydFBybSlcclxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgIH0pLFxyXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8g5peg6K666K+35rGC5oiQ5Yqf5LiO5ZCm77yM6YO95bCG5Yqg6L295Lit54q25oCB6K6+572u5Li6IGZhbHNlXHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KGZhbHNlKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIC8v6I635Y+W5aSa5p2h5pWw5o2u77yM5qC55o2u5Lyg5YWl55qE5p2h5Lu26Ieq5Yqo57uE57uHc3FsXHJcbiAgc2VhcmNoQ291bnQocHJtPzpTZWFyY2gpe1xyXG4gICAgaWYocHJtKXtcclxuICAgICAgdGhpcy53ZWJfc2VhcmNoQ291bnQocHJtKS5zdWJzY3JpYmUoKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLndlYl9zZWFyY2hDb3VudCh0aGlzLnNlYXJjaFBybSkuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHdlYl9zZWFyY2hDb3VudChwYXJhbTpTZWFyY2gpOk9ic2VydmFibGU8YW55PntcclxuICAgIHRoaXMuaXNMb2FkaW5nLnNldCh0cnVlKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoK1wic2VhcmNoQ291bnRcIixwYXJhbSlcclxuICAgIC5waXBlKFxyXG4gICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+e1xyXG4gICAgICAgIHRoaXMuc2VhcmNoUHJtID17Li4ucmVzcG9uc2V9XHJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICB9KSxcclxuICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIOaXoOiuuuivt+axguaIkOWKn+S4juWQpu+8jOmDveWwhuWKoOi9veS4reeKtuaAgeiuvue9ruS4uiBmYWxzZVxyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuIC8vZXhjZWzlr7zlhaVcclxuICAvLyBpbXBvcnQocGFyYW06IEltcG9ydEV4Y2VsKTpPYnNlcnZhYmxlPGFueT4ge1xyXG4gIC8vICAgdGhpcy5pc0xvYWRpbmcuc2V0KHRydWUpO1xyXG4gIC8vICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFwiYW0vcmVtb3ZlXCIscGFyYW0saHR0cE9wdGlvbnMpXHJcbiAgLy8gICAucGlwZShcclxuICAvLyAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PntcclxuICAvLyAgICAgICB0aGlzLm1lc3NhZ2Uuc2V0KHJlc3BvbnNlKTtcclxuICAvLyAgICAgICB0aGlzLmlzU3VjY2Vzcy5zZXQodHJ1ZSk7XHJcbiAgLy8gICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gIC8vICAgICB9KSxcclxuICAvLyAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAvLyAgICAgICAvLyDoi6Xor7fmsYLlh7rplJnvvIzorr7nva7or7fmsYLmiJDlip/nirbmgIHkuLogZmFsc2XvvIzlubblsIbplJnor6/ph43mlrDmipvlh7pcclxuICAvLyAgICAgICB0aGlzLmlzU3VjY2Vzcy5zZXQoZmFsc2UpO1xyXG4gIC8vICAgICAgIHRoaXMubWVzc2FnZS5zZXQoZXJyb3IpO1xyXG4gIC8vICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcclxuICAvLyAgICAgfSksXHJcbiAgLy8gICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAvLyAgICAgICAvLyDml6Dorrror7fmsYLmiJDlip/kuI7lkKbvvIzpg73lsIbliqDovb3kuK3nirbmgIHorr7nva7kuLogZmFsc2VcclxuICAvLyAgICAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xyXG4gIC8vICAgICB9KVxyXG4gIC8vICAgKTtcclxuICAvLyB9XHJcbiAgLy8vL2V4Y2VsIOWvvOWHulxyXG4gIGV4cG9ydChwcm0/OlNlYXJjaCl7XHJcbiAgICBpZihwcm0pe1xyXG4gICAgICB0aGlzLndlYl9leHBvcnQocHJtKS5zdWJzY3JpYmUoKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLndlYl9leHBvcnQodGhpcy5leHBvcnRQcm0pLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICB3ZWJfZXhwb3J0KHBhcmFtOiBTZWFyY2gpOk9ic2VydmFibGU8YW55PntcclxuICAgIGlmKCFwYXJhbS5tb2RlbE5hbWUpe1xyXG4gICAgICBwYXJhbSA9IHttb2RlbE5hbWU6IHRoaXMubW9kZWxOYW1lLC4uLnBhcmFtfVxyXG4gICAgfVxyXG4gICAgdGhpcy5pc0xvYWRpbmcuc2V0KHRydWUpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGgrXCJleHBvcnRcIixwYXJhbSx7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIH0pXHJcbiAgICAucGlwZShcclxuICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PntcclxuICAgICAgICBjb25zdCBkYXRhOiBCbG9iID0gbmV3IEJsb2IoW3Jlc3BvbnNlXSwgeyB0eXBlOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQ7IGNoYXJzZXQ9VVRGLTgnIH0pO1xyXG4gICAgICAgIGNvbnN0IGZpbGVOYW1lID0gcGFyYW0ubW9kZWxOYW1lKycueGxzeCc7XHJcbiAgICAgICAgRmlsZVNhdmVyLnNhdmVBcyhkYXRhLCBmaWxlTmFtZSk7XHJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICB9KSxcclxuICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIOaXoOiuuuivt+axguaIkOWKn+S4juWQpu+8jOmDveWwhuWKoOi9veS4reeKtuaAgeiuvue9ruS4uiBmYWxzZVxyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICAvL+S6uuW3peWkhOeQhuWvvOWFpVxyXG4gIGRlYWxFeHBvcnQocHJtPzpTZWFyY2gpe1xyXG4gICAgaWYocHJtKXtcclxuICAgICAgdGhpcy53ZWJfZGVhbF9leHBvcnQocHJtKS5zdWJzY3JpYmUoKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLndlYl9kZWFsX2V4cG9ydCh0aGlzLmV4cG9ydFBybSkuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHdlYl9kZWFsX2V4cG9ydChwYXJhbTogU2VhcmNoKTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICBpZighcGFyYW0ubW9kZWxOYW1lKXtcclxuICAgICAgcGFyYW0gPSB7bW9kZWxOYW1lOiB0aGlzLm1vZGVsTmFtZSwuLi5wYXJhbX1cclxuICAgIH1cclxuICAgIHRoaXMuaXNMb2FkaW5nLnNldCh0cnVlKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoK1wiZGVhbEV4cG9ydFwiLHBhcmFtLHsgcmVzcG9uc2VUeXBlOiAnYmxvYicgfSlcclxuICAgIC5waXBlKFxyXG4gICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+e1xyXG4gICAgICAgIGNvbnN0IGRhdGE6IEJsb2IgPSBuZXcgQmxvYihbcmVzcG9uc2VdLCB7IHR5cGU6ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldDsgY2hhcnNldD1VVEYtOCcgfSk7XHJcbiAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBwYXJhbS5tb2RlbE5hbWUrJy54bHN4JztcclxuICAgICAgICBGaWxlU2F2ZXIuc2F2ZUFzKGRhdGEsIGZpbGVOYW1lKTtcclxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgIH0pLFxyXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8g5peg6K666K+35rGC5oiQ5Yqf5LiO5ZCm77yM6YO95bCG5Yqg6L295Lit54q25oCB6K6+572u5Li6IGZhbHNlXHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KGZhbHNlKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIC8v5LiL6L295a+85YWl55qE5qih5p2/XHJcbiAgZG93bmxvYWRUZW1wbGF0ZShwcm0/OkRlYWwpe1xyXG4gICAgaWYocHJtKXtcclxuICAgICAgdGhpcy53ZWJfZG93bmxvYWRUZW1wbGF0ZShwcm0pLnN1YnNjcmliZSgpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMud2ViX2Rvd25sb2FkVGVtcGxhdGUodGhpcy50YW1wbGF0ZSkuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHdlYl9kb3dubG9hZFRlbXBsYXRlKHBhcmFtOiBEZWFsKTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICB0aGlzLmlzTG9hZGluZy5zZXQodHJ1ZSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCtcImRvd25sb2FkXCIscGFyYW0seyByZXNwb25zZVR5cGU6ICdibG9iJyB9KVxyXG4gICAgLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT57XHJcbiAgICAgICAgY29uc3QgZGF0YTogQmxvYiA9IG5ldyBCbG9iKFtyZXNwb25zZV0sIHsgdHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0OyBjaGFyc2V0PVVURi04JyB9KTtcclxuICAgICAgICBjb25zdCBmaWxlTmFtZSA9IHBhcmFtLm1vZGVsTmFtZSsn5qih5p2/Lnhsc3gnO1xyXG4gICAgICAgIEZpbGVTYXZlci5zYXZlQXMoZGF0YSwgZmlsZU5hbWUpO1xyXG4gICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgfSksXHJcbiAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyDml6Dorrror7fmsYLmiJDlip/kuI7lkKbvvIzpg73lsIbliqDovb3kuK3nirbmgIHorr7nva7kuLogZmFsc2VcclxuICAgICAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgLy/liKDpmaTlm77niYdcclxuICBpbWFnZURlbGV0ZShmaWQ/OnN0cmluZyl7XHJcbiAgICBpZihmaWQpe1xyXG4gICAgICB0aGlzLndlYl9pbWFnZURlbGV0ZShmaWQpLnN1YnNjcmliZSgpO1xyXG4gICAgfWVsc2UgaWYgKHRoaXMuZmlkLmxlbmd0aD4wKXtcclxuICAgICAgdGhpcy53ZWJfaW1hZ2VEZWxldGUodGhpcy5maWQpLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICB3ZWJfaW1hZ2VEZWxldGUoZmlkOnN0cmluZyk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgdGhpcy5pc0xvYWRpbmcuc2V0KHRydWUpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGgrXCJpbWFnZURlbGV0ZVwiLGZpZClcclxuICAgIC5waXBlKFxyXG4gICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+e1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtzZXZlcml0eTogJ3N1Y2Nlc3MnLHN1bW1hcnk6ICdTdWNjZXNzJyxkZXRhaWw6IHJlc3BvbnNlfSlcclxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgIH0pLFxyXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8g5peg6K666K+35rGC5oiQ5Yqf5LiO5ZCm77yM6YO95bCG5Yqg6L295Lit54q25oCB6K6+572u5Li6IGZhbHNlXHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KGZhbHNlKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gICAgLy/liKDpmaTlm77niYdcclxuICBmaWxlckRlbGV0ZShmaWQ/OnN0cmluZyl7XHJcbiAgICAgIGlmKGZpZCl7XHJcbiAgICAgICAgdGhpcy53ZWJfZmlsZXJEZWxldGUoZmlkKS5zdWJzY3JpYmUoKTtcclxuICAgICAgfWVsc2UgaWYgKHRoaXMuZmlkLmxlbmd0aD4wKXtcclxuICAgICAgICB0aGlzLndlYl9maWxlckRlbGV0ZSh0aGlzLmZpZCkuc3Vic2NyaWJlKCk7XHJcbiAgICAgIH1cclxuICB9XHJcbiAgd2ViX2ZpbGVyRGVsZXRlKGZpZDpzdHJpbmcpOk9ic2VydmFibGU8YW55PntcclxuICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KHRydWUpO1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCtcImltYWdlRGVsZXRlXCIsZmlkKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+e1xyXG4gICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe3NldmVyaXR5OiAnc3VjY2Vzcycsc3VtbWFyeTogJ1N1Y2Nlc3MnLGRldGFpbDogcmVzcG9uc2V9KVxyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAgIC8vIOaXoOiuuuivt+axguaIkOWKn+S4juWQpu+8jOmDveWwhuWKoOi9veS4reeKtuaAgeiuvue9ruS4uiBmYWxzZVxyXG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KGZhbHNlKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIC8v5Yi35pawdG9rZW5cclxuICByZWZyZXNoVG9rZW4ocGFyYW06VG9rZW5JbmZvKTpPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGgrXCJyZWZyZXNoVG9rZW5cIixwYXJhbSlcclxuICAgIC5waXBlKFxyXG4gICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+e1xyXG4gICAgICAgIHRoaXMuZGVhbFBybT17ZGF0YTogcmVzcG9uc2UsLi4udGhpcy5kZWFsUHJtfVxyXG4gICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgfSksXHJcbiAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyDml6Dorrror7fmsYLmiJDlip/kuI7lkKbvvIzpg73lsIbliqDovb3kuK3nirbmgIHorr7nva7kuLogZmFsc2VcclxuICAgICAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgLy/liJvlu7rooahcclxuICBjcmVhdGVUYWJsZShwcm0/OlBhcmFtKXtcclxuICAgIGlmKHBybSl7XHJcbiAgICAgIHRoaXMud2ViX2NyZWF0ZVRhYmxlKHBybSkuc3Vic2NyaWJlKCk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy53ZWJfY3JlYXRlVGFibGUodGhpcy5wYXJhbSkuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHdlYl9jcmVhdGVUYWJsZShwYXJhbTpQYXJhbSk6T2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHRoaXMuaXNMb2FkaW5nLnNldCh0cnVlKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoK1wiY3JlYXRlVGFibGVcIixwYXJhbSlcclxuICAgIC5waXBlKFxyXG4gICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+e1xyXG4gICAgICAgIC8vIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtzZXZlcml0eTogJ3N1Y2Nlc3MnLHN1bW1hcnk6ICdTdWNjZXNzJyxkZXRhaWw6IHJlc3BvbnNlfSlcclxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgIH0pLFxyXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8g5peg6K666K+35rGC5oiQ5Yqf5LiO5ZCm77yM6YO95bCG5Yqg6L295Lit54q25oCB6K6+572u5Li6IGZhbHNlXHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KGZhbHNlKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIC8vIOaaguaXoOehruWumuaYr+WQpumHjee9ruWFtuS7luWFrOWFseWPmOmHj1xyXG4gIHJlc2V0UHJtKHNlYXJjaD86c3RyaW5nKXtcclxuICAgIHN3aXRjaChzZWFyY2gpe1xyXG4gICAgICBjYXNlICd1cHNlcnQnOlxyXG4gICAgICAgIHRoaXMudXBzZXJ0UHJtLmFkZERhdGEgPSB7fTtcclxuICAgICAgICB0aGlzLnVwc2VydFBybS51cGREYXRhID0ge307XHJcbiAgICAgICAgdGhpcy51cHNlcnRQcm0ubG9nID0ge31cclxuICAgICAgICB0aGlzLnVwc2VydFBybS5zdWJzZXJ0Py5mb3JFYWNoKHYgPT4ge1xyXG4gICAgICAgICAgdi5sb2d0bXAgPSBuZXcgTWFwKCk7XHJcbiAgICAgICAgICB2Lm1hcHRtcCA9IG5ldyBNYXAoKTtcclxuICAgICAgICAgIHYuc3ViRGF0YSA9IFtdXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6IFxyXG4gICAgICAgICcnICBcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -10,6 +10,9 @@ import { defaultKeymap, history, historyKeymap } from '@codemirror/commands';
|
|
|
10
10
|
import { searchKeymap, highlightSelectionMatches } from '@codemirror/search';
|
|
11
11
|
import { autocompletion, completionKeymap, closeBrackets, closeBracketsKeymap } from '@codemirror/autocomplete';
|
|
12
12
|
import { lintKeymap } from '@codemirror/lint';
|
|
13
|
+
import prettier from 'prettier';
|
|
14
|
+
import typescript from 'prettier/plugins/typescript';
|
|
15
|
+
import estree from 'prettier/plugins/estree';
|
|
13
16
|
import * as i0 from "@angular/core";
|
|
14
17
|
import * as i1 from "../../service/action.service";
|
|
15
18
|
export class CodeMirrorComponent {
|
|
@@ -78,6 +81,7 @@ export class CodeMirrorComponent {
|
|
|
78
81
|
crosshairCursor(),
|
|
79
82
|
highlightActiveLineGutter(),
|
|
80
83
|
highlightSelectionMatches(),
|
|
84
|
+
this.formatting(),
|
|
81
85
|
keymap.of([
|
|
82
86
|
...closeBracketsKeymap,
|
|
83
87
|
...defaultKeymap,
|
|
@@ -95,7 +99,7 @@ export class CodeMirrorComponent {
|
|
|
95
99
|
'.cm-activeLineGutter': {
|
|
96
100
|
backgroundColor: 'transparent',
|
|
97
101
|
},
|
|
98
|
-
'&': { minHeight: this.props.minHeight ?? '88px', maxHeight: this.props.maxHeight || '
|
|
102
|
+
'&': { minHeight: this.props.minHeight ?? '88px', maxHeight: this.props.maxHeight || '204px' },
|
|
99
103
|
'.cm-scroller': { overflow: 'auto', minHeight: this.props.minHeight ?? '88px' },
|
|
100
104
|
}),
|
|
101
105
|
this.getLanguageExtension(),
|
|
@@ -154,6 +158,43 @@ export class CodeMirrorComponent {
|
|
|
154
158
|
}
|
|
155
159
|
});
|
|
156
160
|
}
|
|
161
|
+
formatting() {
|
|
162
|
+
const formatCommand = (view) => {
|
|
163
|
+
try {
|
|
164
|
+
prettier
|
|
165
|
+
.format(view.state.doc.toString(), {
|
|
166
|
+
parser: 'typescript',
|
|
167
|
+
plugins: [typescript, estree],
|
|
168
|
+
semi: true,
|
|
169
|
+
singleQuote: true,
|
|
170
|
+
tabWidth: 2,
|
|
171
|
+
printWidth: 80,
|
|
172
|
+
trailingComma: 'all',
|
|
173
|
+
arrowParens: 'always',
|
|
174
|
+
})
|
|
175
|
+
.then((formatted) => {
|
|
176
|
+
const transaction = this.editorView.state.update({
|
|
177
|
+
changes: { from: 0, to: this.editorView.state.doc.length, insert: formatted },
|
|
178
|
+
});
|
|
179
|
+
this.editorView.dispatch(transaction);
|
|
180
|
+
console.log('格式化成功:', formatted);
|
|
181
|
+
});
|
|
182
|
+
return true;
|
|
183
|
+
}
|
|
184
|
+
catch (error) {
|
|
185
|
+
console.error('格式化错误:', error);
|
|
186
|
+
return false;
|
|
187
|
+
}
|
|
188
|
+
};
|
|
189
|
+
return keymap.of([
|
|
190
|
+
{
|
|
191
|
+
key: 'Shift-Alt-f',
|
|
192
|
+
mac: 'Shift-Cmd-f',
|
|
193
|
+
run: formatCommand,
|
|
194
|
+
preventDefault: true,
|
|
195
|
+
},
|
|
196
|
+
]);
|
|
197
|
+
}
|
|
157
198
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CodeMirrorComponent, deps: [{ token: i1.ActionService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
158
199
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: CodeMirrorComponent, isStandalone: true, selector: "form-codemirror", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "codeContainer", first: true, predicate: ["codeContainer"], descendants: true }], ngImport: i0, template: `<div #codeContainer></div>`, isInline: true, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }] }); }
|
|
159
200
|
}
|
|
@@ -164,4 +205,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
164
205
|
type: ViewChild,
|
|
165
206
|
args: ['codeContainer', { static: false }]
|
|
166
207
|
}] } });
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZW1pcnJvci50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLWVsZW1lbnQtdWkvc3JjL2xpYi9mb3JtL2Zvcm0tdHlwZS9jb2RlbWlycm9yLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdELE9BQU8sRUFDTixVQUFVLEVBQ1YsTUFBTSxFQUNOLHFCQUFxQixFQUNyQixhQUFhLEVBQ2IsVUFBVSxFQUNWLG9CQUFvQixFQUNwQixlQUFlLEVBQ2YsV0FBVyxFQUNYLHlCQUF5QixFQUN6QixXQUFXLEdBQ1gsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekksT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJB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b0JBQ2xDLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUU7aUJBQy9DLENBQUMsQ0FBQztnQkFDSCxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM5QixDQUFDO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOytHQTFKVyxtQkFBbUI7bUdBQW5CLG1CQUFtQiwrVEFIckIsNEJBQTRCLHVpTEFENUIsbUJBQW1COzs0RkFJakIsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNDLGlCQUFpQixjQUNmLElBQUksV0FDUCxDQUFDLG1CQUFtQixDQUFDLFlBQ3BCLDRCQUE0QjswR0FJUyxhQUFhO3NCQUEzRCxTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCwgaW5wdXQsIGVmZmVjdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZvcm1GaWVsZCwgRmllbGRQcm9wcyB9IGZyb20gJy4uL2Zvcm0tZmllbGQvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IGphdmFzY3JpcHQgfSBmcm9tICdAY29kZW1pcnJvci9sYW5nLWphdmFzY3JpcHQnO1xyXG5pbXBvcnQgeyBodG1sIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZy1odG1sJztcclxuaW1wb3J0IHsganNvbiB9IGZyb20gJ0Bjb2RlbWlycm9yL2xhbmctanNvbic7XHJcbmltcG9ydCB7IEVkaXRvclN0YXRlLCBTdGF0ZUVmZmVjdCB9IGZyb20gJ0Bjb2RlbWlycm9yL3N0YXRlJztcclxuaW1wb3J0IHtcclxuXHRFZGl0b3JWaWV3LFxyXG5cdGtleW1hcCxcclxuXHRoaWdobGlnaHRTcGVjaWFsQ2hhcnMsXHJcblx0ZHJhd1NlbGVjdGlvbixcclxuXHRkcm9wQ3Vyc29yLFxyXG5cdHJlY3Rhbmd1bGFyU2VsZWN0aW9uLFxyXG5cdGNyb3NzaGFpckN1cnNvcixcclxuXHRsaW5lTnVtYmVycyxcclxuXHRoaWdobGlnaHRBY3RpdmVMaW5lR3V0dGVyLFxyXG5cdHBsYWNlaG9sZGVyLFxyXG59IGZyb20gJ0Bjb2RlbWlycm9yL3ZpZXcnO1xyXG5pbXBvcnQgeyBkZWZhdWx0SGlnaGxpZ2h0U3R5bGUsIHN5bnRheEhpZ2hsaWdodGluZywgaW5kZW50T25JbnB1dCwgYnJhY2tldE1hdGNoaW5nLCBmb2xkR3V0dGVyLCBmb2xkS2V5bWFwIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZ3VhZ2UnO1xyXG5pbXBvcnQgeyBkZWZhdWx0S2V5bWFwLCBoaXN0b3J5LCBoaXN0b3J5S2V5bWFwIH0gZnJvbSAnQGNvZGVtaXJyb3IvY29tbWFuZHMnO1xyXG5pbXBvcnQgeyBzZWFyY2hLZXltYXAsIGhpZ2hsaWdodFNlbGVjdGlvbk1hdGNoZXMgfSBmcm9tICdAY29kZW1pcnJvci9zZWFyY2gnO1xyXG5pbXBvcnQgeyBhdXRvY29tcGxldGlvbiwgY29tcGxldGlvbktleW1hcCwgY2xvc2VCcmFja2V0cywgY2xvc2VCcmFja2V0c0tleW1hcCB9IGZyb20gJ0Bjb2RlbWlycm9yL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IEFjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgbGludEtleW1hcCB9IGZyb20gJ0Bjb2RlbWlycm9yL2xpbnQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb2RlTWlycm9yUHJvcHMgZXh0ZW5kcyBGaWVsZFByb3BzIHtcclxuXHRsYW5ndWFnZT86ICdodG1sJyB8ICdqYXZhc2NyaXB0JyB8ICdqc29uJztcclxuXHRtYXhIZWlnaHQ/OiBzdHJpbmc7XHJcblx0bWluSGVpZ2h0Pzogc3RyaW5nO1xyXG5cdHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG5cdHRlbXBsYXRlcz86IHN0cmluZ1tdO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2Zvcm0tY29kZW1pcnJvcicsXHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRpbXBvcnRzOiBbUmVhY3RpdmVGb3Jtc01vZHVsZV0sXHJcblx0dGVtcGxhdGU6IGA8ZGl2ICNjb2RlQ29udGFpbmVyPjwvZGl2PmAsXHJcblx0c3R5bGVVcmw6ICcuLi8uLi9zdHlsZXMvc3R5bGVzLnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29kZU1pcnJvckNvbXBvbmVudCB7XHJcblx0QFZpZXdDaGlsZCgnY29kZUNvbnRhaW5lcicsIHsgc3RhdGljOiBmYWxzZSB9KSBjb2RlQ29udGFpbmVyITogRWxlbWVudFJlZjtcclxuXHRjbUVkaXRvciE6IEVsZW1lbnRSZWY7XHJcblx0ZmllbGQgPSBpbnB1dDxGb3JtRmllbGQ+KCk7XHJcblx0cHJvcHM6IENvZGVNaXJyb3JQcm9wcyA9IHt9O1xyXG5cdGVkaXRvclZpZXchOiBFZGl0b3JWaWV3O1xyXG5cdHRlbXBsYXRlSW5kZXggPSAwO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgYWN0aW9uOiBBY3Rpb25TZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG5cdCkge1xyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0aWYgKHRoaXMuZmllbGQoKSkge1xyXG5cdFx0XHRcdHRoaXMucHJvcHMgPSB0aGlzLmZpZWxkKCkhLmNvZGVNaXJyb3JQcm9wcyE7XHJcblx0XHRcdFx0dGhpcy5oYW5kbGVNb2RlbENoYW5nZSgpO1xyXG5cdFx0XHRcdHRoaXMuaGFuZGxlRXh0ZW5zaW9ucygpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGNvbnN0IGxhYmVsQWN0aW9uID0gdGhpcy5hY3Rpb24uZ2V0RmllbGRMYWJlbEFjdGlvbigpO1xyXG5cdFx0XHRpZiAoIWxhYmVsQWN0aW9uIHx8IGxhYmVsQWN0aW9uPy5rZXkgIT0gdGhpcy5maWVsZCgpPy51dWlkKSB7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblx0XHRcdGlmIChsYWJlbEFjdGlvbi50eXBlID09ICdtb3VzZWVudGVyJykge1xyXG5cdFx0XHRcdHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5jbUVkaXRvciwgJ25nLWhvdmVyZWQnKTtcclxuXHRcdFx0fSBlbHNlIGlmIChsYWJlbEFjdGlvbi50eXBlID09ICdtb3VzZWxlYXZlJykge1xyXG5cdFx0XHRcdHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5jbUVkaXRvciwgJ25nLWhvdmVyZWQnKTtcclxuXHRcdFx0fSBlbHNlIGlmIChsYWJlbEFjdGlvbi50eXBlID09ICdjbGljaycpIHtcclxuXHRcdFx0XHR0aGlzLmVkaXRvclZpZXcuZm9jdXMoKTtcclxuXHRcdFx0fSBlbHNlIGlmIChsYWJlbEFjdGlvbi50eXBlID09ICdkYmxjbGljaycpIHtcclxuXHRcdFx0XHRpZiAoIXRoaXMucHJvcHMudGVtcGxhdGVzIHx8ICF0aGlzLnByb3BzLnRlbXBsYXRlcy5sZW5ndGgpIHJldHVybjtcclxuXHRcdFx0XHR0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8uc2V0VmFsdWUoXHJcblx0XHRcdFx0XHR0aGlzLnByb3BzLnRlbXBsYXRlc1tcclxuXHRcdFx0XHRcdFx0KCh0aGlzLnRlbXBsYXRlSW5kZXggJSB0aGlzLnByb3BzLnRlbXBsYXRlcy5sZW5ndGgpICsgdGhpcy5wcm9wcy50ZW1wbGF0ZXMubGVuZ3RoKSAlIHRoaXMucHJvcHMudGVtcGxhdGVzLmxlbmd0aFxyXG5cdFx0XHRcdFx0XSxcclxuXHRcdFx0XHRcdHsgZW1pdEV2ZW50OiB0cnVlIH0sXHJcblx0XHRcdFx0XHR0cnVlLFxyXG5cdFx0XHRcdCk7XHJcblx0XHRcdFx0dGhpcy50ZW1wbGF0ZUluZGV4Kys7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0bmdBZnRlclZpZXdJbml0KCkge1xyXG5cdFx0dGhpcy5lZGl0b3JWaWV3ID0gbmV3IEVkaXRvclZpZXcoe1xyXG5cdFx0XHRzdGF0ZTogRWRpdG9yU3RhdGUuY3JlYXRlKHtcclxuXHRcdFx0XHRkb2M6IHRoaXMuZmllbGQoKT8uZmllbGRDb250cm9sPy52YWx1ZSxcclxuXHRcdFx0fSksXHJcblx0XHRcdHBhcmVudDogdGhpcy5jb2RlQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsXHJcblx0XHR9KTtcclxuXHRcdHRoaXMuY21FZGl0b3IgPSB0aGlzLmNvZGVDb250YWluZXIubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuY20tZWRpdG9yJyk7XHJcblx0fVxyXG5cclxuXHRuZ09uRGVzdHJveSgpIHtcclxuXHRcdHRoaXMuZWRpdG9yVmlldy5kZXN0cm95KCk7XHJcblx0fVxyXG5cclxuXHRoYW5kbGVFeHRlbnNpb25zKCkge1xyXG5cdFx0Y29uc3QgZXh0ZW5kc2lvbnMgPSBbXHJcblx0XHRcdGxpbmVOdW1iZXJzKCksXHJcblx0XHRcdGZvbGRHdXR0ZXIoKSxcclxuXHRcdFx0aGlnaGxpZ2h0U3BlY2lhbENoYXJzKCksXHJcblx0XHRcdGhpc3RvcnkoKSxcclxuXHRcdFx0ZHJhd1NlbGVjdGlvbigpLFxyXG5cdFx0XHRkcm9wQ3Vyc29yKCksXHJcblx0XHRcdEVkaXRvclN0YXRlLmFsbG93TXVsdGlwbGVTZWxlY3Rpb25zLm9mKHRydWUpLFxyXG5cdFx0XHRpbmRlbnRPbklucHV0KCksXHJcblx0XHRcdHN5bnRheEhpZ2hsaWdodGluZyhkZWZhdWx0SGlnaGxpZ2h0U3R5bGUpLFxyXG5cdFx0XHRicmFja2V0TWF0Y2hpbmcoKSxcclxuXHRcdFx0Y2xvc2VCcmFja2V0cygpLFxyXG5cdFx0XHRhdXRvY29tcGxldGlvbigpLFxyXG5cdFx0XHRyZWN0YW5ndWxhclNlbGVjdGlvbigpLFxyXG5cdFx0XHRjcm9zc2hhaXJDdXJzb3IoKSxcclxuXHRcdFx0aGlnaGxpZ2h0QWN0aXZlTGluZUd1dHRlcigpLFxyXG5cdFx0XHRoaWdobGlnaHRTZWxlY3Rpb25NYXRjaGVzKCksXHJcblx0XHRcdGtleW1hcC5vZihbXHJcblx0XHRcdFx0Li4uY2xvc2VCcmFja2V0c0tleW1hcCxcclxuXHRcdFx0XHQuLi5kZWZhdWx0S2V5bWFwLFxyXG5cdFx0XHRcdC4uLnNlYXJjaEtleW1hcCxcclxuXHRcdFx0XHQuLi5oaXN0b3J5S2V5bWFwLFxyXG5cdFx0XHRcdC4uLmZvbGRLZXltYXAsXHJcblx0XHRcdFx0Li4uY29tcGxldGlvbktleW1hcCxcclxuXHRcdFx0XHQuLi5saW50S2V5bWFwLFxyXG5cdFx0XHRdKSxcclxuXHRcdFx0RWRpdG9yVmlldy50aGVtZSh7XHJcblx0XHRcdFx0Jy5jbS1ndXR0ZXJzJzoge1xyXG5cdFx0XHRcdFx0YmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQnLFxyXG5cdFx0XHRcdFx0Ym9yZGVyOiAnbm9uZScsXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHQnLmNtLWFjdGl2ZUxpbmVHdXR0ZXInOiB7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6ICd0cmFuc3BhcmVudCcsXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHQnJic6IHsgbWluSGVpZ2h0OiB0aGlzLnByb3BzLm1pbkhlaWdodCA/PyAnODhweCcsIG1heEhlaWdodDogdGhpcy5wcm9wcy5tYXhIZWlnaHQgfHwgJzE1MHB4JyB9LFxyXG5cdFx0XHRcdCcuY20tc2Nyb2xsZXInOiB7IG92ZXJmbG93OiAnYXV0bycsIG1pbkhlaWdodDogdGhpcy5wcm9wcy5taW5IZWlnaHQgPz8gJzg4cHgnIH0sXHJcblx0XHRcdH0pLFxyXG5cdFx0XHR0aGlzLmdldExhbmd1YWdlRXh0ZW5zaW9uKCksXHJcblx0XHRcdEVkaXRvclZpZXcudXBkYXRlTGlzdGVuZXIub2YoKHVwZGF0ZSkgPT4ge1xyXG5cdFx0XHRcdC8vIGlmICh1cGRhdGUudHJhbnNhY3Rpb25zLnNvbWUoKHRyKSA9PiB0ci5pc1VzZXJFdmVudCgnaW5wdXQnKSkpIHtcdH1cclxuXHRcdFx0XHRpZiAodXBkYXRlLmRvY0NoYW5nZWQpIHtcclxuXHRcdFx0XHRcdHRoaXMuZmllbGQoKT8uZmllbGRDb250cm9sPy5zZXRWYWx1ZSh1cGRhdGUuc3RhdGUuZG9jLnRvU3RyaW5nKCkpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSksXHJcblx0XHRdO1xyXG5cdFx0aWYgKHRoaXMucHJvcHMucGxhY2Vob2xkZXIpIHtcclxuXHRcdFx0ZXh0ZW5kc2lvbnMudW5zaGlmdChwbGFjZWhvbGRlcih0aGlzLnByb3BzLnBsYWNlaG9sZGVyKSk7XHJcblx0XHR9XHJcblx0XHRpZiAodGhpcy5wcm9wcy5kaXNhYmxlZCkge1xyXG5cdFx0XHRleHRlbmRzaW9ucy5wdXNoKEVkaXRvclZpZXcuZWRpdGFibGUub2YoZmFsc2UpKTtcclxuXHRcdH1cclxuXHRcdHRoaXMuZWRpdG9yVmlldy5kaXNwYXRjaCh7XHJcblx0XHRcdGVmZmVjdHM6IFN0YXRlRWZmZWN0LnJlY29uZmlndXJlLm9mKGV4dGVuZHNpb25zKSxcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0aGFuZGxlTW9kZWxDaGFuZ2UoKSB7XHJcblx0XHR0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8ubW9kZWxDaGFuZ2Uuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG5cdFx0XHRpZiAoIXRoaXMuZWRpdG9yVmlldy5zdGF0ZS5kb2MubGVuZ3RoICYmIHZhbHVlID09IG51bGwpIHtcclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdH1cclxuXHRcdFx0Y29uc3QgdHJhbnNhY3Rpb24gPSB0aGlzLmVkaXRvclZpZXcuc3RhdGUudXBkYXRlKHtcclxuXHRcdFx0XHRjaGFuZ2VzOiB7IGZyb206IDAsIHRvOiB0aGlzLmVkaXRvclZpZXcuc3RhdGUuZG9jLmxlbmd0aCwgaW5zZXJ0OiB2YWx1ZSB9LFxyXG5cdFx0XHR9KTtcclxuXHRcdFx0dGhpcy5lZGl0b3JWaWV3LmRpc3BhdGNoKHRyYW5zYWN0aW9uKTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0Z2V0TGFuZ3VhZ2VFeHRlbnNpb24oKSB7XHJcblx0XHRzd2l0Y2ggKHRoaXMucHJvcHMubGFuZ3VhZ2UpIHtcclxuXHRcdFx0Y2FzZSAnaHRtbCc6XHJcblx0XHRcdFx0cmV0dXJuIGh0bWwoKTtcclxuXHRcdFx0Y2FzZSAnamF2YXNjcmlwdCc6XHJcblx0XHRcdFx0cmV0dXJuIGphdmFzY3JpcHQoKTtcclxuXHRcdFx0Y2FzZSAnanNvbic6XHJcblx0XHRcdFx0cmV0dXJuIGpzb24oKTtcclxuXHRcdFx0ZGVmYXVsdDpcclxuXHRcdFx0XHRyZXR1cm4gamF2YXNjcmlwdCgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0bWluTGluZXMobWluOiBudW1iZXIpIHtcclxuXHRcdHJldHVybiBFZGl0b3JWaWV3LnVwZGF0ZUxpc3RlbmVyLm9mKCh2KSA9PiB7XHJcblx0XHRcdGNvbnN0IGRvYyA9IHYuc3RhdGUuZG9jO1xyXG5cdFx0XHRjb25zdCBsaW5lQ291bnQgPSBkb2MubGluZXM7XHJcblx0XHRcdGlmIChsaW5lQ291bnQgPCBtaW4pIHtcclxuXHRcdFx0XHRjb25zdCBuZXdMaW5lcyA9IEFycmF5KG1pbiArIDEgLSBsaW5lQ291bnQpXHJcblx0XHRcdFx0XHQuZmlsbCgnJylcclxuXHRcdFx0XHRcdC5qb2luKCdcXG4nKTtcclxuXHRcdFx0XHRjb25zdCB0cmFuc2FjdGlvbiA9IHYuc3RhdGUudXBkYXRlKHtcclxuXHRcdFx0XHRcdGNoYW5nZXM6IHsgZnJvbTogZG9jLmxlbmd0aCwgaW5zZXJ0OiBuZXdMaW5lcyB9LFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdHYudmlldy5kaXNwYXRjaCh0cmFuc2FjdGlvbik7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxufVxyXG4iXX0=
|
|
208
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZW1pcnJvci50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLWVsZW1lbnQtdWkvc3JjL2xpYi9mb3JtL2Zvcm0tdHlwZS9jb2RlbWlycm9yLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdELE9BQU8sRUFDTixVQUFVLEVBQ1YsTUFBTSxFQUNOLHFCQUFxQixFQUNyQixhQUFhLEVBQ2IsVUFBVSxFQUNWLG9CQUFvQixFQUNwQixlQUFlLEVBQ2YsV0FBVyxFQUNYLHlCQUF5QixFQUN6QixXQUFXLEdBQ1gsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekksT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJB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VUFBVSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQ2xDLENBQUMsQ0FBQyxDQUFDO2dCQUNKLE9BQU8sSUFBSSxDQUFDO1lBQ2IsQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUMvQixPQUFPLEtBQUssQ0FBQztZQUNkLENBQUM7UUFDRixDQUFDLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDaEI7Z0JBQ0MsR0FBRyxFQUFFLGFBQWE7Z0JBQ2xCLEdBQUcsRUFBRSxhQUFhO2dCQUNsQixHQUFHLEVBQUUsYUFBYTtnQkFDbEIsY0FBYyxFQUFFLElBQUk7YUFDcEI7U0FDRCxDQUFDLENBQUM7SUFDSixDQUFDOytHQWhNVyxtQkFBbUI7bUdBQW5CLG1CQUFtQiwrVEFIckIsNEJBQTRCLHVpTEFENUIsbUJBQW1COzs0RkFJakIsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNDLGlCQUFpQixjQUNmLElBQUksV0FDUCxDQUFDLG1CQUFtQixDQUFDLFlBQ3BCLDRCQUE0QjswR0FJUyxhQUFhO3NCQUEzRCxTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCwgaW5wdXQsIGVmZmVjdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZvcm1GaWVsZCwgRmllbGRQcm9wcyB9IGZyb20gJy4uL2Zvcm0tZmllbGQvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IGphdmFzY3JpcHQgfSBmcm9tICdAY29kZW1pcnJvci9sYW5nLWphdmFzY3JpcHQnO1xyXG5pbXBvcnQgeyBodG1sIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZy1odG1sJztcclxuaW1wb3J0IHsganNvbiB9IGZyb20gJ0Bjb2RlbWlycm9yL2xhbmctanNvbic7XHJcbmltcG9ydCB7IEVkaXRvclN0YXRlLCBTdGF0ZUVmZmVjdCB9IGZyb20gJ0Bjb2RlbWlycm9yL3N0YXRlJztcclxuaW1wb3J0IHtcclxuXHRFZGl0b3JWaWV3LFxyXG5cdGtleW1hcCxcclxuXHRoaWdobGlnaHRTcGVjaWFsQ2hhcnMsXHJcblx0ZHJhd1NlbGVjdGlvbixcclxuXHRkcm9wQ3Vyc29yLFxyXG5cdHJlY3Rhbmd1bGFyU2VsZWN0aW9uLFxyXG5cdGNyb3NzaGFpckN1cnNvcixcclxuXHRsaW5lTnVtYmVycyxcclxuXHRoaWdobGlnaHRBY3RpdmVMaW5lR3V0dGVyLFxyXG5cdHBsYWNlaG9sZGVyLFxyXG59IGZyb20gJ0Bjb2RlbWlycm9yL3ZpZXcnO1xyXG5pbXBvcnQgeyBkZWZhdWx0SGlnaGxpZ2h0U3R5bGUsIHN5bnRheEhpZ2hsaWdodGluZywgaW5kZW50T25JbnB1dCwgYnJhY2tldE1hdGNoaW5nLCBmb2xkR3V0dGVyLCBmb2xkS2V5bWFwIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZ3VhZ2UnO1xyXG5pbXBvcnQgeyBkZWZhdWx0S2V5bWFwLCBoaXN0b3J5LCBoaXN0b3J5S2V5bWFwIH0gZnJvbSAnQGNvZGVtaXJyb3IvY29tbWFuZHMnO1xyXG5pbXBvcnQgeyBzZWFyY2hLZXltYXAsIGhpZ2hsaWdodFNlbGVjdGlvbk1hdGNoZXMgfSBmcm9tICdAY29kZW1pcnJvci9zZWFyY2gnO1xyXG5pbXBvcnQgeyBhdXRvY29tcGxldGlvbiwgY29tcGxldGlvbktleW1hcCwgY2xvc2VCcmFja2V0cywgY2xvc2VCcmFja2V0c0tleW1hcCB9IGZyb20gJ0Bjb2RlbWlycm9yL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IEFjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgbGludEtleW1hcCB9IGZyb20gJ0Bjb2RlbWlycm9yL2xpbnQnO1xyXG5pbXBvcnQgcHJldHRpZXIgZnJvbSAncHJldHRpZXInO1xyXG5pbXBvcnQgdHlwZXNjcmlwdCBmcm9tICdwcmV0dGllci9wbHVnaW5zL3R5cGVzY3JpcHQnO1xyXG5pbXBvcnQgZXN0cmVlIGZyb20gJ3ByZXR0aWVyL3BsdWdpbnMvZXN0cmVlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29kZU1pcnJvclByb3BzIGV4dGVuZHMgRmllbGRQcm9wcyB7XHJcblx0bGFuZ3VhZ2U/OiAnaHRtbCcgfCAnamF2YXNjcmlwdCcgfCAnanNvbic7XHJcblx0bWF4SGVpZ2h0Pzogc3RyaW5nO1xyXG5cdG1pbkhlaWdodD86IHN0cmluZztcclxuXHRwbGFjZWhvbGRlcj86IHN0cmluZztcclxuXHR0ZW1wbGF0ZXM/OiBzdHJpbmdbXTtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdmb3JtLWNvZGVtaXJyb3InLFxyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0aW1wb3J0czogW1JlYWN0aXZlRm9ybXNNb2R1bGVdLFxyXG5cdHRlbXBsYXRlOiBgPGRpdiAjY29kZUNvbnRhaW5lcj48L2Rpdj5gLFxyXG5cdHN0eWxlVXJsOiAnLi4vLi4vc3R5bGVzL3N0eWxlcy5zY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvZGVNaXJyb3JDb21wb25lbnQge1xyXG5cdEBWaWV3Q2hpbGQoJ2NvZGVDb250YWluZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgY29kZUNvbnRhaW5lciE6IEVsZW1lbnRSZWY7XHJcblx0Y21FZGl0b3IhOiBFbGVtZW50UmVmO1xyXG5cdGZpZWxkID0gaW5wdXQ8Rm9ybUZpZWxkPigpO1xyXG5cdHByb3BzOiBDb2RlTWlycm9yUHJvcHMgPSB7fTtcclxuXHRlZGl0b3JWaWV3ITogRWRpdG9yVmlldztcclxuXHR0ZW1wbGF0ZUluZGV4ID0gMDtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIGFjdGlvbjogQWN0aW9uU2VydmljZSxcclxuXHRcdHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuXHQpIHtcclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLmZpZWxkKCkpIHtcclxuXHRcdFx0XHR0aGlzLnByb3BzID0gdGhpcy5maWVsZCgpIS5jb2RlTWlycm9yUHJvcHMhO1xyXG5cdFx0XHRcdHRoaXMuaGFuZGxlTW9kZWxDaGFuZ2UoKTtcclxuXHRcdFx0XHR0aGlzLmhhbmRsZUV4dGVuc2lvbnMoKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRjb25zdCBsYWJlbEFjdGlvbiA9IHRoaXMuYWN0aW9uLmdldEZpZWxkTGFiZWxBY3Rpb24oKTtcclxuXHRcdFx0aWYgKCFsYWJlbEFjdGlvbiB8fCBsYWJlbEFjdGlvbj8ua2V5ICE9IHRoaXMuZmllbGQoKT8udXVpZCkge1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnbW91c2VlbnRlcicpIHtcclxuXHRcdFx0XHR0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuY21FZGl0b3IsICduZy1ob3ZlcmVkJyk7XHJcblx0XHRcdH0gZWxzZSBpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnbW91c2VsZWF2ZScpIHtcclxuXHRcdFx0XHR0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuY21FZGl0b3IsICduZy1ob3ZlcmVkJyk7XHJcblx0XHRcdH0gZWxzZSBpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnY2xpY2snKSB7XHJcblx0XHRcdFx0dGhpcy5lZGl0b3JWaWV3LmZvY3VzKCk7XHJcblx0XHRcdH0gZWxzZSBpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnZGJsY2xpY2snKSB7XHJcblx0XHRcdFx0aWYgKCF0aGlzLnByb3BzLnRlbXBsYXRlcyB8fCAhdGhpcy5wcm9wcy50ZW1wbGF0ZXMubGVuZ3RoKSByZXR1cm47XHJcblx0XHRcdFx0dGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LnNldFZhbHVlKFxyXG5cdFx0XHRcdFx0dGhpcy5wcm9wcy50ZW1wbGF0ZXNbXHJcblx0XHRcdFx0XHRcdCgodGhpcy50ZW1wbGF0ZUluZGV4ICUgdGhpcy5wcm9wcy50ZW1wbGF0ZXMubGVuZ3RoKSArIHRoaXMucHJvcHMudGVtcGxhdGVzLmxlbmd0aCkgJSB0aGlzLnByb3BzLnRlbXBsYXRlcy5sZW5ndGhcclxuXHRcdFx0XHRcdF0sXHJcblx0XHRcdFx0XHR7IGVtaXRFdmVudDogdHJ1ZSB9LFxyXG5cdFx0XHRcdFx0dHJ1ZSxcclxuXHRcdFx0XHQpO1xyXG5cdFx0XHRcdHRoaXMudGVtcGxhdGVJbmRleCsrO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuXHRcdHRoaXMuZWRpdG9yVmlldyA9IG5ldyBFZGl0b3JWaWV3KHtcclxuXHRcdFx0c3RhdGU6IEVkaXRvclN0YXRlLmNyZWF0ZSh7XHJcblx0XHRcdFx0ZG9jOiB0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8udmFsdWUsXHJcblx0XHRcdH0pLFxyXG5cdFx0XHRwYXJlbnQ6IHRoaXMuY29kZUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LFxyXG5cdFx0fSk7XHJcblx0XHR0aGlzLmNtRWRpdG9yID0gdGhpcy5jb2RlQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmNtLWVkaXRvcicpO1xyXG5cdH1cclxuXHJcblx0bmdPbkRlc3Ryb3koKSB7XHJcblx0XHR0aGlzLmVkaXRvclZpZXcuZGVzdHJveSgpO1xyXG5cdH1cclxuXHJcblx0aGFuZGxlRXh0ZW5zaW9ucygpIHtcclxuXHRcdGNvbnN0IGV4dGVuZHNpb25zID0gW1xyXG5cdFx0XHRsaW5lTnVtYmVycygpLFxyXG5cdFx0XHRmb2xkR3V0dGVyKCksXHJcblx0XHRcdGhpZ2hsaWdodFNwZWNpYWxDaGFycygpLFxyXG5cdFx0XHRoaXN0b3J5KCksXHJcblx0XHRcdGRyYXdTZWxlY3Rpb24oKSxcclxuXHRcdFx0ZHJvcEN1cnNvcigpLFxyXG5cdFx0XHRFZGl0b3JTdGF0ZS5hbGxvd011bHRpcGxlU2VsZWN0aW9ucy5vZih0cnVlKSxcclxuXHRcdFx0aW5kZW50T25JbnB1dCgpLFxyXG5cdFx0XHRzeW50YXhIaWdobGlnaHRpbmcoZGVmYXVsdEhpZ2hsaWdodFN0eWxlKSxcclxuXHRcdFx0YnJhY2tldE1hdGNoaW5nKCksXHJcblx0XHRcdGNsb3NlQnJhY2tldHMoKSxcclxuXHRcdFx0YXV0b2NvbXBsZXRpb24oKSxcclxuXHRcdFx0cmVjdGFuZ3VsYXJTZWxlY3Rpb24oKSxcclxuXHRcdFx0Y3Jvc3NoYWlyQ3Vyc29yKCksXHJcblx0XHRcdGhpZ2hsaWdodEFjdGl2ZUxpbmVHdXR0ZXIoKSxcclxuXHRcdFx0aGlnaGxpZ2h0U2VsZWN0aW9uTWF0Y2hlcygpLFxyXG5cdFx0XHR0aGlzLmZvcm1hdHRpbmcoKSxcclxuXHRcdFx0a2V5bWFwLm9mKFtcclxuXHRcdFx0XHQuLi5jbG9zZUJyYWNrZXRzS2V5bWFwLFxyXG5cdFx0XHRcdC4uLmRlZmF1bHRLZXltYXAsXHJcblx0XHRcdFx0Li4uc2VhcmNoS2V5bWFwLFxyXG5cdFx0XHRcdC4uLmhpc3RvcnlLZXltYXAsXHJcblx0XHRcdFx0Li4uZm9sZEtleW1hcCxcclxuXHRcdFx0XHQuLi5jb21wbGV0aW9uS2V5bWFwLFxyXG5cdFx0XHRcdC4uLmxpbnRLZXltYXAsXHJcblx0XHRcdF0pLFxyXG5cdFx0XHRFZGl0b3JWaWV3LnRoZW1lKHtcclxuXHRcdFx0XHQnLmNtLWd1dHRlcnMnOiB7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6ICd0cmFuc3BhcmVudCcsXHJcblx0XHRcdFx0XHRib3JkZXI6ICdub25lJyxcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdCcuY20tYWN0aXZlTGluZUd1dHRlcic6IHtcclxuXHRcdFx0XHRcdGJhY2tncm91bmRDb2xvcjogJ3RyYW5zcGFyZW50JyxcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdCcmJzogeyBtaW5IZWlnaHQ6IHRoaXMucHJvcHMubWluSGVpZ2h0ID8/ICc4OHB4JywgbWF4SGVpZ2h0OiB0aGlzLnByb3BzLm1heEhlaWdodCB8fCAnMjA0cHgnIH0sXHJcblx0XHRcdFx0Jy5jbS1zY3JvbGxlcic6IHsgb3ZlcmZsb3c6ICdhdXRvJywgbWluSGVpZ2h0OiB0aGlzLnByb3BzLm1pbkhlaWdodCA/PyAnODhweCcgfSxcclxuXHRcdFx0fSksXHJcblx0XHRcdHRoaXMuZ2V0TGFuZ3VhZ2VFeHRlbnNpb24oKSxcclxuXHRcdFx0RWRpdG9yVmlldy51cGRhdGVMaXN0ZW5lci5vZigodXBkYXRlKSA9PiB7XHJcblx0XHRcdFx0Ly8gaWYgKHVwZGF0ZS50cmFuc2FjdGlvbnMuc29tZSgodHIpID0+IHRyLmlzVXNlckV2ZW50KCdpbnB1dCcpKSkge1x0fVxyXG5cdFx0XHRcdGlmICh1cGRhdGUuZG9jQ2hhbmdlZCkge1xyXG5cdFx0XHRcdFx0dGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LnNldFZhbHVlKHVwZGF0ZS5zdGF0ZS5kb2MudG9TdHJpbmcoKSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KSxcclxuXHRcdF07XHJcblx0XHRpZiAodGhpcy5wcm9wcy5wbGFjZWhvbGRlcikge1xyXG5cdFx0XHRleHRlbmRzaW9ucy51bnNoaWZ0KHBsYWNlaG9sZGVyKHRoaXMucHJvcHMucGxhY2Vob2xkZXIpKTtcclxuXHRcdH1cclxuXHRcdGlmICh0aGlzLnByb3BzLmRpc2FibGVkKSB7XHJcblx0XHRcdGV4dGVuZHNpb25zLnB1c2goRWRpdG9yVmlldy5lZGl0YWJsZS5vZihmYWxzZSkpO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5lZGl0b3JWaWV3LmRpc3BhdGNoKHtcclxuXHRcdFx0ZWZmZWN0czogU3RhdGVFZmZlY3QucmVjb25maWd1cmUub2YoZXh0ZW5kc2lvbnMpLFxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRoYW5kbGVNb2RlbENoYW5nZSgpIHtcclxuXHRcdHRoaXMuZmllbGQoKT8uZmllbGRDb250cm9sPy5tb2RlbENoYW5nZS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcblx0XHRcdGlmICghdGhpcy5lZGl0b3JWaWV3LnN0YXRlLmRvYy5sZW5ndGggJiYgdmFsdWUgPT0gbnVsbCkge1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0XHRjb25zdCB0cmFuc2FjdGlvbiA9IHRoaXMuZWRpdG9yVmlldy5zdGF0ZS51cGRhdGUoe1xyXG5cdFx0XHRcdGNoYW5nZXM6IHsgZnJvbTogMCwgdG86IHRoaXMuZWRpdG9yVmlldy5zdGF0ZS5kb2MubGVuZ3RoLCBpbnNlcnQ6IHZhbHVlIH0sXHJcblx0XHRcdH0pO1xyXG5cdFx0XHR0aGlzLmVkaXRvclZpZXcuZGlzcGF0Y2godHJhbnNhY3Rpb24pO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRnZXRMYW5ndWFnZUV4dGVuc2lvbigpIHtcclxuXHRcdHN3aXRjaCAodGhpcy5wcm9wcy5sYW5ndWFnZSkge1xyXG5cdFx0XHRjYXNlICdodG1sJzpcclxuXHRcdFx0XHRyZXR1cm4gaHRtbCgpO1xyXG5cdFx0XHRjYXNlICdqYXZhc2NyaXB0JzpcclxuXHRcdFx0XHRyZXR1cm4gamF2YXNjcmlwdCgpO1xyXG5cdFx0XHRjYXNlICdqc29uJzpcclxuXHRcdFx0XHRyZXR1cm4ganNvbigpO1xyXG5cdFx0XHRkZWZhdWx0OlxyXG5cdFx0XHRcdHJldHVybiBqYXZhc2NyaXB0KCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRtaW5MaW5lcyhtaW46IG51bWJlcikge1xyXG5cdFx0cmV0dXJuIEVkaXRvclZpZXcudXBkYXRlTGlzdGVuZXIub2YoKHYpID0+IHtcclxuXHRcdFx0Y29uc3QgZG9jID0gdi5zdGF0ZS5kb2M7XHJcblx0XHRcdGNvbnN0IGxpbmVDb3VudCA9IGRvYy5saW5lcztcclxuXHRcdFx0aWYgKGxpbmVDb3VudCA8IG1pbikge1xyXG5cdFx0XHRcdGNvbnN0IG5ld0xpbmVzID0gQXJyYXkobWluICsgMSAtIGxpbmVDb3VudClcclxuXHRcdFx0XHRcdC5maWxsKCcnKVxyXG5cdFx0XHRcdFx0LmpvaW4oJ1xcbicpO1xyXG5cdFx0XHRcdGNvbnN0IHRyYW5zYWN0aW9uID0gdi5zdGF0ZS51cGRhdGUoe1xyXG5cdFx0XHRcdFx0Y2hhbmdlczogeyBmcm9tOiBkb2MubGVuZ3RoLCBpbnNlcnQ6IG5ld0xpbmVzIH0sXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0di52aWV3LmRpc3BhdGNoKHRyYW5zYWN0aW9uKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRmb3JtYXR0aW5nKCkge1xyXG5cdFx0Y29uc3QgZm9ybWF0Q29tbWFuZCA9ICh2aWV3OiBhbnkpID0+IHtcclxuXHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRwcmV0dGllclxyXG5cdFx0XHRcdFx0LmZvcm1hdCh2aWV3LnN0YXRlLmRvYy50b1N0cmluZygpLCB7XHJcblx0XHRcdFx0XHRcdHBhcnNlcjogJ3R5cGVzY3JpcHQnLFxyXG5cdFx0XHRcdFx0XHRwbHVnaW5zOiBbdHlwZXNjcmlwdCwgZXN0cmVlXSxcclxuXHRcdFx0XHRcdFx0c2VtaTogdHJ1ZSxcclxuXHRcdFx0XHRcdFx0c2luZ2xlUXVvdGU6IHRydWUsXHJcblx0XHRcdFx0XHRcdHRhYldpZHRoOiAyLFxyXG5cdFx0XHRcdFx0XHRwcmludFdpZHRoOiA4MCxcclxuXHRcdFx0XHRcdFx0dHJhaWxpbmdDb21tYTogJ2FsbCcsXHJcblx0XHRcdFx0XHRcdGFycm93UGFyZW5zOiAnYWx3YXlzJyxcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHQudGhlbigoZm9ybWF0dGVkKSA9PiB7XHJcblx0XHRcdFx0XHRcdGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5lZGl0b3JWaWV3LnN0YXRlLnVwZGF0ZSh7XHJcblx0XHRcdFx0XHRcdFx0Y2hhbmdlczogeyBmcm9tOiAwLCB0bzogdGhpcy5lZGl0b3JWaWV3LnN0YXRlLmRvYy5sZW5ndGgsIGluc2VydDogZm9ybWF0dGVkIH0sXHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHR0aGlzLmVkaXRvclZpZXcuZGlzcGF0Y2godHJhbnNhY3Rpb24pO1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygn5qC85byP5YyW5oiQ5YqfOicsIGZvcm1hdHRlZCk7XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdFx0fSBjYXRjaCAoZXJyb3IpIHtcclxuXHRcdFx0XHRjb25zb2xlLmVycm9yKCfmoLzlvI/ljJbplJnor686JywgZXJyb3IpO1xyXG5cdFx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdFx0fVxyXG5cdFx0fTtcclxuXHRcdHJldHVybiBrZXltYXAub2YoW1xyXG5cdFx0XHR7XHJcblx0XHRcdFx0a2V5OiAnU2hpZnQtQWx0LWYnLFxyXG5cdFx0XHRcdG1hYzogJ1NoaWZ0LUNtZC1mJyxcclxuXHRcdFx0XHRydW46IGZvcm1hdENvbW1hbmQsXHJcblx0XHRcdFx0cHJldmVudERlZmF1bHQ6IHRydWUsXHJcblx0XHRcdH0sXHJcblx0XHRdKTtcclxuXHR9XHJcbn1cclxuIl19
|