@techextensor/tab-core-utility 2.2.151 → 2.2.152
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.
|
@@ -58,7 +58,7 @@ export class TabCrudService {
|
|
|
58
58
|
const appField = appObject.field(key);
|
|
59
59
|
const childField = appObject.ChildRelationShips?.some((x) => x?.childDetails?.LookupObject === key);
|
|
60
60
|
// Delete the field if it is not valid or if primary keys should not be kept
|
|
61
|
-
if (!(appField || childField) || (keepPrimaryKey && appField?.IsPrimaryKey)) {
|
|
61
|
+
if (!(appField || childField) || (!keepPrimaryKey && appField?.IsPrimaryKey)) {
|
|
62
62
|
delete filteredData[key];
|
|
63
63
|
}
|
|
64
64
|
});
|
|
@@ -198,4 +198,4 @@ export class TabCrudService {
|
|
|
198
198
|
type: Injectable,
|
|
199
199
|
args: [{ providedIn: 'root' }]
|
|
200
200
|
}], null, null); })();
|
|
201
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWNydWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9jcnVkL3RhYi1jcnVkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQWdCLE1BQU0sMkJBQTJCLENBQUM7QUFDNUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzFELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHMUYsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBR2hFLE1BQU0sT0FBTyxjQUFjO0lBRDNCO1FBRXFCLG9CQUFlLEdBQW1CLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN6RCwyQkFBc0IsR0FBMEIsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDOUUsZUFBVSxHQUFjLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxQyxnQkFBVyxHQUFH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TSxFQUFFLE9BQU8sQ0FBa0MsQ0FBQztJQUNoSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxTQUFTLENBQUMsRUFBVSxFQUFFLE9BQWE7UUFDL0IsbUNBQW1DO1FBQ25DLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVuQyxvREFBb0Q7UUFDcEQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLFVBQVUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBa0MsQ0FBQztJQUMzRyxDQUFDOytFQXJOUSxjQUFjO3VFQUFkLGNBQWMsV0FBZCxjQUFjLG1CQURELE1BQU07O2lGQUNuQixjQUFjO2NBRDFCLFVBQVU7ZUFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29tbW9uQXBpUmVzcG9uc2UsIENydWRCYXNlUGF5bG9hZCwgRGVsZXRlUGF5bG9hZCwgR2V0UGF5bG9hZCwgSW5zZXJ0UGF5bG9hZCwgVXBkYXRlUGF5bG9hZCB9IGZyb20gXCIuLi9pbnRlcmZhY2VzL2NvbW1vbi5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IEFwcE9iamVjdE1vZGVsIH0gZnJvbSBcIi4uL21vZGVscy9hcHAtb2JqZWN0Lm1vZGVsXCI7XG5pbXBvcnQgeyBNZXRhZGF0YUhlbHBlciB9IGZyb20gXCIuLi9oZWxwZXJzL2NvbW1vbi9tZXRhLWRhdGEuaGVscGVyc1wiO1xuaW1wb3J0IHsgY3JlYXRlRHluYW1pY0RhdGEsIHJlbW92ZUJsYW5rVmFsdWUgfSBmcm9tIFwiLi4vdXRpbHMvanNvbi51dGlsXCI7XG5pbXBvcnQgeyBBUElGaWx0ZXJDcml0ZXJpYSwgQVBJVmFsdWVTZXRzIH0gZnJvbSBcIi4uL21vZGVscy9hcGktcXVlcnkuY2xhc3NcIjtcbmltcG9ydCB7IFJlcXVlc3RSZXNwb25zZUhlbHBlciB9IGZyb20gXCIuLi9oZWxwZXJzL2NvbW1vbi9yZXEtcmVzLmhlbHBlcnNcIjtcbmltcG9ydCB7IERTUUhlbHBlciB9IGZyb20gXCIuLi9oZWxwZXJzL2NvbW1vbi9kc3EuaGVscGVyc1wiO1xuaW1wb3J0IHsgUXVlcnlUeXBlIH0gZnJvbSBcIi4uL2VudW1zL3F1ZXJ5LmVudW1cIjtcbmltcG9ydCB7IENvbmp1Y3Rpb25DbGF1c2UsIEZpbHRlclZhbHVlVHlwZSwgUmVsYXRpb25hbE9wZXJhdG9yIH0gZnJvbSBcIi4uL2VudW1zL2RzcS5lbnVtXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IERhdGFTb3VyY2VRdWVyeU1vZGVsIH0gZnJvbSBcIi4uL21vZGVscy9kYXRhLXNvdXJjZS1xdWVyeS5tb2RlbFwiO1xuaW1wb3J0IHsgQVBJIH0gZnJvbSBcIi4uL2NvbnN0YW50cy9hcGktY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBnZXRIZWFkZXJzIH0gZnJvbSBcIi4uL3V0aWxzL3JlcS1yZXMudXRpbFwiO1xuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL2h0dHAtY2xpZW50L2FwaS5zZXJ2aWNlXCI7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgVGFiQ3J1ZFNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX21ldGFkYXRhSGVscGVyOiBNZXRhZGF0YUhlbHBlciA9IGluamVjdChNZXRhZGF0YUhlbHBlcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfcmVxdWVzdFJlc3BvbnNlSGVscGVyOiBSZXF1ZXN0UmVzcG9uc2VIZWxwZXIgPSBpbmplY3QoUmVxdWVzdFJlc3BvbnNlSGVscGVyKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kc3FIZWxwZXI6IERTUUhlbHBlciA9IGluamVjdChEU1FIZWxwZXIpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2FwaVNlcnZpY2UgPSBpbmplY3QoQXBpU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBBcHBPYmplY3RNb2RlbCBmcm9tIHRoZSBnaXZlbiBwYXlsb2FkLlxuICAgICAqIEBwYXJhbSBwYXlsb2FkIFRoZSBwYXlsb2FkIHdpdGggZWl0aGVyIGRhdGFTb3VyY2VRdWVyeUlkT3JOYW1lIG9yIGFwcE9iamVjdElkT3JOYW1lLlxuICAgICAqIEByZXR1cm5zIFRoZSBBcHBPYmplY3RNb2RlbC5cbiAgICAgKi9cbiAgICBwcml2YXRlIGdldEFwcE9iamVjdEZyb21QYXlsb2FkKHBheWxvYWQ6IENydWRCYXNlUGF5bG9hZCk6IEFwcE9iamVjdE1vZGVsIHtcbiAgICAgICAgbGV0IGFwcE9iamVjdDtcblxuICAgICAgICBpZiAocGF5bG9hZD8uZGF0YVNvdXJjZVF1ZXJ5SWRPck5hbWUpIHtcbiAgICAgICAgICAgIC8vIElmIGRhdGFTb3VyY2VRdWVyeUlkT3JOYW1lIGlzIGdpdmVuLCBnZXQgdGhlIEFwcE9iamVjdE1vZGVsIGZyb20gdGhlIGRhdGEgc291cmNlIHF1ZXJ5XG4gICAgICAgICAgICBhcHBPYmplY3QgPSB0aGlzLl9tZXRhZGF0YUhlbHBlci5nZXREYXRhU291cmNlUXVlcnlCeUlkT3JOYW1lKHBheWxvYWQuZGF0YVNvdXJjZVF1ZXJ5SWRPck5hbWUpPy5wYXJlbnRBcHBPYmplY3Q7XG5cbiAgICAgICAgfSBlbHNlIGlmIChwYXlsb2FkPy5hcHBPYmplY3RJZE9yTmFtZSkge1xuICAgICAgICAgICAgLy8gSWYgYXBwT2JqZWN0SWRPck5hbWUgaXMgZ2l2ZW4sIGdldCB0aGUgQXBwT2JqZWN0TW9kZWwgZGlyZWN0bHlcbiAgICAgICAgICAgIGFwcE9iamVjdCA9IHRoaXMuX21ldGFkYXRhSGVscGVyLmdldEFwcE9iamVjdEJ5SWRPck5hbWUocGF5bG9hZC5hcHBPYmplY3RJZE9yTmFtZSk7XG5cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghYXBwT2JqZWN0Py5JRCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBcHBPYmplY3Qgbm90IGZvdW5kJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYXBwT2JqZWN0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZpbHRlcnMgb3V0IGludmFsaWQgZmllbGRzIGZyb20gdGhlIHByb3ZpZGVkIGRhdGEgYmFzZWQgb24gdGhlIEFwcE9iamVjdE1vZGVsLlxuICAgICAqIE9wdGlvbmFsbHkgcmV0YWlucyBwcmltYXJ5IGtleSBmaWVsZHMuXG4gICAgICogXG4gICAgICogQHBhcmFtIGRhdGEgVGhlIGRhdGEgb2JqZWN0IHRvIGZpbHRlci5cbiAgICAgKiBAcGFyYW0gYXBwT2JqZWN0IFRoZSBBcHBPYmplY3RNb2RlbCB1c2VkIHRvIHZhbGlkYXRlIHRoZSBmaWVsZHMuXG4gICAgICogQHBhcmFtIGtlZXBQcmltYXJ5S2V5IE9wdGlvbmFsIGZsYWcgdG8gcmV0YWluIHByaW1hcnkga2V5IGZpZWxkcy4gRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAgICogQHJldHVybnMgQSBuZXcgb2JqZWN0IHdpdGggb25seSB2YWxpZCBmaWVsZHMuXG4gICAgICovXG4gICAgcHJpdmF0ZSBmaWx0ZXJWYWxpZEFwcE9iamVjdEZpZWxkcyhkYXRhOiBhbnksIGFwcE9iamVjdDogQXBwT2JqZWN0TW9kZWwsIGtlZXBQcmltYXJ5S2V5ID0gZmFsc2UpIHtcbiAgICAgICAgaWYgKCFkYXRhIHx8IHR5cGVvZiBkYXRhICE9PSAnb2JqZWN0JykgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGRhdGEnKTtcblxuICAgICAgICBjb25zdCBmaWx0ZXJlZERhdGEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcblxuICAgICAgICAvLyBSZW1vdmUgZmllbGRzIHdpdGggYmxhbmsgdmFsdWVzXG4gICAgICAgIHJlbW92ZUJsYW5rVmFsdWUoZmlsdGVyZWREYXRhKTtcblxuICAgICAgICAvLyBJdGVyYXRlIG92ZXIgZWFjaCBrZXkgaW4gdGhlIGZpbHRlcmVkIGRhdGFcbiAgICAgICAgT2JqZWN0LmtleXMoZmlsdGVyZWREYXRhKT8uZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhcHBGaWVsZCA9IGFwcE9iamVjdC5maWVsZChrZXkpO1xuICAgICAgICAgICAgY29uc3QgY2hpbGRGaWVsZCA9IGFwcE9iamVjdC5DaGlsZFJlbGF0aW9uU2hpcHM/LnNvbWUoKHgpID0+IHg/LmNoaWxkRGV0YWlscz8uTG9va3VwT2JqZWN0ID09PSBrZXkpO1xuXG4gICAgICAgICAgICAvLyBEZWxldGUgdGhlIGZpZWxkIGlmIGl0IGlzIG5vdCB2YWxpZCBvciBpZiBwcmltYXJ5IGtleXMgc2hvdWxkIG5vdCBiZSBrZXB0XG4gICAgICAgICAgICBpZiAoIShhcHBGaWVsZCB8fCBjaGlsZEZpZWxkKSB8fCAoa2VlcFByaW1hcnlLZXkgJiYgYXBwRmllbGQ/LklzUHJpbWFyeUtleSkpIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgZmlsdGVyZWREYXRhW2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBmaWx0ZXJlZERhdGE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2VuZXJhdGVzIGEgd2hlcmUgY2xhdXNlIGJhc2VkIG9uIHRoZSBjcml0ZXJpYSBwcm92aWRlZC5cbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gY3JpdGVyaWEgVGhlIGNyaXRlcmlhIG9iamVjdCB0byBnZW5lcmF0ZSB0aGUgd2hlcmUgY2xhdXNlIGZyb20uXG4gICAgICogQHBhcmFtIGNydWRUYWJsZU5hbWUgVGhlIENSVUQgdGFibGUgbmFtZSB0byB1c2UgaW4gdGhlIHdoZXJlIGNsYXVzZS5cbiAgICAgKiBAcmV0dXJucyBBIG5ldyBBUElGaWx0ZXJDcml0ZXJpYSBvYmplY3Qgd2l0aCB0aGUgZ2VuZXJhdGVkIHdoZXJlIGNsYXVzZS5cbiAgICAgKi9cbiAgICBwcml2YXRlIGdlbmVyYXRlV2hlcmVDbGF1c2UoY3JpdGVyaWE6IGFueSwgY3J1ZFRhYmxlTmFtZTogc3RyaW5nLCBwcm92aWRlRW1wdHlXaGVyZUNsYXVzZSA9IGZhbHNlKTogQVBJRmlsdGVyQ3JpdGVyaWEge1xuICAgICAgICBpZiAoIXByb3ZpZGVFbXB0eVdoZXJlQ2xhdXNlICYmICghY3JpdGVyaWEgfHwgdHlwZW9mIGNyaXRlcmlhICE9PSAnb2JqZWN0JyB8fCAhT2JqZWN0LmtleXMoY3JpdGVyaWEpKSkgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNyaXRlcmlhJyk7XG5cbiAgICAgICAgLy8gUmVtb3ZlIGJsYW5rIHZhbHVlcyBmcm9tIHRoZSBjcml0ZXJpYVxuICAgICAgICByZW1vdmVCbGFua1ZhbHVlKGNyaXRlcmlhKTtcblxuICAgICAgICAvLyBDcmVhdGUgYSBuZXcgQVBJRmlsdGVyQ3JpdGVyaWEgb2JqZWN0XG4gICAgICAgIGNvbnN0IHdoZXJlQ2xhdXNlID0gbmV3IEFQSUZpbHRlckNyaXRlcmlhKCk7XG4gICAgICAgIHdoZXJlQ2xhdXNlLkZpbHRlcnMgPSBbXTtcblxuICAgICAgICAvLyBJdGVyYXRlIG92ZXIgZWFjaCBrZXkgaW4gdGhlIGNyaXRlcmlhIGFuZCBhZGQgaXQgdG8gdGhlIHdoZXJlIGNsYXVzZVxuICAgICAgICBPYmplY3Qua2V5cyhjcml0ZXJpYSk/LmZvckVhY2goKGtleTogYW55KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXIgPSB7XG4gICAgICAgICAgICAgICAgQ29uanVjdGlvbkNsYXVzZTogQ29uanVjdGlvbkNsYXVzZS5BTkQsIC8vIGNvbmp1Y3Rpb24gY2xhdXNlIGlzIEFORCBieSBkZWZhdWx0XG4gICAgICAgICAgICAgICAgRmllbGRJRDogY3J1ZFRhYmxlTmFtZSArICcuJyArIGtleSwgLy8gY29tYmluZSB0aGUgQ1JVRCB0YWJsZSBuYW1lIHdpdGggdGhlIGZpZWxkIG5hbWVcbiAgICAgICAgICAgICAgICBSZWxhdGlvbmFsT3BlcmF0b3I6IFJlbGF0aW9uYWxPcGVyYXRvci5FcXVhbFRvLCAvLyByZWxhdGlvbmFsIG9wZXJhdG9yIGlzIEVxdWFsVG8gYnkgZGVmYXVsdFxuICAgICAgICAgICAgICAgIFZhbHVlVHlwZTogRmlsdGVyVmFsdWVUeXBlLkxpdGVyYWwsIC8vIHZhbHVlIHR5cGUgaXMgTGl0ZXJhbCBieSBkZWZhdWx0XG4gICAgICAgICAgICAgICAgdmFsdWU6IGNyaXRlcmlhW2tleV0sIC8vIHNldCB0aGUgdmFsdWUgb2YgdGhlIGZpbHRlclxuICAgICAgICAgICAgICAgIFNlcXVlbmNlOiAwLCAvLyBzZXQgdGhlIHNlcXVlbmNlIHRvIDAgYnkgZGVmYXVsdFxuICAgICAgICAgICAgICAgIEdyb3VwSUQ6IDAgLy8gc2V0IHRoZSBncm91cCBJRCB0byAwIGJ5IGRlZmF1bHRcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aGVyZUNsYXVzZS5GaWx0ZXJzLnB1c2goZmlsdGVyKTsgLy8gYWRkIHRoZSBmaWx0ZXIgdG8gdGhlIGFycmF5IG9mIGZpbHRlcnNcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gU2V0IHRoZSBmaWx0ZXIgbG9naWMgdG8gJzEnXG4gICAgICAgIHdoZXJlQ2xhdXNlLkZpbHRlckxvZ2ljID0gJzEnO1xuXG4gICAgICAgIC8vIFJldHVybiB0aGUgZ2VuZXJhdGVkIHdoZXJlIGNsYXVzZVxuICAgICAgICByZXR1cm4gd2hlcmVDbGF1c2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXhlY3V0ZXMgYSBHRVQgcmVxdWVzdCB0byByZXRyaWV2ZSBkYXRhIGZyb20gdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZSBxdWVyeS5cbiAgICAgKiBAcGFyYW0gcGF5bG9hZCBUaGUgcGF5bG9hZCBjb250YWluaW5nIHRoZSBjcml0ZXJpYSBmb3IgdGhlIHF1ZXJ5IGFuZCB0aGUgQXBwT2JqZWN0TW9kZWwgSUQuXG4gICAgICogQHBhcmFtIGhlYWRlcnMgT3B0aW9uYWwgaGVhZGVycyBmb3IgdGhlIHJlcXVlc3QuXG4gICAgICogQHJldHVybnMgQW4gb2JzZXJ2YWJsZSBvZiB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgQVBJLlxuICAgICAqL1xuICAgIGdldChwYXlsb2FkOiBHZXRQYXlsb2FkLCBoZWFkZXJzPzogYW55KTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xuICAgICAgICAvLyBHZXQgdGhlIEFwcE9iamVjdE1vZGVsIGZyb20gdGhlIHBheWxvYWRcbiAgICAgICAgY29uc3QgYXBwT2JqZWN0OiBBcHBPYmplY3RNb2RlbCA9IHRoaXMuZ2V0QXBwT2JqZWN0RnJvbVBheWxvYWQocGF5bG9hZCk7XG5cbiAgICAgICAgLy8gR2V0IHRoZSBEYXRhU291cmNlUXVlcnlNb2RlbCBmcm9tIHRoZSBBcHBPYmplY3RNb2RlbFxuICAgICAgICBjb25zdCBkc3E6IERhdGFTb3VyY2VRdWVyeU1vZGVsIHwgdW5kZWZpbmVkID0gYXBwT2JqZWN0LmRhdGFTb3VyY2VRdWVyeShwYXlsb2FkLmRhdGFTb3VyY2VRdWVyeUlkT3JOYW1lKTtcblxuICAgICAgICAvLyBWYWxpZGF0ZSB0aGUgQXBwT2JqZWN0TW9kZWwgYW5kIERhdGFTb3VyY2VRdWVyeU1vZGVsXG4gICAgICAgIGlmICghYXBwT2JqZWN0IHx8ICFkc3EpIHRocm93IG5ldyBFcnJvcignQXBwT2JqZWN0IG9yIERhdGFTb3VyY2VRdWVyeSBub3QgZm91bmQnKTtcblxuICAgICAgICAvLyBHZXQgdGhlIGhlYWRlcnMgZnJvbSB0aGUgcGF5bG9hZFxuICAgICAgICBjb25zdCBoZWFkZXIgPSBnZXRIZWFkZXJzKGhlYWRlcnMpO1xuXG4gICAgICAgIC8vIEV4ZWN1dGUgdGhlIEdFVCByZXF1ZXN0XG4gICAgICAgIHJldHVybiB0aGlzLl9hcGlTZXJ2aWNlLnBvc3QoXG4gICAgICAgICAgICAvLyBUaGUgVVJMIGZvciB0aGUgR0VUIHJlcXVlc3RcbiAgICAgICAgICAgIGAke0FQSS5nZXREU1F9LyR7YXBwT2JqZWN0Py5PYmplY3ROYW1lfS8ke2RzcT8uUXVlcnlOYW1lfWAsXG4gICAgICAgICAgICAvLyBUaGUgY3JpdGVyaWEgZm9yIHRoZSBxdWVyeVxuICAgICAgICAgICAgcGF5bG9hZC5jcml0ZXJpYSxcbiAgICAgICAgICAgIC8vIFRoZSBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdFxuICAgICAgICAgICAgaGVhZGVyXG4gICAgICAgICkgYXMgT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5zZXJ0cyBkYXRhIGludG8gdGhlIHNwZWNpZmllZCB0YWJsZS5cbiAgICAgKiBAcGFyYW0gcGF5bG9hZCBUaGUgcGF5bG9hZCBjb250YWluaW5nIHRoZSBkYXRhIHRvIGluc2VydCBhbmQgdGhlIEFwcE9iamVjdE1vZGVsIElELlxuICAgICAqIEBwYXJhbSBoZWFkZXJzIE9wdGlvbmFsIGhlYWRlcnMgZm9yIHRoZSByZXF1ZXN0LlxuICAgICAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgb2YgdGhlIHJlc3BvbnNlIGZyb20gdGhlIEFQSS5cbiAgICAgKi9cbiAgICBpbnNlcnQocGF5bG9hZDogSW5zZXJ0UGF5bG9hZCwgaGVhZGVycz86IGFueSk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgYXBwT2JqZWN0OiBBcHBPYmplY3RNb2RlbCA9IHRoaXMuZ2V0QXBwT2JqZWN0RnJvbVBheWxvYWQocGF5bG9hZCk7XG5cbiAgICAgICAgLy8gRmlsdGVyIG91dCBpbnZhbGlkIGZpZWxkcyBmcm9tIHRoZSBkYXRhIGJhc2VkIG9uIHRoZSBBcHBPYmplY3RNb2RlbFxuICAgICAgICBjb25zdCBmaWx0ZXJlZERhdGE6IGFueSA9IHRoaXMuZmlsdGVyVmFsaWRBcHBPYmplY3RGaWVsZHMocGF5bG9hZC5kYXRhLCBhcHBPYmplY3QpO1xuXG4gICAgICAgIC8vIENyZWF0ZSBhIHdoZXJlIGNsYXVzZSBmb3IgdGhlIGluc2VydCBvcGVyYXRpb25cbiAgICAgICAgY29uc3Qgd2hlcmVDbGF1c2U6IEFQSUZpbHRlckNyaXRlcmlhID0gdGhpcy5nZW5lcmF0ZVdoZXJlQ2xhdXNlKHt9LCBhcHBPYmplY3QuU3lzdGVtREJUYWJsZU5hbWUsIHRydWUpO1xuXG4gICAgICAgIC8vIFRyYW5zZm9ybSB0aGUgZGF0YSBpbnRvIHRoZSBmb3JtYXQgcmVxdWlyZWQgYnkgdGhlIEFQSVxuICAgICAgICBjb25zdCB0cmFuc2Zvcm1lZERhdGE6IEFQSVZhbHVlU2V0c1tdID0gY3JlYXRlRHluYW1pY0RhdGEoZmlsdGVyZWREYXRhKTtcblxuICAgICAgICAvLyBHZW5lcmF0ZSB0aGUgcGF5bG9hZCBmb3IgdGhlIEFQSSByZXF1ZXN0XG4gICAgICAgIGNvbnN0IGFwaVBheWxvYWQgPSB0aGlzLl9yZXF1ZXN0UmVzcG9uc2VIZWxwZXIuaW5zZXJ0UGF5bG9hZChhcHBPYmplY3QuU3lzdGVtREJUYWJsZU5hbWUsIHdoZXJlQ2xhdXNlLCB0cmFuc2Zvcm1lZERhdGEpO1xuXG4gICAgICAgIC8vIEV4ZWN1dGUgdGhlIHF1ZXJ5XG4gICAgICAgIHJldHVybiB0aGlzLl9kc3FIZWxwZXIuZXhlY3V0ZVF1ZXJ5KGFwaVBheWxvYWQsIFF1ZXJ5VHlwZS5JbnNlcnQsIGhlYWRlcnMpIGFzIE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgZGF0YSBpbiB0aGUgc3BlY2lmaWVkIHRhYmxlLlxuICAgICAqIEBwYXJhbSBwYXlsb2FkIFRoZSBwYXlsb2FkIGNvbnRhaW5pbmcgdGhlIGRhdGEgdG8gdXBkYXRlLCB0aGUgY3JpdGVyaWEgZm9yIHRoZSB1cGRhdGUsIGFuZCB0aGUgQXBwT2JqZWN0TW9kZWwgSUQuXG4gICAgICogQHBhcmFtIGhlYWRlcnMgT3B0aW9uYWwgaGVhZGVycyBmb3IgdGhlIHJlcXVlc3QuXG4gICAgICogQHJldHVybnMgQW4gb2JzZXJ2YWJsZSBvZiB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgQVBJLlxuICAgICAqL1xuICAgIHVwZGF0ZShwYXlsb2FkOiBVcGRhdGVQYXlsb2FkLCBoZWFkZXJzPzogYW55KTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCBhcHBPYmplY3Q6IEFwcE9iamVjdE1vZGVsID0gdGhpcy5nZXRBcHBPYmplY3RGcm9tUGF5bG9hZChwYXlsb2FkKTtcblxuICAgICAgICAvLyBGaWx0ZXIgb3V0IGludmFsaWQgZmllbGRzIGZyb20gdGhlIGRhdGEgYmFzZWQgb24gdGhlIEFwcE9iamVjdE1vZGVsXG4gICAgICAgIGNvbnN0IGZpbHRlcmVkRGF0YTogYW55ID0gdGhpcy5maWx0ZXJWYWxpZEFwcE9iamVjdEZpZWxkcyhwYXlsb2FkLmRhdGEsIGFwcE9iamVjdCk7XG5cbiAgICAgICAgLy8gR2VuZXJhdGUgYSB3aGVyZSBjbGF1c2UgYmFzZWQgb24gdGhlIGNyaXRlcmlhIHByb3ZpZGVkXG4gICAgICAgIGNvbnN0IHdoZXJlQ2xhdXNlOiBBUElGaWx0ZXJDcml0ZXJpYSA9IHRoaXMuZ2VuZXJhdGVXaGVyZUNsYXVzZShwYXlsb2FkLmNyaXRlcmlhLCBhcHBPYmplY3QuU3lzdGVtREJUYWJsZU5hbWUpO1xuICAgICAgICBpZiAoIXdoZXJlQ2xhdXNlPy5GaWx0ZXJzPy5sZW5ndGgpIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjcml0ZXJpYScpO1xuXG4gICAgICAgIC8vIFRyYW5zZm9ybSB0aGUgZGF0YSBpbnRvIHRoZSBmb3JtYXQgcmVxdWlyZWQgYnkgdGhlIEFQSVxuICAgICAgICBjb25zdCB0cmFuc2Zvcm1lZERhdGE6IEFQSVZhbHVlU2V0c1tdID0gY3JlYXRlRHluYW1pY0RhdGEoZmlsdGVyZWREYXRhKTtcblxuICAgICAgICAvLyBHZW5lcmF0ZSB0aGUgcGF5bG9hZCBmb3IgdGhlIEFQSSByZXF1ZXN0XG4gICAgICAgIGNvbnN0IGFwaVBheWxvYWQgPSB0aGlzLl9yZXF1ZXN0UmVzcG9uc2VIZWxwZXIudXBkYXRlUmVxdWVzdFBheWxvYWQoYXBwT2JqZWN0LlN5c3RlbURCVGFibGVOYW1lLCB3aGVyZUNsYXVzZSwgdHJhbnNmb3JtZWREYXRhKTtcblxuICAgICAgICAvLyBFeGVjdXRlIHRoZSBxdWVyeVxuICAgICAgICByZXR1cm4gdGhpcy5fZHNxSGVscGVyLmV4ZWN1dGVRdWVyeShhcGlQYXlsb2FkLCBRdWVyeVR5cGUuVXBkYXRlLCBoZWFkZXJzKSBhcyBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWxldGVzIGRhdGEgZnJvbSB0aGUgc3BlY2lmaWVkIHRhYmxlLlxuICAgICAqIEBwYXJhbSBwYXlsb2FkIFRoZSBwYXlsb2FkIGNvbnRhaW5pbmcgdGhlIGNyaXRlcmlhIGZvciB0aGUgZGVsZXRlIGFuZCB0aGUgQXBwT2JqZWN0TW9kZWwgSUQuXG4gICAgICogQHBhcmFtIGhlYWRlcnMgT3B0aW9uYWwgaGVhZGVycyBmb3IgdGhlIHJlcXVlc3QuXG4gICAgICogQHJldHVybnMgQW4gb2JzZXJ2YWJsZSBvZiB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgQVBJLlxuICAgICAqL1xuICAgIGRlbGV0ZShwYXlsb2FkOiBEZWxldGVQYXlsb2FkLCBoZWFkZXJzPzogYW55KTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCBhcHBPYmplY3Q6IEFwcE9iamVjdE1vZGVsID0gdGhpcy5nZXRBcHBPYmplY3RGcm9tUGF5bG9hZChwYXlsb2FkKTtcblxuICAgICAgICAvLyBHZW5lcmF0ZSBhIHdoZXJlIGNsYXVzZSBiYXNlZCBvbiB0aGUgY3JpdGVyaWEgcHJvdmlkZWRcbiAgICAgICAgY29uc3Qgd2hlcmVDbGF1c2U6IEFQSUZpbHRlckNyaXRlcmlhID0gdGhpcy5nZW5lcmF0ZVdoZXJlQ2xhdXNlKHBheWxvYWQuY3JpdGVyaWEsIGFwcE9iamVjdC5TeXN0ZW1EQlRhYmxlTmFtZSk7XG4gICAgICAgIGlmICghd2hlcmVDbGF1c2U/LkZpbHRlcnM/Lmxlbmd0aCkgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNyaXRlcmlhJyk7XG5cbiAgICAgICAgLy8gR2VuZXJhdGUgdGhlIHBheWxvYWQgZm9yIHRoZSBBUEkgcmVxdWVzdFxuICAgICAgICBjb25zdCBhcGlQYXlsb2FkID0gdGhpcy5fcmVxdWVzdFJlc3BvbnNlSGVscGVyLmRlbGV0ZVBheWxvYWQoYXBwT2JqZWN0LlN5c3RlbURCVGFibGVOYW1lLCB3aGVyZUNsYXVzZSk7XG5cbiAgICAgICAgLy8gRXhlY3V0ZSB0aGUgcXVlcnlcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RzcUhlbHBlci5leGVjdXRlUXVlcnkoYXBpUGF5bG9hZCwgUXVlcnlUeXBlLkRlbGV0ZSwgaGVhZGVycykgYXMgT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXhlY3V0ZXMgYSBzdG9yZWQgcHJvY2VkdXJlIHVzaW5nIHJhdyBTUUwuXG4gICAgICogQHBhcmFtIHNwIFRoZSBzdG9yZWQgcHJvY2VkdXJlIHF1ZXJ5IHN0cmluZy5cbiAgICAgKiBAcGFyYW0gaGVhZGVycyBPcHRpb25hbCBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdC5cbiAgICAgKiBAcmV0dXJucyBUaGUgcmVzdWx0IG9mIHRoZSBBUEkgUE9TVCByZXF1ZXN0LlxuICAgICAqL1xuICAgIGV4ZWN1dGVTcChzcDogc3RyaW5nLCBoZWFkZXJzPzogYW55KTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xuICAgICAgICAvLyBSZXRyaWV2ZSBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdFxuICAgICAgICBjb25zdCBoZWFkZXIgPSBnZXRIZWFkZXJzKGhlYWRlcnMpO1xuXG4gICAgICAgIC8vIEV4ZWN1dGUgdGhlIHN0b3JlZCBwcm9jZWR1cmUgdXNpbmcgYSBQT1NUIHJlcXVlc3RcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwaVNlcnZpY2UucG9zdChgJHtBUEkucmF3U1FMfT9xdWVyeT0ke3NwfWAsIHt9LCBoZWFkZXIpIGFzIE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+O1xuICAgIH1cbn1cbiJdfQ==
|
|
201
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWNydWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9jcnVkL3RhYi1jcnVkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQWdCLE1BQU0sMkJBQTJCLENBQUM7QUFDNUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzFELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHMUYsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBR2hFLE1BQU0sT0FBTyxjQUFjO0lBRDNCO1FBRXFCLG9CQUFlLEdBQW1CLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN6RCwyQkFBc0IsR0FBMEIsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDOUUsZUFBVSxHQUFjLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxQyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztLQWtOckQ7SUFoTkc7Ozs7T0FJRztJQUNLLHVCQUF1QixDQUFDLE9BQXdCO1FBQ3BELElBQUksU0FBUyxDQUFDO1FBRWQsSUFBSSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQztZQUNuQyx5RkFBeUY7WUFDekYsU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsNEJBQTRCLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLEVBQUUsZUFBZSxDQUFDO1FBRXBILENBQUM7YUFBTSxJQUFJLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxDQUFDO1lBQ3BDLGlFQUFpRTtZQUNqRSxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUV2RixDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNLLDBCQUEwQixDQUFDLElBQVMsRUFBRSxTQUF5QixFQUFFLGNBQWMsR0FBRyxLQUFLO1FBQzNGLElBQUksQ0FBQyxJQUFJLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFdkUsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFdEQsa0NBQWtDO1FBQ2xDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRS9CLDZDQUE2QztRQUM3QyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3ZDLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEMsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFlBQVksRUFBRSxZQUFZLEtBQUssR0FBRyxDQUFDLENBQUM7WUFFcEcsNEVBQTRFO1lBQzVFLElBQUksQ0FBQyxDQUFDLFFBQVEsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsY0FBYyxJQUFJLFFBQVEsRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDO2dCQUMzRSxPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM3QixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLFlBQVksQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssbUJBQW1CLENBQUMsUUFBYSxFQUFFLGFBQXFCLEVBQUUsdUJBQXVCLEdBQUcsS0FBSztRQUM3RixJQUFJLENBQUMsdUJBQXVCLElBQUksQ0FBQyxDQUFDLFFBQVEsSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRTNJLHdDQUF3QztRQUN4QyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUUzQix3Q0FBd0M7UUFDeEMsTUFBTSxXQUFXLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQzVDLFdBQVcsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBRXpCLHVFQUF1RTtRQUN2RSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ3hDLE1BQU0sTUFBTSxHQUFHO2dCQUNYLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxzQ0FBc0M7Z0JBQzlFLE9BQU8sRUFBRSxhQUFhLEdBQUcsR0FBRyxHQUFHLEdBQUcsRUFBRSxrREFBa0Q7Z0JBQ3RGLGtCQUFrQixFQUFFLGtCQUFrQixDQUFDLE9BQU8sRUFBRSw0Q0FBNEM7Z0JBQzVGLFNBQVMsRUFBRSxlQUFlLENBQUMsT0FBTyxFQUFFLG1DQUFtQztnQkFDdkUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSw4QkFBOEI7Z0JBQ3BELFFBQVEsRUFBRSxDQUFDLEVBQUUsbUNBQW1DO2dCQUNoRCxPQUFPLEVBQUUsQ0FBQyxDQUFDLG1DQUFtQzthQUNqRCxDQUFDO1lBQ0YsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyx5Q0FBeUM7UUFDL0UsQ0FBQyxDQUFDLENBQUM7UUFFSCw4QkFBOEI7UUFDOUIsV0FBVyxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUM7UUFFOUIsb0NBQW9DO1FBQ3BDLE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEdBQUcsQ0FBQyxPQUFtQixFQUFFLE9BQWE7UUFDbEMsMENBQTBDO1FBQzFDLE1BQU0sU0FBUyxHQUFtQixJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFeEUsdURBQXVEO1FBQ3ZELE1BQU0sR0FBRyxHQUFxQyxTQUFTLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBRXpHLHVEQUF1RDtRQUN2RCxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsR0FBRztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQztRQUVsRixtQ0FBbUM7UUFDbkMsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRW5DLDBCQUEwQjtRQUMxQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSTtRQUN4Qiw4QkFBOEI7UUFDOUIsR0FBRyxHQUFHLENBQUMsTUFBTSxJQUFJLFNBQVMsRUFBRSxVQUFVLElBQUksR0FBRyxFQUFFLFNBQVMsRUFBRTtRQUMxRCw2QkFBNkI7UUFDN0IsT0FBTyxDQUFDLFFBQVE7UUFDaEIsOEJBQThCO1FBQzlCLE1BQU0sQ0FDd0IsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsT0FBc0IsRUFBRSxPQUFhO1FBQ3hDLE1BQU0sU0FBUyxHQUFtQixJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFeEUsc0VBQXNFO1FBQ3RFLE1BQU0sWUFBWSxHQUFRLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRW5GLGlEQUFpRDtRQUNqRCxNQUFNLFdBQVcsR0FBc0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsRUFBRSxTQUFTLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFdkcseURBQXlEO1FBQ3pELE1BQU0sZUFBZSxHQUFtQixpQkFBaUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUV4RSwyQ0FBMkM7UUFDM0MsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBRXhILG9CQUFvQjtRQUNwQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBa0MsQ0FBQztJQUNoSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsT0FBc0IsRUFBRSxPQUFhO1FBQ3hDLE1BQU0sU0FBUyxHQUFtQixJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFeEUsc0VBQXNFO1FBQ3RFLE1BQU0sWUFBWSxHQUFRLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRW5GLHlEQUF5RDtRQUN6RCxNQUFNLFdBQVcsR0FBc0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDL0csSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUV2RSx5REFBeUQ7UUFDekQsTUFBTSxlQUFlLEdBQW1CLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXhFLDJDQUEyQztRQUMzQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUUvSCxvQkFBb0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQWtDLENBQUM7SUFDaEgsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLE9BQXNCLEVBQUUsT0FBYTtRQUN4QyxNQUFNLFNBQVMsR0FBbUIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXhFLHlEQUF5RDtRQUN6RCxNQUFNLFdBQVcsR0FBc0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDL0csSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUV2RSwyQ0FBMkM7UUFDM0MsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFdkcsb0JBQW9CO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFrQyxDQUFDO0lBQ2hILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFNBQVMsQ0FBQyxFQUFVLEVBQUUsT0FBYTtRQUMvQixtQ0FBbUM7UUFDbkMsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRW5DLG9EQUFvRDtRQUNwRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sVUFBVSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFrQyxDQUFDO0lBQzNHLENBQUM7K0VBck5RLGNBQWM7dUVBQWQsY0FBYyxXQUFkLGNBQWMsbUJBREQsTUFBTTs7aUZBQ25CLGNBQWM7Y0FEMUIsVUFBVTtlQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb21tb25BcGlSZXNwb25zZSwgQ3J1ZEJhc2VQYXlsb2FkLCBEZWxldGVQYXlsb2FkLCBHZXRQYXlsb2FkLCBJbnNlcnRQYXlsb2FkLCBVcGRhdGVQYXlsb2FkIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvY29tbW9uLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgQXBwT2JqZWN0TW9kZWwgfSBmcm9tIFwiLi4vbW9kZWxzL2FwcC1vYmplY3QubW9kZWxcIjtcbmltcG9ydCB7IE1ldGFkYXRhSGVscGVyIH0gZnJvbSBcIi4uL2hlbHBlcnMvY29tbW9uL21ldGEtZGF0YS5oZWxwZXJzXCI7XG5pbXBvcnQgeyBjcmVhdGVEeW5hbWljRGF0YSwgcmVtb3ZlQmxhbmtWYWx1ZSB9IGZyb20gXCIuLi91dGlscy9qc29uLnV0aWxcIjtcbmltcG9ydCB7IEFQSUZpbHRlckNyaXRlcmlhLCBBUElWYWx1ZVNldHMgfSBmcm9tIFwiLi4vbW9kZWxzL2FwaS1xdWVyeS5jbGFzc1wiO1xuaW1wb3J0IHsgUmVxdWVzdFJlc3BvbnNlSGVscGVyIH0gZnJvbSBcIi4uL2hlbHBlcnMvY29tbW9uL3JlcS1yZXMuaGVscGVyc1wiO1xuaW1wb3J0IHsgRFNRSGVscGVyIH0gZnJvbSBcIi4uL2hlbHBlcnMvY29tbW9uL2RzcS5oZWxwZXJzXCI7XG5pbXBvcnQgeyBRdWVyeVR5cGUgfSBmcm9tIFwiLi4vZW51bXMvcXVlcnkuZW51bVwiO1xuaW1wb3J0IHsgQ29uanVjdGlvbkNsYXVzZSwgRmlsdGVyVmFsdWVUeXBlLCBSZWxhdGlvbmFsT3BlcmF0b3IgfSBmcm9tIFwiLi4vZW51bXMvZHNxLmVudW1cIjtcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgRGF0YVNvdXJjZVF1ZXJ5TW9kZWwgfSBmcm9tIFwiLi4vbW9kZWxzL2RhdGEtc291cmNlLXF1ZXJ5Lm1vZGVsXCI7XG5pbXBvcnQgeyBBUEkgfSBmcm9tIFwiLi4vY29uc3RhbnRzL2FwaS1jb25zdGFudHNcIjtcbmltcG9ydCB7IGdldEhlYWRlcnMgfSBmcm9tIFwiLi4vdXRpbHMvcmVxLXJlcy51dGlsXCI7XG5pbXBvcnQgeyBBcGlTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvaHR0cC1jbGllbnQvYXBpLnNlcnZpY2VcIjtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBUYWJDcnVkU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfbWV0YWRhdGFIZWxwZXI6IE1ldGFkYXRhSGVscGVyID0gaW5qZWN0KE1ldGFkYXRhSGVscGVyKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9yZXF1ZXN0UmVzcG9uc2VIZWxwZXI6IFJlcXVlc3RSZXNwb25zZUhlbHBlciA9IGluamVjdChSZXF1ZXN0UmVzcG9uc2VIZWxwZXIpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2RzcUhlbHBlcjogRFNRSGVscGVyID0gaW5qZWN0KERTUUhlbHBlcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfYXBpU2VydmljZSA9IGluamVjdChBcGlTZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIEFwcE9iamVjdE1vZGVsIGZyb20gdGhlIGdpdmVuIHBheWxvYWQuXG4gICAgICogQHBhcmFtIHBheWxvYWQgVGhlIHBheWxvYWQgd2l0aCBlaXRoZXIgZGF0YVNvdXJjZVF1ZXJ5SWRPck5hbWUgb3IgYXBwT2JqZWN0SWRPck5hbWUuXG4gICAgICogQHJldHVybnMgVGhlIEFwcE9iamVjdE1vZGVsLlxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0QXBwT2JqZWN0RnJvbVBheWxvYWQocGF5bG9hZDogQ3J1ZEJhc2VQYXlsb2FkKTogQXBwT2JqZWN0TW9kZWwge1xuICAgICAgICBsZXQgYXBwT2JqZWN0O1xuXG4gICAgICAgIGlmIChwYXlsb2FkPy5kYXRhU291cmNlUXVlcnlJZE9yTmFtZSkge1xuICAgICAgICAgICAgLy8gSWYgZGF0YVNvdXJjZVF1ZXJ5SWRPck5hbWUgaXMgZ2l2ZW4sIGdldCB0aGUgQXBwT2JqZWN0TW9kZWwgZnJvbSB0aGUgZGF0YSBzb3VyY2UgcXVlcnlcbiAgICAgICAgICAgIGFwcE9iamVjdCA9IHRoaXMuX21ldGFkYXRhSGVscGVyLmdldERhdGFTb3VyY2VRdWVyeUJ5SWRPck5hbWUocGF5bG9hZC5kYXRhU291cmNlUXVlcnlJZE9yTmFtZSk/LnBhcmVudEFwcE9iamVjdDtcblxuICAgICAgICB9IGVsc2UgaWYgKHBheWxvYWQ/LmFwcE9iamVjdElkT3JOYW1lKSB7XG4gICAgICAgICAgICAvLyBJZiBhcHBPYmplY3RJZE9yTmFtZSBpcyBnaXZlbiwgZ2V0IHRoZSBBcHBPYmplY3RNb2RlbCBkaXJlY3RseVxuICAgICAgICAgICAgYXBwT2JqZWN0ID0gdGhpcy5fbWV0YWRhdGFIZWxwZXIuZ2V0QXBwT2JqZWN0QnlJZE9yTmFtZShwYXlsb2FkLmFwcE9iamVjdElkT3JOYW1lKTtcblxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFhcHBPYmplY3Q/LklEKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FwcE9iamVjdCBub3QgZm91bmQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhcHBPYmplY3Q7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmlsdGVycyBvdXQgaW52YWxpZCBmaWVsZHMgZnJvbSB0aGUgcHJvdmlkZWQgZGF0YSBiYXNlZCBvbiB0aGUgQXBwT2JqZWN0TW9kZWwuXG4gICAgICogT3B0aW9uYWxseSByZXRhaW5zIHByaW1hcnkga2V5IGZpZWxkcy5cbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gZGF0YSBUaGUgZGF0YSBvYmplY3QgdG8gZmlsdGVyLlxuICAgICAqIEBwYXJhbSBhcHBPYmplY3QgVGhlIEFwcE9iamVjdE1vZGVsIHVzZWQgdG8gdmFsaWRhdGUgdGhlIGZpZWxkcy5cbiAgICAgKiBAcGFyYW0ga2VlcFByaW1hcnlLZXkgT3B0aW9uYWwgZmxhZyB0byByZXRhaW4gcHJpbWFyeSBrZXkgZmllbGRzLiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICAgKiBAcmV0dXJucyBBIG5ldyBvYmplY3Qgd2l0aCBvbmx5IHZhbGlkIGZpZWxkcy5cbiAgICAgKi9cbiAgICBwcml2YXRlIGZpbHRlclZhbGlkQXBwT2JqZWN0RmllbGRzKGRhdGE6IGFueSwgYXBwT2JqZWN0OiBBcHBPYmplY3RNb2RlbCwga2VlcFByaW1hcnlLZXkgPSBmYWxzZSkge1xuICAgICAgICBpZiAoIWRhdGEgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnKSB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZGF0YScpO1xuXG4gICAgICAgIGNvbnN0IGZpbHRlcmVkRGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuXG4gICAgICAgIC8vIFJlbW92ZSBmaWVsZHMgd2l0aCBibGFuayB2YWx1ZXNcbiAgICAgICAgcmVtb3ZlQmxhbmtWYWx1ZShmaWx0ZXJlZERhdGEpO1xuXG4gICAgICAgIC8vIEl0ZXJhdGUgb3ZlciBlYWNoIGtleSBpbiB0aGUgZmlsdGVyZWQgZGF0YVxuICAgICAgICBPYmplY3Qua2V5cyhmaWx0ZXJlZERhdGEpPy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFwcEZpZWxkID0gYXBwT2JqZWN0LmZpZWxkKGtleSk7XG4gICAgICAgICAgICBjb25zdCBjaGlsZEZpZWxkID0gYXBwT2JqZWN0LkNoaWxkUmVsYXRpb25TaGlwcz8uc29tZSgoeCkgPT4geD8uY2hpbGREZXRhaWxzPy5Mb29rdXBPYmplY3QgPT09IGtleSk7XG5cbiAgICAgICAgICAgIC8vIERlbGV0ZSB0aGUgZmllbGQgaWYgaXQgaXMgbm90IHZhbGlkIG9yIGlmIHByaW1hcnkga2V5cyBzaG91bGQgbm90IGJlIGtlcHRcbiAgICAgICAgICAgIGlmICghKGFwcEZpZWxkIHx8IGNoaWxkRmllbGQpIHx8ICgha2VlcFByaW1hcnlLZXkgJiYgYXBwRmllbGQ/LklzUHJpbWFyeUtleSkpIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgZmlsdGVyZWREYXRhW2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBmaWx0ZXJlZERhdGE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2VuZXJhdGVzIGEgd2hlcmUgY2xhdXNlIGJhc2VkIG9uIHRoZSBjcml0ZXJpYSBwcm92aWRlZC5cbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gY3JpdGVyaWEgVGhlIGNyaXRlcmlhIG9iamVjdCB0byBnZW5lcmF0ZSB0aGUgd2hlcmUgY2xhdXNlIGZyb20uXG4gICAgICogQHBhcmFtIGNydWRUYWJsZU5hbWUgVGhlIENSVUQgdGFibGUgbmFtZSB0byB1c2UgaW4gdGhlIHdoZXJlIGNsYXVzZS5cbiAgICAgKiBAcmV0dXJucyBBIG5ldyBBUElGaWx0ZXJDcml0ZXJpYSBvYmplY3Qgd2l0aCB0aGUgZ2VuZXJhdGVkIHdoZXJlIGNsYXVzZS5cbiAgICAgKi9cbiAgICBwcml2YXRlIGdlbmVyYXRlV2hlcmVDbGF1c2UoY3JpdGVyaWE6IGFueSwgY3J1ZFRhYmxlTmFtZTogc3RyaW5nLCBwcm92aWRlRW1wdHlXaGVyZUNsYXVzZSA9IGZhbHNlKTogQVBJRmlsdGVyQ3JpdGVyaWEge1xuICAgICAgICBpZiAoIXByb3ZpZGVFbXB0eVdoZXJlQ2xhdXNlICYmICghY3JpdGVyaWEgfHwgdHlwZW9mIGNyaXRlcmlhICE9PSAnb2JqZWN0JyB8fCAhT2JqZWN0LmtleXMoY3JpdGVyaWEpKSkgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNyaXRlcmlhJyk7XG5cbiAgICAgICAgLy8gUmVtb3ZlIGJsYW5rIHZhbHVlcyBmcm9tIHRoZSBjcml0ZXJpYVxuICAgICAgICByZW1vdmVCbGFua1ZhbHVlKGNyaXRlcmlhKTtcblxuICAgICAgICAvLyBDcmVhdGUgYSBuZXcgQVBJRmlsdGVyQ3JpdGVyaWEgb2JqZWN0XG4gICAgICAgIGNvbnN0IHdoZXJlQ2xhdXNlID0gbmV3IEFQSUZpbHRlckNyaXRlcmlhKCk7XG4gICAgICAgIHdoZXJlQ2xhdXNlLkZpbHRlcnMgPSBbXTtcblxuICAgICAgICAvLyBJdGVyYXRlIG92ZXIgZWFjaCBrZXkgaW4gdGhlIGNyaXRlcmlhIGFuZCBhZGQgaXQgdG8gdGhlIHdoZXJlIGNsYXVzZVxuICAgICAgICBPYmplY3Qua2V5cyhjcml0ZXJpYSk/LmZvckVhY2goKGtleTogYW55KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXIgPSB7XG4gICAgICAgICAgICAgICAgQ29uanVjdGlvbkNsYXVzZTogQ29uanVjdGlvbkNsYXVzZS5BTkQsIC8vIGNvbmp1Y3Rpb24gY2xhdXNlIGlzIEFORCBieSBkZWZhdWx0XG4gICAgICAgICAgICAgICAgRmllbGRJRDogY3J1ZFRhYmxlTmFtZSArICcuJyArIGtleSwgLy8gY29tYmluZSB0aGUgQ1JVRCB0YWJsZSBuYW1lIHdpdGggdGhlIGZpZWxkIG5hbWVcbiAgICAgICAgICAgICAgICBSZWxhdGlvbmFsT3BlcmF0b3I6IFJlbGF0aW9uYWxPcGVyYXRvci5FcXVhbFRvLCAvLyByZWxhdGlvbmFsIG9wZXJhdG9yIGlzIEVxdWFsVG8gYnkgZGVmYXVsdFxuICAgICAgICAgICAgICAgIFZhbHVlVHlwZTogRmlsdGVyVmFsdWVUeXBlLkxpdGVyYWwsIC8vIHZhbHVlIHR5cGUgaXMgTGl0ZXJhbCBieSBkZWZhdWx0XG4gICAgICAgICAgICAgICAgdmFsdWU6IGNyaXRlcmlhW2tleV0sIC8vIHNldCB0aGUgdmFsdWUgb2YgdGhlIGZpbHRlclxuICAgICAgICAgICAgICAgIFNlcXVlbmNlOiAwLCAvLyBzZXQgdGhlIHNlcXVlbmNlIHRvIDAgYnkgZGVmYXVsdFxuICAgICAgICAgICAgICAgIEdyb3VwSUQ6IDAgLy8gc2V0IHRoZSBncm91cCBJRCB0byAwIGJ5IGRlZmF1bHRcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aGVyZUNsYXVzZS5GaWx0ZXJzLnB1c2goZmlsdGVyKTsgLy8gYWRkIHRoZSBmaWx0ZXIgdG8gdGhlIGFycmF5IG9mIGZpbHRlcnNcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gU2V0IHRoZSBmaWx0ZXIgbG9naWMgdG8gJzEnXG4gICAgICAgIHdoZXJlQ2xhdXNlLkZpbHRlckxvZ2ljID0gJzEnO1xuXG4gICAgICAgIC8vIFJldHVybiB0aGUgZ2VuZXJhdGVkIHdoZXJlIGNsYXVzZVxuICAgICAgICByZXR1cm4gd2hlcmVDbGF1c2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXhlY3V0ZXMgYSBHRVQgcmVxdWVzdCB0byByZXRyaWV2ZSBkYXRhIGZyb20gdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZSBxdWVyeS5cbiAgICAgKiBAcGFyYW0gcGF5bG9hZCBUaGUgcGF5bG9hZCBjb250YWluaW5nIHRoZSBjcml0ZXJpYSBmb3IgdGhlIHF1ZXJ5IGFuZCB0aGUgQXBwT2JqZWN0TW9kZWwgSUQuXG4gICAgICogQHBhcmFtIGhlYWRlcnMgT3B0aW9uYWwgaGVhZGVycyBmb3IgdGhlIHJlcXVlc3QuXG4gICAgICogQHJldHVybnMgQW4gb2JzZXJ2YWJsZSBvZiB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgQVBJLlxuICAgICAqL1xuICAgIGdldChwYXlsb2FkOiBHZXRQYXlsb2FkLCBoZWFkZXJzPzogYW55KTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xuICAgICAgICAvLyBHZXQgdGhlIEFwcE9iamVjdE1vZGVsIGZyb20gdGhlIHBheWxvYWRcbiAgICAgICAgY29uc3QgYXBwT2JqZWN0OiBBcHBPYmplY3RNb2RlbCA9IHRoaXMuZ2V0QXBwT2JqZWN0RnJvbVBheWxvYWQocGF5bG9hZCk7XG5cbiAgICAgICAgLy8gR2V0IHRoZSBEYXRhU291cmNlUXVlcnlNb2RlbCBmcm9tIHRoZSBBcHBPYmplY3RNb2RlbFxuICAgICAgICBjb25zdCBkc3E6IERhdGFTb3VyY2VRdWVyeU1vZGVsIHwgdW5kZWZpbmVkID0gYXBwT2JqZWN0LmRhdGFTb3VyY2VRdWVyeShwYXlsb2FkLmRhdGFTb3VyY2VRdWVyeUlkT3JOYW1lKTtcblxuICAgICAgICAvLyBWYWxpZGF0ZSB0aGUgQXBwT2JqZWN0TW9kZWwgYW5kIERhdGFTb3VyY2VRdWVyeU1vZGVsXG4gICAgICAgIGlmICghYXBwT2JqZWN0IHx8ICFkc3EpIHRocm93IG5ldyBFcnJvcignQXBwT2JqZWN0IG9yIERhdGFTb3VyY2VRdWVyeSBub3QgZm91bmQnKTtcblxuICAgICAgICAvLyBHZXQgdGhlIGhlYWRlcnMgZnJvbSB0aGUgcGF5bG9hZFxuICAgICAgICBjb25zdCBoZWFkZXIgPSBnZXRIZWFkZXJzKGhlYWRlcnMpO1xuXG4gICAgICAgIC8vIEV4ZWN1dGUgdGhlIEdFVCByZXF1ZXN0XG4gICAgICAgIHJldHVybiB0aGlzLl9hcGlTZXJ2aWNlLnBvc3QoXG4gICAgICAgICAgICAvLyBUaGUgVVJMIGZvciB0aGUgR0VUIHJlcXVlc3RcbiAgICAgICAgICAgIGAke0FQSS5nZXREU1F9LyR7YXBwT2JqZWN0Py5PYmplY3ROYW1lfS8ke2RzcT8uUXVlcnlOYW1lfWAsXG4gICAgICAgICAgICAvLyBUaGUgY3JpdGVyaWEgZm9yIHRoZSBxdWVyeVxuICAgICAgICAgICAgcGF5bG9hZC5jcml0ZXJpYSxcbiAgICAgICAgICAgIC8vIFRoZSBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdFxuICAgICAgICAgICAgaGVhZGVyXG4gICAgICAgICkgYXMgT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5zZXJ0cyBkYXRhIGludG8gdGhlIHNwZWNpZmllZCB0YWJsZS5cbiAgICAgKiBAcGFyYW0gcGF5bG9hZCBUaGUgcGF5bG9hZCBjb250YWluaW5nIHRoZSBkYXRhIHRvIGluc2VydCBhbmQgdGhlIEFwcE9iamVjdE1vZGVsIElELlxuICAgICAqIEBwYXJhbSBoZWFkZXJzIE9wdGlvbmFsIGhlYWRlcnMgZm9yIHRoZSByZXF1ZXN0LlxuICAgICAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgb2YgdGhlIHJlc3BvbnNlIGZyb20gdGhlIEFQSS5cbiAgICAgKi9cbiAgICBpbnNlcnQocGF5bG9hZDogSW5zZXJ0UGF5bG9hZCwgaGVhZGVycz86IGFueSk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgYXBwT2JqZWN0OiBBcHBPYmplY3RNb2RlbCA9IHRoaXMuZ2V0QXBwT2JqZWN0RnJvbVBheWxvYWQocGF5bG9hZCk7XG5cbiAgICAgICAgLy8gRmlsdGVyIG91dCBpbnZhbGlkIGZpZWxkcyBmcm9tIHRoZSBkYXRhIGJhc2VkIG9uIHRoZSBBcHBPYmplY3RNb2RlbFxuICAgICAgICBjb25zdCBmaWx0ZXJlZERhdGE6IGFueSA9IHRoaXMuZmlsdGVyVmFsaWRBcHBPYmplY3RGaWVsZHMocGF5bG9hZC5kYXRhLCBhcHBPYmplY3QpO1xuXG4gICAgICAgIC8vIENyZWF0ZSBhIHdoZXJlIGNsYXVzZSBmb3IgdGhlIGluc2VydCBvcGVyYXRpb25cbiAgICAgICAgY29uc3Qgd2hlcmVDbGF1c2U6IEFQSUZpbHRlckNyaXRlcmlhID0gdGhpcy5nZW5lcmF0ZVdoZXJlQ2xhdXNlKHt9LCBhcHBPYmplY3QuU3lzdGVtREJUYWJsZU5hbWUsIHRydWUpO1xuXG4gICAgICAgIC8vIFRyYW5zZm9ybSB0aGUgZGF0YSBpbnRvIHRoZSBmb3JtYXQgcmVxdWlyZWQgYnkgdGhlIEFQSVxuICAgICAgICBjb25zdCB0cmFuc2Zvcm1lZERhdGE6IEFQSVZhbHVlU2V0c1tdID0gY3JlYXRlRHluYW1pY0RhdGEoZmlsdGVyZWREYXRhKTtcblxuICAgICAgICAvLyBHZW5lcmF0ZSB0aGUgcGF5bG9hZCBmb3IgdGhlIEFQSSByZXF1ZXN0XG4gICAgICAgIGNvbnN0IGFwaVBheWxvYWQgPSB0aGlzLl9yZXF1ZXN0UmVzcG9uc2VIZWxwZXIuaW5zZXJ0UGF5bG9hZChhcHBPYmplY3QuU3lzdGVtREJUYWJsZU5hbWUsIHdoZXJlQ2xhdXNlLCB0cmFuc2Zvcm1lZERhdGEpO1xuXG4gICAgICAgIC8vIEV4ZWN1dGUgdGhlIHF1ZXJ5XG4gICAgICAgIHJldHVybiB0aGlzLl9kc3FIZWxwZXIuZXhlY3V0ZVF1ZXJ5KGFwaVBheWxvYWQsIFF1ZXJ5VHlwZS5JbnNlcnQsIGhlYWRlcnMpIGFzIE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgZGF0YSBpbiB0aGUgc3BlY2lmaWVkIHRhYmxlLlxuICAgICAqIEBwYXJhbSBwYXlsb2FkIFRoZSBwYXlsb2FkIGNvbnRhaW5pbmcgdGhlIGRhdGEgdG8gdXBkYXRlLCB0aGUgY3JpdGVyaWEgZm9yIHRoZSB1cGRhdGUsIGFuZCB0aGUgQXBwT2JqZWN0TW9kZWwgSUQuXG4gICAgICogQHBhcmFtIGhlYWRlcnMgT3B0aW9uYWwgaGVhZGVycyBmb3IgdGhlIHJlcXVlc3QuXG4gICAgICogQHJldHVybnMgQW4gb2JzZXJ2YWJsZSBvZiB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgQVBJLlxuICAgICAqL1xuICAgIHVwZGF0ZShwYXlsb2FkOiBVcGRhdGVQYXlsb2FkLCBoZWFkZXJzPzogYW55KTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCBhcHBPYmplY3Q6IEFwcE9iamVjdE1vZGVsID0gdGhpcy5nZXRBcHBPYmplY3RGcm9tUGF5bG9hZChwYXlsb2FkKTtcblxuICAgICAgICAvLyBGaWx0ZXIgb3V0IGludmFsaWQgZmllbGRzIGZyb20gdGhlIGRhdGEgYmFzZWQgb24gdGhlIEFwcE9iamVjdE1vZGVsXG4gICAgICAgIGNvbnN0IGZpbHRlcmVkRGF0YTogYW55ID0gdGhpcy5maWx0ZXJWYWxpZEFwcE9iamVjdEZpZWxkcyhwYXlsb2FkLmRhdGEsIGFwcE9iamVjdCk7XG5cbiAgICAgICAgLy8gR2VuZXJhdGUgYSB3aGVyZSBjbGF1c2UgYmFzZWQgb24gdGhlIGNyaXRlcmlhIHByb3ZpZGVkXG4gICAgICAgIGNvbnN0IHdoZXJlQ2xhdXNlOiBBUElGaWx0ZXJDcml0ZXJpYSA9IHRoaXMuZ2VuZXJhdGVXaGVyZUNsYXVzZShwYXlsb2FkLmNyaXRlcmlhLCBhcHBPYmplY3QuU3lzdGVtREJUYWJsZU5hbWUpO1xuICAgICAgICBpZiAoIXdoZXJlQ2xhdXNlPy5GaWx0ZXJzPy5sZW5ndGgpIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjcml0ZXJpYScpO1xuXG4gICAgICAgIC8vIFRyYW5zZm9ybSB0aGUgZGF0YSBpbnRvIHRoZSBmb3JtYXQgcmVxdWlyZWQgYnkgdGhlIEFQSVxuICAgICAgICBjb25zdCB0cmFuc2Zvcm1lZERhdGE6IEFQSVZhbHVlU2V0c1tdID0gY3JlYXRlRHluYW1pY0RhdGEoZmlsdGVyZWREYXRhKTtcblxuICAgICAgICAvLyBHZW5lcmF0ZSB0aGUgcGF5bG9hZCBmb3IgdGhlIEFQSSByZXF1ZXN0XG4gICAgICAgIGNvbnN0IGFwaVBheWxvYWQgPSB0aGlzLl9yZXF1ZXN0UmVzcG9uc2VIZWxwZXIudXBkYXRlUmVxdWVzdFBheWxvYWQoYXBwT2JqZWN0LlN5c3RlbURCVGFibGVOYW1lLCB3aGVyZUNsYXVzZSwgdHJhbnNmb3JtZWREYXRhKTtcblxuICAgICAgICAvLyBFeGVjdXRlIHRoZSBxdWVyeVxuICAgICAgICByZXR1cm4gdGhpcy5fZHNxSGVscGVyLmV4ZWN1dGVRdWVyeShhcGlQYXlsb2FkLCBRdWVyeVR5cGUuVXBkYXRlLCBoZWFkZXJzKSBhcyBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWxldGVzIGRhdGEgZnJvbSB0aGUgc3BlY2lmaWVkIHRhYmxlLlxuICAgICAqIEBwYXJhbSBwYXlsb2FkIFRoZSBwYXlsb2FkIGNvbnRhaW5pbmcgdGhlIGNyaXRlcmlhIGZvciB0aGUgZGVsZXRlIGFuZCB0aGUgQXBwT2JqZWN0TW9kZWwgSUQuXG4gICAgICogQHBhcmFtIGhlYWRlcnMgT3B0aW9uYWwgaGVhZGVycyBmb3IgdGhlIHJlcXVlc3QuXG4gICAgICogQHJldHVybnMgQW4gb2JzZXJ2YWJsZSBvZiB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgQVBJLlxuICAgICAqL1xuICAgIGRlbGV0ZShwYXlsb2FkOiBEZWxldGVQYXlsb2FkLCBoZWFkZXJzPzogYW55KTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCBhcHBPYmplY3Q6IEFwcE9iamVjdE1vZGVsID0gdGhpcy5nZXRBcHBPYmplY3RGcm9tUGF5bG9hZChwYXlsb2FkKTtcblxuICAgICAgICAvLyBHZW5lcmF0ZSBhIHdoZXJlIGNsYXVzZSBiYXNlZCBvbiB0aGUgY3JpdGVyaWEgcHJvdmlkZWRcbiAgICAgICAgY29uc3Qgd2hlcmVDbGF1c2U6IEFQSUZpbHRlckNyaXRlcmlhID0gdGhpcy5nZW5lcmF0ZVdoZXJlQ2xhdXNlKHBheWxvYWQuY3JpdGVyaWEsIGFwcE9iamVjdC5TeXN0ZW1EQlRhYmxlTmFtZSk7XG4gICAgICAgIGlmICghd2hlcmVDbGF1c2U/LkZpbHRlcnM/Lmxlbmd0aCkgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNyaXRlcmlhJyk7XG5cbiAgICAgICAgLy8gR2VuZXJhdGUgdGhlIHBheWxvYWQgZm9yIHRoZSBBUEkgcmVxdWVzdFxuICAgICAgICBjb25zdCBhcGlQYXlsb2FkID0gdGhpcy5fcmVxdWVzdFJlc3BvbnNlSGVscGVyLmRlbGV0ZVBheWxvYWQoYXBwT2JqZWN0LlN5c3RlbURCVGFibGVOYW1lLCB3aGVyZUNsYXVzZSk7XG5cbiAgICAgICAgLy8gRXhlY3V0ZSB0aGUgcXVlcnlcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RzcUhlbHBlci5leGVjdXRlUXVlcnkoYXBpUGF5bG9hZCwgUXVlcnlUeXBlLkRlbGV0ZSwgaGVhZGVycykgYXMgT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXhlY3V0ZXMgYSBzdG9yZWQgcHJvY2VkdXJlIHVzaW5nIHJhdyBTUUwuXG4gICAgICogQHBhcmFtIHNwIFRoZSBzdG9yZWQgcHJvY2VkdXJlIHF1ZXJ5IHN0cmluZy5cbiAgICAgKiBAcGFyYW0gaGVhZGVycyBPcHRpb25hbCBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdC5cbiAgICAgKiBAcmV0dXJucyBUaGUgcmVzdWx0IG9mIHRoZSBBUEkgUE9TVCByZXF1ZXN0LlxuICAgICAqL1xuICAgIGV4ZWN1dGVTcChzcDogc3RyaW5nLCBoZWFkZXJzPzogYW55KTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xuICAgICAgICAvLyBSZXRyaWV2ZSBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdFxuICAgICAgICBjb25zdCBoZWFkZXIgPSBnZXRIZWFkZXJzKGhlYWRlcnMpO1xuXG4gICAgICAgIC8vIEV4ZWN1dGUgdGhlIHN0b3JlZCBwcm9jZWR1cmUgdXNpbmcgYSBQT1NUIHJlcXVlc3RcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwaVNlcnZpY2UucG9zdChgJHtBUEkucmF3U1FMfT9xdWVyeT0ke3NwfWAsIHt9LCBoZWFkZXIpIGFzIE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+O1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -56,4 +56,4 @@ export class TabFormioService {
|
|
|
56
56
|
type: Injectable,
|
|
57
57
|
args: [{ providedIn: 'root' }]
|
|
58
58
|
}], null, null); })();
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWZvcm1pby5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9zcmMvbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2NydWQvdGFiLWZvcm1pby5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQU1qRCxNQUFNLE9BQU8sZ0JBQWdCO0lBRDdCO1FBRW1CLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7S0ErRGxEO0lBN0RDOzs7Ozs7O09BT0c7SUFDSCxTQUFTLENBQUMsUUFBZ0IsRUFBRSxNQUF3QixFQUFFLE1BQVk7UUFDaEUsdUNBQXVDO1FBQ3ZDLE1BQU0sT0FBTyxHQUFHLFVBQVUsRUFBRSxDQUFDO1FBQzdCLDBFQUEwRTtRQUMxRSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUN4QixHQUFHLEdBQUcsQ0FBQyxTQUFTLGFBQWEsUUFBUSxHQUFHLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLGFBQWEsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsWUFBWSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUN4SixNQUFNLEVBQ04sT0FBTyxDQUNSLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxRQUFnQixFQUFFLGNBQW1CO1FBQ2pELE1BQU0sT0FBTyxHQUFHLFVBQVUsRUFBRSxDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ3pCLEdBQUcsR0FBRyxDQUFDLGFBQWEsSUFBSSxRQUFRLEVBQUUsRUFDbEMsY0FBYyxFQUNkLE9BQU8sQ0FDUixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7TUFHRTtJQUNGLGNBQWMsQ0FBQyxJQUEyQjtRQUN4QyxNQUFNLE9BQU8sR0FBRyxVQUFVLEVBQUUsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUN6QixHQUFHLEdBQUcsQ0FBQyxjQUFjLEVBQUUsRUFDdkIsSUFBSSxFQUNKLE9BQU8sQ0FDUixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILHFCQUFxQixDQUFDLFdBQW1CLEVBQUUsSUFBNEIsRUFBRSxNQUFZO1FBQ25GLE1BQU0sT0FBTyxHQUFHLFVBQVUsRUFBRSxDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQ3hCLEdBQUcsR0FBRyxDQUFDLHFCQUFxQixnQkFBZ0IsV0FBVyxTQUFTLElBQUksRUFBRSxFQUN0RSxNQUFNLEVBQ04sT0FBTyxDQUNSLENBQUM7SUFDSixDQUFDO2lGQS9EVSxnQkFBZ0I7dUVBQWhCLGdCQUFnQixXQUFoQixnQkFBZ0IsbUJBREgsTUFBTTs7aUZBQ25CLGdCQUFnQjtjQUQ1QixVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9odHRwLWNsaWVudC9hcGkuc2VydmljZVwiO1xuaW1wb3J0IHsgZ2V0SGVhZGVycyB9IGZyb20gXCIuLi91dGlscy9yZXEtcmVzLnV0aWxcIjtcbmltcG9ydCB7IEFQSSB9IGZyb20gXCIuLi9jb25zdGFudHMvYXBpLWNvbnN0YW50c1wiO1xuaW1wb3J0IHsgQ29tbW9uQXBpUmVzcG9uc2UsIEdldFNjcmVlbkNvbmZpZywgUHJvY2Vzc1JlcXVlc3RQYXlsb2FkIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvY29tbW9uLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBCdWlsZEZvcm1Db21wb25lbnRUeXBlIH0gZnJvbSBcIi4uL2VudW1zL2NvbW1vbi5lbnVtXCI7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgVGFiRm9ybWlvU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXBpU2VydmljZSA9IGluamVjdChBcGlTZXJ2aWNlKTtcblxuICAvKipcbiAgICogRmV0Y2hlcyBzY3JlZW4gZGF0YSBmcm9tIHRoZSBzZXJ2ZXIgYmFzZWQgb24gdGhlIHNjcmVlbiBJRCBhbmQgb3B0aW9uYWwgY29uZmlndXJhdGlvbi5cbiAgICogXG4gICAqIEBwYXJhbSBzY3JlZW5JZCAtIFRoZSBJRCBvZiB0aGUgc2NyZWVuIHRvIHJldHJpZXZlLlxuICAgKiBAcGFyYW0gY29uZmlnIC0gT3B0aW9uYWwgY29uZmlndXJhdGlvbiBpbmNsdWRpbmcgbGF5b3V0SWQgYW5kIHZlcnNpb24uXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBBZGRpdGlvbmFsIHBhcmFtZXRlcnMgZm9yIHRoZSBBUEkgY2FsbC5cbiAgICogQHJldHVybnMgVGhlIHNjcmVlbiBkYXRhIGlmIGhlYWRlcnMgYXJlIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIG51bGwuXG4gICAqL1xuICBnZXRTY3JlZW4oc2NyZWVuSWQ6IHN0cmluZywgY29uZmlnPzogR2V0U2NyZWVuQ29uZmlnLCBwYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiB7XG4gICAgLy8gUmV0cmlldmUgaGVhZGVycyBmb3IgdGhlIEFQSSByZXF1ZXN0XG4gICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcbiAgICAvLyBDb25zdHJ1Y3QgdGhlIEFQSSBlbmRwb2ludCB3aXRoIHRoZSBzY3JlZW5JZCBhbmQgb3B0aW9uYWwgY29uZmlndXJhdGlvblxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZ2V0KFxuICAgICAgYCR7QVBJLmdldFNjcmVlbn0/c2NyZWVuSWQ9JHtzY3JlZW5JZH0ke2NvbmZpZz8ubGF5b3V0SWQgPyBgJmxheW91dElkPSR7Y29uZmlnPy5sYXlvdXRJZH1gIDogJyd9JHtjb25maWc/LnZlcnNpb24gPyBgJnZlcnNpb249JHtjb25maWc/LnZlcnNpb259YCA6ICcnfWAsXG4gICAgICBwYXJhbXMsXG4gICAgICBoZWFkZXJzXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIHN1Ym1pc3Npb24gZGF0YSBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAqIEBwYXJhbSBkYXRhIC0gT2JqZWN0IGNvbnRhaW5pbmcgc2NyZWVuSWQgYW5kIHJlcXRva2Vuc1xuICAgKiBAcmV0dXJucyBBIFN1YmplY3QgZW1pdHRpbmcgdGhlIHN1Ym1pc3Npb24gZGF0YSBvciB1bmRlZmluZWQuXG4gICAqL1xuICBnZXRTY3JlZW5EYXRhKHNjcmVlbklkOiBzdHJpbmcsIHJlcXVlc3RQYXlsb2FkOiBhbnkpOiBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiB7XG4gICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3QoXG4gICAgICBgJHtBUEkuZ2V0U2NyZWVuRGF0YX0vJHtzY3JlZW5JZH1gLFxuICAgICAgcmVxdWVzdFBheWxvYWQsXG4gICAgICBoZWFkZXJzXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAqIENhbGxlZCB3aGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC5cbiAgKiBAcGFyYW0gZGF0YSBPYmplY3QgY29udGFpbmluZyBzdWJtaXNzaW9uIGRhdGEuXG4gICovXG4gIHByb2Nlc3NSZXF1ZXN0KGRhdGE6IFByb2Nlc3NSZXF1ZXN0UGF5bG9hZCk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcbiAgICBjb25zdCBoZWFkZXJzID0gZ2V0SGVhZGVycygpO1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdChcbiAgICAgIGAke0FQSS5wcm9jZXNzUmVxdWVzdH1gLFxuICAgICAgZGF0YSxcbiAgICAgIGhlYWRlcnNcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgZm9ybUlPIGNvbXBvbmVudHMgZm9yIHRoZSBnaXZlbiBhcHBPYmplY3RJZCBhbmQgdHlwZS5cbiAgICogQHBhcmFtIGFwcE9iamVjdElkIC0gVGhlIElEIG9mIHRoZSBhcHAgb2JqZWN0LlxuICAgKiBAcGFyYW0gdHlwZSAtIFRoZSB0eXBlIG9mIHRoZSBjb21wb25lbnRzIHRvIHJldHJpZXZlLiBDYW4gYmUgZWl0aGVyICdDb21tb25GaWx0ZXInIG9yICdCdWxrVXBkYXRlJ1xuICAgKiBAcGFyYW0gcGFyYW1zIC0gQWRkaXRpb25hbCBwYXJhbWV0ZXJzIGZvciB0aGUgQVBJIGNhbGwuXG4gICAqIEByZXR1cm5zIFRoZSBmb3JtSU8gY29tcG9uZW50cyBpbiB0aGUgcmVzcG9uc2UgYm9keS5cbiAgICovXG4gIGJ1aWxkRm9ybUlPQ29tcG9uZW50cyhhcHBPYmplY3RJZDogc3RyaW5nLCB0eXBlOiBCdWlsZEZvcm1Db21wb25lbnRUeXBlLCBwYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiB7XG4gICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmdldChcbiAgICAgIGAke0FQSS5CdWlsZEZvcm1JT0NvbXBvbmVudHN9P2FwcE9iamVjdElkPSR7YXBwT2JqZWN0SWR9JlR5cGU9JHt0eXBlfWAsXG4gICAgICBwYXJhbXMsXG4gICAgICBoZWFkZXJzXG4gICAgKTtcbiAgfVxufSJdfQ==
|
|
@@ -141,7 +141,7 @@ export function removeBlankValue(dataObj) {
|
|
|
141
141
|
removeBlankValue(dataObj[key]);
|
|
142
142
|
}
|
|
143
143
|
}
|
|
144
|
-
else if (
|
|
144
|
+
else if (isValueBlank(dataObj[key])) {
|
|
145
145
|
delete dataObj[key];
|
|
146
146
|
}
|
|
147
147
|
});
|
|
@@ -160,6 +160,6 @@ export function removeBlankArrayKeys(dataObj) {
|
|
|
160
160
|
});
|
|
161
161
|
}
|
|
162
162
|
function isValueBlank(value) {
|
|
163
|
-
return value == null || value
|
|
163
|
+
return value == null || value === '' || value === 'null' || value === 'undefined';
|
|
164
164
|
}
|
|
165
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9zcmMvbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL3V0aWxzL2pzb24udXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzREFBc0Q7QUFDdEQsMENBQTBDO0FBQzFDLHVEQUF1RDtBQUV2RDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxHQUFXO0lBQ3RDLElBQUksQ0FBQztRQUNILE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0IsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsQ0FBQztJQUN4RSxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztBQUNILENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEdBQVE7SUFDeEMsT0FBTyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDMUIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFTLFdBQVcsQ0FBQyxLQUFVO0lBQzdCLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ2pELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDNUMsSUFBSSxLQUFLLEdBQVEsRUFBRSxDQUFDO1lBQ3BCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUM5QixJQUFJLEdBQUcsS0FBSyxvQkFBb0IsRUFBRSxDQUFDO29CQUNqQyxLQUFLLEdBQUcsdUJBQXVCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQzlDLENBQUM7cUJBQU0sQ0FBQztvQkFDTixLQUFLLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNsQyxDQUFDO1lBQ0gsQ0FBQztpQkFBTSxJQUFJLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUMxQyxLQUFLLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ25DLENBQUM7aUJBQU0sQ0FBQztnQkFDTixLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3JCLENBQUM7WUFDRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBUyx1QkFBdUIsQ0FBQyxLQUFVO0lBQ3pDLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRSxJQUFJLEtBQUssS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUN2RCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsS0FBVTtJQUM3QixNQUFNLEtBQUssR0FBVSxFQUFFLENBQUM7SUFDeEIsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDbkIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQVksRUFBRSxFQUFFO1lBQzdCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQzlDLElBQUksS0FBSyxHQUFRLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ2hDLEtBQUssR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BDLENBQUM7cUJBQU0sSUFBSSxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLEVBQUUsQ0FBQztvQkFDNUMsS0FBSyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDcEMsQ0FBQztxQkFBTSxDQUFDO29CQUNOLEtBQUssR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3ZCLENBQUM7Z0JBQ0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDcEMsQ0FBQyxDQUFDLENBQUM7WUFDSCxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsWUFBWSxDQUFDLEdBQVE7SUFDNUIsSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDakIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsUUFBUSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDNUIsS0FBSyxXQUFXLENBQUM7UUFDakIsS0FBSyxlQUFlLENBQUM7UUFDckIsS0FBSyxvQkFBb0IsQ0FBQztRQUMxQixLQUFLLHFCQUFxQixDQUFDO1FBQzNCLEtBQUssd0JBQXdCLENBQUM7UUFDOUIsS0FBSyxjQUFjLENBQUM7UUFDcEIsS0FBSyxVQUFVLENBQUM7UUFDaEIsS0FBSyxlQUFlLENBQUM7UUFDckIsS0FBSyxZQUFZO1lBQ2YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdCO1lBQ0UsT0FBTyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQztBQUNILENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsT0FBWTtJQUMzQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ25DLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2hDLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDOUIsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFvQixFQUFFLENBQU0sRUFBRSxFQUFFO29CQUNwRCxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO3dCQUN2QixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDNUIsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN6QixDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUVILENBQUM7YUFBTSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM1RCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUMzQyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDakMsQ0FBQztRQUVILENBQUM7YUFBTSxJQUFJLEdBQUcsS0FBSyxPQUFPLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDekQsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxPQUFZO0lBQy9DLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFZLEVBQUUsQ0FBTSxFQUFFLEVBQUU7UUFDdkMsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQy9DLElBQUksT0FBTyxPQUFPLENBQUMsS0FBSyxLQUFLLFFBQVEsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDbkUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdkIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxLQUFVO0lBQzlCLE9BQU8sS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxJQUFJLEtBQUssSUFBSSxTQUFTLENBQUM7QUFDNUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAqL1xyXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1wcm90b3R5cGUtYnVpbHRpbnMgKi9cclxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xyXG5cclxuLyoqXHJcbiAqIFZhbGlkYXRlcyBpZiBhIHN0cmluZyBpcyBhIHZhbGlkIEpTT04uXHJcbiAqIEBwYXJhbSBzdHIgVGhlIHN0cmluZyB0byB2YWxpZGF0ZS5cclxuICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgSlNPTiwgZmFsc2Ugb3RoZXJ3aXNlLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlSlNPTihzdHI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gIHRyeSB7XHJcbiAgICBjb25zdCBqc29uID0gSlNPTi5wYXJzZShzdHIpO1xyXG4gICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChqc29uKS5zbGljZSg4LCAtMSkgPT09ICdPYmplY3QnO1xyXG4gIH0gY2F0Y2ggKGUpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGR5bmFtaWMgZGF0YSBiYXNlZCBvbiB0aGUgaW5wdXQgb2JqZWN0XHJcbiAqIEBwYXJhbSBvYmogVGhlIGlucHV0IG9iamVjdCB0byBjcmVhdGUgZHluYW1pYyBkYXRhIGZyb21cclxuICogQHJldHVybnMgVGhlIGZvcm1hdHRlZCBhcnJheVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUR5bmFtaWNEYXRhKG9iajogYW55KSB7XHJcbiAgcmV0dXJuIGZvcm1hdEFycmF5KG9iaik7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBGb3JtYXRzIHRoZSBpbnB1dCBvYmplY3QgaW50byBhIG5ldyBhcnJheSB3aXRoIEFwcEZpZWxkSUQgYW5kIFZhbHVlIHBhaXJzXHJcbiAqIEBwYXJhbSBpbnB1dCBUaGUgaW5wdXQgb2JqZWN0IHRvIGJlIGZvcm1hdHRlZFxyXG4gKiBAcmV0dXJucyBUaGUgZm9ybWF0dGVkIGFycmF5IHdpdGggQXBwRmllbGRJRCBhbmQgVmFsdWUgcGFpcnNcclxuICovXHJcbmZ1bmN0aW9uIGZvcm1hdEFycmF5KGlucHV0OiBhbnkpIHtcclxuICBpZiAoaW5wdXQgIT09IG51bGwgJiYgT2JqZWN0LmtleXMoaW5wdXQpPy5sZW5ndGgpIHtcclxuICAgIGNvbnN0IG5ld09iaiA9IE9iamVjdC5rZXlzKGlucHV0KS5tYXAoKGtleSkgPT4ge1xyXG4gICAgICBsZXQgVmFsdWU6IGFueSA9ICcnO1xyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShpbnB1dFtrZXldKSkge1xyXG4gICAgICAgIGlmIChrZXkgPT09ICdDaGlsZF9SZWxhdGlvbnNoaXAnKSB7XHJcbiAgICAgICAgICBWYWx1ZSA9IGhhbmRsZUNoaWxkUmVsYXRpb25zaGlwKGlucHV0W2tleV0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBWYWx1ZSA9IGhhbmRsZWNoaWxkKGlucHV0W2tleV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgaW5wdXRba2V5XSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICBWYWx1ZSA9IGhhbmRsZU9iamVjdChpbnB1dFtrZXldKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBWYWx1ZSA9IGlucHV0W2tleV07XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHsgQXBwRmllbGRJRDoga2V5LCBWYWx1ZSB9O1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gbmV3T2JqO1xyXG4gIH1cclxuICByZXR1cm4gaW5wdXQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBIYW5kbGVzIHRoZSBDaGlsZF9SZWxhdGlvbnNoaXAga2V5IGluIHRoZSBpbnB1dCBvYmplY3RcclxuICogQHBhcmFtIGNoaWxkIFRoZSB2YWx1ZSBvZiB0aGUgQ2hpbGRfUmVsYXRpb25zaGlwIGtleVxyXG4gKiBAcmV0dXJucyBUaGUgSlNPTiBzdHJpbmdpZmllZCB2YWx1ZSBpZiBub3QgbnVsbCwgZW1wdHksIG9yICdudWxsJzsgb3RoZXJ3aXNlIG51bGxcclxuICovXHJcbmZ1bmN0aW9uIGhhbmRsZUNoaWxkUmVsYXRpb25zaGlwKGNoaWxkOiBhbnkpIHtcclxuICBpZiAoY2hpbGQgIT09IG51bGwgJiYgY2hpbGQgIT09ICcnICYmIGNoaWxkICE9PSAnbnVsbCcpIHtcclxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShjaGlsZCk7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gaGFuZGxlY2hpbGQoaW5wdXQ6IGFueSkge1xyXG4gIGNvbnN0IGFycmF5OiBhbnlbXSA9IFtdO1xyXG4gIGlmIChpbnB1dCAhPT0gbnVsbCkge1xyXG4gICAgaW5wdXQuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IG5ld09iaiA9IE9iamVjdC5rZXlzKGVsZW1lbnQpLm1hcCgoa2V5KSA9PiB7XHJcbiAgICAgICAgbGV0IFZhbHVlOiBhbnkgPSAnJztcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShlbGVtZW50W2tleV0pKSB7XHJcbiAgICAgICAgICBWYWx1ZSA9IGhhbmRsZWNoaWxkKGVsZW1lbnRba2V5XSk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZWxlbWVudFtrZXldID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgVmFsdWUgPSBmb3JtYXRBcnJheShlbGVtZW50W2tleV0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBWYWx1ZSA9IGVsZW1lbnRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHsgQXBwRmllbGRJRDoga2V5LCBWYWx1ZSB9O1xyXG4gICAgICB9KTtcclxuICAgICAgYXJyYXkucHVzaChuZXdPYmopO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gYXJyYXk7XHJcbiAgfVxyXG4gIHJldHVybiBudWxsO1xyXG59XHJcblxyXG4vKipcclxuICogSGFuZGxlcyBvYmplY3Qga2V5cyBpbiB0aGUgaW5wdXQgb2JqZWN0IGJhc2VkIG9uIHNwZWNpZmljIGNhc2VzXHJcbiAqIEBwYXJhbSBvYmogVGhlIG9iamVjdCB0byBiZSBoYW5kbGVkXHJcbiAqIEByZXR1cm5zIFRoZSBKU09OIHN0cmluZ2lmaWVkIHZhbHVlIGJhc2VkIG9uIHNwZWNpZmljIGNhc2VzIG9yIHJlY3Vyc2l2ZWx5IGZvcm1hdHMgdGhlIG9iamVjdFxyXG4gKi9cclxuZnVuY3Rpb24gaGFuZGxlT2JqZWN0KG9iajogYW55KSB7XHJcbiAgaWYgKG9iaiA9PT0gbnVsbCkge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG4gIHN3aXRjaCAoT2JqZWN0LmtleXMob2JqKVswXSkge1xyXG4gICAgY2FzZSAnQ29udGFpbmVyJzpcclxuICAgIGNhc2UgJ1NldHRpbmdfVmFsdWUnOlxyXG4gICAgY2FzZSAnQ2hpbGRfUmVsYXRpb25zaGlwJzpcclxuICAgIGNhc2UgJ1NjcmVlbkNvbmZpZ3VyYXRpb24nOlxyXG4gICAgY2FzZSAnQXBwT2JqZWN0Q29uZmlndXJhdGlvbic6XHJcbiAgICBjYXNlICdTY2hlbWFDb25maWcnOlxyXG4gICAgY2FzZSAnQ3JpdGVyaWEnOlxyXG4gICAgY2FzZSAnQXBwbHlDcml0ZXJpYSc6XHJcbiAgICBjYXNlICdTTEFTZXR0aW5nJzpcclxuICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG9iaik7XHJcbiAgICBkZWZhdWx0OlxyXG4gICAgICByZXR1cm4gZm9ybWF0QXJyYXkob2JqKTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmVzIGJsYW5rIHZhbHVlcyBmcm9tIHRoZSBpbnB1dCBvYmplY3RcclxuICogQHBhcmFtIGRhdGFPYmogVGhlIGlucHV0IG9iamVjdCB0byByZW1vdmUgYmxhbmsgdmFsdWVzIGZyb21cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVCbGFua1ZhbHVlKGRhdGFPYmo6IGFueSkge1xyXG4gIE9iamVjdC5rZXlzKGRhdGFPYmopLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YU9ialtrZXldKSkge1xyXG4gICAgICBpZiAoZGF0YU9ialtrZXldLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIGRlbGV0ZSBkYXRhT2JqW2tleV07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZGF0YU9ialtrZXldLmZvckVhY2goKGl0ZW06IHsgVmFsdWU6IGFueSB9LCBpOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChpc1ZhbHVlQmxhbmsoaXRlbSkpIHtcclxuICAgICAgICAgICAgZGF0YU9ialtrZXldLnNwbGljZShpLCAxKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJlbW92ZUJsYW5rVmFsdWUoaXRlbSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICBcclxuICAgIH0gZWxzZSBpZiAoZGF0YU9ialtrZXldICYmIHR5cGVvZiBkYXRhT2JqW2tleV0gPT09ICdvYmplY3QnKSB7XHJcbiAgICAgIGlmIChPYmplY3Qua2V5cyhkYXRhT2JqW2tleV0pLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIGRlbGV0ZSBkYXRhT2JqW2tleV07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmVtb3ZlQmxhbmtWYWx1ZShkYXRhT2JqW2tleV0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgfSBlbHNlIGlmIChrZXkgPT09ICdWYWx1ZScgJiYgaXNWYWx1ZUJsYW5rKGRhdGFPYmpba2V5XSkpIHtcclxuICAgICAgZGVsZXRlIGRhdGFPYmpba2V5XTtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlbW92ZXMgYmxhbmsgYXJyYXkga2V5cyBmcm9tIHRoZSBpbnB1dCBvYmplY3RcclxuICogQHBhcmFtIGRhdGFPYmogVGhlIGlucHV0IG9iamVjdCB0byByZW1vdmUgYmxhbmsgYXJyYXkga2V5cyBmcm9tXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlQmxhbmtBcnJheUtleXMoZGF0YU9iajogYW55KSB7XHJcbiAgZGF0YU9iai5mb3JFYWNoKChlbGVtZW50OiBhbnksIGk6IGFueSkgPT4ge1xyXG4gICAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC5oYXNPd25Qcm9wZXJ0eSgnVmFsdWUnKSkge1xyXG4gICAgICBpZiAodHlwZW9mIGVsZW1lbnQuVmFsdWUgPT09ICdvYmplY3QnICYmIGVsZW1lbnQuVmFsdWUubGVuZ3RoID09IDApIHtcclxuICAgICAgICBkYXRhT2JqLnNwbGljZShpLCAxKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc1ZhbHVlQmxhbmsodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiB2YWx1ZSA9PSBudWxsIHx8IHZhbHVlID09ICcnIHx8IHZhbHVlID09IHVuZGVmaW5lZDtcclxufSJdfQ==
|
|
165
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9zcmMvbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL3V0aWxzL2pzb24udXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzREFBc0Q7QUFDdEQsMENBQTBDO0FBQzFDLHVEQUF1RDtBQUV2RDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxHQUFXO0lBQ3RDLElBQUksQ0FBQztRQUNILE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0IsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsQ0FBQztJQUN4RSxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztBQUNILENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEdBQVE7SUFDeEMsT0FBTyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDMUIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFTLFdBQVcsQ0FBQyxLQUFVO0lBQzdCLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ2pELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDNUMsSUFBSSxLQUFLLEdBQVEsRUFBRSxDQUFDO1lBQ3BCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFD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T0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUMzQyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDakMsQ0FBQztRQUVILENBQUM7YUFBTSxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsT0FBWTtJQUMvQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBWSxFQUFFLENBQU0sRUFBRSxFQUFFO1FBQ3ZDLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMvQyxJQUFJLE9BQU8sT0FBTyxDQUFDLEtBQUssS0FBSyxRQUFRLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ25FLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3ZCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUMsS0FBVTtJQUM5QixPQUFPLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEVBQUUsSUFBSSxLQUFLLEtBQUssTUFBTSxJQUFJLEtBQUssS0FBSyxXQUFXLENBQUM7QUFDcEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAqL1xyXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1wcm90b3R5cGUtYnVpbHRpbnMgKi9cclxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xyXG5cclxuLyoqXHJcbiAqIFZhbGlkYXRlcyBpZiBhIHN0cmluZyBpcyBhIHZhbGlkIEpTT04uXHJcbiAqIEBwYXJhbSBzdHIgVGhlIHN0cmluZyB0byB2YWxpZGF0ZS5cclxuICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgSlNPTiwgZmFsc2Ugb3RoZXJ3aXNlLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlSlNPTihzdHI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gIHRyeSB7XHJcbiAgICBjb25zdCBqc29uID0gSlNPTi5wYXJzZShzdHIpO1xyXG4gICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChqc29uKS5zbGljZSg4LCAtMSkgPT09ICdPYmplY3QnO1xyXG4gIH0gY2F0Y2ggKGUpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGR5bmFtaWMgZGF0YSBiYXNlZCBvbiB0aGUgaW5wdXQgb2JqZWN0XHJcbiAqIEBwYXJhbSBvYmogVGhlIGlucHV0IG9iamVjdCB0byBjcmVhdGUgZHluYW1pYyBkYXRhIGZyb21cclxuICogQHJldHVybnMgVGhlIGZvcm1hdHRlZCBhcnJheVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUR5bmFtaWNEYXRhKG9iajogYW55KSB7XHJcbiAgcmV0dXJuIGZvcm1hdEFycmF5KG9iaik7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBGb3JtYXRzIHRoZSBpbnB1dCBvYmplY3QgaW50byBhIG5ldyBhcnJheSB3aXRoIEFwcEZpZWxkSUQgYW5kIFZhbHVlIHBhaXJzXHJcbiAqIEBwYXJhbSBpbnB1dCBUaGUgaW5wdXQgb2JqZWN0IHRvIGJlIGZvcm1hdHRlZFxyXG4gKiBAcmV0dXJucyBUaGUgZm9ybWF0dGVkIGFycmF5IHdpdGggQXBwRmllbGRJRCBhbmQgVmFsdWUgcGFpcnNcclxuICovXHJcbmZ1bmN0aW9uIGZvcm1hdEFycmF5KGlucHV0OiBhbnkpIHtcclxuICBpZiAoaW5wdXQgIT09IG51bGwgJiYgT2JqZWN0LmtleXMoaW5wdXQpPy5sZW5ndGgpIHtcclxuICAgIGNvbnN0IG5ld09iaiA9IE9iamVjdC5rZXlzKGlucHV0KS5tYXAoKGtleSkgPT4ge1xyXG4gICAgICBsZXQgVmFsdWU6IGFueSA9ICcnO1xyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShpbnB1dFtrZXldKSkge1xyXG4gICAgICAgIGlmIChrZXkgPT09ICdDaGlsZF9SZWxhdGlvbnNoaXAnKSB7XHJcbiAgICAgICAgICBWYWx1ZSA9IGhhbmRsZUNoaWxkUmVsYXRpb25zaGlwKGlucHV0W2tleV0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBWYWx1ZSA9IGhhbmRsZWNoaWxkKGlucHV0W2tleV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgaW5wdXRba2V5XSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICBWYWx1ZSA9IGhhbmRsZU9iamVjdChpbnB1dFtrZXldKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBWYWx1ZSA9IGlucHV0W2tleV07XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHsgQXBwRmllbGRJRDoga2V5LCBWYWx1ZSB9O1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gbmV3T2JqO1xyXG4gIH1cclxuICByZXR1cm4gaW5wdXQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBIYW5kbGVzIHRoZSBDaGlsZF9SZWxhdGlvbnNoaXAga2V5IGluIHRoZSBpbnB1dCBvYmplY3RcclxuICogQHBhcmFtIGNoaWxkIFRoZSB2YWx1ZSBvZiB0aGUgQ2hpbGRfUmVsYXRpb25zaGlwIGtleVxyXG4gKiBAcmV0dXJucyBUaGUgSlNPTiBzdHJpbmdpZmllZCB2YWx1ZSBpZiBub3QgbnVsbCwgZW1wdHksIG9yICdudWxsJzsgb3RoZXJ3aXNlIG51bGxcclxuICovXHJcbmZ1bmN0aW9uIGhhbmRsZUNoaWxkUmVsYXRpb25zaGlwKGNoaWxkOiBhbnkpIHtcclxuICBpZiAoY2hpbGQgIT09IG51bGwgJiYgY2hpbGQgIT09ICcnICYmIGNoaWxkICE9PSAnbnVsbCcpIHtcclxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShjaGlsZCk7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gaGFuZGxlY2hpbGQoaW5wdXQ6IGFueSkge1xyXG4gIGNvbnN0IGFycmF5OiBhbnlbXSA9IFtdO1xyXG4gIGlmIChpbnB1dCAhPT0gbnVsbCkge1xyXG4gICAgaW5wdXQuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IG5ld09iaiA9IE9iamVjdC5rZXlzKGVsZW1lbnQpLm1hcCgoa2V5KSA9PiB7XHJcbiAgICAgICAgbGV0IFZhbHVlOiBhbnkgPSAnJztcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShlbGVtZW50W2tleV0pKSB7XHJcbiAgICAgICAgICBWYWx1ZSA9IGhhbmRsZWNoaWxkKGVsZW1lbnRba2V5XSk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZWxlbWVudFtrZXldID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgVmFsdWUgPSBmb3JtYXRBcnJheShlbGVtZW50W2tleV0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBWYWx1ZSA9IGVsZW1lbnRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHsgQXBwRmllbGRJRDoga2V5LCBWYWx1ZSB9O1xyXG4gICAgICB9KTtcclxuICAgICAgYXJyYXkucHVzaChuZXdPYmopO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gYXJyYXk7XHJcbiAgfVxyXG4gIHJldHVybiBudWxsO1xyXG59XHJcblxyXG4vKipcclxuICogSGFuZGxlcyBvYmplY3Qga2V5cyBpbiB0aGUgaW5wdXQgb2JqZWN0IGJhc2VkIG9uIHNwZWNpZmljIGNhc2VzXHJcbiAqIEBwYXJhbSBvYmogVGhlIG9iamVjdCB0byBiZSBoYW5kbGVkXHJcbiAqIEByZXR1cm5zIFRoZSBKU09OIHN0cmluZ2lmaWVkIHZhbHVlIGJhc2VkIG9uIHNwZWNpZmljIGNhc2VzIG9yIHJlY3Vyc2l2ZWx5IGZvcm1hdHMgdGhlIG9iamVjdFxyXG4gKi9cclxuZnVuY3Rpb24gaGFuZGxlT2JqZWN0KG9iajogYW55KSB7XHJcbiAgaWYgKG9iaiA9PT0gbnVsbCkge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG4gIHN3aXRjaCAoT2JqZWN0LmtleXMob2JqKVswXSkge1xyXG4gICAgY2FzZSAnQ29udGFpbmVyJzpcclxuICAgIGNhc2UgJ1NldHRpbmdfVmFsdWUnOlxyXG4gICAgY2FzZSAnQ2hpbGRfUmVsYXRpb25zaGlwJzpcclxuICAgIGNhc2UgJ1NjcmVlbkNvbmZpZ3VyYXRpb24nOlxyXG4gICAgY2FzZSAnQXBwT2JqZWN0Q29uZmlndXJhdGlvbic6XHJcbiAgICBjYXNlICdTY2hlbWFDb25maWcnOlxyXG4gICAgY2FzZSAnQ3JpdGVyaWEnOlxyXG4gICAgY2FzZSAnQXBwbHlDcml0ZXJpYSc6XHJcbiAgICBjYXNlICdTTEFTZXR0aW5nJzpcclxuICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG9iaik7XHJcbiAgICBkZWZhdWx0OlxyXG4gICAgICByZXR1cm4gZm9ybWF0QXJyYXkob2JqKTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmVzIGJsYW5rIHZhbHVlcyBmcm9tIHRoZSBpbnB1dCBvYmplY3RcclxuICogQHBhcmFtIGRhdGFPYmogVGhlIGlucHV0IG9iamVjdCB0byByZW1vdmUgYmxhbmsgdmFsdWVzIGZyb21cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVCbGFua1ZhbHVlKGRhdGFPYmo6IGFueSkge1xyXG4gIE9iamVjdC5rZXlzKGRhdGFPYmopLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YU9ialtrZXldKSkge1xyXG4gICAgICBpZiAoZGF0YU9ialtrZXldLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIGRlbGV0ZSBkYXRhT2JqW2tleV07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZGF0YU9ialtrZXldLmZvckVhY2goKGl0ZW06IHsgVmFsdWU6IGFueSB9LCBpOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChpc1ZhbHVlQmxhbmsoaXRlbSkpIHtcclxuICAgICAgICAgICAgZGF0YU9ialtrZXldLnNwbGljZShpLCAxKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJlbW92ZUJsYW5rVmFsdWUoaXRlbSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICBcclxuICAgIH0gZWxzZSBpZiAoZGF0YU9ialtrZXldICYmIHR5cGVvZiBkYXRhT2JqW2tleV0gPT09ICdvYmplY3QnKSB7XHJcbiAgICAgIGlmIChPYmplY3Qua2V5cyhkYXRhT2JqW2tleV0pLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIGRlbGV0ZSBkYXRhT2JqW2tleV07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmVtb3ZlQmxhbmtWYWx1ZShkYXRhT2JqW2tleV0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgfSBlbHNlIGlmIChpc1ZhbHVlQmxhbmsoZGF0YU9ialtrZXldKSkge1xyXG4gICAgICBkZWxldGUgZGF0YU9ialtrZXldO1xyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG4vKipcclxuICogUmVtb3ZlcyBibGFuayBhcnJheSBrZXlzIGZyb20gdGhlIGlucHV0IG9iamVjdFxyXG4gKiBAcGFyYW0gZGF0YU9iaiBUaGUgaW5wdXQgb2JqZWN0IHRvIHJlbW92ZSBibGFuayBhcnJheSBrZXlzIGZyb21cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVCbGFua0FycmF5S2V5cyhkYXRhT2JqOiBhbnkpIHtcclxuICBkYXRhT2JqLmZvckVhY2goKGVsZW1lbnQ6IGFueSwgaTogYW55KSA9PiB7XHJcbiAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50Lmhhc093blByb3BlcnR5KCdWYWx1ZScpKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgZWxlbWVudC5WYWx1ZSA9PT0gJ29iamVjdCcgJiYgZWxlbWVudC5WYWx1ZS5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgIGRhdGFPYmouc3BsaWNlKGksIDEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzVmFsdWVCbGFuayh2YWx1ZTogYW55KTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIHZhbHVlID09IG51bGwgfHwgdmFsdWUgPT09ICcnIHx8IHZhbHVlID09PSAnbnVsbCcgfHwgdmFsdWUgPT09ICd1bmRlZmluZWQnO1xyXG59Il19
|