dmencu 0.4.3 → 0.4.4
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.
|
@@ -707,4 +707,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
707
707
|
exports.emergeAppDmEncu = emergeAppDmEncu;
|
|
708
708
|
exports.AppDmEncu = emergeAppDmEncu((0, procesamiento_1.emergeAppProcesamiento)((0, procesamiento_1.emergeAppConsistencias)((0, procesamiento_1.emergeAppVarCal)((0, procesamiento_1.emergeAppDatosExt)((0, procesamiento_1.emergeAppOperativos)(procesamiento_1.AppBackend))))));
|
|
709
709
|
});
|
|
710
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWRtZW5jdS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2ZXIvYXBwLWRtZW5jdS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUFBLFlBQVksQ0FBQzs7O0lBR2IsaURBQTBMO0lBQzFMLDJEQUF5RTtJQUV6RSx3Q0FBd0M7SUFFeEMsd0NBQXdDO0lBUXhDLDJDQUF3QztJQUV4Qyw2QkFBNkI7SUFFN0Isa0NBQWtDO0lBQ2xDLG1DQUFtQztJQUVuQywyQkFBbUM7SUFFbkMsK0NBQW9EO0lBQ3BELHFEQUF1RDtJQUN2RCxpRUFBNkQ7SUFDN0QsK0RBQWdFO0lBQ2hFLCtEQUFnRTtJQUNoRSwrREFBZ0U7SUFDaEUsdUVBQWdFO0lBQ2hFLCtEQUE0RDtJQUM1RCw2REFBMkQ7SUFDM0QsNkRBQTJEO0lBQzNELHFEQUF1RDtJQUN2RCxpRUFBNkQ7SUFDN0QseURBQXlEO0lBQ3pELHlFQUFpRTtJQUVqRSxpREFBcUQ7SUFDckQseURBQXlEO0lBQ3pELDJDQUFrRDtJQUNsRCwrREFBNEQ7SUFDNUQsbURBQXNEO0lBQ3RELHFEQUF1RDtJQUN2RCwyREFBMEQ7SUFDMUQsbURBQXNEO0lBQ3RELCtDQUFvRDtJQUNwRCxxRUFBK0Q7SUFDL0QsaURBQXFEO0lBQ3JELHlEQUd5RDtJQUN6RCw2REFBMkQ7SUFDM0QscUZBQTRFO0lBQzVFLHFFQUErRDtJQUMvRCw2REFBMkQ7SUFDM0QsNkRBQTJEO0lBQzNELDZEQUEyRDtJQUMzRCx5REFBeUQ7SUFDekQsaUVBQTZEO0lBQzdELDZFQUFtRTtJQUNuRSxxRUFBK0Q7SUFDL0QsK0RBQTREO0lBQzVELG1FQUE4RDtJQUM5RCx1REFBd0Q7SUFDeEQsbURBQXNEO0lBQ3RELG1EQUFzRDtJQUN0RCxxREFBdUQ7SUFDdkQsMkRBQTBEO0lBQzFELDJEQUEwRDtJQUMxRCw2REFBMkQ7SUFFM0QsbURBQXNEO0lBQ3RELHFEQUF1RDtJQUN2RCxxRUFB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QUFRLEVBQUMsT0FBTzt3QkFDaEIsUUFBUSxFQUFFLEtBQUs7cUJBQ2xCLENBQUMsQ0FBQztvQkFDSCxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDO3dCQUN2QixJQUFJLEVBQUMsaUJBQWlCO3dCQUN0QixRQUFRLEVBQUMsU0FBUzt3QkFDbEIsWUFBWSxFQUFFLEtBQUs7d0JBQ25CLFFBQVEsRUFBRSxPQUFPLENBQUMsT0FBTyxJQUFFLENBQUMsT0FBTyxFQUFDLGdCQUFnQixDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO3FCQUFDLENBQ3BGLENBQUM7Z0JBQ04sQ0FBQyxDQUFDLENBQUE7Z0JBRUYsdUVBQXVFO2dCQUN2RSxnR0FBZ0c7Z0JBQ2hHLEtBQUs7WUFDVCxDQUFDO1NBQ0YsQ0FBQTtJQUNILENBQUM7SUE5bkJELDBDQThuQkM7SUFFVSxRQUFBLFNBQVMsR0FBRyxlQUFlLENBQUMsSUFBQSxzQ0FBc0IsRUFBQyxJQUFBLHNDQUFzQixFQUFDLElBQUEsK0JBQWUsRUFBQyxJQUFBLGlDQUFpQixFQUFDLElBQUEsbUNBQW1CLEVBQUMsMEJBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5cclxuaW1wb3J0ICogYXMgcHJvY2VzYW1pZW50byBmcm9tIFwicHJvY2VzYW1pZW50b1wiO1xyXG5pbXBvcnQge2VtZXJnZUFwcFByb2Nlc2FtaWVudG8sIGVtZXJnZUFwcENvbnNpc3RlbmNpYXMsIGVtZXJnZUFwcFZhckNhbCwgZW1lcmdlQXBwRGF0b3NFeHQsIGVtZXJnZUFwcE9wZXJhdGl2b3MsIEFwcEJhY2tlbmQsIENsaWVudE1vZHVsZURlZmluaXRpb24sIE9wdHNDbGllbnRQYWdlfSBmcm9tIFwicHJvY2VzYW1pZW50b1wiO1xyXG5pbXBvcnQge2dldE9wZXJhdGl2b0FjdHVhbCwgUHJvY2VkdXJlc0RtRW5jdX0gZnJvbSBcIi4vcHJvY2VkdXJlcy1kbWVuY3VcIjtcclxuXHJcbmltcG9ydCAqIGFzIHBnIGZyb20gXCJwZy1wcm9taXNlLXN0cmljdFwiO1xyXG5pbXBvcnQge2pzb259IGZyb20gXCJwZy1wcm9taXNlLXN0cmljdFwiO1xyXG5pbXBvcnQgKiBhcyBtaW5pVG9vbHMgZnJvbSBcIm1pbmktdG9vbHNcIjtcclxuaW1wb3J0IHtcclxuICAgIENsaWVudCwgQ29udGV4dCwgQ29yZUZ1bmN0aW9uUGFyYW1ldGVycywgXHJcbiAgICBNZW51SW5mb0Jhc2UsIFxyXG4gICAgUmVxdWVzdCwgUmVzcG9uc2UsXHJcbiAgICBTdWZpam9zQW1iaWVudGUsXHJcbn0gZnJvbSBcIi4vdHlwZXMtZG1lbmN1XCI7XHJcblxyXG5pbXBvcnQgeyB1bmV4cGVjdGVkIH0gZnJvbSBcImNhc3QtZXJyb3JcIjtcclxuXHJcbmltcG9ydCAqIGFzIHlhemwgZnJvbSBcInlhemxcIjtcclxuaW1wb3J0IHsgTmV4dEZ1bmN0aW9uIH0gZnJvbSBcImV4cHJlc3Mtc2VydmUtc3RhdGljLWNvcmVcIjtcclxuaW1wb3J0ICogYXMgbGlrZUFyIGZyb20gXCJsaWtlLWFyXCI7XHJcbmltcG9ydCAqIGFzIGV4cHJlc3MgZnJvbSBcImV4cHJlc3NcIjtcclxuXHJcbmltcG9ydCB7cHJvbWlzZXMgYXMgZnMgfSBmcm9tIFwiZnNcIjtcclxuXHJcbmltcG9ydCB7IHJvbGVzICAgICAgICAgICAgICAgfSBmcm9tIFwiLi90YWJsZS1yb2xlc1wiO1xyXG5pbXBvcnQgeyBwZXJzb25hbCAgICAgICAgICAgIH0gZnJvbSBcIi4vdGFibGUtcGVyc29uYWxcIjtcclxuaW1wb3J0IHsgcmVjZXBjaW9uaXN0YXMgICAgICB9IGZyb20gXCIuL3RhYmxlLXJlY2VwY2lvbmlzdGFzXCI7XHJcbmltcG9ydCB7IGVuY3Vlc3RhZG9yZXNfYXNpZ25hZG9zIH0gZnJvbSBcIi4vdGFibGUtZW5jdWVzdGFkb3Jlc1wiO1xyXG5pbXBvcnQgeyByZWN1cGVyYWRvcmVzX2FzaWduYWRvcyB9IGZyb20gXCIuL3RhYmxlLWVuY3Vlc3RhZG9yZXNcIjtcclxuaW1wb3J0IHsgc3VwZXJ2aXNvcmVzX2FzaWduYWRvcyAgfSBmcm9tIFwiLi90YWJsZS1lbmN1ZXN0YWRvcmVzXCI7XHJcbmltcG9ydCB7IG1pc19lbmN1ZXN0YWRvcmVzICAgfSBmcm9tIFwiLi90YWJsZS1taXNfZW5jdWVzdGFkb3Jlc1wiO1xyXG5pbXBvcnQgeyByZWN1cGVyYWRvcmVzICAgICAgIH0gZnJvbSBcIi4vdGFibGUtcmVjdXBlcmFkb3Jlc1wiO1xyXG5pbXBvcnQgeyBzdXBlcnZpc29yZXMgICAgICAgIH0gZnJvbSBcIi4vdGFibGUtc3VwZXJ2aXNvcmVzXCI7XHJcbmltcG9ydCB7IHBlcnNvbmFsX3JvbCAgICAgICAgfSBmcm9tIFwiLi90YWJsZS1wZXJzb25hbF9yb2xcIjtcclxuaW1wb3J0IHsgcGVybWlzb3MgICAgICAgICAgICB9IGZyb20gXCIuL3RhYmxlLXBlcm1pc29zXCI7XHJcbmltcG9ydCB7IHJvbGVzX3Blcm1pc29zICAgICAgfSBmcm9tIFwiLi90YWJsZS1yb2xlc19wZXJtaXNvc1wiO1xyXG5pbXBvcnQgeyBwYXJhbWV0cm9zICAgICAgICAgIH0gZnJvbSBcIi4vdGFibGUtcGFyYW1ldHJvc1wiO1xyXG5pbXBvcnQgeyByb2xlc19zdWJvcmRpbmFkb3MgIH0gZnJvbSBcIi4vdGFibGUtcm9sZXNfc3Vib3JkaW5hZG9zXCI7XHJcblxyXG5pbXBvcnQge25vX3JlYSAgICAgICAgICAgICAgIH0gZnJvbSBcIi4vdGFibGUtbm9fcmVhXCI7XHJcbmltcG9ydCB7bm9fcmVhX3N1cCAgICAgICAgICAgfSBmcm9tIFwiLi90YWJsZS1ub19yZWFfc3VwXCI7XHJcbmltcG9ydCB7dGVtICAgICAgICAgICAgICAgICAgfSBmcm9tIFwiLi90YWJsZS10ZW1cIjtcclxuaW1wb3J0IHt0ZW1fcmVjZXBjaW9uICAgICAgICB9IGZyb20gXCIuL3RhYmxlLXRlbV9yZWNlcGNpb25cIjtcclxuaW1wb3J0IHtzZW1hbmFzICAgICAgICAgICAgICB9IGZyb20gXCIuL3RhYmxlLXNlbWFuYXNcIjtcclxuaW1wb3J0IHsgdXN1YXJpb3MgICAgICAgICAgICB9IGZyb20gJy4vdGFibGUtdXN1YXJpb3MnO1xyXG5pbXBvcnQgeyBvcGVyYWNpb25lcyAgICAgICAgIH0gZnJvbSAnLi90YWJsZS1vcGVyYWNpb25lcyc7XHJcbmltcG9ydCB7IGNvbXVuYXMgICAgICAgICAgICAgfSBmcm9tICcuL3RhYmxlLWNvbXVuYXMnO1xyXG5pbXBvcnQgeyBhcmVhcyAgICAgICAgICAgICAgIH0gZnJvbSAnLi90YWJsZS1hcmVhcyc7XHJcbmltcG9ydCB7IHNpbmNyb25pemFjaW9uZXMgICAgfSBmcm9tICcuL3RhYmxlLXNpbmNyb25pemFjaW9uZXMnO1xyXG5pbXBvcnQgeyB0YXJlYXMgICAgICAgICAgICAgIH0gZnJvbSAnLi90YWJsZS10YXJlYXMnO1xyXG5pbXBvcnQgeyB0YXJlYXNfdGVtLCBcclxuICAgICAgICAgdGFyZWFzX3RlbV9lbmN1LCBcclxuICAgICAgICAgdGFyZWFzX3RlbV9yZWN1LCBcclxuICAgICAgICAgdGFyZWFzX3RlbV9zdXBlICAgICB9IGZyb20gJy4vdGFibGUtdGFyZWFzX3RlbSc7XHJcbmltcG9ydCB7IHRhcmVhc19hcmVhcyAgICAgICAgfSBmcm9tICcuL3RhYmxlLXRhcmVhc19hcmVhcyc7XHJcbmltcG9ydCB7IGFyZWFzX2FzaWduYWNpb25fZ2VuZXJhbCB9IGZyb20gJy4vdGFibGUtYXJlYXNfYXNpZ25hY2lvbl9nZW5lcmFsJztcclxuaW1wb3J0IHsgZ3JpbGxhX2hvamFfcnV0YSAgICB9IGZyb20gJy4vdGFibGUtZ3JpbGxhX2hvamFfcnV0YSc7XHJcbmltcG9ydCB7IHRfZW5jdV9hcmVhcyAgICAgICAgfSBmcm9tICcuL3RhYmxlLXRhcmVhc19hcmVhcyc7XHJcbmltcG9ydCB7IHRfcmVjdV9hcmVhcyAgICAgICAgfSBmcm9tICcuL3RhYmxlLXRhcmVhc19hcmVhcyc7XHJcbmltcG9ydCB7IHRfc3VwZV9hcmVhcyAgICAgICAgfSBmcm9tICcuL3RhYmxlLXRhcmVhc19hcmVhcyc7XHJcbmltcG9ydCB7IG1pc190YXJlYXMgICAgICAgICAgfSBmcm9tICcuL3RhYmxlLW1pc190YXJlYXMnO1xyXG5pbXBvcnQgeyB0ZW1fYXNpZ25hY2lvbiAgICAgIH0gZnJvbSAnLi90YWJsZS10ZW1fYXNpZ25hY2lvbic7XHJcbmltcG9ydCB7IHRhcmVhc190ZW1fcmVjZXBjaW9ufSBmcm9tICcuL3RhYmxlLXRhcmVhc190ZW1fcmVjZXBjaW9uJztcclxuaW1wb3J0IHsgbWlzX3RhcmVhc19hcmVhcyAgICB9IGZyb20gJy4vdGFibGUtbWlzX3RhcmVhc19hcmVhcyc7XHJcbmltcG9ydCB7IGNvbnRyb2xfY2FtcG8gICAgICAgfSBmcm9tICcuL3RhYmxlLWNvbnRyb2xfY2FtcG8nO1xyXG5pbXBvcnQgeyBjb250cm9sX3Jlc3VtZW4gICAgIH0gZnJvbSAnLi90YWJsZS1jb250cm9sX3Jlc3VtZW4nO1xyXG5pbXBvcnQgeyB2aXZpZW5kYXMgICAgICAgICAgIH0gZnJvbSAnLi90YWJsZS12aXZpZW5kYXMnO1xyXG5pbXBvcnQgeyB2aXNpdGFzICAgICAgICAgICAgIH0gZnJvbSAnLi90YWJsZS12aXNpdGFzJztcclxuaW1wb3J0IHsgaG9nYXJlcyAgICAgICAgICAgICB9IGZyb20gJy4vdGFibGUtaG9nYXJlcyc7XHJcbmltcG9ydCB7IHBlcnNvbmFzICAgICAgICAgICAgfSBmcm9tICcuL3RhYmxlLXBlcnNvbmFzJztcclxuaW1wb3J0IHsgdmlzaXRhc19zdXAgICAgICAgICB9IGZyb20gJy4vdGFibGUtdmlzaXRhc19zdXAnO1xyXG5pbXBvcnQgeyBob2dhcmVzX3N1cCAgICAgICAgIH0gZnJvbSAnLi90YWJsZS1ob2dhcmVzX3N1cCc7XHJcbmltcG9ydCB7IHBlcnNvbmFzX3N1cCAgICAgICAgfSBmcm9tICcuL3RhYmxlLXBlcnNvbmFzX3N1cCc7XHJcblxyXG5pbXBvcnQgeyBlc3RhZG9zICAgICAgICAgICAgIH0gZnJvbSAnLi90YWJsZS1lc3RhZG9zJztcclxuaW1wb3J0IHsgYWNjaW9uZXMgICAgICAgICAgICB9IGZyb20gJy4vdGFibGUtYWNjaW9uZXMnO1xyXG5pbXBvcnQgeyBlc3RhZG9zX2FjY2lvbmVzICAgIH0gZnJvbSAnLi90YWJsZS1lc3RhZG9zX2FjY2lvbmVzJztcclxuXHJcblxyXG5leHBvcnQgKiBmcm9tIFwiLi90eXBlcy1kbWVuY3VcIjtcclxuaW1wb3J0IHtkZWZDb25maWd9IGZyb20gXCIuL2RlZi1jb25maWdcIlxyXG5cclxuY29uc3QgQVBQX0RNX1ZFUlNJT049XCIjMjItMTItMTVcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBlbWVyZ2VBcHBEbUVuY3U8VCBleHRlbmRzIHByb2Nlc2FtaWVudG8uQ29uc3RydWN0b3I8cHJvY2VzYW1pZW50by5BcHBQcm9jZXNhbWllbnRvVHlwZT4+KEJhc2U6VCl7XHJcbiAgcmV0dXJuIGNsYXNzIEFwcERtRW5jdSBleHRlbmRzIEJhc2V7XHJcbiAgICBjb25zdHJ1Y3RvciguLi5hcmdzOmFueVtdKXsgXHJcbiAgICAgICAgc3VwZXIoYXJncyk7IFxyXG4gICAgICAgIHRoaXMuY2FjaGVzLnRhYmxlQ29udGVudCA9IHRoaXMuY2FjaGVzLnRhYmxlQ29udGVudCB8fCB7fTtcclxuICAgICAgICB0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQubm9fcmVhPVtdXHJcbiAgICAgICAgdGhpcy5jYWNoZXMudGFibGVDb250ZW50Lm5vX3JlYV9ncm91cHM9W11cclxuICAgICAgICB0aGlzLmNhY2hlcy5tZXRhRW5jSW5jbHVpckNhc2lsbGVyb3NTYWx0b1JFTCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY2FjaGVzLnRpbWVzdGFtcEVzdHJ1Y3R1cmEgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgIH1cclxuICAgIG92ZXJyaWRlIGFzeW5jIGdldFByb2NlZHVyZXMoKXtcclxuICAgICAgICB2YXIgYmUgPSB0aGlzO1xyXG4gICAgICAgIHZhciBwcm9jZWRpbWllbnRvQVJlZW1wbGF6YXI9W1wiY2Fzb19ndWFyZGFyXCIsXCJjYXNvX3RyYWVyXCJdO1xyXG4gICAgICAgIHZhciBwYXJlbnRQcm9jID0gYXdhaXQgc3VwZXIuZ2V0UHJvY2VkdXJlcygpO1xyXG4gICAgICAgIHBhcmVudFByb2MgPSBwYXJlbnRQcm9jLmZpbHRlcigocHJvY2VkdXJlOmFueSkgPT4gIXByb2NlZGltaWVudG9BUmVlbXBsYXphci5pbmNsdWRlcyhwcm9jZWR1cmUuYWN0aW9uKSk7XHJcbiAgICAgICAgcGFyZW50UHJvYyA9IHBhcmVudFByb2MubWFwKHByb2NEZWY9PntcclxuICAgICAgICAgICAgaWYocHJvY0RlZi5hY3Rpb24gPT0gJ3RhYmxlX3JlY29yZF9zYXZlJyB8fCBwcm9jRGVmLmFjdGlvbiA9PSAndGFibGVfcmVjb3JkX2RlbGV0ZScpe1xyXG4gICAgICAgICAgICAgICAgdmFyIGNvcmVGdW5jdGlvbkludGVybm8gPSBwcm9jRGVmLmNvcmVGdW5jdGlvbjtcclxuICAgICAgICAgICAgICAgIHByb2NEZWYuY29yZUZ1bmN0aW9uID0gYXN5bmMgZnVuY3Rpb24oY29udGV4dDpDb250ZXh0LCBwYXJhbWV0ZXJzOkNvcmVGdW5jdGlvblBhcmFtZXRlcnMpe1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSBhd2FpdCBjb3JlRnVuY3Rpb25JbnRlcm5vKGNvbnRleHQsIHBhcmFtZXRlcnMpXHJcbiAgICAgICAgICAgICAgICAgICAgaWYocGFyYW1ldGVycy50YWJsZSA9PSAnY2FzaWxsZXJvcycpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiZS5jYWNoZXMudGltZXN0YW1wRXN0cnVjdHVyYSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnc2UgdG9jw7MgbGEgZXN0cnVjdHVyYScsIGJlLmNhY2hlcy50aW1lc3RhbXBFc3RydWN0dXJhKVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBwcm9jRGVmO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgcmV0dXJuIHBhcmVudFByb2MuY29uY2F0KFByb2NlZHVyZXNEbUVuY3UpO1xyXG4gICAgfVxyXG4gICAgb3ZlcnJpZGUgYXN5bmMgY2hlY2tEYXRhYmFzZVN0cnVjdHVyZShfY2xpZW50OkNsaWVudCl7XHJcbiAgICB9XHJcbiAgICBvdmVycmlkZSBhZGRTY2hyw7ZkaW5nZXJTZXJ2aWNlcyhtYWluQXBwOnByb2Nlc2FtaWVudG8uRXhwcmVzcywgYmFzZVVybDpzdHJpbmcpe1xyXG4gICAgICAgIGxldCBiZT10aGlzO1xyXG4gICAgICAgIHN1cGVyLmFkZFNjaHLDtmRpbmdlclNlcnZpY2VzKG1haW5BcHAsIGJhc2VVcmwpO1xyXG4gICAgICAgIC8vcGVybWl0byBsZXZhbnRhciBtaXMgaW1hZ2VuZXMgZW4gYXBsaWNhY2lvbmVzIGRlcGVuZGllbnRlc1xyXG4gICAgICAgIGJlLmFwcC51c2UoJy9pbWcnLCBleHByZXNzLnN0YXRpYygnbm9kZV9tb2R1bGVzL2RtZW5jdS9kaXN0L3VubG9nZ2VkL3VubG9nZ2VkL2ltZycpKVxyXG4gICAgICAgIG1haW5BcHAudXNlKGZ1bmN0aW9uKHJlcTpSZXF1ZXN0LF9yZXM6UmVzcG9uc2UsIG5leHQ6TmV4dEZ1bmN0aW9uKXtcclxuICAgICAgICAgICAgaWYocmVxLnNlc3Npb24gJiYgIXJlcS5zZXNzaW9uLmluc3RhbGwpe1xyXG4gICAgICAgICAgICAgICAgcmVxLnNlc3Npb24uaW5zdGFsbD1NYXRoLnJhbmRvbSgpLnRvU3RyaW5nKCkucmVwbGFjZSgnLicsJycpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG5leHQoKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIG1haW5BcHAuZ2V0KGJhc2VVcmwrJy9zYWx2YXInLGFzeW5jIGZ1bmN0aW9uKHJlcSxyZXMsX25leHQpe1xyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlIHPDqSBxdWUgdm95IGEgcmVjaWJpciB1c2VyYWdlbnQgcG9yIGxvcyBtaWRkbGV3YXJlcyBkZSBCYWNrZW5kLXBsdXNcclxuICAgICAgICAgICAgdmFyIHt1c2VyYWdlbnR9ID0gcmVxO1xyXG4gICAgICAgICAgICB2YXIgaHRtbE1haW49YmUubWFpblBhZ2Uoe3VzZXJhZ2VudH0sIGZhbHNlLCB7c2tpcE1lbnU6dHJ1ZSwgb2ZmbGluZUZpbGU6dHJ1ZX0pLnRvSHRtbERvYygpO1xyXG4gICAgICAgICAgICBtaW5pVG9vbHMuc2VydmVUZXh0KGh0bWxNYWluLCdodG1sJykocmVxLHJlcyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbWFpbkFwcC5nZXQoYmFzZVVybCsnL2NhbXBvJyxhc3luYyBmdW5jdGlvbihyZXEscmVzLF9uZXh0KXtcclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZSBzw6kgcXVlIHZveSBhIHJlY2liaXIgdXNlcmFnZW50IHBvciBsb3MgbWlkZGxld2FyZXMgZGUgQmFja2VuZC1wbHVzXHJcbiAgICAgICAgICAgIHZhciB7dXNlcmFnZW50LCB1c2VyfSA9IHJlcTtcclxuICAgICAgICAgICAgaWYodXNlcil7XHJcbiAgICAgICAgICAgICAgICAvKiogQHR5cGUge3t0eXBlOidqcycsIHNyYzpzdHJpbmd9W119ICovXHJcbiAgICAgICAgICAgICAgICB2YXIgd2ViTWFuaWZlc3RQYXRoID0gJ2NhcmdhLWRtL3dlYi1tYW5pZmVzdC53ZWJtYW5pZmVzdCc7XHJcbiAgICAgICAgICAgICAgICB2YXIgaHRtbE1haW49YmUubWFpblBhZ2Uoe3VzZXJhZ2VudCwgdXNlcn0sIGZhbHNlLCB7c2tpcE1lbnU6dHJ1ZSwgd2ViTWFuaWZlc3RQYXRoLCBvZmZsaW5lRmlsZTp0cnVlfSkudG9IdG1sRG9jKCk7XHJcbiAgICAgICAgICAgICAgIG1pbmlUb29scy5zZXJ2ZVRleHQoaHRtbE1haW4sJ2h0bWwnKShyZXEscmVzKTtcclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICByZXMucmVkaXJlY3QoNDAxLCBiYXNlVXJsKycvbG9naW4jdz1wYXRoJnBhdGg9L2NhbXBvJylcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHZhciBjcmVhdGVTZXJ2aWNlV29ya2VyID0gYXN5bmMgZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgdmFyIHN3ID0gYXdhaXQgZnMucmVhZEZpbGUoJ25vZGVfbW9kdWxlcy9zZXJ2aWNlLXdvcmtlci1hZG1pbi9kaXN0L3NlcnZpY2Utd29ya2VyLXdvLW1hbmlmZXN0LmpzJywgJ3V0ZjgnKTtcclxuICAgICAgICAgICAgdmFyIG1hbmlmZXN0ID0gYmUuY3JlYXRlUmVzb3VyY2VzRm9yQ2FjaGVKc29uKCk7XHJcbiAgICAgICAgICAgIHZhciBzd01hbmlmZXN0ID0gc3dcclxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKFwiJy8qdmVyc2lvbiovJ1wiLCBKU09OLnN0cmluZ2lmeShtYW5pZmVzdC52ZXJzaW9uKSlcclxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKFwiJy8qYXBwTmFtZSovJ1wiLCBKU09OLnN0cmluZ2lmeShtYW5pZmVzdC5hcHBOYW1lKSlcclxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXFtcXHMqXFwvXFwqdXJsc1RvQ2FjaGVcXCpcXC9cXHMqXFxdLywgSlNPTi5zdHJpbmdpZnkobWFuaWZlc3QuY2FjaGUpKVxyXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcW1xccypcXC9cXCpmYWxsYmFja3NcXCpcXC9cXHMqXFxdLywgSlNPTi5zdHJpbmdpZnkobWFuaWZlc3QuZmFsbGJhY2sgfHwgW10pKTtcclxuICAgICAgICAgICAgICAgIC8vLnJlcGxhY2UoXCIvI0NBQ0hFJC9cIiwgXCIvKGFcXFxcZCttXFxcXGQrcFxcXFxkK3RcXFxcZCtfZXN0cnVjdHVyYS5qcyl8KGFcXFxcZCttXFxcXGQrcFxcXFxkK3RcXFxcZCtfaGRyLmpzb24pL1wiKTtcclxuICAgICAgICAgICAgcmV0dXJuIHN3TWFuaWZlc3RcclxuICAgICAgICB9XHJcbiAgICAgICAgbWFpbkFwcC5nZXQoYmFzZVVybCtgL3N3LW1hbmlmZXN0LmpzYCwgYXN5bmMgZnVuY3Rpb24ocmVxLCByZXMsIG5leHQpe1xyXG4gICAgICAgICAgICB0cnl7XHJcbiAgICAgICAgICAgICAgICBtaW5pVG9vbHMuc2VydmVUZXh0KGF3YWl0IGNyZWF0ZVNlcnZpY2VXb3JrZXIoKSwnYXBwbGljYXRpb24vamF2YXNjcmlwdCcpKHJlcSxyZXMpO1xyXG4gICAgICAgICAgICB9Y2F0Y2goZXJyKXtcclxuICAgICAgICAgICAgICAgIG1pbmlUb29scy5zZXJ2ZUVycihyZXEscmVzLG5leHQpKHVuZXhwZWN0ZWQoZXJyKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBtYWluQXBwLmdldChiYXNlVXJsK2AvY2FyZ2EtZG0vd2ViLW1hbmlmZXN0LndlYm1hbmlmZXN0YCwgYXN5bmMgZnVuY3Rpb24ocmVxLCByZXMsIG5leHQpe1xyXG4gICAgICAgICAgICBjb25zdCBBUFBfTkFNRSA9IChhd2FpdCBiZS5pblRyYW5zYWN0aW9uKG51bGwsIChjbGllbnQ6cGcuQ2xpZW50KT0+XHJcbiAgICAgICAgICAgICAgICBjbGllbnQucXVlcnkoXCJzZWxlY3Qgb3BlcmF0aXZvIGZyb20gcGFyYW1ldHJvcyB3aGVyZSB1bmljb19yZWdpc3Ryb1wiKS5mZXRjaFVuaXF1ZVZhbHVlKClcclxuICAgICAgICAgICAgKSkudmFsdWU7XHJcbiAgICAgICAgICAgIHZhciBzdWZpam8gPSBiYXNlVXJsLmluY2x1ZGVzKCd0ZXN0JykgfHwgYmFzZVVybC5pbmNsdWRlcygnL3ByJyk/J190ZXN0JzpcclxuICAgICAgICAgICAgICAgIGJhc2VVcmwuaW5jbHVkZXMoJ2NhcGEnKT8nX2NhcGEnOicnO1xyXG4gICAgICAgICAgICB0cnl7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0ge1xyXG4gICAgICAgICAgICAgICAgICBcIm5hbWVcIjogYCR7QVBQX05BTUV9JHtzdWZpam99IFByb2dyZXNzaXZlIFdlYiBBcHBgLFxyXG4gICAgICAgICAgICAgICAgICBcInNob3J0X25hbWVcIjogYCR7QVBQX05BTUV9JHtzdWZpam99IFBXQWAsXHJcbiAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogYFByb2dyZXNzaXZlIFdlYiBBcHAgZm9yICR7QVBQX05BTUV9JHtzdWZpam99LmAsXHJcbiAgICAgICAgICAgICAgICAgIFwiaWNvbnNcIjogW1xyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgIFwic3JjXCI6IGAuLi9pbWcvJHtBUFBfTkFNRX0tbG9nby1kbS0zMiR7c3VmaWpvfS5wbmdgLFxyXG4gICAgICAgICAgICAgICAgICAgICAgXCJzaXplc1wiOiBcIjMyeDMyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbWFnZS9wbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgXCJzcmNcIjogYC4uL2ltZy8ke0FQUF9OQU1FfS1sb2dvLWRtLTQ4JHtzdWZpam99LnBuZ2AsXHJcbiAgICAgICAgICAgICAgICAgICAgICBcInNpemVzXCI6IFwiNDh4NDhcIixcclxuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImltYWdlL3BuZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBcInNyY1wiOiBgLi4vaW1nLyR7QVBQX05BTUV9LWxvZ28tZG0tNjQke3N1Zmlqb30ucG5nYCxcclxuICAgICAgICAgICAgICAgICAgICAgIFwic2l6ZXNcIjogXCI2NHg2NFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW1hZ2UvcG5nXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgIFwic3JjXCI6IGAuLi9pbWcvJHtBUFBfTkFNRX0tbG9nby1kbS03MiR7c3VmaWpvfS5wbmdgLFxyXG4gICAgICAgICAgICAgICAgICAgICAgXCJzaXplc1wiOiBcIjcyeDcyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbWFnZS9wbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgXCJzcmNcIjogYC4uL2ltZy8ke0FQUF9OQU1FfS1sb2dvLWRtLTE5MiR7c3VmaWpvfS5wbmdgLFxyXG4gICAgICAgICAgICAgICAgICAgICAgXCJzaXplc1wiOiBcIjE5MngxOTJcIixcclxuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImltYWdlL3BuZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBcInNyY1wiOiBgLi4vaW1nLyR7QVBQX05BTUV9LWxvZ28tZG0tNTEyJHtzdWZpam99LnBuZ2AsXHJcbiAgICAgICAgICAgICAgICAgICAgICBcInNpemVzXCI6IFwiNTEyeDUxMlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW1hZ2UvcG5nXCJcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICAgIC4uLmJlLmdldENvbG9yc0pzb24oc3VmaWpvIGFzIFN1Zmlqb3NBbWJpZW50ZSlcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIG1pbmlUb29scy5zZXJ2ZVRleHQoSlNPTi5zdHJpbmdpZnkoY29udGVudCksICdhcHBsaWNhdGlvbi9qc29uJykocmVxLHJlcyk7XHJcbiAgICAgICAgICAgIH1jYXRjaChlcnIpe1xyXG4gICAgICAgICAgICAgICAgbWluaVRvb2xzLnNlcnZlRXJyKHJlcSwgcmVzLCBuZXh0KSh1bmV4cGVjdGVkKGVycikpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBnZXRDb2xvcnNKc29uKF9zdWZpam86IFN1Zmlqb3NBbWJpZW50ZSl7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgXCJzdGFydF91cmxcIjogXCIuLi9jYW1wb1wiLFxyXG4gICAgICAgICAgICBcImRpc3BsYXlcIjogXCJzdGFuZGFsb25lXCIsXHJcbiAgICAgICAgICAgIFwidGhlbWVfY29sb3JcIjogXCIjM0Y1MUI1XCIsXHJcbiAgICAgICAgICAgIFwiYmFja2dyb3VuZF9jb2xvclwiOiBcIiM2ZDYwZWRcIlxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG92ZXJyaWRlIGFkZExvZ2dlZFNlcnZpY2VzKCl7XHJcbiAgICAgICAgdmFyIGJlID0gdGhpcztcclxuICAgICAgICBzdXBlci5hZGRMb2dnZWRTZXJ2aWNlcygpO1xyXG4gICAgICAgIGJlLmFwcC5nZXQoJy9tYW5pZmVzdC5tYW5pZmVzdCcsIGFzeW5jIGZ1bmN0aW9uKHJlcTpSZXF1ZXN0LCByZXM6UmVzcG9uc2UsIF9uZXh0Ok5leHRGdW5jdGlvbil7XHJcbiAgICAgICAgICAgIG1pbmlUb29scy5zZXJ2ZUZpbGUoJ3NyYy9jbGllbnQvbWFuaWZlc3QubWFuaWZlc3QnLHt9KShyZXEscmVzKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmFwcC5nZXQoJy9maWxlJywgYXN5bmMgZnVuY3Rpb24ocmVxOlJlcXVlc3QscmVzOlJlc3BvbnNlKXtcclxuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IGJlLmluVHJhbnNhY3Rpb24ocmVxLCBcclxuICAgICAgICAgICAgICAgIChjbGllbnQ6cGcuQ2xpZW50KT0+XHJcbiAgICAgICAgICAgICAgICBjbGllbnQucXVlcnkoXCJzZWxlY3QgcnV0YSBmcm9tIGFkanVudG9zIHdoZXJlIGlkX2FkanVudG8gPSAkMVwiLFtyZXEucXVlcnkuaWRfYWRqdW50b10pXHJcbiAgICAgICAgICAgICAgICAuZmV0Y2hVbmlxdWVWYWx1ZSgpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHZhciBwYXRoID0gcmVzdWx0LnZhbHVlO1xyXG4gICAgICAgICAgICBtaW5pVG9vbHMuc2VydmVGaWxlKHBhdGgse30pKHJlcSxyZXMpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuYXBwLmdldCgnL2ltYWdlbmVzJywgYXN5bmMgZnVuY3Rpb24ocmVxOlJlcXVlc3QscmVzOlJlc3BvbnNlKXtcclxuICAgICAgICAgICAgbWluaVRvb2xzLnNlcnZlRmlsZSgnbG9jYWwtaW1hZ2VzLycrcmVxLnF1ZXJ5LnBkZix7fSkocmVxLHJlcyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5hcHAuZ2V0KCcvZG93bmxvYWQvYWxsJyxhc3luYyBmdW5jdGlvbihyZXE6UmVxdWVzdCwgcmVzOlJlc3BvbnNlLCBuZXh0OigpPT52b2lkKXtcclxuICAgICAgICAgICAgaWYocmVxLnVzZXI9PW51bGwgfHwgcmVxLnVzZXIucm9sIT0nYWRtaW4nKXtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdubyBlc3TDoSBhdXRvcml6YWRvIGEgYmFqYXJzZSB0b2RvJyxyZXEudXNlcilcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXh0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGV0IHppcCA9IG5ldyB5YXpsLlppcEZpbGUoKTtcclxuICAgICAgICAgICAgemlwLm91dHB1dFN0cmVhbS5waXBlKHJlcyk7XHJcbiAgICAgICAgICAgIGxldCBiYXNlID0gJ2xvY2FsLWF0dGFjaG1lbnRzJ1xyXG4gICAgICAgICAgICBsZXQgZmlsZXMgPSBhd2FpdCBmcy5yZWFkZGlyKGJhc2UpO1xyXG4gICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChmaWxlcy5tYXAoYXN5bmMgZnVuY3Rpb24oZmlsZU5hbWU6c3RyaW5nKXtcclxuICAgICAgICAgICAgICAgIHZhciBwYXRoID0gYmFzZSsnLycrZmlsZU5hbWU7XHJcbiAgICAgICAgICAgICAgICB2YXIgc3RhdCA9IGF3YWl0IGZzLnN0YXQocGF0aCk7XHJcbiAgICAgICAgICAgICAgICBpZihzdGF0LmlzRmlsZSgpKXtcclxuICAgICAgICAgICAgICAgICAgICB6aXAuYWRkRmlsZShwYXRoLGZpbGVOYW1lKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICB6aXAuZW5kKCk7XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuICAgIG92ZXJyaWRlIGFzeW5jIHBvc3RDb25maWcoKXtcclxuICAgICAgICBhd2FpdCBzdXBlci5wb3N0Q29uZmlnKCk7XHJcbiAgICAgICAgdmFyIGJlPXRoaXM7XHJcbiAgICAgICAgYmUuY2FjaGVzLm1ldGFFbmNJbmNsdWlyQ2FzaWxsZXJvc1NhbHRvUkVMID0gZmFsc2U7XHJcbiAgICAgICAgYXdhaXQgYmUuaW5UcmFuc2FjdGlvbihudWxsLCBhc3luYyBmdW5jdGlvbihjbGllbnQ6cGcuQ2xpZW50KXtcclxuICAgICAgICAgICAgdmFyIHFQZXJtaXNvcz1gXHJcbiAgICAgICAgICAgIFNFTEVDVCBqc29uYl9vYmplY3RfYWdnKHIucm9sLGpzb25iX2J1aWxkX29iamVjdCgnc3VwZXJ1c2VyJyxyLnN1cGVydXNlciwncHVlZGUnLChcclxuICAgICAgICAgICAgICAgICAgU0VMRUNUIGpzb25iX29iamVjdF9hZ2cocnAucGVybWlzbywoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFNFTEVDVCBqc29uYl9vYmplY3RfYWdnKHJwYS5hY2Npb24scnBhLmhhYmlsaXRhZG8pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgRlJPTSByb2xlc19wZXJtaXNvcyBycGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBXSEVSRSBycGEucm9sPXJwLnJvbCBBTkQgcnBhLnBlcm1pc289cnAucGVybWlzb1xyXG4gICAgICAgICAgICAgICAgICAgICkpXHJcbiAgICAgICAgICAgICAgICAgICAgRlJPTSByb2xlc19wZXJtaXNvcyBycFxyXG4gICAgICAgICAgICAgICAgICAgIFdIRVJFIHJwLnJvbD1yLnJvbCAjY29uZEhhYmlsaXRhZG8jXHJcbiAgICAgICAgICAgICAgKSkpXHJcbiAgICAgICAgICAgICAgRlJPTSByb2xlcyByXHJcbiAgICAgICAgICAgIGA7XHJcbiAgICAgICAgICAgIHZhciByZXN1bHRzID0gW1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgY2xpZW50LnF1ZXJ5KHFQZXJtaXNvcy5yZXBsYWNlKCcjY29uZEhhYmlsaXRhZG8jJywnJykpLmZldGNoVW5pcXVlVmFsdWUoKSxcclxuICAgICAgICAgICAgICAgIGF3YWl0IGNsaWVudC5xdWVyeShxUGVybWlzb3MucmVwbGFjZSgnI2NvbmRIYWJpbGl0YWRvIycsYCBhbmQgcnAuJHtwZy5xdW90ZUlkZW50KCdoYWJpbGl0YWRvJyl9YCkpLmZldGNoVW5pcXVlVmFsdWUoKSxcclxuICAgICAgICAgICAgICAgIGF3YWl0IGNsaWVudC5xdWVyeShgXHJcbiAgICAgICAgICAgICAgICAgICAgU0VMRUNUIGpzb25iX29iamVjdF9hZ2cocGVybWlzbywoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFNFTEVDVCBqc29uYl9vYmplY3RfYWdnKGFjY2lvbix0cnVlKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEZST00gcGVybWlzb3MgcGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBXSEVSRSBwYS5wZXJtaXNvPXAucGVybWlzb1xyXG4gICAgICAgICAgICAgICAgICAgICAgKSlcclxuICAgICAgICAgICAgICAgICAgICAgIEZST00gcGVybWlzb3MgcFxyXG4gICAgICAgICAgICAgICAgYCkuZmV0Y2hVbmlxdWVWYWx1ZSgpXHJcbiAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgIGJlLmNhY2hlcy5wZXJtaXNvc1JvbD1yZXN1bHRzWzBdLnZhbHVlO1xyXG4gICAgICAgICAgICBiZS5jYWNoZXMucGVybWlzb3NSb2xTb2xvVHJ1ZT1yZXN1bHRzWzFdLnZhbHVlO1xyXG4gICAgICAgICAgICBiZS5jYWNoZXMucGVybWlzb3NTdXBlcnVzZXI9cmVzdWx0c1syXS52YWx1ZTtcclxuICAgICAgICAgICAgYmUuY2FjaGVzLnBlcm1pc29zUGFyYU5hZGllPWxpa2VBcihiZS5jYWNoZXMucGVybWlzb3NTdXBlcnVzZXIpLm1hcChwPT5saWtlQXIocCkubWFwKF89PmZhbHNlKS5wbGFpbigpKS5wbGFpbigpXHJcbiAgICAgICAgICAgIC8vY29uc29sZS5kaXIoYmUuY2FjaGVzLnBlcm1pc29zUm9sU29sb1RydWUse2RlcHRoOjl9KTtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmRpcihiZS5jYWNoZXMucGVybWlzb3NTdXBlcnVzZXIse2RlcHRoOjl9KTtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmRpcihiZS5jYWNoZXMucGVybWlzb3NQYXJhTmFkaWUse2RlcHRoOjl9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBhd2FpdCB0aGlzLnJlZnJlc2hDYWNoZXMoKTtcclxuICAgIH1cclxuICAgIG92ZXJyaWRlIGNvbmZpZ1N0YXRpY0NvbmZpZygpe1xyXG4gICAgICAgIHN1cGVyLmNvbmZpZ1N0YXRpY0NvbmZpZygpO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGljQ29uZmlnKGRlZkNvbmZpZyk7XHJcbiAgICB9XHJcbiAgICBvdmVycmlkZSBjbGllbnRJbmNsdWRlcyhyZXE6UmVxdWVzdCwgb3B0czpPcHRzQ2xpZW50UGFnZSk6Q2xpZW50TW9kdWxlRGVmaW5pdGlvbltdIHtcclxuICAgICAgICB2YXIgYmUgPSB0aGlzO1xyXG4gICAgICAgIHZhciB1bmxvZ2dlZCA9IG9wdHMgJiYgb3B0cy5vZmZsaW5lRmlsZTtcclxuICAgICAgICB2YXIgbWVudWVkUmVzb3VyY2VzOkNsaWVudE1vZHVsZURlZmluaXRpb25bXT0gdW5sb2dnZWQ/W1xyXG4gICAgICAgICAgICB7IHR5cGU6ICdqcycsIG1vZHVsZTogJ2RtZW5jdScsIG1vZFBhdGg6ICcuLi8uLi91bmxvZ2dlZC91bmxvZ2dlZCcsIGZpbGU6ICd1bmxvZ2dlZC5qcycsIHBhdGg6ICdkbWVuY3UnIH0sXHJcbiAgICAgICAgXTpbXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnZG1lbmN1JywgbW9kUGF0aDogJy4uLy4uL2NsaWVudC9jbGllbnQnLCBmaWxlOiAnY2xpZW50LmpzJywgcGF0aDogJ2RtZW5jdScgfSxcclxuICAgICAgICBdO1xyXG4gICAgICAgIGlmKG9wdHMgJiYgb3B0cy5leHRyYUZpbGVzKXtcclxuICAgICAgICAgICAgbWVudWVkUmVzb3VyY2VzID0gbWVudWVkUmVzb3VyY2VzLmNvbmNhdChvcHRzLmV4dHJhRmlsZXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgZXh0ZXJuYWxSZXNvdXJjZXM6Q2xpZW50TW9kdWxlRGVmaW5pdGlvbltdID0gW1xyXG4gICAgICAgICAgICB7IHR5cGU6ICdqcycsIG1vZHVsZTogJ3JlYWN0JywgbW9kUGF0aDogJ3VtZCcsIGZpbGVEZXZlbG9wbWVudDoncmVhY3QuZGV2ZWxvcG1lbnQuanMnLCBmaWxlOidyZWFjdC5wcm9kdWN0aW9uLm1pbi5qcycgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAnanMnLCBtb2R1bGU6ICdyZWFjdC1kb20nLCBtb2RQYXRoOiAndW1kJywgZmlsZURldmVsb3BtZW50OidyZWFjdC1kb20uZGV2ZWxvcG1lbnQuanMnLCBmaWxlOidyZWFjdC1kb20ucHJvZHVjdGlvbi5taW4uanMnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnQG1hdGVyaWFsLXVpL2NvcmUnLCBtb2RQYXRoOiAndW1kJywgZmlsZURldmVsb3BtZW50OidtYXRlcmlhbC11aS5kZXZlbG9wbWVudC5qcycsIGZpbGU6J21hdGVyaWFsLXVpLnByb2R1Y3Rpb24ubWluLmpzJyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdqcycsIG1vZHVsZTogJ2Nsc3gnLCBmaWxlOidjbHN4Lm1pbi5qcycgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAnanMnLCBtb2R1bGU6ICdyZWR1eCcsIG1vZFBhdGg6Jy4uL2Rpc3QnLCBmaWxlRGV2ZWxvcG1lbnQ6J3JlZHV4LmpzJywgZmlsZToncmVkdXgubWluLmpzJyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdqcycsIG1vZHVsZTogJ3JlYWN0LXJlZHV4JywgbW9kUGF0aDonLi4vZGlzdCcsIGZpbGVEZXZlbG9wbWVudDoncmVhY3QtcmVkdXguanMnLCBmaWxlOidyZWFjdC1yZWR1eC5taW4uanMnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnbWVtb2l6ZS1vbmUnLCAgZmlsZTonbWVtb2l6ZS1vbmUuanMnIH0sXHJcbiAgICAgICAgICAgIC8veyB0eXBlOiAnanMnLCBtb2R1bGU6ICdxcmNvZGUnLCBtb2RQYXRoOiAnLi4vYnVpbGQnLCBmaWxlOiAncXJjb2RlLmpzJ30sXHJcbiAgICAgICAgICAgIC4uLnN1cGVyLmNsaWVudEluY2x1ZGVzKHJlcSwgb3B0cykuZmlsdGVyKG09Pm0uZmlsZSE9J2Zvcm11bGFyaW9zLmNzcycpXHJcbiAgICAgICAgICAgIC5maWx0ZXIobT0+IXVubG9nZ2VkIHx8IHRydWVcclxuICAgICAgICAgICAgICAgICYmIG0uZmlsZSE9J3Zhci1jYWwuanMnXHJcbiAgICAgICAgICAgICAgICAmJiBtLmZpbGUhPSd2YXItY2FsLmpzJyAgICAgXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnc2VydmljZS13b3JrZXItYWRtaW4nLCAgZmlsZTonc2VydmljZS13b3JrZXItYWRtaW4uanMnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAncmVkdXgtdHlwZWQtcmVkdWNlcicsIG1vZFBhdGg6Jy4uL2Rpc3QnLCBmaWxlOidyZWR1eC10eXBlZC1yZWR1Y2VyLmpzJyB9XHJcbiAgICAgICAgXTtcclxuICAgICAgICB2YXIgcmVzb3VyY2VzOkNsaWVudE1vZHVsZURlZmluaXRpb25bXSA9IFtcclxuICAgICAgICAgICAgLi4uZXh0ZXJuYWxSZXNvdXJjZXMsXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnZG1lbmN1JywgbW9kUGF0aDogJy4uLy4uL3VubG9nZ2VkL3VubG9nZ2VkJywgZmlsZTogJ2FkYXB0LmpzJywgcGF0aDogJ2RtZW5jdScgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAnanMnLCBtb2R1bGU6ICdkbWVuY3UnLCBtb2RQYXRoOiAnLi4vLi4vdW5sb2dnZWQvdW5sb2dnZWQnLCBmaWxlOiAndGlwb3MuanMnLCBwYXRoOiAnZG1lbmN1JyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdqcycsIG1vZHVsZTogJ2RtZW5jdScsIG1vZFBhdGg6ICcuLi8uLi91bmxvZ2dlZC91bmxvZ2dlZCcsIGZpbGU6ICdieXBhc3MtZm9ybXVsYXJpby5qcycsIHBhdGg6ICdkbWVuY3UnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnZG1lbmN1JywgbW9kUGF0aDogJy4uLy4uL3VubG9nZ2VkL3VubG9nZ2VkJywgZmlsZTogJ3JlZHV4LWZvcm11bGFyaW8uanMnLCBwYXRoOiAnZG1lbmN1JyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdqcycsIG1vZHVsZTogJ2RtZW5jdScsIG1vZFBhdGg6ICcuLi8uLi91bmxvZ2dlZC91bmxvZ2dlZCcsIGZpbGU6ICdyZW5kZXItZ2VuZXJhbC5qcycsIHBhdGg6ICdkbWVuY3UnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnZG1lbmN1JywgbW9kUGF0aDogJy4uLy4uL3VubG9nZ2VkL3VubG9nZ2VkJywgZmlsZTogJ3JlbmRlci1mb3JtdWxhcmlvLmpzJywgcGF0aDogJ2RtZW5jdScgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAnanMnLCBtb2R1bGU6ICdkbWVuY3UnLCBtb2RQYXRoOiAnLi4vLi4vdW5sb2dnZWQvdW5sb2dnZWQnLCBmaWxlOiAnYWJyaXItZm9ybXVsYXJpby5qcycsIHBhdGg6ICdkbWVuY3UnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2NzcycsIG1vZHVsZTogJ2RtZW5jdScsIG1vZFBhdGg6ICcuLi8uLi9jbGllbnQvY2xpZW50L2NzcycsIGZpbGU6ICdtZW51LmNzcycsIHBhdGg6ICdjc3MnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2NzcycsIG1vZHVsZTogJ2RtZW5jdScsIG1vZFBhdGg6ICcuLi8uLi91bmxvZ2dlZC91bmxvZ2dlZC9jc3MnLCBmaWxlOiAnZm9ybXVsYXJpby1yZWFjdC5jc3MnLCBwYXRoOiAnY3NzJyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdjc3MnLCBtb2R1bGU6ICdkbWVuY3UnLCBtb2RQYXRoOiAnLi4vLi4vdW5sb2dnZWQvdW5sb2dnZWQvY3NzJywgZmlsZTogJ2Jvb3RzdHJhcC5taW4uY3NzJywgcGF0aDogJ2NzcycgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAndHRmJywgbW9kdWxlOiAnZG1lbmN1JywgbW9kUGF0aDogJy4uLy4uL3VubG9nZ2VkL3VubG9nZ2VkL2NzcycsIGZpbGU6ICdSb2JvdG8tUmVndWxhci50dGYnLCBwYXRoOiAnY3NzJyB9LFxyXG4gICAgICAgICAgICAuLi4gbWVudWVkUmVzb3VyY2VzLFxyXG4gICAgICAgIF1cclxuICAgICAgICByZXR1cm4gcmVzb3VyY2VzXHJcbiAgICAgICAgLy8gLm1hcChtPT4oey4uLm0sIGZpbGU6bS5maWxlRGV2ZWxvcG1lbnR8fG0uZmlsZX0pKTtcclxuICAgIH1cclxuICAgIGFzeW5jIHJlZnJlc2hDYWNoZXMoKXtcclxuICAgICAgICB0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQgPSB0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQgfHwge307XHJcbiAgICAgICAgYXdhaXQgdGhpcy5pbkRiQ2xpZW50KG51bGwsIGFzeW5jIChjbGllbnQpPT57XHJcbiAgICAgICAgICAgIHRoaXMuY2FjaGVzLnRhYmxlQ29udGVudC5ub19yZWEgPSAoYXdhaXQgY2xpZW50LnF1ZXJ5KGBzZWxlY3QgKiBmcm9tIG5vX3JlYSBvcmRlciBieSBub19yZWFgKS5mZXRjaEFsbCgpKS5yb3dzO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnY2FjaGVzJyx0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQubm9fcmVhKVxyXG4gICAgICAgICAgICB0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQubm9fcmVhX2dyb3VwcyA9IChhd2FpdCBjbGllbnQucXVlcnkoYFxyXG4gICAgICAgICAgICAgICAgc2VsZWN0IGdydXBvLCBqc29uYl9hZ2codG9fanNvbihyLiopKSBhcyBjb2RpZ29zIGZyb20gbm9fcmVhIHIgZ3JvdXAgYnkgZ3J1cG8gb3JkZXIgYnkgMVxyXG4gICAgICAgICAgICBgKS5mZXRjaEFsbCgpKS5yb3dzO1xyXG4gICAgICAgICAgICB0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQubm9fcmVhX2dyb3VwczAgPSAoYXdhaXQgY2xpZW50LnF1ZXJ5KGBcclxuICAgICAgICAgICAgICAgIHNlbGVjdCBncnVwbzAgYXMgZ3J1cG8sIGpzb25iX2FnZyh0b19qc29uKHIuKikpIGFzIGNvZGlnb3MgZnJvbSBub19yZWEgciBncm91cCBieSBncnVwbzAgb3JkZXIgYnkgMVxyXG4gICAgICAgICAgICBgKS5mZXRjaEFsbCgpKS5yb3dzO1xyXG4gICAgICAgICAgICB0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQubm9fcmVhX3N1cCA9IChhd2FpdCBjbGllbnQucXVlcnkoYHNlbGVjdCAqIGZyb20gbm9fcmVhX3N1cCBvcmRlciBieSBub19yZWFfc3VwYCkuZmV0Y2hBbGwoKSkucm93cztcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ2NhY2hlcycsdGhpcy5jYWNoZXMudGFibGVDb250ZW50Lm5vX3JlYV9zdXApXHJcbiAgICAgICAgICAgIHRoaXMuY2FjaGVzLnRhYmxlQ29udGVudC5ub19yZWFfc3VwX2dyb3VwcyA9IChhd2FpdCBjbGllbnQucXVlcnkoYFxyXG4gICAgICAgICAgICBzZWxlY3QgZ3J1cG9fc3VwLCBqc29uYl9hZ2codG9fanNvbihyLiopKSBhcyBjb2RpZ29zIGZyb20gbm9fcmVhX3N1cCByIGdyb3VwIGJ5IGdydXBvX3N1cCBvcmRlciBieSAxXHJcbiAgICAgICAgICAgIGApLmZldGNoQWxsKCkpLnJvd3M7XHJcbiAgICAgICAgICAgIHRoaXMuY2FjaGVzLnRhYmxlQ29udGVudC5ub19yZWFfc3VwX2dyb3VwczAgPSAoYXdhaXQgY2xpZW50LnF1ZXJ5KGBcclxuICAgICAgICAgICAgc2VsZWN0IGdydXBvMF9zdXAgYXMgZ3J1cG8sIGpzb25iX2FnZyh0b19qc29uKHIuKikpIGFzIGNvZGlnb3MgZnJvbSBub19yZWFfc3VwIHIgZ3JvdXAgYnkgZ3J1cG8wX3N1cCBvcmRlciBieSAxXHJcbiAgICAgICAgYCkuZmV0Y2hBbGwoKSkucm93cztcclxuICAgICAgICB9KVxyXG4gICAgICAgIGNvbnNvbGUubG9nKCdjYWNoZXMgb2snKTtcclxuICAgIH1cclxuICAgIC8vc3FsTm9yZWFDYXNlKGNhbXBvTmVjZXNhcmlvOnN0cmluZyl7XHJcbiAgICAvLyAgICB2YXIgYmU9dGhpcztcclxuICAgIC8vICAgIHJldHVybiBgQ0FTRSAke2JlLmNhY2hlcy50YWJsZUNvbnRlbnQubm9fcmVhLm1hcCh4PT5cclxuICAgIC8vICAgICAgICBgIFdIRU4gbm9yZWEgID0gJHtiZS5kYi5xdW90ZUxpdGVyYWwoeC5ub19yZWEpfTo6aW50ZWdlciBUSEVOICR7YmUuZGIucXVvdGVMaXRlcmFsKHhbY2FtcG9OZWNlc2FyaW9dKX1gXHJcbiAgICAvLyAgICApLmpvaW4oJycpfSBXSEVOIFRSVUUgVEhFTiBOVUxMIEVORGBcclxuICAgIC8vfSAgICBcclxuICAgIG92ZXJyaWRlIGdldENvbnRleHQocmVxOlJlcXVlc3QpOkNvbnRleHR7XHJcbiAgICAgICAgdmFyIGJlID0gdGhpcztcclxuICAgICAgICB2YXIgZmF0aGVyQ29udGV4dCA9IHN1cGVyLmdldENvbnRleHQocmVxKTtcclxuICAgICAgICBpZihmYXRoZXJDb250ZXh0LnVzZXIpe1xyXG4gICAgICAgICAgICBpZihyZXEudXNlcj8ucm9sICE9bnVsbCAmJiBiZS5jYWNoZXMucGVybWlzb3NSb2xbcmVxLnVzZXIucm9sXT8uc3VwZXJ1c2VyKXtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7c3VwZXJ1c2VyOnRydWUsIHB1ZWRlOiBiZS5jYWNoZXMucGVybWlzb3NTdXBlcnVzZXIsIC4uLmZhdGhlckNvbnRleHR9XHJcbiAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtwdWVkZTogYmUuY2FjaGVzLnBlcm1pc29zUm9sW3JlcS51c2VyLnJvbF0/LnB1ZWRlLCAuLi5mYXRoZXJDb250ZXh0fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB7cHVlZGU6YmUuY2FjaGVzLnBlcm1pc29zUGFyYU5hZGllLCAuLi5mYXRoZXJDb250ZXh0fTtcclxuICAgIH1cclxuICAgIG92ZXJyaWRlIGdldENvbnRleHRGb3JEdW1wKCk6Q29udGV4dHtcclxuICAgICAgICB2YXIgZmF0aGVyQ29udGV4dCA9IHN1cGVyLmdldENvbnRleHRGb3JEdW1wKCk7XHJcbiAgICAgICAgcmV0dXJuIHtzdXBlcnVzZXI6dHJ1ZSwgcHVlZGU6IHRoaXMuY2FjaGVzLnBlcm1pc29zU3VwZXJ1c2VyLCAuLi5mYXRoZXJDb250ZXh0fTtcclxuICAgIH1cclxuICAgIG92ZXJyaWRlIGFzeW5jIGdldENsaWVudFNldHVwRm9yU2VuZFRvRnJvbnRFbmQocmVxOlJlcXVlc3Qpe1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIC4uLihhd2FpdCBzdXBlci5nZXRDbGllbnRTZXR1cEZvclNlbmRUb0Zyb250RW5kKHJlcSkpLFxyXG4gICAgICAgICAgICBpZHBlcjogcmVxLnVzZXI/LmlkcGVyXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgY3JlYXRlUmVzb3VyY2VzRm9yQ2FjaGVKc29uKCl7XHJcbiAgICAgICAgdmFyIGJlID0gdGhpcztcclxuICAgICAgICB2YXIganNvblJlc3VsdCA9IHtcclxuICAgICAgICAgICAgdmVyc2lvbjogQVBQX0RNX1ZFUlNJT04sXHJcbiAgICAgICAgICAgIGFwcE5hbWU6ICdkbWVuY3UnLFxyXG4gICAgICAgICAgICBjYWNoZTogW1xyXG4gICAgICAgICAgICAgICAgXCJjYW1wb1wiLFxyXG4gICAgICAgICAgICAgICAgXCJvZmZsaW5lXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9yZWFjdC5wcm9kdWN0aW9uLm1pbi5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvcmVhY3QtZG9tLnByb2R1Y3Rpb24ubWluLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9tYXRlcmlhbC11aS5wcm9kdWN0aW9uLm1pbi5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvY2xzeC5taW4uanNcIixcclxuICAgICAgICAgICAgICAgIFwibGliL3JlZHV4Lm1pbi5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvcmVhY3QtcmVkdXgubWluLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9tZW1vaXplLW9uZS5qc1wiLFxyXG4gICAgICAgICAgICAgICAgLy9cImxpYi9xcmNvZGUuanNcIixcclxuICAgICAgICAgICAgICAgIFwibGliL3JlcXVpcmUtYnJvLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9jYXN0LWVycm9yLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9saWtlLWFyLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9iZXN0LWdsb2JhbHMuanNcIixcclxuICAgICAgICAgICAgICAgIFwibGliL2pzb240YWxsLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9qcy10by1odG1sLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9yZWR1eC10eXBlZC1yZWR1Y2VyLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImRtZW5jdS9hZGFwdC5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJkbWVuY3UvdW5sb2dnZWQuanNcIixcclxuICAgICAgICAgICAgICAgIFwibGliL2pzLXlhbWwuanNcIixcclxuICAgICAgICAgICAgICAgIFwibGliL3hsc3guY29yZS5taW4uanNcIixcclxuICAgICAgICAgICAgICAgIFwibGliL2xhenktc29tZS5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvc3FsLXRvb2xzLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImRpYWxvZy1wcm9taXNlL2RpYWxvZy1wcm9taXNlLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcIm1vbWVudC9taW4vbW9tZW50LmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcInBpa2FkYXkvcGlrYWRheS5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvcG9seWZpbGxzLWJyby5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvYmlnLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi90eXBlLXN0b3JlLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi90eXBlZC1jb250cm9scy5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvYWpheC1iZXN0LXByb21pc2UuanNcIixcclxuICAgICAgICAgICAgICAgIFwibXktYWpheC5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJteS1zdGFydC5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvbXktbG9jYWxkYi5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvbXktd2Vic3FsZGIuanNcIixcclxuICAgICAgICAgICAgICAgIFwibGliL215LWxvY2FsZGIuanMubWFwXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9teS13ZWJzcWxkYi5qcy5tYXBcIixcclxuICAgICAgICAgICAgICAgIFwibGliL215LXRoaW5ncy5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvbXktdGFibGVzLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9teS1pbmZvcm0tbmV0LXN0YXR1cy5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvbXktbWVudS5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvbXktc2tpbi5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvY2xpZW50ZS1lbi1jYXN0ZWxsYW5vLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9zZXJ2aWNlLXdvcmtlci1hZG1pbi5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvcmVkdXgtdHlwZWQtcmVkdWNlci5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJjbGllbnRfbW9kdWxlcy9vcGVyYXRpdm9zLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImNsaWVudF9tb2R1bGVzL3ZhcmNhbC5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJjbGllbnRfbW9kdWxlcy9mb3JtLXN0cnVjdHVyZS5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJjbGllbnRfbW9kdWxlcy9tZXRhLWVuYy5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJjbGllbnRfbW9kdWxlcy9kYXRvcy1leHQuanNcIixcclxuICAgICAgICAgICAgICAgIFwiY2xpZW50X21vZHVsZXMvY29uc2lzdGVuY2lhcy5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJjbGllbnRfbW9kdWxlcy9wcm9jZXNhbWllbnRvLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImRtZW5jdS90aXBvcy5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJkbWVuY3UvYnlwYXNzLWZvcm11bGFyaW8uanNcIixcclxuICAgICAgICAgICAgICAgIFwiZG1lbmN1L3JlZHV4LWZvcm11bGFyaW8uanNcIixcclxuICAgICAgICAgICAgICAgIFwiZG1lbmN1L3JlbmRlci1nZW5lcmFsLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImRtZW5jdS9yZW5kZXItZm9ybXVsYXJpby5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJkbWVuY3UvYWJyaXItZm9ybXVsYXJpby5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJjbGllbnRfbW9kdWxlcy9yb3ctdmFsaWRhdG9yLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImNsaWVudC9tZW51LmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImltZy9sb2dvLnBuZ1wiLFxyXG4gICAgICAgICAgICAgICAgLy9cImltZy9sb2dvLWRtLnBuZ1wiLFxyXG4gICAgICAgICAgICAgICAgXCJpbWcvbG9nby0xMjgucG5nXCIsXHJcbiAgICAgICAgICAgICAgICBcImltZy9tYWluLWxvYWRpbmcuZ2lmXCIsXHJcbiAgICAgICAgICAgICAgICBcImltZy9ib3JyYXItdmFsb3IucG5nXCIsXHJcbiAgICAgICAgICAgICAgICBcImltZy9mb25kby1zYWx0ZWFkby1lcnJvci5wbmdcIixcclxuICAgICAgICAgICAgICAgIFwiaW1nL2ZvbmRvLXNhbHRlYWRvLnBuZ1wiLFxyXG4gICAgICAgICAgICAgICAgXCJpbWcvYmFja2dyb3VuZC10ZXN0LnBuZ1wiLFxyXG4gICAgICAgICAgICAgICAgXCJjbGllbnQtc2V0dXBcIixcclxuICAgICAgICAgICAgICAgIFwiY3NzL2Jvb3RzdHJhcC5taW4uY3NzXCIsXHJcbiAgICAgICAgICAgICAgICBcImNzcy9mb3JtdWxhcmlvLXJlYWN0LmNzc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJwaWthZGF5L3Bpa2FkYXkuY3NzXCIsXHJcbiAgICAgICAgICAgICAgICBcImRpYWxvZy1wcm9taXNlL2RpYWxvZy1wcm9taXNlLmNzc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJyZWwtZW5jL2VzdGFkb3MuY3NzXCIsXHJcbiAgICAgICAgICAgICAgICBcImNzcy9teS10YWJsZXMuY3NzXCIsXHJcbiAgICAgICAgICAgICAgICBcImNzcy9teS1tZW51LmNzc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJjc3MvbXktdGhpbmdzLmNzc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJjc3MvbWVudS5jc3NcIixcclxuICAgICAgICAgICAgICAgIFwicmVsLWVuYy9teS10aGluZ3MyLmNzc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJjc3MvZm9ybXVsYXJpby1yZWFjdC5jc3NcIixcclxuICAgICAgICAgICAgICAgIFwiY3NzL1JvYm90by1SZWd1bGFyLnR0ZlwiXHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIGZhbGxiYWNrOiBbXHJcbiAgICAgICAgICAgICAgICB7XCJwYXRoXCI6XCJsb2dpblwiLCBcImZhbGxiYWNrXCI6XCJvZmZsaW5lXCJ9LFxyXG4gICAgICAgICAgICAgICAge1wicGF0aFwiOlwibG9nb3V0XCIsIFwiZmFsbGJhY2tcIjpcIm9mZmxpbmVcIn0sXHJcbiAgICAgICAgICAgICAgICB7XCJwYXRoXCI6XCJsb2dpbiNpPXNpbmNyb25pemFyXCIsIFwiZmFsbGJhY2tcIjpcIm9mZmxpbmVcIn0sXHJcbiAgICAgICAgICAgICAgICB7XCJwYXRoXCI6XCJtZW51I2k9c2luY3Jvbml6YXJcIiwgXCJmYWxsYmFja1wiOlwib2ZmbGluZVwifVxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4ganNvblJlc3VsdFxyXG4gICAgfVxyXG4gICAgZ2V0TWVudShjb250ZXh0OkNvbnRleHQpe1xyXG4gICAgICAgIGxldCBtZW51Ok1lbnVJbmZvQmFzZVtdID0gW107XHJcbiAgICAgICAgbGV0IGZpbHRyb1JlY2VwY2lvbmlzdGEgPSBjb250ZXh0LnVzZXIucm9sPT0ncmVjZXBjaW9uaXN0YScgPyB7cmVjZXBjaW9uaXN0YTogY29udGV4dC51c2VyLmlkcGVyfSA6IHt9O1xyXG4gICAgICAgIGlmKHRoaXMuY29uZmlnLnNlcnZlci5wb2xpY3k9PSd3ZWInKXtcclxuICAgICAgICAgICAgaWYoY29udGV4dC5wdWVkZT8uZW5jdWVzdGFzLnJlbGV2YXIpe1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5jb25maWdbJ2NsaWVudC1zZXR1cCddLmFtYmllbnRlPT0nZGVtbycgfHwgdGhpcy5jb25maWdbJ2NsaWVudC1zZXR1cCddLmFtYmllbnRlPT0ndGVzdCcgfHwgdGhpcy5jb25maWdbJ2NsaWVudC1zZXR1cCddLmFtYmllbnRlPT0nY2FwYScpe1xyXG4gICAgICAgICAgICAgICAgICAgIG1lbnUucHVzaCh7bWVudVR5cGU6J2RlbW8nLCBuYW1lOidkZW1vJywgc2VsZWN0ZWRCeURlZmF1bHQ6dHJ1ZX0pXHJcbiAgICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICBtZW51LnB1c2goe21lbnVUeXBlOidwYXRoJywgbmFtZToncmVsZXZhbWllbnRvJywgcGF0aDonL2NhbXBvJ30pXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBtZW51LnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOidzaW5jcm9uaXphcl9kbScsIG5hbWU6J3NpbmNyb25pemFyJ30sXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIGlmKGNvbnRleHQucHVlZGU/LmNhbXBvPy5lZGl0YXIpe1xyXG4gICAgICAgICAgICAgICAgbGV0IG1lbnVGaWx0cmFkb0NvbnRlbnQ6TWVudUluZm9CYXNlW10gPSBbXHJcbiAgICAgICAgICAgICAgICAgICAgLy97IG1lbnVUeXBlOiAndGFibGUnLCBuYW1lOiAnZ2VuZXJhbCcsIHRhYmxlOiAnYXJlYXNfYXNpZ25hY2lvbl9nZW5lcmFsJyB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHsgbWVudVR5cGU6ICd0YWJsZScsIG5hbWU6ICdlbmN1ZXN0YWRvcicsIHRhYmxlOiAndF9lbmN1X2FyZWFzJywgZmY6IHsgdGFyZWE6ICdlbmN1JywgLi4uZmlsdHJvUmVjZXBjaW9uaXN0YSB9IH0sXHJcbiAgICAgICAgICAgICAgICAgICAgeyBtZW51VHlwZTogJ3RhYmxlJywgbmFtZTogJ3JlY3VwZXJhZG9yJywgdGFibGU6ICd0YXJlYXNfdGVtX3JlY3UnLCBmZjogeyB0ZW1fcmVjX190YXJlYV9wcm94aW1hOiAncmVjdScsIHRhcmVhOiAncmVjdScsIC4uLmZpbHRyb1JlY2VwY2lvbmlzdGEgfSB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHsgbWVudVR5cGU6ICd0YWJsZScsIG5hbWU6ICdzdXBlcnZpc29yJywgdGFibGU6ICd0YXJlYXNfdGVtX3N1cGUnLCBmZjogeyB0ZW1fcmVjX190YXJlYV9wcm94aW1hOiAnc3VwZScsIHRhcmVhOiAnc3VwZScsIC4uLmZpbHRyb1JlY2VwY2lvbmlzdGEgfSB9LFxyXG4gICAgICAgICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgICAgICBpZihjb250ZXh0LnVzZXI/LnJvbCAhPSAncmVjZXBjaW9uaXN0YScpIHtcclxuICAgICAgICAgICAgICAgICAgICBtZW51RmlsdHJhZG9Db250ZW50LnVuc2hpZnQoeyBtZW51VHlwZTogJ3RhYmxlJywgbmFtZTogJ2dlbmVyYWwnLCB0YWJsZTogJ2FyZWFzX2FzaWduYWNpb25fZ2VuZXJhbCcgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBtZW51LnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOidtZW51JywgbmFtZTonYXNpZ25hY2lvbicsIGxhYmVsOidhc2lnbmFjacOzbicgLG1lbnVDb250ZW50OiBtZW51RmlsdHJhZG9Db250ZW50fSxcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIG1lbnUucHVzaChcclxuICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J21lbnUnLCBuYW1lOidyZWNlcGNpb24nLCBsYWJlbDoncmVjZXBjacOzbicgLG1lbnVDb250ZW50OltcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J2VuY3Vlc3RhZG9yJywgdGFibGU6J2VuY3Vlc3RhZG9yZXNfYXNpZ25hZG9zJywgZmY6eyAuLi5maWx0cm9SZWNlcGNpb25pc3RhfX0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidyZWN1cGVyYWRvcicsIHRhYmxlOidyZWN1cGVyYWRvcmVzX2FzaWduYWRvcycsIGZmOnsgLi4uZmlsdHJvUmVjZXBjaW9uaXN0YX19LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTonc3VwZXJ2aXNvcicgLCB0YWJsZTonc3VwZXJ2aXNvcmVzX2FzaWduYWRvcycgLCBmZjp7IC4uLmZpbHRyb1JlY2VwY2lvbmlzdGF9fSxcclxuICAgICAgICAgICAgICAgICAgICBdfSwgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIG1lbnUucHVzaCh7IG1lbnVUeXBlOiAnbWVudScsIG5hbWU6ICd2YXJpb3MnLCBtZW51Q29udGVudDogW1xyXG4gICAgICAgICAgICAgICAgICAgIHsgbWVudVR5cGU6ICdhYnJpcl9lbmN1ZXN0YScsIG5hbWU6ICdhYnJpcl9lbmN1ZXN0YSd9LFxyXG4gICAgICAgICAgICAgICAgICAgLy97bWVudVR5cGU6J2NvbnNpc3Rpcl9lbmN1ZXN0YScsIG5hbWU6J2NvbnNpc3Rpcl9lbmN1ZXN0YSd9LFxyXG4gICAgICAgICAgICAgICAgXSB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImNvbnRleHQgdXNlclwiLCBjb250ZXh0LnVzZXIpXHJcbiAgICAgICAgICAgIGlmKGNvbnRleHQuc3VwZXJ1c2VyKXtcclxuICAgICAgICAgICAgICAgIG1lbnUucHVzaChcclxuICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J21lbnUnLCBuYW1lOidjb250cm9sJywgbWVudUNvbnRlbnQ6W1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZToncmVzdW1lbicsIHRhYmxlOidjb250cm9sX3Jlc3VtZW4nLCBzZWxlY3RlZEJ5RGVmYXVsdDp0cnVlfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J2RvbWluaW8nLCB0YWJsZTonY29udHJvbF9jYW1wb19kb21pbmlvJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOid6b25hJyAgICwgdGFibGU6J2NvbnRyb2xfY2FtcG9fem9uYScgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidjb211bmEnICwgdGFibGU6J2NvbnRyb2xfY2FtcG9fY29tdW5hJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOifDoXJlYScgICAsIHRhYmxlOidjb250cm9sX2NhbXBvX2FyZWEnICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZToncGFydGljaXBhY2lvbicgICAgICAgICwgdGFibGU6J2NvbnRyb2xfY2FtcG9fcGFydGljaXBhY2lvbicgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgXX0sICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYoY29udGV4dC5wdWVkZT8uZW5jdWVzdGFzLnByb2Nlc2FyKXtcclxuICAgICAgICAgICAgICAgIG1lbnUgPSBbIC4uLm1lbnUsXHJcbiAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOidtZW51JywgbmFtZToncHJvY2VzYXInLCBtZW51Q29udGVudDpbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOid2YXJpYWJsZXMnICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidjb25zaXN0ZW5jaWFzJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidpbmNvbnNpc3RlbmNpYXMnfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J3RhYmxhX2RhdG9zJyAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J2RpY2Npb25hcmlvJyAgLCBsYWJlbDonZGljY2lvbmFyaW9zJyB9LFxyXG4gICAgICAgICAgICAgICAgICAgIF19LFxyXG4gICAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKGNvbnRleHQuc3VwZXJ1c2VyKXtcclxuICAgICAgICAgICAgICAgIG1lbnUgPSBbIC4uLm1lbnUsXHJcbiAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOidtZW51JywgbmFtZTonY29uZmlndXJhcicsIG1lbnVDb250ZW50OltcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOidtZW51JywgbmFtZTonbXVlc3RyYScsIGxhYmVsOidtdWVzdHJhJywgbWVudUNvbnRlbnQ6W1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J3RlbScsIGxhYmVsOiAnVEVNJ30gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J3RhcmVhcyd9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB7bWVudVR5cGU6J3RhYmxlJywgbmFtZToncGVyc29uYWxfcm9sJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgbWVudVR5cGU6ICd0YWJsZScsIG5hbWU6ICdncl9ob2phX3J1dGEnLCB0YWJsZTogJ2dyaWxsYV9ob2phX3J1dGEnICBsYWJlbDonZ3JpbGxhIGhvamEgZGUgcnV0YSd9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBdfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOidtZW51JywgbmFtZTonbWV0YWRhdG9zJywgbWVudUNvbnRlbnQ6W1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J29wZXJhdGl2b3MnfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidmb3JtdWxhcmlvcycgLCB0YWJsZTonY2FzaWxsZXJvc19wcmluY2lwYWxlcyd9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J3BsYW5vJyAgICAgICAsIHRhYmxlOidjYXNpbGxlcm9zJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTondGlwb2MnICAgICAgICwgbGFiZWw6J3RpcG9zIGRlIGNlbGRhcyd9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J3RpcG9jX3RpcG9jJyAsIGxhYmVsOidpbmNsdXNpb25lcyBkZSBjZWxkYXMnfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXX0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTonbWVudScsIG5hbWU6J2VzdGFkb3NfYWNjaW9uZXMnLCBsYWJlbDonZXN0YWRvcy9hY2Npb25lcycsIG1lbnVDb250ZW50OltcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidlc3RhZG9zJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTonYWNjaW9uZXMnfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidlc3RhZG9zX2FjY2lvbmVzJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF19LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZToncGFyYW1ldHJvcyd9LFxyXG4gICAgICAgICAgICAgICAgICAgIF19LFxyXG4gICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTonbWVudScsIG5hbWU6J3VzdWFyaW9zJywgbWVudUNvbnRlbnQ6W1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTondXN1YXJpb3MnLCBzZWxlY3RlZEJ5RGVmYXVsdDp0cnVlfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J3JvbGVzJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidwZXJtaXNvcyd9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZToncm9sZXNfcGVybWlzb3MnfSxcclxuICAgICAgICAgICAgICAgICAgICBdfSxcclxuICAgICAgICAgICAgICAgICAgICAvLyB7bWVudVR5cGU6J3Byb2MnLCBuYW1lOidnZW5lcmF0ZV90YWJsZWRlZicsIHByb2M6J3RhYmxlZGVmX2dlbmVyYXRlJywgbGFiZWw6J2dlbmVyYXIgdGFibGFzJyAgfSxcclxuICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4ge21lbnV9O1xyXG4gICAgfVxyXG4gICAgb3ZlcnJpZGUgcHJlcGFyZUdldFRhYmxlcygpe1xyXG4gICAgICAgIHZhciBiZT10aGlzO1xyXG4gICAgICAgIHN1cGVyLnByZXBhcmVHZXRUYWJsZXMoKTtcclxuICAgICAgICB0aGlzLmdldFRhYmxlRGVmaW5pdGlvbj17XHJcbiAgICAgICAgICAgIC4uLnRoaXMuZ2V0VGFibGVEZWZpbml0aW9uXHJcbiAgICAgICAgICAgICwgcm9sZXNcclxuICAgICAgICAgICAgLCB1c3Vhcmlvc1xyXG4gICAgICAgICAgICAsIHBlcnNvbmFsXHJcbiAgICAgICAgICAgICwgcmVjZXBjaW9uaXN0YXNcclxuICAgICAgICAgICAgLCBlbmN1ZXN0YWRvcmVzX2FzaWduYWRvc1xyXG4gICAgICAgICAgICAsIHJlY3VwZXJhZG9yZXNfYXNpZ25hZG9zXHJcbiAgICAgICAgICAgICwgc3VwZXJ2aXNvcmVzX2FzaWduYWRvc1xyXG4gICAgICAgICAgICAsIG1pc19lbmN1ZXN0YWRvcmVzXHJcbiAgICAgICAgICAgICwgcmVjdXBlcmFkb3Jlc1xyXG4gICAgICAgICAgICAsIHN1cGVydmlzb3Jlc1xyXG4gICAgICAgICAgICAsIHBlcnNvbmFsX3JvbFxyXG4gICAgICAgICAgICAsIHBlcm1pc29zXHJcbiAgICAgICAgICAgICwgcm9sZXNfcGVybWlzb3NcclxuICAgICAgICAgICAgLCByb2xlc19zdWJvcmRpbmFkb3NcclxuICAgICAgICAgICAgLCBub19yZWFcclxuICAgICAgICAgICAgLCBub19yZWFfc3VwXHJcbiAgICAgICAgICAgICwgc2VtYW5hc1xyXG4gICAgICAgICAgICAsIGVzdGFkb3NcclxuICAgICAgICAgICAgLCBhY2Npb25lc1xyXG4gICAgICAgICAgICAsIGVzdGFkb3NfYWNjaW9uZXNcclxuICAgICAgICAgICAgLCB0ZW1cclxuICAgICAgICAgICAgLCB0ZW1fcmVjZXBjaW9uXHJcbiAgICAgICAgICAgICwgcGFyYW1ldHJvc1xyXG4gICAgICAgICAgICAsIG9wZXJhY2lvbmVzXHJcbiAgICAgICAgICAgICwgY29tdW5hc1xyXG4gICAgICAgICAgICAsIGFyZWFzXHJcbiAgICAgICAgICAgICwgc2luY3Jvbml6YWNpb25lc1xyXG4gICAgICAgICAgICAsIHRhcmVhc1xyXG4gICAgICAgICAgICAsIHRhcmVhc190ZW1cclxuICAgICAgICAgICAgLCB0YXJlYXNfdGVtX2VuY3VcclxuICAgICAgICAgICAgLCB0YXJlYXNfdGVtX3JlY3VcclxuICAgICAgICAgICAgLCB0YXJlYXNfdGVtX3N1cGVcclxuICAgICAgICAgICAgLCB0YXJlYXNfYXJlYXNcclxuICAgICAgICAgICAgLCBhcmVhc19hc2lnbmFjaW9uX2dlbmVyYWxcclxuICAgICAgICAgICAgLCBncmlsbGFfaG9qYV9ydXRhXHJcbiAgICAgICAgICAgICwgdF9lbmN1X2FyZWFzXHJcbiAgICAgICAgICAgICwgdF9yZWN1X2FyZWFzXHJcbiAgICAgICAgICAgICwgdF9zdXBlX2FyZWFzXHJcbiAgICAgICAgICAgICwgbWlzX3RhcmVhc1xyXG4gICAgICAgICAgICAsIHRlbV9hc2lnbmFjaW9uXHJcbiAgICAgICAgICAgICwgdGFyZWFzX3RlbV9yZWNlcGNpb25cclxuICAgICAgICAgICAgLCBtaXNfdGFyZWFzX2FyZWFzXHJcbiAgICAgICAgICAgICwgY29udHJvbF9jYW1wb1xyXG4gICAgICAgICAgICAsIGNvbnRyb2xfcmVzdW1lblxyXG4gICAgICAgICAgICAsIGNvbnRyb2xfY2FtcG9fem9uYTogY29udGV4dD0+Y29udHJvbF9jYW1wbyhjb250ZXh0LCBcclxuICAgICAgICAgICAgICAgIHtub21icmU6J2NvbnRyb2xfY2FtcG9fY29tdW5hJywgdGl0bGU6J2NvbnRyb2wgY2FtcG8geCB6b25hIHNvbG8gY2VtZW50bycsIGNhbXBvc0NvcnRlOlt7bmFtZTonem9uYScsIHR5cGVOYW1lOid0ZXh0J31dLCBmaWx0cm9XaGVyZTonZG9taW5pbz0zJyB9XHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLCBjb250cm9sX2NhbXBvX2NvbXVuYTogY29udGV4dD0+Y29udHJvbF9jYW1wbyhjb250ZXh0LCBcclxuICAgICAgICAgICAgICAgIHtub21icmU6J2NvbnRyb2xfY2FtcG9fY29tdW5hJywgdGl0bGU6J2NvbnRyb2wgY2FtcG8geCBjb211bmEgc29sbyBjZW1lbnRvJywgY2FtcG9zQ29ydGU6W3tuYW1lOid6b25hJywgdHlwZU5hbWU6J3RleHQnfSx7bmFtZTonbnJvY29tdW5hJywgdHlwZU5hbWU6J2ludGVnZXInfV0sIGZpbHRyb1doZXJlOidkb21pbmlvPTMnIH1cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAsIGNvbnRyb2xfY2FtcG9fYXJlYTogY29udGV4dD0+Y29udHJvbF9jYW1wbyhjb250ZXh0LCBcclxuICAgICAgICAgICAgICAgIHtub21icmU6J2NvbnRyb2xfY2FtcG9fY29tdW5hJywgdGl0bGU6J2NvbnRyb2wgY2FtcG8geCBhcmVhJywgY2FtcG9zQ29ydGU6W3tuYW1lOid6b25hJywgdHlwZU5hbWU6J3RleHQnfSx7bmFtZTonbnJvY29tdW5hJywgdHlwZU5hbWU6J2ludGVnZXInfSx7bmFtZTonYXJlYScsIHR5cGVOYW1lOidpbnRlZ2VyJ30se25hbWU6J3BhcnRpY2lwYWNpb25fYScsIHR5cGVOYW1lOid0ZXh0J30se25hbWU6J2NsYXNlX2EnLCB0eXBlTmFtZTondGV4dCd9XX1cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAsIGNvbnRyb2xfY2FtcG9fcGFydGljaXBhY2lvbjogY29udGV4dD0+Y29udHJvbF9jYW1wbyhjb250ZXh0LCBcclxuICAgICAgICAgICAgICAgIHtub21icmU6J2NvbnRyb2xfY2FtcG9fY29tdW5hJywgdGl0bGU6J2NvbnRyb2wgY2FtcG8geCBwYXJ0aWNpcGFjaW9uJywgY2FtcG9zQ29ydGU6W3tuYW1lOidwYXJ0aWNpcGFjaW9uJywgdHlwZU5hbWU6J2JpZ2ludCd9XX1cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAsIGNvbnRyb2xfY2FtcG9fZG9taW5pbzogY29udGV4dD0+Y29udHJvbF9jYW1wbyhjb250ZXh0LCBcclxuICAgICAgICAgICAgICAgIHtub21icmU6J2NvbnRyb2xfY2FtcG9fY29tdW5hJywgdGl0bGU6J2NvbnRyb2wgY2FtcG8geCBkb21pbmlvJywgY2FtcG9zQ29ydGU6W3tuYW1lOidkb21pbmlvJywgdHlwZU5hbWU6J2ludGVnZXInfV19XHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLCB2aXZpZW5kYXNcclxuICAgICAgICAgICAgLCB2aXNpdGFzXHJcbiAgICAgICAgICAgICwgaG9nYXJlc1xyXG4gICAgICAgICAgICAsIHBlcnNvbmFzXHJcbiAgICAgICAgICAgICwgdmlzaXRhc19zdXBcclxuICAgICAgICAgICAgLCBob2dhcmVzX3N1cFxyXG4gICAgICAgICAgICAsIHBlcnNvbmFzX3N1cFxyXG4gICAgICAgIH1cclxuICAgICAgICBiZS5hcHBlbmRUb1RhYmxlRGVmaW5pdGlvbignY29uc2lzdGVuY2lhcycsZnVuY3Rpb24odGFibGVEZWYsIGNvbnRleHQpe1xyXG4gICAgICAgICAgICB0YWJsZURlZi5maWVsZHMuZm9yRWFjaChmdW5jdGlvbihmaWVsZCl7XHJcbiAgICAgICAgICAgICAgICBpZihmaWVsZC5uYW1lPT0nZXJyb3JfY29tcGlsYWNpb24nKXtcclxuICAgICAgICAgICAgICAgICAgICBpZihmaWVsZC52aXNpYmxlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignKioqKioqKioqKioqIFFVSVRBUiBFU1RPIGVycm9yX2NvbXBpbGFjaW9uIHlhIGVzIHZpc2libGUnKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZmllbGQudmlzaWJsZT10cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgYmUuYXBwZW5kVG9UYWJsZURlZmluaXRpb24oJ2luY29uc2lzdGVuY2lhcycsZnVuY3Rpb24odGFibGVEZWYsIGNvbnRleHQpe1xyXG4gICAgICAgICAgICB0YWJsZURlZi5zcWw9ey4uLnRhYmxlRGVmLnNxbCwgaXNUYWJsZTp0cnVlfTtcclxuICAgICAgICAgICAgdGFibGVEZWYuZmllbGRzLnNwbGljZSgyLDAsXHJcbiAgICAgICAgICAgICAgICB7bmFtZTondml2aWVuZGEnICAgICwgdHlwZU5hbWU6J3RleHQnICAgICAsIGVkaXRhYmxlOiBmYWxzZX0sXHJcbiAgICAgICAgICAgICAgICB7bmFtZTonaG9nYXInICAgICAgICwgdHlwZU5hbWU6J2JpZ2ludCcgICAsIGVkaXRhYmxlOiBmYWxzZX0sXHJcbiAgICAgICAgICAgICAgICB7bmFtZToncGVyc29uYScgICAgICwgdHlwZU5hbWU6J2JpZ2ludCcgICAsIGVkaXRhYmxlOiBmYWxzZX0sXHJcbiAgICAgICAgICAgICAgICB7bmFtZTondmlzaXRhJyAgICAgICwgdHlwZU5hbWU6J2JpZ2ludCcgICAsIGVkaXRhYmxlOiBmYWxzZX0sXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRhYmxlRGVmLmVkaXRhYmxlPXRhYmxlRGVmLmVkaXRhYmxlIHx8IGNvbnRleHQucHVlZGU/LmVuY3Vlc3Rhcy5qdXN0aWZpY2FyO1xyXG4gICAgICAgICAgICB0YWJsZURlZi5maWVsZHMuZm9yRWFjaChmdW5jdGlvbihmaWVsZCl7XHJcbiAgICAgICAgICAgICAgICBpZihmaWVsZC5uYW1lPT0ncGtfaW50ZWdyYWRhJyl7XHJcbiAgICAgICAgICAgICAgICAgICAgZmllbGQudmlzaWJsZT1mYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmKGZpZWxkLm5hbWU9PSdqdXN0aWZpY2FjaW9uJyl7XHJcbiAgICAgICAgICAgICAgICAgICAgZmllbGQuZWRpdGFibGU9Y29udGV4dC5mb3JEdW1wIHx8IGNvbnRleHQucHVlZGU/LmVuY3Vlc3Rhcy5qdXN0aWZpY2FyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB0YWJsZURlZi5maWVsZHMucHVzaCh7bmFtZTonZmluX2NhbXBvJyAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgXHJcbiAgICAgICAgICAgICAgICAsIGVkaXRhYmxlOiBmYWxzZSwgaW5UYWJsZTpmYWxzZVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB0YWJsZURlZi5zcWwhLmZyb209YFxyXG4gICAgICAgICAgICAgICAgKHNlbGVjdCBpLiosIHQuZmluX2NhbXBvIFxyXG4gICAgICAgICAgICAgICAgICBmcm9tIGluY29uc2lzdGVuY2lhcyBpIGpvaW4gdGVtIHQgb24gaS52aXZpZW5kYT10LmVuYyBhbmQgaS5vcGVyYXRpdm89dC5vcGVyYXRpdm8gXHJcbiAgICAgICAgICAgICAgICApICBcclxuICAgICAgICAgICAgYFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgYmUuYXBwZW5kVG9UYWJsZURlZmluaXRpb24oJ29wZXJhdGl2b3MnLGZ1bmN0aW9uKHRhYmxlRGVmLCBjb250ZXh0KXtcclxuICAgICAgICAgICAgdGFibGVEZWYuZmllbGRzLnNwbGljZSgyLDAse1xyXG4gICAgICAgICAgICAgICAgbmFtZTonY29uZmlnX3NvcnRlbycsIFxyXG4gICAgICAgICAgICAgICAgdHlwZU5hbWU6J2pzb25iJyxcclxuICAgICAgICAgICAgICAgIGVkaXRhYmxlOiBmYWxzZVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGFibGVEZWYuZmllbGRzLnNwbGljZSgzLDAse1xyXG4gICAgICAgICAgICAgICAgbmFtZTonZGlzZm9ybV9jZXJyYWRvJywgXHJcbiAgICAgICAgICAgICAgICB0eXBlTmFtZTonYm9vbGVhbicsIFxyXG4gICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBmYWxzZSwgXHJcbiAgICAgICAgICAgICAgICBlZGl0YWJsZTogY29udGV4dC5mb3JEdW1wfHxbJ2FkbWluJywnZGlzX2NvbmNlcHR1YWwnXS5pbmNsdWRlcyhjb250ZXh0LnVzZXIucm9sKX1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9KVxyXG5cclxuICAgICAgICAvLyBiZS5hcHBlbmRUb1RhYmxlRGVmaW5pdGlvbignY2FzaWxsZXJvcycsZnVuY3Rpb24odGFibGVEZWYsIGNvbnRleHQpe1xyXG4gICAgICAgIC8vICAgICB0YWJsZURlZi5jb25zdHJhaW50cyA9IHRhYmxlRGVmLmNvbnN0cmFpbnRzLmZpbHRlcihjPT5jLmNvbnNOYW1lIT0nY2FzaWxsZXJvcyBzYWx0byBSRUwnKVxyXG4gICAgICAgIC8vIH0pXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgdmFyIEFwcERtRW5jdSA9IGVtZXJnZUFwcERtRW5jdShlbWVyZ2VBcHBQcm9jZXNhbWllbnRvKGVtZXJnZUFwcENvbnNpc3RlbmNpYXMoZW1lcmdlQXBwVmFyQ2FsKGVtZXJnZUFwcERhdG9zRXh0KGVtZXJnZUFwcE9wZXJhdGl2b3MoQXBwQmFja2VuZCkpKSkpKTtcclxuZXhwb3J0IHR5cGUgQXBwQXBwRG1FbmN1VHlwZSA9IEluc3RhbmNlVHlwZTx0eXBlb2YgQXBwRG1FbmN1PjsiXX0=
|
|
710
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWRtZW5jdS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2ZXIvYXBwLWRtZW5jdS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUFBLFlBQVksQ0FBQzs7O0lBR2IsaURBQTBMO0lBQzFMLDJEQUF5RTtJQUV6RSx3Q0FBd0M7SUFFeEMsd0NBQXdDO0lBUXhDLDJDQUF3QztJQUV4Qyw2QkFBNkI7SUFFN0Isa0NBQWtDO0lBQ2xDLG1DQUFtQztJQUVuQywyQkFBbUM7SUFFbkMsK0NBQW9EO0lBQ3BELHFEQUF1RDtJQUN2RCxpRUFBNkQ7SUFDN0QsK0RBQWdFO0lBQ2hFLCtEQUFnRTtJQUNoRSwrREFBZ0U7SUFDaEUsdUVBQWdFO0lBQ2hFLCtEQUE0RDtJQUM1RCw2REFBMkQ7SUFDM0QsNkRBQTJEO0lBQzNELHFEQUF1RDtJQUN2RCxpRUFBNkQ7SUFDN0QseURBQXlEO0lBQ3pELHlFQUFpRTtJQUVqRSxpREFBcUQ7SUFDckQseURBQXlEO0lBQ3pELDJDQUFrRDtJQUNsRCwrREFBNEQ7SUFDNUQsbURBQXNEO0lBQ3RELHFEQUF1RDtJQUN2RCwyREFBMEQ7SUFDMUQsbURBQXNEO0lBQ3RELCtDQUFvRDtJQUNwRCxxRUFBK0Q7SUFDL0QsaURBQXFEO0lBQ3JELHlEQUd5RDtJQUN6RCw2REFBMkQ7SUFDM0QscUZBQTRFO0lBQzVFLHFFQUErRDtJQUMvRCw2REFBMkQ7SUFDM0QsNkRBQTJEO0lBQzNELDZEQUEyRDtJQUMzRCx5REFBeUQ7SUFDekQsaUVBQTZEO0lBQzdELDZFQUFtRTtJQUNuRSxxRUFBK0Q7SUFDL0QsK0RBQTREO0lBQzVELG1FQUE4RDtJQUM5RCx1REFBd0Q7SUFDeEQsbURBQXNEO0lBQ3RELG1EQUFzRDtJQUN0RCxxREFBdUQ7SUFDdkQsMkRBQTBEO0lBQzFELDJEQUEwRDtJQUMxRCw2REFBMkQ7SUFFM0QsbURBQXNEO0lBQ3RELHFEQUF1RDtJQUN2RCxxRUFB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QUFRLEVBQUMsT0FBTzt3QkFDaEIsUUFBUSxFQUFFLEtBQUs7cUJBQ2xCLENBQUMsQ0FBQztvQkFDSCxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDO3dCQUN2QixJQUFJLEVBQUMsaUJBQWlCO3dCQUN0QixRQUFRLEVBQUMsU0FBUzt3QkFDbEIsWUFBWSxFQUFFLEtBQUs7d0JBQ25CLFFBQVEsRUFBRSxPQUFPLENBQUMsT0FBTyxJQUFFLENBQUMsT0FBTyxFQUFDLGdCQUFnQixDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO3FCQUFDLENBQ3BGLENBQUM7Z0JBQ04sQ0FBQyxDQUFDLENBQUE7Z0JBRUYsdUVBQXVFO2dCQUN2RSxnR0FBZ0c7Z0JBQ2hHLEtBQUs7WUFDVCxDQUFDO1NBQ0YsQ0FBQTtJQUNILENBQUM7SUE5bkJELDBDQThuQkM7SUFFVSxRQUFBLFNBQVMsR0FBRyxlQUFlLENBQUMsSUFBQSxzQ0FBc0IsRUFBQyxJQUFBLHNDQUFzQixFQUFDLElBQUEsK0JBQWUsRUFBQyxJQUFBLGlDQUFpQixFQUFDLElBQUEsbUNBQW1CLEVBQUMsMEJBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5cclxuaW1wb3J0ICogYXMgcHJvY2VzYW1pZW50byBmcm9tIFwicHJvY2VzYW1pZW50b1wiO1xyXG5pbXBvcnQge2VtZXJnZUFwcFByb2Nlc2FtaWVudG8sIGVtZXJnZUFwcENvbnNpc3RlbmNpYXMsIGVtZXJnZUFwcFZhckNhbCwgZW1lcmdlQXBwRGF0b3NFeHQsIGVtZXJnZUFwcE9wZXJhdGl2b3MsIEFwcEJhY2tlbmQsIENsaWVudE1vZHVsZURlZmluaXRpb24sIE9wdHNDbGllbnRQYWdlfSBmcm9tIFwicHJvY2VzYW1pZW50b1wiO1xyXG5pbXBvcnQge2dldE9wZXJhdGl2b0FjdHVhbCwgUHJvY2VkdXJlc0RtRW5jdX0gZnJvbSBcIi4vcHJvY2VkdXJlcy1kbWVuY3VcIjtcclxuXHJcbmltcG9ydCAqIGFzIHBnIGZyb20gXCJwZy1wcm9taXNlLXN0cmljdFwiO1xyXG5pbXBvcnQge2pzb259IGZyb20gXCJwZy1wcm9taXNlLXN0cmljdFwiO1xyXG5pbXBvcnQgKiBhcyBtaW5pVG9vbHMgZnJvbSBcIm1pbmktdG9vbHNcIjtcclxuaW1wb3J0IHtcclxuICAgIENsaWVudCwgQ29udGV4dCwgQ29yZUZ1bmN0aW9uUGFyYW1ldGVycywgXHJcbiAgICBNZW51SW5mb0Jhc2UsIFxyXG4gICAgUmVxdWVzdCwgUmVzcG9uc2UsXHJcbiAgICBTdWZpam9zQW1iaWVudGUsXHJcbn0gZnJvbSBcIi4vdHlwZXMtZG1lbmN1XCI7XHJcblxyXG5pbXBvcnQgeyB1bmV4cGVjdGVkIH0gZnJvbSBcImNhc3QtZXJyb3JcIjtcclxuXHJcbmltcG9ydCAqIGFzIHlhemwgZnJvbSBcInlhemxcIjtcclxuaW1wb3J0IHsgTmV4dEZ1bmN0aW9uIH0gZnJvbSBcImV4cHJlc3Mtc2VydmUtc3RhdGljLWNvcmVcIjtcclxuaW1wb3J0ICogYXMgbGlrZUFyIGZyb20gXCJsaWtlLWFyXCI7XHJcbmltcG9ydCAqIGFzIGV4cHJlc3MgZnJvbSBcImV4cHJlc3NcIjtcclxuXHJcbmltcG9ydCB7cHJvbWlzZXMgYXMgZnMgfSBmcm9tIFwiZnNcIjtcclxuXHJcbmltcG9ydCB7IHJvbGVzICAgICAgICAgICAgICAgfSBmcm9tIFwiLi90YWJsZS1yb2xlc1wiO1xyXG5pbXBvcnQgeyBwZXJzb25hbCAgICAgICAgICAgIH0gZnJvbSBcIi4vdGFibGUtcGVyc29uYWxcIjtcclxuaW1wb3J0IHsgcmVjZXBjaW9uaXN0YXMgICAgICB9IGZyb20gXCIuL3RhYmxlLXJlY2VwY2lvbmlzdGFzXCI7XHJcbmltcG9ydCB7IGVuY3Vlc3RhZG9yZXNfYXNpZ25hZG9zIH0gZnJvbSBcIi4vdGFibGUtZW5jdWVzdGFkb3Jlc1wiO1xyXG5pbXBvcnQgeyByZWN1cGVyYWRvcmVzX2FzaWduYWRvcyB9IGZyb20gXCIuL3RhYmxlLWVuY3Vlc3RhZG9yZXNcIjtcclxuaW1wb3J0IHsgc3VwZXJ2aXNvcmVzX2FzaWduYWRvcyAgfSBmcm9tIFwiLi90YWJsZS1lbmN1ZXN0YWRvcmVzXCI7XHJcbmltcG9ydCB7IG1pc19lbmN1ZXN0YWRvcmVzICAgfSBmcm9tIFwiLi90YWJsZS1taXNfZW5jdWVzdGFkb3Jlc1wiO1xyXG5pbXBvcnQgeyByZWN1cGVyYWRvcmVzICAgICAgIH0gZnJvbSBcIi4vdGFibGUtcmVjdXBlcmFkb3Jlc1wiO1xyXG5pbXBvcnQgeyBzdXBlcnZpc29yZXMgICAgICAgIH0gZnJvbSBcIi4vdGFibGUtc3VwZXJ2aXNvcmVzXCI7XHJcbmltcG9ydCB7IHBlcnNvbmFsX3JvbCAgICAgICAgfSBmcm9tIFwiLi90YWJsZS1wZXJzb25hbF9yb2xcIjtcclxuaW1wb3J0IHsgcGVybWlzb3MgICAgICAgICAgICB9IGZyb20gXCIuL3RhYmxlLXBlcm1pc29zXCI7XHJcbmltcG9ydCB7IHJvbGVzX3Blcm1pc29zICAgICAgfSBmcm9tIFwiLi90YWJsZS1yb2xlc19wZXJtaXNvc1wiO1xyXG5pbXBvcnQgeyBwYXJhbWV0cm9zICAgICAgICAgIH0gZnJvbSBcIi4vdGFibGUtcGFyYW1ldHJvc1wiO1xyXG5pbXBvcnQgeyByb2xlc19zdWJvcmRpbmFkb3MgIH0gZnJvbSBcIi4vdGFibGUtcm9sZXNfc3Vib3JkaW5hZG9zXCI7XHJcblxyXG5pbXBvcnQge25vX3JlYSAgICAgICAgICAgICAgIH0gZnJvbSBcIi4vdGFibGUtbm9fcmVhXCI7XHJcbmltcG9ydCB7bm9fcmVhX3N1cCAgICAgICAgICAgfSBmcm9tIFwiLi90YWJsZS1ub19yZWFfc3VwXCI7XHJcbmltcG9ydCB7dGVtICAgICAgICAgICAgICAgICAgfSBmcm9tIFwiLi90YWJsZS10ZW1cIjtcclxuaW1wb3J0IHt0ZW1fcmVjZXBjaW9uICAgICAgICB9IGZyb20gXCIuL3RhYmxlLXRlbV9yZWNlcGNpb25cIjtcclxuaW1wb3J0IHtzZW1hbmFzICAgICAgICAgICAgICB9IGZyb20gXCIuL3RhYmxlLXNlbWFuYXNcIjtcclxuaW1wb3J0IHsgdXN1YXJpb3MgICAgICAgICAgICB9IGZyb20gJy4vdGFibGUtdXN1YXJpb3MnO1xyXG5pbXBvcnQgeyBvcGVyYWNpb25lcyAgICAgICAgIH0gZnJvbSAnLi90YWJsZS1vcGVyYWNpb25lcyc7XHJcbmltcG9ydCB7IGNvbXVuYXMgICAgICAgICAgICAgfSBmcm9tICcuL3RhYmxlLWNvbXVuYXMnO1xyXG5pbXBvcnQgeyBhcmVhcyAgICAgICAgICAgICAgIH0gZnJvbSAnLi90YWJsZS1hcmVhcyc7XHJcbmltcG9ydCB7IHNpbmNyb25pemFjaW9uZXMgICAgfSBmcm9tICcuL3RhYmxlLXNpbmNyb25pemFjaW9uZXMnO1xyXG5pbXBvcnQgeyB0YXJlYXMgICAgICAgICAgICAgIH0gZnJvbSAnLi90YWJsZS10YXJlYXMnO1xyXG5pbXBvcnQgeyB0YXJlYXNfdGVtLCBcclxuICAgICAgICAgdGFyZWFzX3RlbV9lbmN1LCBcclxuICAgICAgICAgdGFyZWFzX3RlbV9yZWN1LCBcclxuICAgICAgICAgdGFyZWFzX3RlbV9zdXBlICAgICB9IGZyb20gJy4vdGFibGUtdGFyZWFzX3RlbSc7XHJcbmltcG9ydCB7IHRhcmVhc19hcmVhcyAgICAgICAgfSBmcm9tICcuL3RhYmxlLXRhcmVhc19hcmVhcyc7XHJcbmltcG9ydCB7IGFyZWFzX2FzaWduYWNpb25fZ2VuZXJhbCB9IGZyb20gJy4vdGFibGUtYXJlYXNfYXNpZ25hY2lvbl9nZW5lcmFsJztcclxuaW1wb3J0IHsgZ3JpbGxhX2hvamFfcnV0YSAgICB9IGZyb20gJy4vdGFibGUtZ3JpbGxhX2hvamFfcnV0YSc7XHJcbmltcG9ydCB7IHRfZW5jdV9hcmVhcyAgICAgICAgfSBmcm9tICcuL3RhYmxlLXRhcmVhc19hcmVhcyc7XHJcbmltcG9ydCB7IHRfcmVjdV9hcmVhcyAgICAgICAgfSBmcm9tICcuL3RhYmxlLXRhcmVhc19hcmVhcyc7XHJcbmltcG9ydCB7IHRfc3VwZV9hcmVhcyAgICAgICAgfSBmcm9tICcuL3RhYmxlLXRhcmVhc19hcmVhcyc7XHJcbmltcG9ydCB7IG1pc190YXJlYXMgICAgICAgICAgfSBmcm9tICcuL3RhYmxlLW1pc190YXJlYXMnO1xyXG5pbXBvcnQgeyB0ZW1fYXNpZ25hY2lvbiAgICAgIH0gZnJvbSAnLi90YWJsZS10ZW1fYXNpZ25hY2lvbic7XHJcbmltcG9ydCB7IHRhcmVhc190ZW1fcmVjZXBjaW9ufSBmcm9tICcuL3RhYmxlLXRhcmVhc190ZW1fcmVjZXBjaW9uJztcclxuaW1wb3J0IHsgbWlzX3RhcmVhc19hcmVhcyAgICB9IGZyb20gJy4vdGFibGUtbWlzX3RhcmVhc19hcmVhcyc7XHJcbmltcG9ydCB7IGNvbnRyb2xfY2FtcG8gICAgICAgfSBmcm9tICcuL3RhYmxlLWNvbnRyb2xfY2FtcG8nO1xyXG5pbXBvcnQgeyBjb250cm9sX3Jlc3VtZW4gICAgIH0gZnJvbSAnLi90YWJsZS1jb250cm9sX3Jlc3VtZW4nO1xyXG5pbXBvcnQgeyB2aXZpZW5kYXMgICAgICAgICAgIH0gZnJvbSAnLi90YWJsZS12aXZpZW5kYXMnO1xyXG5pbXBvcnQgeyB2aXNpdGFzICAgICAgICAgICAgIH0gZnJvbSAnLi90YWJsZS12aXNpdGFzJztcclxuaW1wb3J0IHsgaG9nYXJlcyAgICAgICAgICAgICB9IGZyb20gJy4vdGFibGUtaG9nYXJlcyc7XHJcbmltcG9ydCB7IHBlcnNvbmFzICAgICAgICAgICAgfSBmcm9tICcuL3RhYmxlLXBlcnNvbmFzJztcclxuaW1wb3J0IHsgdmlzaXRhc19zdXAgICAgICAgICB9IGZyb20gJy4vdGFibGUtdmlzaXRhc19zdXAnO1xyXG5pbXBvcnQgeyBob2dhcmVzX3N1cCAgICAgICAgIH0gZnJvbSAnLi90YWJsZS1ob2dhcmVzX3N1cCc7XHJcbmltcG9ydCB7IHBlcnNvbmFzX3N1cCAgICAgICAgfSBmcm9tICcuL3RhYmxlLXBlcnNvbmFzX3N1cCc7XHJcblxyXG5pbXBvcnQgeyBlc3RhZG9zICAgICAgICAgICAgIH0gZnJvbSAnLi90YWJsZS1lc3RhZG9zJztcclxuaW1wb3J0IHsgYWNjaW9uZXMgICAgICAgICAgICB9IGZyb20gJy4vdGFibGUtYWNjaW9uZXMnO1xyXG5pbXBvcnQgeyBlc3RhZG9zX2FjY2lvbmVzICAgIH0gZnJvbSAnLi90YWJsZS1lc3RhZG9zX2FjY2lvbmVzJztcclxuXHJcblxyXG5leHBvcnQgKiBmcm9tIFwiLi90eXBlcy1kbWVuY3VcIjtcclxuaW1wb3J0IHtkZWZDb25maWd9IGZyb20gXCIuL2RlZi1jb25maWdcIlxyXG5cclxuY29uc3QgQVBQX0RNX1ZFUlNJT049XCIjMjItMTItMTVcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBlbWVyZ2VBcHBEbUVuY3U8VCBleHRlbmRzIHByb2Nlc2FtaWVudG8uQ29uc3RydWN0b3I8cHJvY2VzYW1pZW50by5BcHBQcm9jZXNhbWllbnRvVHlwZT4+KEJhc2U6VCl7XHJcbiAgcmV0dXJuIGNsYXNzIEFwcERtRW5jdSBleHRlbmRzIEJhc2V7XHJcbiAgICBjb25zdHJ1Y3RvciguLi5hcmdzOmFueVtdKXsgXHJcbiAgICAgICAgc3VwZXIoYXJncyk7IFxyXG4gICAgICAgIHRoaXMuY2FjaGVzLnRhYmxlQ29udGVudCA9IHRoaXMuY2FjaGVzLnRhYmxlQ29udGVudCB8fCB7fTtcclxuICAgICAgICB0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQubm9fcmVhPVtdXHJcbiAgICAgICAgdGhpcy5jYWNoZXMudGFibGVDb250ZW50Lm5vX3JlYV9ncm91cHM9W11cclxuICAgICAgICB0aGlzLmNhY2hlcy5tZXRhRW5jSW5jbHVpckNhc2lsbGVyb3NTYWx0b1JFTCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY2FjaGVzLnRpbWVzdGFtcEVzdHJ1Y3R1cmEgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgIH1cclxuICAgIG92ZXJyaWRlIGFzeW5jIGdldFByb2NlZHVyZXMoKXtcclxuICAgICAgICB2YXIgYmUgPSB0aGlzO1xyXG4gICAgICAgIHZhciBwcm9jZWRpbWllbnRvQVJlZW1wbGF6YXI9W1wiY2Fzb19ndWFyZGFyXCIsXCJjYXNvX3RyYWVyXCJdO1xyXG4gICAgICAgIHZhciBwYXJlbnRQcm9jID0gYXdhaXQgc3VwZXIuZ2V0UHJvY2VkdXJlcygpO1xyXG4gICAgICAgIHBhcmVudFByb2MgPSBwYXJlbnRQcm9jLmZpbHRlcigocHJvY2VkdXJlOmFueSkgPT4gIXByb2NlZGltaWVudG9BUmVlbXBsYXphci5pbmNsdWRlcyhwcm9jZWR1cmUuYWN0aW9uKSk7XHJcbiAgICAgICAgcGFyZW50UHJvYyA9IHBhcmVudFByb2MubWFwKHByb2NEZWY9PntcclxuICAgICAgICAgICAgaWYocHJvY0RlZi5hY3Rpb24gPT0gJ3RhYmxlX3JlY29yZF9zYXZlJyB8fCBwcm9jRGVmLmFjdGlvbiA9PSAndGFibGVfcmVjb3JkX2RlbGV0ZScpe1xyXG4gICAgICAgICAgICAgICAgdmFyIGNvcmVGdW5jdGlvbkludGVybm8gPSBwcm9jRGVmLmNvcmVGdW5jdGlvbjtcclxuICAgICAgICAgICAgICAgIHByb2NEZWYuY29yZUZ1bmN0aW9uID0gYXN5bmMgZnVuY3Rpb24oY29udGV4dDpDb250ZXh0LCBwYXJhbWV0ZXJzOkNvcmVGdW5jdGlvblBhcmFtZXRlcnMpe1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSBhd2FpdCBjb3JlRnVuY3Rpb25JbnRlcm5vKGNvbnRleHQsIHBhcmFtZXRlcnMpXHJcbiAgICAgICAgICAgICAgICAgICAgaWYocGFyYW1ldGVycy50YWJsZSA9PSAnY2FzaWxsZXJvcycpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiZS5jYWNoZXMudGltZXN0YW1wRXN0cnVjdHVyYSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnc2UgdG9jw7MgbGEgZXN0cnVjdHVyYScsIGJlLmNhY2hlcy50aW1lc3RhbXBFc3RydWN0dXJhKVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBwcm9jRGVmO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgcmV0dXJuIHBhcmVudFByb2MuY29uY2F0KFByb2NlZHVyZXNEbUVuY3UpO1xyXG4gICAgfVxyXG4gICAgb3ZlcnJpZGUgYXN5bmMgY2hlY2tEYXRhYmFzZVN0cnVjdHVyZShfY2xpZW50OkNsaWVudCl7XHJcbiAgICB9XHJcbiAgICBvdmVycmlkZSBhZGRTY2hyw7ZkaW5nZXJTZXJ2aWNlcyhtYWluQXBwOnByb2Nlc2FtaWVudG8uRXhwcmVzcywgYmFzZVVybDpzdHJpbmcpe1xyXG4gICAgICAgIGxldCBiZT10aGlzO1xyXG4gICAgICAgIHN1cGVyLmFkZFNjaHLDtmRpbmdlclNlcnZpY2VzKG1haW5BcHAsIGJhc2VVcmwpO1xyXG4gICAgICAgIC8vcGVybWl0byBsZXZhbnRhciBtaXMgaW1hZ2VuZXMgZW4gYXBsaWNhY2lvbmVzIGRlcGVuZGllbnRlc1xyXG4gICAgICAgIGJlLmFwcC51c2UoJy9pbWcnLCBleHByZXNzLnN0YXRpYygnbm9kZV9tb2R1bGVzL2RtZW5jdS9kaXN0L3VubG9nZ2VkL3VubG9nZ2VkL2ltZycpKVxyXG4gICAgICAgIG1haW5BcHAudXNlKGZ1bmN0aW9uKHJlcTpSZXF1ZXN0LF9yZXM6UmVzcG9uc2UsIG5leHQ6TmV4dEZ1bmN0aW9uKXtcclxuICAgICAgICAgICAgaWYocmVxLnNlc3Npb24gJiYgIXJlcS5zZXNzaW9uLmluc3RhbGwpe1xyXG4gICAgICAgICAgICAgICAgcmVxLnNlc3Npb24uaW5zdGFsbD1NYXRoLnJhbmRvbSgpLnRvU3RyaW5nKCkucmVwbGFjZSgnLicsJycpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG5leHQoKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIG1haW5BcHAuZ2V0KGJhc2VVcmwrJy9zYWx2YXInLGFzeW5jIGZ1bmN0aW9uKHJlcSxyZXMsX25leHQpe1xyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlIHPDqSBxdWUgdm95IGEgcmVjaWJpciB1c2VyYWdlbnQgcG9yIGxvcyBtaWRkbGV3YXJlcyBkZSBCYWNrZW5kLXBsdXNcclxuICAgICAgICAgICAgdmFyIHt1c2VyYWdlbnR9ID0gcmVxO1xyXG4gICAgICAgICAgICB2YXIgaHRtbE1haW49YmUubWFpblBhZ2Uoe3VzZXJhZ2VudH0sIGZhbHNlLCB7c2tpcE1lbnU6dHJ1ZSwgb2ZmbGluZUZpbGU6dHJ1ZX0pLnRvSHRtbERvYygpO1xyXG4gICAgICAgICAgICBtaW5pVG9vbHMuc2VydmVUZXh0KGh0bWxNYWluLCdodG1sJykocmVxLHJlcyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbWFpbkFwcC5nZXQoYmFzZVVybCsnL2NhbXBvJyxhc3luYyBmdW5jdGlvbihyZXEscmVzLF9uZXh0KXtcclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZSBzw6kgcXVlIHZveSBhIHJlY2liaXIgdXNlcmFnZW50IHBvciBsb3MgbWlkZGxld2FyZXMgZGUgQmFja2VuZC1wbHVzXHJcbiAgICAgICAgICAgIHZhciB7dXNlcmFnZW50LCB1c2VyfSA9IHJlcTtcclxuICAgICAgICAgICAgaWYodXNlcil7XHJcbiAgICAgICAgICAgICAgICAvKiogQHR5cGUge3t0eXBlOidqcycsIHNyYzpzdHJpbmd9W119ICovXHJcbiAgICAgICAgICAgICAgICB2YXIgd2ViTWFuaWZlc3RQYXRoID0gJ2NhcmdhLWRtL3dlYi1tYW5pZmVzdC53ZWJtYW5pZmVzdCc7XHJcbiAgICAgICAgICAgICAgICB2YXIgaHRtbE1haW49YmUubWFpblBhZ2Uoe3VzZXJhZ2VudCwgdXNlcn0sIGZhbHNlLCB7c2tpcE1lbnU6dHJ1ZSwgd2ViTWFuaWZlc3RQYXRoLCBvZmZsaW5lRmlsZTp0cnVlfSkudG9IdG1sRG9jKCk7XHJcbiAgICAgICAgICAgICAgIG1pbmlUb29scy5zZXJ2ZVRleHQoaHRtbE1haW4sJ2h0bWwnKShyZXEscmVzKTtcclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICByZXMucmVkaXJlY3QoNDAxLCBiYXNlVXJsKycvbG9naW4jdz1wYXRoJnBhdGg9L2NhbXBvJylcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHZhciBjcmVhdGVTZXJ2aWNlV29ya2VyID0gYXN5bmMgZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgdmFyIHN3ID0gYXdhaXQgZnMucmVhZEZpbGUoJ25vZGVfbW9kdWxlcy9zZXJ2aWNlLXdvcmtlci1hZG1pbi9kaXN0L3NlcnZpY2Utd29ya2VyLXdvLW1hbmlmZXN0LmpzJywgJ3V0ZjgnKTtcclxuICAgICAgICAgICAgdmFyIG1hbmlmZXN0ID0gYmUuY3JlYXRlUmVzb3VyY2VzRm9yQ2FjaGVKc29uKCk7XHJcbiAgICAgICAgICAgIHZhciBzd01hbmlmZXN0ID0gc3dcclxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKFwiJy8qdmVyc2lvbiovJ1wiLCBKU09OLnN0cmluZ2lmeShtYW5pZmVzdC52ZXJzaW9uKSlcclxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKFwiJy8qYXBwTmFtZSovJ1wiLCBKU09OLnN0cmluZ2lmeShtYW5pZmVzdC5hcHBOYW1lKSlcclxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXFtcXHMqXFwvXFwqdXJsc1RvQ2FjaGVcXCpcXC9cXHMqXFxdLywgSlNPTi5zdHJpbmdpZnkobWFuaWZlc3QuY2FjaGUpKVxyXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcW1xccypcXC9cXCpmYWxsYmFja3NcXCpcXC9cXHMqXFxdLywgSlNPTi5zdHJpbmdpZnkobWFuaWZlc3QuZmFsbGJhY2sgfHwgW10pKTtcclxuICAgICAgICAgICAgICAgIC8vLnJlcGxhY2UoXCIvI0NBQ0hFJC9cIiwgXCIvKGFcXFxcZCttXFxcXGQrcFxcXFxkK3RcXFxcZCtfZXN0cnVjdHVyYS5qcyl8KGFcXFxcZCttXFxcXGQrcFxcXFxkK3RcXFxcZCtfaGRyLmpzb24pL1wiKTtcclxuICAgICAgICAgICAgcmV0dXJuIHN3TWFuaWZlc3RcclxuICAgICAgICB9XHJcbiAgICAgICAgbWFpbkFwcC5nZXQoYmFzZVVybCtgL3N3LW1hbmlmZXN0LmpzYCwgYXN5bmMgZnVuY3Rpb24ocmVxLCByZXMsIG5leHQpe1xyXG4gICAgICAgICAgICB0cnl7XHJcbiAgICAgICAgICAgICAgICBtaW5pVG9vbHMuc2VydmVUZXh0KGF3YWl0IGNyZWF0ZVNlcnZpY2VXb3JrZXIoKSwnYXBwbGljYXRpb24vamF2YXNjcmlwdCcpKHJlcSxyZXMpO1xyXG4gICAgICAgICAgICB9Y2F0Y2goZXJyKXtcclxuICAgICAgICAgICAgICAgIG1pbmlUb29scy5zZXJ2ZUVycihyZXEscmVzLG5leHQpKHVuZXhwZWN0ZWQoZXJyKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBtYWluQXBwLmdldChiYXNlVXJsK2AvY2FyZ2EtZG0vd2ViLW1hbmlmZXN0LndlYm1hbmlmZXN0YCwgYXN5bmMgZnVuY3Rpb24ocmVxLCByZXMsIG5leHQpe1xyXG4gICAgICAgICAgICBjb25zdCBBUFBfTkFNRSA9IChhd2FpdCBiZS5pblRyYW5zYWN0aW9uKG51bGwsIChjbGllbnQ6cGcuQ2xpZW50KT0+XHJcbiAgICAgICAgICAgICAgICBjbGllbnQucXVlcnkoXCJzZWxlY3Qgb3BlcmF0aXZvIGZyb20gcGFyYW1ldHJvcyB3aGVyZSB1bmljb19yZWdpc3Ryb1wiKS5mZXRjaFVuaXF1ZVZhbHVlKClcclxuICAgICAgICAgICAgKSkudmFsdWU7XHJcbiAgICAgICAgICAgIHZhciBzdWZpam8gPSBiYXNlVXJsLmluY2x1ZGVzKCd0ZXN0JykgfHwgYmFzZVVybC5pbmNsdWRlcygnL3ByJyk/J190ZXN0JzpcclxuICAgICAgICAgICAgICAgIGJhc2VVcmwuaW5jbHVkZXMoJ2NhcGEnKT8nX2NhcGEnOicnO1xyXG4gICAgICAgICAgICB0cnl7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0ge1xyXG4gICAgICAgICAgICAgICAgICBcIm5hbWVcIjogYCR7QVBQX05BTUV9JHtzdWZpam99IFByb2dyZXNzaXZlIFdlYiBBcHBgLFxyXG4gICAgICAgICAgICAgICAgICBcInNob3J0X25hbWVcIjogYCR7QVBQX05BTUV9JHtzdWZpam99IFBXQWAsXHJcbiAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogYFByb2dyZXNzaXZlIFdlYiBBcHAgZm9yICR7QVBQX05BTUV9JHtzdWZpam99LmAsXHJcbiAgICAgICAgICAgICAgICAgIFwiaWNvbnNcIjogW1xyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgIFwic3JjXCI6IGAuLi9pbWcvJHtBUFBfTkFNRX0tbG9nby1kbS0zMiR7c3VmaWpvfS5wbmdgLFxyXG4gICAgICAgICAgICAgICAgICAgICAgXCJzaXplc1wiOiBcIjMyeDMyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbWFnZS9wbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgXCJzcmNcIjogYC4uL2ltZy8ke0FQUF9OQU1FfS1sb2dvLWRtLTQ4JHtzdWZpam99LnBuZ2AsXHJcbiAgICAgICAgICAgICAgICAgICAgICBcInNpemVzXCI6IFwiNDh4NDhcIixcclxuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImltYWdlL3BuZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBcInNyY1wiOiBgLi4vaW1nLyR7QVBQX05BTUV9LWxvZ28tZG0tNjQke3N1Zmlqb30ucG5nYCxcclxuICAgICAgICAgICAgICAgICAgICAgIFwic2l6ZXNcIjogXCI2NHg2NFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW1hZ2UvcG5nXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgIFwic3JjXCI6IGAuLi9pbWcvJHtBUFBfTkFNRX0tbG9nby1kbS03MiR7c3VmaWpvfS5wbmdgLFxyXG4gICAgICAgICAgICAgICAgICAgICAgXCJzaXplc1wiOiBcIjcyeDcyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbWFnZS9wbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgXCJzcmNcIjogYC4uL2ltZy8ke0FQUF9OQU1FfS1sb2dvLWRtLTE5MiR7c3VmaWpvfS5wbmdgLFxyXG4gICAgICAgICAgICAgICAgICAgICAgXCJzaXplc1wiOiBcIjE5MngxOTJcIixcclxuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImltYWdlL3BuZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBcInNyY1wiOiBgLi4vaW1nLyR7QVBQX05BTUV9LWxvZ28tZG0tNTEyJHtzdWZpam99LnBuZ2AsXHJcbiAgICAgICAgICAgICAgICAgICAgICBcInNpemVzXCI6IFwiNTEyeDUxMlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW1hZ2UvcG5nXCJcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICAgIC4uLmJlLmdldENvbG9yc0pzb24oc3VmaWpvIGFzIFN1Zmlqb3NBbWJpZW50ZSlcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIG1pbmlUb29scy5zZXJ2ZVRleHQoSlNPTi5zdHJpbmdpZnkoY29udGVudCksICdhcHBsaWNhdGlvbi9qc29uJykocmVxLHJlcyk7XHJcbiAgICAgICAgICAgIH1jYXRjaChlcnIpe1xyXG4gICAgICAgICAgICAgICAgbWluaVRvb2xzLnNlcnZlRXJyKHJlcSwgcmVzLCBuZXh0KSh1bmV4cGVjdGVkKGVycikpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBnZXRDb2xvcnNKc29uKF9zdWZpam86IFN1Zmlqb3NBbWJpZW50ZSl7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgXCJzdGFydF91cmxcIjogXCIuLi9jYW1wb1wiLFxyXG4gICAgICAgICAgICBcImRpc3BsYXlcIjogXCJzdGFuZGFsb25lXCIsXHJcbiAgICAgICAgICAgIFwidGhlbWVfY29sb3JcIjogXCIjM0Y1MUI1XCIsXHJcbiAgICAgICAgICAgIFwiYmFja2dyb3VuZF9jb2xvclwiOiBcIiM2ZDYwZWRcIlxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG92ZXJyaWRlIGFkZExvZ2dlZFNlcnZpY2VzKCl7XHJcbiAgICAgICAgdmFyIGJlID0gdGhpcztcclxuICAgICAgICBzdXBlci5hZGRMb2dnZWRTZXJ2aWNlcygpO1xyXG4gICAgICAgIGJlLmFwcC5nZXQoJy9tYW5pZmVzdC5tYW5pZmVzdCcsIGFzeW5jIGZ1bmN0aW9uKHJlcTpSZXF1ZXN0LCByZXM6UmVzcG9uc2UsIF9uZXh0Ok5leHRGdW5jdGlvbil7XHJcbiAgICAgICAgICAgIG1pbmlUb29scy5zZXJ2ZUZpbGUoJ3NyYy9jbGllbnQvbWFuaWZlc3QubWFuaWZlc3QnLHt9KShyZXEscmVzKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmFwcC5nZXQoJy9maWxlJywgYXN5bmMgZnVuY3Rpb24ocmVxOlJlcXVlc3QscmVzOlJlc3BvbnNlKXtcclxuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IGJlLmluVHJhbnNhY3Rpb24ocmVxLCBcclxuICAgICAgICAgICAgICAgIChjbGllbnQ6cGcuQ2xpZW50KT0+XHJcbiAgICAgICAgICAgICAgICBjbGllbnQucXVlcnkoXCJzZWxlY3QgcnV0YSBmcm9tIGFkanVudG9zIHdoZXJlIGlkX2FkanVudG8gPSAkMVwiLFtyZXEucXVlcnkuaWRfYWRqdW50b10pXHJcbiAgICAgICAgICAgICAgICAuZmV0Y2hVbmlxdWVWYWx1ZSgpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHZhciBwYXRoID0gcmVzdWx0LnZhbHVlO1xyXG4gICAgICAgICAgICBtaW5pVG9vbHMuc2VydmVGaWxlKHBhdGgse30pKHJlcSxyZXMpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuYXBwLmdldCgnL2ltYWdlbmVzJywgYXN5bmMgZnVuY3Rpb24ocmVxOlJlcXVlc3QscmVzOlJlc3BvbnNlKXtcclxuICAgICAgICAgICAgbWluaVRvb2xzLnNlcnZlRmlsZSgnbG9jYWwtaW1hZ2VzLycrcmVxLnF1ZXJ5LnBkZix7fSkocmVxLHJlcyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5hcHAuZ2V0KCcvZG93bmxvYWQvYWxsJyxhc3luYyBmdW5jdGlvbihyZXE6UmVxdWVzdCwgcmVzOlJlc3BvbnNlLCBuZXh0OigpPT52b2lkKXtcclxuICAgICAgICAgICAgaWYocmVxLnVzZXI9PW51bGwgfHwgcmVxLnVzZXIucm9sIT0nYWRtaW4nKXtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdubyBlc3TDoSBhdXRvcml6YWRvIGEgYmFqYXJzZSB0b2RvJyxyZXEudXNlcilcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXh0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGV0IHppcCA9IG5ldyB5YXpsLlppcEZpbGUoKTtcclxuICAgICAgICAgICAgemlwLm91dHB1dFN0cmVhbS5waXBlKHJlcyk7XHJcbiAgICAgICAgICAgIGxldCBiYXNlID0gJ2xvY2FsLWF0dGFjaG1lbnRzJ1xyXG4gICAgICAgICAgICBsZXQgZmlsZXMgPSBhd2FpdCBmcy5yZWFkZGlyKGJhc2UpO1xyXG4gICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChmaWxlcy5tYXAoYXN5bmMgZnVuY3Rpb24oZmlsZU5hbWU6c3RyaW5nKXtcclxuICAgICAgICAgICAgICAgIHZhciBwYXRoID0gYmFzZSsnLycrZmlsZU5hbWU7XHJcbiAgICAgICAgICAgICAgICB2YXIgc3RhdCA9IGF3YWl0IGZzLnN0YXQocGF0aCk7XHJcbiAgICAgICAgICAgICAgICBpZihzdGF0LmlzRmlsZSgpKXtcclxuICAgICAgICAgICAgICAgICAgICB6aXAuYWRkRmlsZShwYXRoLGZpbGVOYW1lKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICB6aXAuZW5kKCk7XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuICAgIG92ZXJyaWRlIGFzeW5jIHBvc3RDb25maWcoKXtcclxuICAgICAgICBhd2FpdCBzdXBlci5wb3N0Q29uZmlnKCk7XHJcbiAgICAgICAgdmFyIGJlPXRoaXM7XHJcbiAgICAgICAgYmUuY2FjaGVzLm1ldGFFbmNJbmNsdWlyQ2FzaWxsZXJvc1NhbHRvUkVMID0gZmFsc2U7XHJcbiAgICAgICAgYXdhaXQgYmUuaW5UcmFuc2FjdGlvbihudWxsLCBhc3luYyBmdW5jdGlvbihjbGllbnQ6cGcuQ2xpZW50KXtcclxuICAgICAgICAgICAgdmFyIHFQZXJtaXNvcz1gXHJcbiAgICAgICAgICAgIFNFTEVDVCBqc29uYl9vYmplY3RfYWdnKHIucm9sLGpzb25iX2J1aWxkX29iamVjdCgnc3VwZXJ1c2VyJyxyLnN1cGVydXNlciwncHVlZGUnLChcclxuICAgICAgICAgICAgICAgICAgU0VMRUNUIGpzb25iX29iamVjdF9hZ2cocnAucGVybWlzbywoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFNFTEVDVCBqc29uYl9vYmplY3RfYWdnKHJwYS5hY2Npb24scnBhLmhhYmlsaXRhZG8pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgRlJPTSByb2xlc19wZXJtaXNvcyBycGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBXSEVSRSBycGEucm9sPXJwLnJvbCBBTkQgcnBhLnBlcm1pc289cnAucGVybWlzb1xyXG4gICAgICAgICAgICAgICAgICAgICkpXHJcbiAgICAgICAgICAgICAgICAgICAgRlJPTSByb2xlc19wZXJtaXNvcyBycFxyXG4gICAgICAgICAgICAgICAgICAgIFdIRVJFIHJwLnJvbD1yLnJvbCAjY29uZEhhYmlsaXRhZG8jXHJcbiAgICAgICAgICAgICAgKSkpXHJcbiAgICAgICAgICAgICAgRlJPTSByb2xlcyByXHJcbiAgICAgICAgICAgIGA7XHJcbiAgICAgICAgICAgIHZhciByZXN1bHRzID0gW1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgY2xpZW50LnF1ZXJ5KHFQZXJtaXNvcy5yZXBsYWNlKCcjY29uZEhhYmlsaXRhZG8jJywnJykpLmZldGNoVW5pcXVlVmFsdWUoKSxcclxuICAgICAgICAgICAgICAgIGF3YWl0IGNsaWVudC5xdWVyeShxUGVybWlzb3MucmVwbGFjZSgnI2NvbmRIYWJpbGl0YWRvIycsYCBhbmQgcnAuJHtwZy5xdW90ZUlkZW50KCdoYWJpbGl0YWRvJyl9YCkpLmZldGNoVW5pcXVlVmFsdWUoKSxcclxuICAgICAgICAgICAgICAgIGF3YWl0IGNsaWVudC5xdWVyeShgXHJcbiAgICAgICAgICAgICAgICAgICAgU0VMRUNUIGpzb25iX29iamVjdF9hZ2cocGVybWlzbywoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFNFTEVDVCBqc29uYl9vYmplY3RfYWdnKGFjY2lvbix0cnVlKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEZST00gcGVybWlzb3MgcGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBXSEVSRSBwYS5wZXJtaXNvPXAucGVybWlzb1xyXG4gICAgICAgICAgICAgICAgICAgICAgKSlcclxuICAgICAgICAgICAgICAgICAgICAgIEZST00gcGVybWlzb3MgcFxyXG4gICAgICAgICAgICAgICAgYCkuZmV0Y2hVbmlxdWVWYWx1ZSgpXHJcbiAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgIGJlLmNhY2hlcy5wZXJtaXNvc1JvbD1yZXN1bHRzWzBdLnZhbHVlO1xyXG4gICAgICAgICAgICBiZS5jYWNoZXMucGVybWlzb3NSb2xTb2xvVHJ1ZT1yZXN1bHRzWzFdLnZhbHVlO1xyXG4gICAgICAgICAgICBiZS5jYWNoZXMucGVybWlzb3NTdXBlcnVzZXI9cmVzdWx0c1syXS52YWx1ZTtcclxuICAgICAgICAgICAgYmUuY2FjaGVzLnBlcm1pc29zUGFyYU5hZGllPWxpa2VBcihiZS5jYWNoZXMucGVybWlzb3NTdXBlcnVzZXIpLm1hcChwPT5saWtlQXIocCkubWFwKF89PmZhbHNlKS5wbGFpbigpKS5wbGFpbigpXHJcbiAgICAgICAgICAgIC8vY29uc29sZS5kaXIoYmUuY2FjaGVzLnBlcm1pc29zUm9sU29sb1RydWUse2RlcHRoOjl9KTtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmRpcihiZS5jYWNoZXMucGVybWlzb3NTdXBlcnVzZXIse2RlcHRoOjl9KTtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmRpcihiZS5jYWNoZXMucGVybWlzb3NQYXJhTmFkaWUse2RlcHRoOjl9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBhd2FpdCB0aGlzLnJlZnJlc2hDYWNoZXMoKTtcclxuICAgIH1cclxuICAgIG92ZXJyaWRlIGNvbmZpZ1N0YXRpY0NvbmZpZygpe1xyXG4gICAgICAgIHN1cGVyLmNvbmZpZ1N0YXRpY0NvbmZpZygpO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGljQ29uZmlnKGRlZkNvbmZpZyk7XHJcbiAgICB9XHJcbiAgICBvdmVycmlkZSBjbGllbnRJbmNsdWRlcyhyZXE6UmVxdWVzdCwgb3B0czpPcHRzQ2xpZW50UGFnZSk6Q2xpZW50TW9kdWxlRGVmaW5pdGlvbltdIHtcclxuICAgICAgICB2YXIgYmUgPSB0aGlzO1xyXG4gICAgICAgIHZhciB1bmxvZ2dlZCA9IG9wdHMgJiYgb3B0cy5vZmZsaW5lRmlsZTtcclxuICAgICAgICB2YXIgbWVudWVkUmVzb3VyY2VzOkNsaWVudE1vZHVsZURlZmluaXRpb25bXT0gdW5sb2dnZWQ/W1xyXG4gICAgICAgICAgICB7IHR5cGU6ICdqcycsIG1vZHVsZTogJ2RtZW5jdScsIG1vZFBhdGg6ICcuLi8uLi91bmxvZ2dlZC91bmxvZ2dlZCcsIGZpbGU6ICd1bmxvZ2dlZC5qcycsIHBhdGg6ICdkbWVuY3UnIH0sXHJcbiAgICAgICAgXTpbXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnZG1lbmN1JywgbW9kUGF0aDogJy4uLy4uL2NsaWVudC9jbGllbnQnLCBmaWxlOiAnY2xpZW50LmpzJywgcGF0aDogJ2RtZW5jdScgfSxcclxuICAgICAgICBdO1xyXG4gICAgICAgIGlmKG9wdHMgJiYgb3B0cy5leHRyYUZpbGVzKXtcclxuICAgICAgICAgICAgbWVudWVkUmVzb3VyY2VzID0gbWVudWVkUmVzb3VyY2VzLmNvbmNhdChvcHRzLmV4dHJhRmlsZXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgZXh0ZXJuYWxSZXNvdXJjZXM6Q2xpZW50TW9kdWxlRGVmaW5pdGlvbltdID0gW1xyXG4gICAgICAgICAgICB7IHR5cGU6ICdqcycsIG1vZHVsZTogJ3JlYWN0JywgbW9kUGF0aDogJ3VtZCcsIGZpbGVEZXZlbG9wbWVudDoncmVhY3QuZGV2ZWxvcG1lbnQuanMnLCBmaWxlOidyZWFjdC5wcm9kdWN0aW9uLm1pbi5qcycgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAnanMnLCBtb2R1bGU6ICdyZWFjdC1kb20nLCBtb2RQYXRoOiAndW1kJywgZmlsZURldmVsb3BtZW50OidyZWFjdC1kb20uZGV2ZWxvcG1lbnQuanMnLCBmaWxlOidyZWFjdC1kb20ucHJvZHVjdGlvbi5taW4uanMnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnQG1hdGVyaWFsLXVpL2NvcmUnLCBtb2RQYXRoOiAndW1kJywgZmlsZURldmVsb3BtZW50OidtYXRlcmlhbC11aS5kZXZlbG9wbWVudC5qcycsIGZpbGU6J21hdGVyaWFsLXVpLnByb2R1Y3Rpb24ubWluLmpzJyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdqcycsIG1vZHVsZTogJ2Nsc3gnLCBmaWxlOidjbHN4Lm1pbi5qcycgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAnanMnLCBtb2R1bGU6ICdyZWR1eCcsIG1vZFBhdGg6Jy4uL2Rpc3QnLCBmaWxlRGV2ZWxvcG1lbnQ6J3JlZHV4LmpzJywgZmlsZToncmVkdXgubWluLmpzJyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdqcycsIG1vZHVsZTogJ3JlYWN0LXJlZHV4JywgbW9kUGF0aDonLi4vZGlzdCcsIGZpbGVEZXZlbG9wbWVudDoncmVhY3QtcmVkdXguanMnLCBmaWxlOidyZWFjdC1yZWR1eC5taW4uanMnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnbWVtb2l6ZS1vbmUnLCAgZmlsZTonbWVtb2l6ZS1vbmUuanMnIH0sXHJcbiAgICAgICAgICAgIC8veyB0eXBlOiAnanMnLCBtb2R1bGU6ICdxcmNvZGUnLCBtb2RQYXRoOiAnLi4vYnVpbGQnLCBmaWxlOiAncXJjb2RlLmpzJ30sXHJcbiAgICAgICAgICAgIC4uLnN1cGVyLmNsaWVudEluY2x1ZGVzKHJlcSwgb3B0cykuZmlsdGVyKG09Pm0uZmlsZSE9J2Zvcm11bGFyaW9zLmNzcycpXHJcbiAgICAgICAgICAgIC5maWx0ZXIobT0+IXVubG9nZ2VkIHx8IHRydWVcclxuICAgICAgICAgICAgICAgICYmIG0uZmlsZSE9J3Zhci1jYWwuanMnXHJcbiAgICAgICAgICAgICAgICAmJiBtLmZpbGUhPSd2YXItY2FsLmpzJyAgICAgXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnc2VydmljZS13b3JrZXItYWRtaW4nLCAgZmlsZTonc2VydmljZS13b3JrZXItYWRtaW4uanMnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAncmVkdXgtdHlwZWQtcmVkdWNlcicsIG1vZFBhdGg6Jy4uL2Rpc3QnLCBmaWxlOidyZWR1eC10eXBlZC1yZWR1Y2VyLmpzJyB9XHJcbiAgICAgICAgXTtcclxuICAgICAgICB2YXIgcmVzb3VyY2VzOkNsaWVudE1vZHVsZURlZmluaXRpb25bXSA9IFtcclxuICAgICAgICAgICAgLi4uZXh0ZXJuYWxSZXNvdXJjZXMsXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnZG1lbmN1JywgbW9kUGF0aDogJy4uLy4uL3VubG9nZ2VkL3VubG9nZ2VkJywgZmlsZTogJ2FkYXB0LmpzJywgcGF0aDogJ2RtZW5jdScgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAnanMnLCBtb2R1bGU6ICdkbWVuY3UnLCBtb2RQYXRoOiAnLi4vLi4vdW5sb2dnZWQvdW5sb2dnZWQnLCBmaWxlOiAndGlwb3MuanMnLCBwYXRoOiAnZG1lbmN1JyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdqcycsIG1vZHVsZTogJ2RtZW5jdScsIG1vZFBhdGg6ICcuLi8uLi91bmxvZ2dlZC91bmxvZ2dlZCcsIGZpbGU6ICdieXBhc3MtZm9ybXVsYXJpby5qcycsIHBhdGg6ICdkbWVuY3UnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnZG1lbmN1JywgbW9kUGF0aDogJy4uLy4uL3VubG9nZ2VkL3VubG9nZ2VkJywgZmlsZTogJ3JlZHV4LWZvcm11bGFyaW8uanMnLCBwYXRoOiAnZG1lbmN1JyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdqcycsIG1vZHVsZTogJ2RtZW5jdScsIG1vZFBhdGg6ICcuLi8uLi91bmxvZ2dlZC91bmxvZ2dlZCcsIGZpbGU6ICdyZW5kZXItZ2VuZXJhbC5qcycsIHBhdGg6ICdkbWVuY3UnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnZG1lbmN1JywgbW9kUGF0aDogJy4uLy4uL3VubG9nZ2VkL3VubG9nZ2VkJywgZmlsZTogJ3JlbmRlci1mb3JtdWxhcmlvLmpzJywgcGF0aDogJ2RtZW5jdScgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAnanMnLCBtb2R1bGU6ICdkbWVuY3UnLCBtb2RQYXRoOiAnLi4vLi4vdW5sb2dnZWQvdW5sb2dnZWQnLCBmaWxlOiAnYWJyaXItZm9ybXVsYXJpby5qcycsIHBhdGg6ICdkbWVuY3UnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2NzcycsIG1vZHVsZTogJ2RtZW5jdScsIG1vZFBhdGg6ICcuLi8uLi9jbGllbnQvY2xpZW50L2NzcycsIGZpbGU6ICdtZW51LmNzcycsIHBhdGg6ICdjc3MnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2NzcycsIG1vZHVsZTogJ2RtZW5jdScsIG1vZFBhdGg6ICcuLi8uLi91bmxvZ2dlZC91bmxvZ2dlZC9jc3MnLCBmaWxlOiAnZm9ybXVsYXJpby1yZWFjdC5jc3MnLCBwYXRoOiAnY3NzJyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdjc3MnLCBtb2R1bGU6ICdkbWVuY3UnLCBtb2RQYXRoOiAnLi4vLi4vdW5sb2dnZWQvdW5sb2dnZWQvY3NzJywgZmlsZTogJ2Jvb3RzdHJhcC5taW4uY3NzJywgcGF0aDogJ2NzcycgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAndHRmJywgbW9kdWxlOiAnZG1lbmN1JywgbW9kUGF0aDogJy4uLy4uL3VubG9nZ2VkL3VubG9nZ2VkL2NzcycsIGZpbGU6ICdSb2JvdG8tUmVndWxhci50dGYnLCBwYXRoOiAnY3NzJyB9LFxyXG4gICAgICAgICAgICAuLi4gbWVudWVkUmVzb3VyY2VzLFxyXG4gICAgICAgIF1cclxuICAgICAgICByZXR1cm4gcmVzb3VyY2VzXHJcbiAgICAgICAgLy8gLm1hcChtPT4oey4uLm0sIGZpbGU6bS5maWxlRGV2ZWxvcG1lbnR8fG0uZmlsZX0pKTtcclxuICAgIH1cclxuICAgIGFzeW5jIHJlZnJlc2hDYWNoZXMoKXtcclxuICAgICAgICB0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQgPSB0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQgfHwge307XHJcbiAgICAgICAgYXdhaXQgdGhpcy5pbkRiQ2xpZW50KG51bGwsIGFzeW5jIChjbGllbnQpPT57XHJcbiAgICAgICAgICAgIHRoaXMuY2FjaGVzLnRhYmxlQ29udGVudC5ub19yZWEgPSAoYXdhaXQgY2xpZW50LnF1ZXJ5KGBzZWxlY3QgKiBmcm9tIG5vX3JlYSBvcmRlciBieSBub19yZWFgKS5mZXRjaEFsbCgpKS5yb3dzO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnY2FjaGVzJyx0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQubm9fcmVhKVxyXG4gICAgICAgICAgICB0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQubm9fcmVhX2dyb3VwcyA9IChhd2FpdCBjbGllbnQucXVlcnkoYFxyXG4gICAgICAgICAgICAgICAgc2VsZWN0IGdydXBvLCBqc29uYl9hZ2codG9fanNvbihyLiopKSBhcyBjb2RpZ29zIGZyb20gbm9fcmVhIHIgZ3JvdXAgYnkgZ3J1cG8gb3JkZXIgYnkgMVxyXG4gICAgICAgICAgICBgKS5mZXRjaEFsbCgpKS5yb3dzO1xyXG4gICAgICAgICAgICB0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQubm9fcmVhX2dyb3VwczAgPSAoYXdhaXQgY2xpZW50LnF1ZXJ5KGBcclxuICAgICAgICAgICAgICAgIHNlbGVjdCBncnVwbzAgYXMgZ3J1cG8sIGpzb25iX2FnZyh0b19qc29uKHIuKikpIGFzIGNvZGlnb3MgZnJvbSBub19yZWEgciBncm91cCBieSBncnVwbzAgb3JkZXIgYnkgMVxyXG4gICAgICAgICAgICBgKS5mZXRjaEFsbCgpKS5yb3dzO1xyXG4gICAgICAgICAgICB0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQubm9fcmVhX3N1cCA9IChhd2FpdCBjbGllbnQucXVlcnkoYHNlbGVjdCAqIGZyb20gbm9fcmVhX3N1cCBvcmRlciBieSBub19yZWFfc3VwYCkuZmV0Y2hBbGwoKSkucm93cztcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ2NhY2hlcycsdGhpcy5jYWNoZXMudGFibGVDb250ZW50Lm5vX3JlYV9zdXApXHJcbiAgICAgICAgICAgIHRoaXMuY2FjaGVzLnRhYmxlQ29udGVudC5ub19yZWFfc3VwX2dyb3VwcyA9IChhd2FpdCBjbGllbnQucXVlcnkoYFxyXG4gICAgICAgICAgICBzZWxlY3QgZ3J1cG9fc3VwLCBqc29uYl9hZ2codG9fanNvbihyLiopKSBhcyBjb2RpZ29zIGZyb20gbm9fcmVhX3N1cCByIGdyb3VwIGJ5IGdydXBvX3N1cCBvcmRlciBieSAxXHJcbiAgICAgICAgICAgIGApLmZldGNoQWxsKCkpLnJvd3M7XHJcbiAgICAgICAgICAgIHRoaXMuY2FjaGVzLnRhYmxlQ29udGVudC5ub19yZWFfc3VwX2dyb3VwczAgPSAoYXdhaXQgY2xpZW50LnF1ZXJ5KGBcclxuICAgICAgICAgICAgc2VsZWN0IGdydXBvMF9zdXAgYXMgZ3J1cG8sIGpzb25iX2FnZyh0b19qc29uKHIuKikpIGFzIGNvZGlnb3MgZnJvbSBub19yZWFfc3VwIHIgZ3JvdXAgYnkgZ3J1cG8wX3N1cCBvcmRlciBieSAxXHJcbiAgICAgICAgYCkuZmV0Y2hBbGwoKSkucm93cztcclxuICAgICAgICB9KVxyXG4gICAgICAgIGNvbnNvbGUubG9nKCdjYWNoZXMgb2snKTtcclxuICAgIH1cclxuICAgIC8vc3FsTm9yZWFDYXNlKGNhbXBvTmVjZXNhcmlvOnN0cmluZyl7XHJcbiAgICAvLyAgICB2YXIgYmU9dGhpcztcclxuICAgIC8vICAgIHJldHVybiBgQ0FTRSAke2JlLmNhY2hlcy50YWJsZUNvbnRlbnQubm9fcmVhLm1hcCh4PT5cclxuICAgIC8vICAgICAgICBgIFdIRU4gbm9yZWEgID0gJHtiZS5kYi5xdW90ZUxpdGVyYWwoeC5ub19yZWEpfTo6aW50ZWdlciBUSEVOICR7YmUuZGIucXVvdGVMaXRlcmFsKHhbY2FtcG9OZWNlc2FyaW9dKX1gXHJcbiAgICAvLyAgICApLmpvaW4oJycpfSBXSEVOIFRSVUUgVEhFTiBOVUxMIEVORGBcclxuICAgIC8vfSAgICBcclxuICAgIG92ZXJyaWRlIGdldENvbnRleHQocmVxOlJlcXVlc3QpOkNvbnRleHR7XHJcbiAgICAgICAgdmFyIGJlID0gdGhpcztcclxuICAgICAgICB2YXIgZmF0aGVyQ29udGV4dCA9IHN1cGVyLmdldENvbnRleHQocmVxKTtcclxuICAgICAgICBpZihmYXRoZXJDb250ZXh0LnVzZXIpe1xyXG4gICAgICAgICAgICBpZihyZXEudXNlcj8ucm9sICE9bnVsbCAmJiBiZS5jYWNoZXMucGVybWlzb3NSb2xbcmVxLnVzZXIucm9sXT8uc3VwZXJ1c2VyKXtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7c3VwZXJ1c2VyOnRydWUsIHB1ZWRlOiBiZS5jYWNoZXMucGVybWlzb3NTdXBlcnVzZXIsIC4uLmZhdGhlckNvbnRleHR9XHJcbiAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtwdWVkZTogYmUuY2FjaGVzLnBlcm1pc29zUm9sW3JlcS51c2VyLnJvbF0/LnB1ZWRlLCAuLi5mYXRoZXJDb250ZXh0fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB7cHVlZGU6YmUuY2FjaGVzLnBlcm1pc29zUGFyYU5hZGllLCAuLi5mYXRoZXJDb250ZXh0fTtcclxuICAgIH1cclxuICAgIG92ZXJyaWRlIGdldENvbnRleHRGb3JEdW1wKCk6Q29udGV4dHtcclxuICAgICAgICB2YXIgZmF0aGVyQ29udGV4dCA9IHN1cGVyLmdldENvbnRleHRGb3JEdW1wKCk7XHJcbiAgICAgICAgcmV0dXJuIHtzdXBlcnVzZXI6dHJ1ZSwgcHVlZGU6IHRoaXMuY2FjaGVzLnBlcm1pc29zU3VwZXJ1c2VyLCAuLi5mYXRoZXJDb250ZXh0fTtcclxuICAgIH1cclxuICAgIG92ZXJyaWRlIGFzeW5jIGdldENsaWVudFNldHVwRm9yU2VuZFRvRnJvbnRFbmQocmVxOlJlcXVlc3Qpe1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIC4uLihhd2FpdCBzdXBlci5nZXRDbGllbnRTZXR1cEZvclNlbmRUb0Zyb250RW5kKHJlcSkpLFxyXG4gICAgICAgICAgICBpZHBlcjogcmVxLnVzZXI/LmlkcGVyXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgY3JlYXRlUmVzb3VyY2VzRm9yQ2FjaGVKc29uKCl7XHJcbiAgICAgICAgdmFyIGJlID0gdGhpcztcclxuICAgICAgICB2YXIganNvblJlc3VsdCA9IHtcclxuICAgICAgICAgICAgdmVyc2lvbjogQVBQX0RNX1ZFUlNJT04sXHJcbiAgICAgICAgICAgIGFwcE5hbWU6ICdkbWVuY3UnLFxyXG4gICAgICAgICAgICBjYWNoZTogW1xyXG4gICAgICAgICAgICAgICAgXCJjYW1wb1wiLFxyXG4gICAgICAgICAgICAgICAgXCJvZmZsaW5lXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9yZWFjdC5wcm9kdWN0aW9uLm1pbi5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvcmVhY3QtZG9tLnByb2R1Y3Rpb24ubWluLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9tYXRlcmlhbC11aS5wcm9kdWN0aW9uLm1pbi5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvY2xzeC5taW4uanNcIixcclxuICAgICAgICAgICAgICAgIFwibGliL3JlZHV4Lm1pbi5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvcmVhY3QtcmVkdXgubWluLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9tZW1vaXplLW9uZS5qc1wiLFxyXG4gICAgICAgICAgICAgICAgLy9cImxpYi9xcmNvZGUuanNcIixcclxuICAgICAgICAgICAgICAgIFwibGliL3JlcXVpcmUtYnJvLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9jYXN0LWVycm9yLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9saWtlLWFyLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9iZXN0LWdsb2JhbHMuanNcIixcclxuICAgICAgICAgICAgICAgIFwibGliL2pzb240YWxsLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9qcy10by1odG1sLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9yZWR1eC10eXBlZC1yZWR1Y2VyLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImRtZW5jdS9hZGFwdC5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJkbWVuY3UvdW5sb2dnZWQuanNcIixcclxuICAgICAgICAgICAgICAgIFwibGliL2pzLXlhbWwuanNcIixcclxuICAgICAgICAgICAgICAgIFwibGliL3hsc3guY29yZS5taW4uanNcIixcclxuICAgICAgICAgICAgICAgIFwibGliL2xhenktc29tZS5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvc3FsLXRvb2xzLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImRpYWxvZy1wcm9taXNlL2RpYWxvZy1wcm9taXNlLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcIm1vbWVudC9taW4vbW9tZW50LmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcInBpa2FkYXkvcGlrYWRheS5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvcG9seWZpbGxzLWJyby5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvYmlnLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi90eXBlLXN0b3JlLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi90eXBlZC1jb250cm9scy5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvYWpheC1iZXN0LXByb21pc2UuanNcIixcclxuICAgICAgICAgICAgICAgIFwibXktYWpheC5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJteS1zdGFydC5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvbXktbG9jYWxkYi5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvbXktd2Vic3FsZGIuanNcIixcclxuICAgICAgICAgICAgICAgIFwibGliL215LWxvY2FsZGIuanMubWFwXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9teS13ZWJzcWxkYi5qcy5tYXBcIixcclxuICAgICAgICAgICAgICAgIFwibGliL215LXRoaW5ncy5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvbXktdGFibGVzLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9teS1pbmZvcm0tbmV0LXN0YXR1cy5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvbXktbWVudS5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvbXktc2tpbi5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvY2xpZW50ZS1lbi1jYXN0ZWxsYW5vLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9zZXJ2aWNlLXdvcmtlci1hZG1pbi5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvcmVkdXgtdHlwZWQtcmVkdWNlci5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJjbGllbnRfbW9kdWxlcy9vcGVyYXRpdm9zLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImNsaWVudF9tb2R1bGVzL3ZhcmNhbC5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJjbGllbnRfbW9kdWxlcy9mb3JtLXN0cnVjdHVyZS5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJjbGllbnRfbW9kdWxlcy9tZXRhLWVuYy5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJjbGllbnRfbW9kdWxlcy9kYXRvcy1leHQuanNcIixcclxuICAgICAgICAgICAgICAgIFwiY2xpZW50X21vZHVsZXMvY29uc2lzdGVuY2lhcy5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJjbGllbnRfbW9kdWxlcy9wcm9jZXNhbWllbnRvLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImRtZW5jdS90aXBvcy5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJkbWVuY3UvYnlwYXNzLWZvcm11bGFyaW8uanNcIixcclxuICAgICAgICAgICAgICAgIFwiZG1lbmN1L3JlZHV4LWZvcm11bGFyaW8uanNcIixcclxuICAgICAgICAgICAgICAgIFwiZG1lbmN1L3JlbmRlci1nZW5lcmFsLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImRtZW5jdS9yZW5kZXItZm9ybXVsYXJpby5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJkbWVuY3UvYWJyaXItZm9ybXVsYXJpby5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJjbGllbnRfbW9kdWxlcy9yb3ctdmFsaWRhdG9yLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImNsaWVudC9tZW51LmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImltZy9sb2dvLnBuZ1wiLFxyXG4gICAgICAgICAgICAgICAgLy9cImltZy9sb2dvLWRtLnBuZ1wiLFxyXG4gICAgICAgICAgICAgICAgXCJpbWcvbG9nby0xMjgucG5nXCIsXHJcbiAgICAgICAgICAgICAgICBcImltZy9tYWluLWxvYWRpbmcuZ2lmXCIsXHJcbiAgICAgICAgICAgICAgICBcImltZy9ib3JyYXItdmFsb3IucG5nXCIsXHJcbiAgICAgICAgICAgICAgICBcImltZy9mb25kby1zYWx0ZWFkby1lcnJvci5wbmdcIixcclxuICAgICAgICAgICAgICAgIFwiaW1nL2ZvbmRvLXNhbHRlYWRvLnBuZ1wiLFxyXG4gICAgICAgICAgICAgICAgXCJpbWcvYmFja2dyb3VuZC10ZXN0LnBuZ1wiLFxyXG4gICAgICAgICAgICAgICAgXCJjbGllbnQtc2V0dXBcIixcclxuICAgICAgICAgICAgICAgIFwiY3NzL2Jvb3RzdHJhcC5taW4uY3NzXCIsXHJcbiAgICAgICAgICAgICAgICBcImNzcy9mb3JtdWxhcmlvLXJlYWN0LmNzc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJwaWthZGF5L3Bpa2FkYXkuY3NzXCIsXHJcbiAgICAgICAgICAgICAgICBcImRpYWxvZy1wcm9taXNlL2RpYWxvZy1wcm9taXNlLmNzc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJyZWwtZW5jL2VzdGFkb3MuY3NzXCIsXHJcbiAgICAgICAgICAgICAgICBcImNzcy9teS10YWJsZXMuY3NzXCIsXHJcbiAgICAgICAgICAgICAgICBcImNzcy9teS1tZW51LmNzc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJjc3MvbXktdGhpbmdzLmNzc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJjc3MvbWVudS5jc3NcIixcclxuICAgICAgICAgICAgICAgIFwicmVsLWVuYy9teS10aGluZ3MyLmNzc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJjc3MvZm9ybXVsYXJpby1yZWFjdC5jc3NcIixcclxuICAgICAgICAgICAgICAgIFwiY3NzL1JvYm90by1SZWd1bGFyLnR0ZlwiXHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIGZhbGxiYWNrOiBbXHJcbiAgICAgICAgICAgICAgICB7XCJwYXRoXCI6XCJsb2dpblwiLCBcImZhbGxiYWNrXCI6XCJvZmZsaW5lXCJ9LFxyXG4gICAgICAgICAgICAgICAge1wicGF0aFwiOlwibG9nb3V0XCIsIFwiZmFsbGJhY2tcIjpcIm9mZmxpbmVcIn0sXHJcbiAgICAgICAgICAgICAgICB7XCJwYXRoXCI6XCJsb2dpbiNpPXNpbmNyb25pemFyXCIsIFwiZmFsbGJhY2tcIjpcIm9mZmxpbmVcIn0sXHJcbiAgICAgICAgICAgICAgICB7XCJwYXRoXCI6XCJtZW51I2k9c2luY3Jvbml6YXJcIiwgXCJmYWxsYmFja1wiOlwib2ZmbGluZVwifVxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4ganNvblJlc3VsdFxyXG4gICAgfVxyXG4gICAgZ2V0TWVudShjb250ZXh0OkNvbnRleHQpe1xyXG4gICAgICAgIGxldCBtZW51Ok1lbnVJbmZvQmFzZVtdID0gW107XHJcbiAgICAgICAgbGV0IGZpbHRyb1JlY2VwY2lvbmlzdGEgPSBjb250ZXh0LnVzZXIucm9sPT0ncmVjZXBjaW9uaXN0YScgPyB7cmVjZXBjaW9uaXN0YTogY29udGV4dC51c2VyLmlkcGVyfSA6IHt9O1xyXG4gICAgICAgIGlmKHRoaXMuY29uZmlnLnNlcnZlci5wb2xpY3k9PSd3ZWInKXtcclxuICAgICAgICAgICAgaWYoY29udGV4dC5wdWVkZT8uZW5jdWVzdGFzLnJlbGV2YXIpe1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5jb25maWdbJ2NsaWVudC1zZXR1cCddLmFtYmllbnRlPT0nZGVtbycgfHwgdGhpcy5jb25maWdbJ2NsaWVudC1zZXR1cCddLmFtYmllbnRlPT0ndGVzdCcgfHwgdGhpcy5jb25maWdbJ2NsaWVudC1zZXR1cCddLmFtYmllbnRlPT0nY2FwYScpe1xyXG4gICAgICAgICAgICAgICAgICAgIG1lbnUucHVzaCh7bWVudVR5cGU6J2RlbW8nLCBuYW1lOidkZW1vJywgc2VsZWN0ZWRCeURlZmF1bHQ6dHJ1ZX0pXHJcbiAgICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICBtZW51LnB1c2goe21lbnVUeXBlOidwYXRoJywgbmFtZToncmVsZXZhbWllbnRvJywgcGF0aDonL2NhbXBvJ30pXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBtZW51LnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOidzaW5jcm9uaXphcl9kbScsIG5hbWU6J3NpbmNyb25pemFyJ30sXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIGlmKGNvbnRleHQucHVlZGU/LmNhbXBvPy5lZGl0YXIpe1xyXG4gICAgICAgICAgICAgICAgbGV0IG1lbnVGaWx0cmFkb0NvbnRlbnQ6TWVudUluZm9CYXNlW10gPSBbXHJcbiAgICAgICAgICAgICAgICAgICAgLy97IG1lbnVUeXBlOiAndGFibGUnLCBuYW1lOiAnZ2VuZXJhbCcsIHRhYmxlOiAnYXJlYXNfYXNpZ25hY2lvbl9nZW5lcmFsJyB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHsgbWVudVR5cGU6ICd0YWJsZScsIG5hbWU6ICdlbmN1ZXN0YWRvcicsIHRhYmxlOiAndF9lbmN1X2FyZWFzJywgZmY6IHsgdGFyZWE6ICdlbmN1JywgLi4uZmlsdHJvUmVjZXBjaW9uaXN0YSB9IH0sXHJcbiAgICAgICAgICAgICAgICAgICAgeyBtZW51VHlwZTogJ3RhYmxlJywgbmFtZTogJ3JlY3VwZXJhZG9yJywgdGFibGU6ICd0YXJlYXNfdGVtX3JlY3UnLCBmZjogeyB0ZW1fcmVjX190YXJlYV9wcm94aW1hOiAncmVjdScsIHRhcmVhOiAncmVjdScsIC4uLmZpbHRyb1JlY2VwY2lvbmlzdGEgfSB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHsgbWVudVR5cGU6ICd0YWJsZScsIG5hbWU6ICdzdXBlcnZpc29yJywgdGFibGU6ICd0YXJlYXNfdGVtX3N1cGUnLCBmZjogeyB0ZW1fcmVjX190YXJlYV9wcm94aW1hOiAnc3VwZScsIHRhcmVhOiAnc3VwZScsIC4uLmZpbHRyb1JlY2VwY2lvbmlzdGEgfSB9LFxyXG4gICAgICAgICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgICAgICBpZihjb250ZXh0LnVzZXI/LnJvbCAhPSAncmVjZXBjaW9uaXN0YScpIHtcclxuICAgICAgICAgICAgICAgICAgICBtZW51RmlsdHJhZG9Db250ZW50LnVuc2hpZnQoeyBtZW51VHlwZTogJ3RhYmxlJywgbmFtZTogJ2dlbmVyYWwnLCB0YWJsZTogJ2FyZWFzX2FzaWduYWNpb25fZ2VuZXJhbCcgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBtZW51LnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOidtZW51JywgbmFtZTonYXNpZ25hY2lvbicsIGxhYmVsOidhc2lnbmFjacOzbicgLG1lbnVDb250ZW50OiBtZW51RmlsdHJhZG9Db250ZW50fSxcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIG1lbnUucHVzaChcclxuICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J21lbnUnLCBuYW1lOidyZWNlcGNpb24nLCBsYWJlbDoncmVjZXBjacOzbicgLG1lbnVDb250ZW50OltcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J2VuY3Vlc3RhZG9yJywgdGFibGU6J2VuY3Vlc3RhZG9yZXNfYXNpZ25hZG9zJywgZmY6eyAuLi5maWx0cm9SZWNlcGNpb25pc3RhfX0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidyZWN1cGVyYWRvcicsIHRhYmxlOidyZWN1cGVyYWRvcmVzX2FzaWduYWRvcycsIGZmOnsgLi4uZmlsdHJvUmVjZXBjaW9uaXN0YX19LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTonc3VwZXJ2aXNvcicgLCB0YWJsZTonc3VwZXJ2aXNvcmVzX2FzaWduYWRvcycgLCBmZjp7IC4uLmZpbHRyb1JlY2VwY2lvbmlzdGF9fSxcclxuICAgICAgICAgICAgICAgICAgICBdfSwgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIG1lbnUucHVzaCh7IG1lbnVUeXBlOiAnbWVudScsIG5hbWU6ICd2YXJpb3MnLCBtZW51Q29udGVudDogW1xyXG4gICAgICAgICAgICAgICAgICAgIHsgbWVudVR5cGU6ICdhYnJpcl9lbmN1ZXN0YScsIG5hbWU6ICdhYnJpcl9lbmN1ZXN0YSd9LFxyXG4gICAgICAgICAgICAgICAgICAgLy97bWVudVR5cGU6J2NvbnNpc3Rpcl9lbmN1ZXN0YScsIG5hbWU6J2NvbnNpc3Rpcl9lbmN1ZXN0YSd9LFxyXG4gICAgICAgICAgICAgICAgXSB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImNvbnRleHQgdXNlclwiLCBjb250ZXh0LnVzZXIpXHJcbiAgICAgICAgICAgIGlmKGNvbnRleHQuc3VwZXJ1c2VyKXtcclxuICAgICAgICAgICAgICAgIG1lbnUucHVzaChcclxuICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J21lbnUnLCBuYW1lOidjb250cm9sJywgbWVudUNvbnRlbnQ6W1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZToncmVzdW1lbicsIHRhYmxlOidjb250cm9sX3Jlc3VtZW4nLCBzZWxlY3RlZEJ5RGVmYXVsdDp0cnVlfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J2RvbWluaW8nLCB0YWJsZTonY29udHJvbF9jYW1wb19kb21pbmlvJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOid6b25hJyAgICwgdGFibGU6J2NvbnRyb2xfY2FtcG9fem9uYScgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidjb211bmEnICwgdGFibGU6J2NvbnRyb2xfY2FtcG9fY29tdW5hJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOifDoXJlYScgICAsIHRhYmxlOidjb250cm9sX2NhbXBvX2FyZWEnICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZToncGFydGljaXBhY2lvbicgICAgICAgICwgdGFibGU6J2NvbnRyb2xfY2FtcG9fcGFydGljaXBhY2lvbicgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgXX0sICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYoY29udGV4dC5wdWVkZT8uZW5jdWVzdGFzLnByb2Nlc2FyKXtcclxuICAgICAgICAgICAgICAgIG1lbnUgPSBbIC4uLm1lbnUsXHJcbiAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOidtZW51JywgbmFtZToncHJvY2VzYXInLCBtZW51Q29udGVudDpbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOid2YXJpYWJsZXMnICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidjb25zaXN0ZW5jaWFzJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidpbmNvbnNpc3RlbmNpYXMnfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J3RhYmxhX2RhdG9zJyAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J2RpY2Npb25hcmlvJyAgLCBsYWJlbDonZGljY2lvbmFyaW9zJyB9LFxyXG4gICAgICAgICAgICAgICAgICAgIF19LFxyXG4gICAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKGNvbnRleHQuc3VwZXJ1c2VyKXtcclxuICAgICAgICAgICAgICAgIG1lbnUgPSBbIC4uLm1lbnUsXHJcbiAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOidtZW51JywgbmFtZTonY29uZmlndXJhcicsIG1lbnVDb250ZW50OltcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOidtZW51JywgbmFtZTonbXVlc3RyYScsIGxhYmVsOidtdWVzdHJhJywgbWVudUNvbnRlbnQ6W1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J3RlbScsIGxhYmVsOiAnVEVNJ30gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J3RhcmVhcyd9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB7bWVudVR5cGU6J3RhYmxlJywgbmFtZToncGVyc29uYWxfcm9sJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgbWVudVR5cGU6ICd0YWJsZScsIG5hbWU6ICdncl9ob2phX3J1dGEnLCB0YWJsZTogJ2dyaWxsYV9ob2phX3J1dGEnLCAgbGFiZWw6J2dyaWxsYSBob2phIGRlIHJ1dGEnfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXX0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTonbWVudScsIG5hbWU6J21ldGFkYXRvcycsIG1lbnVDb250ZW50OltcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidvcGVyYXRpdm9zJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTonZm9ybXVsYXJpb3MnICwgdGFibGU6J2Nhc2lsbGVyb3NfcHJpbmNpcGFsZXMnfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidwbGFubycgICAgICAgLCB0YWJsZTonY2FzaWxsZXJvcyd9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J3RpcG9jJyAgICAgICAsIGxhYmVsOid0aXBvcyBkZSBjZWxkYXMnfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOid0aXBvY190aXBvYycgLCBsYWJlbDonaW5jbHVzaW9uZXMgZGUgY2VsZGFzJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF19LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J21lbnUnLCBuYW1lOidlc3RhZG9zX2FjY2lvbmVzJywgbGFiZWw6J2VzdGFkb3MvYWNjaW9uZXMnLCBtZW51Q29udGVudDpbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTonZXN0YWRvcyd9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J2FjY2lvbmVzJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTonZXN0YWRvc19hY2Npb25lcyd9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBdfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J3BhcmFtZXRyb3MnfSxcclxuICAgICAgICAgICAgICAgICAgICBdfSxcclxuICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J21lbnUnLCBuYW1lOid1c3VhcmlvcycsIG1lbnVDb250ZW50OltcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J3VzdWFyaW9zJywgc2VsZWN0ZWRCeURlZmF1bHQ6dHJ1ZX0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidyb2xlcyd9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZToncGVybWlzb3MnfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J3JvbGVzX3Blcm1pc29zJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgXX0sXHJcbiAgICAgICAgICAgICAgICAgICAgLy8ge21lbnVUeXBlOidwcm9jJywgbmFtZTonZ2VuZXJhdGVfdGFibGVkZWYnLCBwcm9jOid0YWJsZWRlZl9nZW5lcmF0ZScsIGxhYmVsOidnZW5lcmFyIHRhYmxhcycgIH0sXHJcbiAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHttZW51fTtcclxuICAgIH1cclxuICAgIG92ZXJyaWRlIHByZXBhcmVHZXRUYWJsZXMoKXtcclxuICAgICAgICB2YXIgYmU9dGhpcztcclxuICAgICAgICBzdXBlci5wcmVwYXJlR2V0VGFibGVzKCk7XHJcbiAgICAgICAgdGhpcy5nZXRUYWJsZURlZmluaXRpb249e1xyXG4gICAgICAgICAgICAuLi50aGlzLmdldFRhYmxlRGVmaW5pdGlvblxyXG4gICAgICAgICAgICAsIHJvbGVzXHJcbiAgICAgICAgICAgICwgdXN1YXJpb3NcclxuICAgICAgICAgICAgLCBwZXJzb25hbFxyXG4gICAgICAgICAgICAsIHJlY2VwY2lvbmlzdGFzXHJcbiAgICAgICAgICAgICwgZW5jdWVzdGFkb3Jlc19hc2lnbmFkb3NcclxuICAgICAgICAgICAgLCByZWN1cGVyYWRvcmVzX2FzaWduYWRvc1xyXG4gICAgICAgICAgICAsIHN1cGVydmlzb3Jlc19hc2lnbmFkb3NcclxuICAgICAgICAgICAgLCBtaXNfZW5jdWVzdGFkb3Jlc1xyXG4gICAgICAgICAgICAsIHJlY3VwZXJhZG9yZXNcclxuICAgICAgICAgICAgLCBzdXBlcnZpc29yZXNcclxuICAgICAgICAgICAgLCBwZXJzb25hbF9yb2xcclxuICAgICAgICAgICAgLCBwZXJtaXNvc1xyXG4gICAgICAgICAgICAsIHJvbGVzX3Blcm1pc29zXHJcbiAgICAgICAgICAgICwgcm9sZXNfc3Vib3JkaW5hZG9zXHJcbiAgICAgICAgICAgICwgbm9fcmVhXHJcbiAgICAgICAgICAgICwgbm9fcmVhX3N1cFxyXG4gICAgICAgICAgICAsIHNlbWFuYXNcclxuICAgICAgICAgICAgLCBlc3RhZG9zXHJcbiAgICAgICAgICAgICwgYWNjaW9uZXNcclxuICAgICAgICAgICAgLCBlc3RhZG9zX2FjY2lvbmVzXHJcbiAgICAgICAgICAgICwgdGVtXHJcbiAgICAgICAgICAgICwgdGVtX3JlY2VwY2lvblxyXG4gICAgICAgICAgICAsIHBhcmFtZXRyb3NcclxuICAgICAgICAgICAgLCBvcGVyYWNpb25lc1xyXG4gICAgICAgICAgICAsIGNvbXVuYXNcclxuICAgICAgICAgICAgLCBhcmVhc1xyXG4gICAgICAgICAgICAsIHNpbmNyb25pemFjaW9uZXNcclxuICAgICAgICAgICAgLCB0YXJlYXNcclxuICAgICAgICAgICAgLCB0YXJlYXNfdGVtXHJcbiAgICAgICAgICAgICwgdGFyZWFzX3RlbV9lbmN1XHJcbiAgICAgICAgICAgICwgdGFyZWFzX3RlbV9yZWN1XHJcbiAgICAgICAgICAgICwgdGFyZWFzX3RlbV9zdXBlXHJcbiAgICAgICAgICAgICwgdGFyZWFzX2FyZWFzXHJcbiAgICAgICAgICAgICwgYXJlYXNfYXNpZ25hY2lvbl9nZW5lcmFsXHJcbiAgICAgICAgICAgICwgZ3JpbGxhX2hvamFfcnV0YVxyXG4gICAgICAgICAgICAsIHRfZW5jdV9hcmVhc1xyXG4gICAgICAgICAgICAsIHRfcmVjdV9hcmVhc1xyXG4gICAgICAgICAgICAsIHRfc3VwZV9hcmVhc1xyXG4gICAgICAgICAgICAsIG1pc190YXJlYXNcclxuICAgICAgICAgICAgLCB0ZW1fYXNpZ25hY2lvblxyXG4gICAgICAgICAgICAsIHRhcmVhc190ZW1fcmVjZXBjaW9uXHJcbiAgICAgICAgICAgICwgbWlzX3RhcmVhc19hcmVhc1xyXG4gICAgICAgICAgICAsIGNvbnRyb2xfY2FtcG9cclxuICAgICAgICAgICAgLCBjb250cm9sX3Jlc3VtZW5cclxuICAgICAgICAgICAgLCBjb250cm9sX2NhbXBvX3pvbmE6IGNvbnRleHQ9PmNvbnRyb2xfY2FtcG8oY29udGV4dCwgXHJcbiAgICAgICAgICAgICAgICB7bm9tYnJlOidjb250cm9sX2NhbXBvX2NvbXVuYScsIHRpdGxlOidjb250cm9sIGNhbXBvIHggem9uYSBzb2xvIGNlbWVudG8nLCBjYW1wb3NDb3J0ZTpbe25hbWU6J3pvbmEnLCB0eXBlTmFtZTondGV4dCd9XSwgZmlsdHJvV2hlcmU6J2RvbWluaW89MycgfVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgICwgY29udHJvbF9jYW1wb19jb211bmE6IGNvbnRleHQ9PmNvbnRyb2xfY2FtcG8oY29udGV4dCwgXHJcbiAgICAgICAgICAgICAgICB7bm9tYnJlOidjb250cm9sX2NhbXBvX2NvbXVuYScsIHRpdGxlOidjb250cm9sIGNhbXBvIHggY29tdW5hIHNvbG8gY2VtZW50bycsIGNhbXBvc0NvcnRlOlt7bmFtZTonem9uYScsIHR5cGVOYW1lOid0ZXh0J30se25hbWU6J25yb2NvbXVuYScsIHR5cGVOYW1lOidpbnRlZ2VyJ31dLCBmaWx0cm9XaGVyZTonZG9taW5pbz0zJyB9XHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLCBjb250cm9sX2NhbXBvX2FyZWE6IGNvbnRleHQ9PmNvbnRyb2xfY2FtcG8oY29udGV4dCwgXHJcbiAgICAgICAgICAgICAgICB7bm9tYnJlOidjb250cm9sX2NhbXBvX2NvbXVuYScsIHRpdGxlOidjb250cm9sIGNhbXBvIHggYXJlYScsIGNhbXBvc0NvcnRlOlt7bmFtZTonem9uYScsIHR5cGVOYW1lOid0ZXh0J30se25hbWU6J25yb2NvbXVuYScsIHR5cGVOYW1lOidpbnRlZ2VyJ30se25hbWU6J2FyZWEnLCB0eXBlTmFtZTonaW50ZWdlcid9LHtuYW1lOidwYXJ0aWNpcGFjaW9uX2EnLCB0eXBlTmFtZTondGV4dCd9LHtuYW1lOidjbGFzZV9hJywgdHlwZU5hbWU6J3RleHQnfV19XHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLCBjb250cm9sX2NhbXBvX3BhcnRpY2lwYWNpb246IGNvbnRleHQ9PmNvbnRyb2xfY2FtcG8oY29udGV4dCwgXHJcbiAgICAgICAgICAgICAgICB7bm9tYnJlOidjb250cm9sX2NhbXBvX2NvbXVuYScsIHRpdGxlOidjb250cm9sIGNhbXBvIHggcGFydGljaXBhY2lvbicsIGNhbXBvc0NvcnRlOlt7bmFtZToncGFydGljaXBhY2lvbicsIHR5cGVOYW1lOidiaWdpbnQnfV19XHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLCBjb250cm9sX2NhbXBvX2RvbWluaW86IGNvbnRleHQ9PmNvbnRyb2xfY2FtcG8oY29udGV4dCwgXHJcbiAgICAgICAgICAgICAgICB7bm9tYnJlOidjb250cm9sX2NhbXBvX2NvbXVuYScsIHRpdGxlOidjb250cm9sIGNhbXBvIHggZG9taW5pbycsIGNhbXBvc0NvcnRlOlt7bmFtZTonZG9taW5pbycsIHR5cGVOYW1lOidpbnRlZ2VyJ31dfVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgICwgdml2aWVuZGFzXHJcbiAgICAgICAgICAgICwgdmlzaXRhc1xyXG4gICAgICAgICAgICAsIGhvZ2FyZXNcclxuICAgICAgICAgICAgLCBwZXJzb25hc1xyXG4gICAgICAgICAgICAsIHZpc2l0YXNfc3VwXHJcbiAgICAgICAgICAgICwgaG9nYXJlc19zdXBcclxuICAgICAgICAgICAgLCBwZXJzb25hc19zdXBcclxuICAgICAgICB9XHJcbiAgICAgICAgYmUuYXBwZW5kVG9UYWJsZURlZmluaXRpb24oJ2NvbnNpc3RlbmNpYXMnLGZ1bmN0aW9uKHRhYmxlRGVmLCBjb250ZXh0KXtcclxuICAgICAgICAgICAgdGFibGVEZWYuZmllbGRzLmZvckVhY2goZnVuY3Rpb24oZmllbGQpe1xyXG4gICAgICAgICAgICAgICAgaWYoZmllbGQubmFtZT09J2Vycm9yX2NvbXBpbGFjaW9uJyl7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoZmllbGQudmlzaWJsZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJyoqKioqKioqKioqKiBRVUlUQVIgRVNUTyBlcnJvcl9jb21waWxhY2lvbiB5YSBlcyB2aXNpYmxlJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkLnZpc2libGU9dHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9KVxyXG4gICAgICAgIGJlLmFwcGVuZFRvVGFibGVEZWZpbml0aW9uKCdpbmNvbnNpc3RlbmNpYXMnLGZ1bmN0aW9uKHRhYmxlRGVmLCBjb250ZXh0KXtcclxuICAgICAgICAgICAgdGFibGVEZWYuc3FsPXsuLi50YWJsZURlZi5zcWwsIGlzVGFibGU6dHJ1ZX07XHJcbiAgICAgICAgICAgIHRhYmxlRGVmLmZpZWxkcy5zcGxpY2UoMiwwLFxyXG4gICAgICAgICAgICAgICAge25hbWU6J3ZpdmllbmRhJyAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAgLCBlZGl0YWJsZTogZmFsc2V9LFxyXG4gICAgICAgICAgICAgICAge25hbWU6J2hvZ2FyJyAgICAgICAsIHR5cGVOYW1lOidiaWdpbnQnICAgLCBlZGl0YWJsZTogZmFsc2V9LFxyXG4gICAgICAgICAgICAgICAge25hbWU6J3BlcnNvbmEnICAgICAsIHR5cGVOYW1lOidiaWdpbnQnICAgLCBlZGl0YWJsZTogZmFsc2V9LFxyXG4gICAgICAgICAgICAgICAge25hbWU6J3Zpc2l0YScgICAgICAsIHR5cGVOYW1lOidiaWdpbnQnICAgLCBlZGl0YWJsZTogZmFsc2V9LFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0YWJsZURlZi5lZGl0YWJsZT10YWJsZURlZi5lZGl0YWJsZSB8fCBjb250ZXh0LnB1ZWRlPy5lbmN1ZXN0YXMuanVzdGlmaWNhcjtcclxuICAgICAgICAgICAgdGFibGVEZWYuZmllbGRzLmZvckVhY2goZnVuY3Rpb24oZmllbGQpe1xyXG4gICAgICAgICAgICAgICAgaWYoZmllbGQubmFtZT09J3BrX2ludGVncmFkYScpe1xyXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkLnZpc2libGU9ZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZihmaWVsZC5uYW1lPT0nanVzdGlmaWNhY2lvbicpe1xyXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkLmVkaXRhYmxlPWNvbnRleHQuZm9yRHVtcCB8fCBjb250ZXh0LnB1ZWRlPy5lbmN1ZXN0YXMuanVzdGlmaWNhcjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgdGFibGVEZWYuZmllbGRzLnB1c2goe25hbWU6J2Zpbl9jYW1wbycgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgIFxyXG4gICAgICAgICAgICAgICAgLCBlZGl0YWJsZTogZmFsc2UsIGluVGFibGU6ZmFsc2VcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgdGFibGVEZWYuc3FsIS5mcm9tPWBcclxuICAgICAgICAgICAgICAgIChzZWxlY3QgaS4qLCB0LmZpbl9jYW1wbyBcclxuICAgICAgICAgICAgICAgICAgZnJvbSBpbmNvbnNpc3RlbmNpYXMgaSBqb2luIHRlbSB0IG9uIGkudml2aWVuZGE9dC5lbmMgYW5kIGkub3BlcmF0aXZvPXQub3BlcmF0aXZvIFxyXG4gICAgICAgICAgICAgICAgKSAgXHJcbiAgICAgICAgICAgIGBcclxuICAgICAgICB9KVxyXG4gICAgICAgIGJlLmFwcGVuZFRvVGFibGVEZWZpbml0aW9uKCdvcGVyYXRpdm9zJyxmdW5jdGlvbih0YWJsZURlZiwgY29udGV4dCl7XHJcbiAgICAgICAgICAgIHRhYmxlRGVmLmZpZWxkcy5zcGxpY2UoMiwwLHtcclxuICAgICAgICAgICAgICAgIG5hbWU6J2NvbmZpZ19zb3J0ZW8nLCBcclxuICAgICAgICAgICAgICAgIHR5cGVOYW1lOidqc29uYicsXHJcbiAgICAgICAgICAgICAgICBlZGl0YWJsZTogZmFsc2VcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRhYmxlRGVmLmZpZWxkcy5zcGxpY2UoMywwLHtcclxuICAgICAgICAgICAgICAgIG5hbWU6J2Rpc2Zvcm1fY2VycmFkbycsIFxyXG4gICAgICAgICAgICAgICAgdHlwZU5hbWU6J2Jvb2xlYW4nLCBcclxuICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsIFxyXG4gICAgICAgICAgICAgICAgZWRpdGFibGU6IGNvbnRleHQuZm9yRHVtcHx8WydhZG1pbicsJ2Rpc19jb25jZXB0dWFsJ10uaW5jbHVkZXMoY29udGV4dC51c2VyLnJvbCl9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgLy8gYmUuYXBwZW5kVG9UYWJsZURlZmluaXRpb24oJ2Nhc2lsbGVyb3MnLGZ1bmN0aW9uKHRhYmxlRGVmLCBjb250ZXh0KXtcclxuICAgICAgICAvLyAgICAgdGFibGVEZWYuY29uc3RyYWludHMgPSB0YWJsZURlZi5jb25zdHJhaW50cy5maWx0ZXIoYz0+Yy5jb25zTmFtZSE9J2Nhc2lsbGVyb3Mgc2FsdG8gUkVMJylcclxuICAgICAgICAvLyB9KVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IHZhciBBcHBEbUVuY3UgPSBlbWVyZ2VBcHBEbUVuY3UoZW1lcmdlQXBwUHJvY2VzYW1pZW50byhlbWVyZ2VBcHBDb25zaXN0ZW5jaWFzKGVtZXJnZUFwcFZhckNhbChlbWVyZ2VBcHBEYXRvc0V4dChlbWVyZ2VBcHBPcGVyYXRpdm9zKEFwcEJhY2tlbmQpKSkpKSk7XHJcbmV4cG9ydCB0eXBlIEFwcEFwcERtRW5jdVR5cGUgPSBJbnN0YW5jZVR5cGU8dHlwZW9mIEFwcERtRW5jdT47Il19
|
package/package.json
CHANGED