@aerokit/sdk 12.56.0 → 12.57.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/db/decorators.js +1 -1
- package/dist/cjs/db/repository.js +1 -1
- package/dist/cjs/db/store.js +79 -12
- package/dist/dts/db/decorators.d.ts +4 -1
- package/dist/dts/db/store.d.ts +6 -0
- package/dist/esm/db/decorators.mjs +1 -1
- package/dist/esm/db/repository.mjs +1 -1
- package/dist/esm/db/store.mjs +79 -12
- package/package.json +1 -1
|
@@ -164,4 +164,4 @@ function ManyToOne(typeFunction, options = {}) {
|
|
|
164
164
|
});
|
|
165
165
|
};
|
|
166
166
|
}
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RiL2RlY29yYXRvcnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogKiBFQ01BU2NyaXB0IDIwMjUtY29tcGxpYW50IE9STSBkZWNvcmF0b3IgaW1wbGVtZW50YXRpb25cbiAqIENvbXBhdGlibGUgd2l0aCBHcmFhbEpTIHJ1bnRpbWUuXG4gKiAqIEZlYXR1cmVzOlxuICogLSBVc2VzIGNvbnRleHQuYWRkSW5pdGlhbGl6ZXIgZm9yIHN0YWJsZSBkZWNvcmF0b3IgdGltaW5nXG4gKiAtIFN0b3JlcyBtZXRhZGF0YSBpbiBhIGdsb2JhbCBXZWFrTWFwIGNhY2hlXG4gKiAtIEZpbmFsaXplcyBlbnRpdHkgbWV0YWRhdGEgb25jZSBwZXIgY2xhc3NcbiAqIC0gRGVmZXJzIGZpbmFsaXphdGlvbiB2aWEgbWljcm90YXNrIChQcm9taXNlLnJlc29sdmUoKS50aGVuKVxuICovXG5cbi8vIC0tLSBEZWNvcmF0b3IgQ29udGV4dCBUeXBlcyAoYmFzZWQgb24gRUNNQVNjcmlwdCBEZWNvcmF0b3JzIHByb3Bvc2FsKSAtLS1cbnR5cGUgQ2xhc3NGaWVsZERlY29yYXRvckNvbnRleHQgPSB7XG4gIGtpbmQ6IFwiZmllbGRcIjtcbiAgbmFtZTogc3RyaW5nIHwgc3ltYm9sO1xuICBzdGF0aWM6IGJvb2xlYW47XG4gIHByaXZhdGU6IGJvb2xlYW47XG4gIGFkZEluaXRpYWxpemVyKGZuOiAoKSA9PiB2b2lkKTogdm9pZDtcbn07XG5cbnR5cGUgQ2xhc3NEZWNvcmF0b3JDb250ZXh0ID0ge1xuICBraW5kOiBcImNsYXNzXCI7XG4gIG5hbWU/OiBzdHJpbmcgfCBzeW1ib2w7XG4gIGFkZEluaXRpYWxpemVyKGZuOiAoKSA9PiB2b2lkKTogdm9pZDtcbn07XG5cbi8vIC0tLSBNZXRhZGF0YSBNb2RlbHMgLS0tXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbk9wdGlvbnMge1xuICBuYW1lPzogc3RyaW5nO1xuICB0eXBlPzogc3RyaW5nO1xuICBsZW5ndGg/OiBudW1iZXI7XG4gIG51bGxhYmxlPzogYm9vbGVhbjtcbiAgZGVmYXVsdFZhbHVlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uZVRvTWFueU9wdGlvbnMge1xuICB0YWJsZT86IHN0cmluZztcbiAgam9pbkNvbHVtbjogc3RyaW5nO1xuICBjYXNjYWRlPzogXCJhbGxcIiB8IFwibm9uZVwiIHwgXCJwZXJzaXN0XCIgfCBcIm1lcmdlXCIgfCBcInJlbW92ZVwiO1xuICBpbnZlcnNlPzogYm9vbGVhbjtcbiAgbGF6eT86IGJvb2xlYW47XG4gIGZldGNoPzogXCJzZWxlY3RcIiB8IFwiam9pblwiO1xuICBqb2luQ29sdW1uTm90TnVsbD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFueVRvT25lT3B0aW9ucyB7XG4gIGpvaW5Db2x1bW4/OiBzdHJpbmc7XG4gIGNhc2NhZGU/OiBcImFsbFwiIHwgXCJub25lXCIgfCBcInBlcnNpc3RcIiB8IFwibWVyZ2VcIiB8IFwicmVtb3ZlXCI7XG4gIG51bGxhYmxlPzogYm9vbGVhbjtcbiAgbGF6eT86IGJvb2xlYW47XG4gIGZldGNoPzogXCJzZWxlY3RcIiB8IFwiam9pblwiO1xufVxuXG5pbnRlcmZhY2UgUHJvcGVydHlNZXRhZGF0YSB7XG4gIHByb3BlcnR5TmFtZTogc3RyaW5nO1xuICBpc0lkOiBib29sZWFuO1xuICBpc0dlbmVyYXRlZDogYm9vbGVhbjtcbiAgZG9jdW1lbnRhdGlvbj86IHN0cmluZztcbiAgY29sdW1uT3B0aW9ucz86IENvbHVtbk9wdGlvbnM7XG4gIG9uZVRvTWFueU9wdGlvbnM/OiB7IHR5cGU6IEZ1bmN0aW9uOyBvcHRpb25zOiBPbmVUb01hbnlPcHRpb25zIH07XG4gIG1hbnlUb09uZU9wdGlvbnM/OiB7IHR5cGU6IEZ1bmN0aW9uOyBvcHRpb25zOiBNYW55VG9PbmVPcHRpb25zIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5Q29uc3RydWN0b3IgZXh0ZW5kcyBGdW5jdGlvbiB7XG4gIG5ldyAoLi4uYXJnczogYW55W10pOiBhbnk7XG4gICRlbnRpdHlfbmFtZTogc3RyaW5nO1xuICAkdGFibGVfbmFtZTogc3RyaW5nO1xuICAkaWRfbmFtZTogc3RyaW5nO1xuICAkaWRfY29sdW1uOiBzdHJpbmc7XG4gICRpbml0aWFsaXplZD86IGJvb2xlYW47XG4gICRkb2N1bWVudGF0aW9uPzogc3RyaW5nO1xufVxuXG4vLyAtLS0gR2xvYmFsIE1ldGFkYXRhIENhY2hlIC0tLVxuY29uc3QgZ2xvYmFsQ2FjaGU6IFdlYWtNYXA8RnVuY3Rpb24sIFByb3BlcnR5TWV0YWRhdGFbXT4gPVxuICAoZ2xvYmFsVGhpcyBhcyBhbnkpLl9fZGVjb3JhdG9yX21ldGFkYXRhX2NhY2hlX18gfHxcbiAgKChnbG9iYWxUaGlzIGFzIGFueSkuX19kZWNvcmF0b3JfbWV0YWRhdGFfY2FjaGVfXyA9IG5ldyBXZWFrTWFwKCkpO1xuXG5mdW5jdGlvbiBnZXRNZXRhZGF0YUFycmF5KGNvbnN0cnVjdG9yOiBGdW5jdGlvbik6IFByb3BlcnR5TWV0YWRhdGFbXSB7XG4gIGlmICghZ2xvYmFsQ2FjaGUuaGFzKGNvbnN0cnVjdG9yKSkge1xuICAgIGdsb2JhbENhY2hlLnNldChjb25zdHJ1Y3RvciwgW10pO1xuICB9XG4gIHJldHVybiBnbG9iYWxDYWNoZS5nZXQoY29uc3RydWN0b3IpITtcbn1cblxuLy8gLS0tIERlZmVyIEhlbHBlciAoR3JhYWxKUy1zYWZlIG1pY3JvdGFzaykgLS0tXG5mdW5jdGlvbiBkZWZlcihmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAvLyBVc2VzIFByb21pc2UgbWljcm90YXNrIHF1ZXVlIGZvciBkZWZlcnJlZCBleGVjdXRpb25cbiAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmbik7XG59XG5cbi8vIC0tLSBDb3JlIFByb3BlcnR5IERlY29yYXRvciBGYWN0b3J5IC0tLVxuZnVuY3Rpb24gY3JlYXRlUHJvcGVydHlEZWNvcmF0b3IoXG4gIGtpbmQ6IFwiY29sdW1uXCIgfCBcImlkXCIgfCBcImdlbmVyYXRlZFwiLFxuICBvcHRpb25zPzogQ29sdW1uT3B0aW9uc1xuKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoXzogYW55LCBjb250ZXh0OiBDbGFzc0ZpZWxkRGVjb3JhdG9yQ29udGV4dCkge1xuICAgIGlmIChjb250ZXh0LmtpbmQgIT09IFwiZmllbGRcIikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBAJHtraW5kfSBtdXN0IGFwcGx5IHRvIGZpZWxkc2ApO1xuICAgIH1cblxuICAgIGNvbnRleHQuYWRkSW5pdGlhbGl6ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgY3RvciA9ICh0aGlzIGFzIGFueSkuY29uc3RydWN0b3IgYXMgRW50aXR5Q29uc3RydWN0b3I7XG4gICAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSBjb250ZXh0Lm5hbWUudG9TdHJpbmcoKTtcbiAgICAgIGNvbnN0IG1ldGFkYXRhQXJyYXkgPSBnZXRNZXRhZGF0YUFycmF5KGN0b3IpO1xuXG4gICAgICBsZXQgbWV0YWRhdGEgPSBtZXRhZGF0YUFycmF5LmZpbmQoXG4gICAgICAgIChtKSA9PiBtLnByb3BlcnR5TmFtZSA9PT0gcHJvcGVydHlOYW1lXG4gICAgICApO1xuXG4gICAgICBpZiAoIW1ldGFkYXRhKSB7XG4gICAgICAgIG1ldGFkYXRhID0ge1xuICAgICAgICAgIHByb3BlcnR5TmFtZTogcHJvcGVydHlOYW1lLFxuICAgICAgICAgIGlzSWQ6IGZhbHNlLFxuICAgICAgICAgIGlzR2VuZXJhdGVkOiBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgICAgbWV0YWRhdGFBcnJheS5wdXNoKG1ldGFkYXRhKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGtpbmQgPT09IFwiaWRcIikgbWV0YWRhdGEuaXNJZCA9IHRydWU7XG4gICAgICBpZiAoa2luZCA9PT0gXCJnZW5lcmF0ZWRcIikgbWV0YWRhdGEuaXNHZW5lcmF0ZWQgPSB0cnVlO1xuICAgICAgaWYgKGtpbmQgPT09IFwiY29sdW1uXCIpIG1ldGFkYXRhLmNvbHVtbk9wdGlvbnMgPSBvcHRpb25zO1xuICAgIH0pO1xuICB9O1xufVxuXG4vLyAtLS0gQERvY3VtZW50YXRpb24gRGVjb3JhdG9yIChEdWFsLVB1cnBvc2UpIC0tLVxuLyoqXG4gKiBBZGRzIGRvY3VtZW50YXRpb24gbWV0YWRhdGEgdG8gYSBjbGFzcyBvciBhIGZpZWxkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gRG9jdW1lbnRhdGlvbihkZXNjcmlwdGlvbjogc3RyaW5nKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoXG4gICAgdmFsdWU6IEZ1bmN0aW9uIHwgYW55LFxuICAgIGNvbnRleHQ6IENsYXNzRGVjb3JhdG9yQ29udGV4dCB8IENsYXNzRmllbGREZWNvcmF0b3JDb250ZXh0XG4gICkge1xuICAgIGlmIChjb250ZXh0LmtpbmQgPT09IFwiY2xhc3NcIikge1xuICAgICAgY29udGV4dC5hZGRJbml0aWFsaXplcihmdW5jdGlvbiAoKSB7XG4gICAgICAgICh2YWx1ZSBhcyBFbnRpdHlDb25zdHJ1Y3RvcikuJGRvY3VtZW50YXRpb24gPSBkZXNjcmlwdGlvbjtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0gZWxzZSBpZiAoY29udGV4dC5raW5kID09PSBcImZpZWxkXCIpIHtcbiAgICAgIGNvbnRleHQuYWRkSW5pdGlhbGl6ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgICBjb25zdCBjdG9yID0gKHRoaXMgYXMgYW55KS5jb25zdHJ1Y3RvciBhcyBFbnRpdHlDb25zdHJ1Y3RvcjtcbiAgICAgICAgY29uc3QgcHJvcGVydHlOYW1lID0gY29udGV4dC5uYW1lLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IG1ldGFkYXRhQXJyYXkgPSBnZXRNZXRhZGF0YUFycmF5KGN0b3IpO1xuXG4gICAgICAgIGxldCBtZXRhZGF0YSA9IG1ldGFkYXRhQXJyYXkuZmluZChcbiAgICAgICAgICAobSkgPT4gbS5wcm9wZXJ0eU5hbWUgPT09IHByb3BlcnR5TmFtZVxuICAgICAgICApO1xuXG4gICAgICAgIGlmICghbWV0YWRhdGEpIHtcbiAgICAgICAgICBtZXRhZGF0YSA9IHtcbiAgICAgICAgICAgIHByb3BlcnR5TmFtZTogcHJvcGVydHlOYW1lLFxuICAgICAgICAgICAgaXNJZDogZmFsc2UsXG4gICAgICAgICAgICBpc0dlbmVyYXRlZDogZmFsc2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBtZXRhZGF0YUFycmF5LnB1c2gobWV0YWRhdGEpO1xuICAgICAgICB9XG5cbiAgICAgICAgbWV0YWRhdGEuZG9jdW1lbnRhdGlvbiA9IGRlc2NyaXB0aW9uO1xuICAgICAgfSk7XG4gICAgfVxuICB9O1xufVxuXG5cbi8vIC0tLSBARW50aXR5IERlY29yYXRvciAtLS1cbi8qKlxuICogTWFya3MgYSBjbGFzcyBhcyBhbiBlbnRpdHkgYW5kIGluaXRpYXRlcyBtZXRhZGF0YSBmaW5hbGl6YXRpb24uXG4gKiBAcGFyYW0gZW50aXR5TmFtZSBUaGUgbmFtZSBvZiB0aGUgZW50aXR5IChkZWZhdWx0cyB0byBjbGFzcyBuYW1lKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEVudGl0eShlbnRpdHlOYW1lPzogc3RyaW5nKSB7XG4gIHJldHVybiBmdW5jdGlvbiAodmFsdWU6IEZ1bmN0aW9uLCBjb250ZXh0OiBDbGFzc0RlY29yYXRvckNvbnRleHQpIHtcbiAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyKGZ1bmN0aW9uICgpIHtcbiAgICAgIC8vIERlZmVyIGV4ZWN1dGlvbiB0byBlbnN1cmUgYWxsIGZpZWxkIGRlY29yYXRvcnMgaGF2ZSBydW5cbiAgICAgIGRlZmVyKCgpID0+IHtcbiAgICAgICAgY29uc3QgY3RvciA9IHZhbHVlIGFzIEVudGl0eUNvbnN0cnVjdG9yO1xuXG4gICAgICAgIC8vIFByZXZlbnQgZHVwbGljYXRlIHJlZ2lzdHJhdGlvbiAoaWRlbXBvdGVuY3kpXG4gICAgICAgIGlmIChjdG9yLiRpbml0aWFsaXplZCkgcmV0dXJuO1xuICAgICAgICBjdG9yLiRpbml0aWFsaXplZCA9IHRydWU7XG5cbiAgICAgICAgY3Rvci4kZW50aXR5X25hbWUgPSBlbnRpdHlOYW1lIHx8IGN0b3IubmFtZTtcblxuICAgICAgICBjb25zdCBtZXRhZGF0YUFycmF5ID0gZ2V0TWV0YWRhdGFBcnJheShjdG9yKTtcbiAgICAgICAgY29uc3QgaWRNZXRhZGF0YSA9IG1ldGFkYXRhQXJyYXkuZmluZCgobSkgPT4gbS5pc0lkKTtcblxuICAgICAgICBpZiAoaWRNZXRhZGF0YSkge1xuICAgICAgICAgIGN0b3IuJGlkX25hbWUgPSBpZE1ldGFkYXRhLnByb3BlcnR5TmFtZTtcbiAgICAgICAgICAvLyBEZXRlcm1pbmUgSUQgY29sdW1uIG5hbWU6IHVzZSBleHBsaWNpdCBuYW1lIG9yIGNvbnZlcnQgcHJvcGVydHkgbmFtZSB0byB1cHBlciBjYXNlXG4gICAgICAgICAgY3Rvci4kaWRfY29sdW1uID1cbiAgICAgICAgICAgIGlkTWV0YWRhdGEuY29sdW1uT3B0aW9ucz8ubmFtZSB8fFxuICAgICAgICAgICAgaWRNZXRhZGF0YS5wcm9wZXJ0eU5hbWUudG9VcHBlckNhc2UoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZ1dHVyZTogTG9naWMgdG8gbWFwIGFsbCBwcm9wZXJ0aWVzIHRvIGNvbHVtbnMvcmVsYXRpb25zIGdvZXMgaGVyZVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH07XG59XG5cbi8vIC0tLSBAVGFibGUgRGVjb3JhdG9yIC0tLVxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIGRhdGFiYXNlIHRhYmxlIG5hbWUgZm9yIHRoZSBlbnRpdHkuXG4gKiBAcGFyYW0gdGFibGVOYW1lIFRoZSB0YWJsZSBuYW1lIChkZWZhdWx0cyB0byB1cHBlcmNhc2UgY2xhc3MgbmFtZSkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBUYWJsZSh0YWJsZU5hbWU/OiBzdHJpbmcpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIDxUIGV4dGVuZHMgRW50aXR5Q29uc3RydWN0b3I+KFxuICAgIHZhbHVlOiBULFxuICAgIGNvbnRleHQ6IENsYXNzRGVjb3JhdG9yQ29udGV4dFxuICApIHtcbiAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyKGZ1bmN0aW9uICgpIHtcbiAgICAgICh2YWx1ZSBhcyBFbnRpdHlDb25zdHJ1Y3RvcikuJHRhYmxlX25hbWUgPVxuICAgICAgICB0YWJsZU5hbWUgfHwgKGNvbnRleHQubmFtZT8udG9TdHJpbmcoKSA/PyB2YWx1ZS5uYW1lLnRvVXBwZXJDYXNlKCkpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9O1xufVxuXG4vLyAtLS0gRXhwb3J0ZWQgUHJvcGVydHkgRGVjb3JhdG9ycyAtLS1cbi8qKlxuICogTWFya3MgYSBwcm9wZXJ0eSBhcyBhIHN0YW5kYXJkIGRhdGFiYXNlIGNvbHVtbi5cbiAqL1xuZXhwb3J0IGNvbnN0IENvbHVtbiA9IChvcHRpb25zPzogQ29sdW1uT3B0aW9ucykgPT5cbiAgY3JlYXRlUHJvcGVydHlEZWNvcmF0b3IoXCJjb2x1bW5cIiwgb3B0aW9ucyk7XG5cbi8qKlxuICogTWFya3MgYSBwcm9wZXJ0eSBhcyB0aGUgZW50aXR5J3MgcHJpbWFyeSBrZXkuXG4gKi9cbmV4cG9ydCBjb25zdCBJZCA9ICgpID0+IGNyZWF0ZVByb3BlcnR5RGVjb3JhdG9yKFwiaWRcIik7XG5cbi8qKlxuICogTWFya3MgYSBwcm9wZXJ0eSBhcyBhIGdlbmVyYXRlZCB2YWx1ZSAoZS5nLiwgYXV0by1pbmNyZW1lbnQpLlxuICogQHBhcmFtIHN0cmF0ZWd5IFRoZSBnZW5lcmF0aW9uIHN0cmF0ZWd5IChlLmcuLCBcIklERU5USVRZXCIpLiBQYXJhbWV0ZXIgaXMgY3VycmVudGx5IHVudXNlZCBpbiBsb2dpYy5cbiAqL1xuZXhwb3J0IGNvbnN0IEdlbmVyYXRlZCA9IChzdHJhdGVneTogc3RyaW5nKSA9PlxuICBjcmVhdGVQcm9wZXJ0eURlY29yYXRvcihcImdlbmVyYXRlZFwiKTtcblxuLyoqXG4gKiBEZWZpbmVzIGEgb25lLXRvLW1hbnkgcmVsYXRpb25zaGlwLlxuICovXG5leHBvcnQgZnVuY3Rpb24gT25lVG9NYW55KFxuICB0eXBlRnVuY3Rpb246ICgpID0+IEZ1bmN0aW9uLFxuICBvcHRpb25zOiBPbmVUb01hbnlPcHRpb25zXG4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChfOiBhbnksIGNvbnRleHQ6IENsYXNzRmllbGREZWNvcmF0b3JDb250ZXh0KSB7XG4gICAgaWYgKGNvbnRleHQua2luZCAhPT0gXCJmaWVsZFwiKSByZXR1cm47XG5cbiAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyKGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGN0b3IgPSAodGhpcyBhcyBhbnkpLmNvbnN0cnVjdG9yIGFzIEVudGl0eUNvbnN0cnVjdG9yO1xuICAgICAgY29uc3QgcHJvcGVydHlOYW1lID0gY29udGV4dC5uYW1lLnRvU3RyaW5nKCk7XG4gICAgICBjb25zdCBtZXRhZGF0YUFycmF5ID0gZ2V0TWV0YWRhdGFBcnJheShjdG9yKTtcblxuICAgICAgbGV0IG1ldGFkYXRhID0gbWV0YWRhdGFBcnJheS5maW5kKFxuICAgICAgICAobSkgPT4gbS5wcm9wZXJ0eU5hbWUgPT09IHByb3BlcnR5TmFtZVxuICAgICAgKTtcblxuICAgICAgaWYgKCFtZXRhZGF0YSkge1xuICAgICAgICBtZXRhZGF0YSA9IHtcbiAgICAgICAgICBwcm9wZXJ0eU5hbWU6IHByb3BlcnR5TmFtZSxcbiAgICAgICAgICBpc0lkOiBmYWxzZSxcbiAgICAgICAgICBpc0dlbmVyYXRlZDogZmFsc2UsXG4gICAgICAgIH07XG4gICAgICAgIG1ldGFkYXRhQXJyYXkucHVzaChtZXRhZGF0YSk7XG4gICAgICB9XG5cbiAgICAgIG1ldGFkYXRhLm9uZVRvTWFueU9wdGlvbnMgPSB7IHR5cGU6IHR5cGVGdW5jdGlvbigpLCBvcHRpb25zIH07XG4gICAgfSk7XG4gIH07XG59XG5cbi8qKlxuICogRGVmaW5lcyBhIG1hbnktdG8tb25lIHJlbGF0aW9uc2hpcC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIE1hbnlUb09uZShcbiAgdHlwZUZ1bmN0aW9uOiAoKSA9PiBGdW5jdGlvbixcbiAgb3B0aW9uczogTWFueVRvT25lT3B0aW9ucyA9IHt9XG4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChfOiBhbnksIGNvbnRleHQ6IENsYXNzRmllbGREZWNvcmF0b3JDb250ZXh0KSB7XG4gICAgaWYgKGNvbnRleHQua2luZCAhPT0gXCJmaWVsZFwiKSByZXR1cm47XG5cbiAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyKGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGN0b3IgPSAodGhpcyBhcyBhbnkpLmNvbnN0cnVjdG9yIGFzIEVudGl0eUNvbnN0cnVjdG9yO1xuICAgICAgY29uc3QgcHJvcGVydHlOYW1lID0gY29udGV4dC5uYW1lLnRvU3RyaW5nKCk7XG4gICAgICBjb25zdCBtZXRhZGF0YUFycmF5ID0gZ2V0TWV0YWRhdGFBcnJheShjdG9yKTtcblxuICAgICAgbGV0IG1ldGFkYXRhID0gbWV0YWRhdGFBcnJheS5maW5kKFxuICAgICAgICAobSkgPT4gbS5wcm9wZXJ0eU5hbWUgPT09IHByb3BlcnR5TmFtZVxuICAgICAgKTtcblxuICAgICAgaWYgKCFtZXRhZGF0YSkge1xuICAgICAgICBtZXRhZGF0YSA9IHtcbiAgICAgICAgICBwcm9wZXJ0eU5hbWU6IHByb3BlcnR5TmFtZSxcbiAgICAgICAgICBpc0lkOiBmYWxzZSxcbiAgICAgICAgICBpc0dlbmVyYXRlZDogZmFsc2UsXG4gICAgICAgIH07XG4gICAgICAgIG1ldGFkYXRhQXJyYXkucHVzaChtZXRhZGF0YSk7XG4gICAgICB9XG5cbiAgICAgIG1ldGFkYXRhLm1hbnlUb09uZU9wdGlvbnMgPSB7IHR5cGU6IHR5cGVGdW5jdGlvbigpLCBvcHRpb25zIH07XG4gICAgfSk7XG4gIH07XG59Il0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF5RUEs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
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RiL2RlY29yYXRvcnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogKiBFQ01BU2NyaXB0IDIwMjUtY29tcGxpYW50IE9STSBkZWNvcmF0b3IgaW1wbGVtZW50YXRpb25cbiAqIENvbXBhdGlibGUgd2l0aCBHcmFhbEpTIHJ1bnRpbWUuXG4gKiAqIEZlYXR1cmVzOlxuICogLSBVc2VzIGNvbnRleHQuYWRkSW5pdGlhbGl6ZXIgZm9yIHN0YWJsZSBkZWNvcmF0b3IgdGltaW5nXG4gKiAtIFN0b3JlcyBtZXRhZGF0YSBpbiBhIGdsb2JhbCBXZWFrTWFwIGNhY2hlXG4gKiAtIEZpbmFsaXplcyBlbnRpdHkgbWV0YWRhdGEgb25jZSBwZXIgY2xhc3NcbiAqIC0gRGVmZXJzIGZpbmFsaXphdGlvbiB2aWEgbWljcm90YXNrIChQcm9taXNlLnJlc29sdmUoKS50aGVuKVxuICovXG5cbi8vIC0tLSBEZWNvcmF0b3IgQ29udGV4dCBUeXBlcyAoYmFzZWQgb24gRUNNQVNjcmlwdCBEZWNvcmF0b3JzIHByb3Bvc2FsKSAtLS1cbnR5cGUgQ2xhc3NGaWVsZERlY29yYXRvckNvbnRleHQgPSB7XG4gIGtpbmQ6IFwiZmllbGRcIjtcbiAgbmFtZTogc3RyaW5nIHwgc3ltYm9sO1xuICBzdGF0aWM6IGJvb2xlYW47XG4gIHByaXZhdGU6IGJvb2xlYW47XG4gIGFkZEluaXRpYWxpemVyKGZuOiAoKSA9PiB2b2lkKTogdm9pZDtcbn07XG5cbnR5cGUgQ2xhc3NEZWNvcmF0b3JDb250ZXh0ID0ge1xuICBraW5kOiBcImNsYXNzXCI7XG4gIG5hbWU/OiBzdHJpbmcgfCBzeW1ib2w7XG4gIGFkZEluaXRpYWxpemVyKGZuOiAoKSA9PiB2b2lkKTogdm9pZDtcbn07XG5cbmV4cG9ydCB0eXBlIENvbHVtblR5cGVzID1cbiAgLy8gTnVtZXJpYyB0eXBlc1xuICB8ICdpbnRlZ2VyJyB8ICdsb25nJyB8ICdzaG9ydCcgfCAnYnl0ZScgfCAnZmxvYXQnIHwgJ2RvdWJsZScgfCAnYmlnX2ludGVnZXInIHwgJ2JpZ19kZWNpbWFsJ1xuICAvLyBTdHJpbmcgdHlwZXNcbiAgfCAnc3RyaW5nJyB8ICdjaGFyJyB8ICd0ZXh0JyB8ICduc3RyaW5nJyB8ICdudGV4dCdcbiAgLy8gRGF0ZS9UaW1lIHR5cGVzXG4gIHwgJ2RhdGUnIHwgJ3RpbWUnIHwgJ3RpbWVzdGFtcCcgfCAnY2FsZW5kYXInIHwgJ2NhbGVuZGFyX2RhdGUnIHwgJ2luc3RhbnQnXG4gIC8vIEJvb2xlYW4gdHlwZXNcbiAgfCAnYm9vbGVhbicgfCAndHJ1ZV9mYWxzZScgfCAneWVzX25vJyB8ICdudW1lcmljX2Jvb2xlYW4nIFxuICAvLyBCaW5hcnkgdHlwZXNcbiAgfCAnYmluYXJ5JyB8ICdibG9iJyB8ICdjbG9iJyB8ICdtYXRlcmlhbGl6ZWRfYmxvYicgfCAnbWF0ZXJpYWxpemVkX2Nsb2InXG4gIC8vIE90aGVyIHR5cGVzXG4gIHwgJ3NlcmlhbGl6YWJsZScgfCAnYW55JyB8ICdvYmplY3QnIHwgJ3V1aWQtY2hhcicgfCAndXVpZC1iaW5hcnknIHwgJ2pzb24nIHwgJ2pzb25iJyB8ICd4bWwnO1xuXG4vLyAtLS0gTWV0YWRhdGEgTW9kZWxzIC0tLVxuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5PcHRpb25zIHtcbiAgbmFtZT86IHN0cmluZztcbiAgdHlwZT86IENvbHVtblR5cGVzIHwgKHN0cmluZyAmIHt9KTtcbiAgbGVuZ3RoPzogbnVtYmVyO1xuICBudWxsYWJsZT86IGJvb2xlYW47XG4gIGRlZmF1bHRWYWx1ZT86IHN0cmluZztcbiAgcHJlY2lzaW9uPzogbnVtYmVyO1xuICBzY2FsZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPbmVUb01hbnlPcHRpb25zIHtcbiAgdGFibGU/OiBzdHJpbmc7XG4gIGpvaW5Db2x1bW46IHN0cmluZztcbiAgY2FzY2FkZT86IFwiYWxsXCIgfCBcIm5vbmVcIiB8IFwicGVyc2lzdFwiIHwgXCJtZXJnZVwiIHwgXCJyZW1vdmVcIjtcbiAgaW52ZXJzZT86IGJvb2xlYW47XG4gIGxhenk/OiBib29sZWFuO1xuICBmZXRjaD86IFwic2VsZWN0XCIgfCBcImpvaW5cIjtcbiAgam9pbkNvbHVtbk5vdE51bGw/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hbnlUb09uZU9wdGlvbnMge1xuICBqb2luQ29sdW1uPzogc3RyaW5nO1xuICBjYXNjYWRlPzogXCJhbGxcIiB8IFwibm9uZVwiIHwgXCJwZXJzaXN0XCIgfCBcIm1lcmdlXCIgfCBcInJlbW92ZVwiO1xuICBudWxsYWJsZT86IGJvb2xlYW47XG4gIGxhenk/OiBib29sZWFuO1xuICBmZXRjaD86IFwic2VsZWN0XCIgfCBcImpvaW5cIjtcbn1cblxuaW50ZXJmYWNlIFByb3BlcnR5TWV0YWRhdGEge1xuICBwcm9wZXJ0eU5hbWU6IHN0cmluZztcbiAgaXNJZDogYm9vbGVhbjtcbiAgaXNHZW5lcmF0ZWQ6IGJvb2xlYW47XG4gIGRvY3VtZW50YXRpb24/OiBzdHJpbmc7XG4gIGNvbHVtbk9wdGlvbnM/OiBDb2x1bW5PcHRpb25zO1xuICBvbmVUb01hbnlPcHRpb25zPzogeyB0eXBlOiBGdW5jdGlvbjsgb3B0aW9uczogT25lVG9NYW55T3B0aW9ucyB9O1xuICBtYW55VG9PbmVPcHRpb25zPzogeyB0eXBlOiBGdW5jdGlvbjsgb3B0aW9uczogTWFueVRvT25lT3B0aW9ucyB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eUNvbnN0cnVjdG9yIGV4dGVuZHMgRnVuY3Rpb24ge1xuICBuZXcoLi4uYXJnczogYW55W10pOiBhbnk7XG4gICRlbnRpdHlfbmFtZTogc3RyaW5nO1xuICAkdGFibGVfbmFtZTogc3RyaW5nO1xuICAkaWRfbmFtZTogc3RyaW5nO1xuICAkaWRfY29sdW1uOiBzdHJpbmc7XG4gICRpbml0aWFsaXplZD86IGJvb2xlYW47XG4gICRkb2N1bWVudGF0aW9uPzogc3RyaW5nO1xufVxuXG4vLyAtLS0gR2xvYmFsIE1ldGFkYXRhIENhY2hlIC0tLVxuY29uc3QgZ2xvYmFsQ2FjaGU6IFdlYWtNYXA8RnVuY3Rpb24sIFByb3BlcnR5TWV0YWRhdGFbXT4gPVxuICAoZ2xvYmFsVGhpcyBhcyBhbnkpLl9fZGVjb3JhdG9yX21ldGFkYXRhX2NhY2hlX18gfHxcbiAgKChnbG9iYWxUaGlzIGFzIGFueSkuX19kZWNvcmF0b3JfbWV0YWRhdGFfY2FjaGVfXyA9IG5ldyBXZWFrTWFwKCkpO1xuXG5mdW5jdGlvbiBnZXRNZXRhZGF0YUFycmF5KGNvbnN0cnVjdG9yOiBGdW5jdGlvbik6IFByb3BlcnR5TWV0YWRhdGFbXSB7XG4gIGlmICghZ2xvYmFsQ2FjaGUuaGFzKGNvbnN0cnVjdG9yKSkge1xuICAgIGdsb2JhbENhY2hlLnNldChjb25zdHJ1Y3RvciwgW10pO1xuICB9XG4gIHJldHVybiBnbG9iYWxDYWNoZS5nZXQoY29uc3RydWN0b3IpITtcbn1cblxuLy8gLS0tIERlZmVyIEhlbHBlciAoR3JhYWxKUy1zYWZlIG1pY3JvdGFzaykgLS0tXG5mdW5jdGlvbiBkZWZlcihmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAvLyBVc2VzIFByb21pc2UgbWljcm90YXNrIHF1ZXVlIGZvciBkZWZlcnJlZCBleGVjdXRpb25cbiAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmbik7XG59XG5cbi8vIC0tLSBDb3JlIFByb3BlcnR5IERlY29yYXRvciBGYWN0b3J5IC0tLVxuZnVuY3Rpb24gY3JlYXRlUHJvcGVydHlEZWNvcmF0b3IoXG4gIGtpbmQ6IFwiY29sdW1uXCIgfCBcImlkXCIgfCBcImdlbmVyYXRlZFwiLFxuICBvcHRpb25zPzogQ29sdW1uT3B0aW9uc1xuKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoXzogYW55LCBjb250ZXh0OiBDbGFzc0ZpZWxkRGVjb3JhdG9yQ29udGV4dCkge1xuICAgIGlmIChjb250ZXh0LmtpbmQgIT09IFwiZmllbGRcIikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBAJHtraW5kfSBtdXN0IGFwcGx5IHRvIGZpZWxkc2ApO1xuICAgIH1cblxuICAgIGNvbnRleHQuYWRkSW5pdGlhbGl6ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgY3RvciA9ICh0aGlzIGFzIGFueSkuY29uc3RydWN0b3IgYXMgRW50aXR5Q29uc3RydWN0b3I7XG4gICAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSBjb250ZXh0Lm5hbWUudG9TdHJpbmcoKTtcbiAgICAgIGNvbnN0IG1ldGFkYXRhQXJyYXkgPSBnZXRNZXRhZGF0YUFycmF5KGN0b3IpO1xuXG4gICAgICBsZXQgbWV0YWRhdGEgPSBtZXRhZGF0YUFycmF5LmZpbmQoXG4gICAgICAgIChtKSA9PiBtLnByb3BlcnR5TmFtZSA9PT0gcHJvcGVydHlOYW1lXG4gICAgICApO1xuXG4gICAgICBpZiAoIW1ldGFkYXRhKSB7XG4gICAgICAgIG1ldGFkYXRhID0ge1xuICAgICAgICAgIHByb3BlcnR5TmFtZTogcHJvcGVydHlOYW1lLFxuICAgICAgICAgIGlzSWQ6IGZhbHNlLFxuICAgICAgICAgIGlzR2VuZXJhdGVkOiBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgICAgbWV0YWRhdGFBcnJheS5wdXNoKG1ldGFkYXRhKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGtpbmQgPT09IFwiaWRcIikgbWV0YWRhdGEuaXNJZCA9IHRydWU7XG4gICAgICBpZiAoa2luZCA9PT0gXCJnZW5lcmF0ZWRcIikgbWV0YWRhdGEuaXNHZW5lcmF0ZWQgPSB0cnVlO1xuICAgICAgaWYgKGtpbmQgPT09IFwiY29sdW1uXCIpIG1ldGFkYXRhLmNvbHVtbk9wdGlvbnMgPSBvcHRpb25zO1xuICAgIH0pO1xuICB9O1xufVxuXG4vLyAtLS0gQERvY3VtZW50YXRpb24gRGVjb3JhdG9yIChEdWFsLVB1cnBvc2UpIC0tLVxuLyoqXG4gKiBBZGRzIGRvY3VtZW50YXRpb24gbWV0YWRhdGEgdG8gYSBjbGFzcyBvciBhIGZpZWxkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gRG9jdW1lbnRhdGlvbihkZXNjcmlwdGlvbjogc3RyaW5nKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoXG4gICAgdmFsdWU6IEZ1bmN0aW9uIHwgYW55LFxuICAgIGNvbnRleHQ6IENsYXNzRGVjb3JhdG9yQ29udGV4dCB8IENsYXNzRmllbGREZWNvcmF0b3JDb250ZXh0XG4gICkge1xuICAgIGlmIChjb250ZXh0LmtpbmQgPT09IFwiY2xhc3NcIikge1xuICAgICAgY29udGV4dC5hZGRJbml0aWFsaXplcihmdW5jdGlvbiAoKSB7XG4gICAgICAgICh2YWx1ZSBhcyBFbnRpdHlDb25zdHJ1Y3RvcikuJGRvY3VtZW50YXRpb24gPSBkZXNjcmlwdGlvbjtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0gZWxzZSBpZiAoY29udGV4dC5raW5kID09PSBcImZpZWxkXCIpIHtcbiAgICAgIGNvbnRleHQuYWRkSW5pdGlhbGl6ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgICBjb25zdCBjdG9yID0gKHRoaXMgYXMgYW55KS5jb25zdHJ1Y3RvciBhcyBFbnRpdHlDb25zdHJ1Y3RvcjtcbiAgICAgICAgY29uc3QgcHJvcGVydHlOYW1lID0gY29udGV4dC5uYW1lLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IG1ldGFkYXRhQXJyYXkgPSBnZXRNZXRhZGF0YUFycmF5KGN0b3IpO1xuXG4gICAgICAgIGxldCBtZXRhZGF0YSA9IG1ldGFkYXRhQXJyYXkuZmluZChcbiAgICAgICAgICAobSkgPT4gbS5wcm9wZXJ0eU5hbWUgPT09IHByb3BlcnR5TmFtZVxuICAgICAgICApO1xuXG4gICAgICAgIGlmICghbWV0YWRhdGEpIHtcbiAgICAgICAgICBtZXRhZGF0YSA9IHtcbiAgICAgICAgICAgIHByb3BlcnR5TmFtZTogcHJvcGVydHlOYW1lLFxuICAgICAgICAgICAgaXNJZDogZmFsc2UsXG4gICAgICAgICAgICBpc0dlbmVyYXRlZDogZmFsc2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBtZXRhZGF0YUFycmF5LnB1c2gobWV0YWRhdGEpO1xuICAgICAgICB9XG5cbiAgICAgICAgbWV0YWRhdGEuZG9jdW1lbnRhdGlvbiA9IGRlc2NyaXB0aW9uO1xuICAgICAgfSk7XG4gICAgfVxuICB9O1xufVxuXG5cbi8vIC0tLSBARW50aXR5IERlY29yYXRvciAtLS1cbi8qKlxuICogTWFya3MgYSBjbGFzcyBhcyBhbiBlbnRpdHkgYW5kIGluaXRpYXRlcyBtZXRhZGF0YSBmaW5hbGl6YXRpb24uXG4gKiBAcGFyYW0gZW50aXR5TmFtZSBUaGUgbmFtZSBvZiB0aGUgZW50aXR5IChkZWZhdWx0cyB0byBjbGFzcyBuYW1lKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEVudGl0eShlbnRpdHlOYW1lPzogc3RyaW5nKSB7XG4gIHJldHVybiBmdW5jdGlvbiAodmFsdWU6IEZ1bmN0aW9uLCBjb250ZXh0OiBDbGFzc0RlY29yYXRvckNvbnRleHQpIHtcbiAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyKGZ1bmN0aW9uICgpIHtcbiAgICAgIC8vIERlZmVyIGV4ZWN1dGlvbiB0byBlbnN1cmUgYWxsIGZpZWxkIGRlY29yYXRvcnMgaGF2ZSBydW5cbiAgICAgIGRlZmVyKCgpID0+IHtcbiAgICAgICAgY29uc3QgY3RvciA9IHZhbHVlIGFzIEVudGl0eUNvbnN0cnVjdG9yO1xuXG4gICAgICAgIC8vIFByZXZlbnQgZHVwbGljYXRlIHJlZ2lzdHJhdGlvbiAoaWRlbXBvdGVuY3kpXG4gICAgICAgIGlmIChjdG9yLiRpbml0aWFsaXplZCkgcmV0dXJuO1xuICAgICAgICBjdG9yLiRpbml0aWFsaXplZCA9IHRydWU7XG5cbiAgICAgICAgY3Rvci4kZW50aXR5X25hbWUgPSBlbnRpdHlOYW1lIHx8IGN0b3IubmFtZTtcblxuICAgICAgICBjb25zdCBtZXRhZGF0YUFycmF5ID0gZ2V0TWV0YWRhdGFBcnJheShjdG9yKTtcbiAgICAgICAgY29uc3QgaWRNZXRhZGF0YSA9IG1ldGFkYXRhQXJyYXkuZmluZCgobSkgPT4gbS5pc0lkKTtcblxuICAgICAgICBpZiAoaWRNZXRhZGF0YSkge1xuICAgICAgICAgIGN0b3IuJGlkX25hbWUgPSBpZE1ldGFkYXRhLnByb3BlcnR5TmFtZTtcbiAgICAgICAgICAvLyBEZXRlcm1pbmUgSUQgY29sdW1uIG5hbWU6IHVzZSBleHBsaWNpdCBuYW1lIG9yIGNvbnZlcnQgcHJvcGVydHkgbmFtZSB0byB1cHBlciBjYXNlXG4gICAgICAgICAgY3Rvci4kaWRfY29sdW1uID1cbiAgICAgICAgICAgIGlkTWV0YWRhdGEuY29sdW1uT3B0aW9ucz8ubmFtZSB8fFxuICAgICAgICAgICAgaWRNZXRhZGF0YS5wcm9wZXJ0eU5hbWUudG9VcHBlckNhc2UoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZ1dHVyZTogTG9naWMgdG8gbWFwIGFsbCBwcm9wZXJ0aWVzIHRvIGNvbHVtbnMvcmVsYXRpb25zIGdvZXMgaGVyZVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH07XG59XG5cbi8vIC0tLSBAVGFibGUgRGVjb3JhdG9yIC0tLVxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIGRhdGFiYXNlIHRhYmxlIG5hbWUgZm9yIHRoZSBlbnRpdHkuXG4gKiBAcGFyYW0gdGFibGVOYW1lIFRoZSB0YWJsZSBuYW1lIChkZWZhdWx0cyB0byB1cHBlcmNhc2UgY2xhc3MgbmFtZSkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBUYWJsZSh0YWJsZU5hbWU/OiBzdHJpbmcpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIDxUIGV4dGVuZHMgRW50aXR5Q29uc3RydWN0b3I+KFxuICAgIHZhbHVlOiBULFxuICAgIGNvbnRleHQ6IENsYXNzRGVjb3JhdG9yQ29udGV4dFxuICApIHtcbiAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyKGZ1bmN0aW9uICgpIHtcbiAgICAgICh2YWx1ZSBhcyBFbnRpdHlDb25zdHJ1Y3RvcikuJHRhYmxlX25hbWUgPVxuICAgICAgICB0YWJsZU5hbWUgfHwgKGNvbnRleHQubmFtZT8udG9TdHJpbmcoKSA/PyB2YWx1ZS5uYW1lLnRvVXBwZXJDYXNlKCkpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9O1xufVxuXG4vLyAtLS0gRXhwb3J0ZWQgUHJvcGVydHkgRGVjb3JhdG9ycyAtLS1cbi8qKlxuICogTWFya3MgYSBwcm9wZXJ0eSBhcyBhIHN0YW5kYXJkIGRhdGFiYXNlIGNvbHVtbi5cbiAqL1xuZXhwb3J0IGNvbnN0IENvbHVtbiA9IChvcHRpb25zPzogQ29sdW1uT3B0aW9ucykgPT5cbiAgY3JlYXRlUHJvcGVydHlEZWNvcmF0b3IoXCJjb2x1bW5cIiwgb3B0aW9ucyk7XG5cbi8qKlxuICogTWFya3MgYSBwcm9wZXJ0eSBhcyB0aGUgZW50aXR5J3MgcHJpbWFyeSBrZXkuXG4gKi9cbmV4cG9ydCBjb25zdCBJZCA9ICgpID0+IGNyZWF0ZVByb3BlcnR5RGVjb3JhdG9yKFwiaWRcIik7XG5cbi8qKlxuICogTWFya3MgYSBwcm9wZXJ0eSBhcyBhIGdlbmVyYXRlZCB2YWx1ZSAoZS5nLiwgYXV0by1pbmNyZW1lbnQpLlxuICogQHBhcmFtIHN0cmF0ZWd5IFRoZSBnZW5lcmF0aW9uIHN0cmF0ZWd5IChlLmcuLCBcIklERU5USVRZXCIpLiBQYXJhbWV0ZXIgaXMgY3VycmVudGx5IHVudXNlZCBpbiBsb2dpYy5cbiAqL1xuZXhwb3J0IGNvbnN0IEdlbmVyYXRlZCA9IChzdHJhdGVneTogc3RyaW5nKSA9PlxuICBjcmVhdGVQcm9wZXJ0eURlY29yYXRvcihcImdlbmVyYXRlZFwiKTtcblxuLyoqXG4gKiBEZWZpbmVzIGEgb25lLXRvLW1hbnkgcmVsYXRpb25zaGlwLlxuICovXG5leHBvcnQgZnVuY3Rpb24gT25lVG9NYW55KFxuICB0eXBlRnVuY3Rpb246ICgpID0+IEZ1bmN0aW9uLFxuICBvcHRpb25zOiBPbmVUb01hbnlPcHRpb25zXG4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChfOiBhbnksIGNvbnRleHQ6IENsYXNzRmllbGREZWNvcmF0b3JDb250ZXh0KSB7XG4gICAgaWYgKGNvbnRleHQua2luZCAhPT0gXCJmaWVsZFwiKSByZXR1cm47XG5cbiAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyKGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGN0b3IgPSAodGhpcyBhcyBhbnkpLmNvbnN0cnVjdG9yIGFzIEVudGl0eUNvbnN0cnVjdG9yO1xuICAgICAgY29uc3QgcHJvcGVydHlOYW1lID0gY29udGV4dC5uYW1lLnRvU3RyaW5nKCk7XG4gICAgICBjb25zdCBtZXRhZGF0YUFycmF5ID0gZ2V0TWV0YWRhdGFBcnJheShjdG9yKTtcblxuICAgICAgbGV0IG1ldGFkYXRhID0gbWV0YWRhdGFBcnJheS5maW5kKFxuICAgICAgICAobSkgPT4gbS5wcm9wZXJ0eU5hbWUgPT09IHByb3BlcnR5TmFtZVxuICAgICAgKTtcblxuICAgICAgaWYgKCFtZXRhZGF0YSkge1xuICAgICAgICBtZXRhZGF0YSA9IHtcbiAgICAgICAgICBwcm9wZXJ0eU5hbWU6IHByb3BlcnR5TmFtZSxcbiAgICAgICAgICBpc0lkOiBmYWxzZSxcbiAgICAgICAgICBpc0dlbmVyYXRlZDogZmFsc2UsXG4gICAgICAgIH07XG4gICAgICAgIG1ldGFkYXRhQXJyYXkucHVzaChtZXRhZGF0YSk7XG4gICAgICB9XG5cbiAgICAgIG1ldGFkYXRhLm9uZVRvTWFueU9wdGlvbnMgPSB7IHR5cGU6IHR5cGVGdW5jdGlvbigpLCBvcHRpb25zIH07XG4gICAgfSk7XG4gIH07XG59XG5cbi8qKlxuICogRGVmaW5lcyBhIG1hbnktdG8tb25lIHJlbGF0aW9uc2hpcC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIE1hbnlUb09uZShcbiAgdHlwZUZ1bmN0aW9uOiAoKSA9PiBGdW5jdGlvbixcbiAgb3B0aW9uczogTWFueVRvT25lT3B0aW9ucyA9IHt9XG4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChfOiBhbnksIGNvbnRleHQ6IENsYXNzRmllbGREZWNvcmF0b3JDb250ZXh0KSB7XG4gICAgaWYgKGNvbnRleHQua2luZCAhPT0gXCJmaWVsZFwiKSByZXR1cm47XG5cbiAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyKGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGN0b3IgPSAodGhpcyBhcyBhbnkpLmNvbnN0cnVjdG9yIGFzIEVudGl0eUNvbnN0cnVjdG9yO1xuICAgICAgY29uc3QgcHJvcGVydHlOYW1lID0gY29udGV4dC5uYW1lLnRvU3RyaW5nKCk7XG4gICAgICBjb25zdCBtZXRhZGF0YUFycmF5ID0gZ2V0TWV0YWRhdGFBcnJheShjdG9yKTtcblxuICAgICAgbGV0IG1ldGFkYXRhID0gbWV0YWRhdGFBcnJheS5maW5kKFxuICAgICAgICAobSkgPT4gbS5wcm9wZXJ0eU5hbWUgPT09IHByb3BlcnR5TmFtZVxuICAgICAgKTtcblxuICAgICAgaWYgKCFtZXRhZGF0YSkge1xuICAgICAgICBtZXRhZGF0YSA9IHtcbiAgICAgICAgICBwcm9wZXJ0eU5hbWU6IHByb3BlcnR5TmFtZSxcbiAgICAgICAgICBpc0lkOiBmYWxzZSxcbiAgICAgICAgICBpc0dlbmVyYXRlZDogZmFsc2UsXG4gICAgICAgIH07XG4gICAgICAgIG1ldGFkYXRhQXJyYXkucHVzaChtZXRhZGF0YSk7XG4gICAgICB9XG5cbiAgICAgIG1ldGFkYXRhLm1hbnlUb09uZU9wdGlvbnMgPSB7IHR5cGU6IHR5cGVGdW5jdGlvbigpLCBvcHRpb25zIH07XG4gICAgfSk7XG4gIH07XG59Il0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF5RkEsTUFBTSxjQUNILFdBQW1CLGlDQUNsQixXQUFtQiwrQkFBK0Isb0JBQUksUUFBUTtBQUVsRSxTQUFTLGlCQUFpQixhQUEyQztBQUNuRSxNQUFJLENBQUMsWUFBWSxJQUFJLFdBQVcsR0FBRztBQUNqQyxnQkFBWSxJQUFJLGFBQWEsQ0FBQyxDQUFDO0FBQUEsRUFDakM7QUFDQSxTQUFPLFlBQVksSUFBSSxXQUFXO0FBQ3BDO0FBR0EsU0FBUyxNQUFNLElBQXNCO0FBRW5DLFVBQVEsUUFBUSxFQUFFLEtBQUss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
|
|
@@ -145,4 +145,4 @@ class Repository {
|
|
|
145
145
|
async triggerEvent(_data) {
|
|
146
146
|
}
|
|
147
147
|
}
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RiL3JlcG9zaXRvcnkudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IHN0b3JlLCB0cmFuc2xhdG9yLCBFbnRpdHlDb25zdHJ1Y3RvciwgT3B0aW9ucyB9IGZyb20gXCJAYWVyb2tpdC9zZGsvZGJcIjtcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBkYXRhIHN0cnVjdHVyZSBwYXNzZWQgdG8gdGhlIGV2ZW50IHRyaWdnZXIgbWV0aG9kIGJlZm9yZS9hZnRlciBhbiBvcGVyYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5RXZlbnQ8VD4ge1xuICAgIHJlYWRvbmx5IG9wZXJhdGlvbjogJ2NyZWF0ZScgfCAndXBkYXRlJyB8ICdkZWxldGUnO1xuICAgIHJlYWRvbmx5IHRhYmxlOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgZW50aXR5OiBQYXJ0aWFsPFQ+OyAvLyBVc2UgUGFydGlhbDxUPiBmb3IgY3JlYXRlL2RlbGV0ZSB3aGVyZSBzb21lIGZpZWxkcyBtaWdodCBiZSBtaXNzaW5nXG4gICAgcmVhZG9ubHkga2V5OiB7XG4gICAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgICAgY29sdW1uOiBzdHJpbmc7XG4gICAgICAgIHZhbHVlOiBzdHJpbmcgfCBudW1iZXI7XG4gICAgfVxuICAgIHJlYWRvbmx5IHByZXZpb3VzRW50aXR5PzogVDtcbn1cblxuXG4vLyAtLS0gUmVwb3NpdG9yeSBDbGFzcyAtLS1cblxuLyoqXG4gKiBBYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBkYXRhIGFjY2Vzcy9idXNpbmVzcyBsb2dpYywgd3JhcHBpbmcgdGhlIGBzdG9yZWAgQVBJLlxuICogSXQgaGFuZGxlcyBlbnRpdHkgbWV0YWRhdGEgbG9va3VwLCBDUlVEIG9wZXJhdGlvbnMsIHRyYW5zbGF0aW9uLCBhbmQgZXZlbnQgdHJpZ2dlcmluZy5cbiAqIEB0ZW1wbGF0ZSBUIFRoZSBlbnRpdHkgdHlwZSAobXVzdCBiZSBhbiBvYmplY3QpLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmVwb3NpdG9yeTxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj4ge1xuXG4gICAgcHJpdmF0ZSBlbnRpdHlDb25zdHJ1Y3RvcjogRW50aXR5Q29uc3RydWN0b3I7XG5cbiAgICBjb25zdHJ1Y3RvcihlbnRpdHlDb25zdHJ1Y3RvcjogRW50aXR5Q29uc3RydWN0b3IpIHtcbiAgICAgICAgdGhpcy5lbnRpdHlDb25zdHJ1Y3RvciA9IGVudGl0eUNvbnN0cnVjdG9yO1xuICAgICAgICBcbiAgICAgICAgLy8gQ2FjaGVzIGVudGl0eSBtZXRhZGF0YSAobmFtZSwgdGFibGUsIGlkKSBvbnRvIHRoZSBjb25zdHJ1Y3RvciBmdW5jdGlvbiBmb3Igc3RhdGljIGFjY2Vzc1xuXHRcdGlmICghdGhpcy5lbnRpdHlDb25zdHJ1Y3Rvci4kZW50aXR5X25hbWUpIHtcbiAgICAgICAgICAgIC8vIEFzc3VtZXMgc3RvcmUgbWV0aG9kcyByZXR1cm4gbm9uLW51bGwgc3RyaW5nc1xuXHRcdFx0dGhpcy5lbnRpdHlDb25zdHJ1Y3Rvci4kZW50aXR5X25hbWUgPSAoc3RvcmUgYXMgYW55KS5nZXRFbnRpdHlOYW1lKHRoaXMuZW50aXR5Q29uc3RydWN0b3IubmFtZSk7XG5cdFx0XHR0aGlzLmVudGl0eUNvbnN0cnVjdG9yLiR0YWJsZV9uYW1lID0gKHN0b3JlIGFzIGFueSkuZ2V0VGFibGVOYW1lKHRoaXMuZW50aXR5Q29uc3RydWN0b3IubmFtZSk7XG5cdFx0XHR0aGlzLmVudGl0eUNvbnN0cnVjdG9yLiRpZF9uYW1lID0gKHN0b3JlIGFzIGFueSkuZ2V0SWROYW1lKHRoaXMuZW50aXR5Q29uc3RydWN0b3IubmFtZSk7XG5cdFx0XHR0aGlzLmVudGl0eUNvbnN0cnVjdG9yLiRpZF9jb2x1bW4gPSAoc3RvcmUgYXMgYW55KS5nZXRJZENvbHVtbih0aGlzLmVudGl0eUNvbnN0cnVjdG9yLm5hbWUpO1xuXHRcdH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RW50aXR5TmFtZSgpOiBzdHJpbmcge1xuICAgICAgICAvLyBVc2Ugbm9uLW51bGwgYXNzZXJ0aW9uIHNpbmNlIHRoZSBjb25zdHJ1Y3RvciBndWFyYW50ZWVzIHRoZXNlIHByb3BlcnRpZXMgZXhpc3RcbiAgICAgICAgcmV0dXJuIHRoaXMuZW50aXR5Q29uc3RydWN0b3IuJGVudGl0eV9uYW1lITtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0VGFibGVOYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudGl0eUNvbnN0cnVjdG9yLiR0YWJsZV9uYW1lITtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0SWROYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudGl0eUNvbnN0cnVjdG9yLiRpZF9uYW1lITtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0SWRDb2x1bW4oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW50aXR5Q29uc3RydWN0b3IuJGlkX2NvbHVtbiE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmluZHMgYWxsIGVudGl0aWVzIG1hdGNoaW5nIHRoZSBnaXZlbiBvcHRpb25zLlxuICAgICAqL1xuICAgIHB1YmxpYyBmaW5kQWxsKG9wdGlvbnM6IE9wdGlvbnMgPSB7fSk6IFRbXSB7XG4gICAgICAgIC8vIEFzc3VtZSBzdG9yZS5saXN0IHJldHVybnMgVFtdIGJ1dCB3ZSBleHBsaWNpdGx5IGNhc3QgaXQgdG8gVFtdXG4gICAgICAgIGNvbnN0IGxpc3Q6IFRbXSA9IChzdG9yZSBhcyBhbnkpLmxpc3QodGhpcy5nZXRFbnRpdHlOYW1lKCksIG9wdGlvbnMpO1xuICAgICAgICAodHJhbnNsYXRvciBhcyBhbnkpLnRyYW5zbGF0ZUxpc3QobGlzdCwgb3B0aW9ucy5sYW5ndWFnZSwgdGhpcy5nZXRUYWJsZU5hbWUoKSk7XG4gICAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZpbmRzIGEgc2luZ2xlIGVudGl0eSBieSBpdHMgcHJpbWFyeSBrZXkgSUQuXG4gICAgICovXG4gICAgcHVibGljIGZpbmRCeUlkKGlkOiBudW1iZXIgfCBzdHJpbmcsIG9wdGlvbnM6IE9wdGlvbnMgPSB7fSk6IFQgfCB1bmRlZmluZWQge1xuICAgICAgICAvLyBBc3N1bWUgc3RvcmUuZ2V0IHJldHVybnMgVCBvciBudWxsL3VuZGVmaW5lZFxuICAgICAgICBjb25zdCBlbnRpdHk6IFQgfCBudWxsID0gKHN0b3JlIGFzIGFueSkuZ2V0KHRoaXMuZ2V0RW50aXR5TmFtZSgpLCBpZCk7XG4gICAgICAgICh0cmFuc2xhdG9yIGFzIGFueSkudHJhbnNsYXRlRW50aXR5KGVudGl0eSwgaWQsIG9wdGlvbnMubGFuZ3VhZ2UsIHRoaXMuZ2V0VGFibGVOYW1lKCkpO1xuICAgICAgICByZXR1cm4gZW50aXR5ID8/IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbmV3IGVudGl0eSBpbiB0aGUgZGF0YWJhc2UuXG4gICAgICogQHJldHVybnMgVGhlIGdlbmVyYXRlZCBJRCAoc3RyaW5nIG9yIG51bWJlcikuXG4gICAgICovXG4gICAgcHVibGljIGNyZWF0ZShlbnRpdHk6IFQpOiBzdHJpbmcgfCBudW1iZXIge1xuICAgICAgICBjb25zdCBpZCA9IChzdG9yZSBhcyBhbnkpLnNhdmUodGhpcy5nZXRFbnRpdHlOYW1lKCksIGVudGl0eSk7XG4gICAgICAgIHRoaXMudHJpZ2dlckV2ZW50KHtcbiAgICAgICAgICAgIG9wZXJhdGlvbjogXCJjcmVhdGVcIixcbiAgICAgICAgICAgIHRhYmxlOiB0aGlzLmdldFRhYmxlTmFtZSgpLFxuICAgICAgICAgICAgZW50aXR5OiBlbnRpdHksXG4gICAgICAgICAgICBrZXk6IHtcbiAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLmdldElkTmFtZSgpLFxuICAgICAgICAgICAgICAgIGNvbHVtbjogdGhpcy5nZXRJZENvbHVtbigpLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBpZFxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGlkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgYW4gZXhpc3RpbmcgZW50aXR5LlxuICAgICAqIFRoZSBlbnRpdHkgbXVzdCBjb250YWluIHRoZSBwcmltYXJ5IGtleS5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlKGVudGl0eTogVCk6IHZvaWQge1xuICAgICAgICBjb25zdCBpZE5hbWUgPSB0aGlzLmdldElkTmFtZSgpO1xuICAgICAgICBjb25zdCBpZCA9IGVudGl0eVtpZE5hbWVdIGFzIChudW1iZXIgfCBzdHJpbmcpO1xuICAgICAgICBcbiAgICAgICAgLy8gUmV0cmlldmUgdGhlIGVudGl0eSBzdGF0ZSBiZWZvcmUgdXBkYXRlIGZvciB0aGUgZXZlbnQgcGF5bG9hZFxuICAgICAgICBjb25zdCBwcmV2aW91c0VudGl0eSA9IHRoaXMuZmluZEJ5SWQoaWQpO1xuXG4gICAgICAgIChzdG9yZSBhcyBhbnkpLnVwZGF0ZSh0aGlzLmdldEVudGl0eU5hbWUoKSwgZW50aXR5KTtcbiAgICAgICAgXG4gICAgICAgIHRoaXMudHJpZ2dlckV2ZW50KHtcbiAgICAgICAgICAgIG9wZXJhdGlvbjogXCJ1cGRhdGVcIixcbiAgICAgICAgICAgIHRhYmxlOiB0aGlzLmdldFRhYmxlTmFtZSgpLFxuICAgICAgICAgICAgZW50aXR5OiBlbnRpdHksXG4gICAgICAgICAgICBwcmV2aW91c0VudGl0eTogcHJldmlvdXNFbnRpdHksXG4gICAgICAgICAgICBrZXk6IHtcbiAgICAgICAgICAgICAgICBuYW1lOiBpZE5hbWUsXG4gICAgICAgICAgICAgICAgY29sdW1uOiB0aGlzLmdldElkQ29sdW1uKCksXG4gICAgICAgICAgICAgICAgdmFsdWU6IGlkXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgdGhlIGVudGl0eSBpZiB0aGUgSUQgaXMgbnVsbC91bmRlZmluZWQsIG90aGVyd2lzZSB1cGRhdGVzIGl0LlxuICAgICAqIElmIGFuIElEIGlzIHByb3ZpZGVkIGJ1dCB0aGUgZW50aXR5IGRvZXNuJ3QgZXhpc3QsIGl0IGNyZWF0ZXMgaXQuXG4gICAgICogQHJldHVybnMgVGhlIGVudGl0eSdzIElELlxuICAgICAqL1xuICAgIHB1YmxpYyB1cHNlcnQoZW50aXR5OiBUKTogc3RyaW5nIHwgbnVtYmVyIHtcbiAgICAgICAgY29uc3QgaWQgPSBlbnRpdHlbdGhpcy5nZXRJZE5hbWUoKV07XG4gICAgICAgIFxuICAgICAgICAvLyBJZiBubyBJRCBpcyBwcmVzZW50LCBzYXZlIChjcmVhdGUpXG4gICAgICAgIGlmIChpZCA9PT0gbnVsbCB8fCBpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gKHN0b3JlIGFzIGFueSkuc2F2ZSh0aGlzLmdldEVudGl0eU5hbWUoKSwgZW50aXR5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIElEIGlzIHByZXNlbnQsIGNoZWNrIGV4aXN0ZW5jZVxuICAgICAgICBjb25zdCBleGlzdGluZ0VudGl0eSA9IChzdG9yZSBhcyBhbnkpLmdldCh0aGlzLmdldEVudGl0eU5hbWUoKSwgaWQpO1xuICAgICAgICBcbiAgICAgICAgaWYgKGV4aXN0aW5nRW50aXR5KSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZShlbnRpdHkpO1xuICAgICAgICAgICAgcmV0dXJuIGlkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gSUQgZXhpc3RzLCBidXQgZW50aXR5IGRvZXMgbm90IC0+IHNhdmUgKGNyZWF0ZSB3aXRoIHByb3ZpZGVkIElEKVxuICAgICAgICAgICAgcmV0dXJuIChzdG9yZSBhcyBhbnkpLnNhdmUodGhpcy5nZXRFbnRpdHlOYW1lKCksIGVudGl0eSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWxldGVzIGFuIGVudGl0eSBieSBpdHMgcHJpbWFyeSBrZXkgSUQuXG4gICAgICovXG4gICAgcHVibGljIGRlbGV0ZUJ5SWQoaWQ6IG51bWJlciB8IHN0cmluZyk6IHZvaWQge1xuICAgICAgICAvLyBSZXRyaWV2ZSBlbnRpdHkgYmVmb3JlIHJlbW92YWwgZm9yIHRoZSBldmVudCBwYXlsb2FkXG4gICAgICAgIGNvbnN0IGVudGl0eSA9IChzdG9yZSBhcyBhbnkpLmdldCh0aGlzLmdldEVudGl0eU5hbWUoKSwgaWQpO1xuICAgICAgICBcbiAgICAgICAgKHN0b3JlIGFzIGFueSkucmVtb3ZlKHRoaXMuZ2V0RW50aXR5TmFtZSgpLCBpZCk7XG5cbiAgICAgICAgdGhpcy50cmlnZ2VyRXZlbnQoe1xuICAgICAgICAgICAgb3BlcmF0aW9uOiBcImRlbGV0ZVwiLFxuICAgICAgICAgICAgdGFibGU6IHRoaXMuZ2V0VGFibGVOYW1lKCksXG4gICAgICAgICAgICBlbnRpdHk6IGVudGl0eSxcbiAgICAgICAgICAgIGtleToge1xuICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMuZ2V0SWROYW1lKCksXG4gICAgICAgICAgICAgICAgY29sdW1uOiB0aGlzLmdldElkQ29sdW1uKCksXG4gICAgICAgICAgICAgICAgdmFsdWU6IGlkXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvdW50cyB0aGUgbnVtYmVyIG9mIGVudGl0aWVzIG1hdGNoaW5nIHRoZSBnaXZlbiBvcHRpb25zLlxuICAgICAqL1xuICAgIHB1YmxpYyBjb3VudChvcHRpb25zPzogT3B0aW9ucyk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAoc3RvcmUgYXMgYW55KS5jb3VudCh0aGlzLmdldEVudGl0eU5hbWUoKSwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJvdGVjdGVkIG1ldGhvZCBpbnRlbmRlZCBmb3Igc3ViY2xhc3Mgb3ZlcnJpZGluZyBvciBpbnRlcm5hbCBldmVudCBoYW5kbGluZy5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgYXN5bmMgdHJpZ2dlckV2ZW50KF9kYXRhOiBFbnRpdHlFdmVudDxUPik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICAvLyBFbXB0eSBib2R5IGFzIGluIHRoZSBvcmlnaW5hbCBjb2RlXG4gICAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsZ0JBQThEO0FBeUJ2RCxNQUFlLFdBQTBDO0FBQUEsRUFJNUQsWUFBWSxtQkFBc0M7QUFDOUMsU0FBSyxvQkFBb0I7QUFHL0IsUUFBSSxDQUFDLEtBQUssa0JBQWtCLGNBQWM7QUFFekMsV0FBSyxrQkFBa0IsZUFBZ0IsZ0JBQWMsY0FBYyxLQUFLLGtCQUFrQixJQUFJO0FBQzlGLFdBQUssa0JBQWtCLGNBQWUsZ0JBQWMsYUFBYSxLQUFLLGtCQUFrQixJQUFJO0FBQzVGLFdBQUssa0JBQWtCLFdBQVksZ0JBQWMsVUFBVSxLQUFLLGtCQUFrQixJQUFJO0FBQ3RGLFdBQUssa0JBQWtCLGFBQWMsZ0JBQWMsWUFBWSxLQUFLLGtCQUFrQixJQUFJO0FBQUEsSUFDM0Y7QUFBQSxFQUNFO0FBQUEsRUFFVSxnQkFBd0I7QUFFOUIsV0FBTyxLQUFLLGtCQUFrQjtBQUFBLEVBQ2xDO0FBQUEsRUFFVSxlQUF1QjtBQUM3QixXQUFPLEtBQUssa0JBQWtCO0FBQUEsRUFDbEM7QUFBQSxFQUVVLFlBQW9CO0FBQzFCLFdBQU8sS0FBSyxrQkFBa0I7QUFBQSxFQUNsQztBQUFBLEVBRVUsY0FBc0I7QUFDNUIsV0FBTyxLQUFLLGtCQUFrQjtBQUFBLEVBQ2xDO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLTyxRQUFRLFVBQW1CLENBQUMsR0FBUTtBQUV2QyxVQUFNLE9BQWEsZ0JBQWMsS0FBSyxLQUFLLGNBQWMsR0FBRyxPQUFPO0FBQ25FLElBQUMscUJBQW1CLGNBQWMsTUFBTSxRQUFRLFVBQVUsS0FBSyxhQUFhLENBQUM7QUFDN0UsV0FBTztBQUFBLEVB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
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RiL3JlcG9zaXRvcnkudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IHN0b3JlLCB0cmFuc2xhdG9yLCBFbnRpdHlDb25zdHJ1Y3RvciwgT3B0aW9ucyB9IGZyb20gXCJAYWVyb2tpdC9zZGsvZGJcIjtcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBkYXRhIHN0cnVjdHVyZSBwYXNzZWQgdG8gdGhlIGV2ZW50IHRyaWdnZXIgbWV0aG9kIGJlZm9yZS9hZnRlciBhbiBvcGVyYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5RXZlbnQ8VD4ge1xuICAgIHJlYWRvbmx5IG9wZXJhdGlvbjogJ2NyZWF0ZScgfCAndXBkYXRlJyB8ICdkZWxldGUnO1xuICAgIHJlYWRvbmx5IHRhYmxlOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgZW50aXR5OiBQYXJ0aWFsPFQ+OyAvLyBVc2UgUGFydGlhbDxUPiBmb3IgY3JlYXRlL2RlbGV0ZSB3aGVyZSBzb21lIGZpZWxkcyBtaWdodCBiZSBtaXNzaW5nXG4gICAgcmVhZG9ubHkga2V5OiB7XG4gICAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgICAgY29sdW1uOiBzdHJpbmc7XG4gICAgICAgIHZhbHVlOiBzdHJpbmcgfCBudW1iZXI7XG4gICAgfVxuICAgIHJlYWRvbmx5IHByZXZpb3VzRW50aXR5PzogVDtcbn1cblxuXG4vLyAtLS0gUmVwb3NpdG9yeSBDbGFzcyAtLS1cblxuLyoqXG4gKiBBYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBkYXRhIGFjY2Vzcy9idXNpbmVzcyBsb2dpYywgd3JhcHBpbmcgdGhlIGBzdG9yZWAgQVBJLlxuICogSXQgaGFuZGxlcyBlbnRpdHkgbWV0YWRhdGEgbG9va3VwLCBDUlVEIG9wZXJhdGlvbnMsIHRyYW5zbGF0aW9uLCBhbmQgZXZlbnQgdHJpZ2dlcmluZy5cbiAqIEB0ZW1wbGF0ZSBUIFRoZSBlbnRpdHkgdHlwZSAobXVzdCBiZSBhbiBvYmplY3QpLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmVwb3NpdG9yeTxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj4ge1xuXG4gICAgcHJpdmF0ZSBlbnRpdHlDb25zdHJ1Y3RvcjogRW50aXR5Q29uc3RydWN0b3I7XG5cbiAgICBjb25zdHJ1Y3RvcihlbnRpdHlDb25zdHJ1Y3RvcjogRW50aXR5Q29uc3RydWN0b3IpIHtcbiAgICAgICAgdGhpcy5lbnRpdHlDb25zdHJ1Y3RvciA9IGVudGl0eUNvbnN0cnVjdG9yO1xuICAgICAgICBcbiAgICAgICAgLy8gQ2FjaGVzIGVudGl0eSBtZXRhZGF0YSAobmFtZSwgdGFibGUsIGlkKSBvbnRvIHRoZSBjb25zdHJ1Y3RvciBmdW5jdGlvbiBmb3Igc3RhdGljIGFjY2Vzc1xuXHRcdGlmICghdGhpcy5lbnRpdHlDb25zdHJ1Y3Rvci4kZW50aXR5X25hbWUpIHtcbiAgICAgICAgICAgIC8vIEFzc3VtZXMgc3RvcmUgbWV0aG9kcyByZXR1cm4gbm9uLW51bGwgc3RyaW5nc1xuXHRcdFx0dGhpcy5lbnRpdHlDb25zdHJ1Y3Rvci4kZW50aXR5X25hbWUgPSBzdG9yZS5nZXRFbnRpdHlOYW1lKHRoaXMuZW50aXR5Q29uc3RydWN0b3IubmFtZSk7XG5cdFx0XHR0aGlzLmVudGl0eUNvbnN0cnVjdG9yLiR0YWJsZV9uYW1lID0gc3RvcmUuZ2V0VGFibGVOYW1lKHRoaXMuZW50aXR5Q29uc3RydWN0b3IubmFtZSk7XG5cdFx0XHR0aGlzLmVudGl0eUNvbnN0cnVjdG9yLiRpZF9uYW1lID0gc3RvcmUuZ2V0SWROYW1lKHRoaXMuZW50aXR5Q29uc3RydWN0b3IubmFtZSk7XG5cdFx0XHR0aGlzLmVudGl0eUNvbnN0cnVjdG9yLiRpZF9jb2x1bW4gPSBzdG9yZS5nZXRJZENvbHVtbih0aGlzLmVudGl0eUNvbnN0cnVjdG9yLm5hbWUpO1xuXHRcdH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RW50aXR5TmFtZSgpOiBzdHJpbmcge1xuICAgICAgICAvLyBVc2Ugbm9uLW51bGwgYXNzZXJ0aW9uIHNpbmNlIHRoZSBjb25zdHJ1Y3RvciBndWFyYW50ZWVzIHRoZXNlIHByb3BlcnRpZXMgZXhpc3RcbiAgICAgICAgcmV0dXJuIHRoaXMuZW50aXR5Q29uc3RydWN0b3IuJGVudGl0eV9uYW1lITtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0VGFibGVOYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudGl0eUNvbnN0cnVjdG9yLiR0YWJsZV9uYW1lITtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0SWROYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudGl0eUNvbnN0cnVjdG9yLiRpZF9uYW1lITtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0SWRDb2x1bW4oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW50aXR5Q29uc3RydWN0b3IuJGlkX2NvbHVtbiE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmluZHMgYWxsIGVudGl0aWVzIG1hdGNoaW5nIHRoZSBnaXZlbiBvcHRpb25zLlxuICAgICAqL1xuICAgIHB1YmxpYyBmaW5kQWxsKG9wdGlvbnM6IE9wdGlvbnMgPSB7fSk6IFRbXSB7XG4gICAgICAgIC8vIEFzc3VtZSBzdG9yZS5saXN0IHJldHVybnMgVFtdIGJ1dCB3ZSBleHBsaWNpdGx5IGNhc3QgaXQgdG8gVFtdXG4gICAgICAgIGNvbnN0IGxpc3Q6IFRbXSA9IHN0b3JlLmxpc3QodGhpcy5nZXRFbnRpdHlOYW1lKCksIG9wdGlvbnMpO1xuICAgICAgICB0cmFuc2xhdG9yLnRyYW5zbGF0ZUxpc3QobGlzdCwgb3B0aW9ucy5sYW5ndWFnZSwgdGhpcy5nZXRUYWJsZU5hbWUoKSk7XG4gICAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZpbmRzIGEgc2luZ2xlIGVudGl0eSBieSBpdHMgcHJpbWFyeSBrZXkgSUQuXG4gICAgICovXG4gICAgcHVibGljIGZpbmRCeUlkKGlkOiBudW1iZXIgfCBzdHJpbmcsIG9wdGlvbnM6IE9wdGlvbnMgPSB7fSk6IFQgfCB1bmRlZmluZWQge1xuICAgICAgICAvLyBBc3N1bWUgc3RvcmUuZ2V0IHJldHVybnMgVCBvciBudWxsL3VuZGVmaW5lZFxuICAgICAgICBjb25zdCBlbnRpdHk6IFQgfCBudWxsID0gc3RvcmUuZ2V0KHRoaXMuZ2V0RW50aXR5TmFtZSgpLCBpZCk7XG4gICAgICAgIHRyYW5zbGF0b3IudHJhbnNsYXRlRW50aXR5KGVudGl0eSwgaWQsIG9wdGlvbnMubGFuZ3VhZ2UsIHRoaXMuZ2V0VGFibGVOYW1lKCkpO1xuICAgICAgICByZXR1cm4gZW50aXR5ID8/IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbmV3IGVudGl0eSBpbiB0aGUgZGF0YWJhc2UuXG4gICAgICogQHJldHVybnMgVGhlIGdlbmVyYXRlZCBJRCAoc3RyaW5nIG9yIG51bWJlcikuXG4gICAgICovXG4gICAgcHVibGljIGNyZWF0ZShlbnRpdHk6IFQpOiBzdHJpbmcgfCBudW1iZXIge1xuICAgICAgICBjb25zdCBpZCA9IHN0b3JlLnNhdmUodGhpcy5nZXRFbnRpdHlOYW1lKCksIGVudGl0eSk7XG4gICAgICAgIHRoaXMudHJpZ2dlckV2ZW50KHtcbiAgICAgICAgICAgIG9wZXJhdGlvbjogXCJjcmVhdGVcIixcbiAgICAgICAgICAgIHRhYmxlOiB0aGlzLmdldFRhYmxlTmFtZSgpLFxuICAgICAgICAgICAgZW50aXR5OiBlbnRpdHksXG4gICAgICAgICAgICBrZXk6IHtcbiAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLmdldElkTmFtZSgpLFxuICAgICAgICAgICAgICAgIGNvbHVtbjogdGhpcy5nZXRJZENvbHVtbigpLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBpZFxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGlkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgYW4gZXhpc3RpbmcgZW50aXR5LlxuICAgICAqIFRoZSBlbnRpdHkgbXVzdCBjb250YWluIHRoZSBwcmltYXJ5IGtleS5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlKGVudGl0eTogVCk6IHZvaWQge1xuICAgICAgICBjb25zdCBpZE5hbWUgPSB0aGlzLmdldElkTmFtZSgpO1xuICAgICAgICBjb25zdCBpZCA9IGVudGl0eVtpZE5hbWVdIGFzIChudW1iZXIgfCBzdHJpbmcpO1xuICAgICAgICBcbiAgICAgICAgLy8gUmV0cmlldmUgdGhlIGVudGl0eSBzdGF0ZSBiZWZvcmUgdXBkYXRlIGZvciB0aGUgZXZlbnQgcGF5bG9hZFxuICAgICAgICBjb25zdCBwcmV2aW91c0VudGl0eSA9IHRoaXMuZmluZEJ5SWQoaWQpO1xuXG4gICAgICAgIHN0b3JlLnVwZGF0ZSh0aGlzLmdldEVudGl0eU5hbWUoKSwgZW50aXR5KTtcbiAgICAgICAgXG4gICAgICAgIHRoaXMudHJpZ2dlckV2ZW50KHtcbiAgICAgICAgICAgIG9wZXJhdGlvbjogXCJ1cGRhdGVcIixcbiAgICAgICAgICAgIHRhYmxlOiB0aGlzLmdldFRhYmxlTmFtZSgpLFxuICAgICAgICAgICAgZW50aXR5OiBlbnRpdHksXG4gICAgICAgICAgICBwcmV2aW91c0VudGl0eTogcHJldmlvdXNFbnRpdHksXG4gICAgICAgICAgICBrZXk6IHtcbiAgICAgICAgICAgICAgICBuYW1lOiBpZE5hbWUsXG4gICAgICAgICAgICAgICAgY29sdW1uOiB0aGlzLmdldElkQ29sdW1uKCksXG4gICAgICAgICAgICAgICAgdmFsdWU6IGlkXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgdGhlIGVudGl0eSBpZiB0aGUgSUQgaXMgbnVsbC91bmRlZmluZWQsIG90aGVyd2lzZSB1cGRhdGVzIGl0LlxuICAgICAqIElmIGFuIElEIGlzIHByb3ZpZGVkIGJ1dCB0aGUgZW50aXR5IGRvZXNuJ3QgZXhpc3QsIGl0IGNyZWF0ZXMgaXQuXG4gICAgICogQHJldHVybnMgVGhlIGVudGl0eSdzIElELlxuICAgICAqL1xuICAgIHB1YmxpYyB1cHNlcnQoZW50aXR5OiBUKTogc3RyaW5nIHwgbnVtYmVyIHtcbiAgICAgICAgY29uc3QgaWQgPSBlbnRpdHlbdGhpcy5nZXRJZE5hbWUoKV07XG4gICAgICAgIFxuICAgICAgICAvLyBJZiBubyBJRCBpcyBwcmVzZW50LCBzYXZlIChjcmVhdGUpXG4gICAgICAgIGlmIChpZCA9PT0gbnVsbCB8fCBpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RvcmUuc2F2ZSh0aGlzLmdldEVudGl0eU5hbWUoKSwgZW50aXR5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIElEIGlzIHByZXNlbnQsIGNoZWNrIGV4aXN0ZW5jZVxuICAgICAgICBjb25zdCBleGlzdGluZ0VudGl0eSA9IHN0b3JlLmdldCh0aGlzLmdldEVudGl0eU5hbWUoKSwgaWQpO1xuICAgICAgICBcbiAgICAgICAgaWYgKGV4aXN0aW5nRW50aXR5KSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZShlbnRpdHkpO1xuICAgICAgICAgICAgcmV0dXJuIGlkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gSUQgZXhpc3RzLCBidXQgZW50aXR5IGRvZXMgbm90IC0+IHNhdmUgKGNyZWF0ZSB3aXRoIHByb3ZpZGVkIElEKVxuICAgICAgICAgICAgcmV0dXJuIHN0b3JlLnNhdmUodGhpcy5nZXRFbnRpdHlOYW1lKCksIGVudGl0eSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWxldGVzIGFuIGVudGl0eSBieSBpdHMgcHJpbWFyeSBrZXkgSUQuXG4gICAgICovXG4gICAgcHVibGljIGRlbGV0ZUJ5SWQoaWQ6IG51bWJlciB8IHN0cmluZyk6IHZvaWQge1xuICAgICAgICAvLyBSZXRyaWV2ZSBlbnRpdHkgYmVmb3JlIHJlbW92YWwgZm9yIHRoZSBldmVudCBwYXlsb2FkXG4gICAgICAgIGNvbnN0IGVudGl0eSA9IHN0b3JlLmdldCh0aGlzLmdldEVudGl0eU5hbWUoKSwgaWQpO1xuICAgICAgICBcbiAgICAgICAgc3RvcmUucmVtb3ZlKHRoaXMuZ2V0RW50aXR5TmFtZSgpLCBpZCk7XG5cbiAgICAgICAgdGhpcy50cmlnZ2VyRXZlbnQoe1xuICAgICAgICAgICAgb3BlcmF0aW9uOiBcImRlbGV0ZVwiLFxuICAgICAgICAgICAgdGFibGU6IHRoaXMuZ2V0VGFibGVOYW1lKCksXG4gICAgICAgICAgICBlbnRpdHk6IGVudGl0eSxcbiAgICAgICAgICAgIGtleToge1xuICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMuZ2V0SWROYW1lKCksXG4gICAgICAgICAgICAgICAgY29sdW1uOiB0aGlzLmdldElkQ29sdW1uKCksXG4gICAgICAgICAgICAgICAgdmFsdWU6IGlkXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvdW50cyB0aGUgbnVtYmVyIG9mIGVudGl0aWVzIG1hdGNoaW5nIHRoZSBnaXZlbiBvcHRpb25zLlxuICAgICAqL1xuICAgIHB1YmxpYyBjb3VudChvcHRpb25zPzogT3B0aW9ucyk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBzdG9yZS5jb3VudCh0aGlzLmdldEVudGl0eU5hbWUoKSwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJvdGVjdGVkIG1ldGhvZCBpbnRlbmRlZCBmb3Igc3ViY2xhc3Mgb3ZlcnJpZGluZyBvciBpbnRlcm5hbCBldmVudCBoYW5kbGluZy5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgYXN5bmMgdHJpZ2dlckV2ZW50KF9kYXRhOiBFbnRpdHlFdmVudDxUPik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICAvLyBFbXB0eSBib2R5IGFzIGluIHRoZSBvcmlnaW5hbCBjb2RlXG4gICAgfVxufVxu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
|
package/dist/cjs/db/store.js
CHANGED
|
@@ -74,7 +74,7 @@ class Store {
|
|
|
74
74
|
*/
|
|
75
75
|
static list(name, options) {
|
|
76
76
|
const result = DataStoreFacade.list(name, options ? JSON.stringify(options) : null);
|
|
77
|
-
return
|
|
77
|
+
return Store.parseResult(result);
|
|
78
78
|
}
|
|
79
79
|
/**
|
|
80
80
|
* Counts the number of entries based on optional filtering options.
|
|
@@ -98,7 +98,7 @@ class Store {
|
|
|
98
98
|
if (result === null || result === void 0 || result === "") {
|
|
99
99
|
return void 0;
|
|
100
100
|
}
|
|
101
|
-
return
|
|
101
|
+
return Store.parseResult(result);
|
|
102
102
|
}
|
|
103
103
|
/**
|
|
104
104
|
* Deletes an entry by its ID.
|
|
@@ -118,7 +118,7 @@ class Store {
|
|
|
118
118
|
*/
|
|
119
119
|
static find(name, example, limit = 100, offset = 0) {
|
|
120
120
|
const result = DataStoreFacade.find(name, JSON.stringify(example), limit, offset);
|
|
121
|
-
return
|
|
121
|
+
return Store.parseResult(result);
|
|
122
122
|
}
|
|
123
123
|
/**
|
|
124
124
|
* Queries all entries for a given script with pagination.
|
|
@@ -148,22 +148,22 @@ class Store {
|
|
|
148
148
|
}
|
|
149
149
|
if (arr.length === 0) {
|
|
150
150
|
const result = DataStoreFacade.query(query, null, limit, offset);
|
|
151
|
-
return
|
|
151
|
+
return Store.parseResult(result);
|
|
152
152
|
}
|
|
153
153
|
const first = arr[0];
|
|
154
154
|
if (first && typeof first === "object" && "name" in first && "type" in first) {
|
|
155
155
|
const result = DataStoreFacade.queryNamed(query, JSON.stringify(arr), limit, offset);
|
|
156
|
-
return
|
|
156
|
+
return Store.parseResult(result);
|
|
157
157
|
}
|
|
158
158
|
if (first && typeof first === "object" && "type" in first && !("name" in first)) {
|
|
159
159
|
const result = DataStoreFacade.query(query, JSON.stringify(arr), limit, offset);
|
|
160
|
-
return
|
|
160
|
+
return Store.parseResult(result);
|
|
161
161
|
}
|
|
162
162
|
if (arr.every(
|
|
163
163
|
(v) => typeof v === "string" || typeof v === "number" || typeof v === "boolean" || v instanceof Date || Array.isArray(v)
|
|
164
164
|
)) {
|
|
165
165
|
const result = DataStoreFacade.query(query, JSON.stringify(arr), limit, offset);
|
|
166
|
-
return
|
|
166
|
+
return Store.parseResult(result);
|
|
167
167
|
}
|
|
168
168
|
throw new Error("Unsupported parameter format: " + JSON.stringify(parameters));
|
|
169
169
|
}
|
|
@@ -193,22 +193,22 @@ class Store {
|
|
|
193
193
|
}
|
|
194
194
|
if (arr.length === 0) {
|
|
195
195
|
const result = DataStoreFacade.queryNative(query, null, limit, offset);
|
|
196
|
-
return
|
|
196
|
+
return Store.parseResult(result);
|
|
197
197
|
}
|
|
198
198
|
const first = arr[0];
|
|
199
199
|
if (first && typeof first === "object" && "name" in first && "type" in first) {
|
|
200
200
|
const result = DataStoreFacade.queryNativeNamed(query, JSON.stringify(arr), limit, offset);
|
|
201
|
-
return
|
|
201
|
+
return Store.parseResult(result);
|
|
202
202
|
}
|
|
203
203
|
if (first && typeof first === "object" && "type" in first && !("name" in first)) {
|
|
204
204
|
const result = DataStoreFacade.queryNative(query, JSON.stringify(arr), limit, offset);
|
|
205
|
-
return
|
|
205
|
+
return Store.parseResult(result);
|
|
206
206
|
}
|
|
207
207
|
if (arr.every(
|
|
208
208
|
(v) => typeof v === "string" || typeof v === "number" || typeof v === "boolean" || v instanceof Date || Array.isArray(v)
|
|
209
209
|
)) {
|
|
210
210
|
const result = DataStoreFacade.queryNative(query, JSON.stringify(arr), limit, offset);
|
|
211
|
-
return
|
|
211
|
+
return Store.parseResult(result);
|
|
212
212
|
}
|
|
213
213
|
throw new Error("Unsupported parameter format: " + JSON.stringify(parameters));
|
|
214
214
|
}
|
|
@@ -237,8 +237,75 @@ class Store {
|
|
|
237
237
|
static getIdColumn(name) {
|
|
238
238
|
return DataStoreFacade.getIdColumn(name);
|
|
239
239
|
}
|
|
240
|
+
/**
|
|
241
|
+
* Parse a JSON string and revive ISO date strings into JS Date objects.
|
|
242
|
+
* It handles both full ISO timestamps (with timezone) and date-only strings (YYYY-MM-DD).
|
|
243
|
+
* Returns undefined for null/empty inputs.
|
|
244
|
+
*/
|
|
245
|
+
static parseResult(result) {
|
|
246
|
+
if (result === null || result === void 0 || result === "") {
|
|
247
|
+
return void 0;
|
|
248
|
+
}
|
|
249
|
+
if (typeof result !== "string") {
|
|
250
|
+
return result;
|
|
251
|
+
}
|
|
252
|
+
const ISO_DATETIME = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+\-]\d{2}:?\d{2})$/;
|
|
253
|
+
const DATE_ONLY = /^\d{4}-\d{2}-\d{2}$/;
|
|
254
|
+
const TZ_NO_COLON = /([+\-]\d{2})(\d{2})$/;
|
|
255
|
+
const SPACE_DATETIME = /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+\-]\d{2}:?\d{2})?$/;
|
|
256
|
+
const TIME_ONLY = /^\d{2}:\d{2}:\d{2}(?:\.\d+)?$/;
|
|
257
|
+
const EPOCH_MS = /^[+\-]?\d{13}$/;
|
|
258
|
+
const EPOCH_S = /^[+\-]?\d{10}$/;
|
|
259
|
+
return JSON.parse(result, (key, value) => {
|
|
260
|
+
if (typeof value === "string") {
|
|
261
|
+
const s = value.trim();
|
|
262
|
+
if (EPOCH_MS.test(s)) {
|
|
263
|
+
const ms = parseInt(s, 10);
|
|
264
|
+
return new Date(ms);
|
|
265
|
+
}
|
|
266
|
+
if (EPOCH_S.test(s)) {
|
|
267
|
+
const ms = parseInt(s, 10) * 1e3;
|
|
268
|
+
return new Date(ms);
|
|
269
|
+
}
|
|
270
|
+
if (SPACE_DATETIME.test(s)) {
|
|
271
|
+
let v = s.replace(" ", "T");
|
|
272
|
+
if (TZ_NO_COLON.test(v)) {
|
|
273
|
+
v = v.replace(TZ_NO_COLON, "$1:$2");
|
|
274
|
+
}
|
|
275
|
+
const d = new Date(v);
|
|
276
|
+
if (!isNaN(d.getTime())) {
|
|
277
|
+
return d;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
if (TIME_ONLY.test(s)) {
|
|
281
|
+
const m = s.match(/(\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?/);
|
|
282
|
+
if (m) {
|
|
283
|
+
const hh = parseInt(m[1], 10);
|
|
284
|
+
const mm = parseInt(m[2], 10);
|
|
285
|
+
const ss = parseInt(m[3], 10);
|
|
286
|
+
const frac = m[4] ? (m[4] + "000").substring(0, 3) : "000";
|
|
287
|
+
const ms = parseInt(frac, 10);
|
|
288
|
+
const now = /* @__PURE__ */ new Date();
|
|
289
|
+
const d = new Date(Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(), hh, mm, ss, ms));
|
|
290
|
+
return d;
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
if (ISO_DATETIME.test(s) || DATE_ONLY.test(s)) {
|
|
294
|
+
let v = s;
|
|
295
|
+
if (TZ_NO_COLON.test(v)) {
|
|
296
|
+
v = v.replace(TZ_NO_COLON, "$1:$2");
|
|
297
|
+
}
|
|
298
|
+
const d = new Date(v);
|
|
299
|
+
if (!isNaN(d.getTime())) {
|
|
300
|
+
return d;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
return value;
|
|
305
|
+
});
|
|
306
|
+
}
|
|
240
307
|
}
|
|
241
308
|
if (typeof module !== "undefined") {
|
|
242
309
|
module.exports = Store;
|
|
243
310
|
}
|
|
244
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RiL3N0b3JlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBEYXRhU3RvcmVGYWNhZGUgPSBKYXZhLnR5cGUoXCJvcmcuZWNsaXBzZS5kaXJpZ2libGUuY29tcG9uZW50cy5hcGkuZGIuRGF0YVN0b3JlRmFjYWRlXCIpO1xuXG4vKipcbiAqIERlZmluZXMgdGhlIGF2YWlsYWJsZSBjb21wYXJpc29uIG9wZXJhdG9ycyBmb3IgcXVlcnkgY29uZGl0aW9ucy5cbiAqL1xuZXhwb3J0IGVudW0gT3BlcmF0b3Ige1xuXHRFUSA9IFwiPVwiLCAvLyBFcXVhbHNcblx0TkUgPSBcIjw+XCIsIC8vIE5vdCBFcXVhbHNcblx0R1QgPSBcIj5cIiwgLy8gR3JlYXRlciBUaGFuXG5cdExUID0gXCI8XCIsIC8vIExlc3MgVGhhblxuXHRHRSA9IFwiPj1cIiwgLy8gR3JlYXRlciBUaGFuIG9yIEVxdWFsc1xuXHRMRSA9IFwiPD1cIiwgLy8gTGVzcyBUaGFuIG9yIEVxdWFsc1xuXHRMSUtFID0gXCJMSUtFXCIsIC8vIFNRTCBMSUtFIG9wZXJhdG9yXG5cdEJFVFdFRU4gPSBcIkJFVFdFRU5cIiwgLy8gU1FMIEJFVFdFRU4gb3BlcmF0b3IgKHJlcXVpcmVzIHR3byB2YWx1ZXMpXG5cdElOID0gXCJJTlwiIC8vIFNRTCBJTiBvcGVyYXRvciAocmVxdWlyZXMgYSBMaXN0IG9yIEFycmF5IG9mIHZhbHVlcylcbn1cblxuLyoqXG4gKiBEZWZpbmVzIHRoZSBkaXJlY3Rpb24gZm9yIHNvcnRpbmcuXG4gKi9cbmV4cG9ydCBlbnVtIERpcmVjdGlvbiB7XG5cdEFTQyA9IFwiQVNDXCIsIC8vIEFzY2VuZGluZ1xuXHRERVNDID0gXCJERVNDXCIgLy8gRGVzY2VuZGluZ1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBzaW5nbGUgY29uZGl0aW9uIGZvciBmaWx0ZXJpbmcgZGF0YS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25kaXRpb24ge1xuXHRwcm9wZXJ0eU5hbWU6IHN0cmluZyxcblx0b3BlcmF0b3I6IE9wZXJhdG9yLFxuXHR2YWx1ZTogYW55IHwgYW55W11cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgc2luZ2xlIHNvcnRpbmcgaW5zdHJ1Y3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU29ydCB7XG5cdHByb3BlcnR5TmFtZTogc3RyaW5nLFxuXHRkaXJlY3Rpb246IERpcmVjdGlvblxufVxuXG4vKipcbiAqIERlZmluZXMgb3B0aW9uYWwgcGFyYW1ldGVycyBmb3IgbGlzdCBhbmQgY291bnQgb3BlcmF0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcHRpb25zIHtcblx0Y29uZGl0aW9ucz86IENvbmRpdGlvbltdLFxuXHRzb3J0cz86IFNvcnRbXSxcblx0bGltaXQ/OiBudW1iZXIsXG5cdG9mZnNldD86IG51bWJlcixcblx0bGFuZ3VhZ2U/OiBzdHJpbmdcbn1cblxuaW1wb3J0IHsgVHlwZWRRdWVyeVBhcmFtZXRlciwgTmFtZWRRdWVyeVBhcmFtZXRlciB9IGZyb20gJy4vcXVlcnknO1xuXG4vKipcbiAqIEZhY2FkZSBjbGFzcyBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgdW5kZXJseWluZyBEaXJpZ2libGUgRGF0YSBTdG9yZS5cbiAqIEFsbCBtZXRob2RzIHNlcmlhbGl6ZS9kZXNlcmlhbGl6ZSBKYXZhU2NyaXB0IG9iamVjdHMgdG8vZnJvbSBKU09OIHN0cmluZ3NcbiAqIGJlZm9yZSBpbnRlcmFjdGluZyB3aXRoIHRoZSBuYXRpdmUgSmF2YSBmYWNhZGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdG9yZSB7XG5cblx0LyoqXG5cdCAqIFNhdmVzIGEgbmV3IGVudHJ5IHRvIHRoZSBkYXRhIHN0b3JlLlxuXHQgKiBAcGFyYW0gbmFtZSBUaGUgZW50aXR5L3RhYmxlIG5hbWUuXG5cdCAqIEBwYXJhbSBlbnRyeSBUaGUgSmF2YVNjcmlwdCBvYmplY3QgdG8gc2F2ZS5cblx0ICogQHJldHVybnMgVGhlIElEIG9mIHRoZSBuZXdseSBjcmVhdGVkIGVudHJ5IChzdHJpbmcgb3IgbnVtYmVyKS5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgc2F2ZShuYW1lOiBzdHJpbmcsIGVudHJ5OiBhbnkpOiBzdHJpbmcgfCBudW1iZXIge1xuXHRcdHJldHVybiBEYXRhU3RvcmVGYWNhZGUuc2F2ZShuYW1lLCBKU09OLnN0cmluZ2lmeShlbnRyeSkpO1xuXHR9XG5cdFxuXHQvKipcblx0ICogSW5zZXJ0cyBhIG5ldyBlbnRyeSBvciB1cGRhdGVzIGFuIGV4aXN0aW5nIG9uZSBpZiB0aGUgSUQgaXMgcHJlc2VudC5cblx0ICogQHBhcmFtIG5hbWUgVGhlIGVudGl0eS90YWJsZSBuYW1lLlxuXHQgKiBAcGFyYW0gZW50cnkgVGhlIEphdmFTY3JpcHQgb2JqZWN0IHRvIGluc2VydC91cGRhdGUuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIHVwc2VydChuYW1lOiBzdHJpbmcsIGVudHJ5OiBhbnkpOiB2b2lkIHtcblx0XHREYXRhU3RvcmVGYWNhZGUudXBzZXJ0KG5hbWUsIEpTT04uc3RyaW5naWZ5KGVudHJ5KSk7XG5cdH1cblx0XG5cdC8qKlxuXHQgKiBVcGRhdGVzIGFuIGV4aXN0aW5nIGVudHJ5LlxuXHQgKiBAcGFyYW0gbmFtZSBUaGUgZW50aXR5L3RhYmxlIG5hbWUuXG5cdCAqIEBwYXJhbSBlbnRyeSBUaGUgSmF2YVNjcmlwdCBvYmplY3Qgd2l0aCB0aGUgSUQgYW5kIHVwZGF0ZWQgZGF0YS5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgdXBkYXRlKG5hbWU6IHN0cmluZywgZW50cnk6IGFueSk6IHZvaWQge1xuXHRcdERhdGFTdG9yZUZhY2FkZS51cGRhdGUobmFtZSwgSlNPTi5zdHJpbmdpZnkoZW50cnkpKTtcblx0fVxuXHRcblx0LyoqXG5cdCAqIExpc3RzIGVudHJpZXMgYmFzZWQgb24gb3B0aW9uYWwgZmlsdGVyaW5nLCBzb3J0aW5nLCBhbmQgcGFnaW5hdGlvbiBvcHRpb25zLlxuXHQgKiBAcGFyYW0gbmFtZSBUaGUgZW50aXR5L3RhYmxlIG5hbWUuXG5cdCAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbmFsIHtAbGluayBPcHRpb25zfSBmb3IgcXVlcnkgZXhlY3V0aW9uLlxuXHQgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBKYXZhU2NyaXB0IG9iamVjdHMuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGxpc3QobmFtZTogc3RyaW5nLCBvcHRpb25zPzogT3B0aW9ucyk6IGFueVtdIHtcblx0XHRjb25zdCByZXN1bHQgPSBEYXRhU3RvcmVGYWNhZGUubGlzdChuYW1lLCBvcHRpb25zID8gSlNPTi5zdHJpbmdpZnkob3B0aW9ucykgOiBudWxsKTtcblx0XHRyZXR1cm4gSlNPTi5wYXJzZShyZXN1bHQpO1xuXHR9XG5cdFxuXHQvKipcblx0ICogQ291bnRzIHRoZSBudW1iZXIgb2YgZW50cmllcyBiYXNlZCBvbiBvcHRpb25hbCBmaWx0ZXJpbmcgb3B0aW9ucy5cblx0ICogQHBhcmFtIG5hbWUgVGhlIGVudGl0eS90YWJsZSBuYW1lLlxuXHQgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25hbCB7QGxpbmsgT3B0aW9uc30gZm9yIHF1ZXJ5IGV4ZWN1dGlvbi5cblx0ICogQHJldHVybnMgVGhlIGNvdW50IG9mIG1hdGNoaW5nIGVudHJpZXMuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGNvdW50KG5hbWU6IHN0cmluZywgb3B0aW9ucz86IE9wdGlvbnMpOiBudW1iZXIge1xuXHRcdGNvbnN0IG9wdGlvbnNTdHJpbmcgPSBvcHRpb25zID8gSlNPTi5zdHJpbmdpZnkob3B0aW9ucykgOiBudWxsO1xuXHRcdGNvbnN0IHJlc3VsdCA9IERhdGFTdG9yZUZhY2FkZS5jb3VudChuYW1lLCBvcHRpb25zU3RyaW5nKTtcblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlcyBhIHNpbmdsZSBlbnRyeSBieSBpdHMgSUQuXG5cdCAqIEBwYXJhbSBuYW1lIFRoZSBlbnRpdHkvdGFibGUgbmFtZS5cblx0ICogQHBhcmFtIGlkIFRoZSBJRCBvZiB0aGUgZW50cnkuXG5cdCAqIEByZXR1cm5zIFRoZSBlbnRyeSBvYmplY3QsIG9yIHVuZGVmaW5lZCBpZiBub3QgZm91bmQuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGdldChuYW1lOiBzdHJpbmcsIGlkOiBhbnkpOiBhbnkgfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IHJlc3VsdCA9IERhdGFTdG9yZUZhY2FkZS5nZXQobmFtZSwgaWQpO1xuXHRcdC8vIEFzc3VtaW5nIHRoZSBuYXRpdmUgQVBJIHJldHVybnMgbnVsbC91bmRlZmluZWQgb3IgYW4gZW1wdHkgSlNPTiBzdHJpbmcgaWYgbm90IGZvdW5kLCBcblx0XHQvLyBvdGhlcndpc2UgSlNPTi5wYXJzZSBoYW5kbGVzIHRoZSBjb252ZXJzaW9uLlxuXHRcdGlmIChyZXN1bHQgPT09IG51bGwgfHwgcmVzdWx0ID09PSB1bmRlZmluZWQgfHwgcmVzdWx0ID09PSBcIlwiKSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0XHRyZXR1cm4gSlNPTi5wYXJzZShyZXN1bHQpO1xuXHR9O1xuXG5cdC8qKlxuXHQgKiBEZWxldGVzIGFuIGVudHJ5IGJ5IGl0cyBJRC5cblx0ICogQHBhcmFtIG5hbWUgVGhlIGVudGl0eS90YWJsZSBuYW1lLlxuXHQgKiBAcGFyYW0gaWQgVGhlIElEIG9mIHRoZSBlbnRyeSB0byByZW1vdmUuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIHJlbW92ZShuYW1lOiBzdHJpbmcsIGlkOiBhbnkpOiB2b2lkIHtcblx0XHREYXRhU3RvcmVGYWNhZGUuZGVsZXRlRW50cnkobmFtZSwgaWQpO1xuXHR9XG5cdFxuXHQvKipcblx0ICogRmluZHMgZW50cmllcyBtYXRjaGluZyBhbiBleGFtcGxlIG9iamVjdCAocXVlcnktYnktZXhhbXBsZSkuXG5cdCAqIEBwYXJhbSBuYW1lIFRoZSBlbnRpdHkvdGFibGUgbmFtZS5cblx0ICogQHBhcmFtIGV4YW1wbGUgQW4gb2JqZWN0IGNvbnRhaW5pbmcgcHJvcGVydGllcyB0byBtYXRjaC5cblx0ICogQHBhcmFtIGxpbWl0IE1heGltdW0gbnVtYmVyIG9mIHJlc3VsdHMgdG8gcmV0dXJuLlxuXHQgKiBAcGFyYW0gb2Zmc2V0IE51bWJlciBvZiByZXN1bHRzIHRvIHNraXAuXG5cdCAqIEByZXR1cm5zIEFuIGFycmF5IG9mIG1hdGNoaW5nIEphdmFTY3JpcHQgb2JqZWN0cy5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgZmluZChuYW1lOiBzdHJpbmcsIGV4YW1wbGU6IGFueSwgbGltaXQ6IG51bWJlciA9IDEwMCwgb2Zmc2V0OiBudW1iZXIgPSAwKTogYW55W10ge1xuXHRcdGNvbnN0IHJlc3VsdCA9IERhdGFTdG9yZUZhY2FkZS5maW5kKG5hbWUsIEpTT04uc3RyaW5naWZ5KGV4YW1wbGUpLCBsaW1pdCwgb2Zmc2V0KTtcblx0XHRyZXR1cm4gSlNPTi5wYXJzZShyZXN1bHQpO1xuXHR9XG5cdFxuXHQvKipcblx0ICogUXVlcmllcyBhbGwgZW50cmllcyBmb3IgYSBnaXZlbiBzY3JpcHQgd2l0aCBwYWdpbmF0aW9uLlxuXHQgKiBAcGFyYW0gcXVlcnkgVGhlIHF1ZXJ5IHNjcmlwdC5cblx0ICogQHBhcmFtIGxpbWl0IE1heGltdW0gbnVtYmVyIG9mIHJlc3VsdHMgdG8gcmV0dXJuLlxuXHQgKiBAcGFyYW0gb2Zmc2V0IE51bWJlciBvZiByZXN1bHRzIHRvIHNraXAuXG5cdCAqIEByZXR1cm5zIEFuIGFycmF5IG9mIEphdmFTY3JpcHQgb2JqZWN0cy5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgcXVlcnkocXVlcnk6IHN0cmluZywgcGFyYW1ldGVycz86IChzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgRGF0ZSB8IFR5cGVkUXVlcnlQYXJhbWV0ZXIgfCBOYW1lZFF1ZXJ5UGFyYW1ldGVyKVtdLCBsaW1pdDogbnVtYmVyID0gMTAwLCBvZmZzZXQ6IG51bWJlciA9IDApOiBhbnlbXSB7XG5cdFx0bGV0IGFycjogYW55W10gPSBbXTtcblx0ICAgIGlmIChwYXJhbWV0ZXJzID09IG51bGwpIHtcblx0ICAgICAgYXJyID0gW107XG5cdCAgICB9IGVsc2UgaWYgKHR5cGVvZiBwYXJhbWV0ZXJzID09PSBcInN0cmluZ1wiKSB7XG5cdCAgICAgIHRyeSB7XG5cdCAgICAgICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShwYXJhbWV0ZXJzKTtcblx0ICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkocGFyc2VkKSkge1xuXHQgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW5wdXQgcGFyYW1ldGVyIHN0cmluZyBtdXN0IHJlcHJlc2VudCBhIEpTT04gYXJyYXlcIik7XG5cdCAgICAgICAgfVxuXHQgICAgICAgIGFyciA9IHBhcnNlZDtcblx0ICAgICAgfSBjYXRjaCAoZSkge1xuXHQgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgSlNPTiBwYXJhbWV0ZXJzOiBcIiArIGUpO1xuXHQgICAgICB9XG5cdCAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocGFyYW1ldGVycykpIHtcblx0ICAgICAgYXJyID0gcGFyYW1ldGVycztcblx0ICAgIH0gZWxzZSB7XG5cdCAgICAgIHRocm93IG5ldyBFcnJvcihcIlBhcmFtZXRlcnMgbXVzdCBiZSBlaXRoZXIgYW4gYXJyYXkgb3IgYSBKU09OIHN0cmluZ1wiKTtcblx0ICAgIH1cblxuXHQgICAgaWYgKGFyci5sZW5ndGggPT09IDApIHtcblx0XHQgIGNvbnN0IHJlc3VsdCA9IERhdGFTdG9yZUZhY2FkZS5xdWVyeShxdWVyeSwgbnVsbCwgbGltaXQsIG9mZnNldCk7XG5cdFx0ICByZXR1cm4gSlNPTi5wYXJzZShyZXN1bHQpO1xuXHQgICAgfVxuXG5cdCAgICBjb25zdCBmaXJzdCA9IGFyclswXTtcblxuXHQgICAgLy8gTmFtZWRRdWVyeVBhcmFtZXRlciAoaGFzIG5hbWUgKyB0eXBlKVxuXHQgICAgaWYgKGZpcnN0ICYmIHR5cGVvZiBmaXJzdCA9PT0gXCJvYmplY3RcIiAmJiBcIm5hbWVcIiBpbiBmaXJzdCAmJiBcInR5cGVcIiBpbiBmaXJzdCkge1xuXHRcdCAgY29uc3QgcmVzdWx0ID0gRGF0YVN0b3JlRmFjYWRlLnF1ZXJ5TmFtZWQocXVlcnksIEpTT04uc3RyaW5naWZ5KGFyciksIGxpbWl0LCBvZmZzZXQpO1xuXHRcdCAgcmV0dXJuIEpTT04ucGFyc2UocmVzdWx0KTtcblx0ICAgIH1cblxuXHQgICAgLy8gVHlwZWRRdWVyeVBhcmFtZXRlciAoaGFzIHR5cGUsIG5vIG5hbWUpXG5cdCAgICBpZiAoZmlyc3QgJiYgdHlwZW9mIGZpcnN0ID09PSBcIm9iamVjdFwiICYmIFwidHlwZVwiIGluIGZpcnN0ICYmICEoXCJuYW1lXCIgaW4gZmlyc3QpKSB7XG5cdFx0ICBjb25zdCByZXN1bHQgPSBEYXRhU3RvcmVGYWNhZGUucXVlcnkocXVlcnksIEpTT04uc3RyaW5naWZ5KGFyciksIGxpbWl0LCBvZmZzZXQpO1xuXHRcdCAgcmV0dXJuIEpTT04ucGFyc2UocmVzdWx0KTtcblx0ICAgIH1cblxuXHQgICAgLy8gUHJpbWl0aXZlIGFycmF5XG5cdCAgICBpZiAoXG5cdCAgICAgIGFyci5ldmVyeShcblx0ICAgICAgICAodikgPT5cblx0ICAgICAgICAgIHR5cGVvZiB2ID09PSBcInN0cmluZ1wiIHx8XG5cdCAgICAgICAgICB0eXBlb2YgdiA9PT0gXCJudW1iZXJcIiB8fFxuXHQgICAgICAgICAgdHlwZW9mIHYgPT09IFwiYm9vbGVhblwiIHx8XG5cdCAgICAgICAgICB2IGluc3RhbmNlb2YgRGF0ZVx0fHxcblx0XHQgIFx0ICBBcnJheS5pc0FycmF5KHYpXG5cdCAgICAgIClcblx0ICAgICkge1xuXHRcdCAgY29uc3QgcmVzdWx0ID0gRGF0YVN0b3JlRmFjYWRlLnF1ZXJ5KHF1ZXJ5LCBKU09OLnN0cmluZ2lmeShhcnIpLCBsaW1pdCwgb2Zmc2V0KTtcblx0XHQgIHJldHVybiBKU09OLnBhcnNlKHJlc3VsdCk7XG5cdCAgICB9XG5cblx0ICAgIHRocm93IG5ldyBFcnJvcihcIlVuc3VwcG9ydGVkIHBhcmFtZXRlciBmb3JtYXQ6IFwiICsgSlNPTi5zdHJpbmdpZnkocGFyYW1ldGVycykpO1xuXHR9XG5cdFxuXHQvKipcblx0ICogUXVlcmllcyBhbGwgZW50cmllcyBmb3IgYSBnaXZlbiBlbnRpdHkgbmFtZSB3aXRob3V0IHBhZ2luYXRpb24uXG5cdCAqIEBwYXJhbSBxdWVyeSBUaGUgZW50aXR5L3RhYmxlIG5hbWUuXG5cdCAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGFsbCBKYXZhU2NyaXB0IG9iamVjdHMuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIHF1ZXJ5TmF0aXZlKHF1ZXJ5OiBzdHJpbmcsIHBhcmFtZXRlcnM/OiAoc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IERhdGUgfCBUeXBlZFF1ZXJ5UGFyYW1ldGVyIHwgTmFtZWRRdWVyeVBhcmFtZXRlcilbXSwgbGltaXQ6IG51bWJlciA9IDEwMCwgb2Zmc2V0OiBudW1iZXIgPSAwKTogYW55W10ge1xuXHRcdGxldCBhcnI6IGFueVtdID0gW107XG5cdFx0aWYgKHBhcmFtZXRlcnMgPT0gbnVsbCkge1xuXHQgICAgICBhcnIgPSBbXTtcblx0ICAgIH0gZWxzZSBpZiAodHlwZW9mIHBhcmFtZXRlcnMgPT09IFwic3RyaW5nXCIpIHtcblx0ICAgICAgdHJ5IHtcblx0ICAgICAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKHBhcmFtZXRlcnMpO1xuXHQgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShwYXJzZWQpKSB7XG5cdCAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnB1dCBwYXJhbWV0ZXIgc3RyaW5nIG11c3QgcmVwcmVzZW50IGEgSlNPTiBhcnJheVwiKTtcblx0ICAgICAgICB9XG5cdCAgICAgICAgYXJyID0gcGFyc2VkO1xuXHQgICAgICB9IGNhdGNoIChlKSB7XG5cdCAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBKU09OIHBhcmFtZXRlcnM6IFwiICsgZSk7XG5cdCAgICAgIH1cblx0ICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShwYXJhbWV0ZXJzKSkge1xuXHQgICAgICBhcnIgPSBwYXJhbWV0ZXJzO1xuXHQgICAgfSBlbHNlIHtcblx0ICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUGFyYW1ldGVycyBtdXN0IGJlIGVpdGhlciBhbiBhcnJheSBvciBhIEpTT04gc3RyaW5nXCIpO1xuXHQgICAgfVxuXG5cdCAgICBpZiAoYXJyLmxlbmd0aCA9PT0gMCkge1xuXHRcdCAgY29uc3QgcmVzdWx0ID0gRGF0YVN0b3JlRmFjYWRlLnF1ZXJ5TmF0aXZlKHF1ZXJ5LCBudWxsLCBsaW1pdCwgb2Zmc2V0KTtcblx0XHQgIHJldHVybiBKU09OLnBhcnNlKHJlc3VsdCk7XG5cdCAgICB9XG5cblx0ICAgIGNvbnN0IGZpcnN0ID0gYXJyWzBdO1xuXG5cdCAgICAvLyBOYW1lZFF1ZXJ5UGFyYW1ldGVyIChoYXMgbmFtZSArIHR5cGUpXG5cdCAgICBpZiAoZmlyc3QgJiYgdHlwZW9mIGZpcnN0ID09PSBcIm9iamVjdFwiICYmIFwibmFtZVwiIGluIGZpcnN0ICYmIFwidHlwZVwiIGluIGZpcnN0KSB7XG5cdFx0ICBjb25zdCByZXN1bHQgPSBEYXRhU3RvcmVGYWNhZGUucXVlcnlOYXRpdmVOYW1lZChxdWVyeSwgSlNPTi5zdHJpbmdpZnkoYXJyKSwgbGltaXQsIG9mZnNldCk7XG5cdFx0ICByZXR1cm4gSlNPTi5wYXJzZShyZXN1bHQpO1xuXHQgICAgfVxuXG5cdCAgICAvLyBUeXBlZFF1ZXJ5UGFyYW1ldGVyIChoYXMgdHlwZSwgbm8gbmFtZSlcblx0ICAgIGlmIChmaXJzdCAmJiB0eXBlb2YgZmlyc3QgPT09IFwib2JqZWN0XCIgJiYgXCJ0eXBlXCIgaW4gZmlyc3QgJiYgIShcIm5hbWVcIiBpbiBmaXJzdCkpIHtcblx0XHQgIGNvbnN0IHJlc3VsdCA9IERhdGFTdG9yZUZhY2FkZS5xdWVyeU5hdGl2ZShxdWVyeSwgSlNPTi5zdHJpbmdpZnkoYXJyKSwgbGltaXQsIG9mZnNldCk7XG5cdFx0ICByZXR1cm4gSlNPTi5wYXJzZShyZXN1bHQpO1xuXHQgICAgfVxuXG5cdCAgICAvLyBQcmltaXRpdmUgYXJyYXlcblx0ICAgIGlmIChcblx0ICAgICAgYXJyLmV2ZXJ5KFxuXHQgICAgICAgICh2KSA9PlxuXHQgICAgICAgICAgdHlwZW9mIHYgPT09IFwic3RyaW5nXCIgfHxcblx0ICAgICAgICAgIHR5cGVvZiB2ID09PSBcIm51bWJlclwiIHx8XG5cdCAgICAgICAgICB0eXBlb2YgdiA9PT0gXCJib29sZWFuXCIgfHxcblx0ICAgICAgICAgIHYgaW5zdGFuY2VvZiBEYXRlIHx8XG5cdFx0XHQgIEFycmF5LmlzQXJyYXkodilcblx0ICAgICAgKVxuXHQgICAgKSB7XG5cdFx0ICBjb25zdCByZXN1bHQgPSBEYXRhU3RvcmVGYWNhZGUucXVlcnlOYXRpdmUocXVlcnksIEpTT04uc3RyaW5naWZ5KGFyciksIGxpbWl0LCBvZmZzZXQpO1xuXHRcdCAgcmV0dXJuIEpTT04ucGFyc2UocmVzdWx0KTtcblx0ICAgIH1cblxuXHQgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5zdXBwb3J0ZWQgcGFyYW1ldGVyIGZvcm1hdDogXCIgKyBKU09OLnN0cmluZ2lmeShwYXJhbWV0ZXJzKSk7XG5cdH1cblx0XG5cdC8vIC0tLSBNZXRhZGF0YSBHZXR0ZXJzIC0tLVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBuYW1lIG9mIHRoZSBlbnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBzdG9yZSBuYW1lLlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyBnZXRFbnRpdHlOYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIERhdGFTdG9yZUZhY2FkZS5nZXRFbnRpdHlOYW1lKG5hbWUpO1xuXHR9XG5cdFxuXHQvKipcblx0ICogR2V0cyB0aGUgdW5kZXJseWluZyBkYXRhYmFzZSB0YWJsZSBuYW1lIGZvciB0aGUgZW50aXR5LlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyBnZXRUYWJsZU5hbWUobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gRGF0YVN0b3JlRmFjYWRlLmdldFRhYmxlTmFtZShuYW1lKTtcblx0fVxuXHRcdFxuXHQvKipcblx0ICogR2V0cyB0aGUgcHJvcGVydHkgbmFtZSB1c2VkIGFzIHRoZSBJRCBmaWVsZCBpbiB0aGUgZW50aXR5IG9iamVjdC5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgZ2V0SWROYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIERhdGFTdG9yZUZhY2FkZS5nZXRJZE5hbWUobmFtZSk7XG5cdH1cblx0XHRcdFxuXHQvKipcblx0ICogR2V0cyB0aGUgdW5kZXJseWluZyBkYXRhYmFzZSBjb2x1bW4gbmFtZSB1c2VkIGZvciB0aGUgSUQgZmllbGQuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGdldElkQ29sdW1uKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIERhdGFTdG9yZUZhY2FkZS5nZXRJZENvbHVtbihuYW1lKTtcblx0fVxuXG59XG5cbi8vIEB0cy1pZ25vcmVcbmlmICh0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJykge1xuXHQvLyBAdHMtaWdub3JlXG5cdG1vZHVsZS5leHBvcnRzID0gU3RvcmU7XG59Il0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BQU0sa0JBQWtCLEtBQUssS0FBSyx5REFBeUQ7QUFLcEYsSUFBSyxXQUFMLGtCQUFLQSxjQUFMO0FBQ04sRUFBQUEsVUFBQSxRQUFLO0FBQ0wsRUFBQUEsVUFBQSxRQUFLO0FBQ0wsRUFBQUEsVUFBQSxRQUFLO0FBQ0wsRUFBQUEsVUFBQSxRQUFLO0FBQ0wsRUFBQUEsVUFBQSxRQUFLO0FBQ0wsRUFBQUEsVUFBQSxRQUFLO0FBQ0wsRUFBQUEsVUFBQSxVQUFPO0FBQ1AsRUFBQUEsVUFBQSxhQUFVO0FBQ1YsRUFBQUEsVUFBQSxRQUFLO0FBVE0sU0FBQUE7QUFBQSxHQUFBO0FBZUwsSUFBSyxZQUFM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UUFDdEU7QUFDQSxjQUFNO0FBQUEsTUFDUixTQUFTLEdBQUc7QUFDVixjQUFNLElBQUksTUFBTSw4QkFBOEIsQ0FBQztBQUFBLE1BQ2pEO0FBQUEsSUFDRixXQUFXLE1BQU0sUUFBUSxVQUFVLEdBQUc7QUFDcEMsWUFBTTtBQUFBLElBQ1IsT0FBTztBQUNMLFlBQU0sSUFBSSxNQUFNLHFEQUFxRDtBQUFBLElBQ3ZFO0FBRUEsUUFBSSxJQUFJLFdBQVcsR0FBRztBQUN2QixZQUFNLFNBQVMsZ0JBQWdCLFlBQVksT0FBTyxNQUFNLE9BQU8sTUFBTTtBQUNyRSxhQUFPLEtBQUssTUFBTSxNQUFNO0FBQUEsSUFDdkI7QUFFQSxVQUFNLFFBQVEsSUFBSSxDQUFDO0FBR25CLFFBQUksU0FBUyxPQUFPLFVBQVUsWUFBWSxVQUFVLFNBQVMsVUFBVSxPQUFPO0FBQy9FLFlBQU0sU0FBUyxnQkFBZ0IsaUJBQWlCLE9BQU8sS0FBSyxVQUFVLEdBQUcsR0FBRyxPQUFPLE1BQU07QUFDekYsYUFBTyxLQUFLLE1BQU0sTUFBTTtBQUFBLElBQ3ZCO0FBR0EsUUFBSSxTQUFTLE9BQU8sVUFBVSxZQUFZLFVBQVUsU0FBUyxFQUFFLFVBQVUsUUFBUTtBQUNsRixZQUFNLFNBQVMsZ0JBQWdCLFlBQVksT0FBTyxLQUFLLFVBQVUsR0FBRyxHQUFHLE9BQU8sTUFBTTtBQUNwRixhQUFPLEtBQUssTUFBTSxNQUFNO0FBQUEsSUFDdkI7QUFHQSxRQUNFLElBQUk7QUFBQSxNQUNGLENBQUMsTUFDQyxPQUFPLE1BQU0sWUFDYixPQUFPLE1BQU0sWUFDYixPQUFPLE1BQU0sYUFDYixhQUFhLFFBQ25CLE1BQU0sUUFBUSxDQUFDO0FBQUEsSUFDYixHQUNBO0FBQ0gsWUFBTSxTQUFTLGdCQUFnQixZQUFZLE9BQU8sS0FBSyxVQUFVLEdBQUcsR0FBRyxPQUFPLE1BQU07QUFDcEYsYUFBTyxLQUFLLE1BQU0sTUFBTTtBQUFBLElBQ3ZCO0FBRUEsVUFBTSxJQUFJLE1BQU0sbUNBQW1DLEtBQUssVUFBVSxVQUFVLENBQUM7QUFBQSxFQUNqRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxPQUFjLGNBQWMsTUFBc0I7QUFDakQsV0FBTyxnQkFBZ0IsY0FBYyxJQUFJO0FBQUEsRUFDMUM7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBLE9BQWMsYUFBYSxNQUFzQjtBQUNoRCxXQUFPLGdCQUFnQixhQUFhLElBQUk7QUFBQSxFQUN6QztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS0EsT0FBYyxVQUFVLE1BQXNCO0FBQzdDLFdBQU8sZ0JBQWdCLFVBQVUsSUFBSTtBQUFBLEVBQ3RDO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQSxPQUFjLFlBQVksTUFBc0I7QUFDL0MsV0FBTyxnQkFBZ0IsWUFBWSxJQUFJO0FBQUEsRUFDeEM7QUFFRDtBQUdBLElBQUksT0FBTyxXQUFXLGFBQWE7QUFFbEMsU0FBTyxVQUFVO0FBQ2xCOyIsCiAgIm5hbWVzIjogWyJPcGVyYXRvciIsICJEaXJlY3Rpb24iXQp9Cg==
|
|
311
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RiL3N0b3JlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBEYXRhU3RvcmVGYWNhZGUgPSBKYXZhLnR5cGUoXCJvcmcuZWNsaXBzZS5kaXJpZ2libGUuY29tcG9uZW50cy5hcGkuZGIuRGF0YVN0b3JlRmFjYWRlXCIpO1xuXG4vKipcbiAqIERlZmluZXMgdGhlIGF2YWlsYWJsZSBjb21wYXJpc29uIG9wZXJhdG9ycyBmb3IgcXVlcnkgY29uZGl0aW9ucy5cbiAqL1xuZXhwb3J0IGVudW0gT3BlcmF0b3Ige1xuXHRFUSA9IFwiPVwiLCAvLyBFcXVhbHNcblx0TkUgPSBcIjw+XCIsIC8vIE5vdCBFcXVhbHNcblx0R1QgPSBcIj5cIiwgLy8gR3JlYXRlciBUaGFuXG5cdExUID0gXCI8XCIsIC8vIExlc3MgVGhhblxuXHRHRSA9IFwiPj1cIiwgLy8gR3JlYXRlciBUaGFuIG9yIEVxdWFsc1xuXHRMRSA9IFwiPD1cIiwgLy8gTGVzcyBUaGFuIG9yIEVxdWFsc1xuXHRMSUtFID0gXCJMSUtFXCIsIC8vIFNRTCBMSUtFIG9wZXJhdG9yXG5cdEJFVFdFRU4gPSBcIkJFVFdFRU5cIiwgLy8gU1FMIEJFVFdFRU4gb3BlcmF0b3IgKHJlcXVpcmVzIHR3byB2YWx1ZXMpXG5cdElOID0gXCJJTlwiIC8vIFNRTCBJTiBvcGVyYXRvciAocmVxdWlyZXMgYSBMaXN0IG9yIEFycmF5IG9mIHZhbHVlcylcbn1cblxuLyoqXG4gKiBEZWZpbmVzIHRoZSBkaXJlY3Rpb24gZm9yIHNvcnRpbmcuXG4gKi9cbmV4cG9ydCBlbnVtIERpcmVjdGlvbiB7XG5cdEFTQyA9IFwiQVNDXCIsIC8vIEFzY2VuZGluZ1xuXHRERVNDID0gXCJERVNDXCIgLy8gRGVzY2VuZGluZ1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBzaW5nbGUgY29uZGl0aW9uIGZvciBmaWx0ZXJpbmcgZGF0YS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25kaXRpb24ge1xuXHRwcm9wZXJ0eU5hbWU6IHN0cmluZyxcblx0b3BlcmF0b3I6IE9wZXJhdG9yLFxuXHR2YWx1ZTogYW55IHwgYW55W11cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgc2luZ2xlIHNvcnRpbmcgaW5zdHJ1Y3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU29ydCB7XG5cdHByb3BlcnR5TmFtZTogc3RyaW5nLFxuXHRkaXJlY3Rpb246IERpcmVjdGlvblxufVxuXG4vKipcbiAqIERlZmluZXMgb3B0aW9uYWwgcGFyYW1ldGVycyBmb3IgbGlzdCBhbmQgY291bnQgb3BlcmF0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcHRpb25zIHtcblx0Y29uZGl0aW9ucz86IENvbmRpdGlvbltdLFxuXHRzb3J0cz86IFNvcnRbXSxcblx0bGltaXQ/OiBudW1iZXIsXG5cdG9mZnNldD86IG51bWJlcixcblx0bGFuZ3VhZ2U/OiBzdHJpbmdcbn1cblxuaW1wb3J0IHsgVHlwZWRRdWVyeVBhcmFtZXRlciwgTmFtZWRRdWVyeVBhcmFtZXRlciB9IGZyb20gJy4vcXVlcnknO1xuXG4vKipcbiAqIEZhY2FkZSBjbGFzcyBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgdW5kZXJseWluZyBEaXJpZ2libGUgRGF0YSBTdG9yZS5cbiAqIEFsbCBtZXRob2RzIHNlcmlhbGl6ZS9kZXNlcmlhbGl6ZSBKYXZhU2NyaXB0IG9iamVjdHMgdG8vZnJvbSBKU09OIHN0cmluZ3NcbiAqIGJlZm9yZSBpbnRlcmFjdGluZyB3aXRoIHRoZSBuYXRpdmUgSmF2YSBmYWNhZGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdG9yZSB7XG5cblx0LyoqXG5cdCAqIFNhdmVzIGEgbmV3IGVudHJ5IHRvIHRoZSBkYXRhIHN0b3JlLlxuXHQgKiBAcGFyYW0gbmFtZSBUaGUgZW50aXR5L3RhYmxlIG5hbWUuXG5cdCAqIEBwYXJhbSBlbnRyeSBUaGUgSmF2YVNjcmlwdCBvYmplY3QgdG8gc2F2ZS5cblx0ICogQHJldHVybnMgVGhlIElEIG9mIHRoZSBuZXdseSBjcmVhdGVkIGVudHJ5IChzdHJpbmcgb3IgbnVtYmVyKS5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgc2F2ZShuYW1lOiBzdHJpbmcsIGVudHJ5OiBhbnkpOiBzdHJpbmcgfCBudW1iZXIge1xuXHRcdHJldHVybiBEYXRhU3RvcmVGYWNhZGUuc2F2ZShuYW1lLCBKU09OLnN0cmluZ2lmeShlbnRyeSkpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEluc2VydHMgYSBuZXcgZW50cnkgb3IgdXBkYXRlcyBhbiBleGlzdGluZyBvbmUgaWYgdGhlIElEIGlzIHByZXNlbnQuXG5cdCAqIEBwYXJhbSBuYW1lIFRoZSBlbnRpdHkvdGFibGUgbmFtZS5cblx0ICogQHBhcmFtIGVudHJ5IFRoZSBKYXZhU2NyaXB0IG9iamVjdCB0byBpbnNlcnQvdXBkYXRlLlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyB1cHNlcnQobmFtZTogc3RyaW5nLCBlbnRyeTogYW55KTogdm9pZCB7XG5cdFx0RGF0YVN0b3JlRmFjYWRlLnVwc2VydChuYW1lLCBKU09OLnN0cmluZ2lmeShlbnRyeSkpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFVwZGF0ZXMgYW4gZXhpc3RpbmcgZW50cnkuXG5cdCAqIEBwYXJhbSBuYW1lIFRoZSBlbnRpdHkvdGFibGUgbmFtZS5cblx0ICogQHBhcmFtIGVudHJ5IFRoZSBKYXZhU2NyaXB0IG9iamVjdCB3aXRoIHRoZSBJRCBhbmQgdXBkYXRlZCBkYXRhLlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyB1cGRhdGUobmFtZTogc3RyaW5nLCBlbnRyeTogYW55KTogdm9pZCB7XG5cdFx0RGF0YVN0b3JlRmFjYWRlLnVwZGF0ZShuYW1lLCBKU09OLnN0cmluZ2lmeShlbnRyeSkpO1xuXHR9XG5cblx0LyoqXG5cdCAqIExpc3RzIGVudHJpZXMgYmFzZWQgb24gb3B0aW9uYWwgZmlsdGVyaW5nLCBzb3J0aW5nLCBhbmQgcGFnaW5hdGlvbiBvcHRpb25zLlxuXHQgKiBAcGFyYW0gbmFtZSBUaGUgZW50aXR5L3RhYmxlIG5hbWUuXG5cdCAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbmFsIHtAbGluayBPcHRpb25zfSBmb3IgcXVlcnkgZXhlY3V0aW9uLlxuXHQgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBKYXZhU2NyaXB0IG9iamVjdHMuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGxpc3QobmFtZTogc3RyaW5nLCBvcHRpb25zPzogT3B0aW9ucyk6IGFueVtdIHtcblx0XHRjb25zdCByZXN1bHQgPSBEYXRhU3RvcmVGYWNhZGUubGlzdChuYW1lLCBvcHRpb25zID8gSlNPTi5zdHJpbmdpZnkob3B0aW9ucykgOiBudWxsKTtcblx0XHRyZXR1cm4gU3RvcmUucGFyc2VSZXN1bHQocmVzdWx0KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDb3VudHMgdGhlIG51bWJlciBvZiBlbnRyaWVzIGJhc2VkIG9uIG9wdGlvbmFsIGZpbHRlcmluZyBvcHRpb25zLlxuXHQgKiBAcGFyYW0gbmFtZSBUaGUgZW50aXR5L3RhYmxlIG5hbWUuXG5cdCAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbmFsIHtAbGluayBPcHRpb25zfSBmb3IgcXVlcnkgZXhlY3V0aW9uLlxuXHQgKiBAcmV0dXJucyBUaGUgY291bnQgb2YgbWF0Y2hpbmcgZW50cmllcy5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgY291bnQobmFtZTogc3RyaW5nLCBvcHRpb25zPzogT3B0aW9ucyk6IG51bWJlciB7XG5cdFx0Y29uc3Qgb3B0aW9uc1N0cmluZyA9IG9wdGlvbnMgPyBKU09OLnN0cmluZ2lmeShvcHRpb25zKSA6IG51bGw7XG5cdFx0Y29uc3QgcmVzdWx0ID0gRGF0YVN0b3JlRmFjYWRlLmNvdW50KG5hbWUsIG9wdGlvbnNTdHJpbmcpO1xuXHRcdHJldHVybiByZXN1bHQ7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIGEgc2luZ2xlIGVudHJ5IGJ5IGl0cyBJRC5cblx0ICogQHBhcmFtIG5hbWUgVGhlIGVudGl0eS90YWJsZSBuYW1lLlxuXHQgKiBAcGFyYW0gaWQgVGhlIElEIG9mIHRoZSBlbnRyeS5cblx0ICogQHJldHVybnMgVGhlIGVudHJ5IG9iamVjdCwgb3IgdW5kZWZpbmVkIGlmIG5vdCBmb3VuZC5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgZ2V0KG5hbWU6IHN0cmluZywgaWQ6IGFueSk6IGFueSB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3QgcmVzdWx0ID0gRGF0YVN0b3JlRmFjYWRlLmdldChuYW1lLCBpZCk7XG5cdFx0Ly8gQXNzdW1pbmcgdGhlIG5hdGl2ZSBBUEkgcmV0dXJucyBudWxsL3VuZGVmaW5lZCBvciBhbiBlbXB0eSBKU09OIHN0cmluZyBpZiBub3QgZm91bmQsIFxuXHRcdC8vIG90aGVyd2lzZSBKU09OLnBhcnNlIGhhbmRsZXMgdGhlIGNvbnZlcnNpb24uXG5cdFx0aWYgKHJlc3VsdCA9PT0gbnVsbCB8fCByZXN1bHQgPT09IHVuZGVmaW5lZCB8fCByZXN1bHQgPT09IFwiXCIpIHtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXHRcdHJldHVybiBTdG9yZS5wYXJzZVJlc3VsdChyZXN1bHQpO1xuXHR9O1xuXG5cdC8qKlxuXHQgKiBEZWxldGVzIGFuIGVudHJ5IGJ5IGl0cyBJRC5cblx0ICogQHBhcmFtIG5hbWUgVGhlIGVudGl0eS90YWJsZSBuYW1lLlxuXHQgKiBAcGFyYW0gaWQgVGhlIElEIG9mIHRoZSBlbnRyeSB0byByZW1vdmUuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIHJlbW92ZShuYW1lOiBzdHJpbmcsIGlkOiBhbnkpOiB2b2lkIHtcblx0XHREYXRhU3RvcmVGYWNhZGUuZGVsZXRlRW50cnkobmFtZSwgaWQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEZpbmRzIGVudHJpZXMgbWF0Y2hpbmcgYW4gZXhhbXBsZSBvYmplY3QgKHF1ZXJ5LWJ5LWV4YW1wbGUpLlxuXHQgKiBAcGFyYW0gbmFtZSBUaGUgZW50aXR5L3RhYmxlIG5hbWUuXG5cdCAqIEBwYXJhbSBleGFtcGxlIEFuIG9iamVjdCBjb250YWluaW5nIHByb3BlcnRpZXMgdG8gbWF0Y2guXG5cdCAqIEBwYXJhbSBsaW1pdCBNYXhpbXVtIG51bWJlciBvZiByZXN1bHRzIHRvIHJldHVybi5cblx0ICogQHBhcmFtIG9mZnNldCBOdW1iZXIgb2YgcmVzdWx0cyB0byBza2lwLlxuXHQgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBtYXRjaGluZyBKYXZhU2NyaXB0IG9iamVjdHMuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGZpbmQobmFtZTogc3RyaW5nLCBleGFtcGxlOiBhbnksIGxpbWl0OiBudW1iZXIgPSAxMDAsIG9mZnNldDogbnVtYmVyID0gMCk6IGFueVtdIHtcblx0XHRjb25zdCByZXN1bHQgPSBEYXRhU3RvcmVGYWNhZGUuZmluZChuYW1lLCBKU09OLnN0cmluZ2lmeShleGFtcGxlKSwgbGltaXQsIG9mZnNldCk7XG5cdFx0cmV0dXJuIFN0b3JlLnBhcnNlUmVzdWx0KHJlc3VsdCk7XG5cdH1cblxuXHQvKipcblx0ICogUXVlcmllcyBhbGwgZW50cmllcyBmb3IgYSBnaXZlbiBzY3JpcHQgd2l0aCBwYWdpbmF0aW9uLlxuXHQgKiBAcGFyYW0gcXVlcnkgVGhlIHF1ZXJ5IHNjcmlwdC5cblx0ICogQHBhcmFtIGxpbWl0IE1heGltdW0gbnVtYmVyIG9mIHJlc3VsdHMgdG8gcmV0dXJuLlxuXHQgKiBAcGFyYW0gb2Zmc2V0IE51bWJlciBvZiByZXN1bHRzIHRvIHNraXAuXG5cdCAqIEByZXR1cm5zIEFuIGFycmF5IG9mIEphdmFTY3JpcHQgb2JqZWN0cy5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgcXVlcnkocXVlcnk6IHN0cmluZywgcGFyYW1ldGVycz86IChzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgRGF0ZSB8IFR5cGVkUXVlcnlQYXJhbWV0ZXIgfCBOYW1lZFF1ZXJ5UGFyYW1ldGVyKVtdLCBsaW1pdDogbnVtYmVyID0gMTAwLCBvZmZzZXQ6IG51bWJlciA9IDApOiBhbnlbXSB7XG5cdFx0bGV0IGFycjogYW55W10gPSBbXTtcblx0XHRpZiAocGFyYW1ldGVycyA9PSBudWxsKSB7XG5cdFx0XHRhcnIgPSBbXTtcblx0XHR9IGVsc2UgaWYgKHR5cGVvZiBwYXJhbWV0ZXJzID09PSBcInN0cmluZ1wiKSB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKHBhcmFtZXRlcnMpO1xuXHRcdFx0XHRpZiAoIUFycmF5LmlzQXJyYXkocGFyc2VkKSkge1xuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihcIklucHV0IHBhcmFtZXRlciBzdHJpbmcgbXVzdCByZXByZXNlbnQgYSBKU09OIGFycmF5XCIpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGFyciA9IHBhcnNlZDtcblx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBKU09OIHBhcmFtZXRlcnM6IFwiICsgZSk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHBhcmFtZXRlcnMpKSB7XG5cdFx0XHRhcnIgPSBwYXJhbWV0ZXJzO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJQYXJhbWV0ZXJzIG11c3QgYmUgZWl0aGVyIGFuIGFycmF5IG9yIGEgSlNPTiBzdHJpbmdcIik7XG5cdFx0fVxuXG5cdFx0aWYgKGFyci5sZW5ndGggPT09IDApIHtcblx0XHRcdGNvbnN0IHJlc3VsdCA9IERhdGFTdG9yZUZhY2FkZS5xdWVyeShxdWVyeSwgbnVsbCwgbGltaXQsIG9mZnNldCk7XG5cdFx0XHRyZXR1cm4gU3RvcmUucGFyc2VSZXN1bHQocmVzdWx0KTtcblx0XHR9XG5cblx0XHRjb25zdCBmaXJzdCA9IGFyclswXTtcblxuXHRcdC8vIE5hbWVkUXVlcnlQYXJhbWV0ZXIgKGhhcyBuYW1lICsgdHlwZSlcblx0XHRpZiAoZmlyc3QgJiYgdHlwZW9mIGZpcnN0ID09PSBcIm9iamVjdFwiICYmIFwibmFtZVwiIGluIGZpcnN0ICYmIFwidHlwZVwiIGluIGZpcnN0KSB7XG5cdFx0XHRjb25zdCByZXN1bHQgPSBEYXRhU3RvcmVGYWNhZGUucXVlcnlOYW1lZChxdWVyeSwgSlNPTi5zdHJpbmdpZnkoYXJyKSwgbGltaXQsIG9mZnNldCk7XG5cdFx0XHRyZXR1cm4gU3RvcmUucGFyc2VSZXN1bHQocmVzdWx0KTtcblx0XHR9XG5cblx0XHQvLyBUeXBlZFF1ZXJ5UGFyYW1ldGVyIChoYXMgdHlwZSwgbm8gbmFtZSlcblx0XHRpZiAoZmlyc3QgJiYgdHlwZW9mIGZpcnN0ID09PSBcIm9iamVjdFwiICYmIFwidHlwZVwiIGluIGZpcnN0ICYmICEoXCJuYW1lXCIgaW4gZmlyc3QpKSB7XG5cdFx0XHRjb25zdCByZXN1bHQgPSBEYXRhU3RvcmVGYWNhZGUucXVlcnkocXVlcnksIEpTT04uc3RyaW5naWZ5KGFyciksIGxpbWl0LCBvZmZzZXQpO1xuXHRcdFx0cmV0dXJuIFN0b3JlLnBhcnNlUmVzdWx0KHJlc3VsdCk7XG5cdFx0fVxuXG5cdFx0Ly8gUHJpbWl0aXZlIGFycmF5XG5cdFx0aWYgKFxuXHRcdFx0YXJyLmV2ZXJ5KFxuXHRcdFx0XHQodikgPT5cblx0XHRcdFx0XHR0eXBlb2YgdiA9PT0gXCJzdHJpbmdcIiB8fFxuXHRcdFx0XHRcdHR5cGVvZiB2ID09PSBcIm51bWJlclwiIHx8XG5cdFx0XHRcdFx0dHlwZW9mIHYgPT09IFwiYm9vbGVhblwiIHx8XG5cdFx0XHRcdFx0diBpbnN0YW5jZW9mIERhdGUgfHxcblx0XHRcdFx0XHRBcnJheS5pc0FycmF5KHYpXG5cdFx0XHQpXG5cdFx0KSB7XG5cdFx0XHRjb25zdCByZXN1bHQgPSBEYXRhU3RvcmVGYWNhZGUucXVlcnkocXVlcnksIEpTT04uc3RyaW5naWZ5KGFyciksIGxpbWl0LCBvZmZzZXQpO1xuXHRcdFx0cmV0dXJuIFN0b3JlLnBhcnNlUmVzdWx0KHJlc3VsdCk7XG5cdFx0fVxuXG5cdFx0dGhyb3cgbmV3IEVycm9yKFwiVW5zdXBwb3J0ZWQgcGFyYW1ldGVyIGZvcm1hdDogXCIgKyBKU09OLnN0cmluZ2lmeShwYXJhbWV0ZXJzKSk7XG5cdH1cblxuXHQvKipcblx0ICogUXVlcmllcyBhbGwgZW50cmllcyBmb3IgYSBnaXZlbiBlbnRpdHkgbmFtZSB3aXRob3V0IHBhZ2luYXRpb24uXG5cdCAqIEBwYXJhbSBxdWVyeSBUaGUgZW50aXR5L3RhYmxlIG5hbWUuXG5cdCAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGFsbCBKYXZhU2NyaXB0IG9iamVjdHMuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIHF1ZXJ5TmF0aXZlKHF1ZXJ5OiBzdHJpbmcsIHBhcmFtZXRlcnM/OiAoc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IERhdGUgfCBUeXBlZFF1ZXJ5UGFyYW1ldGVyIHwgTmFtZWRRdWVyeVBhcmFtZXRlcilbXSwgbGltaXQ6IG51bWJlciA9IDEwMCwgb2Zmc2V0OiBudW1iZXIgPSAwKTogYW55W10ge1xuXHRcdGxldCBhcnI6IGFueVtdID0gW107XG5cdFx0aWYgKHBhcmFtZXRlcnMgPT0gbnVsbCkge1xuXHRcdFx0YXJyID0gW107XG5cdFx0fSBlbHNlIGlmICh0eXBlb2YgcGFyYW1ldGVycyA9PT0gXCJzdHJpbmdcIikge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0Y29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShwYXJhbWV0ZXJzKTtcblx0XHRcdFx0aWYgKCFBcnJheS5pc0FycmF5KHBhcnNlZCkpIHtcblx0XHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJJbnB1dCBwYXJhbWV0ZXIgc3RyaW5nIG11c3QgcmVwcmVzZW50IGEgSlNPTiBhcnJheVwiKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRhcnIgPSBwYXJzZWQ7XG5cdFx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRcdHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgSlNPTiBwYXJhbWV0ZXJzOiBcIiArIGUpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShwYXJhbWV0ZXJzKSkge1xuXHRcdFx0YXJyID0gcGFyYW1ldGVycztcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiUGFyYW1ldGVycyBtdXN0IGJlIGVpdGhlciBhbiBhcnJheSBvciBhIEpTT04gc3RyaW5nXCIpO1xuXHRcdH1cblxuXHRcdGlmIChhcnIubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRjb25zdCByZXN1bHQgPSBEYXRhU3RvcmVGYWNhZGUucXVlcnlOYXRpdmUocXVlcnksIG51bGwsIGxpbWl0LCBvZmZzZXQpO1xuXHRcdFx0cmV0dXJuIFN0b3JlLnBhcnNlUmVzdWx0KHJlc3VsdCk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgZmlyc3QgPSBhcnJbMF07XG5cblx0XHQvLyBOYW1lZFF1ZXJ5UGFyYW1ldGVyIChoYXMgbmFtZSArIHR5cGUpXG5cdFx0aWYgKGZpcnN0ICYmIHR5cGVvZiBmaXJzdCA9PT0gXCJvYmplY3RcIiAmJiBcIm5hbWVcIiBpbiBmaXJzdCAmJiBcInR5cGVcIiBpbiBmaXJzdCkge1xuXHRcdFx0Y29uc3QgcmVzdWx0ID0gRGF0YVN0b3JlRmFjYWRlLnF1ZXJ5TmF0aXZlTmFtZWQocXVlcnksIEpTT04uc3RyaW5naWZ5KGFyciksIGxpbWl0LCBvZmZzZXQpO1xuXHRcdFx0cmV0dXJuIFN0b3JlLnBhcnNlUmVzdWx0KHJlc3VsdCk7XG5cdFx0fVxuXG5cdFx0Ly8gVHlwZWRRdWVyeVBhcmFtZXRlciAoaGFzIHR5cGUsIG5vIG5hbWUpXG5cdFx0aWYgKGZpcnN0ICYmIHR5cGVvZiBmaXJzdCA9PT0gXCJvYmplY3RcIiAmJiBcInR5cGVcIiBpbiBmaXJzdCAmJiAhKFwibmFtZVwiIGluIGZpcnN0KSkge1xuXHRcdFx0Y29uc3QgcmVzdWx0ID0gRGF0YVN0b3JlRmFjYWRlLnF1ZXJ5TmF0aXZlKHF1ZXJ5LCBKU09OLnN0cmluZ2lmeShhcnIpLCBsaW1pdCwgb2Zmc2V0KTtcblx0XHRcdHJldHVybiBTdG9yZS5wYXJzZVJlc3VsdChyZXN1bHQpO1xuXHRcdH1cblxuXHRcdC8vIFByaW1pdGl2ZSBhcnJheVxuXHRcdGlmIChcblx0XHRcdGFyci5ldmVyeShcblx0XHRcdFx0KHYpID0+XG5cdFx0XHRcdFx0dHlwZW9mIHYgPT09IFwic3RyaW5nXCIgfHxcblx0XHRcdFx0XHR0eXBlb2YgdiA9PT0gXCJudW1iZXJcIiB8fFxuXHRcdFx0XHRcdHR5cGVvZiB2ID09PSBcImJvb2xlYW5cIiB8fFxuXHRcdFx0XHRcdHYgaW5zdGFuY2VvZiBEYXRlIHx8XG5cdFx0XHRcdFx0QXJyYXkuaXNBcnJheSh2KVxuXHRcdFx0KVxuXHRcdCkge1xuXHRcdFx0Y29uc3QgcmVzdWx0ID0gRGF0YVN0b3JlRmFjYWRlLnF1ZXJ5TmF0aXZlKHF1ZXJ5LCBKU09OLnN0cmluZ2lmeShhcnIpLCBsaW1pdCwgb2Zmc2V0KTtcblx0XHRcdHJldHVybiBTdG9yZS5wYXJzZVJlc3VsdChyZXN1bHQpO1xuXHRcdH1cblxuXHRcdHRocm93IG5ldyBFcnJvcihcIlVuc3VwcG9ydGVkIHBhcmFtZXRlciBmb3JtYXQ6IFwiICsgSlNPTi5zdHJpbmdpZnkocGFyYW1ldGVycykpO1xuXHR9XG5cblx0Ly8gLS0tIE1ldGFkYXRhIEdldHRlcnMgLS0tXG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIG5hbWUgb2YgdGhlIGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhlIHN0b3JlIG5hbWUuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGdldEVudGl0eU5hbWUobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gRGF0YVN0b3JlRmFjYWRlLmdldEVudGl0eU5hbWUobmFtZSk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0cyB0aGUgdW5kZXJseWluZyBkYXRhYmFzZSB0YWJsZSBuYW1lIGZvciB0aGUgZW50aXR5LlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyBnZXRUYWJsZU5hbWUobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gRGF0YVN0b3JlRmFjYWRlLmdldFRhYmxlTmFtZShuYW1lKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBwcm9wZXJ0eSBuYW1lIHVzZWQgYXMgdGhlIElEIGZpZWxkIGluIHRoZSBlbnRpdHkgb2JqZWN0LlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyBnZXRJZE5hbWUobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gRGF0YVN0b3JlRmFjYWRlLmdldElkTmFtZShuYW1lKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSB1bmRlcmx5aW5nIGRhdGFiYXNlIGNvbHVtbiBuYW1lIHVzZWQgZm9yIHRoZSBJRCBmaWVsZC5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgZ2V0SWRDb2x1bW4obmFtZTogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gRGF0YVN0b3JlRmFjYWRlLmdldElkQ29sdW1uKG5hbWUpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlIGEgSlNPTiBzdHJpbmcgYW5kIHJldml2ZSBJU08gZGF0ZSBzdHJpbmdzIGludG8gSlMgRGF0ZSBvYmplY3RzLlxuXHQgKiBJdCBoYW5kbGVzIGJvdGggZnVsbCBJU08gdGltZXN0YW1wcyAod2l0aCB0aW1lem9uZSkgYW5kIGRhdGUtb25seSBzdHJpbmdzIChZWVlZLU1NLUREKS5cblx0ICogUmV0dXJucyB1bmRlZmluZWQgZm9yIG51bGwvZW1wdHkgaW5wdXRzLlxuXHQgKi9cblx0cHJpdmF0ZSBzdGF0aWMgcGFyc2VSZXN1bHQocmVzdWx0OiBhbnkpOiBhbnkge1xuXHRcdGlmIChyZXN1bHQgPT09IG51bGwgfHwgcmVzdWx0ID09PSB1bmRlZmluZWQgfHwgcmVzdWx0ID09PSAnJykge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdFx0aWYgKHR5cGVvZiByZXN1bHQgIT09ICdzdHJpbmcnKSB7XG5cdFx0XHQvLyBhbHJlYWR5IGFuIG9iamVjdC9hcnJheVxuXHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHR9XG5cblx0XHQvLyBBY2NlcHQgdGltZXpvbmUgb2Zmc2V0cyB3aXRoIG9yIHdpdGhvdXQgY29sb24gKGUuZy4gKzAwOjAwIG9yICswMDAwKVxuXHRcdGNvbnN0IElTT19EQVRFVElNRSA9IC9eXFxkezR9LVxcZHsyfS1cXGR7Mn1UXFxkezJ9OlxcZHsyfTpcXGR7Mn0oPzpcXC5cXGQrKT8oPzpafFsrXFwtXVxcZHsyfTo/XFxkezJ9KSQvO1xuXHRcdGNvbnN0IERBVEVfT05MWSA9IC9eXFxkezR9LVxcZHsyfS1cXGR7Mn0kLztcblx0XHRjb25zdCBUWl9OT19DT0xPTiA9IC8oWytcXC1dXFxkezJ9KShcXGR7Mn0pJC87XG5cdFx0Ly8gU3BhY2Utc2VwYXJhdGVkIGRhdGV0aW1lOiBcIllZWVktTU0tREQgSEg6TU06U1NcIiAob3B0aW9uYWxseSB3aXRoIGZyYWN0aW9uYWwgc2Vjb25kcyBhbmQgdGltZXpvbmUpXG5cdFx0Y29uc3QgU1BBQ0VfREFURVRJTUUgPSAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9IFxcZHsyfTpcXGR7Mn06XFxkezJ9KD86XFwuXFxkKyk/KD86WnxbK1xcLV1cXGR7Mn06P1xcZHsyfSk/JC87XG5cdFx0Ly8gVGltZS1vbmx5IHN0cmluZ3MgbGlrZSBcIjExOjI5OjMzXCIgb3IgXCIxMToyOTozMy4xMjNcIlxuXHRcdGNvbnN0IFRJTUVfT05MWSA9IC9eXFxkezJ9OlxcZHsyfTpcXGR7Mn0oPzpcXC5cXGQrKT8kLztcblx0XHQvLyBFcG9jaCBzdHJpbmdzOiAxMy1kaWdpdCBtcyBvciAxMC1kaWdpdCBzZWNvbmRzXG5cdFx0Y29uc3QgRVBPQ0hfTVMgPSAvXlsrXFwtXT9cXGR7MTN9JC87XG5cdFx0Y29uc3QgRVBPQ0hfUyA9IC9eWytcXC1dP1xcZHsxMH0kLztcblxuXHRcdHJldHVybiBKU09OLnBhcnNlKHJlc3VsdCwgKGtleSwgdmFsdWUpID0+IHtcblx0XHRcdGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG5cdFx0XHRcdGNvbnN0IHMgPSB2YWx1ZS50cmltKCk7XG5cblx0XHRcdFx0Ly8gRXBvY2ggbWlsbGlzZWNvbmQvc2Vjb25kIHN0cmluZ3Ncblx0XHRcdFx0aWYgKEVQT0NIX01TLnRlc3QocykpIHtcblx0XHRcdFx0XHRjb25zdCBtcyA9IHBhcnNlSW50KHMsIDEwKTtcblx0XHRcdFx0XHRyZXR1cm4gbmV3IERhdGUobXMpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChFUE9DSF9TLnRlc3QocykpIHtcblx0XHRcdFx0XHRjb25zdCBtcyA9IHBhcnNlSW50KHMsIDEwKSAqIDEwMDA7XG5cdFx0XHRcdFx0cmV0dXJuIG5ldyBEYXRlKG1zKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFNwYWNlLXNlcGFyYXRlZCBkYXRldGltZXM6IG5vcm1hbGl6ZSB0byBJU08gYW5kIHBhcnNlXG5cdFx0XHRcdGlmIChTUEFDRV9EQVRFVElNRS50ZXN0KHMpKSB7XG5cdFx0XHRcdFx0bGV0IHYgPSBzLnJlcGxhY2UoJyAnLCAnVCcpO1xuXHRcdFx0XHRcdGlmIChUWl9OT19DT0xPTi50ZXN0KHYpKSB7XG5cdFx0XHRcdFx0XHR2ID0gdi5yZXBsYWNlKFRaX05PX0NPTE9OLCAnJDE6JDInKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Y29uc3QgZCA9IG5ldyBEYXRlKHYpO1xuXHRcdFx0XHRcdGlmICghaXNOYU4oZC5nZXRUaW1lKCkpKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gZDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBUaW1lLW9ubHkgc3RyaW5nczogYXR0YWNoIGN1cnJlbnQgVVRDIGRhdGUgYW5kIHBhcnNlIGFzIFVUQ1xuXHRcdFx0XHRpZiAoVElNRV9PTkxZLnRlc3QocykpIHtcblx0XHRcdFx0XHRjb25zdCBtID0gcy5tYXRjaCgvKFxcZHsyfSk6KFxcZHsyfSk6KFxcZHsyfSkoPzpcXC4oXFxkKykpPy8pO1xuXHRcdFx0XHRcdGlmIChtKSB7XG5cdFx0XHRcdFx0XHRjb25zdCBoaCA9IHBhcnNlSW50KG1bMV0sIDEwKTtcblx0XHRcdFx0XHRcdGNvbnN0IG1tID0gcGFyc2VJbnQobVsyXSwgMTApO1xuXHRcdFx0XHRcdFx0Y29uc3Qgc3MgPSBwYXJzZUludChtWzNdLCAxMCk7XG5cdFx0XHRcdFx0XHRjb25zdCBmcmFjID0gbVs0XSA/IChtWzRdICsgJzAwMCcpLnN1YnN0cmluZygwLCAzKSA6ICcwMDAnO1xuXHRcdFx0XHRcdFx0Y29uc3QgbXMgPSBwYXJzZUludChmcmFjLCAxMCk7XG5cdFx0XHRcdFx0XHRjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuXHRcdFx0XHRcdFx0Y29uc3QgZCA9IG5ldyBEYXRlKERhdGUuVVRDKG5vdy5nZXRVVENGdWxsWWVhcigpLCBub3cuZ2V0VVRDTW9udGgoKSwgbm93LmdldFVUQ0RhdGUoKSwgaGgsIG1tLCBzcywgbXMpKTtcblx0XHRcdFx0XHRcdHJldHVybiBkO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmIChJU09fREFURVRJTUUudGVzdChzKSB8fCBEQVRFX09OTFkudGVzdChzKSkge1xuXHRcdFx0XHRcdC8vIG5vcm1hbGl6ZSB0aW1lem9uZSB3aXRob3V0IGNvbG9uIChlLmcuICswMDAwIC0+ICswMDowMCkgYmVjYXVzZSBEYXRlIHBhcnNpbmdcblx0XHRcdFx0XHQvLyBwcmVmZXJzIHRoZSBjb2xvbi1zZXBhcmF0ZWQgb2Zmc2V0IGluIG1hbnkgSlMgZW5naW5lc1xuXHRcdFx0XHRcdGxldCB2ID0gcztcblx0XHRcdFx0XHRpZiAoVFpfTk9fQ09MT04udGVzdCh2KSkge1xuXHRcdFx0XHRcdFx0diA9IHYucmVwbGFjZShUWl9OT19DT0xPTiwgJyQxOiQyJyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGNvbnN0IGQgPSBuZXcgRGF0ZSh2KTtcblx0XHRcdFx0XHRpZiAoIWlzTmFOKGQuZ2V0VGltZSgpKSkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0fSk7XG5cdH1cblxufVxuXG4vLyBAdHMtaWdub3JlXG5pZiAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcpIHtcblx0Ly8gQHRz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
|
|
@@ -19,12 +19,15 @@ type ClassDecoratorContext = {
|
|
|
19
19
|
name?: string | symbol;
|
|
20
20
|
addInitializer(fn: () => void): void;
|
|
21
21
|
};
|
|
22
|
+
export type ColumnTypes = 'integer' | 'long' | 'short' | 'byte' | 'float' | 'double' | 'big_integer' | 'big_decimal' | 'string' | 'char' | 'text' | 'nstring' | 'ntext' | 'date' | 'time' | 'timestamp' | 'calendar' | 'calendar_date' | 'instant' | 'boolean' | 'true_false' | 'yes_no' | 'numeric_boolean' | 'binary' | 'blob' | 'clob' | 'materialized_blob' | 'materialized_clob' | 'serializable' | 'any' | 'object' | 'uuid-char' | 'uuid-binary' | 'json' | 'jsonb' | 'xml';
|
|
22
23
|
export interface ColumnOptions {
|
|
23
24
|
name?: string;
|
|
24
|
-
type?: string;
|
|
25
|
+
type?: ColumnTypes | (string & {});
|
|
25
26
|
length?: number;
|
|
26
27
|
nullable?: boolean;
|
|
27
28
|
defaultValue?: string;
|
|
29
|
+
precision?: number;
|
|
30
|
+
scale?: number;
|
|
28
31
|
}
|
|
29
32
|
export interface OneToManyOptions {
|
|
30
33
|
table?: string;
|
package/dist/dts/db/store.d.ts
CHANGED
|
@@ -136,4 +136,10 @@ export declare class Store {
|
|
|
136
136
|
* Gets the underlying database column name used for the ID field.
|
|
137
137
|
*/
|
|
138
138
|
static getIdColumn(name: string): string;
|
|
139
|
+
/**
|
|
140
|
+
* Parse a JSON string and revive ISO date strings into JS Date objects.
|
|
141
|
+
* It handles both full ISO timestamps (with timezone) and date-only strings (YYYY-MM-DD).
|
|
142
|
+
* Returns undefined for null/empty inputs.
|
|
143
|
+
*/
|
|
144
|
+
private static parseResult;
|
|
139
145
|
}
|
|
@@ -145,4 +145,4 @@ export {
|
|
|
145
145
|
OneToMany,
|
|
146
146
|
Table
|
|
147
147
|
};
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RiL2RlY29yYXRvcnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogKiBFQ01BU2NyaXB0IDIwMjUtY29tcGxpYW50IE9STSBkZWNvcmF0b3IgaW1wbGVtZW50YXRpb25cbiAqIENvbXBhdGlibGUgd2l0aCBHcmFhbEpTIHJ1bnRpbWUuXG4gKiAqIEZlYXR1cmVzOlxuICogLSBVc2VzIGNvbnRleHQuYWRkSW5pdGlhbGl6ZXIgZm9yIHN0YWJsZSBkZWNvcmF0b3IgdGltaW5nXG4gKiAtIFN0b3JlcyBtZXRhZGF0YSBpbiBhIGdsb2JhbCBXZWFrTWFwIGNhY2hlXG4gKiAtIEZpbmFsaXplcyBlbnRpdHkgbWV0YWRhdGEgb25jZSBwZXIgY2xhc3NcbiAqIC0gRGVmZXJzIGZpbmFsaXphdGlvbiB2aWEgbWljcm90YXNrIChQcm9taXNlLnJlc29sdmUoKS50aGVuKVxuICovXG5cbi8vIC0tLSBEZWNvcmF0b3IgQ29udGV4dCBUeXBlcyAoYmFzZWQgb24gRUNNQVNjcmlwdCBEZWNvcmF0b3JzIHByb3Bvc2FsKSAtLS1cbnR5cGUgQ2xhc3NGaWVsZERlY29yYXRvckNvbnRleHQgPSB7XG4gIGtpbmQ6IFwiZmllbGRcIjtcbiAgbmFtZTogc3RyaW5nIHwgc3ltYm9sO1xuICBzdGF0aWM6IGJvb2xlYW47XG4gIHByaXZhdGU6IGJvb2xlYW47XG4gIGFkZEluaXRpYWxpemVyKGZuOiAoKSA9PiB2b2lkKTogdm9pZDtcbn07XG5cbnR5cGUgQ2xhc3NEZWNvcmF0b3JDb250ZXh0ID0ge1xuICBraW5kOiBcImNsYXNzXCI7XG4gIG5hbWU/OiBzdHJpbmcgfCBzeW1ib2w7XG4gIGFkZEluaXRpYWxpemVyKGZuOiAoKSA9PiB2b2lkKTogdm9pZDtcbn07XG5cbi8vIC0tLSBNZXRhZGF0YSBNb2RlbHMgLS0tXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbk9wdGlvbnMge1xuICBuYW1lPzogc3RyaW5nO1xuICB0eXBlPzogc3RyaW5nO1xuICBsZW5ndGg/OiBudW1iZXI7XG4gIG51bGxhYmxlPzogYm9vbGVhbjtcbiAgZGVmYXVsdFZhbHVlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uZVRvTWFueU9wdGlvbnMge1xuICB0YWJsZT86IHN0cmluZztcbiAgam9pbkNvbHVtbjogc3RyaW5nO1xuICBjYXNjYWRlPzogXCJhbGxcIiB8IFwibm9uZVwiIHwgXCJwZXJzaXN0XCIgfCBcIm1lcmdlXCIgfCBcInJlbW92ZVwiO1xuICBpbnZlcnNlPzogYm9vbGVhbjtcbiAgbGF6eT86IGJvb2xlYW47XG4gIGZldGNoPzogXCJzZWxlY3RcIiB8IFwiam9pblwiO1xuICBqb2luQ29sdW1uTm90TnVsbD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFueVRvT25lT3B0aW9ucyB7XG4gIGpvaW5Db2x1bW4/OiBzdHJpbmc7XG4gIGNhc2NhZGU/OiBcImFsbFwiIHwgXCJub25lXCIgfCBcInBlcnNpc3RcIiB8IFwibWVyZ2VcIiB8IFwicmVtb3ZlXCI7XG4gIG51bGxhYmxlPzogYm9vbGVhbjtcbiAgbGF6eT86IGJvb2xlYW47XG4gIGZldGNoPzogXCJzZWxlY3RcIiB8IFwiam9pblwiO1xufVxuXG5pbnRlcmZhY2UgUHJvcGVydHlNZXRhZGF0YSB7XG4gIHByb3BlcnR5TmFtZTogc3RyaW5nO1xuICBpc0lkOiBib29sZWFuO1xuICBpc0dlbmVyYXRlZDogYm9vbGVhbjtcbiAgZG9jdW1lbnRhdGlvbj86IHN0cmluZztcbiAgY29sdW1uT3B0aW9ucz86IENvbHVtbk9wdGlvbnM7XG4gIG9uZVRvTWFueU9wdGlvbnM/OiB7IHR5cGU6IEZ1bmN0aW9uOyBvcHRpb25zOiBPbmVUb01hbnlPcHRpb25zIH07XG4gIG1hbnlUb09uZU9wdGlvbnM/OiB7IHR5cGU6IEZ1bmN0aW9uOyBvcHRpb25zOiBNYW55VG9PbmVPcHRpb25zIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5Q29uc3RydWN0b3IgZXh0ZW5kcyBGdW5jdGlvbiB7XG4gIG5ldyAoLi4uYXJnczogYW55W10pOiBhbnk7XG4gICRlbnRpdHlfbmFtZTogc3RyaW5nO1xuICAkdGFibGVfbmFtZTogc3RyaW5nO1xuICAkaWRfbmFtZTogc3RyaW5nO1xuICAkaWRfY29sdW1uOiBzdHJpbmc7XG4gICRpbml0aWFsaXplZD86IGJvb2xlYW47XG4gICRkb2N1bWVudGF0aW9uPzogc3RyaW5nO1xufVxuXG4vLyAtLS0gR2xvYmFsIE1ldGFkYXRhIENhY2hlIC0tLVxuY29uc3QgZ2xvYmFsQ2FjaGU6IFdlYWtNYXA8RnVuY3Rpb24sIFByb3BlcnR5TWV0YWRhdGFbXT4gPVxuICAoZ2xvYmFsVGhpcyBhcyBhbnkpLl9fZGVjb3JhdG9yX21ldGFkYXRhX2NhY2hlX18gfHxcbiAgKChnbG9iYWxUaGlzIGFzIGFueSkuX19kZWNvcmF0b3JfbWV0YWRhdGFfY2FjaGVfXyA9IG5ldyBXZWFrTWFwKCkpO1xuXG5mdW5jdGlvbiBnZXRNZXRhZGF0YUFycmF5KGNvbnN0cnVjdG9yOiBGdW5jdGlvbik6IFByb3BlcnR5TWV0YWRhdGFbXSB7XG4gIGlmICghZ2xvYmFsQ2FjaGUuaGFzKGNvbnN0cnVjdG9yKSkge1xuICAgIGdsb2JhbENhY2hlLnNldChjb25zdHJ1Y3RvciwgW10pO1xuICB9XG4gIHJldHVybiBnbG9iYWxDYWNoZS5nZXQoY29uc3RydWN0b3IpITtcbn1cblxuLy8gLS0tIERlZmVyIEhlbHBlciAoR3JhYWxKUy1zYWZlIG1pY3JvdGFzaykgLS0tXG5mdW5jdGlvbiBkZWZlcihmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAvLyBVc2VzIFByb21pc2UgbWljcm90YXNrIHF1ZXVlIGZvciBkZWZlcnJlZCBleGVjdXRpb25cbiAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmbik7XG59XG5cbi8vIC0tLSBDb3JlIFByb3BlcnR5IERlY29yYXRvciBGYWN0b3J5IC0tLVxuZnVuY3Rpb24gY3JlYXRlUHJvcGVydHlEZWNvcmF0b3IoXG4gIGtpbmQ6IFwiY29sdW1uXCIgfCBcImlkXCIgfCBcImdlbmVyYXRlZFwiLFxuICBvcHRpb25zPzogQ29sdW1uT3B0aW9uc1xuKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoXzogYW55LCBjb250ZXh0OiBDbGFzc0ZpZWxkRGVjb3JhdG9yQ29udGV4dCkge1xuICAgIGlmIChjb250ZXh0LmtpbmQgIT09IFwiZmllbGRcIikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBAJHtraW5kfSBtdXN0IGFwcGx5IHRvIGZpZWxkc2ApO1xuICAgIH1cblxuICAgIGNvbnRleHQuYWRkSW5pdGlhbGl6ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgY3RvciA9ICh0aGlzIGFzIGFueSkuY29uc3RydWN0b3IgYXMgRW50aXR5Q29uc3RydWN0b3I7XG4gICAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSBjb250ZXh0Lm5hbWUudG9TdHJpbmcoKTtcbiAgICAgIGNvbnN0IG1ldGFkYXRhQXJyYXkgPSBnZXRNZXRhZGF0YUFycmF5KGN0b3IpO1xuXG4gICAgICBsZXQgbWV0YWRhdGEgPSBtZXRhZGF0YUFycmF5LmZpbmQoXG4gICAgICAgIChtKSA9PiBtLnByb3BlcnR5TmFtZSA9PT0gcHJvcGVydHlOYW1lXG4gICAgICApO1xuXG4gICAgICBpZiAoIW1ldGFkYXRhKSB7XG4gICAgICAgIG1ldGFkYXRhID0ge1xuICAgICAgICAgIHByb3BlcnR5TmFtZTogcHJvcGVydHlOYW1lLFxuICAgICAgICAgIGlzSWQ6IGZhbHNlLFxuICAgICAgICAgIGlzR2VuZXJhdGVkOiBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgICAgbWV0YWRhdGFBcnJheS5wdXNoKG1ldGFkYXRhKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGtpbmQgPT09IFwiaWRcIikgbWV0YWRhdGEuaXNJZCA9IHRydWU7XG4gICAgICBpZiAoa2luZCA9PT0gXCJnZW5lcmF0ZWRcIikgbWV0YWRhdGEuaXNHZW5lcmF0ZWQgPSB0cnVlO1xuICAgICAgaWYgKGtpbmQgPT09IFwiY29sdW1uXCIpIG1ldGFkYXRhLmNvbHVtbk9wdGlvbnMgPSBvcHRpb25zO1xuICAgIH0pO1xuICB9O1xufVxuXG4vLyAtLS0gQERvY3VtZW50YXRpb24gRGVjb3JhdG9yIChEdWFsLVB1cnBvc2UpIC0tLVxuLyoqXG4gKiBBZGRzIGRvY3VtZW50YXRpb24gbWV0YWRhdGEgdG8gYSBjbGFzcyBvciBhIGZpZWxkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gRG9jdW1lbnRhdGlvbihkZXNjcmlwdGlvbjogc3RyaW5nKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoXG4gICAgdmFsdWU6IEZ1bmN0aW9uIHwgYW55LFxuICAgIGNvbnRleHQ6IENsYXNzRGVjb3JhdG9yQ29udGV4dCB8IENsYXNzRmllbGREZWNvcmF0b3JDb250ZXh0XG4gICkge1xuICAgIGlmIChjb250ZXh0LmtpbmQgPT09IFwiY2xhc3NcIikge1xuICAgICAgY29udGV4dC5hZGRJbml0aWFsaXplcihmdW5jdGlvbiAoKSB7XG4gICAgICAgICh2YWx1ZSBhcyBFbnRpdHlDb25zdHJ1Y3RvcikuJGRvY3VtZW50YXRpb24gPSBkZXNjcmlwdGlvbjtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0gZWxzZSBpZiAoY29udGV4dC5raW5kID09PSBcImZpZWxkXCIpIHtcbiAgICAgIGNvbnRleHQuYWRkSW5pdGlhbGl6ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgICBjb25zdCBjdG9yID0gKHRoaXMgYXMgYW55KS5jb25zdHJ1Y3RvciBhcyBFbnRpdHlDb25zdHJ1Y3RvcjtcbiAgICAgICAgY29uc3QgcHJvcGVydHlOYW1lID0gY29udGV4dC5uYW1lLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IG1ldGFkYXRhQXJyYXkgPSBnZXRNZXRhZGF0YUFycmF5KGN0b3IpO1xuXG4gICAgICAgIGxldCBtZXRhZGF0YSA9IG1ldGFkYXRhQXJyYXkuZmluZChcbiAgICAgICAgICAobSkgPT4gbS5wcm9wZXJ0eU5hbWUgPT09IHByb3BlcnR5TmFtZVxuICAgICAgICApO1xuXG4gICAgICAgIGlmICghbWV0YWRhdGEpIHtcbiAgICAgICAgICBtZXRhZGF0YSA9IHtcbiAgICAgICAgICAgIHByb3BlcnR5TmFtZTogcHJvcGVydHlOYW1lLFxuICAgICAgICAgICAgaXNJZDogZmFsc2UsXG4gICAgICAgICAgICBpc0dlbmVyYXRlZDogZmFsc2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBtZXRhZGF0YUFycmF5LnB1c2gobWV0YWRhdGEpO1xuICAgICAgICB9XG5cbiAgICAgICAgbWV0YWRhdGEuZG9jdW1lbnRhdGlvbiA9IGRlc2NyaXB0aW9uO1xuICAgICAgfSk7XG4gICAgfVxuICB9O1xufVxuXG5cbi8vIC0tLSBARW50aXR5IERlY29yYXRvciAtLS1cbi8qKlxuICogTWFya3MgYSBjbGFzcyBhcyBhbiBlbnRpdHkgYW5kIGluaXRpYXRlcyBtZXRhZGF0YSBmaW5hbGl6YXRpb24uXG4gKiBAcGFyYW0gZW50aXR5TmFtZSBUaGUgbmFtZSBvZiB0aGUgZW50aXR5IChkZWZhdWx0cyB0byBjbGFzcyBuYW1lKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEVudGl0eShlbnRpdHlOYW1lPzogc3RyaW5nKSB7XG4gIHJldHVybiBmdW5jdGlvbiAodmFsdWU6IEZ1bmN0aW9uLCBjb250ZXh0OiBDbGFzc0RlY29yYXRvckNvbnRleHQpIHtcbiAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyKGZ1bmN0aW9uICgpIHtcbiAgICAgIC8vIERlZmVyIGV4ZWN1dGlvbiB0byBlbnN1cmUgYWxsIGZpZWxkIGRlY29yYXRvcnMgaGF2ZSBydW5cbiAgICAgIGRlZmVyKCgpID0+IHtcbiAgICAgICAgY29uc3QgY3RvciA9IHZhbHVlIGFzIEVudGl0eUNvbnN0cnVjdG9yO1xuXG4gICAgICAgIC8vIFByZXZlbnQgZHVwbGljYXRlIHJlZ2lzdHJhdGlvbiAoaWRlbXBvdGVuY3kpXG4gICAgICAgIGlmIChjdG9yLiRpbml0aWFsaXplZCkgcmV0dXJuO1xuICAgICAgICBjdG9yLiRpbml0aWFsaXplZCA9IHRydWU7XG5cbiAgICAgICAgY3Rvci4kZW50aXR5X25hbWUgPSBlbnRpdHlOYW1lIHx8IGN0b3IubmFtZTtcblxuICAgICAgICBjb25zdCBtZXRhZGF0YUFycmF5ID0gZ2V0TWV0YWRhdGFBcnJheShjdG9yKTtcbiAgICAgICAgY29uc3QgaWRNZXRhZGF0YSA9IG1ldGFkYXRhQXJyYXkuZmluZCgobSkgPT4gbS5pc0lkKTtcblxuICAgICAgICBpZiAoaWRNZXRhZGF0YSkge1xuICAgICAgICAgIGN0b3IuJGlkX25hbWUgPSBpZE1ldGFkYXRhLnByb3BlcnR5TmFtZTtcbiAgICAgICAgICAvLyBEZXRlcm1pbmUgSUQgY29sdW1uIG5hbWU6IHVzZSBleHBsaWNpdCBuYW1lIG9yIGNvbnZlcnQgcHJvcGVydHkgbmFtZSB0byB1cHBlciBjYXNlXG4gICAgICAgICAgY3Rvci4kaWRfY29sdW1uID1cbiAgICAgICAgICAgIGlkTWV0YWRhdGEuY29sdW1uT3B0aW9ucz8ubmFtZSB8fFxuICAgICAgICAgICAgaWRNZXRhZGF0YS5wcm9wZXJ0eU5hbWUudG9VcHBlckNhc2UoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZ1dHVyZTogTG9naWMgdG8gbWFwIGFsbCBwcm9wZXJ0aWVzIHRvIGNvbHVtbnMvcmVsYXRpb25zIGdvZXMgaGVyZVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH07XG59XG5cbi8vIC0tLSBAVGFibGUgRGVjb3JhdG9yIC0tLVxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIGRhdGFiYXNlIHRhYmxlIG5hbWUgZm9yIHRoZSBlbnRpdHkuXG4gKiBAcGFyYW0gdGFibGVOYW1lIFRoZSB0YWJsZSBuYW1lIChkZWZhdWx0cyB0byB1cHBlcmNhc2UgY2xhc3MgbmFtZSkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBUYWJsZSh0YWJsZU5hbWU/OiBzdHJpbmcpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIDxUIGV4dGVuZHMgRW50aXR5Q29uc3RydWN0b3I+KFxuICAgIHZhbHVlOiBULFxuICAgIGNvbnRleHQ6IENsYXNzRGVjb3JhdG9yQ29udGV4dFxuICApIHtcbiAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyKGZ1bmN0aW9uICgpIHtcbiAgICAgICh2YWx1ZSBhcyBFbnRpdHlDb25zdHJ1Y3RvcikuJHRhYmxlX25hbWUgPVxuICAgICAgICB0YWJsZU5hbWUgfHwgKGNvbnRleHQubmFtZT8udG9TdHJpbmcoKSA/PyB2YWx1ZS5uYW1lLnRvVXBwZXJDYXNlKCkpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9O1xufVxuXG4vLyAtLS0gRXhwb3J0ZWQgUHJvcGVydHkgRGVjb3JhdG9ycyAtLS1cbi8qKlxuICogTWFya3MgYSBwcm9wZXJ0eSBhcyBhIHN0YW5kYXJkIGRhdGFiYXNlIGNvbHVtbi5cbiAqL1xuZXhwb3J0IGNvbnN0IENvbHVtbiA9IChvcHRpb25zPzogQ29sdW1uT3B0aW9ucykgPT5cbiAgY3JlYXRlUHJvcGVydHlEZWNvcmF0b3IoXCJjb2x1bW5cIiwgb3B0aW9ucyk7XG5cbi8qKlxuICogTWFya3MgYSBwcm9wZXJ0eSBhcyB0aGUgZW50aXR5J3MgcHJpbWFyeSBrZXkuXG4gKi9cbmV4cG9ydCBjb25zdCBJZCA9ICgpID0+IGNyZWF0ZVByb3BlcnR5RGVjb3JhdG9yKFwiaWRcIik7XG5cbi8qKlxuICogTWFya3MgYSBwcm9wZXJ0eSBhcyBhIGdlbmVyYXRlZCB2YWx1ZSAoZS5nLiwgYXV0by1pbmNyZW1lbnQpLlxuICogQHBhcmFtIHN0cmF0ZWd5IFRoZSBnZW5lcmF0aW9uIHN0cmF0ZWd5IChlLmcuLCBcIklERU5USVRZXCIpLiBQYXJhbWV0ZXIgaXMgY3VycmVudGx5IHVudXNlZCBpbiBsb2dpYy5cbiAqL1xuZXhwb3J0IGNvbnN0IEdlbmVyYXRlZCA9IChzdHJhdGVneTogc3RyaW5nKSA9PlxuICBjcmVhdGVQcm9wZXJ0eURlY29yYXRvcihcImdlbmVyYXRlZFwiKTtcblxuLyoqXG4gKiBEZWZpbmVzIGEgb25lLXRvLW1hbnkgcmVsYXRpb25zaGlwLlxuICovXG5leHBvcnQgZnVuY3Rpb24gT25lVG9NYW55KFxuICB0eXBlRnVuY3Rpb246ICgpID0+IEZ1bmN0aW9uLFxuICBvcHRpb25zOiBPbmVUb01hbnlPcHRpb25zXG4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChfOiBhbnksIGNvbnRleHQ6IENsYXNzRmllbGREZWNvcmF0b3JDb250ZXh0KSB7XG4gICAgaWYgKGNvbnRleHQua2luZCAhPT0gXCJmaWVsZFwiKSByZXR1cm47XG5cbiAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyKGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGN0b3IgPSAodGhpcyBhcyBhbnkpLmNvbnN0cnVjdG9yIGFzIEVudGl0eUNvbnN0cnVjdG9yO1xuICAgICAgY29uc3QgcHJvcGVydHlOYW1lID0gY29udGV4dC5uYW1lLnRvU3RyaW5nKCk7XG4gICAgICBjb25zdCBtZXRhZGF0YUFycmF5ID0gZ2V0TWV0YWRhdGFBcnJheShjdG9yKTtcblxuICAgICAgbGV0IG1ldGFkYXRhID0gbWV0YWRhdGFBcnJheS5maW5kKFxuICAgICAgICAobSkgPT4gbS5wcm9wZXJ0eU5hbWUgPT09IHByb3BlcnR5TmFtZVxuICAgICAgKTtcblxuICAgICAgaWYgKCFtZXRhZGF0YSkge1xuICAgICAgICBtZXRhZGF0YSA9IHtcbiAgICAgICAgICBwcm9wZXJ0eU5hbWU6IHByb3BlcnR5TmFtZSxcbiAgICAgICAgICBpc0lkOiBmYWxzZSxcbiAgICAgICAgICBpc0dlbmVyYXRlZDogZmFsc2UsXG4gICAgICAgIH07XG4gICAgICAgIG1ldGFkYXRhQXJyYXkucHVzaChtZXRhZGF0YSk7XG4gICAgICB9XG5cbiAgICAgIG1ldGFkYXRhLm9uZVRvTWFueU9wdGlvbnMgPSB7IHR5cGU6IHR5cGVGdW5jdGlvbigpLCBvcHRpb25zIH07XG4gICAgfSk7XG4gIH07XG59XG5cbi8qKlxuICogRGVmaW5lcyBhIG1hbnktdG8tb25lIHJlbGF0aW9uc2hpcC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIE1hbnlUb09uZShcbiAgdHlwZUZ1bmN0aW9uOiAoKSA9PiBGdW5jdGlvbixcbiAgb3B0aW9uczogTWFueVRvT25lT3B0aW9ucyA9IHt9XG4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChfOiBhbnksIGNvbnRleHQ6IENsYXNzRmllbGREZWNvcmF0b3JDb250ZXh0KSB7XG4gICAgaWYgKGNvbnRleHQua2luZCAhPT0gXCJmaWVsZFwiKSByZXR1cm47XG5cbiAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyKGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGN0b3IgPSAodGhpcyBhcyBhbnkpLmNvbnN0cnVjdG9yIGFzIEVudGl0eUNvbnN0cnVjdG9yO1xuICAgICAgY29uc3QgcHJvcGVydHlOYW1lID0gY29udGV4dC5uYW1lLnRvU3RyaW5nKCk7XG4gICAgICBjb25zdCBtZXRhZGF0YUFycmF5ID0gZ2V0TWV0YWRhdGFBcnJheShjdG9yKTtcblxuICAgICAgbGV0IG1ldGFkYXRhID0gbWV0YWRhdGFBcnJheS5maW5kKFxuICAgICAgICAobSkgPT4gbS5wcm9wZXJ0eU5hbWUgPT09IHByb3BlcnR5TmFtZVxuICAgICAgKTtcblxuICAgICAgaWYgKCFtZXRhZGF0YSkge1xuICAgICAgICBtZXRhZGF0YSA9IHtcbiAgICAgICAgICBwcm9wZXJ0eU5hbWU6IHByb3BlcnR5TmFtZSxcbiAgICAgICAgICBpc0lkOiBmYWxzZSxcbiAgICAgICAgICBpc0dlbmVyYXRlZDogZmFsc2UsXG4gICAgICAgIH07XG4gICAgICAgIG1ldGFkYXRhQXJyYXkucHVzaChtZXRhZGF0YSk7XG4gICAgICB9XG5cbiAgICAgIG1ldGFkYXRhLm1hbnlUb09uZU9wdGlvbnMgPSB7IHR5cGU6IHR5cGVGdW5jdGlvbigpLCBvcHRpb25zIH07XG4gICAgfSk7XG4gIH07XG59Il0sCiAgIm1hcHBpbmdzIjogIkFBeUVBLE1BQU0sY0FDSCxXQUFtQixpQ0FDbEIsV0FBbUIsK0JBQStCLG9CQUFJLFFBQVE7QUFFbEUsU0FBUyxpQkFBaUIsYUFBMkM7QUFDbkUs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
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RiL2RlY29yYXRvcnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogKiBFQ01BU2NyaXB0IDIwMjUtY29tcGxpYW50IE9STSBkZWNvcmF0b3IgaW1wbGVtZW50YXRpb25cbiAqIENvbXBhdGlibGUgd2l0aCBHcmFhbEpTIHJ1bnRpbWUuXG4gKiAqIEZlYXR1cmVzOlxuICogLSBVc2VzIGNvbnRleHQuYWRkSW5pdGlhbGl6ZXIgZm9yIHN0YWJsZSBkZWNvcmF0b3IgdGltaW5nXG4gKiAtIFN0b3JlcyBtZXRhZGF0YSBpbiBhIGdsb2JhbCBXZWFrTWFwIGNhY2hlXG4gKiAtIEZpbmFsaXplcyBlbnRpdHkgbWV0YWRhdGEgb25jZSBwZXIgY2xhc3NcbiAqIC0gRGVmZXJzIGZpbmFsaXphdGlvbiB2aWEgbWljcm90YXNrIChQcm9taXNlLnJlc29sdmUoKS50aGVuKVxuICovXG5cbi8vIC0tLSBEZWNvcmF0b3IgQ29udGV4dCBUeXBlcyAoYmFzZWQgb24gRUNNQVNjcmlwdCBEZWNvcmF0b3JzIHByb3Bvc2FsKSAtLS1cbnR5cGUgQ2xhc3NGaWVsZERlY29yYXRvckNvbnRleHQgPSB7XG4gIGtpbmQ6IFwiZmllbGRcIjtcbiAgbmFtZTogc3RyaW5nIHwgc3ltYm9sO1xuICBzdGF0aWM6IGJvb2xlYW47XG4gIHByaXZhdGU6IGJvb2xlYW47XG4gIGFkZEluaXRpYWxpemVyKGZuOiAoKSA9PiB2b2lkKTogdm9pZDtcbn07XG5cbnR5cGUgQ2xhc3NEZWNvcmF0b3JDb250ZXh0ID0ge1xuICBraW5kOiBcImNsYXNzXCI7XG4gIG5hbWU/OiBzdHJpbmcgfCBzeW1ib2w7XG4gIGFkZEluaXRpYWxpemVyKGZuOiAoKSA9PiB2b2lkKTogdm9pZDtcbn07XG5cbmV4cG9ydCB0eXBlIENvbHVtblR5cGVzID1cbiAgLy8gTnVtZXJpYyB0eXBlc1xuICB8ICdpbnRlZ2VyJyB8ICdsb25nJyB8ICdzaG9ydCcgfCAnYnl0ZScgfCAnZmxvYXQnIHwgJ2RvdWJsZScgfCAnYmlnX2ludGVnZXInIHwgJ2JpZ19kZWNpbWFsJ1xuICAvLyBTdHJpbmcgdHlwZXNcbiAgfCAnc3RyaW5nJyB8ICdjaGFyJyB8ICd0ZXh0JyB8ICduc3RyaW5nJyB8ICdudGV4dCdcbiAgLy8gRGF0ZS9UaW1lIHR5cGVzXG4gIHwgJ2RhdGUnIHwgJ3RpbWUnIHwgJ3RpbWVzdGFtcCcgfCAnY2FsZW5kYXInIHwgJ2NhbGVuZGFyX2RhdGUnIHwgJ2luc3RhbnQnXG4gIC8vIEJvb2xlYW4gdHlwZXNcbiAgfCAnYm9vbGVhbicgfCAndHJ1ZV9mYWxzZScgfCAneWVzX25vJyB8ICdudW1lcmljX2Jvb2xlYW4nIFxuICAvLyBCaW5hcnkgdHlwZXNcbiAgfCAnYmluYXJ5JyB8ICdibG9iJyB8ICdjbG9iJyB8ICdtYXRlcmlhbGl6ZWRfYmxvYicgfCAnbWF0ZXJpYWxpemVkX2Nsb2InXG4gIC8vIE90aGVyIHR5cGVzXG4gIHwgJ3NlcmlhbGl6YWJsZScgfCAnYW55JyB8ICdvYmplY3QnIHwgJ3V1aWQtY2hhcicgfCAndXVpZC1iaW5hcnknIHwgJ2pzb24nIHwgJ2pzb25iJyB8ICd4bWwnO1xuXG4vLyAtLS0gTWV0YWRhdGEgTW9kZWxzIC0tLVxuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5PcHRpb25zIHtcbiAgbmFtZT86IHN0cmluZztcbiAgdHlwZT86IENvbHVtblR5cGVzIHwgKHN0cmluZyAmIHt9KTtcbiAgbGVuZ3RoPzogbnVtYmVyO1xuICBudWxsYWJsZT86IGJvb2xlYW47XG4gIGRlZmF1bHRWYWx1ZT86IHN0cmluZztcbiAgcHJlY2lzaW9uPzogbnVtYmVyO1xuICBzY2FsZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPbmVUb01hbnlPcHRpb25zIHtcbiAgdGFibGU/OiBzdHJpbmc7XG4gIGpvaW5Db2x1bW46IHN0cmluZztcbiAgY2FzY2FkZT86IFwiYWxsXCIgfCBcIm5vbmVcIiB8IFwicGVyc2lzdFwiIHwgXCJtZXJnZVwiIHwgXCJyZW1vdmVcIjtcbiAgaW52ZXJzZT86IGJvb2xlYW47XG4gIGxhenk/OiBib29sZWFuO1xuICBmZXRjaD86IFwic2VsZWN0XCIgfCBcImpvaW5cIjtcbiAgam9pbkNvbHVtbk5vdE51bGw/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hbnlUb09uZU9wdGlvbnMge1xuICBqb2luQ29sdW1uPzogc3RyaW5nO1xuICBjYXNjYWRlPzogXCJhbGxcIiB8IFwibm9uZVwiIHwgXCJwZXJzaXN0XCIgfCBcIm1lcmdlXCIgfCBcInJlbW92ZVwiO1xuICBudWxsYWJsZT86IGJvb2xlYW47XG4gIGxhenk/OiBib29sZWFuO1xuICBmZXRjaD86IFwic2VsZWN0XCIgfCBcImpvaW5cIjtcbn1cblxuaW50ZXJmYWNlIFByb3BlcnR5TWV0YWRhdGEge1xuICBwcm9wZXJ0eU5hbWU6IHN0cmluZztcbiAgaXNJZDogYm9vbGVhbjtcbiAgaXNHZW5lcmF0ZWQ6IGJvb2xlYW47XG4gIGRvY3VtZW50YXRpb24/OiBzdHJpbmc7XG4gIGNvbHVtbk9wdGlvbnM/OiBDb2x1bW5PcHRpb25zO1xuICBvbmVUb01hbnlPcHRpb25zPzogeyB0eXBlOiBGdW5jdGlvbjsgb3B0aW9uczogT25lVG9NYW55T3B0aW9ucyB9O1xuICBtYW55VG9PbmVPcHRpb25zPzogeyB0eXBlOiBGdW5jdGlvbjsgb3B0aW9uczogTWFueVRvT25lT3B0aW9ucyB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eUNvbnN0cnVjdG9yIGV4dGVuZHMgRnVuY3Rpb24ge1xuICBuZXcoLi4uYXJnczogYW55W10pOiBhbnk7XG4gICRlbnRpdHlfbmFtZTogc3RyaW5nO1xuICAkdGFibGVfbmFtZTogc3RyaW5nO1xuICAkaWRfbmFtZTogc3RyaW5nO1xuICAkaWRfY29sdW1uOiBzdHJpbmc7XG4gICRpbml0aWFsaXplZD86IGJvb2xlYW47XG4gICRkb2N1bWVudGF0aW9uPzogc3RyaW5nO1xufVxuXG4vLyAtLS0gR2xvYmFsIE1ldGFkYXRhIENhY2hlIC0tLVxuY29uc3QgZ2xvYmFsQ2FjaGU6IFdlYWtNYXA8RnVuY3Rpb24sIFByb3BlcnR5TWV0YWRhdGFbXT4gPVxuICAoZ2xvYmFsVGhpcyBhcyBhbnkpLl9fZGVjb3JhdG9yX21ldGFkYXRhX2NhY2hlX18gfHxcbiAgKChnbG9iYWxUaGlzIGFzIGFueSkuX19kZWNvcmF0b3JfbWV0YWRhdGFfY2FjaGVfXyA9IG5ldyBXZWFrTWFwKCkpO1xuXG5mdW5jdGlvbiBnZXRNZXRhZGF0YUFycmF5KGNvbnN0cnVjdG9yOiBGdW5jdGlvbik6IFByb3BlcnR5TWV0YWRhdGFbXSB7XG4gIGlmICghZ2xvYmFsQ2FjaGUuaGFzKGNvbnN0cnVjdG9yKSkge1xuICAgIGdsb2JhbENhY2hlLnNldChjb25zdHJ1Y3RvciwgW10pO1xuICB9XG4gIHJldHVybiBnbG9iYWxDYWNoZS5nZXQoY29uc3RydWN0b3IpITtcbn1cblxuLy8gLS0tIERlZmVyIEhlbHBlciAoR3JhYWxKUy1zYWZlIG1pY3JvdGFzaykgLS0tXG5mdW5jdGlvbiBkZWZlcihmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAvLyBVc2VzIFByb21pc2UgbWljcm90YXNrIHF1ZXVlIGZvciBkZWZlcnJlZCBleGVjdXRpb25cbiAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmbik7XG59XG5cbi8vIC0tLSBDb3JlIFByb3BlcnR5IERlY29yYXRvciBGYWN0b3J5IC0tLVxuZnVuY3Rpb24gY3JlYXRlUHJvcGVydHlEZWNvcmF0b3IoXG4gIGtpbmQ6IFwiY29sdW1uXCIgfCBcImlkXCIgfCBcImdlbmVyYXRlZFwiLFxuICBvcHRpb25zPzogQ29sdW1uT3B0aW9uc1xuKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoXzogYW55LCBjb250ZXh0OiBDbGFzc0ZpZWxkRGVjb3JhdG9yQ29udGV4dCkge1xuICAgIGlmIChjb250ZXh0LmtpbmQgIT09IFwiZmllbGRcIikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBAJHtraW5kfSBtdXN0IGFwcGx5IHRvIGZpZWxkc2ApO1xuICAgIH1cblxuICAgIGNvbnRleHQuYWRkSW5pdGlhbGl6ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgY3RvciA9ICh0aGlzIGFzIGFueSkuY29uc3RydWN0b3IgYXMgRW50aXR5Q29uc3RydWN0b3I7XG4gICAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSBjb250ZXh0Lm5hbWUudG9TdHJpbmcoKTtcbiAgICAgIGNvbnN0IG1ldGFkYXRhQXJyYXkgPSBnZXRNZXRhZGF0YUFycmF5KGN0b3IpO1xuXG4gICAgICBsZXQgbWV0YWRhdGEgPSBtZXRhZGF0YUFycmF5LmZpbmQoXG4gICAgICAgIChtKSA9PiBtLnByb3BlcnR5TmFtZSA9PT0gcHJvcGVydHlOYW1lXG4gICAgICApO1xuXG4gICAgICBpZiAoIW1ldGFkYXRhKSB7XG4gICAgICAgIG1ldGFkYXRhID0ge1xuICAgICAgICAgIHByb3BlcnR5TmFtZTogcHJvcGVydHlOYW1lLFxuICAgICAgICAgIGlzSWQ6IGZhbHNlLFxuICAgICAgICAgIGlzR2VuZXJhdGVkOiBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgICAgbWV0YWRhdGFBcnJheS5wdXNoKG1ldGFkYXRhKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGtpbmQgPT09IFwiaWRcIikgbWV0YWRhdGEuaXNJZCA9IHRydWU7XG4gICAgICBpZiAoa2luZCA9PT0gXCJnZW5lcmF0ZWRcIikgbWV0YWRhdGEuaXNHZW5lcmF0ZWQgPSB0cnVlO1xuICAgICAgaWYgKGtpbmQgPT09IFwiY29sdW1uXCIpIG1ldGFkYXRhLmNvbHVtbk9wdGlvbnMgPSBvcHRpb25zO1xuICAgIH0pO1xuICB9O1xufVxuXG4vLyAtLS0gQERvY3VtZW50YXRpb24gRGVjb3JhdG9yIChEdWFsLVB1cnBvc2UpIC0tLVxuLyoqXG4gKiBBZGRzIGRvY3VtZW50YXRpb24gbWV0YWRhdGEgdG8gYSBjbGFzcyBvciBhIGZpZWxkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gRG9jdW1lbnRhdGlvbihkZXNjcmlwdGlvbjogc3RyaW5nKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoXG4gICAgdmFsdWU6IEZ1bmN0aW9uIHwgYW55LFxuICAgIGNvbnRleHQ6IENsYXNzRGVjb3JhdG9yQ29udGV4dCB8IENsYXNzRmllbGREZWNvcmF0b3JDb250ZXh0XG4gICkge1xuICAgIGlmIChjb250ZXh0LmtpbmQgPT09IFwiY2xhc3NcIikge1xuICAgICAgY29udGV4dC5hZGRJbml0aWFsaXplcihmdW5jdGlvbiAoKSB7XG4gICAgICAgICh2YWx1ZSBhcyBFbnRpdHlDb25zdHJ1Y3RvcikuJGRvY3VtZW50YXRpb24gPSBkZXNjcmlwdGlvbjtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0gZWxzZSBpZiAoY29udGV4dC5raW5kID09PSBcImZpZWxkXCIpIHtcbiAgICAgIGNvbnRleHQuYWRkSW5pdGlhbGl6ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgICBjb25zdCBjdG9yID0gKHRoaXMgYXMgYW55KS5jb25zdHJ1Y3RvciBhcyBFbnRpdHlDb25zdHJ1Y3RvcjtcbiAgICAgICAgY29uc3QgcHJvcGVydHlOYW1lID0gY29udGV4dC5uYW1lLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IG1ldGFkYXRhQXJyYXkgPSBnZXRNZXRhZGF0YUFycmF5KGN0b3IpO1xuXG4gICAgICAgIGxldCBtZXRhZGF0YSA9IG1ldGFkYXRhQXJyYXkuZmluZChcbiAgICAgICAgICAobSkgPT4gbS5wcm9wZXJ0eU5hbWUgPT09IHByb3BlcnR5TmFtZVxuICAgICAgICApO1xuXG4gICAgICAgIGlmICghbWV0YWRhdGEpIHtcbiAgICAgICAgICBtZXRhZGF0YSA9IHtcbiAgICAgICAgICAgIHByb3BlcnR5TmFtZTogcHJvcGVydHlOYW1lLFxuICAgICAgICAgICAgaXNJZDogZmFsc2UsXG4gICAgICAgICAgICBpc0dlbmVyYXRlZDogZmFsc2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBtZXRhZGF0YUFycmF5LnB1c2gobWV0YWRhdGEpO1xuICAgICAgICB9XG5cbiAgICAgICAgbWV0YWRhdGEuZG9jdW1lbnRhdGlvbiA9IGRlc2NyaXB0aW9uO1xuICAgICAgfSk7XG4gICAgfVxuICB9O1xufVxuXG5cbi8vIC0tLSBARW50aXR5IERlY29yYXRvciAtLS1cbi8qKlxuICogTWFya3MgYSBjbGFzcyBhcyBhbiBlbnRpdHkgYW5kIGluaXRpYXRlcyBtZXRhZGF0YSBmaW5hbGl6YXRpb24uXG4gKiBAcGFyYW0gZW50aXR5TmFtZSBUaGUgbmFtZSBvZiB0aGUgZW50aXR5IChkZWZhdWx0cyB0byBjbGFzcyBuYW1lKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEVudGl0eShlbnRpdHlOYW1lPzogc3RyaW5nKSB7XG4gIHJldHVybiBmdW5jdGlvbiAodmFsdWU6IEZ1bmN0aW9uLCBjb250ZXh0OiBDbGFzc0RlY29yYXRvckNvbnRleHQpIHtcbiAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyKGZ1bmN0aW9uICgpIHtcbiAgICAgIC8vIERlZmVyIGV4ZWN1dGlvbiB0byBlbnN1cmUgYWxsIGZpZWxkIGRlY29yYXRvcnMgaGF2ZSBydW5cbiAgICAgIGRlZmVyKCgpID0+IHtcbiAgICAgICAgY29uc3QgY3RvciA9IHZhbHVlIGFzIEVudGl0eUNvbnN0cnVjdG9yO1xuXG4gICAgICAgIC8vIFByZXZlbnQgZHVwbGljYXRlIHJlZ2lzdHJhdGlvbiAoaWRlbXBvdGVuY3kpXG4gICAgICAgIGlmIChjdG9yLiRpbml0aWFsaXplZCkgcmV0dXJuO1xuICAgICAgICBjdG9yLiRpbml0aWFsaXplZCA9IHRydWU7XG5cbiAgICAgICAgY3Rvci4kZW50aXR5X25hbWUgPSBlbnRpdHlOYW1lIHx8IGN0b3IubmFtZTtcblxuICAgICAgICBjb25zdCBtZXRhZGF0YUFycmF5ID0gZ2V0TWV0YWRhdGFBcnJheShjdG9yKTtcbiAgICAgICAgY29uc3QgaWRNZXRhZGF0YSA9IG1ldGFkYXRhQXJyYXkuZmluZCgobSkgPT4gbS5pc0lkKTtcblxuICAgICAgICBpZiAoaWRNZXRhZGF0YSkge1xuICAgICAgICAgIGN0b3IuJGlkX25hbWUgPSBpZE1ldGFkYXRhLnByb3BlcnR5TmFtZTtcbiAgICAgICAgICAvLyBEZXRlcm1pbmUgSUQgY29sdW1uIG5hbWU6IHVzZSBleHBsaWNpdCBuYW1lIG9yIGNvbnZlcnQgcHJvcGVydHkgbmFtZSB0byB1cHBlciBjYXNlXG4gICAgICAgICAgY3Rvci4kaWRfY29sdW1uID1cbiAgICAgICAgICAgIGlkTWV0YWRhdGEuY29sdW1uT3B0aW9ucz8ubmFtZSB8fFxuICAgICAgICAgICAgaWRNZXRhZGF0YS5wcm9wZXJ0eU5hbWUudG9VcHBlckNhc2UoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZ1dHVyZTogTG9naWMgdG8gbWFwIGFsbCBwcm9wZXJ0aWVzIHRvIGNvbHVtbnMvcmVsYXRpb25zIGdvZXMgaGVyZVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH07XG59XG5cbi8vIC0tLSBAVGFibGUgRGVjb3JhdG9yIC0tLVxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIGRhdGFiYXNlIHRhYmxlIG5hbWUgZm9yIHRoZSBlbnRpdHkuXG4gKiBAcGFyYW0gdGFibGVOYW1lIFRoZSB0YWJsZSBuYW1lIChkZWZhdWx0cyB0byB1cHBlcmNhc2UgY2xhc3MgbmFtZSkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBUYWJsZSh0YWJsZU5hbWU/OiBzdHJpbmcpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIDxUIGV4dGVuZHMgRW50aXR5Q29uc3RydWN0b3I+KFxuICAgIHZhbHVlOiBULFxuICAgIGNvbnRleHQ6IENsYXNzRGVjb3JhdG9yQ29udGV4dFxuICApIHtcbiAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyKGZ1bmN0aW9uICgpIHtcbiAgICAgICh2YWx1ZSBhcyBFbnRpdHlDb25zdHJ1Y3RvcikuJHRhYmxlX25hbWUgPVxuICAgICAgICB0YWJsZU5hbWUgfHwgKGNvbnRleHQubmFtZT8udG9TdHJpbmcoKSA/PyB2YWx1ZS5uYW1lLnRvVXBwZXJDYXNlKCkpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9O1xufVxuXG4vLyAtLS0gRXhwb3J0ZWQgUHJvcGVydHkgRGVjb3JhdG9ycyAtLS1cbi8qKlxuICogTWFya3MgYSBwcm9wZXJ0eSBhcyBhIHN0YW5kYXJkIGRhdGFiYXNlIGNvbHVtbi5cbiAqL1xuZXhwb3J0IGNvbnN0IENvbHVtbiA9IChvcHRpb25zPzogQ29sdW1uT3B0aW9ucykgPT5cbiAgY3JlYXRlUHJvcGVydHlEZWNvcmF0b3IoXCJjb2x1bW5cIiwgb3B0aW9ucyk7XG5cbi8qKlxuICogTWFya3MgYSBwcm9wZXJ0eSBhcyB0aGUgZW50aXR5J3MgcHJpbWFyeSBrZXkuXG4gKi9cbmV4cG9ydCBjb25zdCBJZCA9ICgpID0+IGNyZWF0ZVByb3BlcnR5RGVjb3JhdG9yKFwiaWRcIik7XG5cbi8qKlxuICogTWFya3MgYSBwcm9wZXJ0eSBhcyBhIGdlbmVyYXRlZCB2YWx1ZSAoZS5nLiwgYXV0by1pbmNyZW1lbnQpLlxuICogQHBhcmFtIHN0cmF0ZWd5IFRoZSBnZW5lcmF0aW9uIHN0cmF0ZWd5IChlLmcuLCBcIklERU5USVRZXCIpLiBQYXJhbWV0ZXIgaXMgY3VycmVudGx5IHVudXNlZCBpbiBsb2dpYy5cbiAqL1xuZXhwb3J0IGNvbnN0IEdlbmVyYXRlZCA9IChzdHJhdGVneTogc3RyaW5nKSA9PlxuICBjcmVhdGVQcm9wZXJ0eURlY29yYXRvcihcImdlbmVyYXRlZFwiKTtcblxuLyoqXG4gKiBEZWZpbmVzIGEgb25lLXRvLW1hbnkgcmVsYXRpb25zaGlwLlxuICovXG5leHBvcnQgZnVuY3Rpb24gT25lVG9NYW55KFxuICB0eXBlRnVuY3Rpb246ICgpID0+IEZ1bmN0aW9uLFxuICBvcHRpb25zOiBPbmVUb01hbnlPcHRpb25zXG4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChfOiBhbnksIGNvbnRleHQ6IENsYXNzRmllbGREZWNvcmF0b3JDb250ZXh0KSB7XG4gICAgaWYgKGNvbnRleHQua2luZCAhPT0gXCJmaWVsZFwiKSByZXR1cm47XG5cbiAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyKGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGN0b3IgPSAodGhpcyBhcyBhbnkpLmNvbnN0cnVjdG9yIGFzIEVudGl0eUNvbnN0cnVjdG9yO1xuICAgICAgY29uc3QgcHJvcGVydHlOYW1lID0gY29udGV4dC5uYW1lLnRvU3RyaW5nKCk7XG4gICAgICBjb25zdCBtZXRhZGF0YUFycmF5ID0gZ2V0TWV0YWRhdGFBcnJheShjdG9yKTtcblxuICAgICAgbGV0IG1ldGFkYXRhID0gbWV0YWRhdGFBcnJheS5maW5kKFxuICAgICAgICAobSkgPT4gbS5wcm9wZXJ0eU5hbWUgPT09IHByb3BlcnR5TmFtZVxuICAgICAgKTtcblxuICAgICAgaWYgKCFtZXRhZGF0YSkge1xuICAgICAgICBtZXRhZGF0YSA9IHtcbiAgICAgICAgICBwcm9wZXJ0eU5hbWU6IHByb3BlcnR5TmFtZSxcbiAgICAgICAgICBpc0lkOiBmYWxzZSxcbiAgICAgICAgICBpc0dlbmVyYXRlZDogZmFsc2UsXG4gICAgICAgIH07XG4gICAgICAgIG1ldGFkYXRhQXJyYXkucHVzaChtZXRhZGF0YSk7XG4gICAgICB9XG5cbiAgICAgIG1ldGFkYXRhLm9uZVRvTWFueU9wdGlvbnMgPSB7IHR5cGU6IHR5cGVGdW5jdGlvbigpLCBvcHRpb25zIH07XG4gICAgfSk7XG4gIH07XG59XG5cbi8qKlxuICogRGVmaW5lcyBhIG1hbnktdG8tb25lIHJlbGF0aW9uc2hpcC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIE1hbnlUb09uZShcbiAgdHlwZUZ1bmN0aW9uOiAoKSA9PiBGdW5jdGlvbixcbiAgb3B0aW9uczogTWFueVRvT25lT3B0aW9ucyA9IHt9XG4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChfOiBhbnksIGNvbnRleHQ6IENsYXNzRmllbGREZWNvcmF0b3JDb250ZXh0KSB7XG4gICAgaWYgKGNvbnRleHQua2luZCAhPT0gXCJmaWVsZFwiKSByZXR1cm47XG5cbiAgICBjb250ZXh0LmFkZEluaXRpYWxpemVyKGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGN0b3IgPSAodGhpcyBhcyBhbnkpLmNvbnN0cnVjdG9yIGFzIEVudGl0eUNvbnN0cnVjdG9yO1xuICAgICAgY29uc3QgcHJvcGVydHlOYW1lID0gY29udGV4dC5uYW1lLnRvU3RyaW5nKCk7XG4gICAgICBjb25zdCBtZXRhZGF0YUFycmF5ID0gZ2V0TWV0YWRhdGFBcnJheShjdG9yKTtcblxuICAgICAgbGV0IG1ldGFkYXRhID0gbWV0YWRhdGFBcnJheS5maW5kKFxuICAgICAgICAobSkgPT4gbS5wcm9wZXJ0eU5hbWUgPT09IHByb3BlcnR5TmFtZVxuICAgICAgKTtcblxuICAgICAgaWYgKCFtZXRhZGF0YSkge1xuICAgICAgICBtZXRhZGF0YSA9IHtcbiAgICAgICAgICBwcm9wZXJ0eU5hbWU6IHByb3BlcnR5TmFtZSxcbiAgICAgICAgICBpc0lkOiBmYWxzZSxcbiAgICAgICAgICBpc0dlbmVyYXRlZDogZmFsc2UsXG4gICAgICAgIH07XG4gICAgICAgIG1ldGFkYXRhQXJyYXkucHVzaChtZXRhZGF0YSk7XG4gICAgICB9XG5cbiAgICAgIG1ldGFkYXRhLm1hbnlUb09uZU9wdGlvbnMgPSB7IHR5cGU6IHR5cGVGdW5jdGlvbigpLCBvcHRpb25zIH07XG4gICAgfSk7XG4gIH07XG59Il0sCiAgIm1hcHBpbmdzIjogIkFBeUZBLE1BQU0sY0FDSCxXQUFtQixpQ0FDbEIsV0FBbUIsK0JBQStCLG9CQUFJLFFBQVE7QUFFbEUsU0FBUyxpQkFBaUIsYUFBMkM7QUFDbkUsTUFBSSxDQUFDLFlBQVksSUFBSSxXQUFXLEdBQUc7QUFDakMsZ0JBQVksSUFBSSxhQUFhLENBQUMsQ0FBQztBQUFBLEVBQ2pDO0FBQ0EsU0FBTyxZQUFZLElBQUksV0FBVztBQUNwQztBQUdBLFNBQVMsTUFBTSxJQUFzQjtBQUVuQyxVQUFRLFFBQVEsRUFBRSxLQUFLLEVBQUU7QUFDM0I7QUFHQSxTQUFTLHdCQUNQLE1BQ0EsU0FDQTtBQUNBLFNBQU8sU0FBVSxHQUFRLFNBQXFDO0FBQzVELFFBQUksUUFB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
|
|
@@ -126,4 +126,4 @@ class Repository {
|
|
|
126
126
|
export {
|
|
127
127
|
Repository
|
|
128
128
|
};
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RiL3JlcG9zaXRvcnkudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IHN0b3JlLCB0cmFuc2xhdG9yLCBFbnRpdHlDb25zdHJ1Y3RvciwgT3B0aW9ucyB9IGZyb20gXCJAYWVyb2tpdC9zZGsvZGJcIjtcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBkYXRhIHN0cnVjdHVyZSBwYXNzZWQgdG8gdGhlIGV2ZW50IHRyaWdnZXIgbWV0aG9kIGJlZm9yZS9hZnRlciBhbiBvcGVyYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5RXZlbnQ8VD4ge1xuICAgIHJlYWRvbmx5IG9wZXJhdGlvbjogJ2NyZWF0ZScgfCAndXBkYXRlJyB8ICdkZWxldGUnO1xuICAgIHJlYWRvbmx5IHRhYmxlOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgZW50aXR5OiBQYXJ0aWFsPFQ+OyAvLyBVc2UgUGFydGlhbDxUPiBmb3IgY3JlYXRlL2RlbGV0ZSB3aGVyZSBzb21lIGZpZWxkcyBtaWdodCBiZSBtaXNzaW5nXG4gICAgcmVhZG9ubHkga2V5OiB7XG4gICAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgICAgY29sdW1uOiBzdHJpbmc7XG4gICAgICAgIHZhbHVlOiBzdHJpbmcgfCBudW1iZXI7XG4gICAgfVxuICAgIHJlYWRvbmx5IHByZXZpb3VzRW50aXR5PzogVDtcbn1cblxuXG4vLyAtLS0gUmVwb3NpdG9yeSBDbGFzcyAtLS1cblxuLyoqXG4gKiBBYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBkYXRhIGFjY2Vzcy9idXNpbmVzcyBsb2dpYywgd3JhcHBpbmcgdGhlIGBzdG9yZWAgQVBJLlxuICogSXQgaGFuZGxlcyBlbnRpdHkgbWV0YWRhdGEgbG9va3VwLCBDUlVEIG9wZXJhdGlvbnMsIHRyYW5zbGF0aW9uLCBhbmQgZXZlbnQgdHJpZ2dlcmluZy5cbiAqIEB0ZW1wbGF0ZSBUIFRoZSBlbnRpdHkgdHlwZSAobXVzdCBiZSBhbiBvYmplY3QpLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmVwb3NpdG9yeTxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj4ge1xuXG4gICAgcHJpdmF0ZSBlbnRpdHlDb25zdHJ1Y3RvcjogRW50aXR5Q29uc3RydWN0b3I7XG5cbiAgICBjb25zdHJ1Y3RvcihlbnRpdHlDb25zdHJ1Y3RvcjogRW50aXR5Q29uc3RydWN0b3IpIHtcbiAgICAgICAgdGhpcy5lbnRpdHlDb25zdHJ1Y3RvciA9IGVudGl0eUNvbnN0cnVjdG9yO1xuICAgICAgICBcbiAgICAgICAgLy8gQ2FjaGVzIGVudGl0eSBtZXRhZGF0YSAobmFtZSwgdGFibGUsIGlkKSBvbnRvIHRoZSBjb25zdHJ1Y3RvciBmdW5jdGlvbiBmb3Igc3RhdGljIGFjY2Vzc1xuXHRcdGlmICghdGhpcy5lbnRpdHlDb25zdHJ1Y3Rvci4kZW50aXR5X25hbWUpIHtcbiAgICAgICAgICAgIC8vIEFzc3VtZXMgc3RvcmUgbWV0aG9kcyByZXR1cm4gbm9uLW51bGwgc3RyaW5nc1xuXHRcdFx0dGhpcy5lbnRpdHlDb25zdHJ1Y3Rvci4kZW50aXR5X25hbWUgPSAoc3RvcmUgYXMgYW55KS5nZXRFbnRpdHlOYW1lKHRoaXMuZW50aXR5Q29uc3RydWN0b3IubmFtZSk7XG5cdFx0XHR0aGlzLmVudGl0eUNvbnN0cnVjdG9yLiR0YWJsZV9uYW1lID0gKHN0b3JlIGFzIGFueSkuZ2V0VGFibGVOYW1lKHRoaXMuZW50aXR5Q29uc3RydWN0b3IubmFtZSk7XG5cdFx0XHR0aGlzLmVudGl0eUNvbnN0cnVjdG9yLiRpZF9uYW1lID0gKHN0b3JlIGFzIGFueSkuZ2V0SWROYW1lKHRoaXMuZW50aXR5Q29uc3RydWN0b3IubmFtZSk7XG5cdFx0XHR0aGlzLmVudGl0eUNvbnN0cnVjdG9yLiRpZF9jb2x1bW4gPSAoc3RvcmUgYXMgYW55KS5nZXRJZENvbHVtbih0aGlzLmVudGl0eUNvbnN0cnVjdG9yLm5hbWUpO1xuXHRcdH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RW50aXR5TmFtZSgpOiBzdHJpbmcge1xuICAgICAgICAvLyBVc2Ugbm9uLW51bGwgYXNzZXJ0aW9uIHNpbmNlIHRoZSBjb25zdHJ1Y3RvciBndWFyYW50ZWVzIHRoZXNlIHByb3BlcnRpZXMgZXhpc3RcbiAgICAgICAgcmV0dXJuIHRoaXMuZW50aXR5Q29uc3RydWN0b3IuJGVudGl0eV9uYW1lITtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0VGFibGVOYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudGl0eUNvbnN0cnVjdG9yLiR0YWJsZV9uYW1lITtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0SWROYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudGl0eUNvbnN0cnVjdG9yLiRpZF9uYW1lITtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0SWRDb2x1bW4oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW50aXR5Q29uc3RydWN0b3IuJGlkX2NvbHVtbiE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmluZHMgYWxsIGVudGl0aWVzIG1hdGNoaW5nIHRoZSBnaXZlbiBvcHRpb25zLlxuICAgICAqL1xuICAgIHB1YmxpYyBmaW5kQWxsKG9wdGlvbnM6IE9wdGlvbnMgPSB7fSk6IFRbXSB7XG4gICAgICAgIC8vIEFzc3VtZSBzdG9yZS5saXN0IHJldHVybnMgVFtdIGJ1dCB3ZSBleHBsaWNpdGx5IGNhc3QgaXQgdG8gVFtdXG4gICAgICAgIGNvbnN0IGxpc3Q6IFRbXSA9IChzdG9yZSBhcyBhbnkpLmxpc3QodGhpcy5nZXRFbnRpdHlOYW1lKCksIG9wdGlvbnMpO1xuICAgICAgICAodHJhbnNsYXRvciBhcyBhbnkpLnRyYW5zbGF0ZUxpc3QobGlzdCwgb3B0aW9ucy5sYW5ndWFnZSwgdGhpcy5nZXRUYWJsZU5hbWUoKSk7XG4gICAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZpbmRzIGEgc2luZ2xlIGVudGl0eSBieSBpdHMgcHJpbWFyeSBrZXkgSUQuXG4gICAgICovXG4gICAgcHVibGljIGZpbmRCeUlkKGlkOiBudW1iZXIgfCBzdHJpbmcsIG9wdGlvbnM6IE9wdGlvbnMgPSB7fSk6IFQgfCB1bmRlZmluZWQge1xuICAgICAgICAvLyBBc3N1bWUgc3RvcmUuZ2V0IHJldHVybnMgVCBvciBudWxsL3VuZGVmaW5lZFxuICAgICAgICBjb25zdCBlbnRpdHk6IFQgfCBudWxsID0gKHN0b3JlIGFzIGFueSkuZ2V0KHRoaXMuZ2V0RW50aXR5TmFtZSgpLCBpZCk7XG4gICAgICAgICh0cmFuc2xhdG9yIGFzIGFueSkudHJhbnNsYXRlRW50aXR5KGVudGl0eSwgaWQsIG9wdGlvbnMubGFuZ3VhZ2UsIHRoaXMuZ2V0VGFibGVOYW1lKCkpO1xuICAgICAgICByZXR1cm4gZW50aXR5ID8/IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbmV3IGVudGl0eSBpbiB0aGUgZGF0YWJhc2UuXG4gICAgICogQHJldHVybnMgVGhlIGdlbmVyYXRlZCBJRCAoc3RyaW5nIG9yIG51bWJlcikuXG4gICAgICovXG4gICAgcHVibGljIGNyZWF0ZShlbnRpdHk6IFQpOiBzdHJpbmcgfCBudW1iZXIge1xuICAgICAgICBjb25zdCBpZCA9IChzdG9yZSBhcyBhbnkpLnNhdmUodGhpcy5nZXRFbnRpdHlOYW1lKCksIGVudGl0eSk7XG4gICAgICAgIHRoaXMudHJpZ2dlckV2ZW50KHtcbiAgICAgICAgICAgIG9wZXJhdGlvbjogXCJjcmVhdGVcIixcbiAgICAgICAgICAgIHRhYmxlOiB0aGlzLmdldFRhYmxlTmFtZSgpLFxuICAgICAgICAgICAgZW50aXR5OiBlbnRpdHksXG4gICAgICAgICAgICBrZXk6IHtcbiAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLmdldElkTmFtZSgpLFxuICAgICAgICAgICAgICAgIGNvbHVtbjogdGhpcy5nZXRJZENvbHVtbigpLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBpZFxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGlkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgYW4gZXhpc3RpbmcgZW50aXR5LlxuICAgICAqIFRoZSBlbnRpdHkgbXVzdCBjb250YWluIHRoZSBwcmltYXJ5IGtleS5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlKGVudGl0eTogVCk6IHZvaWQge1xuICAgICAgICBjb25zdCBpZE5hbWUgPSB0aGlzLmdldElkTmFtZSgpO1xuICAgICAgICBjb25zdCBpZCA9IGVudGl0eVtpZE5hbWVdIGFzIChudW1iZXIgfCBzdHJpbmcpO1xuICAgICAgICBcbiAgICAgICAgLy8gUmV0cmlldmUgdGhlIGVudGl0eSBzdGF0ZSBiZWZvcmUgdXBkYXRlIGZvciB0aGUgZXZlbnQgcGF5bG9hZFxuICAgICAgICBjb25zdCBwcmV2aW91c0VudGl0eSA9IHRoaXMuZmluZEJ5SWQoaWQpO1xuXG4gICAgICAgIChzdG9yZSBhcyBhbnkpLnVwZGF0ZSh0aGlzLmdldEVudGl0eU5hbWUoKSwgZW50aXR5KTtcbiAgICAgICAgXG4gICAgICAgIHRoaXMudHJpZ2dlckV2ZW50KHtcbiAgICAgICAgICAgIG9wZXJhdGlvbjogXCJ1cGRhdGVcIixcbiAgICAgICAgICAgIHRhYmxlOiB0aGlzLmdldFRhYmxlTmFtZSgpLFxuICAgICAgICAgICAgZW50aXR5OiBlbnRpdHksXG4gICAgICAgICAgICBwcmV2aW91c0VudGl0eTogcHJldmlvdXNFbnRpdHksXG4gICAgICAgICAgICBrZXk6IHtcbiAgICAgICAgICAgICAgICBuYW1lOiBpZE5hbWUsXG4gICAgICAgICAgICAgICAgY29sdW1uOiB0aGlzLmdldElkQ29sdW1uKCksXG4gICAgICAgICAgICAgICAgdmFsdWU6IGlkXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgdGhlIGVudGl0eSBpZiB0aGUgSUQgaXMgbnVsbC91bmRlZmluZWQsIG90aGVyd2lzZSB1cGRhdGVzIGl0LlxuICAgICAqIElmIGFuIElEIGlzIHByb3ZpZGVkIGJ1dCB0aGUgZW50aXR5IGRvZXNuJ3QgZXhpc3QsIGl0IGNyZWF0ZXMgaXQuXG4gICAgICogQHJldHVybnMgVGhlIGVudGl0eSdzIElELlxuICAgICAqL1xuICAgIHB1YmxpYyB1cHNlcnQoZW50aXR5OiBUKTogc3RyaW5nIHwgbnVtYmVyIHtcbiAgICAgICAgY29uc3QgaWQgPSBlbnRpdHlbdGhpcy5nZXRJZE5hbWUoKV07XG4gICAgICAgIFxuICAgICAgICAvLyBJZiBubyBJRCBpcyBwcmVzZW50LCBzYXZlIChjcmVhdGUpXG4gICAgICAgIGlmIChpZCA9PT0gbnVsbCB8fCBpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gKHN0b3JlIGFzIGFueSkuc2F2ZSh0aGlzLmdldEVudGl0eU5hbWUoKSwgZW50aXR5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIElEIGlzIHByZXNlbnQsIGNoZWNrIGV4aXN0ZW5jZVxuICAgICAgICBjb25zdCBleGlzdGluZ0VudGl0eSA9IChzdG9yZSBhcyBhbnkpLmdldCh0aGlzLmdldEVudGl0eU5hbWUoKSwgaWQpO1xuICAgICAgICBcbiAgICAgICAgaWYgKGV4aXN0aW5nRW50aXR5KSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZShlbnRpdHkpO1xuICAgICAgICAgICAgcmV0dXJuIGlkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gSUQgZXhpc3RzLCBidXQgZW50aXR5IGRvZXMgbm90IC0+IHNhdmUgKGNyZWF0ZSB3aXRoIHByb3ZpZGVkIElEKVxuICAgICAgICAgICAgcmV0dXJuIChzdG9yZSBhcyBhbnkpLnNhdmUodGhpcy5nZXRFbnRpdHlOYW1lKCksIGVudGl0eSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWxldGVzIGFuIGVudGl0eSBieSBpdHMgcHJpbWFyeSBrZXkgSUQuXG4gICAgICovXG4gICAgcHVibGljIGRlbGV0ZUJ5SWQoaWQ6IG51bWJlciB8IHN0cmluZyk6IHZvaWQge1xuICAgICAgICAvLyBSZXRyaWV2ZSBlbnRpdHkgYmVmb3JlIHJlbW92YWwgZm9yIHRoZSBldmVudCBwYXlsb2FkXG4gICAgICAgIGNvbnN0IGVudGl0eSA9IChzdG9yZSBhcyBhbnkpLmdldCh0aGlzLmdldEVudGl0eU5hbWUoKSwgaWQpO1xuICAgICAgICBcbiAgICAgICAgKHN0b3JlIGFzIGFueSkucmVtb3ZlKHRoaXMuZ2V0RW50aXR5TmFtZSgpLCBpZCk7XG5cbiAgICAgICAgdGhpcy50cmlnZ2VyRXZlbnQoe1xuICAgICAgICAgICAgb3BlcmF0aW9uOiBcImRlbGV0ZVwiLFxuICAgICAgICAgICAgdGFibGU6IHRoaXMuZ2V0VGFibGVOYW1lKCksXG4gICAgICAgICAgICBlbnRpdHk6IGVudGl0eSxcbiAgICAgICAgICAgIGtleToge1xuICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMuZ2V0SWROYW1lKCksXG4gICAgICAgICAgICAgICAgY29sdW1uOiB0aGlzLmdldElkQ29sdW1uKCksXG4gICAgICAgICAgICAgICAgdmFsdWU6IGlkXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvdW50cyB0aGUgbnVtYmVyIG9mIGVudGl0aWVzIG1hdGNoaW5nIHRoZSBnaXZlbiBvcHRpb25zLlxuICAgICAqL1xuICAgIHB1YmxpYyBjb3VudChvcHRpb25zPzogT3B0aW9ucyk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAoc3RvcmUgYXMgYW55KS5jb3VudCh0aGlzLmdldEVudGl0eU5hbWUoKSwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJvdGVjdGVkIG1ldGhvZCBpbnRlbmRlZCBmb3Igc3ViY2xhc3Mgb3ZlcnJpZGluZyBvciBpbnRlcm5hbCBldmVudCBoYW5kbGluZy5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgYXN5bmMgdHJpZ2dlckV2ZW50KF9kYXRhOiBFbnRpdHlFdmVudDxUPik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICAvLyBFbXB0eSBib2R5IGFzIGluIHRoZSBvcmlnaW5hbCBjb2RlXG4gICAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIkFBQUEsU0FBUyxPQUFPLGtCQUE4QztBQXlCdkQsTUFBZSxXQUEwQztBQUFBLEVBSTVELFlBQVksbUJBQXNDO0FBQzlDLFNBQUssb0JBQW9CO0FBRy9CLFFBQUksQ0FBQyxLQUFLLGtCQUFrQixjQUFjO0FBRXpDLFdBQUssa0JBQWtCLGVBQWdCLE1BQWMsY0FBYyxLQUFLLGtCQUFrQixJQUFJO0FBQzlGLFdBQUssa0JBQWtCLGNBQWUsTUFBYyxhQUFhLEtBQUssa0JBQWtCLElBQUk7QUFDNUYsV0FBSyxrQkFBa0IsV0FBWSxNQUFjLFVBQVUsS0FBSyxrQkFBa0IsSUFBSTtBQUN0RixXQUFLLGtCQUFrQixhQUFjLE1BQWMsWUFBWSxLQUFLLGtCQUFrQixJQUFJO0FBQUEsSUFDM0Y7QUFBQSxFQUNFO0FBQUEsRUFFVSxnQkFBd0I7QUFFOUIsV0FBTyxLQUFLLGtCQUFrQjtBQUFBLEVBQ2xDO0FBQUEsRUFFVSxlQUF1QjtBQUM3QixXQUFPLEtBQUssa0JBQWtCO0FBQUEsRUFDbEM7QUFBQSxFQUVVLFlBQW9CO0FBQzFCLFdBQU8sS0FBSyxrQkFBa0I7QUFBQSxFQUNsQztBQUFBLEVBRVUsY0FBc0I7QUFDNUIsV0FBTyxLQUFLLGtCQUFrQjtBQUFBLEVBQ2xDO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLTyxRQUFRLFVBQW1CLENBQUMsR0FBUTtBQUV2QyxVQUFNLE9BQWEsTUFBYyxLQUFLLEtBQUssY0FBYyxHQUFHLE9BQU87QUFDbkUsSUFBQyxXQUFtQixjQUFjLE1BQU0sUUFBUSxVQUFVLEtBQUssYUFBYSxDQUFDO0FBQzdFLFdBQU87QUFBQSxFQUNYO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLTyxTQUFTLElBQXFC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
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RiL3JlcG9zaXRvcnkudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IHN0b3JlLCB0cmFuc2xhdG9yLCBFbnRpdHlDb25zdHJ1Y3RvciwgT3B0aW9ucyB9IGZyb20gXCJAYWVyb2tpdC9zZGsvZGJcIjtcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBkYXRhIHN0cnVjdHVyZSBwYXNzZWQgdG8gdGhlIGV2ZW50IHRyaWdnZXIgbWV0aG9kIGJlZm9yZS9hZnRlciBhbiBvcGVyYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5RXZlbnQ8VD4ge1xuICAgIHJlYWRvbmx5IG9wZXJhdGlvbjogJ2NyZWF0ZScgfCAndXBkYXRlJyB8ICdkZWxldGUnO1xuICAgIHJlYWRvbmx5IHRhYmxlOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgZW50aXR5OiBQYXJ0aWFsPFQ+OyAvLyBVc2UgUGFydGlhbDxUPiBmb3IgY3JlYXRlL2RlbGV0ZSB3aGVyZSBzb21lIGZpZWxkcyBtaWdodCBiZSBtaXNzaW5nXG4gICAgcmVhZG9ubHkga2V5OiB7XG4gICAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgICAgY29sdW1uOiBzdHJpbmc7XG4gICAgICAgIHZhbHVlOiBzdHJpbmcgfCBudW1iZXI7XG4gICAgfVxuICAgIHJlYWRvbmx5IHByZXZpb3VzRW50aXR5PzogVDtcbn1cblxuXG4vLyAtLS0gUmVwb3NpdG9yeSBDbGFzcyAtLS1cblxuLyoqXG4gKiBBYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBkYXRhIGFjY2Vzcy9idXNpbmVzcyBsb2dpYywgd3JhcHBpbmcgdGhlIGBzdG9yZWAgQVBJLlxuICogSXQgaGFuZGxlcyBlbnRpdHkgbWV0YWRhdGEgbG9va3VwLCBDUlVEIG9wZXJhdGlvbnMsIHRyYW5zbGF0aW9uLCBhbmQgZXZlbnQgdHJpZ2dlcmluZy5cbiAqIEB0ZW1wbGF0ZSBUIFRoZSBlbnRpdHkgdHlwZSAobXVzdCBiZSBhbiBvYmplY3QpLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmVwb3NpdG9yeTxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj4ge1xuXG4gICAgcHJpdmF0ZSBlbnRpdHlDb25zdHJ1Y3RvcjogRW50aXR5Q29uc3RydWN0b3I7XG5cbiAgICBjb25zdHJ1Y3RvcihlbnRpdHlDb25zdHJ1Y3RvcjogRW50aXR5Q29uc3RydWN0b3IpIHtcbiAgICAgICAgdGhpcy5lbnRpdHlDb25zdHJ1Y3RvciA9IGVudGl0eUNvbnN0cnVjdG9yO1xuICAgICAgICBcbiAgICAgICAgLy8gQ2FjaGVzIGVudGl0eSBtZXRhZGF0YSAobmFtZSwgdGFibGUsIGlkKSBvbnRvIHRoZSBjb25zdHJ1Y3RvciBmdW5jdGlvbiBmb3Igc3RhdGljIGFjY2Vzc1xuXHRcdGlmICghdGhpcy5lbnRpdHlDb25zdHJ1Y3Rvci4kZW50aXR5X25hbWUpIHtcbiAgICAgICAgICAgIC8vIEFzc3VtZXMgc3RvcmUgbWV0aG9kcyByZXR1cm4gbm9uLW51bGwgc3RyaW5nc1xuXHRcdFx0dGhpcy5lbnRpdHlDb25zdHJ1Y3Rvci4kZW50aXR5X25hbWUgPSBzdG9yZS5nZXRFbnRpdHlOYW1lKHRoaXMuZW50aXR5Q29uc3RydWN0b3IubmFtZSk7XG5cdFx0XHR0aGlzLmVudGl0eUNvbnN0cnVjdG9yLiR0YWJsZV9uYW1lID0gc3RvcmUuZ2V0VGFibGVOYW1lKHRoaXMuZW50aXR5Q29uc3RydWN0b3IubmFtZSk7XG5cdFx0XHR0aGlzLmVudGl0eUNvbnN0cnVjdG9yLiRpZF9uYW1lID0gc3RvcmUuZ2V0SWROYW1lKHRoaXMuZW50aXR5Q29uc3RydWN0b3IubmFtZSk7XG5cdFx0XHR0aGlzLmVudGl0eUNvbnN0cnVjdG9yLiRpZF9jb2x1bW4gPSBzdG9yZS5nZXRJZENvbHVtbih0aGlzLmVudGl0eUNvbnN0cnVjdG9yLm5hbWUpO1xuXHRcdH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RW50aXR5TmFtZSgpOiBzdHJpbmcge1xuICAgICAgICAvLyBVc2Ugbm9uLW51bGwgYXNzZXJ0aW9uIHNpbmNlIHRoZSBjb25zdHJ1Y3RvciBndWFyYW50ZWVzIHRoZXNlIHByb3BlcnRpZXMgZXhpc3RcbiAgICAgICAgcmV0dXJuIHRoaXMuZW50aXR5Q29uc3RydWN0b3IuJGVudGl0eV9uYW1lITtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0VGFibGVOYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudGl0eUNvbnN0cnVjdG9yLiR0YWJsZV9uYW1lITtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0SWROYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudGl0eUNvbnN0cnVjdG9yLiRpZF9uYW1lITtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0SWRDb2x1bW4oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW50aXR5Q29uc3RydWN0b3IuJGlkX2NvbHVtbiE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmluZHMgYWxsIGVudGl0aWVzIG1hdGNoaW5nIHRoZSBnaXZlbiBvcHRpb25zLlxuICAgICAqL1xuICAgIHB1YmxpYyBmaW5kQWxsKG9wdGlvbnM6IE9wdGlvbnMgPSB7fSk6IFRbXSB7XG4gICAgICAgIC8vIEFzc3VtZSBzdG9yZS5saXN0IHJldHVybnMgVFtdIGJ1dCB3ZSBleHBsaWNpdGx5IGNhc3QgaXQgdG8gVFtdXG4gICAgICAgIGNvbnN0IGxpc3Q6IFRbXSA9IHN0b3JlLmxpc3QodGhpcy5nZXRFbnRpdHlOYW1lKCksIG9wdGlvbnMpO1xuICAgICAgICB0cmFuc2xhdG9yLnRyYW5zbGF0ZUxpc3QobGlzdCwgb3B0aW9ucy5sYW5ndWFnZSwgdGhpcy5nZXRUYWJsZU5hbWUoKSk7XG4gICAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZpbmRzIGEgc2luZ2xlIGVudGl0eSBieSBpdHMgcHJpbWFyeSBrZXkgSUQuXG4gICAgICovXG4gICAgcHVibGljIGZpbmRCeUlkKGlkOiBudW1iZXIgfCBzdHJpbmcsIG9wdGlvbnM6IE9wdGlvbnMgPSB7fSk6IFQgfCB1bmRlZmluZWQge1xuICAgICAgICAvLyBBc3N1bWUgc3RvcmUuZ2V0IHJldHVybnMgVCBvciBudWxsL3VuZGVmaW5lZFxuICAgICAgICBjb25zdCBlbnRpdHk6IFQgfCBudWxsID0gc3RvcmUuZ2V0KHRoaXMuZ2V0RW50aXR5TmFtZSgpLCBpZCk7XG4gICAgICAgIHRyYW5zbGF0b3IudHJhbnNsYXRlRW50aXR5KGVudGl0eSwgaWQsIG9wdGlvbnMubGFuZ3VhZ2UsIHRoaXMuZ2V0VGFibGVOYW1lKCkpO1xuICAgICAgICByZXR1cm4gZW50aXR5ID8/IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbmV3IGVudGl0eSBpbiB0aGUgZGF0YWJhc2UuXG4gICAgICogQHJldHVybnMgVGhlIGdlbmVyYXRlZCBJRCAoc3RyaW5nIG9yIG51bWJlcikuXG4gICAgICovXG4gICAgcHVibGljIGNyZWF0ZShlbnRpdHk6IFQpOiBzdHJpbmcgfCBudW1iZXIge1xuICAgICAgICBjb25zdCBpZCA9IHN0b3JlLnNhdmUodGhpcy5nZXRFbnRpdHlOYW1lKCksIGVudGl0eSk7XG4gICAgICAgIHRoaXMudHJpZ2dlckV2ZW50KHtcbiAgICAgICAgICAgIG9wZXJhdGlvbjogXCJjcmVhdGVcIixcbiAgICAgICAgICAgIHRhYmxlOiB0aGlzLmdldFRhYmxlTmFtZSgpLFxuICAgICAgICAgICAgZW50aXR5OiBlbnRpdHksXG4gICAgICAgICAgICBrZXk6IHtcbiAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLmdldElkTmFtZSgpLFxuICAgICAgICAgICAgICAgIGNvbHVtbjogdGhpcy5nZXRJZENvbHVtbigpLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBpZFxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGlkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgYW4gZXhpc3RpbmcgZW50aXR5LlxuICAgICAqIFRoZSBlbnRpdHkgbXVzdCBjb250YWluIHRoZSBwcmltYXJ5IGtleS5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlKGVudGl0eTogVCk6IHZvaWQge1xuICAgICAgICBjb25zdCBpZE5hbWUgPSB0aGlzLmdldElkTmFtZSgpO1xuICAgICAgICBjb25zdCBpZCA9IGVudGl0eVtpZE5hbWVdIGFzIChudW1iZXIgfCBzdHJpbmcpO1xuICAgICAgICBcbiAgICAgICAgLy8gUmV0cmlldmUgdGhlIGVudGl0eSBzdGF0ZSBiZWZvcmUgdXBkYXRlIGZvciB0aGUgZXZlbnQgcGF5bG9hZFxuICAgICAgICBjb25zdCBwcmV2aW91c0VudGl0eSA9IHRoaXMuZmluZEJ5SWQoaWQpO1xuXG4gICAgICAgIHN0b3JlLnVwZGF0ZSh0aGlzLmdldEVudGl0eU5hbWUoKSwgZW50aXR5KTtcbiAgICAgICAgXG4gICAgICAgIHRoaXMudHJpZ2dlckV2ZW50KHtcbiAgICAgICAgICAgIG9wZXJhdGlvbjogXCJ1cGRhdGVcIixcbiAgICAgICAgICAgIHRhYmxlOiB0aGlzLmdldFRhYmxlTmFtZSgpLFxuICAgICAgICAgICAgZW50aXR5OiBlbnRpdHksXG4gICAgICAgICAgICBwcmV2aW91c0VudGl0eTogcHJldmlvdXNFbnRpdHksXG4gICAgICAgICAgICBrZXk6IHtcbiAgICAgICAgICAgICAgICBuYW1lOiBpZE5hbWUsXG4gICAgICAgICAgICAgICAgY29sdW1uOiB0aGlzLmdldElkQ29sdW1uKCksXG4gICAgICAgICAgICAgICAgdmFsdWU6IGlkXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgdGhlIGVudGl0eSBpZiB0aGUgSUQgaXMgbnVsbC91bmRlZmluZWQsIG90aGVyd2lzZSB1cGRhdGVzIGl0LlxuICAgICAqIElmIGFuIElEIGlzIHByb3ZpZGVkIGJ1dCB0aGUgZW50aXR5IGRvZXNuJ3QgZXhpc3QsIGl0IGNyZWF0ZXMgaXQuXG4gICAgICogQHJldHVybnMgVGhlIGVudGl0eSdzIElELlxuICAgICAqL1xuICAgIHB1YmxpYyB1cHNlcnQoZW50aXR5OiBUKTogc3RyaW5nIHwgbnVtYmVyIHtcbiAgICAgICAgY29uc3QgaWQgPSBlbnRpdHlbdGhpcy5nZXRJZE5hbWUoKV07XG4gICAgICAgIFxuICAgICAgICAvLyBJZiBubyBJRCBpcyBwcmVzZW50LCBzYXZlIChjcmVhdGUpXG4gICAgICAgIGlmIChpZCA9PT0gbnVsbCB8fCBpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RvcmUuc2F2ZSh0aGlzLmdldEVudGl0eU5hbWUoKSwgZW50aXR5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIElEIGlzIHByZXNlbnQsIGNoZWNrIGV4aXN0ZW5jZVxuICAgICAgICBjb25zdCBleGlzdGluZ0VudGl0eSA9IHN0b3JlLmdldCh0aGlzLmdldEVudGl0eU5hbWUoKSwgaWQpO1xuICAgICAgICBcbiAgICAgICAgaWYgKGV4aXN0aW5nRW50aXR5KSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZShlbnRpdHkpO1xuICAgICAgICAgICAgcmV0dXJuIGlkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gSUQgZXhpc3RzLCBidXQgZW50aXR5IGRvZXMgbm90IC0+IHNhdmUgKGNyZWF0ZSB3aXRoIHByb3ZpZGVkIElEKVxuICAgICAgICAgICAgcmV0dXJuIHN0b3JlLnNhdmUodGhpcy5nZXRFbnRpdHlOYW1lKCksIGVudGl0eSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWxldGVzIGFuIGVudGl0eSBieSBpdHMgcHJpbWFyeSBrZXkgSUQuXG4gICAgICovXG4gICAgcHVibGljIGRlbGV0ZUJ5SWQoaWQ6IG51bWJlciB8IHN0cmluZyk6IHZvaWQge1xuICAgICAgICAvLyBSZXRyaWV2ZSBlbnRpdHkgYmVmb3JlIHJlbW92YWwgZm9yIHRoZSBldmVudCBwYXlsb2FkXG4gICAgICAgIGNvbnN0IGVudGl0eSA9IHN0b3JlLmdldCh0aGlzLmdldEVudGl0eU5hbWUoKSwgaWQpO1xuICAgICAgICBcbiAgICAgICAgc3RvcmUucmVtb3ZlKHRoaXMuZ2V0RW50aXR5TmFtZSgpLCBpZCk7XG5cbiAgICAgICAgdGhpcy50cmlnZ2VyRXZlbnQoe1xuICAgICAgICAgICAgb3BlcmF0aW9uOiBcImRlbGV0ZVwiLFxuICAgICAgICAgICAgdGFibGU6IHRoaXMuZ2V0VGFibGVOYW1lKCksXG4gICAgICAgICAgICBlbnRpdHk6IGVudGl0eSxcbiAgICAgICAgICAgIGtleToge1xuICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMuZ2V0SWROYW1lKCksXG4gICAgICAgICAgICAgICAgY29sdW1uOiB0aGlzLmdldElkQ29sdW1uKCksXG4gICAgICAgICAgICAgICAgdmFsdWU6IGlkXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvdW50cyB0aGUgbnVtYmVyIG9mIGVudGl0aWVzIG1hdGNoaW5nIHRoZSBnaXZlbiBvcHRpb25zLlxuICAgICAqL1xuICAgIHB1YmxpYyBjb3VudChvcHRpb25zPzogT3B0aW9ucyk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBzdG9yZS5jb3VudCh0aGlzLmdldEVudGl0eU5hbWUoKSwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJvdGVjdGVkIG1ldGhvZCBpbnRlbmRlZCBmb3Igc3ViY2xhc3Mgb3ZlcnJpZGluZyBvciBpbnRlcm5hbCBldmVudCBoYW5kbGluZy5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgYXN5bmMgdHJpZ2dlckV2ZW50KF9kYXRhOiBFbnRpdHlFdmVudDxUPik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICAvLyBFbXB0eSBib2R5IGFzIGluIHRoZSBvcmlnaW5hbCBjb2RlXG4gICAgfVxufVxu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
|
package/dist/esm/db/store.mjs
CHANGED
|
@@ -50,7 +50,7 @@ class Store {
|
|
|
50
50
|
*/
|
|
51
51
|
static list(name, options) {
|
|
52
52
|
const result = DataStoreFacade.list(name, options ? JSON.stringify(options) : null);
|
|
53
|
-
return
|
|
53
|
+
return Store.parseResult(result);
|
|
54
54
|
}
|
|
55
55
|
/**
|
|
56
56
|
* Counts the number of entries based on optional filtering options.
|
|
@@ -74,7 +74,7 @@ class Store {
|
|
|
74
74
|
if (result === null || result === void 0 || result === "") {
|
|
75
75
|
return void 0;
|
|
76
76
|
}
|
|
77
|
-
return
|
|
77
|
+
return Store.parseResult(result);
|
|
78
78
|
}
|
|
79
79
|
/**
|
|
80
80
|
* Deletes an entry by its ID.
|
|
@@ -94,7 +94,7 @@ class Store {
|
|
|
94
94
|
*/
|
|
95
95
|
static find(name, example, limit = 100, offset = 0) {
|
|
96
96
|
const result = DataStoreFacade.find(name, JSON.stringify(example), limit, offset);
|
|
97
|
-
return
|
|
97
|
+
return Store.parseResult(result);
|
|
98
98
|
}
|
|
99
99
|
/**
|
|
100
100
|
* Queries all entries for a given script with pagination.
|
|
@@ -124,22 +124,22 @@ class Store {
|
|
|
124
124
|
}
|
|
125
125
|
if (arr.length === 0) {
|
|
126
126
|
const result = DataStoreFacade.query(query, null, limit, offset);
|
|
127
|
-
return
|
|
127
|
+
return Store.parseResult(result);
|
|
128
128
|
}
|
|
129
129
|
const first = arr[0];
|
|
130
130
|
if (first && typeof first === "object" && "name" in first && "type" in first) {
|
|
131
131
|
const result = DataStoreFacade.queryNamed(query, JSON.stringify(arr), limit, offset);
|
|
132
|
-
return
|
|
132
|
+
return Store.parseResult(result);
|
|
133
133
|
}
|
|
134
134
|
if (first && typeof first === "object" && "type" in first && !("name" in first)) {
|
|
135
135
|
const result = DataStoreFacade.query(query, JSON.stringify(arr), limit, offset);
|
|
136
|
-
return
|
|
136
|
+
return Store.parseResult(result);
|
|
137
137
|
}
|
|
138
138
|
if (arr.every(
|
|
139
139
|
(v) => typeof v === "string" || typeof v === "number" || typeof v === "boolean" || v instanceof Date || Array.isArray(v)
|
|
140
140
|
)) {
|
|
141
141
|
const result = DataStoreFacade.query(query, JSON.stringify(arr), limit, offset);
|
|
142
|
-
return
|
|
142
|
+
return Store.parseResult(result);
|
|
143
143
|
}
|
|
144
144
|
throw new Error("Unsupported parameter format: " + JSON.stringify(parameters));
|
|
145
145
|
}
|
|
@@ -169,22 +169,22 @@ class Store {
|
|
|
169
169
|
}
|
|
170
170
|
if (arr.length === 0) {
|
|
171
171
|
const result = DataStoreFacade.queryNative(query, null, limit, offset);
|
|
172
|
-
return
|
|
172
|
+
return Store.parseResult(result);
|
|
173
173
|
}
|
|
174
174
|
const first = arr[0];
|
|
175
175
|
if (first && typeof first === "object" && "name" in first && "type" in first) {
|
|
176
176
|
const result = DataStoreFacade.queryNativeNamed(query, JSON.stringify(arr), limit, offset);
|
|
177
|
-
return
|
|
177
|
+
return Store.parseResult(result);
|
|
178
178
|
}
|
|
179
179
|
if (first && typeof first === "object" && "type" in first && !("name" in first)) {
|
|
180
180
|
const result = DataStoreFacade.queryNative(query, JSON.stringify(arr), limit, offset);
|
|
181
|
-
return
|
|
181
|
+
return Store.parseResult(result);
|
|
182
182
|
}
|
|
183
183
|
if (arr.every(
|
|
184
184
|
(v) => typeof v === "string" || typeof v === "number" || typeof v === "boolean" || v instanceof Date || Array.isArray(v)
|
|
185
185
|
)) {
|
|
186
186
|
const result = DataStoreFacade.queryNative(query, JSON.stringify(arr), limit, offset);
|
|
187
|
-
return
|
|
187
|
+
return Store.parseResult(result);
|
|
188
188
|
}
|
|
189
189
|
throw new Error("Unsupported parameter format: " + JSON.stringify(parameters));
|
|
190
190
|
}
|
|
@@ -213,6 +213,73 @@ class Store {
|
|
|
213
213
|
static getIdColumn(name) {
|
|
214
214
|
return DataStoreFacade.getIdColumn(name);
|
|
215
215
|
}
|
|
216
|
+
/**
|
|
217
|
+
* Parse a JSON string and revive ISO date strings into JS Date objects.
|
|
218
|
+
* It handles both full ISO timestamps (with timezone) and date-only strings (YYYY-MM-DD).
|
|
219
|
+
* Returns undefined for null/empty inputs.
|
|
220
|
+
*/
|
|
221
|
+
static parseResult(result) {
|
|
222
|
+
if (result === null || result === void 0 || result === "") {
|
|
223
|
+
return void 0;
|
|
224
|
+
}
|
|
225
|
+
if (typeof result !== "string") {
|
|
226
|
+
return result;
|
|
227
|
+
}
|
|
228
|
+
const ISO_DATETIME = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+\-]\d{2}:?\d{2})$/;
|
|
229
|
+
const DATE_ONLY = /^\d{4}-\d{2}-\d{2}$/;
|
|
230
|
+
const TZ_NO_COLON = /([+\-]\d{2})(\d{2})$/;
|
|
231
|
+
const SPACE_DATETIME = /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+\-]\d{2}:?\d{2})?$/;
|
|
232
|
+
const TIME_ONLY = /^\d{2}:\d{2}:\d{2}(?:\.\d+)?$/;
|
|
233
|
+
const EPOCH_MS = /^[+\-]?\d{13}$/;
|
|
234
|
+
const EPOCH_S = /^[+\-]?\d{10}$/;
|
|
235
|
+
return JSON.parse(result, (key, value) => {
|
|
236
|
+
if (typeof value === "string") {
|
|
237
|
+
const s = value.trim();
|
|
238
|
+
if (EPOCH_MS.test(s)) {
|
|
239
|
+
const ms = parseInt(s, 10);
|
|
240
|
+
return new Date(ms);
|
|
241
|
+
}
|
|
242
|
+
if (EPOCH_S.test(s)) {
|
|
243
|
+
const ms = parseInt(s, 10) * 1e3;
|
|
244
|
+
return new Date(ms);
|
|
245
|
+
}
|
|
246
|
+
if (SPACE_DATETIME.test(s)) {
|
|
247
|
+
let v = s.replace(" ", "T");
|
|
248
|
+
if (TZ_NO_COLON.test(v)) {
|
|
249
|
+
v = v.replace(TZ_NO_COLON, "$1:$2");
|
|
250
|
+
}
|
|
251
|
+
const d = new Date(v);
|
|
252
|
+
if (!isNaN(d.getTime())) {
|
|
253
|
+
return d;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
if (TIME_ONLY.test(s)) {
|
|
257
|
+
const m = s.match(/(\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?/);
|
|
258
|
+
if (m) {
|
|
259
|
+
const hh = parseInt(m[1], 10);
|
|
260
|
+
const mm = parseInt(m[2], 10);
|
|
261
|
+
const ss = parseInt(m[3], 10);
|
|
262
|
+
const frac = m[4] ? (m[4] + "000").substring(0, 3) : "000";
|
|
263
|
+
const ms = parseInt(frac, 10);
|
|
264
|
+
const now = /* @__PURE__ */ new Date();
|
|
265
|
+
const d = new Date(Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(), hh, mm, ss, ms));
|
|
266
|
+
return d;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
if (ISO_DATETIME.test(s) || DATE_ONLY.test(s)) {
|
|
270
|
+
let v = s;
|
|
271
|
+
if (TZ_NO_COLON.test(v)) {
|
|
272
|
+
v = v.replace(TZ_NO_COLON, "$1:$2");
|
|
273
|
+
}
|
|
274
|
+
const d = new Date(v);
|
|
275
|
+
if (!isNaN(d.getTime())) {
|
|
276
|
+
return d;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
return value;
|
|
281
|
+
});
|
|
282
|
+
}
|
|
216
283
|
}
|
|
217
284
|
if (typeof module !== "undefined") {
|
|
218
285
|
module.exports = Store;
|
|
@@ -222,4 +289,4 @@ export {
|
|
|
222
289
|
Operator,
|
|
223
290
|
Store
|
|
224
291
|
};
|
|
225
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RiL3N0b3JlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBEYXRhU3RvcmVGYWNhZGUgPSBKYXZhLnR5cGUoXCJvcmcuZWNsaXBzZS5kaXJpZ2libGUuY29tcG9uZW50cy5hcGkuZGIuRGF0YVN0b3JlRmFjYWRlXCIpO1xuXG4vKipcbiAqIERlZmluZXMgdGhlIGF2YWlsYWJsZSBjb21wYXJpc29uIG9wZXJhdG9ycyBmb3IgcXVlcnkgY29uZGl0aW9ucy5cbiAqL1xuZXhwb3J0IGVudW0gT3BlcmF0b3Ige1xuXHRFUSA9IFwiPVwiLCAvLyBFcXVhbHNcblx0TkUgPSBcIjw+XCIsIC8vIE5vdCBFcXVhbHNcblx0R1QgPSBcIj5cIiwgLy8gR3JlYXRlciBUaGFuXG5cdExUID0gXCI8XCIsIC8vIExlc3MgVGhhblxuXHRHRSA9IFwiPj1cIiwgLy8gR3JlYXRlciBUaGFuIG9yIEVxdWFsc1xuXHRMRSA9IFwiPD1cIiwgLy8gTGVzcyBUaGFuIG9yIEVxdWFsc1xuXHRMSUtFID0gXCJMSUtFXCIsIC8vIFNRTCBMSUtFIG9wZXJhdG9yXG5cdEJFVFdFRU4gPSBcIkJFVFdFRU5cIiwgLy8gU1FMIEJFVFdFRU4gb3BlcmF0b3IgKHJlcXVpcmVzIHR3byB2YWx1ZXMpXG5cdElOID0gXCJJTlwiIC8vIFNRTCBJTiBvcGVyYXRvciAocmVxdWlyZXMgYSBMaXN0IG9yIEFycmF5IG9mIHZhbHVlcylcbn1cblxuLyoqXG4gKiBEZWZpbmVzIHRoZSBkaXJlY3Rpb24gZm9yIHNvcnRpbmcuXG4gKi9cbmV4cG9ydCBlbnVtIERpcmVjdGlvbiB7XG5cdEFTQyA9IFwiQVNDXCIsIC8vIEFzY2VuZGluZ1xuXHRERVNDID0gXCJERVNDXCIgLy8gRGVzY2VuZGluZ1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBzaW5nbGUgY29uZGl0aW9uIGZvciBmaWx0ZXJpbmcgZGF0YS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25kaXRpb24ge1xuXHRwcm9wZXJ0eU5hbWU6IHN0cmluZyxcblx0b3BlcmF0b3I6IE9wZXJhdG9yLFxuXHR2YWx1ZTogYW55IHwgYW55W11cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgc2luZ2xlIHNvcnRpbmcgaW5zdHJ1Y3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU29ydCB7XG5cdHByb3BlcnR5TmFtZTogc3RyaW5nLFxuXHRkaXJlY3Rpb246IERpcmVjdGlvblxufVxuXG4vKipcbiAqIERlZmluZXMgb3B0aW9uYWwgcGFyYW1ldGVycyBmb3IgbGlzdCBhbmQgY291bnQgb3BlcmF0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcHRpb25zIHtcblx0Y29uZGl0aW9ucz86IENvbmRpdGlvbltdLFxuXHRzb3J0cz86IFNvcnRbXSxcblx0bGltaXQ/OiBudW1iZXIsXG5cdG9mZnNldD86IG51bWJlcixcblx0bGFuZ3VhZ2U/OiBzdHJpbmdcbn1cblxuaW1wb3J0IHsgVHlwZWRRdWVyeVBhcmFtZXRlciwgTmFtZWRRdWVyeVBhcmFtZXRlciB9IGZyb20gJy4vcXVlcnknO1xuXG4vKipcbiAqIEZhY2FkZSBjbGFzcyBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgdW5kZXJseWluZyBEaXJpZ2libGUgRGF0YSBTdG9yZS5cbiAqIEFsbCBtZXRob2RzIHNlcmlhbGl6ZS9kZXNlcmlhbGl6ZSBKYXZhU2NyaXB0IG9iamVjdHMgdG8vZnJvbSBKU09OIHN0cmluZ3NcbiAqIGJlZm9yZSBpbnRlcmFjdGluZyB3aXRoIHRoZSBuYXRpdmUgSmF2YSBmYWNhZGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdG9yZSB7XG5cblx0LyoqXG5cdCAqIFNhdmVzIGEgbmV3IGVudHJ5IHRvIHRoZSBkYXRhIHN0b3JlLlxuXHQgKiBAcGFyYW0gbmFtZSBUaGUgZW50aXR5L3RhYmxlIG5hbWUuXG5cdCAqIEBwYXJhbSBlbnRyeSBUaGUgSmF2YVNjcmlwdCBvYmplY3QgdG8gc2F2ZS5cblx0ICogQHJldHVybnMgVGhlIElEIG9mIHRoZSBuZXdseSBjcmVhdGVkIGVudHJ5IChzdHJpbmcgb3IgbnVtYmVyKS5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgc2F2ZShuYW1lOiBzdHJpbmcsIGVudHJ5OiBhbnkpOiBzdHJpbmcgfCBudW1iZXIge1xuXHRcdHJldHVybiBEYXRhU3RvcmVGYWNhZGUuc2F2ZShuYW1lLCBKU09OLnN0cmluZ2lmeShlbnRyeSkpO1xuXHR9XG5cdFxuXHQvKipcblx0ICogSW5zZXJ0cyBhIG5ldyBlbnRyeSBvciB1cGRhdGVzIGFuIGV4aXN0aW5nIG9uZSBpZiB0aGUgSUQgaXMgcHJlc2VudC5cblx0ICogQHBhcmFtIG5hbWUgVGhlIGVudGl0eS90YWJsZSBuYW1lLlxuXHQgKiBAcGFyYW0gZW50cnkgVGhlIEphdmFTY3JpcHQgb2JqZWN0IHRvIGluc2VydC91cGRhdGUuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIHVwc2VydChuYW1lOiBzdHJpbmcsIGVudHJ5OiBhbnkpOiB2b2lkIHtcblx0XHREYXRhU3RvcmVGYWNhZGUudXBzZXJ0KG5hbWUsIEpTT04uc3RyaW5naWZ5KGVudHJ5KSk7XG5cdH1cblx0XG5cdC8qKlxuXHQgKiBVcGRhdGVzIGFuIGV4aXN0aW5nIGVudHJ5LlxuXHQgKiBAcGFyYW0gbmFtZSBUaGUgZW50aXR5L3RhYmxlIG5hbWUuXG5cdCAqIEBwYXJhbSBlbnRyeSBUaGUgSmF2YVNjcmlwdCBvYmplY3Qgd2l0aCB0aGUgSUQgYW5kIHVwZGF0ZWQgZGF0YS5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgdXBkYXRlKG5hbWU6IHN0cmluZywgZW50cnk6IGFueSk6IHZvaWQge1xuXHRcdERhdGFTdG9yZUZhY2FkZS51cGRhdGUobmFtZSwgSlNPTi5zdHJpbmdpZnkoZW50cnkpKTtcblx0fVxuXHRcblx0LyoqXG5cdCAqIExpc3RzIGVudHJpZXMgYmFzZWQgb24gb3B0aW9uYWwgZmlsdGVyaW5nLCBzb3J0aW5nLCBhbmQgcGFnaW5hdGlvbiBvcHRpb25zLlxuXHQgKiBAcGFyYW0gbmFtZSBUaGUgZW50aXR5L3RhYmxlIG5hbWUuXG5cdCAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbmFsIHtAbGluayBPcHRpb25zfSBmb3IgcXVlcnkgZXhlY3V0aW9uLlxuXHQgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBKYXZhU2NyaXB0IG9iamVjdHMuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGxpc3QobmFtZTogc3RyaW5nLCBvcHRpb25zPzogT3B0aW9ucyk6IGFueVtdIHtcblx0XHRjb25zdCByZXN1bHQgPSBEYXRhU3RvcmVGYWNhZGUubGlzdChuYW1lLCBvcHRpb25zID8gSlNPTi5zdHJpbmdpZnkob3B0aW9ucykgOiBudWxsKTtcblx0XHRyZXR1cm4gSlNPTi5wYXJzZShyZXN1bHQpO1xuXHR9XG5cdFxuXHQvKipcblx0ICogQ291bnRzIHRoZSBudW1iZXIgb2YgZW50cmllcyBiYXNlZCBvbiBvcHRpb25hbCBmaWx0ZXJpbmcgb3B0aW9ucy5cblx0ICogQHBhcmFtIG5hbWUgVGhlIGVudGl0eS90YWJsZSBuYW1lLlxuXHQgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25hbCB7QGxpbmsgT3B0aW9uc30gZm9yIHF1ZXJ5IGV4ZWN1dGlvbi5cblx0ICogQHJldHVybnMgVGhlIGNvdW50IG9mIG1hdGNoaW5nIGVudHJpZXMuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGNvdW50KG5hbWU6IHN0cmluZywgb3B0aW9ucz86IE9wdGlvbnMpOiBudW1iZXIge1xuXHRcdGNvbnN0IG9wdGlvbnNTdHJpbmcgPSBvcHRpb25zID8gSlNPTi5zdHJpbmdpZnkob3B0aW9ucykgOiBudWxsO1xuXHRcdGNvbnN0IHJlc3VsdCA9IERhdGFTdG9yZUZhY2FkZS5jb3VudChuYW1lLCBvcHRpb25zU3RyaW5nKTtcblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlcyBhIHNpbmdsZSBlbnRyeSBieSBpdHMgSUQuXG5cdCAqIEBwYXJhbSBuYW1lIFRoZSBlbnRpdHkvdGFibGUgbmFtZS5cblx0ICogQHBhcmFtIGlkIFRoZSBJRCBvZiB0aGUgZW50cnkuXG5cdCAqIEByZXR1cm5zIFRoZSBlbnRyeSBvYmplY3QsIG9yIHVuZGVmaW5lZCBpZiBub3QgZm91bmQuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGdldChuYW1lOiBzdHJpbmcsIGlkOiBhbnkpOiBhbnkgfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IHJlc3VsdCA9IERhdGFTdG9yZUZhY2FkZS5nZXQobmFtZSwgaWQpO1xuXHRcdC8vIEFzc3VtaW5nIHRoZSBuYXRpdmUgQVBJIHJldHVybnMgbnVsbC91bmRlZmluZWQgb3IgYW4gZW1wdHkgSlNPTiBzdHJpbmcgaWYgbm90IGZvdW5kLCBcblx0XHQvLyBvdGhlcndpc2UgSlNPTi5wYXJzZSBoYW5kbGVzIHRoZSBjb252ZXJzaW9uLlxuXHRcdGlmIChyZXN1bHQgPT09IG51bGwgfHwgcmVzdWx0ID09PSB1bmRlZmluZWQgfHwgcmVzdWx0ID09PSBcIlwiKSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0XHRyZXR1cm4gSlNPTi5wYXJzZShyZXN1bHQpO1xuXHR9O1xuXG5cdC8qKlxuXHQgKiBEZWxldGVzIGFuIGVudHJ5IGJ5IGl0cyBJRC5cblx0ICogQHBhcmFtIG5hbWUgVGhlIGVudGl0eS90YWJsZSBuYW1lLlxuXHQgKiBAcGFyYW0gaWQgVGhlIElEIG9mIHRoZSBlbnRyeSB0byByZW1vdmUuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIHJlbW92ZShuYW1lOiBzdHJpbmcsIGlkOiBhbnkpOiB2b2lkIHtcblx0XHREYXRhU3RvcmVGYWNhZGUuZGVsZXRlRW50cnkobmFtZSwgaWQpO1xuXHR9XG5cdFxuXHQvKipcblx0ICogRmluZHMgZW50cmllcyBtYXRjaGluZyBhbiBleGFtcGxlIG9iamVjdCAocXVlcnktYnktZXhhbXBsZSkuXG5cdCAqIEBwYXJhbSBuYW1lIFRoZSBlbnRpdHkvdGFibGUgbmFtZS5cblx0ICogQHBhcmFtIGV4YW1wbGUgQW4gb2JqZWN0IGNvbnRhaW5pbmcgcHJvcGVydGllcyB0byBtYXRjaC5cblx0ICogQHBhcmFtIGxpbWl0IE1heGltdW0gbnVtYmVyIG9mIHJlc3VsdHMgdG8gcmV0dXJuLlxuXHQgKiBAcGFyYW0gb2Zmc2V0IE51bWJlciBvZiByZXN1bHRzIHRvIHNraXAuXG5cdCAqIEByZXR1cm5zIEFuIGFycmF5IG9mIG1hdGNoaW5nIEphdmFTY3JpcHQgb2JqZWN0cy5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgZmluZChuYW1lOiBzdHJpbmcsIGV4YW1wbGU6IGFueSwgbGltaXQ6IG51bWJlciA9IDEwMCwgb2Zmc2V0OiBudW1iZXIgPSAwKTogYW55W10ge1xuXHRcdGNvbnN0IHJlc3VsdCA9IERhdGFTdG9yZUZhY2FkZS5maW5kKG5hbWUsIEpTT04uc3RyaW5naWZ5KGV4YW1wbGUpLCBsaW1pdCwgb2Zmc2V0KTtcblx0XHRyZXR1cm4gSlNPTi5wYXJzZShyZXN1bHQpO1xuXHR9XG5cdFxuXHQvKipcblx0ICogUXVlcmllcyBhbGwgZW50cmllcyBmb3IgYSBnaXZlbiBzY3JpcHQgd2l0aCBwYWdpbmF0aW9uLlxuXHQgKiBAcGFyYW0gcXVlcnkgVGhlIHF1ZXJ5IHNjcmlwdC5cblx0ICogQHBhcmFtIGxpbWl0IE1heGltdW0gbnVtYmVyIG9mIHJlc3VsdHMgdG8gcmV0dXJuLlxuXHQgKiBAcGFyYW0gb2Zmc2V0IE51bWJlciBvZiByZXN1bHRzIHRvIHNraXAuXG5cdCAqIEByZXR1cm5zIEFuIGFycmF5IG9mIEphdmFTY3JpcHQgb2JqZWN0cy5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgcXVlcnkocXVlcnk6IHN0cmluZywgcGFyYW1ldGVycz86IChzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgRGF0ZSB8IFR5cGVkUXVlcnlQYXJhbWV0ZXIgfCBOYW1lZFF1ZXJ5UGFyYW1ldGVyKVtdLCBsaW1pdDogbnVtYmVyID0gMTAwLCBvZmZzZXQ6IG51bWJlciA9IDApOiBhbnlbXSB7XG5cdFx0bGV0IGFycjogYW55W10gPSBbXTtcblx0ICAgIGlmIChwYXJhbWV0ZXJzID09IG51bGwpIHtcblx0ICAgICAgYXJyID0gW107XG5cdCAgICB9IGVsc2UgaWYgKHR5cGVvZiBwYXJhbWV0ZXJzID09PSBcInN0cmluZ1wiKSB7XG5cdCAgICAgIHRyeSB7XG5cdCAgICAgICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShwYXJhbWV0ZXJzKTtcblx0ICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkocGFyc2VkKSkge1xuXHQgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW5wdXQgcGFyYW1ldGVyIHN0cmluZyBtdXN0IHJlcHJlc2VudCBhIEpTT04gYXJyYXlcIik7XG5cdCAgICAgICAgfVxuXHQgICAgICAgIGFyciA9IHBhcnNlZDtcblx0ICAgICAgfSBjYXRjaCAoZSkge1xuXHQgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgSlNPTiBwYXJhbWV0ZXJzOiBcIiArIGUpO1xuXHQgICAgICB9XG5cdCAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocGFyYW1ldGVycykpIHtcblx0ICAgICAgYXJyID0gcGFyYW1ldGVycztcblx0ICAgIH0gZWxzZSB7XG5cdCAgICAgIHRocm93IG5ldyBFcnJvcihcIlBhcmFtZXRlcnMgbXVzdCBiZSBlaXRoZXIgYW4gYXJyYXkgb3IgYSBKU09OIHN0cmluZ1wiKTtcblx0ICAgIH1cblxuXHQgICAgaWYgKGFyci5sZW5ndGggPT09IDApIHtcblx0XHQgIGNvbnN0IHJlc3VsdCA9IERhdGFTdG9yZUZhY2FkZS5xdWVyeShxdWVyeSwgbnVsbCwgbGltaXQsIG9mZnNldCk7XG5cdFx0ICByZXR1cm4gSlNPTi5wYXJzZShyZXN1bHQpO1xuXHQgICAgfVxuXG5cdCAgICBjb25zdCBmaXJzdCA9IGFyclswXTtcblxuXHQgICAgLy8gTmFtZWRRdWVyeVBhcmFtZXRlciAoaGFzIG5hbWUgKyB0eXBlKVxuXHQgICAgaWYgKGZpcnN0ICYmIHR5cGVvZiBmaXJzdCA9PT0gXCJvYmplY3RcIiAmJiBcIm5hbWVcIiBpbiBmaXJzdCAmJiBcInR5cGVcIiBpbiBmaXJzdCkge1xuXHRcdCAgY29uc3QgcmVzdWx0ID0gRGF0YVN0b3JlRmFjYWRlLnF1ZXJ5TmFtZWQocXVlcnksIEpTT04uc3RyaW5naWZ5KGFyciksIGxpbWl0LCBvZmZzZXQpO1xuXHRcdCAgcmV0dXJuIEpTT04ucGFyc2UocmVzdWx0KTtcblx0ICAgIH1cblxuXHQgICAgLy8gVHlwZWRRdWVyeVBhcmFtZXRlciAoaGFzIHR5cGUsIG5vIG5hbWUpXG5cdCAgICBpZiAoZmlyc3QgJiYgdHlwZW9mIGZpcnN0ID09PSBcIm9iamVjdFwiICYmIFwidHlwZVwiIGluIGZpcnN0ICYmICEoXCJuYW1lXCIgaW4gZmlyc3QpKSB7XG5cdFx0ICBjb25zdCByZXN1bHQgPSBEYXRhU3RvcmVGYWNhZGUucXVlcnkocXVlcnksIEpTT04uc3RyaW5naWZ5KGFyciksIGxpbWl0LCBvZmZzZXQpO1xuXHRcdCAgcmV0dXJuIEpTT04ucGFyc2UocmVzdWx0KTtcblx0ICAgIH1cblxuXHQgICAgLy8gUHJpbWl0aXZlIGFycmF5XG5cdCAgICBpZiAoXG5cdCAgICAgIGFyci5ldmVyeShcblx0ICAgICAgICAodikgPT5cblx0ICAgICAgICAgIHR5cGVvZiB2ID09PSBcInN0cmluZ1wiIHx8XG5cdCAgICAgICAgICB0eXBlb2YgdiA9PT0gXCJudW1iZXJcIiB8fFxuXHQgICAgICAgICAgdHlwZW9mIHYgPT09IFwiYm9vbGVhblwiIHx8XG5cdCAgICAgICAgICB2IGluc3RhbmNlb2YgRGF0ZVx0fHxcblx0XHQgIFx0ICBBcnJheS5pc0FycmF5KHYpXG5cdCAgICAgIClcblx0ICAgICkge1xuXHRcdCAgY29uc3QgcmVzdWx0ID0gRGF0YVN0b3JlRmFjYWRlLnF1ZXJ5KHF1ZXJ5LCBKU09OLnN0cmluZ2lmeShhcnIpLCBsaW1pdCwgb2Zmc2V0KTtcblx0XHQgIHJldHVybiBKU09OLnBhcnNlKHJlc3VsdCk7XG5cdCAgICB9XG5cblx0ICAgIHRocm93IG5ldyBFcnJvcihcIlVuc3VwcG9ydGVkIHBhcmFtZXRlciBmb3JtYXQ6IFwiICsgSlNPTi5zdHJpbmdpZnkocGFyYW1ldGVycykpO1xuXHR9XG5cdFxuXHQvKipcblx0ICogUXVlcmllcyBhbGwgZW50cmllcyBmb3IgYSBnaXZlbiBlbnRpdHkgbmFtZSB3aXRob3V0IHBhZ2luYXRpb24uXG5cdCAqIEBwYXJhbSBxdWVyeSBUaGUgZW50aXR5L3RhYmxlIG5hbWUuXG5cdCAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGFsbCBKYXZhU2NyaXB0IG9iamVjdHMuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIHF1ZXJ5TmF0aXZlKHF1ZXJ5OiBzdHJpbmcsIHBhcmFtZXRlcnM/OiAoc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IERhdGUgfCBUeXBlZFF1ZXJ5UGFyYW1ldGVyIHwgTmFtZWRRdWVyeVBhcmFtZXRlcilbXSwgbGltaXQ6IG51bWJlciA9IDEwMCwgb2Zmc2V0OiBudW1iZXIgPSAwKTogYW55W10ge1xuXHRcdGxldCBhcnI6IGFueVtdID0gW107XG5cdFx0aWYgKHBhcmFtZXRlcnMgPT0gbnVsbCkge1xuXHQgICAgICBhcnIgPSBbXTtcblx0ICAgIH0gZWxzZSBpZiAodHlwZW9mIHBhcmFtZXRlcnMgPT09IFwic3RyaW5nXCIpIHtcblx0ICAgICAgdHJ5IHtcblx0ICAgICAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKHBhcmFtZXRlcnMpO1xuXHQgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShwYXJzZWQpKSB7XG5cdCAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnB1dCBwYXJhbWV0ZXIgc3RyaW5nIG11c3QgcmVwcmVzZW50IGEgSlNPTiBhcnJheVwiKTtcblx0ICAgICAgICB9XG5cdCAgICAgICAgYXJyID0gcGFyc2VkO1xuXHQgICAgICB9IGNhdGNoIChlKSB7XG5cdCAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBKU09OIHBhcmFtZXRlcnM6IFwiICsgZSk7XG5cdCAgICAgIH1cblx0ICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShwYXJhbWV0ZXJzKSkge1xuXHQgICAgICBhcnIgPSBwYXJhbWV0ZXJzO1xuXHQgICAgfSBlbHNlIHtcblx0ICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUGFyYW1ldGVycyBtdXN0IGJlIGVpdGhlciBhbiBhcnJheSBvciBhIEpTT04gc3RyaW5nXCIpO1xuXHQgICAgfVxuXG5cdCAgICBpZiAoYXJyLmxlbmd0aCA9PT0gMCkge1xuXHRcdCAgY29uc3QgcmVzdWx0ID0gRGF0YVN0b3JlRmFjYWRlLnF1ZXJ5TmF0aXZlKHF1ZXJ5LCBudWxsLCBsaW1pdCwgb2Zmc2V0KTtcblx0XHQgIHJldHVybiBKU09OLnBhcnNlKHJlc3VsdCk7XG5cdCAgICB9XG5cblx0ICAgIGNvbnN0IGZpcnN0ID0gYXJyWzBdO1xuXG5cdCAgICAvLyBOYW1lZFF1ZXJ5UGFyYW1ldGVyIChoYXMgbmFtZSArIHR5cGUpXG5cdCAgICBpZiAoZmlyc3QgJiYgdHlwZW9mIGZpcnN0ID09PSBcIm9iamVjdFwiICYmIFwibmFtZVwiIGluIGZpcnN0ICYmIFwidHlwZVwiIGluIGZpcnN0KSB7XG5cdFx0ICBjb25zdCByZXN1bHQgPSBEYXRhU3RvcmVGYWNhZGUucXVlcnlOYXRpdmVOYW1lZChxdWVyeSwgSlNPTi5zdHJpbmdpZnkoYXJyKSwgbGltaXQsIG9mZnNldCk7XG5cdFx0ICByZXR1cm4gSlNPTi5wYXJzZShyZXN1bHQpO1xuXHQgICAgfVxuXG5cdCAgICAvLyBUeXBlZFF1ZXJ5UGFyYW1ldGVyIChoYXMgdHlwZSwgbm8gbmFtZSlcblx0ICAgIGlmIChmaXJzdCAmJiB0eXBlb2YgZmlyc3QgPT09IFwib2JqZWN0XCIgJiYgXCJ0eXBlXCIgaW4gZmlyc3QgJiYgIShcIm5hbWVcIiBpbiBmaXJzdCkpIHtcblx0XHQgIGNvbnN0IHJlc3VsdCA9IERhdGFTdG9yZUZhY2FkZS5xdWVyeU5hdGl2ZShxdWVyeSwgSlNPTi5zdHJpbmdpZnkoYXJyKSwgbGltaXQsIG9mZnNldCk7XG5cdFx0ICByZXR1cm4gSlNPTi5wYXJzZShyZXN1bHQpO1xuXHQgICAgfVxuXG5cdCAgICAvLyBQcmltaXRpdmUgYXJyYXlcblx0ICAgIGlmIChcblx0ICAgICAgYXJyLmV2ZXJ5KFxuXHQgICAgICAgICh2KSA9PlxuXHQgICAgICAgICAgdHlwZW9mIHYgPT09IFwic3RyaW5nXCIgfHxcblx0ICAgICAgICAgIHR5cGVvZiB2ID09PSBcIm51bWJlclwiIHx8XG5cdCAgICAgICAgICB0eXBlb2YgdiA9PT0gXCJib29sZWFuXCIgfHxcblx0ICAgICAgICAgIHYgaW5zdGFuY2VvZiBEYXRlIHx8XG5cdFx0XHQgIEFycmF5LmlzQXJyYXkodilcblx0ICAgICAgKVxuXHQgICAgKSB7XG5cdFx0ICBjb25zdCByZXN1bHQgPSBEYXRhU3RvcmVGYWNhZGUucXVlcnlOYXRpdmUocXVlcnksIEpTT04uc3RyaW5naWZ5KGFyciksIGxpbWl0LCBvZmZzZXQpO1xuXHRcdCAgcmV0dXJuIEpTT04ucGFyc2UocmVzdWx0KTtcblx0ICAgIH1cblxuXHQgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5zdXBwb3J0ZWQgcGFyYW1ldGVyIGZvcm1hdDogXCIgKyBKU09OLnN0cmluZ2lmeShwYXJhbWV0ZXJzKSk7XG5cdH1cblx0XG5cdC8vIC0tLSBNZXRhZGF0YSBHZXR0ZXJzIC0tLVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBuYW1lIG9mIHRoZSBlbnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBzdG9yZSBuYW1lLlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyBnZXRFbnRpdHlOYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIERhdGFTdG9yZUZhY2FkZS5nZXRFbnRpdHlOYW1lKG5hbWUpO1xuXHR9XG5cdFxuXHQvKipcblx0ICogR2V0cyB0aGUgdW5kZXJseWluZyBkYXRhYmFzZSB0YWJsZSBuYW1lIGZvciB0aGUgZW50aXR5LlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyBnZXRUYWJsZU5hbWUobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gRGF0YVN0b3JlRmFjYWRlLmdldFRhYmxlTmFtZShuYW1lKTtcblx0fVxuXHRcdFxuXHQvKipcblx0ICogR2V0cyB0aGUgcHJvcGVydHkgbmFtZSB1c2VkIGFzIHRoZSBJRCBmaWVsZCBpbiB0aGUgZW50aXR5IG9iamVjdC5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgZ2V0SWROYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIERhdGFTdG9yZUZhY2FkZS5nZXRJZE5hbWUobmFtZSk7XG5cdH1cblx0XHRcdFxuXHQvKipcblx0ICogR2V0cyB0aGUgdW5kZXJseWluZyBkYXRhYmFzZSBjb2x1bW4gbmFtZSB1c2VkIGZvciB0aGUgSUQgZmllbGQuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGdldElkQ29sdW1uKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIERhdGFTdG9yZUZhY2FkZS5nZXRJZENvbHVtbihuYW1lKTtcblx0fVxuXG59XG5cbi8vIEB0cy1pZ25vcmVcbmlmICh0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJykge1xuXHQvLyBAdHMtaWdub3JlXG5cdG1vZHVsZS5leHBvcnRzID0gU3RvcmU7XG59Il0sCiAgIm1hcHBpbmdzIjogIkFBQUEsTUFBTSxrQkFBa0IsS0FBSyxLQUFLLHlEQUF5RDtBQUtwRixJQUFLLFdBQUwsa0JBQUtBLGNBQUw7QUFDTixFQUFBQSxVQUFBLFFBQUs7QUFDTCxFQUFBQSxVQUFBLFFBQUs7QUFDTCxFQUFBQSxVQUFBLFFBQUs7QUFDTCxFQUFBQSxVQUFBLFFBQUs7QUFDTCxFQUFBQSxVQUFBLFFBQUs7QUFDTCxFQUFBQSxVQUFBLFFBQUs7QUFDTCxFQUFBQSxVQUFBLFVBQU87QUFDUCxFQUFBQSxVQUFBLGFBQVU7QUFDVixFQUFBQSxVQUFBLFFBQUs7QUFUTSxTQUFBQTtBQUFBLEdBQUE7QUFlTCxJQUFLLFlBQUwsa0JBQUtDLGVBQUw7QUFDTixFQUFBQSxXQUFBLFNBQU07QUFDTixFQUFBQSxXQUFBLFVB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QUFNLDhCQUE4QixDQUFDO0FBQUEsTUFDakQ7QUFBQSxJQUNGLFdBQVcsTUFBTSxRQUFRLFVBQVUsR0FBRztBQUNwQyxZQUFNO0FBQUEsSUFDUixPQUFPO0FBQ0wsWUFBTSxJQUFJLE1BQU0scURBQXFEO0FBQUEsSUFDdkU7QUFFQSxRQUFJLElBQUksV0FBVyxHQUFHO0FBQ3ZCLFlBQU0sU0FBUyxnQkFBZ0IsWUFBWSxPQUFPLE1BQU0sT0FBTyxNQUFNO0FBQ3JFLGFBQU8sS0FBSyxNQUFNLE1BQU07QUFBQSxJQUN2QjtBQUVBLFVBQU0sUUFBUSxJQUFJLENBQUM7QUFHbkIsUUFBSSxTQUFTLE9BQU8sVUFBVSxZQUFZLFVBQVUsU0FBUyxVQUFVLE9BQU87QUFDL0UsWUFBTSxTQUFTLGdCQUFnQixpQkFBaUIsT0FBTyxLQUFLLFVBQVUsR0FBRyxHQUFHLE9BQU8sTUFBTTtBQUN6RixhQUFPLEtBQUssTUFBTSxNQUFNO0FBQUEsSUFDdkI7QUFHQSxRQUFJLFNBQVMsT0FBTyxVQUFVLFlBQVksVUFBVSxTQUFTLEVBQUUsVUFBVSxRQUFRO0FBQ2xGLFlBQU0sU0FBUyxnQkFBZ0IsWUFBWSxPQUFPLEtBQUssVUFBVSxHQUFHLEdBQUcsT0FBTyxNQUFNO0FBQ3BGLGFBQU8sS0FBSyxNQUFNLE1BQU07QUFBQSxJQUN2QjtBQUdBLFFBQ0UsSUFBSTtBQUFBLE1BQ0YsQ0FBQyxNQUNDLE9BQU8sTUFBTSxZQUNiLE9BQU8sTUFBTSxZQUNiLE9BQU8sTUFBTSxhQUNiLGFBQWEsUUFDbkIsTUFBTSxRQUFRLENBQUM7QUFBQSxJQUNiLEdBQ0E7QUFDSCxZQUFNLFNBQVMsZ0JBQWdCLFlBQVksT0FBTyxLQUFLLFVBQVUsR0FBRyxHQUFHLE9BQU8sTUFBTTtBQUNwRixhQUFPLEtBQUssTUFBTSxNQUFNO0FBQUEsSUFDdkI7QUFFQSxVQUFNLElBQUksTUFBTSxtQ0FBbUMsS0FBSyxVQUFVLFVBQVUsQ0FBQztBQUFBLEVBQ2pGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9BLE9BQWMsY0FBYyxNQUFzQjtBQUNqRCxXQUFPLGdCQUFnQixjQUFjLElBQUk7QUFBQSxFQUMxQztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS0EsT0FBYyxhQUFhLE1BQXNCO0FBQ2hELFdBQU8sZ0JBQWdCLGFBQWEsSUFBSTtBQUFBLEVBQ3pDO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQSxPQUFjLFVBQVUsTUFBc0I7QUFDN0MsV0FBTyxnQkFBZ0IsVUFBVSxJQUFJO0FBQUEsRUFDdEM7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBLE9BQWMsWUFBWSxNQUFzQjtBQUMvQyxXQUFPLGdCQUFnQixZQUFZLElBQUk7QUFBQSxFQUN4QztBQUVEO0FBR0EsSUFBSSxPQUFPLFdBQVcsYUFBYTtBQUVsQyxTQUFPLFVBQVU7QUFDbEI7IiwKICAibmFtZXMiOiBbIk9wZXJhdG9yIiwgIkRpcmVjdGlvbiJdCn0K
|
|
292
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RiL3N0b3JlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBEYXRhU3RvcmVGYWNhZGUgPSBKYXZhLnR5cGUoXCJvcmcuZWNsaXBzZS5kaXJpZ2libGUuY29tcG9uZW50cy5hcGkuZGIuRGF0YVN0b3JlRmFjYWRlXCIpO1xuXG4vKipcbiAqIERlZmluZXMgdGhlIGF2YWlsYWJsZSBjb21wYXJpc29uIG9wZXJhdG9ycyBmb3IgcXVlcnkgY29uZGl0aW9ucy5cbiAqL1xuZXhwb3J0IGVudW0gT3BlcmF0b3Ige1xuXHRFUSA9IFwiPVwiLCAvLyBFcXVhbHNcblx0TkUgPSBcIjw+XCIsIC8vIE5vdCBFcXVhbHNcblx0R1QgPSBcIj5cIiwgLy8gR3JlYXRlciBUaGFuXG5cdExUID0gXCI8XCIsIC8vIExlc3MgVGhhblxuXHRHRSA9IFwiPj1cIiwgLy8gR3JlYXRlciBUaGFuIG9yIEVxdWFsc1xuXHRMRSA9IFwiPD1cIiwgLy8gTGVzcyBUaGFuIG9yIEVxdWFsc1xuXHRMSUtFID0gXCJMSUtFXCIsIC8vIFNRTCBMSUtFIG9wZXJhdG9yXG5cdEJFVFdFRU4gPSBcIkJFVFdFRU5cIiwgLy8gU1FMIEJFVFdFRU4gb3BlcmF0b3IgKHJlcXVpcmVzIHR3byB2YWx1ZXMpXG5cdElOID0gXCJJTlwiIC8vIFNRTCBJTiBvcGVyYXRvciAocmVxdWlyZXMgYSBMaXN0IG9yIEFycmF5IG9mIHZhbHVlcylcbn1cblxuLyoqXG4gKiBEZWZpbmVzIHRoZSBkaXJlY3Rpb24gZm9yIHNvcnRpbmcuXG4gKi9cbmV4cG9ydCBlbnVtIERpcmVjdGlvbiB7XG5cdEFTQyA9IFwiQVNDXCIsIC8vIEFzY2VuZGluZ1xuXHRERVNDID0gXCJERVNDXCIgLy8gRGVzY2VuZGluZ1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBzaW5nbGUgY29uZGl0aW9uIGZvciBmaWx0ZXJpbmcgZGF0YS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25kaXRpb24ge1xuXHRwcm9wZXJ0eU5hbWU6IHN0cmluZyxcblx0b3BlcmF0b3I6IE9wZXJhdG9yLFxuXHR2YWx1ZTogYW55IHwgYW55W11cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgc2luZ2xlIHNvcnRpbmcgaW5zdHJ1Y3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU29ydCB7XG5cdHByb3BlcnR5TmFtZTogc3RyaW5nLFxuXHRkaXJlY3Rpb246IERpcmVjdGlvblxufVxuXG4vKipcbiAqIERlZmluZXMgb3B0aW9uYWwgcGFyYW1ldGVycyBmb3IgbGlzdCBhbmQgY291bnQgb3BlcmF0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcHRpb25zIHtcblx0Y29uZGl0aW9ucz86IENvbmRpdGlvbltdLFxuXHRzb3J0cz86IFNvcnRbXSxcblx0bGltaXQ/OiBudW1iZXIsXG5cdG9mZnNldD86IG51bWJlcixcblx0bGFuZ3VhZ2U/OiBzdHJpbmdcbn1cblxuaW1wb3J0IHsgVHlwZWRRdWVyeVBhcmFtZXRlciwgTmFtZWRRdWVyeVBhcmFtZXRlciB9IGZyb20gJy4vcXVlcnknO1xuXG4vKipcbiAqIEZhY2FkZSBjbGFzcyBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgdW5kZXJseWluZyBEaXJpZ2libGUgRGF0YSBTdG9yZS5cbiAqIEFsbCBtZXRob2RzIHNlcmlhbGl6ZS9kZXNlcmlhbGl6ZSBKYXZhU2NyaXB0IG9iamVjdHMgdG8vZnJvbSBKU09OIHN0cmluZ3NcbiAqIGJlZm9yZSBpbnRlcmFjdGluZyB3aXRoIHRoZSBuYXRpdmUgSmF2YSBmYWNhZGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdG9yZSB7XG5cblx0LyoqXG5cdCAqIFNhdmVzIGEgbmV3IGVudHJ5IHRvIHRoZSBkYXRhIHN0b3JlLlxuXHQgKiBAcGFyYW0gbmFtZSBUaGUgZW50aXR5L3RhYmxlIG5hbWUuXG5cdCAqIEBwYXJhbSBlbnRyeSBUaGUgSmF2YVNjcmlwdCBvYmplY3QgdG8gc2F2ZS5cblx0ICogQHJldHVybnMgVGhlIElEIG9mIHRoZSBuZXdseSBjcmVhdGVkIGVudHJ5IChzdHJpbmcgb3IgbnVtYmVyKS5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgc2F2ZShuYW1lOiBzdHJpbmcsIGVudHJ5OiBhbnkpOiBzdHJpbmcgfCBudW1iZXIge1xuXHRcdHJldHVybiBEYXRhU3RvcmVGYWNhZGUuc2F2ZShuYW1lLCBKU09OLnN0cmluZ2lmeShlbnRyeSkpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEluc2VydHMgYSBuZXcgZW50cnkgb3IgdXBkYXRlcyBhbiBleGlzdGluZyBvbmUgaWYgdGhlIElEIGlzIHByZXNlbnQuXG5cdCAqIEBwYXJhbSBuYW1lIFRoZSBlbnRpdHkvdGFibGUgbmFtZS5cblx0ICogQHBhcmFtIGVudHJ5IFRoZSBKYXZhU2NyaXB0IG9iamVjdCB0byBpbnNlcnQvdXBkYXRlLlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyB1cHNlcnQobmFtZTogc3RyaW5nLCBlbnRyeTogYW55KTogdm9pZCB7XG5cdFx0RGF0YVN0b3JlRmFjYWRlLnVwc2VydChuYW1lLCBKU09OLnN0cmluZ2lmeShlbnRyeSkpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFVwZGF0ZXMgYW4gZXhpc3RpbmcgZW50cnkuXG5cdCAqIEBwYXJhbSBuYW1lIFRoZSBlbnRpdHkvdGFibGUgbmFtZS5cblx0ICogQHBhcmFtIGVudHJ5IFRoZSBKYXZhU2NyaXB0IG9iamVjdCB3aXRoIHRoZSBJRCBhbmQgdXBkYXRlZCBkYXRhLlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyB1cGRhdGUobmFtZTogc3RyaW5nLCBlbnRyeTogYW55KTogdm9pZCB7XG5cdFx0RGF0YVN0b3JlRmFjYWRlLnVwZGF0ZShuYW1lLCBKU09OLnN0cmluZ2lmeShlbnRyeSkpO1xuXHR9XG5cblx0LyoqXG5cdCAqIExpc3RzIGVudHJpZXMgYmFzZWQgb24gb3B0aW9uYWwgZmlsdGVyaW5nLCBzb3J0aW5nLCBhbmQgcGFnaW5hdGlvbiBvcHRpb25zLlxuXHQgKiBAcGFyYW0gbmFtZSBUaGUgZW50aXR5L3RhYmxlIG5hbWUuXG5cdCAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbmFsIHtAbGluayBPcHRpb25zfSBmb3IgcXVlcnkgZXhlY3V0aW9uLlxuXHQgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBKYXZhU2NyaXB0IG9iamVjdHMuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGxpc3QobmFtZTogc3RyaW5nLCBvcHRpb25zPzogT3B0aW9ucyk6IGFueVtdIHtcblx0XHRjb25zdCByZXN1bHQgPSBEYXRhU3RvcmVGYWNhZGUubGlzdChuYW1lLCBvcHRpb25zID8gSlNPTi5zdHJpbmdpZnkob3B0aW9ucykgOiBudWxsKTtcblx0XHRyZXR1cm4gU3RvcmUucGFyc2VSZXN1bHQocmVzdWx0KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDb3VudHMgdGhlIG51bWJlciBvZiBlbnRyaWVzIGJhc2VkIG9uIG9wdGlvbmFsIGZpbHRlcmluZyBvcHRpb25zLlxuXHQgKiBAcGFyYW0gbmFtZSBUaGUgZW50aXR5L3RhYmxlIG5hbWUuXG5cdCAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbmFsIHtAbGluayBPcHRpb25zfSBmb3IgcXVlcnkgZXhlY3V0aW9uLlxuXHQgKiBAcmV0dXJucyBUaGUgY291bnQgb2YgbWF0Y2hpbmcgZW50cmllcy5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgY291bnQobmFtZTogc3RyaW5nLCBvcHRpb25zPzogT3B0aW9ucyk6IG51bWJlciB7XG5cdFx0Y29uc3Qgb3B0aW9uc1N0cmluZyA9IG9wdGlvbnMgPyBKU09OLnN0cmluZ2lmeShvcHRpb25zKSA6IG51bGw7XG5cdFx0Y29uc3QgcmVzdWx0ID0gRGF0YVN0b3JlRmFjYWRlLmNvdW50KG5hbWUsIG9wdGlvbnNTdHJpbmcpO1xuXHRcdHJldHVybiByZXN1bHQ7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIGEgc2luZ2xlIGVudHJ5IGJ5IGl0cyBJRC5cblx0ICogQHBhcmFtIG5hbWUgVGhlIGVudGl0eS90YWJsZSBuYW1lLlxuXHQgKiBAcGFyYW0gaWQgVGhlIElEIG9mIHRoZSBlbnRyeS5cblx0ICogQHJldHVybnMgVGhlIGVudHJ5IG9iamVjdCwgb3IgdW5kZWZpbmVkIGlmIG5vdCBmb3VuZC5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgZ2V0KG5hbWU6IHN0cmluZywgaWQ6IGFueSk6IGFueSB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3QgcmVzdWx0ID0gRGF0YVN0b3JlRmFjYWRlLmdldChuYW1lLCBpZCk7XG5cdFx0Ly8gQXNzdW1pbmcgdGhlIG5hdGl2ZSBBUEkgcmV0dXJucyBudWxsL3VuZGVmaW5lZCBvciBhbiBlbXB0eSBKU09OIHN0cmluZyBpZiBub3QgZm91bmQsIFxuXHRcdC8vIG90aGVyd2lzZSBKU09OLnBhcnNlIGhhbmRsZXMgdGhlIGNvbnZlcnNpb24uXG5cdFx0aWYgKHJlc3VsdCA9PT0gbnVsbCB8fCByZXN1bHQgPT09IHVuZGVmaW5lZCB8fCByZXN1bHQgPT09IFwiXCIpIHtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXHRcdHJldHVybiBTdG9yZS5wYXJzZVJlc3VsdChyZXN1bHQpO1xuXHR9O1xuXG5cdC8qKlxuXHQgKiBEZWxldGVzIGFuIGVudHJ5IGJ5IGl0cyBJRC5cblx0ICogQHBhcmFtIG5hbWUgVGhlIGVudGl0eS90YWJsZSBuYW1lLlxuXHQgKiBAcGFyYW0gaWQgVGhlIElEIG9mIHRoZSBlbnRyeSB0byByZW1vdmUuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIHJlbW92ZShuYW1lOiBzdHJpbmcsIGlkOiBhbnkpOiB2b2lkIHtcblx0XHREYXRhU3RvcmVGYWNhZGUuZGVsZXRlRW50cnkobmFtZSwgaWQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEZpbmRzIGVudHJpZXMgbWF0Y2hpbmcgYW4gZXhhbXBsZSBvYmplY3QgKHF1ZXJ5LWJ5LWV4YW1wbGUpLlxuXHQgKiBAcGFyYW0gbmFtZSBUaGUgZW50aXR5L3RhYmxlIG5hbWUuXG5cdCAqIEBwYXJhbSBleGFtcGxlIEFuIG9iamVjdCBjb250YWluaW5nIHByb3BlcnRpZXMgdG8gbWF0Y2guXG5cdCAqIEBwYXJhbSBsaW1pdCBNYXhpbXVtIG51bWJlciBvZiByZXN1bHRzIHRvIHJldHVybi5cblx0ICogQHBhcmFtIG9mZnNldCBOdW1iZXIgb2YgcmVzdWx0cyB0byBza2lwLlxuXHQgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBtYXRjaGluZyBKYXZhU2NyaXB0IG9iamVjdHMuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGZpbmQobmFtZTogc3RyaW5nLCBleGFtcGxlOiBhbnksIGxpbWl0OiBudW1iZXIgPSAxMDAsIG9mZnNldDogbnVtYmVyID0gMCk6IGFueVtdIHtcblx0XHRjb25zdCByZXN1bHQgPSBEYXRhU3RvcmVGYWNhZGUuZmluZChuYW1lLCBKU09OLnN0cmluZ2lmeShleGFtcGxlKSwgbGltaXQsIG9mZnNldCk7XG5cdFx0cmV0dXJuIFN0b3JlLnBhcnNlUmVzdWx0KHJlc3VsdCk7XG5cdH1cblxuXHQvKipcblx0ICogUXVlcmllcyBhbGwgZW50cmllcyBmb3IgYSBnaXZlbiBzY3JpcHQgd2l0aCBwYWdpbmF0aW9uLlxuXHQgKiBAcGFyYW0gcXVlcnkgVGhlIHF1ZXJ5IHNjcmlwdC5cblx0ICogQHBhcmFtIGxpbWl0IE1heGltdW0gbnVtYmVyIG9mIHJlc3VsdHMgdG8gcmV0dXJuLlxuXHQgKiBAcGFyYW0gb2Zmc2V0IE51bWJlciBvZiByZXN1bHRzIHRvIHNraXAuXG5cdCAqIEByZXR1cm5zIEFuIGFycmF5IG9mIEphdmFTY3JpcHQgb2JqZWN0cy5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgcXVlcnkocXVlcnk6IHN0cmluZywgcGFyYW1ldGVycz86IChzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgRGF0ZSB8IFR5cGVkUXVlcnlQYXJhbWV0ZXIgfCBOYW1lZFF1ZXJ5UGFyYW1ldGVyKVtdLCBsaW1pdDogbnVtYmVyID0gMTAwLCBvZmZzZXQ6IG51bWJlciA9IDApOiBhbnlbXSB7XG5cdFx0bGV0IGFycjogYW55W10gPSBbXTtcblx0XHRpZiAocGFyYW1ldGVycyA9PSBudWxsKSB7XG5cdFx0XHRhcnIgPSBbXTtcblx0XHR9IGVsc2UgaWYgKHR5cGVvZiBwYXJhbWV0ZXJzID09PSBcInN0cmluZ1wiKSB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKHBhcmFtZXRlcnMpO1xuXHRcdFx0XHRpZiAoIUFycmF5LmlzQXJyYXkocGFyc2VkKSkge1xuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihcIklucHV0IHBhcmFtZXRlciBzdHJpbmcgbXVzdCByZXByZXNlbnQgYSBKU09OIGFycmF5XCIpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGFyciA9IHBhcnNlZDtcblx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBKU09OIHBhcmFtZXRlcnM6IFwiICsgZSk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHBhcmFtZXRlcnMpKSB7XG5cdFx0XHRhcnIgPSBwYXJhbWV0ZXJzO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJQYXJhbWV0ZXJzIG11c3QgYmUgZWl0aGVyIGFuIGFycmF5IG9yIGEgSlNPTiBzdHJpbmdcIik7XG5cdFx0fVxuXG5cdFx0aWYgKGFyci5sZW5ndGggPT09IDApIHtcblx0XHRcdGNvbnN0IHJlc3VsdCA9IERhdGFTdG9yZUZhY2FkZS5xdWVyeShxdWVyeSwgbnVsbCwgbGltaXQsIG9mZnNldCk7XG5cdFx0XHRyZXR1cm4gU3RvcmUucGFyc2VSZXN1bHQocmVzdWx0KTtcblx0XHR9XG5cblx0XHRjb25zdCBmaXJzdCA9IGFyclswXTtcblxuXHRcdC8vIE5hbWVkUXVlcnlQYXJhbWV0ZXIgKGhhcyBuYW1lICsgdHlwZSlcblx0XHRpZiAoZmlyc3QgJiYgdHlwZW9mIGZpcnN0ID09PSBcIm9iamVjdFwiICYmIFwibmFtZVwiIGluIGZpcnN0ICYmIFwidHlwZVwiIGluIGZpcnN0KSB7XG5cdFx0XHRjb25zdCByZXN1bHQgPSBEYXRhU3RvcmVGYWNhZGUucXVlcnlOYW1lZChxdWVyeSwgSlNPTi5zdHJpbmdpZnkoYXJyKSwgbGltaXQsIG9mZnNldCk7XG5cdFx0XHRyZXR1cm4gU3RvcmUucGFyc2VSZXN1bHQocmVzdWx0KTtcblx0XHR9XG5cblx0XHQvLyBUeXBlZFF1ZXJ5UGFyYW1ldGVyIChoYXMgdHlwZSwgbm8gbmFtZSlcblx0XHRpZiAoZmlyc3QgJiYgdHlwZW9mIGZpcnN0ID09PSBcIm9iamVjdFwiICYmIFwidHlwZVwiIGluIGZpcnN0ICYmICEoXCJuYW1lXCIgaW4gZmlyc3QpKSB7XG5cdFx0XHRjb25zdCByZXN1bHQgPSBEYXRhU3RvcmVGYWNhZGUucXVlcnkocXVlcnksIEpTT04uc3RyaW5naWZ5KGFyciksIGxpbWl0LCBvZmZzZXQpO1xuXHRcdFx0cmV0dXJuIFN0b3JlLnBhcnNlUmVzdWx0KHJlc3VsdCk7XG5cdFx0fVxuXG5cdFx0Ly8gUHJpbWl0aXZlIGFycmF5XG5cdFx0aWYgKFxuXHRcdFx0YXJyLmV2ZXJ5KFxuXHRcdFx0XHQodikgPT5cblx0XHRcdFx0XHR0eXBlb2YgdiA9PT0gXCJzdHJpbmdcIiB8fFxuXHRcdFx0XHRcdHR5cGVvZiB2ID09PSBcIm51bWJlclwiIHx8XG5cdFx0XHRcdFx0dHlwZW9mIHYgPT09IFwiYm9vbGVhblwiIHx8XG5cdFx0XHRcdFx0diBpbnN0YW5jZW9mIERhdGUgfHxcblx0XHRcdFx0XHRBcnJheS5pc0FycmF5KHYpXG5cdFx0XHQpXG5cdFx0KSB7XG5cdFx0XHRjb25zdCByZXN1bHQgPSBEYXRhU3RvcmVGYWNhZGUucXVlcnkocXVlcnksIEpTT04uc3RyaW5naWZ5KGFyciksIGxpbWl0LCBvZmZzZXQpO1xuXHRcdFx0cmV0dXJuIFN0b3JlLnBhcnNlUmVzdWx0KHJlc3VsdCk7XG5cdFx0fVxuXG5cdFx0dGhyb3cgbmV3IEVycm9yKFwiVW5zdXBwb3J0ZWQgcGFyYW1ldGVyIGZvcm1hdDogXCIgKyBKU09OLnN0cmluZ2lmeShwYXJhbWV0ZXJzKSk7XG5cdH1cblxuXHQvKipcblx0ICogUXVlcmllcyBhbGwgZW50cmllcyBmb3IgYSBnaXZlbiBlbnRpdHkgbmFtZSB3aXRob3V0IHBhZ2luYXRpb24uXG5cdCAqIEBwYXJhbSBxdWVyeSBUaGUgZW50aXR5L3RhYmxlIG5hbWUuXG5cdCAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGFsbCBKYXZhU2NyaXB0IG9iamVjdHMuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIHF1ZXJ5TmF0aXZlKHF1ZXJ5OiBzdHJpbmcsIHBhcmFtZXRlcnM/OiAoc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IERhdGUgfCBUeXBlZFF1ZXJ5UGFyYW1ldGVyIHwgTmFtZWRRdWVyeVBhcmFtZXRlcilbXSwgbGltaXQ6IG51bWJlciA9IDEwMCwgb2Zmc2V0OiBudW1iZXIgPSAwKTogYW55W10ge1xuXHRcdGxldCBhcnI6IGFueVtdID0gW107XG5cdFx0aWYgKHBhcmFtZXRlcnMgPT0gbnVsbCkge1xuXHRcdFx0YXJyID0gW107XG5cdFx0fSBlbHNlIGlmICh0eXBlb2YgcGFyYW1ldGVycyA9PT0gXCJzdHJpbmdcIikge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0Y29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShwYXJhbWV0ZXJzKTtcblx0XHRcdFx0aWYgKCFBcnJheS5pc0FycmF5KHBhcnNlZCkpIHtcblx0XHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJJbnB1dCBwYXJhbWV0ZXIgc3RyaW5nIG11c3QgcmVwcmVzZW50IGEgSlNPTiBhcnJheVwiKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRhcnIgPSBwYXJzZWQ7XG5cdFx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRcdHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgSlNPTiBwYXJhbWV0ZXJzOiBcIiArIGUpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShwYXJhbWV0ZXJzKSkge1xuXHRcdFx0YXJyID0gcGFyYW1ldGVycztcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiUGFyYW1ldGVycyBtdXN0IGJlIGVpdGhlciBhbiBhcnJheSBvciBhIEpTT04gc3RyaW5nXCIpO1xuXHRcdH1cblxuXHRcdGlmIChhcnIubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRjb25zdCByZXN1bHQgPSBEYXRhU3RvcmVGYWNhZGUucXVlcnlOYXRpdmUocXVlcnksIG51bGwsIGxpbWl0LCBvZmZzZXQpO1xuXHRcdFx0cmV0dXJuIFN0b3JlLnBhcnNlUmVzdWx0KHJlc3VsdCk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgZmlyc3QgPSBhcnJbMF07XG5cblx0XHQvLyBOYW1lZFF1ZXJ5UGFyYW1ldGVyIChoYXMgbmFtZSArIHR5cGUpXG5cdFx0aWYgKGZpcnN0ICYmIHR5cGVvZiBmaXJzdCA9PT0gXCJvYmplY3RcIiAmJiBcIm5hbWVcIiBpbiBmaXJzdCAmJiBcInR5cGVcIiBpbiBmaXJzdCkge1xuXHRcdFx0Y29uc3QgcmVzdWx0ID0gRGF0YVN0b3JlRmFjYWRlLnF1ZXJ5TmF0aXZlTmFtZWQocXVlcnksIEpTT04uc3RyaW5naWZ5KGFyciksIGxpbWl0LCBvZmZzZXQpO1xuXHRcdFx0cmV0dXJuIFN0b3JlLnBhcnNlUmVzdWx0KHJlc3VsdCk7XG5cdFx0fVxuXG5cdFx0Ly8gVHlwZWRRdWVyeVBhcmFtZXRlciAoaGFzIHR5cGUsIG5vIG5hbWUpXG5cdFx0aWYgKGZpcnN0ICYmIHR5cGVvZiBmaXJzdCA9PT0gXCJvYmplY3RcIiAmJiBcInR5cGVcIiBpbiBmaXJzdCAmJiAhKFwibmFtZVwiIGluIGZpcnN0KSkge1xuXHRcdFx0Y29uc3QgcmVzdWx0ID0gRGF0YVN0b3JlRmFjYWRlLnF1ZXJ5TmF0aXZlKHF1ZXJ5LCBKU09OLnN0cmluZ2lmeShhcnIpLCBsaW1pdCwgb2Zmc2V0KTtcblx0XHRcdHJldHVybiBTdG9yZS5wYXJzZVJlc3VsdChyZXN1bHQpO1xuXHRcdH1cblxuXHRcdC8vIFByaW1pdGl2ZSBhcnJheVxuXHRcdGlmIChcblx0XHRcdGFyci5ldmVyeShcblx0XHRcdFx0KHYpID0+XG5cdFx0XHRcdFx0dHlwZW9mIHYgPT09IFwic3RyaW5nXCIgfHxcblx0XHRcdFx0XHR0eXBlb2YgdiA9PT0gXCJudW1iZXJcIiB8fFxuXHRcdFx0XHRcdHR5cGVvZiB2ID09PSBcImJvb2xlYW5cIiB8fFxuXHRcdFx0XHRcdHYgaW5zdGFuY2VvZiBEYXRlIHx8XG5cdFx0XHRcdFx0QXJyYXkuaXNBcnJheSh2KVxuXHRcdFx0KVxuXHRcdCkge1xuXHRcdFx0Y29uc3QgcmVzdWx0ID0gRGF0YVN0b3JlRmFjYWRlLnF1ZXJ5TmF0aXZlKHF1ZXJ5LCBKU09OLnN0cmluZ2lmeShhcnIpLCBsaW1pdCwgb2Zmc2V0KTtcblx0XHRcdHJldHVybiBTdG9yZS5wYXJzZVJlc3VsdChyZXN1bHQpO1xuXHRcdH1cblxuXHRcdHRocm93IG5ldyBFcnJvcihcIlVuc3VwcG9ydGVkIHBhcmFtZXRlciBmb3JtYXQ6IFwiICsgSlNPTi5zdHJpbmdpZnkocGFyYW1ldGVycykpO1xuXHR9XG5cblx0Ly8gLS0tIE1ldGFkYXRhIEdldHRlcnMgLS0tXG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIG5hbWUgb2YgdGhlIGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhlIHN0b3JlIG5hbWUuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGdldEVudGl0eU5hbWUobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gRGF0YVN0b3JlRmFjYWRlLmdldEVudGl0eU5hbWUobmFtZSk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0cyB0aGUgdW5kZXJseWluZyBkYXRhYmFzZSB0YWJsZSBuYW1lIGZvciB0aGUgZW50aXR5LlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyBnZXRUYWJsZU5hbWUobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gRGF0YVN0b3JlRmFjYWRlLmdldFRhYmxlTmFtZShuYW1lKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBwcm9wZXJ0eSBuYW1lIHVzZWQgYXMgdGhlIElEIGZpZWxkIGluIHRoZSBlbnRpdHkgb2JqZWN0LlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyBnZXRJZE5hbWUobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gRGF0YVN0b3JlRmFjYWRlLmdldElkTmFtZShuYW1lKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSB1bmRlcmx5aW5nIGRhdGFiYXNlIGNvbHVtbiBuYW1lIHVzZWQgZm9yIHRoZSBJRCBmaWVsZC5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgZ2V0SWRDb2x1bW4obmFtZTogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gRGF0YVN0b3JlRmFjYWRlLmdldElkQ29sdW1uKG5hbWUpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlIGEgSlNPTiBzdHJpbmcgYW5kIHJldml2ZSBJU08gZGF0ZSBzdHJpbmdzIGludG8gSlMgRGF0ZSBvYmplY3RzLlxuXHQgKiBJdCBoYW5kbGVzIGJvdGggZnVsbCBJU08gdGltZXN0YW1wcyAod2l0aCB0aW1lem9uZSkgYW5kIGRhdGUtb25seSBzdHJpbmdzIChZWVlZLU1NLUREKS5cblx0ICogUmV0dXJucyB1bmRlZmluZWQgZm9yIG51bGwvZW1wdHkgaW5wdXRzLlxuXHQgKi9cblx0cHJpdmF0ZSBzdGF0aWMgcGFyc2VSZXN1bHQocmVzdWx0OiBhbnkpOiBhbnkge1xuXHRcdGlmIChyZXN1bHQgPT09IG51bGwgfHwgcmVzdWx0ID09PSB1bmRlZmluZWQgfHwgcmVzdWx0ID09PSAnJykge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdFx0aWYgKHR5cGVvZiByZXN1bHQgIT09ICdzdHJpbmcnKSB7XG5cdFx0XHQvLyBhbHJlYWR5IGFuIG9iamVjdC9hcnJheVxuXHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHR9XG5cblx0XHQvLyBBY2NlcHQgdGltZXpvbmUgb2Zmc2V0cyB3aXRoIG9yIHdpdGhvdXQgY29sb24gKGUuZy4gKzAwOjAwIG9yICswMDAwKVxuXHRcdGNvbnN0IElTT19EQVRFVElNRSA9IC9eXFxkezR9LVxcZHsyfS1cXGR7Mn1UXFxkezJ9OlxcZHsyfTpcXGR7Mn0oPzpcXC5cXGQrKT8oPzpafFsrXFwtXVxcZHsyfTo/XFxkezJ9KSQvO1xuXHRcdGNvbnN0IERBVEVfT05MWSA9IC9eXFxkezR9LVxcZHsyfS1cXGR7Mn0kLztcblx0XHRjb25zdCBUWl9OT19DT0xPTiA9IC8oWytcXC1dXFxkezJ9KShcXGR7Mn0pJC87XG5cdFx0Ly8gU3BhY2Utc2VwYXJhdGVkIGRhdGV0aW1lOiBcIllZWVktTU0tREQgSEg6TU06U1NcIiAob3B0aW9uYWxseSB3aXRoIGZyYWN0aW9uYWwgc2Vjb25kcyBhbmQgdGltZXpvbmUpXG5cdFx0Y29uc3QgU1BBQ0VfREFURVRJTUUgPSAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9IFxcZHsyfTpcXGR7Mn06XFxkezJ9KD86XFwuXFxkKyk/KD86WnxbK1xcLV1cXGR7Mn06P1xcZHsyfSk/JC87XG5cdFx0Ly8gVGltZS1vbmx5IHN0cmluZ3MgbGlrZSBcIjExOjI5OjMzXCIgb3IgXCIxMToyOTozMy4xMjNcIlxuXHRcdGNvbnN0IFRJTUVfT05MWSA9IC9eXFxkezJ9OlxcZHsyfTpcXGR7Mn0oPzpcXC5cXGQrKT8kLztcblx0XHQvLyBFcG9jaCBzdHJpbmdzOiAxMy1kaWdpdCBtcyBvciAxMC1kaWdpdCBzZWNvbmRzXG5cdFx0Y29uc3QgRVBPQ0hfTVMgPSAvXlsrXFwtXT9cXGR7MTN9JC87XG5cdFx0Y29uc3QgRVBPQ0hfUyA9IC9eWytcXC1dP1xcZHsxMH0kLztcblxuXHRcdHJldHVybiBKU09OLnBhcnNlKHJlc3VsdCwgKGtleSwgdmFsdWUpID0+IHtcblx0XHRcdGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG5cdFx0XHRcdGNvbnN0IHMgPSB2YWx1ZS50cmltKCk7XG5cblx0XHRcdFx0Ly8gRXBvY2ggbWlsbGlzZWNvbmQvc2Vjb25kIHN0cmluZ3Ncblx0XHRcdFx0aWYgKEVQT0NIX01TLnRlc3QocykpIHtcblx0XHRcdFx0XHRjb25zdCBtcyA9IHBhcnNlSW50KHMsIDEwKTtcblx0XHRcdFx0XHRyZXR1cm4gbmV3IERhdGUobXMpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChFUE9DSF9TLnRlc3QocykpIHtcblx0XHRcdFx0XHRjb25zdCBtcyA9IHBhcnNlSW50KHMsIDEwKSAqIDEwMDA7XG5cdFx0XHRcdFx0cmV0dXJuIG5ldyBEYXRlKG1zKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFNwYWNlLXNlcGFyYXRlZCBkYXRldGltZXM6IG5vcm1hbGl6ZSB0byBJU08gYW5kIHBhcnNlXG5cdFx0XHRcdGlmIChTUEFDRV9EQVRFVElNRS50ZXN0KHMpKSB7XG5cdFx0XHRcdFx0bGV0IHYgPSBzLnJlcGxhY2UoJyAnLCAnVCcpO1xuXHRcdFx0XHRcdGlmIChUWl9OT19DT0xPTi50ZXN0KHYpKSB7XG5cdFx0XHRcdFx0XHR2ID0gdi5yZXBsYWNlKFRaX05PX0NPTE9OLCAnJDE6JDInKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Y29uc3QgZCA9IG5ldyBEYXRlKHYpO1xuXHRcdFx0XHRcdGlmICghaXNOYU4oZC5nZXRUaW1lKCkpKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gZDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBUaW1lLW9ubHkgc3RyaW5nczogYXR0YWNoIGN1cnJlbnQgVVRDIGRhdGUgYW5kIHBhcnNlIGFzIFVUQ1xuXHRcdFx0XHRpZiAoVElNRV9PTkxZLnRlc3QocykpIHtcblx0XHRcdFx0XHRjb25zdCBtID0gcy5tYXRjaCgvKFxcZHsyfSk6KFxcZHsyfSk6KFxcZHsyfSkoPzpcXC4oXFxkKykpPy8pO1xuXHRcdFx0XHRcdGlmIChtKSB7XG5cdFx0XHRcdFx0XHRjb25zdCBoaCA9IHBhcnNlSW50KG1bMV0sIDEwKTtcblx0XHRcdFx0XHRcdGNvbnN0IG1tID0gcGFyc2VJbnQobVsyXSwgMTApO1xuXHRcdFx0XHRcdFx0Y29uc3Qgc3MgPSBwYXJzZUludChtWzNdLCAxMCk7XG5cdFx0XHRcdFx0XHRjb25zdCBmcmFjID0gbVs0XSA/IChtWzRdICsgJzAwMCcpLnN1YnN0cmluZygwLCAzKSA6ICcwMDAnO1xuXHRcdFx0XHRcdFx0Y29uc3QgbXMgPSBwYXJzZUludChmcmFjLCAxMCk7XG5cdFx0XHRcdFx0XHRjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuXHRcdFx0XHRcdFx0Y29uc3QgZCA9IG5ldyBEYXRlKERhdGUuVVRDKG5vdy5nZXRVVENGdWxsWWVhcigpLCBub3cuZ2V0VVRDTW9udGgoKSwgbm93LmdldFVUQ0RhdGUoKSwgaGgsIG1tLCBzcywgbXMpKTtcblx0XHRcdFx0XHRcdHJldHVybiBkO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmIChJU09fREFURVRJTUUudGVzdChzKSB8fCBEQVRFX09OTFkudGVzdChzKSkge1xuXHRcdFx0XHRcdC8vIG5vcm1hbGl6ZSB0aW1lem9uZSB3aXRob3V0IGNvbG9uIChlLmcuICswMDAwIC0+ICswMDowMCkgYmVjYXVzZSBEYXRlIHBhcnNpbmdcblx0XHRcdFx0XHQvLyBwcmVmZXJzIHRoZSBjb2xvbi1zZXBhcmF0ZWQgb2Zmc2V0IGluIG1hbnkgSlMgZW5naW5lc1xuXHRcdFx0XHRcdGxldCB2ID0gcztcblx0XHRcdFx0XHRpZiAoVFpfTk9fQ09MT04udGVzdCh2KSkge1xuXHRcdFx0XHRcdFx0diA9IHYucmVwbGFjZShUWl9OT19DT0xPTiwgJyQxOiQyJyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGNvbnN0IGQgPSBuZXcgRGF0ZSh2KTtcblx0XHRcdFx0XHRpZiAoIWlzTmFOKGQuZ2V0VGltZSgpKSkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0fSk7XG5cdH1cblxufVxuXG4vLyBAdHMtaWdub3JlXG5pZiAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcpIHtcblx0Ly8gQHRzLWlnbm9yZVxuXHRtb2R1bGUuZXhwb3J0cyA9IFN0b3JlO1xufSJdLAogICJtYXBwaW5ncyI6ICJBQUFBLE1BQU0sa0JBQWtCLEtBQUssS0FBSyx5REFBeUQ7QUFLcEYsSUFBSyxXQUFMLGtCQUFLQSxjQUFMO0FBQ04sRUFBQUEsVUFBQSxRQUFLO0FBQ0wsRUFBQUEsVUFBQSxRQUFLO0FBQ0wsRUFBQUEsVUFBQSxRQUFLO0FBQ0wsRUFBQUEsVUFBQSxRQUFLO0FBQ0wsRUFBQUEsVUFBQSxRQUFLO0FBQ0wsRUFBQUEsVUFBQSxRQUFLO0FBQ0wsRUFBQUEsVUFBQSxVQUFPO0FBQ1AsRUFBQUEsVUFBQSxhQUFVO0FBQ1YsRUFBQUEsVUFBQSxRQUFLO0FBVE0sU0FBQUE7QUFBQSxHQUFBO0FBZUwsSUFBSyxZQUFMLGtCQUFLQyxlQUFMO0FBQ04sRUFBQUEsV0FBQSxTQUFNO0FBQ04sRUFBQUEsV0FBQSxVQUFPO0FBRkksU0FBQUE7QUFBQSxHQUFBO0FBd0NMLE1BQU0sTUFBTTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUWxCLE9BQWMsS0FBSyxNQUFjLE9BQTZCO0FBQzdELFdBQU8sZ0JBQWdCLEtBQUssTUFBTSxLQUFLLFVBQVUsS0FBSyxDQUFDO0FBQUEsRUFDeEQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxPQUFjLE9BQU8sTUFBYyxPQUFrQjtBQUNwRCxvQkFBZ0IsT0FBTyxNQUFNLEtBQUssVUFBVSxLQUFLLENBQUM7QUFBQSxFQUNuRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9BLE9BQWMsT0FBTyxNQUFjLE9BQWtCO0FBQ3BELG9CQUFnQixPQUFPLE1BQU0sS0FBSyxVQUFVLEtBQUssQ0FBQztBQUFBLEVBQ25EO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRQSxPQUFjLEtBQUssTUFBYyxTQUEwQjtBQUMxRCxVQUFNLFNBQVMsZ0JBQWdCLEtBQUssTUFBTSxVQUFVLEtBQUssVUFBVSxPQUFPLElBQUksSUFBSTtBQUNsRixXQUFPLE1BQU0sWUFBWSxNQUFNO0FBQUEsRUFDaEM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFBLE9BQWMsTUFBTSxNQUFjLFNBQTJCO0FBQzVELFVBQU0sZ0JBQWdCLFVBQVUsS0FBSyxVQUFVLE9BQU8sSUFBSTtBQUMxRCxVQUFNLFNBQVMsZ0JBQWdCLE1BQU0sTUFBTSxhQUFhO0FBQ3hELFdBQU87QUFBQSxFQUNSO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRQSxPQUFjLElBQUksTUFBYyxJQUEwQjtBQUN6RCxVQUFNLFNBQVMsZ0JBQWdCLElBQUksTUFBTSxFQUFFO0FBRzNDLFFBQUksV0FBVyxRQUFRLFdBQVcsVUFBYSxXQUFXLElBQUk7QUFDN0QsYUFBTztBQUFBLElBQ1I7QUFDQSxXQUFPLE1BQU0sWUFBWSxNQUFNO0FBQUEsRUFDaEM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxPQUFjLE9BQU8sTUFBYyxJQUFlO0FBQ2pELG9CQUFnQixZQUFZLE1BQU0sRUFBRTtBQUFBLEVBQ3JDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBVUEsT0FBYyxLQUFLLE1BQWMsU0FBYyxRQUFnQixLQUFLLFNBQWlCLEdBQVU7QUFDOUYsVUFBTSxTQUFTLGdCQUFnQixLQUFLLE1BQU0sS0FBSyxVQUFVLE9BQU8sR0FBRyxPQUFPLE1BQU07QUFDaEYsV0FBTyxNQUFNLFlBQVksTUFBTTtBQUFBLEVBQ2hDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVNBLE9BQWMsTUFBTSxPQUFlLFlBQStGLFFBQWdCLEtBQUssU0FBaUIsR0FBVTtBQUNqTCxRQUFJLE1BQWEsQ0FBQztBQUNsQixRQUFJLGNBQWMsTUFBTTtBQUN2QixZQUFNLENBQUM7QUFBQSxJQUNSLFdBQVcsT0FBTyxlQUFlLFVBQVU7QUFDMUMsVUFBSTtBQUNILGNBQU0sU0FBUyxLQUFLLE1BQU0sVUFBVTtBQUNwQyxZQUFJLENBQUMsTUFBTSxRQUFRLE1BQU0sR0FBRztBQUMzQixnQkFBTSxJQUFJLE1BQU0sb0RBQW9EO0FBQUEsUUFDckU7QUFDQSxjQUFNO0FBQUEsTUFDUCxTQUFTLEdBQUc7QUFDWCxjQUFNLElBQUksTUFBTSw4QkFBOEIsQ0FBQztBQUFBLE1BQ2hEO0FBQUEsSUFDRCxXQUFXLE1BQU0sUUFBUSxVQUFVLEdBQUc7QUFDckMsWUFBTTtBQUFBLElBQ1AsT0FBTztBQUNOLFlBQU0sSUFBSSxNQUFNLHFEQUFxRDtBQUFBLElBQ3RFO0FBRUEsUUFBSSxJQUFJLFdBQVcsR0FBRztBQUNyQixZQUFNLFNBQVMsZ0JBQWdCLE1BQU0sT0FBTyxNQUFNLE9BQU8sTUFBTTtBQUMvRCxhQUFPLE1BQU0sWUFBWSxNQUFNO0FBQUEsSUFDaEM7QUFFQSxVQUFNLFFBQVEsSUFBSSxDQUFDO0FBR25CLFFBQUksU0FBUyxPQUFPLFVBQVUsWUFBWSxVQUFVLFNBQVMsVUFBVSxPQUFPO0FBQzdFLFlBQU0sU0FBUyxnQkFBZ0IsV0FBVyxPQUFPLEtBQUssVUFBVSxHQUFHLEdBQUcsT0FBTyxNQUFNO0FBQ25GLGFBQU8sTUFBTSxZQUFZLE1BQU07QUFBQSxJQUNoQztBQUdBLFFBQUksU0FBUyxPQUFPLFVBQVUsWUFBWSxVQUFVLFNBQVMsRUFBRSxVQUFVLFFBQVE7QUFDaEYsWUFBTSxTQUFTLGdCQUFnQixNQUFNLE9BQU8sS0FBSyxVQUFVLEdBQUcsR0FBRyxPQUFPLE1BQU07QUFDOUUsYUFBTyxNQUFNLFlBQVksTUFBTTtBQUFBLElBQ2hDO0FBR0EsUUFDQyxJQUFJO0FBQUEsTUFDSCxDQUFDLE1BQ0EsT0FBTyxNQUFNLFlBQ2IsT0FBTyxNQUFNLFlBQ2IsT0FBTyxNQUFNLGFBQ2IsYUFBYSxRQUNiLE1BQU0sUUFBUSxDQUFDO0FBQUEsSUFDakIsR0FDQztBQUNELFlBQU0sU0FBUyxnQkFBZ0IsTUFBTSxPQUFPLEtBQUssVUFBVSxHQUFHLEdBQUcsT0FBTyxNQUFNO0FBQzlFLGFBQU8sTUFBTSxZQUFZLE1BQU07QUFBQSxJQUNoQztBQUVBLFVBQU0sSUFBSSxNQUFNLG1DQUFtQyxLQUFLLFVBQVUsVUFBVSxDQUFDO0FBQUEsRUFDOUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxPQUFjLFlBQVksT0FBZSxZQUErRixRQUFnQixLQUFLLFNBQWlCLEdBQVU7QUFDdkwsUUFBSSxNQUFhLENBQUM7QUFDbEIsUUFBSSxjQUFjLE1BQU07QUFDdkIsWUFBTSxDQUFDO0FBQUEsSUFDUixXQUFXLE9BQU8sZUFBZSxVQUFVO0FBQzFDLFVBQUk7QUFDSCxjQUFNLFNBQVMsS0FBSyxNQUFNLFVBQVU7QUFDcEMsWUFBSSxDQUFDLE1BQU0sUUFBUSxNQUFNLEdBQUc7QUFDM0IsZ0JBQU0sSUFBSSxNQUFNLG9EQUFvRDtBQUFBLFFBQ3JFO0FBQ0EsY0FBTTtBQUFBLE1BQ1AsU0FBUyxHQUFHO0FBQ1gsY0FBTSxJQUFJLE1BQU0sOEJBQThCLENBQUM7QUFBQSxNQUNoRDtBQUFBLElBQ0QsV0FBVyxNQUFNLFFBQVEsVUFBVSxHQUFHO0FBQ3JDLFlBQU07QUFBQSxJQUNQLE9BQU87QUFDTixZQUFNLElBQUksTUFBTSxxREFBcUQ7QUFBQSxJQUN0RTtBQUVBLFFBQUksSUFBSSxXQUFXLEdBQUc7QUFDckIsWUFBTSxTQUFTLGdCQUFnQixZQUFZLE9BQU8sTUFBTSxPQUFPLE1BQU07QUFDckUsYUFBTyxNQUFNLFlBQVksTUFBTTtBQUFBLElBQ2hDO0FBRUEsVUFBTSxRQUFRLElBQUksQ0FBQztBQUduQixRQUFJLFNBQVMsT0FBTyxVQUFVLFlBQVksVUFBVSxTQUFTLFVBQVUsT0FBTztBQUM3RSxZQUFNLFNBQVMsZ0JBQWdCLGlCQUFpQixPQUFPLEtBQUssVUFBVSxHQUFHLEdBQUcsT0FBTyxNQUFNO0FBQ3pGLGFBQU8sTUFBTSxZQUFZLE1BQU07QUFBQSxJQUNoQztBQUdBLFFBQUksU0FBUyxPQUFPLFVBQVUsWUFBWSxVQUFVLFNBQVMsRUFBRSxVQUFVLFFBQVE7QUFDaEYsWUFBTSxTQUFTLGdCQUFnQixZQUFZLE9BQU8sS0FBSyxVQUFVLEdBQUcsR0FBRyxPQUFPLE1BQU07QUFDcEYsYUFBTyxNQUFNLFlBQVksTUFBTTtBQUFBLElBQ2hDO0FBR0EsUUFDQyxJQUFJO0FBQUEsTUFDSCxDQUFDLE1BQ0EsT0FBTyxNQUFNLFlBQ2IsT0FBTyxNQUFNLFlBQ2IsT0FBTyxNQUFNLGFBQ2IsYUFBYSxRQUNiLE1BQU0sUUFBUSxDQUFDO0FBQUEsSUFDakIsR0FDQztBQUNELFlBQU0sU0FBUyxnQkFBZ0IsWUFBWSxPQUFPLEtBQUssVUFBVSxHQUFHLEdBQUcsT0FBTyxNQUFNO0FBQ3BGLGFBQU8sTUFBTSxZQUFZLE1BQU07QUFBQSxJQUNoQztBQUVBLFVBQU0sSUFBSSxNQUFNLG1DQUFtQyxLQUFLLFVBQVUsVUFBVSxDQUFDO0FBQUEsRUFDOUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsT0FBYyxjQUFjLE1BQXNCO0FBQ2pELFdBQU8sZ0JBQWdCLGNBQWMsSUFBSTtBQUFBLEVBQzFDO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQSxPQUFjLGFBQWEsTUFBc0I7QUFDaEQsV0FBTyxnQkFBZ0IsYUFBYSxJQUFJO0FBQUEsRUFDekM7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBLE9BQWMsVUFBVSxNQUFzQjtBQUM3QyxXQUFPLGdCQUFnQixVQUFVLElBQUk7QUFBQSxFQUN0QztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS0EsT0FBYyxZQUFZLE1BQXNCO0FBQy9DLFdBQU8sZ0JBQWdCLFlBQVksSUFBSTtBQUFBLEVBQ3hDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsT0FBZSxZQUFZLFFBQWtCO0FBQzVDLFFBQUksV0FBVyxRQUFRLFdBQVcsVUFBYSxXQUFXLElBQUk7QUFDN0QsYUFBTztBQUFBLElBQ1I7QUFDQSxRQUFJLE9BQU8sV0FBVyxVQUFVO0FBRS9CLGFBQU87QUFBQSxJQUNSO0FBR0EsVUFBTSxlQUFlO0FBQ3JCLFVBQU0sWUFBWTtBQUNsQixVQUFNLGNBQWM7QUFFcEIsVUFBTSxpQkFBaUI7QUFFdkIsVUFBTSxZQUFZO0FBRWxCLFVBQU0sV0FBVztBQUNqQixVQUFNLFVBQVU7QUFFaEIsV0FBTyxLQUFLLE1BQU0sUUFBUSxDQUFDLEtBQUssVUFBVTtBQUN6QyxVQUFJLE9BQU8sVUFBVSxVQUFVO0FBQzlCLGNBQU0sSUFBSSxNQUFNLEtBQUs7QUFHckIsWUFBSSxTQUFTLEtBQUssQ0FBQyxHQUFHO0FBQ3JCLGdCQUFNLEtBQUssU0FBUyxHQUFHLEVBQUU7QUFDekIsaUJBQU8sSUFBSSxLQUFLLEVBQUU7QUFBQSxRQUNuQjtBQUNBLFlBQUksUUFBUSxLQUFLLENBQUMsR0FBRztBQUNwQixnQkFBTSxLQUFLLFNBQVMsR0FBRyxFQUFFLElBQUk7QUFDN0IsaUJBQU8sSUFBSSxLQUFLLEVBQUU7QUFBQSxRQUNuQjtBQUdBLFlBQUksZUFBZSxLQUFLLENBQUMsR0FBRztBQUMzQixjQUFJLElBQUksRUFBRSxRQUFRLEtBQUssR0FBRztBQUMxQixjQUFJLFlBQVksS0FBSyxDQUFDLEdBQUc7QUFDeEIsZ0JBQUksRUFBRSxRQUFRLGFBQWEsT0FBTztBQUFBLFVBQ25DO0FBQ0EsZ0JBQU0sSUFBSSxJQUFJLEtBQUssQ0FBQztBQUNwQixjQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxHQUFHO0FBQ3hCLG1CQUFPO0FBQUEsVUFDUjtBQUFBLFFBQ0Q7QUFHQSxZQUFJLFVBQVUsS0FBSyxDQUFDLEdBQUc7QUFDdEIsZ0JBQU0sSUFBSSxFQUFFLE1BQU0scUNBQXFDO0FBQ3ZELGNBQUksR0FBRztBQUNOLGtCQUFNLEtBQUssU0FBUyxFQUFFLENBQUMsR0FBRyxFQUFFO0FBQzVCLGtCQUFNLEtBQUssU0FBUyxFQUFFLENBQUMsR0FBRyxFQUFFO0FBQzVCLGtCQUFNLEtBQUssU0FBUyxFQUFFLENBQUMsR0FBRyxFQUFFO0FBQzVCLGtCQUFNLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksT0FBTyxVQUFVLEdBQUcsQ0FBQyxJQUFJO0FBQ3JELGtCQUFNLEtBQUssU0FBUyxNQUFNLEVBQUU7QUFDNUIsa0JBQU0sTUFBTSxvQkFBSSxLQUFLO0FBQ3JCLGtCQUFNLElBQUksSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLGVBQWUsR0FBRyxJQUFJLFlBQVksR0FBRyxJQUFJLFdBQVcsR0FBRyxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7QUFDdEcsbUJBQU87QUFBQSxVQUNSO0FBQUEsUUFDRDtBQUVBLFlBQUksYUFBYSxLQUFLLENBQUMsS0FBSyxVQUFVLEtBQUssQ0FBQyxHQUFHO0FBRzlDLGNBQUksSUFBSTtBQUNSLGNBQUksWUFBWSxLQUFLLENBQUMsR0FBRztBQUN4QixnQkFBSSxFQUFFLFFBQVEsYUFBYSxPQUFPO0FBQUEsVUFDbkM7QUFDQSxnQkFBTSxJQUFJLElBQUksS0FBSyxDQUFDO0FBQ3BCLGNBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEdBQUc7QUFDeEIsbUJBQU87QUFBQSxVQUNSO0FBQUEsUUFDRDtBQUFBLE1BQ0Q7QUFDQSxhQUFPO0FBQUEsSUFDUixDQUFDO0FBQUEsRUFDRjtBQUVEO0FBR0EsSUFBSSxPQUFPLFdBQVcsYUFBYTtBQUVsQyxTQUFPLFVBQVU7QUFDbEI7IiwKICAibmFtZXMiOiBbIk9wZXJhdG9yIiwgIkRpcmVjdGlvbiJdCn0K
|