angular-odata 0.122.0 → 0.124.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/esm2022/lib/api.mjs +373 -0
- package/esm2022/lib/cache/cache.mjs +175 -0
- package/{esm2020 → esm2022}/lib/cache/storage.mjs +1 -1
- package/esm2022/lib/client.mjs +252 -0
- package/{esm2020 → esm2022}/lib/helper.mjs +1 -1
- package/{esm2020 → esm2022}/lib/loaders.mjs +1 -1
- package/esm2022/lib/models/collection.mjs +865 -0
- package/esm2022/lib/models/model.mjs +535 -0
- package/esm2022/lib/models/options.mjs +1117 -0
- package/{esm2020 → esm2022}/lib/module.mjs +5 -5
- package/esm2022/lib/resources/path/segments.mjs +124 -0
- package/esm2022/lib/resources/query/builder.mjs +624 -0
- package/esm2022/lib/resources/query/expressions/base.mjs +20 -0
- package/esm2022/lib/resources/query/expressions/compute.mjs +39 -0
- package/esm2022/lib/resources/query/expressions/count.mjs +99 -0
- package/esm2022/lib/resources/query/expressions/expand.mjs +125 -0
- package/esm2022/lib/resources/query/expressions/filter.mjs +161 -0
- package/esm2022/lib/resources/query/expressions/orderby.mjs +56 -0
- package/esm2022/lib/resources/query/expressions/search.mjs +122 -0
- package/esm2022/lib/resources/query/expressions/select.mjs +31 -0
- package/esm2022/lib/resources/query/expressions/syntax.mjs +444 -0
- package/{esm2020 → esm2022}/lib/resources/query/handlers.mjs +1 -1
- package/esm2022/lib/resources/query/options.mjs +115 -0
- package/{esm2020 → esm2022}/lib/resources/request.mjs +1 -1
- package/esm2022/lib/resources/resource.mjs +257 -0
- package/{esm2020 → esm2022}/lib/resources/responses/annotations.mjs +1 -1
- package/esm2022/lib/resources/responses/csdl/csdl-annotation.mjs +33 -0
- package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-entity-container.mjs +1 -1
- package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-entity-set.mjs +1 -1
- package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-enum-type.mjs +1 -1
- package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-function-action.mjs +1 -1
- package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-navigation-property-binding.mjs +1 -1
- package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-reference.mjs +1 -1
- package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-schema.mjs +1 -1
- package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-singleton.mjs +1 -1
- package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-structural-property.mjs +1 -1
- package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-structured-type.mjs +1 -1
- package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-type-definition.mjs +1 -1
- package/esm2022/lib/resources/responses/metadata.mjs +547 -0
- package/{esm2020 → esm2022}/lib/resources/responses/response.mjs +1 -1
- package/{esm2020 → esm2022}/lib/resources/types/action.mjs +1 -1
- package/{esm2020 → esm2022}/lib/resources/types/batch.mjs +1 -1
- package/{esm2020 → esm2022}/lib/resources/types/count.mjs +1 -1
- package/{esm2020 → esm2022}/lib/resources/types/entity-set.mjs +1 -1
- package/{esm2020 → esm2022}/lib/resources/types/entity.mjs +1 -1
- package/{esm2020 → esm2022}/lib/resources/types/function.mjs +1 -1
- package/{esm2020 → esm2022}/lib/resources/types/media.mjs +1 -1
- package/{esm2020 → esm2022}/lib/resources/types/navigation-property.mjs +1 -1
- package/{esm2020 → esm2022}/lib/resources/types/property.mjs +1 -1
- package/{esm2020 → esm2022}/lib/resources/types/reference.mjs +1 -1
- package/{esm2020 → esm2022}/lib/resources/types/singleton.mjs +1 -1
- package/{esm2020 → esm2022}/lib/resources/types/value.mjs +1 -1
- package/{esm2020 → esm2022}/lib/schema/annotation.mjs +1 -1
- package/{esm2020 → esm2022}/lib/schema/callable.mjs +1 -1
- package/{esm2020 → esm2022}/lib/schema/element.mjs +1 -1
- package/{esm2020 → esm2022}/lib/schema/entity-container.mjs +1 -1
- package/{esm2020 → esm2022}/lib/schema/enum-type.mjs +1 -1
- package/{esm2020 → esm2022}/lib/schema/parsers/callable.mjs +1 -1
- package/esm2022/lib/schema/parsers/edm.mjs +99 -0
- package/{esm2020 → esm2022}/lib/schema/parsers/enum-type.mjs +2 -2
- package/esm2022/lib/schema/parsers/structured-type.mjs +502 -0
- package/{esm2020 → esm2022}/lib/schema/schema.mjs +1 -1
- package/esm2022/lib/schema/structured-type.mjs +207 -0
- package/esm2022/lib/services/base.mjs +29 -0
- package/{esm2020 → esm2022}/lib/services/entity-set.mjs +1 -1
- package/{esm2020 → esm2022}/lib/services/factory.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/singleton.mjs +1 -1
- package/{esm2020 → esm2022}/lib/settings.mjs +1 -1
- package/{esm2020 → esm2022}/lib/types.mjs +1 -1
- package/{esm2020 → esm2022}/lib/utils/arrays.mjs +1 -1
- package/{esm2020 → esm2022}/lib/utils/durations.mjs +1 -1
- package/esm2022/lib/utils/enums.mjs +61 -0
- package/{esm2020 → esm2022}/lib/utils/http.mjs +1 -1
- package/{esm2020 → esm2022}/lib/utils/objects.mjs +1 -1
- package/{esm2020 → esm2022}/lib/utils/odata.mjs +1 -1
- package/esm2022/lib/utils/types.mjs +136 -0
- package/{fesm2020 → fesm2022}/angular-odata.mjs +544 -373
- package/fesm2022/angular-odata.mjs.map +1 -0
- package/lib/helper.d.ts +1 -1
- package/lib/models/model.d.ts +4 -2
- package/lib/models/options.d.ts +7 -8
- package/lib/resources/path/segments.d.ts +15 -6
- package/lib/resources/query/builder.d.ts +21 -20
- package/lib/resources/query/expressions/base.d.ts +6 -4
- package/lib/resources/query/expressions/compute.d.ts +10 -8
- package/lib/resources/query/expressions/count.d.ts +14 -11
- package/lib/resources/query/expressions/expand.d.ts +23 -19
- package/lib/resources/query/expressions/filter.d.ts +22 -20
- package/lib/resources/query/expressions/orderby.d.ts +12 -9
- package/lib/resources/query/expressions/search.d.ts +12 -9
- package/lib/resources/query/expressions/select.d.ts +9 -7
- package/lib/resources/query/expressions/syntax.d.ts +75 -71
- package/lib/resources/query/handlers.d.ts +2 -2
- package/lib/resources/query/options.d.ts +15 -6
- package/lib/resources/resource.d.ts +2 -2
- package/lib/resources/responses/types.d.ts +3 -3
- package/lib/resources/types/options.d.ts +7 -7
- package/lib/schema/parsers/structured-type.d.ts +8 -5
- package/lib/schema/structured-type.d.ts +2 -1
- package/lib/types.d.ts +15 -15
- package/lib/utils/durations.d.ts +1 -1
- package/lib/utils/enums.d.ts +3 -0
- package/lib/utils/types.d.ts +1 -0
- package/package.json +9 -15
- package/esm2020/lib/api.mjs +0 -373
- package/esm2020/lib/cache/cache.mjs +0 -173
- package/esm2020/lib/client.mjs +0 -252
- package/esm2020/lib/models/collection.mjs +0 -861
- package/esm2020/lib/models/model.mjs +0 -507
- package/esm2020/lib/models/options.mjs +0 -1110
- package/esm2020/lib/resources/path/segments.mjs +0 -124
- package/esm2020/lib/resources/query/builder.mjs +0 -588
- package/esm2020/lib/resources/query/expressions/base.mjs +0 -20
- package/esm2020/lib/resources/query/expressions/compute.mjs +0 -39
- package/esm2020/lib/resources/query/expressions/count.mjs +0 -89
- package/esm2020/lib/resources/query/expressions/expand.mjs +0 -115
- package/esm2020/lib/resources/query/expressions/filter.mjs +0 -161
- package/esm2020/lib/resources/query/expressions/orderby.mjs +0 -56
- package/esm2020/lib/resources/query/expressions/search.mjs +0 -122
- package/esm2020/lib/resources/query/expressions/select.mjs +0 -31
- package/esm2020/lib/resources/query/expressions/syntax.mjs +0 -409
- package/esm2020/lib/resources/query/options.mjs +0 -115
- package/esm2020/lib/resources/resource.mjs +0 -251
- package/esm2020/lib/resources/responses/csdl/csdl-annotation.mjs +0 -33
- package/esm2020/lib/resources/responses/metadata.mjs +0 -547
- package/esm2020/lib/schema/parsers/edm.mjs +0 -104
- package/esm2020/lib/schema/parsers/structured-type.mjs +0 -490
- package/esm2020/lib/schema/structured-type.mjs +0 -202
- package/esm2020/lib/services/base.mjs +0 -29
- package/esm2020/lib/utils/enums.mjs +0 -45
- package/esm2020/lib/utils/types.mjs +0 -133
- package/fesm2015/angular-odata.mjs +0 -11811
- package/fesm2015/angular-odata.mjs.map +0 -1
- package/fesm2020/angular-odata.mjs.map +0 -1
- /package/{esm2020 → esm2022}/angular-odata.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/cache/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/cache/memory.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/constants.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/options.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/path/handlers.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/path/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/query/expressions/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/query/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/responses/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/responses/options.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/responses/types.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/types/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/types/metadata.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/resources/types/options.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/schema/entity-set.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/schema/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/schema/parsers/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/entity.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/arraybuffers.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/dates.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/strings.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/urls.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
|
@@ -171,4 +171,4 @@ export class ODataResponse extends HttpResponse {
|
|
|
171
171
|
return value;
|
|
172
172
|
}
|
|
173
173
|
}
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvcmVzb3VyY2VzL3Jlc3BvbnNlcy9yZXNwb25zZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLHdCQUF3QixHQUN6QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHMUMsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixxQkFBcUIsRUFDckIsWUFBWSxFQUNaLGFBQWEsRUFDYixlQUFlLEVBQ2YsWUFBWSxFQUNaLHNCQUFzQixFQUN0QixrQkFBa0IsR0FDbkIsTUFBTSxpQkFBaUIsQ0FBQztBQUd6QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDakQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBR3hDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGFBQWlCLFNBQVEsWUFBZTtJQUluRCxZQUFZLElBUVg7UUFDQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDWixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUksR0FBb0IsRUFBRSxHQUFvQjtRQUNuRSxPQUFPLElBQUksYUFBYSxDQUFJO1lBQzFCLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRztZQUNaLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUTtZQUN0QixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7WUFD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QUFJLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUM7WUFDOUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7WUFDcEUsQ0FBQyxDQUFDLE9BQU8sQ0FDQSxDQUFDO1FBRWQsSUFBSSxLQUFLLEtBQUssSUFBSTtZQUFFLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFNLENBQUM7UUFDM0UsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwSGVhZGVycywgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtcbiAgT0RhdGFFbnRpdHlBbm5vdGF0aW9ucyxcbiAgT0RhdGFFbnRpdGllc0Fubm90YXRpb25zLFxuICBPRGF0YVByb3BlcnR5QW5ub3RhdGlvbnMsXG59IGZyb20gJy4vYW5ub3RhdGlvbnMnO1xuaW1wb3J0IHsgVHlwZXMgfSBmcm9tICcuLi8uLi91dGlscy90eXBlcyc7XG5pbXBvcnQgeyBPRGF0YVJlc291cmNlIH0gZnJvbSAnLi4vcmVzb3VyY2UnO1xuaW1wb3J0IHsgT0RhdGFFbnRpdGllcywgT0RhdGFFbnRpdHksIE9EYXRhUHJvcGVydHkgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7XG4gIEFQUExJQ0FUSU9OX0pTT04sXG4gIE9EQVRBX1ZFUlNJT05fSEVBREVSUyxcbiAgQ09OVEVOVF9UWVBFLFxuICBDQUNIRV9DT05UUk9MLFxuICBMT0NBVElPTl9IRUFERVIsXG4gIEVUQUdfSEVBREVSUyxcbiAgT0RBVEFfRU5USVRZSURfSEVBREVSUyxcbiAgUFJFRkVSRU5DRV9BUFBMSUVELFxufSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgT0RhdGFBcGkgfSBmcm9tICcuLi8uLi9hcGknO1xuaW1wb3J0IHsgT0RhdGFSZXF1ZXN0IH0gZnJvbSAnLi4vcmVxdWVzdCc7XG5pbXBvcnQgeyBPRGF0YVJlc3BvbnNlT3B0aW9ucyB9IGZyb20gJy4vb3B0aW9ucyc7XG5pbXBvcnQgeyBIdHRwIH0gZnJvbSAnLi4vLi4vdXRpbHMvaHR0cCc7XG5pbXBvcnQgeyBPRGF0YUNvbnRleHQgfSBmcm9tICcuLi8uLi9oZWxwZXInO1xuXG4vKipcbiAqIE9EYXRhIFJlc3BvbnNlXG4gKi9cbmV4cG9ydCBjbGFzcyBPRGF0YVJlc3BvbnNlPFQ+IGV4dGVuZHMgSHR0cFJlc3BvbnNlPFQ+IHtcbiAgcmVhZG9ubHkgYXBpOiBPRGF0YUFwaTtcbiAgcmVhZG9ubHkgcmVzb3VyY2U6IE9EYXRhUmVzb3VyY2U8VD47XG5cbiAgY29uc3RydWN0b3IoaW5pdDoge1xuICAgIGFwaTogT0RhdGFBcGk7XG4gICAgcmVzb3VyY2U6IE9EYXRhUmVzb3VyY2U8VD47XG4gICAgYm9keTogVCB8IG51bGw7XG4gICAgaGVhZGVyczogSHR0cEhlYWRlcnM7XG4gICAgc3RhdHVzOiBudW1iZXI7XG4gICAgc3RhdHVzVGV4dDogc3RyaW5nO1xuICAgIHVybD86IHN0cmluZztcbiAgfSkge1xuICAgIHN1cGVyKGluaXQpO1xuICAgIHRoaXMuYXBpID0gaW5pdC5hcGk7XG4gICAgdGhpcy5yZXNvdXJjZSA9IGluaXQucmVzb3VyY2U7XG4gIH1cblxuICBzdGF0aWMgZnJvbUh0dHBSZXNwb25zZTxUPihyZXE6IE9EYXRhUmVxdWVzdDxUPiwgcmVzOiBIdHRwUmVzcG9uc2U8VD4pIHtcbiAgICByZXR1cm4gbmV3IE9EYXRhUmVzcG9uc2U8VD4oe1xuICAgICAgYXBpOiByZXEuYXBpLFxuICAgICAgcmVzb3VyY2U6IHJlcS5yZXNvdXJjZSxcbiAgICAgIGJvZHk6IHJlcy5ib2R5LFxuICAgICAgaGVhZGVyczogcmVzLmhlYWRlcnMsXG4gICAgICBzdGF0dXM6IHJlcy5zdGF0dXMsXG4gICAgICBzdGF0dXNUZXh0OiByZXMuc3RhdHVzVGV4dCxcbiAgICAgIHVybDogcmVzLnVybCB8fCB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgZnJvbUpTT048VD4oXG4gICAgcmVxOiBPRGF0YVJlcXVlc3Q8VD4sXG4gICAganNvbjoge1xuICAgICAgYm9keTogVCB8IG51bGw7XG4gICAgICBoZWFkZXJzOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9O1xuICAgICAgc3RhdHVzOiBudW1iZXI7XG4gICAgICBzdGF0dXNUZXh0OiBzdHJpbmc7XG4gICAgICB1cmw6IHN0cmluZyB8IG51bGw7XG4gICAgfVxuICApIHtcbiAgICByZXR1cm4gbmV3IE9EYXRhUmVzcG9uc2U8VD4oe1xuICAgICAgYXBpOiByZXEuYXBpLFxuICAgICAgcmVzb3VyY2U6IHJlcS5yZXNvdXJjZSxcbiAgICAgIGJvZHk6IGpzb24uYm9keSxcbiAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyhqc29uLmhlYWRlcnMpLFxuICAgICAgc3RhdHVzOiBqc29uLnN0YXR1cyxcbiAgICAgIHN0YXR1c1RleHQ6IGpzb24uc3RhdHVzVGV4dCxcbiAgICAgIHVybDoganNvbi51cmwgfHwgdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIHJldHVybiB7XG4gICAgICBib2R5OiB0aGlzLmJvZHksXG4gICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnNcbiAgICAgICAgLmtleXMoKVxuICAgICAgICAubWFwKChuYW1lKSA9PiAoeyBbbmFtZV06IHRoaXMuaGVhZGVycy5nZXRBbGwobmFtZSkgfHwgW10gfSkpXG4gICAgICAgIC5yZWR1Y2UoKGFjYywgaGVhZGVyKSA9PiBPYmplY3QuYXNzaWduKGFjYywgaGVhZGVyKSwge30pLFxuICAgICAgc3RhdHVzOiB0aGlzLnN0YXR1cyxcbiAgICAgIHN0YXR1c1RleHQ6IHRoaXMuc3RhdHVzVGV4dCxcbiAgICAgIHVybDogdGhpcy51cmwsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgX29wdGlvbnM/OiBPRGF0YVJlc3BvbnNlT3B0aW9ucztcbiAgZ2V0IG9wdGlvbnMoKTogT0RhdGFSZXNwb25zZU9wdGlvbnMge1xuICAgIGlmICh0aGlzLl9vcHRpb25zID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX29wdGlvbnMgPSBuZXcgT0RhdGFSZXNwb25zZU9wdGlvbnModGhpcy5hcGkub3B0aW9ucy5wYXJzZXJPcHRpb25zKTtcbiAgICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gdGhpcy5oZWFkZXJzLmdldChDT05URU5UX1RZUEUpO1xuICAgICAgaWYgKGNvbnRlbnRUeXBlICYmIGNvbnRlbnRUeXBlLmluZGV4T2YoQVBQTElDQVRJT05fSlNPTikgIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IGZlYXR1cmVzID0gY29udGVudFR5cGVcbiAgICAgICAgICAuc3BsaXQoJywnKVxuICAgICAgICAgIC5maW5kKChwKSA9PiBwLnN0YXJ0c1dpdGgoQVBQTElDQVRJT05fSlNPTikpIGFzIHN0cmluZztcbiAgICAgICAgdGhpcy5fb3B0aW9ucy5zZXRGZWF0dXJlcyhmZWF0dXJlcyk7XG4gICAgICB9XG4gICAgICBjb25zdCBoZWFkZXJLZXkgPSBIdHRwLnJlc29sdmVIZWFkZXJLZXkoXG4gICAgICAgIHRoaXMuaGVhZGVycyxcbiAgICAgICAgT0RBVEFfVkVSU0lPTl9IRUFERVJTXG4gICAgICApO1xuICAgICAgaWYgKGhlYWRlcktleSkge1xuICAgICAgICBjb25zdCB2ZXJzaW9uID0gKHRoaXMuaGVhZGVycy5nZXQoaGVhZGVyS2V5KSB8fCAnJykucmVwbGFjZShcbiAgICAgICAgICAvXFw7L2csXG4gICAgICAgICAgJydcbiAgICAgICAgKSBhcyAnMi4wJyB8ICczLjAnIHwgJzQuMCc7XG4gICAgICAgIHRoaXMuX29wdGlvbnMuc2V0VmVyc2lvbih2ZXJzaW9uKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcHJlZmVyZW5jZUFwcGxpZWQgPSB0aGlzLmhlYWRlcnMuZ2V0KFBSRUZFUkVOQ0VfQVBQTElFRCk7XG4gICAgICBpZiAocHJlZmVyZW5jZUFwcGxpZWQpIHtcbiAgICAgICAgdGhpcy5fb3B0aW9ucy5zZXRQcmVmZXJlbmNlQXBwbGllZChwcmVmZXJlbmNlQXBwbGllZCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGxvY2F0aW9uID0gdGhpcy5oZWFkZXJzLmdldChMT0NBVElPTl9IRUFERVIpO1xuICAgICAgaWYgKGxvY2F0aW9uKSB7XG4gICAgICAgIHRoaXMuX29wdGlvbnMuc2V0TG9jYXRpb24obG9jYXRpb24pO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjYWNoZUNvbnRyb2wgPSB0aGlzLmhlYWRlcnMuZ2V0KENBQ0hFX0NPTlRST0wpO1xuICAgICAgaWYgKGNhY2hlQ29udHJvbCkge1xuICAgICAgICB0aGlzLl9vcHRpb25zLnNldENhY2hlKGNhY2hlQ29udHJvbCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9vcHRpb25zO1xuICB9XG5cbiAgcHJpdmF0ZSBfcGF5bG9hZD86IGFueTtcbiAgZ2V0IHBheWxvYWQoKSB7XG4gICAgaWYgKHRoaXMuX3BheWxvYWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fcGF5bG9hZCA9XG4gICAgICAgIHRoaXMuYm9keSAmJiB0aGlzLm9wdGlvbnMudmVyc2lvbiA9PT0gJzIuMCdcbiAgICAgICAgICA/ICg8YW55PnRoaXMuYm9keSlbJ2QnXVxuICAgICAgICAgIDogdGhpcy5ib2R5O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fcGF5bG9hZDtcbiAgfVxuXG4gIHByaXZhdGUgX2NvbnRleHQ/OiBhbnk7XG4gIGdldCBjb250ZXh0KCk6IE9EYXRhQ29udGV4dCB7XG4gICAgaWYgKHRoaXMuX2NvbnRleHQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fY29udGV4dCA9IHRoaXMub3B0aW9ucy5oZWxwZXIuY29udGV4dChcbiAgICAgICAgVHlwZXMuaXNQbGFpbk9iamVjdCh0aGlzLnBheWxvYWQpID8gdGhpcy5wYXlsb2FkIDoge31cbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jb250ZXh0O1xuICB9XG5cbiAgcHJpdmF0ZSBfYW5ub3RhdGlvbnM/OiBNYXA8c3RyaW5nLCBhbnk+O1xuICBnZXQgYW5ub3RhdGlvbnMoKTogTWFwPHN0cmluZywgYW55PiB7XG4gICAgaWYgKHRoaXMuX2Fubm90YXRpb25zID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG4gICAgICB0aGlzLl9hbm5vdGF0aW9ucyA9IG9wdGlvbnMuaGVscGVyLmFubm90YXRpb25zKHRoaXMucGF5bG9hZCB8fCB7fSk7XG4gICAgICBsZXQga2V5ID0gSHR0cC5yZXNvbHZlSGVhZGVyS2V5KHRoaXMuaGVhZGVycywgRVRBR19IRUFERVJTKTtcbiAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgY29uc3QgZXRhZyA9IHRoaXMuaGVhZGVycy5nZXQoa2V5KTtcbiAgICAgICAgaWYgKGV0YWcpIHRoaXMuX2Fubm90YXRpb25zLnNldChvcHRpb25zLmhlbHBlci5PREFUQV9FVEFHLCBldGFnKTtcbiAgICAgIH1cbiAgICAgIGtleSA9IEh0dHAucmVzb2x2ZUhlYWRlcktleSh0aGlzLmhlYWRlcnMsIE9EQVRBX0VOVElUWUlEX0hFQURFUlMpO1xuICAgICAgaWYgKGtleSkge1xuICAgICAgICBjb25zdCBlbnRpdHlJZCA9IHRoaXMuaGVhZGVycy5nZXQoa2V5KTtcbiAgICAgICAgaWYgKGVudGl0eUlkKSB0aGlzLl9hbm5vdGF0aW9ucy5zZXQob3B0aW9ucy5oZWxwZXIuT0RBVEFfSUQsIGVudGl0eUlkKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2Fubm90YXRpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSB0aGUgcmVzcG9uc2UgYm9keSBhcyBhbiBlbnRpdHlcbiAgICogQHJldHVybnNcbiAgICovXG4gIGVudGl0eSgpOiBPRGF0YUVudGl0eTxUPiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICBjb25zdCBwYXlsb2FkID0gdGhpcy5wYXlsb2FkO1xuICAgIGNvbnN0IGFubm90cyA9IG5ldyBPRGF0YUVudGl0eUFubm90YXRpb25zPFQ+KFxuICAgICAgb3B0aW9ucy5oZWxwZXIsXG4gICAgICB0aGlzLmFubm90YXRpb25zLFxuICAgICAgdGhpcy5jb250ZXh0XG4gICAgKTtcbiAgICBjb25zdCBkYXRhID0gcGF5bG9hZCA/IGFubm90cy5kYXRhKHBheWxvYWQpIDogbnVsbDtcbiAgICBsZXQgZW50aXR5ID0gKFxuICAgICAgZGF0YSAhPT0gbnVsbCAmJiBUeXBlcy5pc1BsYWluT2JqZWN0KGRhdGEpXG4gICAgICAgID8gb3B0aW9ucy5oZWxwZXIuYXR0cmlidXRlcyhkYXRhLCB0aGlzLmFwaS5vcHRpb25zLnN0cmlwTWV0YWRhdGEpXG4gICAgICAgIDogZGF0YVxuICAgICkgYXMgVCB8IG51bGw7XG5cbiAgICBpZiAoZW50aXR5ICE9PSBudWxsKVxuICAgICAgZW50aXR5ID0gdGhpcy5yZXNvdXJjZS5kZXNlcmlhbGl6ZShlbnRpdHksIG9wdGlvbnMpIGFzIFQ7XG4gICAgcmV0dXJuIHsgZW50aXR5LCBhbm5vdHMgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgdGhlIHJlc3BvbnNlIGJvZHkgYXMgZW50aXRpZXNcbiAgICogQHJldHVybnNcbiAgICovXG4gIGVudGl0aWVzKCk6IE9EYXRhRW50aXRpZXM8VD4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG4gICAgY29uc3QgcGF5bG9hZCA9IHRoaXMucGF5bG9hZDtcbiAgICBjb25zdCBhbm5vdHMgPSBuZXcgT0RhdGFFbnRpdGllc0Fubm90YXRpb25zPFQ+KFxuICAgICAgb3B0aW9ucy5oZWxwZXIsXG4gICAgICB0aGlzLmFubm90YXRpb25zLFxuICAgICAgdGhpcy5jb250ZXh0XG4gICAgKTtcbiAgICBsZXQgZW50aXRpZXMgPSBwYXlsb2FkID8gYW5ub3RzLmRhdGEocGF5bG9hZCkgOiBudWxsO1xuICAgIGlmIChlbnRpdGllcyAhPT0gbnVsbClcbiAgICAgIGVudGl0aWVzID0gdGhpcy5yZXNvdXJjZS5kZXNlcmlhbGl6ZShlbnRpdGllcywgb3B0aW9ucykgYXMgVFtdO1xuICAgIHJldHVybiB7IGVudGl0aWVzLCBhbm5vdHMgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgdGhlIHJlc3BvbnNlIGJvZHkgYXMgYSBwcm9wZXJ0eVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHJvcGVydHkoKTogT0RhdGFQcm9wZXJ0eTxUPiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICBjb25zdCBwYXlsb2FkID0gdGhpcy5wYXlsb2FkO1xuICAgIGNvbnN0IGFubm90cyA9IG5ldyBPRGF0YVByb3BlcnR5QW5ub3RhdGlvbnM8VD4oXG4gICAgICBvcHRpb25zLmhlbHBlcixcbiAgICAgIHRoaXMuYW5ub3RhdGlvbnMsXG4gICAgICB0aGlzLmNvbnRleHRcbiAgICApO1xuICAgIGNvbnN0IGRhdGEgPSBwYXlsb2FkID8gKGFubm90cy5kYXRhKHBheWxvYWQpIGFzIFQpIDogbnVsbDtcbiAgICBsZXQgcHJvcGVydHkgPSAoXG4gICAgICBkYXRhICE9PSBudWxsICYmIFR5cGVzLmlzUGxhaW5PYmplY3QoZGF0YSlcbiAgICAgICAgPyBvcHRpb25zLmhlbHBlci5hdHRyaWJ1dGVzKFxuICAgICAgICAgICAgZGF0YSBhcyB7IFtrZXk6IHN0cmluZ106IGFueSB9LFxuICAgICAgICAgICAgdGhpcy5hcGkub3B0aW9ucy5zdHJpcE1ldGFkYXRhXG4gICAgICAgICAgKVxuICAgICAgICA6IGRhdGFcbiAgICApIGFzIFQgfCBudWxsO1xuXG4gICAgaWYgKHByb3BlcnR5ICE9PSBudWxsKVxuICAgICAgcHJvcGVydHkgPSB0aGlzLnJlc291cmNlLmRlc2VyaWFsaXplKHByb3BlcnR5LCBvcHRpb25zKSBhcyBUO1xuICAgIHJldHVybiB7IHByb3BlcnR5LCBhbm5vdHMgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgdGhlIHJlc3BvbnNlIGJvZHkgYXMgYSB2YWx1ZVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgdmFsdWUoKTogVCB8IG51bGwge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG4gICAgY29uc3QgcGF5bG9hZCA9IHRoaXMucGF5bG9hZDtcbiAgICBsZXQgdmFsdWUgPSAoXG4gICAgICBwYXlsb2FkICE9PSBudWxsICYmIFR5cGVzLmlzUGxhaW5PYmplY3QocGF5bG9hZClcbiAgICAgICAgPyBvcHRpb25zLmhlbHBlci5hdHRyaWJ1dGVzKHBheWxvYWQsIHRoaXMuYXBpLm9wdGlvbnMuc3RyaXBNZXRhZGF0YSlcbiAgICAgICAgOiBwYXlsb2FkXG4gICAgKSBhcyBUIHwgbnVsbDtcblxuICAgIGlmICh2YWx1ZSAhPT0gbnVsbCkgdmFsdWUgPSB0aGlzLnJlc291cmNlLmRlc2VyaWFsaXplKHZhbHVlLCBvcHRpb25zKSBhcyBUO1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufVxuIl19
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvcmVzb3VyY2VzL3Jlc3BvbnNlcy9yZXNwb25zZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLHdCQUF3QixHQUN6QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHMUMsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixxQkFBcUIsRUFDckIsWUFBWSxFQUNaLGFBQWEsRUFDYixlQUFlLEVBQ2YsWUFBWSxFQUNaLHNCQUFzQixFQUN0QixrQkFBa0IsR0FDbkIsTUFBTSxpQkFBaUIsQ0FBQztBQUd6QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDakQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBR3hDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGFBQWlCLFNBQVEsWUFBZTtJQUluRCxZQUFZLElBUVg7UUFDQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDWixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUksR0FBb0IsRUFBRSxHQUFvQjtRQUNuRSxPQUFPLElBQUksYUFBYSxDQUFJO1lBQzFCLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRztZQUNaLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUTtZQUN0QixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7WUFD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QUFJLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUM7WUFDOUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7WUFDcEUsQ0FBQyxDQUFDLE9BQU8sQ0FDQSxDQUFDO1FBRWQsSUFBSSxLQUFLLEtBQUssSUFBSTtZQUFFLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFNLENBQUM7UUFDM0UsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwSGVhZGVycywgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtcbiAgT0RhdGFFbnRpdHlBbm5vdGF0aW9ucyxcbiAgT0RhdGFFbnRpdGllc0Fubm90YXRpb25zLFxuICBPRGF0YVByb3BlcnR5QW5ub3RhdGlvbnMsXG59IGZyb20gJy4vYW5ub3RhdGlvbnMnO1xuaW1wb3J0IHsgVHlwZXMgfSBmcm9tICcuLi8uLi91dGlscy90eXBlcyc7XG5pbXBvcnQgeyBPRGF0YVJlc291cmNlIH0gZnJvbSAnLi4vcmVzb3VyY2UnO1xuaW1wb3J0IHsgT0RhdGFFbnRpdGllcywgT0RhdGFFbnRpdHksIE9EYXRhUHJvcGVydHkgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7XG4gIEFQUExJQ0FUSU9OX0pTT04sXG4gIE9EQVRBX1ZFUlNJT05fSEVBREVSUyxcbiAgQ09OVEVOVF9UWVBFLFxuICBDQUNIRV9DT05UUk9MLFxuICBMT0NBVElPTl9IRUFERVIsXG4gIEVUQUdfSEVBREVSUyxcbiAgT0RBVEFfRU5USVRZSURfSEVBREVSUyxcbiAgUFJFRkVSRU5DRV9BUFBMSUVELFxufSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgT0RhdGFBcGkgfSBmcm9tICcuLi8uLi9hcGknO1xuaW1wb3J0IHsgT0RhdGFSZXF1ZXN0IH0gZnJvbSAnLi4vcmVxdWVzdCc7XG5pbXBvcnQgeyBPRGF0YVJlc3BvbnNlT3B0aW9ucyB9IGZyb20gJy4vb3B0aW9ucyc7XG5pbXBvcnQgeyBIdHRwIH0gZnJvbSAnLi4vLi4vdXRpbHMvaHR0cCc7XG5pbXBvcnQgeyBPRGF0YUNvbnRleHQgfSBmcm9tICcuLi8uLi9oZWxwZXInO1xuXG4vKipcbiAqIE9EYXRhIFJlc3BvbnNlXG4gKi9cbmV4cG9ydCBjbGFzcyBPRGF0YVJlc3BvbnNlPFQ+IGV4dGVuZHMgSHR0cFJlc3BvbnNlPFQ+IHtcbiAgcmVhZG9ubHkgYXBpOiBPRGF0YUFwaTtcbiAgcmVhZG9ubHkgcmVzb3VyY2U6IE9EYXRhUmVzb3VyY2U8VD47XG5cbiAgY29uc3RydWN0b3IoaW5pdDoge1xuICAgIGFwaTogT0RhdGFBcGk7XG4gICAgcmVzb3VyY2U6IE9EYXRhUmVzb3VyY2U8VD47XG4gICAgYm9keTogVCB8IG51bGw7XG4gICAgaGVhZGVyczogSHR0cEhlYWRlcnM7XG4gICAgc3RhdHVzOiBudW1iZXI7XG4gICAgc3RhdHVzVGV4dDogc3RyaW5nO1xuICAgIHVybD86IHN0cmluZztcbiAgfSkge1xuICAgIHN1cGVyKGluaXQpO1xuICAgIHRoaXMuYXBpID0gaW5pdC5hcGk7XG4gICAgdGhpcy5yZXNvdXJjZSA9IGluaXQucmVzb3VyY2U7XG4gIH1cblxuICBzdGF0aWMgZnJvbUh0dHBSZXNwb25zZTxUPihyZXE6IE9EYXRhUmVxdWVzdDxUPiwgcmVzOiBIdHRwUmVzcG9uc2U8VD4pIHtcbiAgICByZXR1cm4gbmV3IE9EYXRhUmVzcG9uc2U8VD4oe1xuICAgICAgYXBpOiByZXEuYXBpLFxuICAgICAgcmVzb3VyY2U6IHJlcS5yZXNvdXJjZSxcbiAgICAgIGJvZHk6IHJlcy5ib2R5LFxuICAgICAgaGVhZGVyczogcmVzLmhlYWRlcnMsXG4gICAgICBzdGF0dXM6IHJlcy5zdGF0dXMsXG4gICAgICBzdGF0dXNUZXh0OiByZXMuc3RhdHVzVGV4dCxcbiAgICAgIHVybDogcmVzLnVybCB8fCB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgZnJvbUpTT048VD4oXG4gICAgcmVxOiBPRGF0YVJlcXVlc3Q8VD4sXG4gICAganNvbjoge1xuICAgICAgYm9keTogVCB8IG51bGw7XG4gICAgICBoZWFkZXJzOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9O1xuICAgICAgc3RhdHVzOiBudW1iZXI7XG4gICAgICBzdGF0dXNUZXh0OiBzdHJpbmc7XG4gICAgICB1cmw6IHN0cmluZyB8IG51bGw7XG4gICAgfSxcbiAgKSB7XG4gICAgcmV0dXJuIG5ldyBPRGF0YVJlc3BvbnNlPFQ+KHtcbiAgICAgIGFwaTogcmVxLmFwaSxcbiAgICAgIHJlc291cmNlOiByZXEucmVzb3VyY2UsXG4gICAgICBib2R5OiBqc29uLmJvZHksXG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoanNvbi5oZWFkZXJzKSxcbiAgICAgIHN0YXR1czoganNvbi5zdGF0dXMsXG4gICAgICBzdGF0dXNUZXh0OiBqc29uLnN0YXR1c1RleHQsXG4gICAgICB1cmw6IGpzb24udXJsIHx8IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYm9keTogdGhpcy5ib2R5LFxuICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzXG4gICAgICAgIC5rZXlzKClcbiAgICAgICAgLm1hcCgobmFtZSkgPT4gKHsgW25hbWVdOiB0aGlzLmhlYWRlcnMuZ2V0QWxsKG5hbWUpIHx8IFtdIH0pKVxuICAgICAgICAucmVkdWNlKChhY2MsIGhlYWRlcikgPT4gT2JqZWN0LmFzc2lnbihhY2MsIGhlYWRlciksIHt9KSxcbiAgICAgIHN0YXR1czogdGhpcy5zdGF0dXMsXG4gICAgICBzdGF0dXNUZXh0OiB0aGlzLnN0YXR1c1RleHQsXG4gICAgICB1cmw6IHRoaXMudXJsLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIF9vcHRpb25zPzogT0RhdGFSZXNwb25zZU9wdGlvbnM7XG4gIGdldCBvcHRpb25zKCk6IE9EYXRhUmVzcG9uc2VPcHRpb25zIHtcbiAgICBpZiAodGhpcy5fb3B0aW9ucyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLl9vcHRpb25zID0gbmV3IE9EYXRhUmVzcG9uc2VPcHRpb25zKHRoaXMuYXBpLm9wdGlvbnMucGFyc2VyT3B0aW9ucyk7XG4gICAgICBjb25zdCBjb250ZW50VHlwZSA9IHRoaXMuaGVhZGVycy5nZXQoQ09OVEVOVF9UWVBFKTtcbiAgICAgIGlmIChjb250ZW50VHlwZSAmJiBjb250ZW50VHlwZS5pbmRleE9mKEFQUExJQ0FUSU9OX0pTT04pICE9PSAtMSkge1xuICAgICAgICBjb25zdCBmZWF0dXJlcyA9IGNvbnRlbnRUeXBlXG4gICAgICAgICAgLnNwbGl0KCcsJylcbiAgICAgICAgICAuZmluZCgocCkgPT4gcC5zdGFydHNXaXRoKEFQUExJQ0FUSU9OX0pTT04pKSBhcyBzdHJpbmc7XG4gICAgICAgIHRoaXMuX29wdGlvbnMuc2V0RmVhdHVyZXMoZmVhdHVyZXMpO1xuICAgICAgfVxuICAgICAgY29uc3QgaGVhZGVyS2V5ID0gSHR0cC5yZXNvbHZlSGVhZGVyS2V5KFxuICAgICAgICB0aGlzLmhlYWRlcnMsXG4gICAgICAgIE9EQVRBX1ZFUlNJT05fSEVBREVSUyxcbiAgICAgICk7XG4gICAgICBpZiAoaGVhZGVyS2V5KSB7XG4gICAgICAgIGNvbnN0IHZlcnNpb24gPSAodGhpcy5oZWFkZXJzLmdldChoZWFkZXJLZXkpIHx8ICcnKS5yZXBsYWNlKFxuICAgICAgICAgIC9cXDsvZyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgKSBhcyAnMi4wJyB8ICczLjAnIHwgJzQuMCc7XG4gICAgICAgIHRoaXMuX29wdGlvbnMuc2V0VmVyc2lvbih2ZXJzaW9uKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcHJlZmVyZW5jZUFwcGxpZWQgPSB0aGlzLmhlYWRlcnMuZ2V0KFBSRUZFUkVOQ0VfQVBQTElFRCk7XG4gICAgICBpZiAocHJlZmVyZW5jZUFwcGxpZWQpIHtcbiAgICAgICAgdGhpcy5fb3B0aW9ucy5zZXRQcmVmZXJlbmNlQXBwbGllZChwcmVmZXJlbmNlQXBwbGllZCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGxvY2F0aW9uID0gdGhpcy5oZWFkZXJzLmdldChMT0NBVElPTl9IRUFERVIpO1xuICAgICAgaWYgKGxvY2F0aW9uKSB7XG4gICAgICAgIHRoaXMuX29wdGlvbnMuc2V0TG9jYXRpb24obG9jYXRpb24pO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjYWNoZUNvbnRyb2wgPSB0aGlzLmhlYWRlcnMuZ2V0KENBQ0hFX0NPTlRST0wpO1xuICAgICAgaWYgKGNhY2hlQ29udHJvbCkge1xuICAgICAgICB0aGlzLl9vcHRpb25zLnNldENhY2hlKGNhY2hlQ29udHJvbCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9vcHRpb25zO1xuICB9XG5cbiAgcHJpdmF0ZSBfcGF5bG9hZD86IGFueTtcbiAgZ2V0IHBheWxvYWQoKSB7XG4gICAgaWYgKHRoaXMuX3BheWxvYWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fcGF5bG9hZCA9XG4gICAgICAgIHRoaXMuYm9keSAmJiB0aGlzLm9wdGlvbnMudmVyc2lvbiA9PT0gJzIuMCdcbiAgICAgICAgICA/ICg8YW55PnRoaXMuYm9keSlbJ2QnXVxuICAgICAgICAgIDogdGhpcy5ib2R5O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fcGF5bG9hZDtcbiAgfVxuXG4gIHByaXZhdGUgX2NvbnRleHQ/OiBhbnk7XG4gIGdldCBjb250ZXh0KCk6IE9EYXRhQ29udGV4dCB7XG4gICAgaWYgKHRoaXMuX2NvbnRleHQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fY29udGV4dCA9IHRoaXMub3B0aW9ucy5oZWxwZXIuY29udGV4dChcbiAgICAgICAgVHlwZXMuaXNQbGFpbk9iamVjdCh0aGlzLnBheWxvYWQpID8gdGhpcy5wYXlsb2FkIDoge30sXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fY29udGV4dDtcbiAgfVxuXG4gIHByaXZhdGUgX2Fubm90YXRpb25zPzogTWFwPHN0cmluZywgYW55PjtcbiAgZ2V0IGFubm90YXRpb25zKCk6IE1hcDxzdHJpbmcsIGFueT4ge1xuICAgIGlmICh0aGlzLl9hbm5vdGF0aW9ucyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5vcHRpb25zO1xuICAgICAgdGhpcy5fYW5ub3RhdGlvbnMgPSBvcHRpb25zLmhlbHBlci5hbm5vdGF0aW9ucyh0aGlzLnBheWxvYWQgfHwge30pO1xuICAgICAgbGV0IGtleSA9IEh0dHAucmVzb2x2ZUhlYWRlcktleSh0aGlzLmhlYWRlcnMsIEVUQUdfSEVBREVSUyk7XG4gICAgICBpZiAoa2V5KSB7XG4gICAgICAgIGNvbnN0IGV0YWcgPSB0aGlzLmhlYWRlcnMuZ2V0KGtleSk7XG4gICAgICAgIGlmIChldGFnKSB0aGlzLl9hbm5vdGF0aW9ucy5zZXQob3B0aW9ucy5oZWxwZXIuT0RBVEFfRVRBRywgZXRhZyk7XG4gICAgICB9XG4gICAgICBrZXkgPSBIdHRwLnJlc29sdmVIZWFkZXJLZXkodGhpcy5oZWFkZXJzLCBPREFUQV9FTlRJVFlJRF9IRUFERVJTKTtcbiAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgY29uc3QgZW50aXR5SWQgPSB0aGlzLmhlYWRlcnMuZ2V0KGtleSk7XG4gICAgICAgIGlmIChlbnRpdHlJZCkgdGhpcy5fYW5ub3RhdGlvbnMuc2V0KG9wdGlvbnMuaGVscGVyLk9EQVRBX0lELCBlbnRpdHlJZCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9hbm5vdGF0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgdGhlIHJlc3BvbnNlIGJvZHkgYXMgYW4gZW50aXR5XG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBlbnRpdHkoKTogT0RhdGFFbnRpdHk8VD4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG4gICAgY29uc3QgcGF5bG9hZCA9IHRoaXMucGF5bG9hZDtcbiAgICBjb25zdCBhbm5vdHMgPSBuZXcgT0RhdGFFbnRpdHlBbm5vdGF0aW9uczxUPihcbiAgICAgIG9wdGlvbnMuaGVscGVyLFxuICAgICAgdGhpcy5hbm5vdGF0aW9ucyxcbiAgICAgIHRoaXMuY29udGV4dCxcbiAgICApO1xuICAgIGNvbnN0IGRhdGEgPSBwYXlsb2FkID8gYW5ub3RzLmRhdGEocGF5bG9hZCkgOiBudWxsO1xuICAgIGxldCBlbnRpdHkgPSAoXG4gICAgICBkYXRhICE9PSBudWxsICYmIFR5cGVzLmlzUGxhaW5PYmplY3QoZGF0YSlcbiAgICAgICAgPyBvcHRpb25zLmhlbHBlci5hdHRyaWJ1dGVzKGRhdGEsIHRoaXMuYXBpLm9wdGlvbnMuc3RyaXBNZXRhZGF0YSlcbiAgICAgICAgOiBkYXRhXG4gICAgKSBhcyBUIHwgbnVsbDtcblxuICAgIGlmIChlbnRpdHkgIT09IG51bGwpXG4gICAgICBlbnRpdHkgPSB0aGlzLnJlc291cmNlLmRlc2VyaWFsaXplKGVudGl0eSwgb3B0aW9ucykgYXMgVDtcbiAgICByZXR1cm4geyBlbnRpdHksIGFubm90cyB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSB0aGUgcmVzcG9uc2UgYm9keSBhcyBlbnRpdGllc1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgZW50aXRpZXMoKTogT0RhdGFFbnRpdGllczxUPiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICBjb25zdCBwYXlsb2FkID0gdGhpcy5wYXlsb2FkO1xuICAgIGNvbnN0IGFubm90cyA9IG5ldyBPRGF0YUVudGl0aWVzQW5ub3RhdGlvbnM8VD4oXG4gICAgICBvcHRpb25zLmhlbHBlcixcbiAgICAgIHRoaXMuYW5ub3RhdGlvbnMsXG4gICAgICB0aGlzLmNvbnRleHQsXG4gICAgKTtcbiAgICBsZXQgZW50aXRpZXMgPSBwYXlsb2FkID8gYW5ub3RzLmRhdGEocGF5bG9hZCkgOiBudWxsO1xuICAgIGlmIChlbnRpdGllcyAhPT0gbnVsbClcbiAgICAgIGVudGl0aWVzID0gdGhpcy5yZXNvdXJjZS5kZXNlcmlhbGl6ZShlbnRpdGllcywgb3B0aW9ucykgYXMgVFtdO1xuICAgIHJldHVybiB7IGVudGl0aWVzLCBhbm5vdHMgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgdGhlIHJlc3BvbnNlIGJvZHkgYXMgYSBwcm9wZXJ0eVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHJvcGVydHkoKTogT0RhdGFQcm9wZXJ0eTxUPiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICBjb25zdCBwYXlsb2FkID0gdGhpcy5wYXlsb2FkO1xuICAgIGNvbnN0IGFubm90cyA9IG5ldyBPRGF0YVByb3BlcnR5QW5ub3RhdGlvbnM8VD4oXG4gICAgICBvcHRpb25zLmhlbHBlcixcbiAgICAgIHRoaXMuYW5ub3RhdGlvbnMsXG4gICAgICB0aGlzLmNvbnRleHQsXG4gICAgKTtcbiAgICBjb25zdCBkYXRhID0gcGF5bG9hZCA/IChhbm5vdHMuZGF0YShwYXlsb2FkKSBhcyBUKSA6IG51bGw7XG4gICAgbGV0IHByb3BlcnR5ID0gKFxuICAgICAgZGF0YSAhPT0gbnVsbCAmJiBUeXBlcy5pc1BsYWluT2JqZWN0KGRhdGEpXG4gICAgICAgID8gb3B0aW9ucy5oZWxwZXIuYXR0cmlidXRlcyhcbiAgICAgICAgICAgIGRhdGEgYXMgeyBba2V5OiBzdHJpbmddOiBhbnkgfSxcbiAgICAgICAgICAgIHRoaXMuYXBpLm9wdGlvbnMuc3RyaXBNZXRhZGF0YSxcbiAgICAgICAgICApXG4gICAgICAgIDogZGF0YVxuICAgICkgYXMgVCB8IG51bGw7XG5cbiAgICBpZiAocHJvcGVydHkgIT09IG51bGwpXG4gICAgICBwcm9wZXJ0eSA9IHRoaXMucmVzb3VyY2UuZGVzZXJpYWxpemUocHJvcGVydHksIG9wdGlvbnMpIGFzIFQ7XG4gICAgcmV0dXJuIHsgcHJvcGVydHksIGFubm90cyB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSB0aGUgcmVzcG9uc2UgYm9keSBhcyBhIHZhbHVlXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICB2YWx1ZSgpOiBUIHwgbnVsbCB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICBjb25zdCBwYXlsb2FkID0gdGhpcy5wYXlsb2FkO1xuICAgIGxldCB2YWx1ZSA9IChcbiAgICAgIHBheWxvYWQgIT09IG51bGwgJiYgVHlwZXMuaXNQbGFpbk9iamVjdChwYXlsb2FkKVxuICAgICAgICA/IG9wdGlvbnMuaGVscGVyLmF0dHJpYnV0ZXMocGF5bG9hZCwgdGhpcy5hcGkub3B0aW9ucy5zdHJpcE1ldGFkYXRhKVxuICAgICAgICA6IHBheWxvYWRcbiAgICApIGFzIFQgfCBudWxsO1xuXG4gICAgaWYgKHZhbHVlICE9PSBudWxsKSB2YWx1ZSA9IHRoaXMucmVzb3VyY2UuZGVzZXJpYWxpemUodmFsdWUsIG9wdGlvbnMpIGFzIFQ7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59XG4iXX0=
|
|
@@ -110,4 +110,4 @@ export class ODataActionResource extends ODataResource {
|
|
|
110
110
|
return this.call(params, { responseType: 'blob', alias, ...options });
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL3Jlc291cmNlcy90eXBlcy9hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3JDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUU1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBUzVDLE1BQU0sT0FBTyxtQkFBMEIsU0FBUSxhQUFnQjtJQUM3RCxpQkFBaUI7SUFDakIsTUFBTSxDQUFDLE9BQU8sQ0FDWixHQUFhLEVBQ2IsRUFDRSxJQUFJLEVBQ0osTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEdBTU47UUFFRCxRQUFRLEdBQUcsUUFBUSxJQUFJLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUMvQyxJQUFJLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDbkQsSUFBSSxJQUFJLEtBQUssU0FBUztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7UUFFM0QsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZELElBQUksTUFBTSxLQUFLLFNBQVM7WUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sSUFBSSxtQkFBbUIsQ0FBTyxHQUFHLEVBQUU7WUFDeEMsUUFBUTtZQUNSLEtBQUs7WUFDTCxNQUFNO1NBQ1AsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQU8sUUFBNEIsRUFBRSxJQUFZO1FBQ2xFLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQyxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFJLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN6RSxNQUFNLFdBQVcsR0FBRyxZQUFZLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxDQUFDO1FBRWxELE1BQU0sTUFBTSxHQUFHLG1CQUFtQixDQUFDLE9BQU8sQ0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzdELElBQUk7WUFDSixNQUFNLEVBQUUsWUFBWTtZQUNwQixRQUFRLEVBQUUsUUFBUSxDQUFDLGFBQWEsRUFBRTtTQUNuQyxDQUFDLENBQUM7UUFFSCxnREFBZ0Q7UUFDaEQsSUFBSSxXQUFXLEtBQUssU0FBUyxJQUFJLFdBQVcsS0FBSyxRQUFRLEVBQUU7WUFDekQsSUFBSSxTQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMvRCxJQUFJLFNBQVMsS0FBSyxTQUFTLEVBQUU7Z0JBQzNCLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDNUQ7U0FDRjtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFUSxLQUFLO1FBQ1osT0FBTyxLQUFLLENBQUMsS0FBSyxFQUErQixDQUFDO0lBQ3BELENBQUM7SUFDRCxZQUFZO0lBRUgsVUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxNQUFNLFlBQVksYUFBYTtZQUN6QyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUk7WUFDakMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNoQixDQUFDO0lBRUQsa0JBQWtCO0lBQ0MsSUFBSSxDQUNyQixNQUFnQixFQUNoQixPQUEwRTtRQUUxRSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFpQ0QsSUFBSSxDQUNGLE1BQWdCLEVBQ2hCLFVBRXlCLEVBQUU7UUFFM0IsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxZQUFZLENBQ1YsTUFBZ0IsRUFDaEIsVUFBd0IsRUFBRTtRQUUxQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUNyRSxHQUFHLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FDaEMsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFVBQVUsQ0FDUixNQUFnQixFQUNoQixVQUF3QixFQUFFO1FBRTFCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ25FLEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUM1QixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsU0FBUyxDQUNQLE1BQWdCLEVBQ2hCLFVBQXdCLEVBQUU7UUFFMUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDbkUsR0FBRyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUN6QixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUksTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNwRCxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxZQUFZLENBQ1YsTUFBZ0IsRUFDaEIsVUFBd0IsRUFBRTtRQUUxQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUNyRSxHQUFHLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FDaEMsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGNBQWMsQ0FDWixNQUFnQixFQUNoQixVQUF3QixFQUFFO1FBRTFCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ3JFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FDM0IsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFPLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDaEUsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELFlBQVk7SUFFWixlQUFlLENBQ2IsTUFBZ0IsRUFDaEIsRUFBRSxLQUFLLEVBQUUsR0FBRyxPQUFPLEtBQXlDLEVBQUU7UUFFOUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUN2QixZQUFZLEVBQUUsYUFBYTtZQUMzQixLQUFLO1lBQ0wsR0FBRyxPQUFPO1NBQ1gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVEsQ0FDTixNQUFnQixFQUNoQixFQUFFLEtBQUssRUFBRSxHQUFHLE9BQU8sS0FBeUMsRUFBRTtRQUU5RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE9EYXRhQXBpIH0gZnJvbSAnLi4vLi4vYXBpJztcbmltcG9ydCB7IE9EYXRhQ29sbGVjdGlvbiwgT0RhdGFNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBPRGF0YUNhbGxhYmxlIH0gZnJvbSAnLi4vLi4vc2NoZW1hL2NhbGxhYmxlJztcbmltcG9ydCB7IFBhdGhTZWdtZW50IH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgT0RhdGFQYXRoU2VnbWVudHMgfSBmcm9tICcuLi9wYXRoJztcbmltcG9ydCB7IE9EYXRhUXVlcnlPcHRpb25zIH0gZnJvbSAnLi4vcXVlcnknO1xuaW1wb3J0IHsgT0RhdGFSZXNvdXJjZSB9IGZyb20gJy4uL3Jlc291cmNlJztcbmltcG9ydCB7IE9EYXRhRW50aXRpZXMsIE9EYXRhRW50aXR5LCBPRGF0YVByb3BlcnR5IH0gZnJvbSAnLi4vcmVzcG9uc2VzJztcbmltcG9ydCB7XG4gIE9EYXRhRW50aXRpZXNPcHRpb25zLFxuICBPRGF0YUVudGl0eU9wdGlvbnMsXG4gIE9EYXRhT3B0aW9ucyxcbiAgT0RhdGFQcm9wZXJ0eU9wdGlvbnMsXG59IGZyb20gJy4vb3B0aW9ucyc7XG5cbmV4cG9ydCBjbGFzcyBPRGF0YUFjdGlvblJlc291cmNlPFAsIFI+IGV4dGVuZHMgT0RhdGFSZXNvdXJjZTxSPiB7XG4gIC8vI3JlZ2lvbiBGYWN0b3J5XG4gIHN0YXRpYyBmYWN0b3J5PFAsIFI+KFxuICAgIGFwaTogT0RhdGFBcGksXG4gICAge1xuICAgICAgcGF0aCxcbiAgICAgIHNjaGVtYSxcbiAgICAgIHNlZ21lbnRzLFxuICAgICAgcXVlcnksXG4gICAgfToge1xuICAgICAgcGF0aD86IHN0cmluZztcbiAgICAgIHNjaGVtYT86IE9EYXRhQ2FsbGFibGU8Uj47XG4gICAgICBzZWdtZW50cz86IE9EYXRhUGF0aFNlZ21lbnRzO1xuICAgICAgcXVlcnk/OiBPRGF0YVF1ZXJ5T3B0aW9uczxSPjtcbiAgICB9XG4gICkge1xuICAgIHNlZ21lbnRzID0gc2VnbWVudHMgfHwgbmV3IE9EYXRhUGF0aFNlZ21lbnRzKCk7XG4gICAgcGF0aCA9IHNjaGVtYSAhPT0gdW5kZWZpbmVkID8gc2NoZW1hLnBhdGgoKSA6IHBhdGg7XG4gICAgaWYgKHBhdGggPT09IHVuZGVmaW5lZClcbiAgICAgIHRocm93IG5ldyBFcnJvcihgT0RhdGFBY3Rpb25SZXNvdXJjZTogcGF0aCBpcyByZXF1aXJlZGApO1xuXG4gICAgY29uc3Qgc2VnbWVudCA9IHNlZ21lbnRzLmFkZChQYXRoU2VnbWVudC5hY3Rpb24sIHBhdGgpO1xuICAgIGlmIChzY2hlbWEgIT09IHVuZGVmaW5lZCkgc2VnbWVudC50eXBlKHNjaGVtYS50eXBlKCkpO1xuICAgIHJldHVybiBuZXcgT0RhdGFBY3Rpb25SZXNvdXJjZTxQLCBSPihhcGksIHtcbiAgICAgIHNlZ21lbnRzLFxuICAgICAgcXVlcnksXG4gICAgICBzY2hlbWEsXG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgZnJvbVJlc291cmNlPFAsIFI+KHJlc291cmNlOiBPRGF0YVJlc291cmNlPGFueT4sIHBhdGg6IHN0cmluZykge1xuICAgIGNvbnN0IGJhc2VUeXBlID0gcmVzb3VyY2UudHlwZSgpO1xuICAgIGNvbnN0IGFjdGlvblNjaGVtYSA9IHJlc291cmNlLmFwaS5maW5kQ2FsbGFibGVGb3JUeXBlPFI+KHBhdGgsIGJhc2VUeXBlKTtcbiAgICBjb25zdCBiaW5kaW5nVHlwZSA9IGFjdGlvblNjaGVtYT8uYmluZGluZygpPy50eXBlO1xuXG4gICAgY29uc3QgYWN0aW9uID0gT0RhdGFBY3Rpb25SZXNvdXJjZS5mYWN0b3J5PFAsIFI+KHJlc291cmNlLmFwaSwge1xuICAgICAgcGF0aCxcbiAgICAgIHNjaGVtYTogYWN0aW9uU2NoZW1hLFxuICAgICAgc2VnbWVudHM6IHJlc291cmNlLmNsb25lU2VnbWVudHMoKSxcbiAgICB9KTtcblxuICAgIC8vIFN3aXRjaCBlbnRpdHlTZXQgdG8gYmluZGluZyB0eXBlIGlmIGF2YWlsYWJsZVxuICAgIGlmIChiaW5kaW5nVHlwZSAhPT0gdW5kZWZpbmVkICYmIGJpbmRpbmdUeXBlICE9PSBiYXNlVHlwZSkge1xuICAgICAgbGV0IGVudGl0eVNldCA9IHJlc291cmNlLmFwaS5maW5kRW50aXR5U2V0Rm9yVHlwZShiaW5kaW5nVHlwZSk7XG4gICAgICBpZiAoZW50aXR5U2V0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgYWN0aW9uLnNlZ21lbnQoKHMpID0+IHMuZW50aXR5U2V0KCkucGF0aChlbnRpdHlTZXQhLm5hbWUpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gYWN0aW9uO1xuICB9XG5cbiAgb3ZlcnJpZGUgY2xvbmUoKTogT0RhdGFBY3Rpb25SZXNvdXJjZTxQLCBSPiB7XG4gICAgcmV0dXJuIHN1cGVyLmNsb25lKCkgYXMgT0RhdGFBY3Rpb25SZXNvdXJjZTxQLCBSPjtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICBvdmVycmlkZSByZXR1cm5UeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnNjaGVtYSBpbnN0YW5jZW9mIE9EYXRhQ2FsbGFibGVcbiAgICAgID8gdGhpcy5zY2hlbWEucGFyc2VyLnJldHVybj8udHlwZVxuICAgICAgOiB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyNyZWdpb24gUmVxdWVzdHNcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHBvc3QoXG4gICAgcGFyYW1zOiBQIHwgbnVsbCxcbiAgICBvcHRpb25zPzogT0RhdGFFbnRpdHlPcHRpb25zICYgT0RhdGFFbnRpdGllc09wdGlvbnMgJiBPRGF0YVByb3BlcnR5T3B0aW9uc1xuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBzdXBlci5wb3N0KHBhcmFtcywgb3B0aW9ucyk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIFNob3J0Y3V0c1xuICAvKipcbiAgICogRXhlY3V0ZSB0aGUgYWN0aW9uXG4gICAqIEBwYXJhbSBwYXJhbXMgUGFyYW1ldGVycyB0byBiZSBzZW50IHRvIHRoZSBhY3Rpb25cbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBmb3IgdGhlIHJlcXVlc3RcbiAgICovXG4gIGNhbGwoXG4gICAgcGFyYW1zOiBQIHwgbnVsbCxcbiAgICBvcHRpb25zPzogT0RhdGFFbnRpdHlPcHRpb25zXG4gICk6IE9ic2VydmFibGU8T0RhdGFFbnRpdHk8Uj4+O1xuICBjYWxsKFxuICAgIHBhcmFtczogUCB8IG51bGwsXG4gICAgb3B0aW9ucz86IE9EYXRhRW50aXRpZXNPcHRpb25zXG4gICk6IE9ic2VydmFibGU8T0RhdGFFbnRpdGllczxSPj47XG4gIGNhbGwoXG4gICAgcGFyYW1zOiBQIHwgbnVsbCxcbiAgICBvcHRpb25zPzogT0RhdGFQcm9wZXJ0eU9wdGlvbnNcbiAgKTogT2JzZXJ2YWJsZTxPRGF0YVByb3BlcnR5PFI+PjtcbiAgY2FsbChcbiAgICBwYXJhbXM6IFAgfCBudWxsLFxuICAgIG9wdGlvbnM/OiB7IGFsaWFzPzogYm9vbGVhbjsgcmVzcG9uc2VUeXBlPzogJ2Jsb2InIH0gJiBPRGF0YU9wdGlvbnNcbiAgKTogT2JzZXJ2YWJsZTxCbG9iPjtcbiAgY2FsbChcbiAgICBwYXJhbXM6IFAgfCBudWxsLFxuICAgIG9wdGlvbnM/OiB7IGFsaWFzPzogYm9vbGVhbjsgcmVzcG9uc2VUeXBlPzogJ2FycmF5YnVmZmVyJyB9ICYgT0RhdGFPcHRpb25zXG4gICk6IE9ic2VydmFibGU8QXJyYXlCdWZmZXI+O1xuICBjYWxsKFxuICAgIHBhcmFtczogUCB8IG51bGwsXG4gICAgb3B0aW9ucz86IHsgYWxpYXM/OiBib29sZWFuOyByZXNwb25zZVR5cGU/OiAnbm9uZScgfSAmIE9EYXRhT3B0aW9uc1xuICApOiBPYnNlcnZhYmxlPG51bGw+O1xuICBjYWxsKFxuICAgIHBhcmFtczogUCB8IG51bGwsXG4gICAgb3B0aW9uczogT0RhdGFFbnRpdHlPcHRpb25zICZcbiAgICAgIE9EYXRhRW50aXRpZXNPcHRpb25zICZcbiAgICAgIE9EYXRhUHJvcGVydHlPcHRpb25zID0ge31cbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5jbG9uZSgpLnBvc3QocGFyYW1zLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIHRoZSBhY3Rpb24gYW5kIHJldHVybiB0aGUgcmVzdWx0IGFzIGEgcHJvcGVydHlcbiAgICogQHBhcmFtIHBhcmFtcyBQYXJhbWV0ZXJzIGZvciB0aGUgYWN0aW9uXG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgZm9yIHRoZSByZXF1ZXN0XG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgb2YgdGhlIHJlc3VsdCBvZiB0aGUgYWN0aW9uXG4gICAqL1xuICBjYWxsUHJvcGVydHkoXG4gICAgcGFyYW1zOiBQIHwgbnVsbCxcbiAgICBvcHRpb25zOiBPRGF0YU9wdGlvbnMgPSB7fVxuICApOiBPYnNlcnZhYmxlPFIgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FsbChwYXJhbXMsIHsgcmVzcG9uc2VUeXBlOiAncHJvcGVydHknLCAuLi5vcHRpb25zIH0pLnBpcGUoXG4gICAgICBtYXAoKHsgcHJvcGVydHkgfSkgPT4gcHJvcGVydHkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIHRoZSBhY3Rpb24gYW5kIHJldHVybiB0aGUgcmVzdWx0IGFzIGEgZW50aXR5XG4gICAqIEBwYXJhbSBwYXJhbXMgUGFyYW1ldGVycyBmb3IgdGhlIGFjdGlvblxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zIGZvciB0aGUgcmVxdWVzdFxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9mIHRoZSByZXN1bHQgb2YgdGhlIGFjdGlvblxuICAgKi9cbiAgY2FsbEVudGl0eShcbiAgICBwYXJhbXM6IFAgfCBudWxsLFxuICAgIG9wdGlvbnM6IE9EYXRhT3B0aW9ucyA9IHt9XG4gICk6IE9ic2VydmFibGU8UiB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5jYWxsKHBhcmFtcywgeyByZXNwb25zZVR5cGU6ICdlbnRpdHknLCAuLi5vcHRpb25zIH0pLnBpcGUoXG4gICAgICBtYXAoKHsgZW50aXR5IH0pID0+IGVudGl0eSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgdGhlIGFjdGlvbiBhbmQgcmV0dXJuIHRoZSByZXN1bHQgYXMgYSBtb2RlbFxuICAgKiBAcGFyYW0gcGFyYW1zIFBhcmFtZXRlcnMgZm9yIHRoZSBhY3Rpb25cbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBmb3IgdGhlIHJlcXVlc3RcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBvZiB0aGUgcmVzdWx0IG9mIHRoZSBhY3Rpb25cbiAgICovXG4gIGNhbGxNb2RlbDxNIGV4dGVuZHMgT0RhdGFNb2RlbDxSPj4oXG4gICAgcGFyYW1zOiBQIHwgbnVsbCxcbiAgICBvcHRpb25zOiBPRGF0YU9wdGlvbnMgPSB7fVxuICApOiBPYnNlcnZhYmxlPE0gfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FsbChwYXJhbXMsIHsgcmVzcG9uc2VUeXBlOiAnZW50aXR5JywgLi4ub3B0aW9ucyB9KS5waXBlKFxuICAgICAgbWFwKCh7IGVudGl0eSwgYW5ub3RzIH0pID0+XG4gICAgICAgIGVudGl0eSA/IHRoaXMuYXNNb2RlbDxNPihlbnRpdHksIHsgYW5ub3RzIH0pIDogbnVsbFxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZSB0aGUgYWN0aW9uIGFuZCByZXR1cm4gdGhlIHJlc3VsdCBhcyBhIGVudGl0aWVzXG4gICAqIEBwYXJhbSBwYXJhbXMgUGFyYW1ldGVycyBmb3IgdGhlIGFjdGlvblxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zIGZvciB0aGUgcmVxdWVzdFxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9mIHRoZSByZXN1bHQgb2YgdGhlIGFjdGlvblxuICAgKi9cbiAgY2FsbEVudGl0aWVzKFxuICAgIHBhcmFtczogUCB8IG51bGwsXG4gICAgb3B0aW9uczogT0RhdGFPcHRpb25zID0ge31cbiAgKTogT2JzZXJ2YWJsZTxSW10gfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FsbChwYXJhbXMsIHsgcmVzcG9uc2VUeXBlOiAnZW50aXRpZXMnLCAuLi5vcHRpb25zIH0pLnBpcGUoXG4gICAgICBtYXAoKHsgZW50aXRpZXMgfSkgPT4gZW50aXRpZXMpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIHRoZSBhY3Rpb24gYW5kIHJldHVybiB0aGUgcmVzdWx0IGFzIGEgY29sbGVjdGlvblxuICAgKiBAcGFyYW0gcGFyYW1zIFBhcmFtZXRlcnMgZm9yIHRoZSBhY3Rpb25cbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBmb3IgdGhlIHJlcXVlc3RcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBvZiB0aGUgcmVzdWx0IG9mIHRoZSBhY3Rpb25cbiAgICovXG4gIGNhbGxDb2xsZWN0aW9uPE0gZXh0ZW5kcyBPRGF0YU1vZGVsPFI+LCBDIGV4dGVuZHMgT0RhdGFDb2xsZWN0aW9uPFIsIE0+PihcbiAgICBwYXJhbXM6IFAgfCBudWxsLFxuICAgIG9wdGlvbnM6IE9EYXRhT3B0aW9ucyA9IHt9XG4gICk6IE9ic2VydmFibGU8QyB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5jYWxsKHBhcmFtcywgeyByZXNwb25zZVR5cGU6ICdlbnRpdGllcycsIC4uLm9wdGlvbnMgfSkucGlwZShcbiAgICAgIG1hcCgoeyBlbnRpdGllcywgYW5ub3RzIH0pID0+XG4gICAgICAgIGVudGl0aWVzID8gdGhpcy5hc0NvbGxlY3Rpb248TSwgQz4oZW50aXRpZXMsIHsgYW5ub3RzIH0pIDogbnVsbFxuICAgICAgKVxuICAgICk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgY2FsbEFycmF5YnVmZmVyKFxuICAgIHBhcmFtczogUCB8IG51bGwsXG4gICAgeyBhbGlhcywgLi4ub3B0aW9ucyB9OiB7IGFsaWFzPzogYm9vbGVhbiB9ICYgT0RhdGFPcHRpb25zID0ge31cbiAgKTogT2JzZXJ2YWJsZTxBcnJheUJ1ZmZlcj4ge1xuICAgIHJldHVybiB0aGlzLmNhbGwocGFyYW1zLCB7XG4gICAgICByZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcicsXG4gICAgICBhbGlhcyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG4gIH1cblxuICBjYWxsQmxvYihcbiAgICBwYXJhbXM6IFAgfCBudWxsLFxuICAgIHsgYWxpYXMsIC4uLm9wdGlvbnMgfTogeyBhbGlhcz86IGJvb2xlYW4gfSAmIE9EYXRhT3B0aW9ucyA9IHt9XG4gICk6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgIHJldHVybiB0aGlzLmNhbGwocGFyYW1zLCB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InLCBhbGlhcywgLi4ub3B0aW9ucyB9KTtcbiAgfVxufVxuIl19
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL3Jlc291cmNlcy90eXBlcy9hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3JDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUU1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBUzVDLE1BQU0sT0FBTyxtQkFBMEIsU0FBUSxhQUFnQjtJQUM3RCxpQkFBaUI7SUFDakIsTUFBTSxDQUFDLE9BQU8sQ0FDWixHQUFhLEVBQ2IsRUFDRSxJQUFJLEVBQ0osTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEdBTU47UUFFRCxRQUFRLEdBQUcsUUFBUSxJQUFJLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUMvQyxJQUFJLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDbkQsSUFBSSxJQUFJLEtBQUssU0FBUztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7UUFFM0QsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZELElBQUksTUFBTSxLQUFLLFNBQVM7WUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sSUFBSSxtQkFBbUIsQ0FBTyxHQUFHLEVBQUU7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QyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVEsQ0FDTixNQUFnQixFQUNoQixFQUFFLEtBQUssRUFBRSxHQUFHLE9BQU8sS0FBeUMsRUFBRTtRQUU5RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE9EYXRhQXBpIH0gZnJvbSAnLi4vLi4vYXBpJztcbmltcG9ydCB7IE9EYXRhQ29sbGVjdGlvbiwgT0RhdGFNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBPRGF0YUNhbGxhYmxlIH0gZnJvbSAnLi4vLi4vc2NoZW1hL2NhbGxhYmxlJztcbmltcG9ydCB7IFBhdGhTZWdtZW50IH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgT0RhdGFQYXRoU2VnbWVudHMgfSBmcm9tICcuLi9wYXRoJztcbmltcG9ydCB7IE9EYXRhUXVlcnlPcHRpb25zIH0gZnJvbSAnLi4vcXVlcnknO1xuaW1wb3J0IHsgT0RhdGFSZXNvdXJjZSB9IGZyb20gJy4uL3Jlc291cmNlJztcbmltcG9ydCB7IE9EYXRhRW50aXRpZXMsIE9EYXRhRW50aXR5LCBPRGF0YVByb3BlcnR5IH0gZnJvbSAnLi4vcmVzcG9uc2VzJztcbmltcG9ydCB7XG4gIE9EYXRhRW50aXRpZXNPcHRpb25zLFxuICBPRGF0YUVudGl0eU9wdGlvbnMsXG4gIE9EYXRhT3B0aW9ucyxcbiAgT0RhdGFQcm9wZXJ0eU9wdGlvbnMsXG59IGZyb20gJy4vb3B0aW9ucyc7XG5cbmV4cG9ydCBjbGFzcyBPRGF0YUFjdGlvblJlc291cmNlPFAsIFI+IGV4dGVuZHMgT0RhdGFSZXNvdXJjZTxSPiB7XG4gIC8vI3JlZ2lvbiBGYWN0b3J5XG4gIHN0YXRpYyBmYWN0b3J5PFAsIFI+KFxuICAgIGFwaTogT0RhdGFBcGksXG4gICAge1xuICAgICAgcGF0aCxcbiAgICAgIHNjaGVtYSxcbiAgICAgIHNlZ21lbnRzLFxuICAgICAgcXVlcnksXG4gICAgfToge1xuICAgICAgcGF0aD86IHN0cmluZztcbiAgICAgIHNjaGVtYT86IE9EYXRhQ2FsbGFibGU8Uj47XG4gICAgICBzZWdtZW50cz86IE9EYXRhUGF0aFNlZ21lbnRzO1xuICAgICAgcXVlcnk/OiBPRGF0YVF1ZXJ5T3B0aW9uczxSPjtcbiAgICB9LFxuICApIHtcbiAgICBzZWdtZW50cyA9IHNlZ21lbnRzIHx8IG5ldyBPRGF0YVBhdGhTZWdtZW50cygpO1xuICAgIHBhdGggPSBzY2hlbWEgIT09IHVuZGVmaW5lZCA/IHNjaGVtYS5wYXRoKCkgOiBwYXRoO1xuICAgIGlmIChwYXRoID09PSB1bmRlZmluZWQpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE9EYXRhQWN0aW9uUmVzb3VyY2U6IHBhdGggaXMgcmVxdWlyZWRgKTtcblxuICAgIGNvbnN0IHNlZ21lbnQgPSBzZWdtZW50cy5hZGQoUGF0aFNlZ21lbnQuYWN0aW9uLCBwYXRoKTtcbiAgICBpZiAoc2NoZW1hICE9PSB1bmRlZmluZWQpIHNlZ21lbnQudHlwZShzY2hlbWEudHlwZSgpKTtcbiAgICByZXR1cm4gbmV3IE9EYXRhQWN0aW9uUmVzb3VyY2U8UCwgUj4oYXBpLCB7XG4gICAgICBzZWdtZW50cyxcbiAgICAgIHF1ZXJ5LFxuICAgICAgc2NoZW1hLFxuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIGZyb21SZXNvdXJjZTxQLCBSPihyZXNvdXJjZTogT0RhdGFSZXNvdXJjZTxhbnk+LCBwYXRoOiBzdHJpbmcpIHtcbiAgICBjb25zdCBiYXNlVHlwZSA9IHJlc291cmNlLnR5cGUoKTtcbiAgICBjb25zdCBhY3Rpb25TY2hlbWEgPSByZXNvdXJjZS5hcGkuZmluZENhbGxhYmxlRm9yVHlwZTxSPihwYXRoLCBiYXNlVHlwZSk7XG4gICAgY29uc3QgYmluZGluZ1R5cGUgPSBhY3Rpb25TY2hlbWE/LmJpbmRpbmcoKT8udHlwZTtcblxuICAgIGNvbnN0IGFjdGlvbiA9IE9EYXRhQWN0aW9uUmVzb3VyY2UuZmFjdG9yeTxQLCBSPihyZXNvdXJjZS5hcGksIHtcbiAgICAgIHBhdGgsXG4gICAgICBzY2hlbWE6IGFjdGlvblNjaGVtYSxcbiAgICAgIHNlZ21lbnRzOiByZXNvdXJjZS5jbG9uZVNlZ21lbnRzKCksXG4gICAgfSk7XG5cbiAgICAvLyBTd2l0Y2ggZW50aXR5U2V0IHRvIGJpbmRpbmcgdHlwZSBpZiBhdmFpbGFibGVcbiAgICBpZiAoYmluZGluZ1R5cGUgIT09IHVuZGVmaW5lZCAmJiBiaW5kaW5nVHlwZSAhPT0gYmFzZVR5cGUpIHtcbiAgICAgIGxldCBlbnRpdHlTZXQgPSByZXNvdXJjZS5hcGkuZmluZEVudGl0eVNldEZvclR5cGUoYmluZGluZ1R5cGUpO1xuICAgICAgaWYgKGVudGl0eVNldCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGFjdGlvbi5zZWdtZW50KChzKSA9PiBzLmVudGl0eVNldCgpLnBhdGgoZW50aXR5U2V0IS5uYW1lKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjdGlvbjtcbiAgfVxuXG4gIG92ZXJyaWRlIGNsb25lKCk6IE9EYXRhQWN0aW9uUmVzb3VyY2U8UCwgUj4ge1xuICAgIHJldHVybiBzdXBlci5jbG9uZSgpIGFzIE9EYXRhQWN0aW9uUmVzb3VyY2U8UCwgUj47XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgb3ZlcnJpZGUgcmV0dXJuVHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zY2hlbWEgaW5zdGFuY2VvZiBPRGF0YUNhbGxhYmxlXG4gICAgICA/IHRoaXMuc2NoZW1hLnBhcnNlci5yZXR1cm4/LnR5cGVcbiAgICAgIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgLy8jcmVnaW9uIFJlcXVlc3RzXG4gIHByb3RlY3RlZCBvdmVycmlkZSBwb3N0KFxuICAgIHBhcmFtczogUCB8IG51bGwsXG4gICAgb3B0aW9ucz86IE9EYXRhRW50aXR5T3B0aW9ucyAmIE9EYXRhRW50aXRpZXNPcHRpb25zICYgT0RhdGFQcm9wZXJ0eU9wdGlvbnMsXG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHN1cGVyLnBvc3QocGFyYW1zLCBvcHRpb25zKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gU2hvcnRjdXRzXG4gIC8qKlxuICAgKiBFeGVjdXRlIHRoZSBhY3Rpb25cbiAgICogQHBhcmFtIHBhcmFtcyBQYXJhbWV0ZXJzIHRvIGJlIHNlbnQgdG8gdGhlIGFjdGlvblxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zIGZvciB0aGUgcmVxdWVzdFxuICAgKi9cbiAgY2FsbChcbiAgICBwYXJhbXM6IFAgfCBudWxsLFxuICAgIG9wdGlvbnM/OiBPRGF0YUVudGl0eU9wdGlvbnMsXG4gICk6IE9ic2VydmFibGU8T0RhdGFFbnRpdHk8Uj4+O1xuICBjYWxsKFxuICAgIHBhcmFtczogUCB8IG51bGwsXG4gICAgb3B0aW9ucz86IE9EYXRhRW50aXRpZXNPcHRpb25zLFxuICApOiBPYnNlcnZhYmxlPE9EYXRhRW50aXRpZXM8Uj4+O1xuICBjYWxsKFxuICAgIHBhcmFtczogUCB8IG51bGwsXG4gICAgb3B0aW9ucz86IE9EYXRhUHJvcGVydHlPcHRpb25zLFxuICApOiBPYnNlcnZhYmxlPE9EYXRhUHJvcGVydHk8Uj4+O1xuICBjYWxsKFxuICAgIHBhcmFtczogUCB8IG51bGwsXG4gICAgb3B0aW9ucz86IHsgYWxpYXM/OiBib29sZWFuOyByZXNwb25zZVR5cGU/OiAnYmxvYicgfSAmIE9EYXRhT3B0aW9ucyxcbiAgKTogT2JzZXJ2YWJsZTxCbG9iPjtcbiAgY2FsbChcbiAgICBwYXJhbXM6IFAgfCBudWxsLFxuICAgIG9wdGlvbnM/OiB7IGFsaWFzPzogYm9vbGVhbjsgcmVzcG9uc2VUeXBlPzogJ2FycmF5YnVmZmVyJyB9ICYgT0RhdGFPcHRpb25zLFxuICApOiBPYnNlcnZhYmxlPEFycmF5QnVmZmVyPjtcbiAgY2FsbChcbiAgICBwYXJhbXM6IFAgfCBudWxsLFxuICAgIG9wdGlvbnM/OiB7IGFsaWFzPzogYm9vbGVhbjsgcmVzcG9uc2VUeXBlPzogJ25vbmUnIH0gJiBPRGF0YU9wdGlvbnMsXG4gICk6IE9ic2VydmFibGU8bnVsbD47XG4gIGNhbGwoXG4gICAgcGFyYW1zOiBQIHwgbnVsbCxcbiAgICBvcHRpb25zOiBPRGF0YUVudGl0eU9wdGlvbnMgJlxuICAgICAgT0RhdGFFbnRpdGllc09wdGlvbnMgJlxuICAgICAgT0RhdGFQcm9wZXJ0eU9wdGlvbnMgPSB7fSxcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5jbG9uZSgpLnBvc3QocGFyYW1zLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIHRoZSBhY3Rpb24gYW5kIHJldHVybiB0aGUgcmVzdWx0IGFzIGEgcHJvcGVydHlcbiAgICogQHBhcmFtIHBhcmFtcyBQYXJhbWV0ZXJzIGZvciB0aGUgYWN0aW9uXG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgZm9yIHRoZSByZXF1ZXN0XG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgb2YgdGhlIHJlc3VsdCBvZiB0aGUgYWN0aW9uXG4gICAqL1xuICBjYWxsUHJvcGVydHkoXG4gICAgcGFyYW1zOiBQIHwgbnVsbCxcbiAgICBvcHRpb25zOiBPRGF0YU9wdGlvbnMgPSB7fSxcbiAgKTogT2JzZXJ2YWJsZTxSIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLmNhbGwocGFyYW1zLCB7IHJlc3BvbnNlVHlwZTogJ3Byb3BlcnR5JywgLi4ub3B0aW9ucyB9KS5waXBlKFxuICAgICAgbWFwKCh7IHByb3BlcnR5IH0pID0+IHByb3BlcnR5KSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgdGhlIGFjdGlvbiBhbmQgcmV0dXJuIHRoZSByZXN1bHQgYXMgYSBlbnRpdHlcbiAgICogQHBhcmFtIHBhcmFtcyBQYXJhbWV0ZXJzIGZvciB0aGUgYWN0aW9uXG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgZm9yIHRoZSByZXF1ZXN0XG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgb2YgdGhlIHJlc3VsdCBvZiB0aGUgYWN0aW9uXG4gICAqL1xuICBjYWxsRW50aXR5KFxuICAgIHBhcmFtczogUCB8IG51bGwsXG4gICAgb3B0aW9uczogT0RhdGFPcHRpb25zID0ge30sXG4gICk6IE9ic2VydmFibGU8UiB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5jYWxsKHBhcmFtcywgeyByZXNwb25zZVR5cGU6ICdlbnRpdHknLCAuLi5vcHRpb25zIH0pLnBpcGUoXG4gICAgICBtYXAoKHsgZW50aXR5IH0pID0+IGVudGl0eSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIHRoZSBhY3Rpb24gYW5kIHJldHVybiB0aGUgcmVzdWx0IGFzIGEgbW9kZWxcbiAgICogQHBhcmFtIHBhcmFtcyBQYXJhbWV0ZXJzIGZvciB0aGUgYWN0aW9uXG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgZm9yIHRoZSByZXF1ZXN0XG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgb2YgdGhlIHJlc3VsdCBvZiB0aGUgYWN0aW9uXG4gICAqL1xuICBjYWxsTW9kZWw8TSBleHRlbmRzIE9EYXRhTW9kZWw8Uj4+KFxuICAgIHBhcmFtczogUCB8IG51bGwsXG4gICAgb3B0aW9uczogT0RhdGFPcHRpb25zID0ge30sXG4gICk6IE9ic2VydmFibGU8TSB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5jYWxsKHBhcmFtcywgeyByZXNwb25zZVR5cGU6ICdlbnRpdHknLCAuLi5vcHRpb25zIH0pLnBpcGUoXG4gICAgICBtYXAoKHsgZW50aXR5LCBhbm5vdHMgfSkgPT5cbiAgICAgICAgZW50aXR5ID8gdGhpcy5hc01vZGVsPE0+KGVudGl0eSwgeyBhbm5vdHMgfSkgOiBudWxsLFxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgdGhlIGFjdGlvbiBhbmQgcmV0dXJuIHRoZSByZXN1bHQgYXMgYSBlbnRpdGllc1xuICAgKiBAcGFyYW0gcGFyYW1zIFBhcmFtZXRlcnMgZm9yIHRoZSBhY3Rpb25cbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBmb3IgdGhlIHJlcXVlc3RcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBvZiB0aGUgcmVzdWx0IG9mIHRoZSBhY3Rpb25cbiAgICovXG4gIGNhbGxFbnRpdGllcyhcbiAgICBwYXJhbXM6IFAgfCBudWxsLFxuICAgIG9wdGlvbnM6IE9EYXRhT3B0aW9ucyA9IHt9LFxuICApOiBPYnNlcnZhYmxlPFJbXSB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5jYWxsKHBhcmFtcywgeyByZXNwb25zZVR5cGU6ICdlbnRpdGllcycsIC4uLm9wdGlvbnMgfSkucGlwZShcbiAgICAgIG1hcCgoeyBlbnRpdGllcyB9KSA9PiBlbnRpdGllcyksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIHRoZSBhY3Rpb24gYW5kIHJldHVybiB0aGUgcmVzdWx0IGFzIGEgY29sbGVjdGlvblxuICAgKiBAcGFyYW0gcGFyYW1zIFBhcmFtZXRlcnMgZm9yIHRoZSBhY3Rpb25cbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBmb3IgdGhlIHJlcXVlc3RcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBvZiB0aGUgcmVzdWx0IG9mIHRoZSBhY3Rpb25cbiAgICovXG4gIGNhbGxDb2xsZWN0aW9uPE0gZXh0ZW5kcyBPRGF0YU1vZGVsPFI+LCBDIGV4dGVuZHMgT0RhdGFDb2xsZWN0aW9uPFIsIE0+PihcbiAgICBwYXJhbXM6IFAgfCBudWxsLFxuICAgIG9wdGlvbnM6IE9EYXRhT3B0aW9ucyA9IHt9LFxuICApOiBPYnNlcnZhYmxlPEMgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FsbChwYXJhbXMsIHsgcmVzcG9uc2VUeXBlOiAnZW50aXRpZXMnLCAuLi5vcHRpb25zIH0pLnBpcGUoXG4gICAgICBtYXAoKHsgZW50aXRpZXMsIGFubm90cyB9KSA9PlxuICAgICAgICBlbnRpdGllcyA/IHRoaXMuYXNDb2xsZWN0aW9uPE0sIEM+KGVudGl0aWVzLCB7IGFubm90cyB9KSA6IG51bGwsXG4gICAgICApLFxuICAgICk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgY2FsbEFycmF5YnVmZmVyKFxuICAgIHBhcmFtczogUCB8IG51bGwsXG4gICAgeyBhbGlhcywgLi4ub3B0aW9ucyB9OiB7IGFsaWFzPzogYm9vbGVhbiB9ICYgT0RhdGFPcHRpb25zID0ge30sXG4gICk6IE9ic2VydmFibGU8QXJyYXlCdWZmZXI+IHtcbiAgICByZXR1cm4gdGhpcy5jYWxsKHBhcmFtcywge1xuICAgICAgcmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInLFxuICAgICAgYWxpYXMsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgY2FsbEJsb2IoXG4gICAgcGFyYW1zOiBQIHwgbnVsbCxcbiAgICB7IGFsaWFzLCAuLi5vcHRpb25zIH06IHsgYWxpYXM/OiBib29sZWFuIH0gJiBPRGF0YU9wdGlvbnMgPSB7fSxcbiAgKTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FsbChwYXJhbXMsIHsgcmVzcG9uc2VUeXBlOiAnYmxvYicsIGFsaWFzLCAuLi5vcHRpb25zIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -423,4 +423,4 @@ export class ODataBatchResource extends ODataResource {
|
|
|
423
423
|
});
|
|
424
424
|
}
|
|
425
425
|
}
|
|
426
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmF0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvcmVzb3VyY2VzL3R5cGVzL2JhdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsV0FBVyxFQUNYLFlBQVksR0FFYixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFHTCxHQUFHLEVBR0gsT0FBTyxHQUVSLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixZQUFZLEVBQ1osTUFBTSxFQUNOLHNCQUFzQixFQUN0QixnQkFBZ0IsRUFDaEIsVUFBVSxFQUNWLHlCQUF5QixFQUN6QixZQUFZLEVBQ1osTUFBTSxFQUNOLGVBQWUsRUFDZix3QkFBd0IsRUFDeEIsT0FBTyxFQUNQLGNBQWMsRUFDZCxhQUFhLEVBQ2IsV0FBVyxFQUNYLFdBQVcsR0FDWixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRTVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJNUMsTUFBTSxPQUFPLGlCQUFxQixTQUFRLE9BQXlCO0lBR2pFLFlBQW1CLE9BQTBCO1FBQzNDLEtBQUssRUFBRSxDQUFDO1FBRFMsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFFM0MsSUFBSSxDQUFDLEVBQUUsR0FBRyxPQUFPLENB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RCxJQUFJLEVBQUUsR0FBRyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksR0FBRyxHQUFHLENBQUM7WUFDbkMsSUFBSSxPQUFPLENBQUMsWUFBWSxLQUFLLE1BQU0sSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7Z0JBQy9ELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQztnQkFDMUIsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNyQyxJQUFJO29CQUNGLElBQUksR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7aUJBQzlDO2dCQUFDLE9BQU8sS0FBSyxFQUFFO29CQUNkLElBQUksR0FBRyxZQUFZLENBQUM7b0JBRXBCLElBQUksRUFBRSxFQUFFO3dCQUNOLEVBQUUsR0FBRyxLQUFLLENBQUM7d0JBQ1gsSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztxQkFDOUI7aUJBQ0Y7YUFDRjtZQUVELE9BQU8sRUFBRTtnQkFDUCxDQUFDLENBQUMsSUFBSSxZQUFZLENBQU07b0JBQ3BCLElBQUk7b0JBQ0osT0FBTztvQkFDUCxNQUFNLEVBQUUsSUFBSTtvQkFDWixHQUFHLEVBQUUsT0FBTyxDQUFDLGFBQWE7aUJBQzNCLENBQUM7Z0JBQ0osQ0FBQyxDQUFDLElBQUksaUJBQWlCLENBQUM7b0JBQ3BCLHVFQUF1RTtvQkFDdkUsS0FBSyxFQUFFLElBQUk7b0JBQ1gsT0FBTztvQkFDUCxNQUFNLEVBQUUsSUFBSTtvQkFDWixHQUFHLEVBQUUsT0FBTyxDQUFDLGFBQWE7aUJBQzNCLENBQUMsQ0FBQztRQUNULENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSHR0cEVycm9yUmVzcG9uc2UsXG4gIEh0dHBIZWFkZXJzLFxuICBIdHRwUmVzcG9uc2UsXG4gIEh0dHBSZXNwb25zZUJhc2UsXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7XG4gIGNvbmNhdE1hcCxcbiAgZmlyc3RWYWx1ZUZyb20sXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIFN1YmplY3QsXG4gIHN3aXRjaE1hcCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPRGF0YUFwaSB9IGZyb20gJy4uLy4uL2FwaSc7XG5pbXBvcnQge1xuICAkQkFUQ0gsXG4gIEFDQ0VQVCxcbiAgQVBQTElDQVRJT05fSFRUUCxcbiAgQVBQTElDQVRJT05fSlNPTixcbiAgQkFUQ0hfUFJFRklYLFxuICBCSU5BUlksXG4gIEJPVU5EQVJZX1BSRUZJWF9TVUZGSVgsXG4gIENIQU5HRVNFVF9QUkVGSVgsXG4gIENPTlRFTlRfSUQsXG4gIENPTlRFTlRfVFJBTlNGRVJfRU5DT0RJTkcsXG4gIENPTlRFTlRfVFlQRSxcbiAgSFRUUDExLFxuICBNVUxUSVBBUlRfTUlYRUQsXG4gIE1VTFRJUEFSVF9NSVhFRF9CT1VOREFSWSxcbiAgTkVXTElORSxcbiAgTkVXTElORV9SRUdFWFAsXG4gIE9EQVRBX1ZFUlNJT04sXG4gIFZFUlNJT05fNF8wLFxuICBYU1NJX1BSRUZJWCxcbn0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFBhdGhTZWdtZW50IH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgQXJyYXlzIH0gZnJvbSAnLi4vLi4vdXRpbHMvYXJyYXlzJztcbmltcG9ydCB7IEh0dHAgfSBmcm9tICcuLi8uLi91dGlscy9odHRwJztcbmltcG9ydCB7IFN0cmluZ3MgfSBmcm9tICcuLi8uLi91dGlscy9zdHJpbmdzJztcbmltcG9ydCB7IE9EYXRhUGF0aFNlZ21lbnRzIH0gZnJvbSAnLi4vcGF0aCc7XG5pbXBvcnQgeyBPRGF0YVJlcXVlc3QgfSBmcm9tICcuLi9yZXF1ZXN0JztcbmltcG9ydCB7IE9EYXRhUmVzb3VyY2UgfSBmcm9tICcuLi9yZXNvdXJjZSc7XG5pbXBvcnQgeyBPRGF0YVJlc3BvbnNlIH0gZnJvbSAnLi4vcmVzcG9uc2VzJztcbmltcG9ydCB7IE9EYXRhT3B0aW9ucyB9IGZyb20gJy4vb3B0aW9ucyc7XG5cbmV4cG9ydCBjbGFzcyBPRGF0YUJhdGNoUmVxdWVzdDxUPiBleHRlbmRzIFN1YmplY3Q8SHR0cFJlc3BvbnNlQmFzZT4ge1xuICBpZDogc3RyaW5nO1xuICBncm91cDogc3RyaW5nO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVxdWVzdDogT0RhdGFSZXF1ZXN0PGFueT4pIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuaWQgPSBTdHJpbmdzLnVuaXF1ZUlkKHsgcHJlZml4OiAncicgfSk7XG4gICAgdGhpcy5ncm91cCA9IFN0cmluZ3MudW5pcXVlSWQoeyBwcmVmaXg6ICdnJyB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnRvTGVnYWN5KCk7XG4gIH1cblxuICB0b0xlZ2FjeSgpIHtcbiAgICAvL1RPRE86IFJlbGF0aXZlIG9yIEFic29sdXRlIHVybCA/XG4gICAgbGV0IHJlcyA9IFtcbiAgICAgIGAke3RoaXMucmVxdWVzdC5tZXRob2R9ICR7dGhpcy5yZXF1ZXN0LnBhdGhXaXRoUGFyYW1zfSAke0hUVFAxMX1gLFxuICAgIF07XG4gICAgaWYgKFxuICAgICAgdGhpcy5yZXF1ZXN0Lm1ldGhvZCA9PT0gJ1BPU1QnIHx8XG4gICAgICB0aGlzLnJlcXVlc3QubWV0aG9kID09PSAnUEFUQ0gnIHx8XG4gICAgICB0aGlzLnJlcXVlc3QubWV0aG9kID09PSAnUFVUJ1xuICAgICkge1xuICAgICAgcmVzLnB1c2goYCR7Q09OVEVOVF9UWVBFfTogJHtBUFBMSUNBVElPTl9KU09OfWApO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnJlcXVlc3QuaGVhZGVycyBpbnN0YW5jZW9mIEh0dHBIZWFkZXJzKSB7XG4gICAgICBsZXQgaGVhZGVycyA9IHRoaXMucmVxdWVzdC5oZWFkZXJzO1xuICAgICAgcmVzID0gW1xuICAgICAgICAuLi5yZXMsXG4gICAgICAgIC4uLmhlYWRlcnNcbiAgICAgICAgICAua2V5cygpXG4gICAgICAgICAgLm1hcCgoa2V5KSA9PiBgJHtrZXl9OiAkeyhoZWFkZXJzLmdldEFsbChrZXkpIHx8IFtdKS5qb2luKCcsJyl9YCksXG4gICAgICBdO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnJlcXVlc3QubWV0aG9kID09PSAnR0VUJyB8fCB0aGlzLnJlcXVlc3QubWV0aG9kID09PSAnREVMRVRFJykge1xuICAgICAgcmVzLnB1c2goTkVXTElORSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlcy5wdXNoKGAke05FV0xJTkV9JHtKU09OLnN0cmluZ2lmeSh0aGlzLnJlcXVlc3QuYm9keSl9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcy5qb2luKE5FV0xJTkUpO1xuICB9XG5cbiAgdG9Kc29uKCkge1xuICAgIC8vVE9ETzogUmVsYXRpdmUgb3IgQWJzb2x1dGUgdXJsID9cbiAgICBsZXQgcmVzOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSA9IHtcbiAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgbWV0aG9kOiB0aGlzLnJlcXVlc3QubWV0aG9kLFxuICAgICAgdXJsOiB0aGlzLnJlcXVlc3QucGF0aFdpdGhQYXJhbXMsXG4gICAgICAvLydhdG9taWNpdHlHcm91cCc6IHRoaXMuZ3JvdXBcbiAgICAgIC8vXCJkZXBlbmRzT25cIjogW1wiZzFcIiwgXCJnMlwiLCBcInIyXCJdXG4gICAgfTtcbiAgICBpZiAodGhpcy5yZXF1ZXN0LmhlYWRlcnMgaW5zdGFuY2VvZiBIdHRwSGVhZGVycykge1xuICAgICAgbGV0IGhlYWRlcnMgPSB0aGlzLnJlcXVlc3QuaGVhZGVycztcbiAgICAgIHJlc1snaGVhZGVycyddID0gaGVhZGVyc1xuICAgICAgICAua2V5cygpXG4gICAgICAgIC5tYXAoKGtleSkgPT4gYCR7a2V5fTogJHsoaGVhZGVycy5nZXRBbGwoa2V5KSB8fCBbXSkuam9pbignLCcpfWApO1xuICAgIH1cbiAgICBpZiAoISh0aGlzLnJlcXVlc3QubWV0aG9kID09PSAnR0VUJyB8fCB0aGlzLnJlcXVlc3QubWV0aG9kID09PSAnREVMRVRFJykpIHtcbiAgICAgIHJlc1snYm9keSddID0gdGhpcy5yZXF1ZXN0LmJvZHk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIG9uTG9hZChyZXNwb25zZTogSHR0cFJlc3BvbnNlQmFzZSkge1xuICAgIGlmIChyZXNwb25zZS5vaykge1xuICAgICAgdGhpcy5uZXh0KHJlc3BvbnNlKTtcbiAgICAgIHRoaXMuY29tcGxldGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQW4gdW5zdWNjZXNzZnVsIHJlcXVlc3QgaXMgZGVsaXZlcmVkIG9uIHRoZSBlcnJvciBjaGFubmVsLlxuICAgICAgdGhpcy5lcnJvcihyZXNwb25zZSBhcyBIdHRwRXJyb3JSZXNwb25zZSk7XG4gICAgfVxuICB9XG5cbiAgb25FcnJvcihyZXNwb25zZTogSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICB0aGlzLmVycm9yKHJlc3BvbnNlKTtcbiAgfVxufVxuXG4vKipcbiAqIE9EYXRhIEJhdGNoIFJlc291cmNlXG4gKiBodHRwczovL3d3dy5vZGF0YS5vcmcvZ2V0dGluZy1zdGFydGVkL2FkdmFuY2VkLXR1dG9yaWFsLyNiYXRjaFxuICovXG5leHBvcnQgY2xhc3MgT0RhdGFCYXRjaFJlc291cmNlIGV4dGVuZHMgT0RhdGFSZXNvdXJjZTxhbnk+IHtcbiAgLy8gVkFSSUFCTEVTXG4gIHByaXZhdGUgX3JlcXVlc3RzOiBPRGF0YUJhdGNoUmVxdWVzdDxhbnk+W10gPSBbXTtcbiAgcmVxdWVzdHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlcXVlc3RzLm1hcCgocikgPT4gci5yZXF1ZXN0KTtcbiAgfVxuXG4gIHByaXZhdGUgX3Jlc3BvbnNlczogSHR0cFJlc3BvbnNlQmFzZVtdIHwgbnVsbCA9IG51bGw7XG4gIHJlc3BvbnNlcygpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVzcG9uc2VzO1xuICB9XG5cbiAgLy8jcmVnaW9uIEZhY3RvcnlcbiAgc3RhdGljIGZhY3RvcnkoYXBpOiBPRGF0YUFwaSkge1xuICAgIGxldCBzZWdtZW50cyA9IG5ldyBPRGF0YVBhdGhTZWdtZW50cygpO1xuICAgIHNlZ21lbnRzLmFkZChQYXRoU2VnbWVudC5iYXRjaCwgJEJBVENIKTtcbiAgICByZXR1cm4gbmV3IE9EYXRhQmF0Y2hSZXNvdXJjZShhcGksIHsgc2VnbWVudHMgfSk7XG4gIH1cblxuICBvdmVycmlkZSBjbG9uZSgpOiBPRGF0YUJhdGNoUmVzb3VyY2Uge1xuICAgIGNvbnN0IGJhdGNoID0gc3VwZXIuY2xvbmUoKSBhcyBPRGF0YUJhdGNoUmVzb3VyY2U7XG4gICAgYmF0Y2guX3JlcXVlc3RzID0gWy4uLnRoaXMuX3JlcXVlc3RzXTtcbiAgICByZXR1cm4gYmF0Y2g7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgcHJpdmF0ZSBzdG9yZVJlcXVlc3RlcigpIHtcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5hcGkucmVxdWVzdGVyO1xuICAgIC8vIFN3aXRjaCB0byB0aGUgYmF0Y2ggcmVxdWVzdGVyXG4gICAgdGhpcy5hcGkucmVxdWVzdGVyID0gKHJlcTogT0RhdGFSZXF1ZXN0PGFueT4pOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xuICAgICAgaWYgKHJlcS5hcGkgIT09IHRoaXMuYXBpKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0JhdGNoIFJlcXVlc3QgYXJlIGZvciB0aGUgc2FtZSBhcGkuJyk7XG4gICAgICBpZiAocmVxLm9ic2VydmUgPT09ICdldmVudHMnKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJCYXRjaCBSZXF1ZXN0IGRvZXMgbm90IGFsbG93cyBvYnNlcnZlID09ICdldmVudHMnLlwiKTtcbiAgICAgIHRoaXMuX3JlcXVlc3RzLnB1c2gobmV3IE9EYXRhQmF0Y2hSZXF1ZXN0PGFueT4ocmVxKSk7XG4gICAgICByZXR1cm4gdGhpcy5fcmVxdWVzdHNbdGhpcy5fcmVxdWVzdHMubGVuZ3RoIC0gMV07XG4gICAgfTtcbiAgICByZXR1cm4gY3VycmVudDtcbiAgfVxuXG4gIHByaXZhdGUgcmVzdG9yZVJlcXVlc3RlcihcbiAgICBoYW5kbGVyOiAoKHJlcTogT0RhdGFSZXF1ZXN0PGFueT4pID0+IE9ic2VydmFibGU8YW55PikgfCB1bmRlZmluZWRcbiAgKSB7XG4gICAgdGhpcy5hcGkucmVxdWVzdGVyID0gaGFuZGxlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgdG8gYmF0Y2ggcmVxdWVzdFxuICAgKiBAcGFyYW0gY3R4IFRoZSBjb250ZXh0IGZvciB0aGUgcmVxdWVzdFxuICAgKiBAcmV0dXJucyBUaGUgcmVzdWx0IG9mIGV4ZWN1dGUgdGhlIGNvbnRleHRcbiAgICovXG4gIGFkZDxSPihjdHg6IChiYXRjaDogdGhpcykgPT4gUik6IFIge1xuICAgIC8vIFN0b3JlIG9yaWdpbmFsIHJlcXVlc3RlclxuICAgIHZhciBoYW5kbGVyID0gdGhpcy5zdG9yZVJlcXVlc3RlcigpO1xuICAgIC8vIEV4ZWN1dGUgdGhlIGNvbnRleHRcbiAgICBjb25zdCByZXN1bHQgPSBjdHgodGhpcyk7XG4gICAgLy8gUmVzdG9yZSBvcmlnaW5hbCByZXF1ZXN0ZXJcbiAgICB0aGlzLnJlc3RvcmVSZXF1ZXN0ZXIoaGFuZGxlcik7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgc2VuZChvcHRpb25zPzogT0RhdGFPcHRpb25zKTogT2JzZXJ2YWJsZTxPRGF0YVJlc3BvbnNlPGFueT4+IHtcbiAgICBpZiAodGhpcy5hcGkub3B0aW9ucy5qc29uQmF0Y2hGb3JtYXQpIHtcbiAgICAgIHJldHVybiB0aGlzLnNlbmRKc29uKG9wdGlvbnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5zZW5kTGVnYWN5KG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2VuZEpzb24ob3B0aW9ucz86IE9EYXRhT3B0aW9ucyk6IE9ic2VydmFibGU8T0RhdGFSZXNwb25zZTxPYmplY3Q+PiB7XG4gICAgY29uc3QgaGVhZGVycyA9IEh0dHAubWVyZ2VIdHRwSGVhZGVycygob3B0aW9ucyAmJiBvcHRpb25zLmhlYWRlcnMpIHx8IHt9LCB7XG4gICAgICBbT0RBVEFfVkVSU0lPTl06IFZFUlNJT05fNF8wLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmFwaVxuICAgICAgLnJlcXVlc3Q8b2JqZWN0PignUE9TVCcsIHRoaXMsIHtcbiAgICAgICAgYm9keTogT0RhdGFCYXRjaFJlc291cmNlLmJ1aWxkSnNvbkJvZHkodGhpcy5fcmVxdWVzdHMpLFxuICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICAgICAgb2JzZXJ2ZTogJ3Jlc3BvbnNlJyxcbiAgICAgICAgaGVhZGVyczogaGVhZGVycyxcbiAgICAgICAgcGFyYW1zOiBvcHRpb25zID8gb3B0aW9ucy5wYXJhbXMgOiB1bmRlZmluZWQsXG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogb3B0aW9ucyA/IG9wdGlvbnMud2l0aENyZWRlbnRpYWxzIDogdW5kZWZpbmVkLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBPRGF0YVJlc3BvbnNlPE9iamVjdD4pID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5fcmVzcG9uc2VzID09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuX3Jlc3BvbnNlcyA9IFtdO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLl9yZXNwb25zZXMgPSBbXG4gICAgICAgICAgICAuLi50aGlzLl9yZXNwb25zZXMsXG4gICAgICAgICAgICAuLi5PRGF0YUJhdGNoUmVzb3VyY2UucGFyc2VKc29uUmVzcG9uc2UodGhpcy5fcmVxdWVzdHMsIHJlc3BvbnNlKSxcbiAgICAgICAgICBdO1xuICAgICAgICAgIEFycmF5cy56aXAodGhpcy5fcmVxdWVzdHMsIHRoaXMuX3Jlc3BvbnNlcykuZm9yRWFjaCgodHVwbGUpID0+IHtcbiAgICAgICAgICAgIGlmICghdHVwbGVbMF0uaXNTdG9wcGVkKSB0dXBsZVswXS5vbkxvYWQodHVwbGVbMV0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIHNlbmRMZWdhY3koXG4gICAgb3B0aW9ucz86IE9EYXRhT3B0aW9uc1xuICApOiBPYnNlcnZhYmxlPE9EYXRhUmVzcG9uc2U8c3RyaW5nPj4ge1xuICAgIGNvbnN0IGJvdW5kID0gU3RyaW5ncy51bmlxdWVJZCh7IHByZWZpeDogQkFUQ0hfUFJFRklYIH0pO1xuICAgIGNvbnN0IGhlYWRlcnMgPSBIdHRwLm1lcmdlSHR0cEhlYWRlcnMoKG9wdGlvbnMgJiYgb3B0aW9ucy5oZWFkZXJzKSB8fCB7fSwge1xuICAgICAgW09EQVRBX1ZFUlNJT05dOiBWRVJTSU9OXzRfMCxcbiAgICAgIFtDT05URU5UX1RZUEVdOiBNVUxUSVBBUlRfTUlYRURfQk9VTkRBUlkgKyBib3VuZCxcbiAgICAgIFtBQ0NFUFRdOiBNVUxUSVBBUlRfTUlYRUQsXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuYXBpXG4gICAgICAucmVxdWVzdDxPRGF0YVJlc3BvbnNlPHN0cmluZz4+KCdQT1NUJywgdGhpcywge1xuICAgICAgICBib2R5OiBPRGF0YUJhdGNoUmVzb3VyY2UuYnVpbGRMZWdhY3lCb2R5KGJvdW5kLCB0aGlzLl9yZXF1ZXN0cyksXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnLFxuICAgICAgICBvYnNlcnZlOiAncmVzcG9uc2UnLFxuICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgICAgICBwYXJhbXM6IG9wdGlvbnMgPyBvcHRpb25zLnBhcmFtcyA6IHVuZGVmaW5lZCxcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiBvcHRpb25zID8gb3B0aW9ucy53aXRoQ3JlZGVudGlhbHMgOiB1bmRlZmluZWQsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IE9EYXRhUmVzcG9uc2U8c3RyaW5nPikgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLl9yZXNwb25zZXMgPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5fcmVzcG9uc2VzID0gW107XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX3Jlc3BvbnNlcyA9IFtcbiAgICAgICAgICAgIC4uLnRoaXMuX3Jlc3BvbnNlcyxcbiAgICAgICAgICAgIC4uLk9EYXRhQmF0Y2hSZXNvdXJjZS5wYXJzZUxlZ2FjeVJlc3BvbnNlKHRoaXMuX3JlcXVlc3RzLCByZXNwb25zZSksXG4gICAgICAgICAgXTtcbiAgICAgICAgICBBcnJheXMuemlwKHRoaXMuX3JlcXVlc3RzLCB0aGlzLl9yZXNwb25zZXMpLmZvckVhY2goKHR1cGxlKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXR1cGxlWzBdLmlzU3RvcHBlZCkgdHVwbGVbMF0ub25Mb2FkKHR1cGxlWzFdKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgdGhlIGJhdGNoIHJlcXVlc3RcbiAgICogQHBhcmFtIGN0eCBUaGUgY29udGV4dCBmb3IgdGhlIHJlcXVlc3RcbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbnMgb2YgdGhlIGJhdGNoIHJlcXVlc3RcbiAgICogQHJldHVybnMgVGhlIHJlc3VsdCBvZiBleGVjdXRlIHRoZSBjb250ZXh0XG4gICAqL1xuICBleGVjPFI+KFxuICAgIGN0eDogKGJhdGNoOiB0aGlzKSA9PiBSLFxuICAgIG9wdGlvbnM/OiBPRGF0YU9wdGlvbnNcbiAgKTogT2JzZXJ2YWJsZTxbUiwgT0RhdGFSZXNwb25zZTxzdHJpbmc+XT4ge1xuICAgIGxldCByZXN1bHQgPSB0aGlzLmFkZChjdHgpO1xuICAgIHJldHVybiB0aGlzLnNlbmQob3B0aW9ucykucGlwZShtYXAoKHJlc3BvbnNlKSA9PiBbcmVzdWx0LCByZXNwb25zZV0pKTtcbiAgfVxuXG4gIGJvZHkoKSB7XG4gICAgcmV0dXJuIE9EYXRhQmF0Y2hSZXNvdXJjZS5idWlsZExlZ2FjeUJvZHkoXG4gICAgICBTdHJpbmdzLnVuaXF1ZUlkKHsgcHJlZml4OiBCQVRDSF9QUkVGSVggfSksXG4gICAgICB0aGlzLl9yZXF1ZXN0c1xuICAgICk7XG4gIH1cblxuICBqc29uKCkge1xuICAgIHJldHVybiBPRGF0YUJhdGNoUmVzb3VyY2UuYnVpbGRKc29uQm9keSh0aGlzLl9yZXF1ZXN0cyk7XG4gIH1cblxuICBzdGF0aWMgYnVpbGRMZWdhY3lCb2R5KFxuICAgIGJhdGNoQm91bmRhcnk6IHN0cmluZyxcbiAgICByZXF1ZXN0czogT0RhdGFCYXRjaFJlcXVlc3Q8YW55PltdXG4gICk6IHN0cmluZyB7XG4gICAgbGV0IHJlcyA9IFtdO1xuICAgIGxldCBjaGFuZ2VzZXRCb3VuZGFyeTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IGNoYW5nZXNldElkID0gMTtcblxuICAgIGZvciAoY29uc3QgcmVxdWVzdCBvZiByZXF1ZXN0cykge1xuICAgICAgLy8gaWYgbWV0aG9kIGlzIEdFVCBhbmQgdGhlcmUgaXMgYSBjaGFuZ2VzZXQgYm91bmRhcnkgb3BlbiB0aGVuIGNsb3NlIGl0XG4gICAgICBpZiAocmVxdWVzdC5yZXF1ZXN0Lm1ldGhvZCA9PT0gJ0dFVCcgJiYgY2hhbmdlc2V0Qm91bmRhcnkgIT09IG51bGwpIHtcbiAgICAgICAgcmVzLnB1c2goXG4gICAgICAgICAgYCR7Qk9VTkRBUllfUFJFRklYX1NVRkZJWH0ke2NoYW5nZXNldEJvdW5kYXJ5fSR7Qk9VTkRBUllfUFJFRklYX1NVRkZJWH1gXG4gICAgICAgICk7XG4gICAgICAgIGNoYW5nZXNldEJvdW5kYXJ5ID0gbnVsbDtcbiAgICAgIH1cblxuICAgICAgLy8gaWYgdGhlcmUgaXMgbm8gY2hhbmdlc2V0IGJvdW5kYXJ5IG9wZW4gdGhlbiBvcGVuIGEgYmF0Y2ggYm91bmRhcnlcbiAgICAgIGlmIChjaGFuZ2VzZXRCb3VuZGFyeSA9PT0gbnVsbCkge1xuICAgICAgICByZXMucHVzaChgJHtCT1VOREFSWV9QUkVGSVhfU1VGRklYfSR7YmF0Y2hCb3VuZGFyeX1gKTtcbiAgICAgIH1cblxuICAgICAgLy8gaWYgbWV0aG9kIGlzIG5vdCBHRVQgYW5kIHRoZXJlIGlzIG5vIGNoYW5nZXNldCBib3VuZGFyeSBvcGVuIHRoZW4gb3BlbiBhIGNoYW5nZXNldCBib3VuZGFyeVxuICAgICAgaWYgKHJlcXVlc3QucmVxdWVzdC5tZXRob2QgIT09ICdHRVQnKSB7XG4gICAgICAgIGlmIChjaGFuZ2VzZXRCb3VuZGFyeSA9PT0gbnVsbCkge1xuICAgICAgICAgIGNoYW5nZXNldEJvdW5kYXJ5ID0gU3RyaW5ncy51bmlxdWVJZCh7IHByZWZpeDogQ0hBTkdFU0VUX1BSRUZJWCB9KTtcbiAgICAgICAgICByZXMucHVzaChcbiAgICAgICAgICAgIGAke0NPTlRFTlRfVFlQRX06ICR7TVVMVElQQVJUX01JWEVEX0JPVU5EQVJZfSR7Y2hhbmdlc2V0Qm91bmRhcnl9YFxuICAgICAgICAgICk7XG4gICAgICAgICAgcmVzLnB1c2goTkVXTElORSk7XG4gICAgICAgIH1cbiAgICAgICAgcmVzLnB1c2goYCR7Qk9VTkRBUllfUFJFRklYX1NVRkZJWH0ke2NoYW5nZXNldEJvdW5kYXJ5fWApO1xuICAgICAgfVxuXG4gICAgICByZXMucHVzaChgJHtDT05URU5UX1RZUEV9OiAke0FQUExJQ0FUSU9OX0hUVFB9YCk7XG4gICAgICByZXMucHVzaChgJHtDT05URU5UX1RSQU5TRkVSX0VOQ09ESU5HfTogJHtCSU5BUll9YCk7XG5cbiAgICAgIGlmIChyZXF1ZXN0LnJlcXVlc3QubWV0aG9kICE9PSAnR0VUJykge1xuICAgICAgICByZXMucHVzaChgJHtDT05URU5UX0lEfTogJHtjaGFuZ2VzZXRJZCsrfWApO1xuICAgICAgfVxuXG4gICAgICByZXMucHVzaChORVdMSU5FKTtcbiAgICAgIHJlcy5wdXNoKGAke3JlcXVlc3QudG9MZWdhY3koKX1gKTtcbiAgICB9XG5cbiAgICBpZiAocmVzLmxlbmd0aCkge1xuICAgICAgaWYgKGNoYW5nZXNldEJvdW5kYXJ5ICE9PSBudWxsKSB7XG4gICAgICAgIHJlcy5wdXNoKFxuICAgICAgICAgIGAke0JPVU5EQVJZX1BSRUZJWF9TVUZGSVh9JHtjaGFuZ2VzZXRCb3VuZGFyeX0ke0JPVU5EQVJZX1BSRUZJWF9TVUZGSVh9YFxuICAgICAgICApO1xuICAgICAgICBjaGFuZ2VzZXRCb3VuZGFyeSA9IG51bGw7XG4gICAgICB9XG4gICAgICByZXMucHVzaChcbiAgICAgICAgYCR7Qk9VTkRBUllfUFJFRklYX1NVRkZJWH0ke2JhdGNoQm91bmRhcnl9JHtCT1VOREFSWV9QUkVGSVhfU1VGRklYfWBcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiByZXMuam9pbihORVdMSU5FKTtcbiAgfVxuXG4gIHN0YXRpYyBidWlsZEpzb25Cb2R5KHJlcXVlc3RzOiBPRGF0YUJhdGNoUmVxdWVzdDxhbnk+W10pOiBPYmplY3Qge1xuICAgIHJldHVybiB7XG4gICAgICByZXF1ZXN0czogcmVxdWVzdHMubWFwKChyZXF1ZXN0KSA9PiByZXF1ZXN0LnRvSnNvbigpKSxcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIHBhcnNlTGVnYWN5UmVzcG9uc2UoXG4gICAgcmVxdWVzdHM6IE9EYXRhQmF0Y2hSZXF1ZXN0PGFueT5bXSxcbiAgICByZXNwb25zZTogT0RhdGFSZXNwb25zZTxzdHJpbmc+XG4gICk6IEh0dHBSZXNwb25zZUJhc2VbXSB7XG4gICAgbGV0IGNodW5rczogc3RyaW5nW11bXSA9IFtdO1xuICAgIGNvbnN0IGNvbnRlbnRUeXBlOiBzdHJpbmcgPSByZXNwb25zZS5oZWFkZXJzLmdldChDT05URU5UX1RZUEUpIHx8ICcnO1xuICAgIGNvbnN0IGJhdGNoQm91bmRhcnk6IHN0cmluZyA9IEh0dHAuYm91bmRhcnlEZWxpbWl0ZXIoY29udGVudFR5cGUpO1xuICAgIGNvbnN0IGVuZExpbmU6IHN0cmluZyA9IEh0dHAuYm91bmRhcnlFbmQoYmF0Y2hCb3VuZGFyeSk7XG5cbiAgICBjb25zdCBsaW5lczogc3RyaW5nW10gPSAocmVzcG9uc2UuYm9keSB8fCAnJykuc3BsaXQoTkVXTElORV9SRUdFWFApO1xuXG4gICAgbGV0IGNoYW5nZXNldFJlc3BvbnNlczogc3RyaW5nW11bXSB8IG51bGwgPSBudWxsO1xuICAgIGxldCBjb250ZW50SWQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICAgIGxldCBjaGFuZ2VzZXRCb3VuZGFyeTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IGNoYW5nZXNldEVuZExpbmU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIGxldCBzdGFydEluZGV4OiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbGluZXMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBjb25zdCBsaW5lID0gbGluZXNbaW5kZXhdO1xuXG4gICAgICBpZiAobGluZS5zdGFydHNXaXRoKENPTlRFTlRfVFlQRSkpIHtcbiAgICAgICAgY29uc3QgY29udGVudFR5cGVWYWx1ZTogc3RyaW5nID0gSHR0cC5oZWFkZXJWYWx1ZShsaW5lKTtcbiAgICAgICAgaWYgKGNvbnRlbnRUeXBlVmFsdWUgPT09IE1VTFRJUEFSVF9NSVhFRCkge1xuICAgICAgICAgIGNoYW5nZXNldFJlc3BvbnNlcyA9IFtdO1xuICAgICAgICAgIGNvbnRlbnRJZCA9IG51bGw7XG4gICAgICAgICAgY2hhbmdlc2V0Qm91bmRhcnkgPSBIdHRwLmJvdW5kYXJ5RGVsaW1pdGVyKGxpbmUpO1xuICAgICAgICAgIGNoYW5nZXNldEVuZExpbmUgPSBIdHRwLmJvdW5kYXJ5RW5kKGNoYW5nZXNldEJvdW5kYXJ5KTtcbiAgICAgICAgICBzdGFydEluZGV4ID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH0gZWxzZSBpZiAoY2hhbmdlc2V0UmVzcG9uc2VzICE9PSBudWxsICYmIGxpbmUuc3RhcnRzV2l0aChDT05URU5UX0lEKSkge1xuICAgICAgICBjb250ZW50SWQgPSBOdW1iZXIoSHR0cC5oZWFkZXJWYWx1ZShsaW5lKSk7XG4gICAgICB9IGVsc2UgaWYgKGxpbmUuc3RhcnRzV2l0aChIVFRQMTEpKSB7XG4gICAgICAgIHN0YXJ0SW5kZXggPSBpbmRleDtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIGxpbmUgPT09IGJhdGNoQm91bmRhcnkgfHxcbiAgICAgICAgbGluZSA9PT0gY2hhbmdlc2V0Qm91bmRhcnkgfHxcbiAgICAgICAgbGluZSA9PT0gZW5kTGluZSB8fFxuICAgICAgICBsaW5lID09PSBjaGFuZ2VzZXRFbmRMaW5lXG4gICAgICApIHtcbiAgICAgICAgaWYgKCFzdGFydEluZGV4KSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2h1bmsgPSBsaW5lcy5zbGljZShzdGFydEluZGV4LCBpbmRleCk7XG4gICAgICAgIGlmIChjaGFuZ2VzZXRSZXNwb25zZXMgIT09IG51bGwgJiYgY29udGVudElkICE9PSBudWxsKSB7XG4gICAgICAgICAgY2hhbmdlc2V0UmVzcG9uc2VzW2NvbnRlbnRJZF0gPSBjaHVuaztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjaHVua3MucHVzaChjaHVuayk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGluZSA9PT0gYmF0Y2hCb3VuZGFyeSB8fCBsaW5lID09PSBjaGFuZ2VzZXRCb3VuZGFyeSkge1xuICAgICAgICAgIHN0YXJ0SW5kZXggPSBpbmRleCArIDE7XG4gICAgICAgIH0gZWxzZSBpZiAobGluZSA9PT0gZW5kTGluZSB8fCBsaW5lID09PSBjaGFuZ2VzZXRFbmRMaW5lKSB7XG4gICAgICAgICAgaWYgKGNoYW5nZXNldFJlc3BvbnNlcyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCByZXNwb25zZSBvZiBjaGFuZ2VzZXRSZXNwb25zZXMpIHtcbiAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgY2h1bmtzLnB1c2gocmVzcG9uc2UpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGNoYW5nZXNldFJlc3BvbnNlcyA9IG51bGw7XG4gICAgICAgICAgY2hhbmdlc2V0Qm91bmRhcnkgPSBudWxsO1xuICAgICAgICAgIGNoYW5nZXNldEVuZExpbmUgPSBudWxsO1xuICAgICAgICAgIHN0YXJ0SW5kZXggPSBudWxsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjaHVua3MubWFwKChjaHVuazogc3RyaW5nW10sIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIGxldCByZXF1ZXN0ID0gcmVxdWVzdHNbaW5kZXhdLnJlcXVlc3Q7XG4gICAgICBsZXQgeyBjb2RlLCBtZXNzYWdlIH0gPSBIdHRwLnBhcnNlUmVzcG9uc2VTdGF0dXMoY2h1bmtbMF0pO1xuICAgICAgY2h1bmsgPSBjaHVuay5zbGljZSgxKTtcblxuICAgICAgbGV0IGhlYWRlcnM6IEh0dHBIZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XG4gICAgICB2YXIgaW5kZXggPSAxO1xuICAgICAgZm9yICg7IGluZGV4IDwgY2h1bmsubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgIGNvbnN0IGJhdGNoQm9keUxpbmU6IHN0cmluZyA9IGNodW5rW2luZGV4XTtcblxuICAgICAgICBpZiAoYmF0Y2hCb2R5TGluZSA9PT0gJycpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGJhdGNoQm9keUxpbmVQYXJ0czogc3RyaW5nW10gPSBiYXRjaEJvZHlMaW5lLnNwbGl0KCc6ICcpO1xuICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5hcHBlbmQoXG4gICAgICAgICAgYmF0Y2hCb2R5TGluZVBhcnRzWzBdLnRyaW0oKSxcbiAgICAgICAgICBiYXRjaEJvZHlMaW5lUGFydHNbMV0udHJpbSgpXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGxldCBib2R5OiBzdHJpbmcgfCB7IGVycm9yOiBhbnk7IHRleHQ6IHN0cmluZyB9ID0gJyc7XG4gICAgICBmb3IgKDsgaW5kZXggPCBjaHVuay5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgYm9keSArPSBjaHVua1tpbmRleF07XG4gICAgICB9XG5cbiAgICAgIGlmIChjb2RlID09PSAwKSB7XG4gICAgICAgIGNvZGUgPSAhIWJvZHkgPyAyMDAgOiAwO1xuICAgICAgfVxuXG4gICAgICBsZXQgb2sgPSBjb2RlID49IDIwMCAmJiBjb2RlIDwgMzAwO1xuICAgICAgaWYgKHJlcXVlc3QucmVzcG9uc2VUeXBlID09PSAnanNvbicgJiYgdHlwZW9mIGJvZHkgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsQm9keSA9IGJvZHk7XG4gICAgICAgIGJvZHkgPSBib2R5LnJlcGxhY2UoWFNTSV9QUkVGSVgsICcnKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBib2R5ID0gYm9keSAhPT0gJycgPyBKU09OLnBhcnNlKGJvZHkpIDogbnVsbDtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBib2R5ID0gb3JpZ2luYWxCb2R5O1xuXG4gICAgICAgICAgaWYgKG9rKSB7XG4gICAgICAgICAgICBvayA9IGZhbHNlO1xuICAgICAgICAgICAgYm9keSA9IHsgZXJyb3IsIHRleHQ6IGJvZHkgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG9rXG4gICAgICAgID8gbmV3IEh0dHBSZXNwb25zZTxhbnk+KHtcbiAgICAgICAgICAgIGJvZHksXG4gICAgICAgICAgICBoZWFkZXJzLFxuICAgICAgICAgICAgc3RhdHVzOiBjb2RlLFxuICAgICAgICAgICAgc3RhdHVzVGV4dDogbWVzc2FnZSxcbiAgICAgICAgICAgIHVybDogcmVxdWVzdC51cmxXaXRoUGFyYW1zLFxuICAgICAgICAgIH0pXG4gICAgICAgIDogbmV3IEh0dHBFcnJvclJlc3BvbnNlKHtcbiAgICAgICAgICAgIC8vIFRoZSBlcnJvciBpbiB0aGlzIGNhc2UgaXMgdGhlIHJlc3BvbnNlIGJvZHkgKGVycm9yIGZyb20gdGhlIHNlcnZlcikuXG4gICAgICAgICAgICBlcnJvcjogYm9keSxcbiAgICAgICAgICAgIGhlYWRlcnMsXG4gICAgICAgICAgICBzdGF0dXM6IGNvZGUsXG4gICAgICAgICAgICBzdGF0dXNUZXh0OiBtZXNzYWdlLFxuICAgICAgICAgICAgdXJsOiByZXF1ZXN0LnVybFdpdGhQYXJhbXMsXG4gICAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgcGFyc2VKc29uUmVzcG9uc2UoXG4gICAgcmVxdWVzdHM6IE9EYXRhQmF0Y2hSZXF1ZXN0PGFueT5bXSxcbiAgICByZXNwb25zZTogT0RhdGFSZXNwb25zZTxhbnk+XG4gICk6IEh0dHBSZXNwb25zZUJhc2VbXSB7XG4gICAgY29uc3QgcmVzcG9uc2VzOiBPYmplY3RbXSA9XG4gICAgICAocmVzcG9uc2UuYm9keSA/IHJlc3BvbnNlLmJvZHkgOiB7fSlbJ3Jlc3BvbnNlcyddID8/IFtdO1xuXG4gICAgcmV0dXJuIHJlc3BvbnNlcy5tYXAoKHJlc3BvbnNlOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIGxldCByZXF1ZXN0ID0gcmVxdWVzdHNbaW5kZXhdLnJlcXVlc3Q7XG4gICAgICBsZXQgY29kZSA9IHJlc3BvbnNlWydzdGF0dXMnXTtcblxuICAgICAgbGV0IGhlYWRlcnM6IEh0dHBIZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHJlc3BvbnNlWydoZWFkZXJzJ10pO1xuICAgICAgbGV0IGJvZHk6IHN0cmluZyB8IHsgZXJyb3I6IGFueTsgdGV4dDogc3RyaW5nIH0gPSByZXNwb25zZVsnYm9keSddO1xuICAgICAgaWYgKGNvZGUgPT09IDApIHtcbiAgICAgICAgY29kZSA9ICEhYm9keSA/IDIwMCA6IDA7XG4gICAgICB9XG5cbiAgICAgIGxldCBvayA9IGNvZGUgPj0gMjAwICYmIGNvZGUgPCAzMDA7XG4gICAgICBpZiAocmVxdWVzdC5yZXNwb25zZVR5cGUgPT09ICdqc29uJyAmJiB0eXBlb2YgYm9keSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxCb2R5ID0gYm9keTtcbiAgICAgICAgYm9keSA9IGJvZHkucmVwbGFjZShYU1NJX1BSRUZJWCwgJycpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGJvZHkgPSBib2R5ICE9PSAnJyA/IEpTT04ucGFyc2UoYm9keSkgOiBudWxsO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGJvZHkgPSBvcmlnaW5hbEJvZHk7XG5cbiAgICAgICAgICBpZiAob2spIHtcbiAgICAgICAgICAgIG9rID0gZmFsc2U7XG4gICAgICAgICAgICBib2R5ID0geyBlcnJvciwgdGV4dDogYm9keSB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gb2tcbiAgICAgICAgPyBuZXcgSHR0cFJlc3BvbnNlPGFueT4oe1xuICAgICAgICAgICAgYm9keSxcbiAgICAgICAgICAgIGhlYWRlcnMsXG4gICAgICAgICAgICBzdGF0dXM6IGNvZGUsXG4gICAgICAgICAgICB1cmw6IHJlcXVlc3QudXJsV2l0aFBhcmFtcyxcbiAgICAgICAgICB9KVxuICAgICAgICA6IG5ldyBIdHRwRXJyb3JSZXNwb25zZSh7XG4gICAgICAgICAgICAvLyBUaGUgZXJyb3IgaW4gdGhpcyBjYXNlIGlzIHRoZSByZXNwb25zZSBib2R5IChlcnJvciBmcm9tIHRoZSBzZXJ2ZXIpLlxuICAgICAgICAgICAgZXJyb3I6IGJvZHksXG4gICAgICAgICAgICBoZWFkZXJzLFxuICAgICAgICAgICAgc3RhdHVzOiBjb2RlLFxuICAgICAgICAgICAgdXJsOiByZXF1ZXN0LnVybFdpdGhQYXJhbXMsXG4gICAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
426
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmF0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvcmVzb3VyY2VzL3R5cGVzL2JhdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsV0FBVyxFQUNYLFlBQVksR0FFYixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFHTCxHQUFHLEVBR0gsT0FBTyxHQUVSLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixZQUFZLEVBQ1osTUFBTSxFQUNOLHNCQUFzQixFQUN0QixnQkFBZ0IsRUFDaEIsVUFBVSxFQUNWLHlCQUF5QixFQUN6QixZQUFZLEVBQ1osTUFBTSxFQUNOLGVBQWUsRUFDZix3QkFBd0IsRUFDeEIsT0FBTyxFQUNQLGNBQWMsRUFDZCxhQUFhLEVBQ2IsV0FBVyxFQUNYLFdBQVcsR0FDWixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRTVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJNUMsTUFBTSxPQUFPLGlCQUFxQixTQUFRLE9BQXlCO0lBR2pFLFlBQW1CLE9BQTBCO1FBQzNDLEtBQUssRUFBRSxDQUFDO1FBRFMsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFFM0MsSUFBSSxDQUFDLEVBQUUsR0FBRyxPQUFPLENB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RCxJQUFJLEVBQUUsR0FBRyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksR0FBRyxHQUFHLENBQUM7WUFDbkMsSUFBSSxPQUFPLENBQUMsWUFBWSxLQUFLLE1BQU0sSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7Z0JBQy9ELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQztnQkFDMUIsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNyQyxJQUFJO29CQUNGLElBQUksR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7aUJBQzlDO2dCQUFDLE9BQU8sS0FBSyxFQUFFO29CQUNkLElBQUksR0FBRyxZQUFZLENBQUM7b0JBRXBCLElBQUksRUFBRSxFQUFFO3dCQUNOLEVBQUUsR0FBRyxLQUFLLENBQUM7d0JBQ1gsSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztxQkFDOUI7aUJBQ0Y7YUFDRjtZQUVELE9BQU8sRUFBRTtnQkFDUCxDQUFDLENBQUMsSUFBSSxZQUFZLENBQU07b0JBQ3BCLElBQUk7b0JBQ0osT0FBTztvQkFDUCxNQUFNLEVBQUUsSUFBSTtvQkFDWixHQUFHLEVBQUUsT0FBTyxDQUFDLGFBQWE7aUJBQzNCLENBQUM7Z0JBQ0osQ0FBQyxDQUFDLElBQUksaUJBQWlCLENBQUM7b0JBQ3BCLHVFQUF1RTtvQkFDdkUsS0FBSyxFQUFFLElBQUk7b0JBQ1gsT0FBTztvQkFDUCxNQUFNLEVBQUUsSUFBSTtvQkFDWixHQUFHLEVBQUUsT0FBTyxDQUFDLGFBQWE7aUJBQzNCLENBQUMsQ0FBQztRQUNULENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSHR0cEVycm9yUmVzcG9uc2UsXG4gIEh0dHBIZWFkZXJzLFxuICBIdHRwUmVzcG9uc2UsXG4gIEh0dHBSZXNwb25zZUJhc2UsXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7XG4gIGNvbmNhdE1hcCxcbiAgZmlyc3RWYWx1ZUZyb20sXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIFN1YmplY3QsXG4gIHN3aXRjaE1hcCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPRGF0YUFwaSB9IGZyb20gJy4uLy4uL2FwaSc7XG5pbXBvcnQge1xuICAkQkFUQ0gsXG4gIEFDQ0VQVCxcbiAgQVBQTElDQVRJT05fSFRUUCxcbiAgQVBQTElDQVRJT05fSlNPTixcbiAgQkFUQ0hfUFJFRklYLFxuICBCSU5BUlksXG4gIEJPVU5EQVJZX1BSRUZJWF9TVUZGSVgsXG4gIENIQU5HRVNFVF9QUkVGSVgsXG4gIENPTlRFTlRfSUQsXG4gIENPTlRFTlRfVFJBTlNGRVJfRU5DT0RJTkcsXG4gIENPTlRFTlRfVFlQRSxcbiAgSFRUUDExLFxuICBNVUxUSVBBUlRfTUlYRUQsXG4gIE1VTFRJUEFSVF9NSVhFRF9CT1VOREFSWSxcbiAgTkVXTElORSxcbiAgTkVXTElORV9SRUdFWFAsXG4gIE9EQVRBX1ZFUlNJT04sXG4gIFZFUlNJT05fNF8wLFxuICBYU1NJX1BSRUZJWCxcbn0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFBhdGhTZWdtZW50IH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgQXJyYXlzIH0gZnJvbSAnLi4vLi4vdXRpbHMvYXJyYXlzJztcbmltcG9ydCB7IEh0dHAgfSBmcm9tICcuLi8uLi91dGlscy9odHRwJztcbmltcG9ydCB7IFN0cmluZ3MgfSBmcm9tICcuLi8uLi91dGlscy9zdHJpbmdzJztcbmltcG9ydCB7IE9EYXRhUGF0aFNlZ21lbnRzIH0gZnJvbSAnLi4vcGF0aCc7XG5pbXBvcnQgeyBPRGF0YVJlcXVlc3QgfSBmcm9tICcuLi9yZXF1ZXN0JztcbmltcG9ydCB7IE9EYXRhUmVzb3VyY2UgfSBmcm9tICcuLi9yZXNvdXJjZSc7XG5pbXBvcnQgeyBPRGF0YVJlc3BvbnNlIH0gZnJvbSAnLi4vcmVzcG9uc2VzJztcbmltcG9ydCB7IE9EYXRhT3B0aW9ucyB9IGZyb20gJy4vb3B0aW9ucyc7XG5cbmV4cG9ydCBjbGFzcyBPRGF0YUJhdGNoUmVxdWVzdDxUPiBleHRlbmRzIFN1YmplY3Q8SHR0cFJlc3BvbnNlQmFzZT4ge1xuICBpZDogc3RyaW5nO1xuICBncm91cDogc3RyaW5nO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVxdWVzdDogT0RhdGFSZXF1ZXN0PGFueT4pIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuaWQgPSBTdHJpbmdzLnVuaXF1ZUlkKHsgcHJlZml4OiAncicgfSk7XG4gICAgdGhpcy5ncm91cCA9IFN0cmluZ3MudW5pcXVlSWQoeyBwcmVmaXg6ICdnJyB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnRvTGVnYWN5KCk7XG4gIH1cblxuICB0b0xlZ2FjeSgpIHtcbiAgICAvL1RPRE86IFJlbGF0aXZlIG9yIEFic29sdXRlIHVybCA/XG4gICAgbGV0IHJlcyA9IFtcbiAgICAgIGAke3RoaXMucmVxdWVzdC5tZXRob2R9ICR7dGhpcy5yZXF1ZXN0LnBhdGhXaXRoUGFyYW1zfSAke0hUVFAxMX1gLFxuICAgIF07XG4gICAgaWYgKFxuICAgICAgdGhpcy5yZXF1ZXN0Lm1ldGhvZCA9PT0gJ1BPU1QnIHx8XG4gICAgICB0aGlzLnJlcXVlc3QubWV0aG9kID09PSAnUEFUQ0gnIHx8XG4gICAgICB0aGlzLnJlcXVlc3QubWV0aG9kID09PSAnUFVUJ1xuICAgICkge1xuICAgICAgcmVzLnB1c2goYCR7Q09OVEVOVF9UWVBFfTogJHtBUFBMSUNBVElPTl9KU09OfWApO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnJlcXVlc3QuaGVhZGVycyBpbnN0YW5jZW9mIEh0dHBIZWFkZXJzKSB7XG4gICAgICBsZXQgaGVhZGVycyA9IHRoaXMucmVxdWVzdC5oZWFkZXJzO1xuICAgICAgcmVzID0gW1xuICAgICAgICAuLi5yZXMsXG4gICAgICAgIC4uLmhlYWRlcnNcbiAgICAgICAgICAua2V5cygpXG4gICAgICAgICAgLm1hcCgoa2V5KSA9PiBgJHtrZXl9OiAkeyhoZWFkZXJzLmdldEFsbChrZXkpIHx8IFtdKS5qb2luKCcsJyl9YCksXG4gICAgICBdO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnJlcXVlc3QubWV0aG9kID09PSAnR0VUJyB8fCB0aGlzLnJlcXVlc3QubWV0aG9kID09PSAnREVMRVRFJykge1xuICAgICAgcmVzLnB1c2goTkVXTElORSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlcy5wdXNoKGAke05FV0xJTkV9JHtKU09OLnN0cmluZ2lmeSh0aGlzLnJlcXVlc3QuYm9keSl9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcy5qb2luKE5FV0xJTkUpO1xuICB9XG5cbiAgdG9Kc29uKCkge1xuICAgIC8vVE9ETzogUmVsYXRpdmUgb3IgQWJzb2x1dGUgdXJsID9cbiAgICBsZXQgcmVzOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSA9IHtcbiAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgbWV0aG9kOiB0aGlzLnJlcXVlc3QubWV0aG9kLFxuICAgICAgdXJsOiB0aGlzLnJlcXVlc3QucGF0aFdpdGhQYXJhbXMsXG4gICAgICAvLydhdG9taWNpdHlHcm91cCc6IHRoaXMuZ3JvdXBcbiAgICAgIC8vXCJkZXBlbmRzT25cIjogW1wiZzFcIiwgXCJnMlwiLCBcInIyXCJdXG4gICAgfTtcbiAgICBpZiAodGhpcy5yZXF1ZXN0LmhlYWRlcnMgaW5zdGFuY2VvZiBIdHRwSGVhZGVycykge1xuICAgICAgbGV0IGhlYWRlcnMgPSB0aGlzLnJlcXVlc3QuaGVhZGVycztcbiAgICAgIHJlc1snaGVhZGVycyddID0gaGVhZGVyc1xuICAgICAgICAua2V5cygpXG4gICAgICAgIC5tYXAoKGtleSkgPT4gYCR7a2V5fTogJHsoaGVhZGVycy5nZXRBbGwoa2V5KSB8fCBbXSkuam9pbignLCcpfWApO1xuICAgIH1cbiAgICBpZiAoISh0aGlzLnJlcXVlc3QubWV0aG9kID09PSAnR0VUJyB8fCB0aGlzLnJlcXVlc3QubWV0aG9kID09PSAnREVMRVRFJykpIHtcbiAgICAgIHJlc1snYm9keSddID0gdGhpcy5yZXF1ZXN0LmJvZHk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIG9uTG9hZChyZXNwb25zZTogSHR0cFJlc3BvbnNlQmFzZSkge1xuICAgIGlmIChyZXNwb25zZS5vaykge1xuICAgICAgdGhpcy5uZXh0KHJlc3BvbnNlKTtcbiAgICAgIHRoaXMuY29tcGxldGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQW4gdW5zdWNjZXNzZnVsIHJlcXVlc3QgaXMgZGVsaXZlcmVkIG9uIHRoZSBlcnJvciBjaGFubmVsLlxuICAgICAgdGhpcy5lcnJvcihyZXNwb25zZSBhcyBIdHRwRXJyb3JSZXNwb25zZSk7XG4gICAgfVxuICB9XG5cbiAgb25FcnJvcihyZXNwb25zZTogSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICB0aGlzLmVycm9yKHJlc3BvbnNlKTtcbiAgfVxufVxuXG4vKipcbiAqIE9EYXRhIEJhdGNoIFJlc291cmNlXG4gKiBodHRwczovL3d3dy5vZGF0YS5vcmcvZ2V0dGluZy1zdGFydGVkL2FkdmFuY2VkLXR1dG9yaWFsLyNiYXRjaFxuICovXG5leHBvcnQgY2xhc3MgT0RhdGFCYXRjaFJlc291cmNlIGV4dGVuZHMgT0RhdGFSZXNvdXJjZTxhbnk+IHtcbiAgLy8gVkFSSUFCTEVTXG4gIHByaXZhdGUgX3JlcXVlc3RzOiBPRGF0YUJhdGNoUmVxdWVzdDxhbnk+W10gPSBbXTtcbiAgcmVxdWVzdHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlcXVlc3RzLm1hcCgocikgPT4gci5yZXF1ZXN0KTtcbiAgfVxuXG4gIHByaXZhdGUgX3Jlc3BvbnNlczogSHR0cFJlc3BvbnNlQmFzZVtdIHwgbnVsbCA9IG51bGw7XG4gIHJlc3BvbnNlcygpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVzcG9uc2VzO1xuICB9XG5cbiAgLy8jcmVnaW9uIEZhY3RvcnlcbiAgc3RhdGljIGZhY3RvcnkoYXBpOiBPRGF0YUFwaSkge1xuICAgIGxldCBzZWdtZW50cyA9IG5ldyBPRGF0YVBhdGhTZWdtZW50cygpO1xuICAgIHNlZ21lbnRzLmFkZChQYXRoU2VnbWVudC5iYXRjaCwgJEJBVENIKTtcbiAgICByZXR1cm4gbmV3IE9EYXRhQmF0Y2hSZXNvdXJjZShhcGksIHsgc2VnbWVudHMgfSk7XG4gIH1cblxuICBvdmVycmlkZSBjbG9uZSgpOiBPRGF0YUJhdGNoUmVzb3VyY2Uge1xuICAgIGNvbnN0IGJhdGNoID0gc3VwZXIuY2xvbmUoKSBhcyBPRGF0YUJhdGNoUmVzb3VyY2U7XG4gICAgYmF0Y2guX3JlcXVlc3RzID0gWy4uLnRoaXMuX3JlcXVlc3RzXTtcbiAgICByZXR1cm4gYmF0Y2g7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgcHJpdmF0ZSBzdG9yZVJlcXVlc3RlcigpIHtcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5hcGkucmVxdWVzdGVyO1xuICAgIC8vIFN3aXRjaCB0byB0aGUgYmF0Y2ggcmVxdWVzdGVyXG4gICAgdGhpcy5hcGkucmVxdWVzdGVyID0gKHJlcTogT0RhdGFSZXF1ZXN0PGFueT4pOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xuICAgICAgaWYgKHJlcS5hcGkgIT09IHRoaXMuYXBpKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0JhdGNoIFJlcXVlc3QgYXJlIGZvciB0aGUgc2FtZSBhcGkuJyk7XG4gICAgICBpZiAocmVxLm9ic2VydmUgPT09ICdldmVudHMnKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJCYXRjaCBSZXF1ZXN0IGRvZXMgbm90IGFsbG93cyBvYnNlcnZlID09ICdldmVudHMnLlwiKTtcbiAgICAgIHRoaXMuX3JlcXVlc3RzLnB1c2gobmV3IE9EYXRhQmF0Y2hSZXF1ZXN0PGFueT4ocmVxKSk7XG4gICAgICByZXR1cm4gdGhpcy5fcmVxdWVzdHNbdGhpcy5fcmVxdWVzdHMubGVuZ3RoIC0gMV07XG4gICAgfTtcbiAgICByZXR1cm4gY3VycmVudDtcbiAgfVxuXG4gIHByaXZhdGUgcmVzdG9yZVJlcXVlc3RlcihcbiAgICBoYW5kbGVyOiAoKHJlcTogT0RhdGFSZXF1ZXN0PGFueT4pID0+IE9ic2VydmFibGU8YW55PikgfCB1bmRlZmluZWQsXG4gICkge1xuICAgIHRoaXMuYXBpLnJlcXVlc3RlciA9IGhhbmRsZXI7XG4gIH1cblxuICAvKipcbiAgICogQWRkIHRvIGJhdGNoIHJlcXVlc3RcbiAgICogQHBhcmFtIGN0eCBUaGUgY29udGV4dCBmb3IgdGhlIHJlcXVlc3RcbiAgICogQHJldHVybnMgVGhlIHJlc3VsdCBvZiBleGVjdXRlIHRoZSBjb250ZXh0XG4gICAqL1xuICBhZGQ8Uj4oY3R4OiAoYmF0Y2g6IHRoaXMpID0+IFIpOiBSIHtcbiAgICAvLyBTdG9yZSBvcmlnaW5hbCByZXF1ZXN0ZXJcbiAgICB2YXIgaGFuZGxlciA9IHRoaXMuc3RvcmVSZXF1ZXN0ZXIoKTtcbiAgICAvLyBFeGVjdXRlIHRoZSBjb250ZXh0XG4gICAgY29uc3QgcmVzdWx0ID0gY3R4KHRoaXMpO1xuICAgIC8vIFJlc3RvcmUgb3JpZ2luYWwgcmVxdWVzdGVyXG4gICAgdGhpcy5yZXN0b3JlUmVxdWVzdGVyKGhhbmRsZXIpO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHNlbmQob3B0aW9ucz86IE9EYXRhT3B0aW9ucyk6IE9ic2VydmFibGU8T0RhdGFSZXNwb25zZTxhbnk+PiB7XG4gICAgaWYgKHRoaXMuYXBpLm9wdGlvbnMuanNvbkJhdGNoRm9ybWF0KSB7XG4gICAgICByZXR1cm4gdGhpcy5zZW5kSnNvbihvcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuc2VuZExlZ2FjeShvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNlbmRKc29uKG9wdGlvbnM/OiBPRGF0YU9wdGlvbnMpOiBPYnNlcnZhYmxlPE9EYXRhUmVzcG9uc2U8T2JqZWN0Pj4ge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBIdHRwLm1lcmdlSHR0cEhlYWRlcnMoKG9wdGlvbnMgJiYgb3B0aW9ucy5oZWFkZXJzKSB8fCB7fSwge1xuICAgICAgW09EQVRBX1ZFUlNJT05dOiBWRVJTSU9OXzRfMCxcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5hcGlcbiAgICAgIC5yZXF1ZXN0PG9iamVjdD4oJ1BPU1QnLCB0aGlzLCB7XG4gICAgICAgIGJvZHk6IE9EYXRhQmF0Y2hSZXNvdXJjZS5idWlsZEpzb25Cb2R5KHRoaXMuX3JlcXVlc3RzKSxcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXG4gICAgICAgIG9ic2VydmU6ICdyZXNwb25zZScsXG4gICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICAgIHBhcmFtczogb3B0aW9ucyA/IG9wdGlvbnMucGFyYW1zIDogdW5kZWZpbmVkLFxuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IG9wdGlvbnMgPyBvcHRpb25zLndpdGhDcmVkZW50aWFscyA6IHVuZGVmaW5lZCxcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogT0RhdGFSZXNwb25zZTxPYmplY3Q+KSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuX3Jlc3BvbnNlcyA9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLl9yZXNwb25zZXMgPSBbXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fcmVzcG9uc2VzID0gW1xuICAgICAgICAgICAgLi4udGhpcy5fcmVzcG9uc2VzLFxuICAgICAgICAgICAgLi4uT0RhdGFCYXRjaFJlc291cmNlLnBhcnNlSnNvblJlc3BvbnNlKHRoaXMuX3JlcXVlc3RzLCByZXNwb25zZSksXG4gICAgICAgICAgXTtcbiAgICAgICAgICBBcnJheXMuemlwKHRoaXMuX3JlcXVlc3RzLCB0aGlzLl9yZXNwb25zZXMpLmZvckVhY2goKHR1cGxlKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXR1cGxlWzBdLmlzU3RvcHBlZCkgdHVwbGVbMF0ub25Mb2FkKHR1cGxlWzFdKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc2VuZExlZ2FjeShcbiAgICBvcHRpb25zPzogT0RhdGFPcHRpb25zLFxuICApOiBPYnNlcnZhYmxlPE9EYXRhUmVzcG9uc2U8c3RyaW5nPj4ge1xuICAgIGNvbnN0IGJvdW5kID0gU3RyaW5ncy51bmlxdWVJZCh7IHByZWZpeDogQkFUQ0hfUFJFRklYIH0pO1xuICAgIGNvbnN0IGhlYWRlcnMgPSBIdHRwLm1lcmdlSHR0cEhlYWRlcnMoKG9wdGlvbnMgJiYgb3B0aW9ucy5oZWFkZXJzKSB8fCB7fSwge1xuICAgICAgW09EQVRBX1ZFUlNJT05dOiBWRVJTSU9OXzRfMCxcbiAgICAgIFtDT05URU5UX1RZUEVdOiBNVUxUSVBBUlRfTUlYRURfQk9VTkRBUlkgKyBib3VuZCxcbiAgICAgIFtBQ0NFUFRdOiBNVUxUSVBBUlRfTUlYRUQsXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuYXBpXG4gICAgICAucmVxdWVzdDxPRGF0YVJlc3BvbnNlPHN0cmluZz4+KCdQT1NUJywgdGhpcywge1xuICAgICAgICBib2R5OiBPRGF0YUJhdGNoUmVzb3VyY2UuYnVpbGRMZWdhY3lCb2R5KGJvdW5kLCB0aGlzLl9yZXF1ZXN0cyksXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnLFxuICAgICAgICBvYnNlcnZlOiAncmVzcG9uc2UnLFxuICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgICAgICBwYXJhbXM6IG9wdGlvbnMgPyBvcHRpb25zLnBhcmFtcyA6IHVuZGVmaW5lZCxcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiBvcHRpb25zID8gb3B0aW9ucy53aXRoQ3JlZGVudGlhbHMgOiB1bmRlZmluZWQsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IE9EYXRhUmVzcG9uc2U8c3RyaW5nPikgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLl9yZXNwb25zZXMgPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5fcmVzcG9uc2VzID0gW107XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX3Jlc3BvbnNlcyA9IFtcbiAgICAgICAgICAgIC4uLnRoaXMuX3Jlc3BvbnNlcyxcbiAgICAgICAgICAgIC4uLk9EYXRhQmF0Y2hSZXNvdXJjZS5wYXJzZUxlZ2FjeVJlc3BvbnNlKHRoaXMuX3JlcXVlc3RzLCByZXNwb25zZSksXG4gICAgICAgICAgXTtcbiAgICAgICAgICBBcnJheXMuemlwKHRoaXMuX3JlcXVlc3RzLCB0aGlzLl9yZXNwb25zZXMpLmZvckVhY2goKHR1cGxlKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXR1cGxlWzBdLmlzU3RvcHBlZCkgdHVwbGVbMF0ub25Mb2FkKHR1cGxlWzFdKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIHRoZSBiYXRjaCByZXF1ZXN0XG4gICAqIEBwYXJhbSBjdHggVGhlIGNvbnRleHQgZm9yIHRoZSByZXF1ZXN0XG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25zIG9mIHRoZSBiYXRjaCByZXF1ZXN0XG4gICAqIEByZXR1cm5zIFRoZSByZXN1bHQgb2YgZXhlY3V0ZSB0aGUgY29udGV4dFxuICAgKi9cbiAgZXhlYzxSPihcbiAgICBjdHg6IChiYXRjaDogdGhpcykgPT4gUixcbiAgICBvcHRpb25zPzogT0RhdGFPcHRpb25zLFxuICApOiBPYnNlcnZhYmxlPFtSLCBPRGF0YVJlc3BvbnNlPHN0cmluZz5dPiB7XG4gICAgbGV0IHJlc3VsdCA9IHRoaXMuYWRkKGN0eCk7XG4gICAgcmV0dXJuIHRoaXMuc2VuZChvcHRpb25zKS5waXBlKG1hcCgocmVzcG9uc2UpID0+IFtyZXN1bHQsIHJlc3BvbnNlXSkpO1xuICB9XG5cbiAgYm9keSgpIHtcbiAgICByZXR1cm4gT0RhdGFCYXRjaFJlc291cmNlLmJ1aWxkTGVnYWN5Qm9keShcbiAgICAgIFN0cmluZ3MudW5pcXVlSWQoeyBwcmVmaXg6IEJBVENIX1BSRUZJWCB9KSxcbiAgICAgIHRoaXMuX3JlcXVlc3RzLFxuICAgICk7XG4gIH1cblxuICBqc29uKCkge1xuICAgIHJldHVybiBPRGF0YUJhdGNoUmVzb3VyY2UuYnVpbGRKc29uQm9keSh0aGlzLl9yZXF1ZXN0cyk7XG4gIH1cblxuICBzdGF0aWMgYnVpbGRMZWdhY3lCb2R5KFxuICAgIGJhdGNoQm91bmRhcnk6IHN0cmluZyxcbiAgICByZXF1ZXN0czogT0RhdGFCYXRjaFJlcXVlc3Q8YW55PltdLFxuICApOiBzdHJpbmcge1xuICAgIGxldCByZXMgPSBbXTtcbiAgICBsZXQgY2hhbmdlc2V0Qm91bmRhcnk6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIGxldCBjaGFuZ2VzZXRJZCA9IDE7XG5cbiAgICBmb3IgKGNvbnN0IHJlcXVlc3Qgb2YgcmVxdWVzdHMpIHtcbiAgICAgIC8vIGlmIG1ldGhvZCBpcyBHRVQgYW5kIHRoZXJlIGlzIGEgY2hhbmdlc2V0IGJvdW5kYXJ5IG9wZW4gdGhlbiBjbG9zZSBpdFxuICAgICAgaWYgKHJlcXVlc3QucmVxdWVzdC5tZXRob2QgPT09ICdHRVQnICYmIGNoYW5nZXNldEJvdW5kYXJ5ICE9PSBudWxsKSB7XG4gICAgICAgIHJlcy5wdXNoKFxuICAgICAgICAgIGAke0JPVU5EQVJZX1BSRUZJWF9TVUZGSVh9JHtjaGFuZ2VzZXRCb3VuZGFyeX0ke0JPVU5EQVJZX1BSRUZJWF9TVUZGSVh9YCxcbiAgICAgICAgKTtcbiAgICAgICAgY2hhbmdlc2V0Qm91bmRhcnkgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICAvLyBpZiB0aGVyZSBpcyBubyBjaGFuZ2VzZXQgYm91bmRhcnkgb3BlbiB0aGVuIG9wZW4gYSBiYXRjaCBib3VuZGFyeVxuICAgICAgaWYgKGNoYW5nZXNldEJvdW5kYXJ5ID09PSBudWxsKSB7XG4gICAgICAgIHJlcy5wdXNoKGAke0JPVU5EQVJZX1BSRUZJWF9TVUZGSVh9JHtiYXRjaEJvdW5kYXJ5fWApO1xuICAgICAgfVxuXG4gICAgICAvLyBpZiBtZXRob2QgaXMgbm90IEdFVCBhbmQgdGhlcmUgaXMgbm8gY2hhbmdlc2V0IGJvdW5kYXJ5IG9wZW4gdGhlbiBvcGVuIGEgY2hhbmdlc2V0IGJvdW5kYXJ5XG4gICAgICBpZiAocmVxdWVzdC5yZXF1ZXN0Lm1ldGhvZCAhPT0gJ0dFVCcpIHtcbiAgICAgICAgaWYgKGNoYW5nZXNldEJvdW5kYXJ5ID09PSBudWxsKSB7XG4gICAgICAgICAgY2hhbmdlc2V0Qm91bmRhcnkgPSBTdHJpbmdzLnVuaXF1ZUlkKHsgcHJlZml4OiBDSEFOR0VTRVRfUFJFRklYIH0pO1xuICAgICAgICAgIHJlcy5wdXNoKFxuICAgICAgICAgICAgYCR7Q09OVEVOVF9UWVBFfTogJHtNVUxUSVBBUlRfTUlYRURfQk9VTkRBUll9JHtjaGFuZ2VzZXRCb3VuZGFyeX1gLFxuICAgICAgICAgICk7XG4gICAgICAgICAgcmVzLnB1c2goTkVXTElORSk7XG4gICAgICAgIH1cbiAgICAgICAgcmVzLnB1c2goYCR7Qk9VTkRBUllfUFJFRklYX1NVRkZJWH0ke2NoYW5nZXNldEJvdW5kYXJ5fWApO1xuICAgICAgfVxuXG4gICAgICByZXMucHVzaChgJHtDT05URU5UX1RZUEV9OiAke0FQUExJQ0FUSU9OX0hUVFB9YCk7XG4gICAgICByZXMucHVzaChgJHtDT05URU5UX1RSQU5TRkVSX0VOQ09ESU5HfTogJHtCSU5BUll9YCk7XG5cbiAgICAgIGlmIChyZXF1ZXN0LnJlcXVlc3QubWV0aG9kICE9PSAnR0VUJykge1xuICAgICAgICByZXMucHVzaChgJHtDT05URU5UX0lEfTogJHtjaGFuZ2VzZXRJZCsrfWApO1xuICAgICAgfVxuXG4gICAgICByZXMucHVzaChORVdMSU5FKTtcbiAgICAgIHJlcy5wdXNoKGAke3JlcXVlc3QudG9MZWdhY3koKX1gKTtcbiAgICB9XG5cbiAgICBpZiAocmVzLmxlbmd0aCkge1xuICAgICAgaWYgKGNoYW5nZXNldEJvdW5kYXJ5ICE9PSBudWxsKSB7XG4gICAgICAgIHJlcy5wdXNoKFxuICAgICAgICAgIGAke0JPVU5EQVJZX1BSRUZJWF9TVUZGSVh9JHtjaGFuZ2VzZXRCb3VuZGFyeX0ke0JPVU5EQVJZX1BSRUZJWF9TVUZGSVh9YCxcbiAgICAgICAgKTtcbiAgICAgICAgY2hhbmdlc2V0Qm91bmRhcnkgPSBudWxsO1xuICAgICAgfVxuICAgICAgcmVzLnB1c2goXG4gICAgICAgIGAke0JPVU5EQVJZX1BSRUZJWF9TVUZGSVh9JHtiYXRjaEJvdW5kYXJ5fSR7Qk9VTkRBUllfUFJFRklYX1NVRkZJWH1gLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcy5qb2luKE5FV0xJTkUpO1xuICB9XG5cbiAgc3RhdGljIGJ1aWxkSnNvbkJvZHkocmVxdWVzdHM6IE9EYXRhQmF0Y2hSZXF1ZXN0PGFueT5bXSk6IE9iamVjdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlcXVlc3RzOiByZXF1ZXN0cy5tYXAoKHJlcXVlc3QpID0+IHJlcXVlc3QudG9Kc29uKCkpLFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgcGFyc2VMZWdhY3lSZXNwb25zZShcbiAgICByZXF1ZXN0czogT0RhdGFCYXRjaFJlcXVlc3Q8YW55PltdLFxuICAgIHJlc3BvbnNlOiBPRGF0YVJlc3BvbnNlPHN0cmluZz4sXG4gICk6IEh0dHBSZXNwb25zZUJhc2VbXSB7XG4gICAgbGV0IGNodW5rczogc3RyaW5nW11bXSA9IFtdO1xuICAgIGNvbnN0IGNvbnRlbnRUeXBlOiBzdHJpbmcgPSByZXNwb25zZS5oZWFkZXJzLmdldChDT05URU5UX1RZUEUpIHx8ICcnO1xuICAgIGNvbnN0IGJhdGNoQm91bmRhcnk6IHN0cmluZyA9IEh0dHAuYm91bmRhcnlEZWxpbWl0ZXIoY29udGVudFR5cGUpO1xuICAgIGNvbnN0IGVuZExpbmU6IHN0cmluZyA9IEh0dHAuYm91bmRhcnlFbmQoYmF0Y2hCb3VuZGFyeSk7XG5cbiAgICBjb25zdCBsaW5lczogc3RyaW5nW10gPSAocmVzcG9uc2UuYm9keSB8fCAnJykuc3BsaXQoTkVXTElORV9SRUdFWFApO1xuXG4gICAgbGV0IGNoYW5nZXNldFJlc3BvbnNlczogc3RyaW5nW11bXSB8IG51bGwgPSBudWxsO1xuICAgIGxldCBjb250ZW50SWQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICAgIGxldCBjaGFuZ2VzZXRCb3VuZGFyeTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IGNoYW5nZXNldEVuZExpbmU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIGxldCBzdGFydEluZGV4OiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbGluZXMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBjb25zdCBsaW5lID0gbGluZXNbaW5kZXhdO1xuXG4gICAgICBpZiAobGluZS5zdGFydHNXaXRoKENPTlRFTlRfVFlQRSkpIHtcbiAgICAgICAgY29uc3QgY29udGVudFR5cGVWYWx1ZTogc3RyaW5nID0gSHR0cC5oZWFkZXJWYWx1ZShsaW5lKTtcbiAgICAgICAgaWYgKGNvbnRlbnRUeXBlVmFsdWUgPT09IE1VTFRJUEFSVF9NSVhFRCkge1xuICAgICAgICAgIGNoYW5nZXNldFJlc3BvbnNlcyA9IFtdO1xuICAgICAgICAgIGNvbnRlbnRJZCA9IG51bGw7XG4gICAgICAgICAgY2hhbmdlc2V0Qm91bmRhcnkgPSBIdHRwLmJvdW5kYXJ5RGVsaW1pdGVyKGxpbmUpO1xuICAgICAgICAgIGNoYW5nZXNldEVuZExpbmUgPSBIdHRwLmJvdW5kYXJ5RW5kKGNoYW5nZXNldEJvdW5kYXJ5KTtcbiAgICAgICAgICBzdGFydEluZGV4ID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH0gZWxzZSBpZiAoY2hhbmdlc2V0UmVzcG9uc2VzICE9PSBudWxsICYmIGxpbmUuc3RhcnRzV2l0aChDT05URU5UX0lEKSkge1xuICAgICAgICBjb250ZW50SWQgPSBOdW1iZXIoSHR0cC5oZWFkZXJWYWx1ZShsaW5lKSk7XG4gICAgICB9IGVsc2UgaWYgKGxpbmUuc3RhcnRzV2l0aChIVFRQMTEpKSB7XG4gICAgICAgIHN0YXJ0SW5kZXggPSBpbmRleDtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIGxpbmUgPT09IGJhdGNoQm91bmRhcnkgfHxcbiAgICAgICAgbGluZSA9PT0gY2hhbmdlc2V0Qm91bmRhcnkgfHxcbiAgICAgICAgbGluZSA9PT0gZW5kTGluZSB8fFxuICAgICAgICBsaW5lID09PSBjaGFuZ2VzZXRFbmRMaW5lXG4gICAgICApIHtcbiAgICAgICAgaWYgKCFzdGFydEluZGV4KSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2h1bmsgPSBsaW5lcy5zbGljZShzdGFydEluZGV4LCBpbmRleCk7XG4gICAgICAgIGlmIChjaGFuZ2VzZXRSZXNwb25zZXMgIT09IG51bGwgJiYgY29udGVudElkICE9PSBudWxsKSB7XG4gICAgICAgICAgY2hhbmdlc2V0UmVzcG9uc2VzW2NvbnRlbnRJZF0gPSBjaHVuaztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjaHVua3MucHVzaChjaHVuayk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGluZSA9PT0gYmF0Y2hCb3VuZGFyeSB8fCBsaW5lID09PSBjaGFuZ2VzZXRCb3VuZGFyeSkge1xuICAgICAgICAgIHN0YXJ0SW5kZXggPSBpbmRleCArIDE7XG4gICAgICAgIH0gZWxzZSBpZiAobGluZSA9PT0gZW5kTGluZSB8fCBsaW5lID09PSBjaGFuZ2VzZXRFbmRMaW5lKSB7XG4gICAgICAgICAgaWYgKGNoYW5nZXNldFJlc3BvbnNlcyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCByZXNwb25zZSBvZiBjaGFuZ2VzZXRSZXNwb25zZXMpIHtcbiAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgY2h1bmtzLnB1c2gocmVzcG9uc2UpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGNoYW5nZXNldFJlc3BvbnNlcyA9IG51bGw7XG4gICAgICAgICAgY2hhbmdlc2V0Qm91bmRhcnkgPSBudWxsO1xuICAgICAgICAgIGNoYW5nZXNldEVuZExpbmUgPSBudWxsO1xuICAgICAgICAgIHN0YXJ0SW5kZXggPSBudWxsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjaHVua3MubWFwKChjaHVuazogc3RyaW5nW10sIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIGxldCByZXF1ZXN0ID0gcmVxdWVzdHNbaW5kZXhdLnJlcXVlc3Q7XG4gICAgICBsZXQgeyBjb2RlLCBtZXNzYWdlIH0gPSBIdHRwLnBhcnNlUmVzcG9uc2VTdGF0dXMoY2h1bmtbMF0pO1xuICAgICAgY2h1bmsgPSBjaHVuay5zbGljZSgxKTtcblxuICAgICAgbGV0IGhlYWRlcnM6IEh0dHBIZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XG4gICAgICB2YXIgaW5kZXggPSAxO1xuICAgICAgZm9yICg7IGluZGV4IDwgY2h1bmsubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgIGNvbnN0IGJhdGNoQm9keUxpbmU6IHN0cmluZyA9IGNodW5rW2luZGV4XTtcblxuICAgICAgICBpZiAoYmF0Y2hCb2R5TGluZSA9PT0gJycpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGJhdGNoQm9keUxpbmVQYXJ0czogc3RyaW5nW10gPSBiYXRjaEJvZHlMaW5lLnNwbGl0KCc6ICcpO1xuICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5hcHBlbmQoXG4gICAgICAgICAgYmF0Y2hCb2R5TGluZVBhcnRzWzBdLnRyaW0oKSxcbiAgICAgICAgICBiYXRjaEJvZHlMaW5lUGFydHNbMV0udHJpbSgpLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBsZXQgYm9keTogc3RyaW5nIHwgeyBlcnJvcjogYW55OyB0ZXh0OiBzdHJpbmcgfSA9ICcnO1xuICAgICAgZm9yICg7IGluZGV4IDwgY2h1bmsubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgIGJvZHkgKz0gY2h1bmtbaW5kZXhdO1xuICAgICAgfVxuXG4gICAgICBpZiAoY29kZSA9PT0gMCkge1xuICAgICAgICBjb2RlID0gISFib2R5ID8gMjAwIDogMDtcbiAgICAgIH1cblxuICAgICAgbGV0IG9rID0gY29kZSA+PSAyMDAgJiYgY29kZSA8IDMwMDtcbiAgICAgIGlmIChyZXF1ZXN0LnJlc3BvbnNlVHlwZSA9PT0gJ2pzb24nICYmIHR5cGVvZiBib2R5ID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb25zdCBvcmlnaW5hbEJvZHkgPSBib2R5O1xuICAgICAgICBib2R5ID0gYm9keS5yZXBsYWNlKFhTU0lfUFJFRklYLCAnJyk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYm9keSA9IGJvZHkgIT09ICcnID8gSlNPTi5wYXJzZShib2R5KSA6IG51bGw7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgYm9keSA9IG9yaWdpbmFsQm9keTtcblxuICAgICAgICAgIGlmIChvaykge1xuICAgICAgICAgICAgb2sgPSBmYWxzZTtcbiAgICAgICAgICAgIGJvZHkgPSB7IGVycm9yLCB0ZXh0OiBib2R5IH07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBva1xuICAgICAgICA/IG5ldyBIdHRwUmVzcG9uc2U8YW55Pih7XG4gICAgICAgICAgICBib2R5LFxuICAgICAgICAgICAgaGVhZGVycyxcbiAgICAgICAgICAgIHN0YXR1czogY29kZSxcbiAgICAgICAgICAgIHN0YXR1c1RleHQ6IG1lc3NhZ2UsXG4gICAgICAgICAgICB1cmw6IHJlcXVlc3QudXJsV2l0aFBhcmFtcyxcbiAgICAgICAgICB9KVxuICAgICAgICA6IG5ldyBIdHRwRXJyb3JSZXNwb25zZSh7XG4gICAgICAgICAgICAvLyBUaGUgZXJyb3IgaW4gdGhpcyBjYXNlIGlzIHRoZSByZXNwb25zZSBib2R5IChlcnJvciBmcm9tIHRoZSBzZXJ2ZXIpLlxuICAgICAgICAgICAgZXJyb3I6IGJvZHksXG4gICAgICAgICAgICBoZWFkZXJzLFxuICAgICAgICAgICAgc3RhdHVzOiBjb2RlLFxuICAgICAgICAgICAgc3RhdHVzVGV4dDogbWVzc2FnZSxcbiAgICAgICAgICAgIHVybDogcmVxdWVzdC51cmxXaXRoUGFyYW1zLFxuICAgICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIHBhcnNlSnNvblJlc3BvbnNlKFxuICAgIHJlcXVlc3RzOiBPRGF0YUJhdGNoUmVxdWVzdDxhbnk+W10sXG4gICAgcmVzcG9uc2U6IE9EYXRhUmVzcG9uc2U8YW55PixcbiAgKTogSHR0cFJlc3BvbnNlQmFzZVtdIHtcbiAgICBjb25zdCByZXNwb25zZXM6IE9iamVjdFtdID1cbiAgICAgIChyZXNwb25zZS5ib2R5ID8gcmVzcG9uc2UuYm9keSA6IHt9KVsncmVzcG9uc2VzJ10gPz8gW107XG5cbiAgICByZXR1cm4gcmVzcG9uc2VzLm1hcCgocmVzcG9uc2U6IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgbGV0IHJlcXVlc3QgPSByZXF1ZXN0c1tpbmRleF0ucmVxdWVzdDtcbiAgICAgIGxldCBjb2RlID0gcmVzcG9uc2VbJ3N0YXR1cyddO1xuXG4gICAgICBsZXQgaGVhZGVyczogSHR0cEhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMocmVzcG9uc2VbJ2hlYWRlcnMnXSk7XG4gICAgICBsZXQgYm9keTogc3RyaW5nIHwgeyBlcnJvcjogYW55OyB0ZXh0OiBzdHJpbmcgfSA9IHJlc3BvbnNlWydib2R5J107XG4gICAgICBpZiAoY29kZSA9PT0gMCkge1xuICAgICAgICBjb2RlID0gISFib2R5ID8gMjAwIDogMDtcbiAgICAgIH1cblxuICAgICAgbGV0IG9rID0gY29kZSA+PSAyMDAgJiYgY29kZSA8IDMwMDtcbiAgICAgIGlmIChyZXF1ZXN0LnJlc3BvbnNlVHlwZSA9PT0gJ2pzb24nICYmIHR5cGVvZiBib2R5ID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb25zdCBvcmlnaW5hbEJvZHkgPSBib2R5O1xuICAgICAgICBib2R5ID0gYm9keS5yZXBsYWNlKFhTU0lfUFJFRklYLCAnJyk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYm9keSA9IGJvZHkgIT09ICcnID8gSlNPTi5wYXJzZShib2R5KSA6IG51bGw7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgYm9keSA9IG9yaWdpbmFsQm9keTtcblxuICAgICAgICAgIGlmIChvaykge1xuICAgICAgICAgICAgb2sgPSBmYWxzZTtcbiAgICAgICAgICAgIGJvZHkgPSB7IGVycm9yLCB0ZXh0OiBib2R5IH07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBva1xuICAgICAgICA/IG5ldyBIdHRwUmVzcG9uc2U8YW55Pih7XG4gICAgICAgICAgICBib2R5LFxuICAgICAgICAgICAgaGVhZGVycyxcbiAgICAgICAgICAgIHN0YXR1czogY29kZSxcbiAgICAgICAgICAgIHVybDogcmVxdWVzdC51cmxXaXRoUGFyYW1zLFxuICAgICAgICAgIH0pXG4gICAgICAgIDogbmV3IEh0dHBFcnJvclJlc3BvbnNlKHtcbiAgICAgICAgICAgIC8vIFRoZSBlcnJvciBpbiB0aGlzIGNhc2UgaXMgdGhlIHJlc3BvbnNlIGJvZHkgKGVycm9yIGZyb20gdGhlIHNlcnZlcikuXG4gICAgICAgICAgICBlcnJvcjogYm9keSxcbiAgICAgICAgICAgIGhlYWRlcnMsXG4gICAgICAgICAgICBzdGF0dXM6IGNvZGUsXG4gICAgICAgICAgICB1cmw6IHJlcXVlc3QudXJsV2l0aFBhcmFtcyxcbiAgICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -27,4 +27,4 @@ export class ODataCountResource extends ODataResource {
|
|
|
27
27
|
return this.get(options);
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvcmVzb3VyY2VzL3R5cGVzL2NvdW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUd2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRzVDLE1BQU0sT0FBTyxrQkFBc0IsU0FBUSxhQUFnQjtJQUN6RCxpQkFBaUI7SUFDakIsTUFBTSxDQUFDLE9BQU8sQ0FDWixHQUFhLEVBQ2IsRUFDRSxRQUFRLEVBQ1IsS0FBSyxHQUlOO1FBRUQsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMxRCxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BELE9BQU8sSUFBSSxrQkFBa0IsQ0FBSSxHQUFHLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBQ1EsS0FBSztRQUNaLE9BQU8sS0FBSyxDQUFDLEtBQUssRUFBMkIsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsWUFBWTtJQUVaLGtCQUFrQjtJQUNDLEdBQUcsQ0FBQyxPQUFzQjtRQUMzQyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBQ0QsWUFBWTtJQUVaLG1CQUFtQjtJQUNuQjs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLE9BQXNCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPRGF0YUFwaSB9IGZyb20gJy4uLy4uL2FwaSc7XG5pbXBvcnQgeyAkQ09VTlQgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgUGF0aFNlZ21lbnQsIFF1ZXJ5T3B0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgT0RhdGFQYXRoU2VnbWVudHMgfSBmcm9tICcuLi9wYXRoJztcbmltcG9ydCB7IE9EYXRhUXVlcnlPcHRpb25zIH0gZnJvbSAnLi4vcXVlcnknO1xuaW1wb3J0IHsgT0RhdGFSZXNvdXJjZSB9IGZyb20gJy4uL3Jlc291cmNlJztcbmltcG9ydCB7IE9EYXRhT3B0aW9ucyB9IGZyb20gJy4vb3B0aW9ucyc7XG5cbmV4cG9ydCBjbGFzcyBPRGF0YUNvdW50UmVzb3VyY2U8VD4gZXh0ZW5kcyBPRGF0YVJlc291cmNlPFQ+
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvcmVzb3VyY2VzL3R5cGVzL2NvdW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUd2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRzVDLE1BQU0sT0FBTyxrQkFBc0IsU0FBUSxhQUFnQjtJQUN6RCxpQkFBaUI7SUFDakIsTUFBTSxDQUFDLE9BQU8sQ0FDWixHQUFhLEVBQ2IsRUFDRSxRQUFRLEVBQ1IsS0FBSyxHQUlOO1FBRUQsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMxRCxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BELE9BQU8sSUFBSSxrQkFBa0IsQ0FBSSxHQUFHLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBQ1EsS0FBSztRQUNaLE9BQU8sS0FBSyxDQUFDLEtBQUssRUFBMkIsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsWUFBWTtJQUVaLGtCQUFrQjtJQUNDLEdBQUcsQ0FBQyxPQUFzQjtRQUMzQyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBQ0QsWUFBWTtJQUVaLG1CQUFtQjtJQUNuQjs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLE9BQXNCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPRGF0YUFwaSB9IGZyb20gJy4uLy4uL2FwaSc7XG5pbXBvcnQgeyAkQ09VTlQgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgUGF0aFNlZ21lbnQsIFF1ZXJ5T3B0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgT0RhdGFQYXRoU2VnbWVudHMgfSBmcm9tICcuLi9wYXRoJztcbmltcG9ydCB7IE9EYXRhUXVlcnlPcHRpb25zIH0gZnJvbSAnLi4vcXVlcnknO1xuaW1wb3J0IHsgT0RhdGFSZXNvdXJjZSB9IGZyb20gJy4uL3Jlc291cmNlJztcbmltcG9ydCB7IE9EYXRhT3B0aW9ucyB9IGZyb20gJy4vb3B0aW9ucyc7XG5cbmV4cG9ydCBjbGFzcyBPRGF0YUNvdW50UmVzb3VyY2U8VD4gZXh0ZW5kcyBPRGF0YVJlc291cmNlPFQ+IHtcbiAgLy8jcmVnaW9uIEZhY3RvcnlcbiAgc3RhdGljIGZhY3Rvcnk8VD4oXG4gICAgYXBpOiBPRGF0YUFwaSxcbiAgICB7XG4gICAgICBzZWdtZW50cyxcbiAgICAgIHF1ZXJ5LFxuICAgIH06IHtcbiAgICAgIHNlZ21lbnRzOiBPRGF0YVBhdGhTZWdtZW50cztcbiAgICAgIHF1ZXJ5PzogT0RhdGFRdWVyeU9wdGlvbnM8VD47XG4gICAgfSxcbiAgKSB7XG4gICAgc2VnbWVudHMuYWRkKFBhdGhTZWdtZW50LmNvdW50LCAkQ09VTlQpLnR5cGUoJ0VkbS5JbnQzMicpO1xuICAgIHF1ZXJ5Py5rZWVwKFF1ZXJ5T3B0aW9uLmZpbHRlciwgUXVlcnlPcHRpb24uc2VhcmNoKTtcbiAgICByZXR1cm4gbmV3IE9EYXRhQ291bnRSZXNvdXJjZTxUPihhcGksIHsgc2VnbWVudHMsIHF1ZXJ5IH0pO1xuICB9XG4gIG92ZXJyaWRlIGNsb25lKCk6IE9EYXRhQ291bnRSZXNvdXJjZTxUPiB7XG4gICAgcmV0dXJuIHN1cGVyLmNsb25lKCkgYXMgT0RhdGFDb3VudFJlc291cmNlPFQ+O1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBSZXF1ZXN0c1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZ2V0KG9wdGlvbnM/OiBPRGF0YU9wdGlvbnMpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBzdXBlci5nZXQoeyByZXNwb25zZVR5cGU6ICd2YWx1ZScsIC4uLm9wdGlvbnMgfSk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIFNob3J0Y3V0c1xuICAvKipcbiAgICogRmV0Y2ggdGhlIGNvdW50IG9mIHRoZSBzZXQuXG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgZm9yIHRoZSByZXF1ZXN0XG4gICAqIEByZXR1cm5zIFRoZSBjb3VudCBvZiB0aGUgc2V0XG4gICAqL1xuICBmZXRjaChvcHRpb25zPzogT0RhdGFPcHRpb25zKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5nZXQob3B0aW9ucyk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG59XG4iXX0=
|
|
@@ -114,4 +114,4 @@ export class ODataEntitySetResource extends ODataResource {
|
|
|
114
114
|
return this.fetch(options).pipe(map(({ entities, annots }) => entities ? this.asCollection(entities, { annots }) : null));
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXNldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi9yZXNvdXJjZXMvdHlwZXMvZW50aXR5LXNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsS0FBSyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBYSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBVyxNQUFNLGdCQUFnQixDQUFDO0FBSXpFLE9BQU8sRUFBRSxXQUFXLEVBQWUsTUFBTSxhQUFhLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRTVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFNNUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBR25ELE1BQU0sT0FBTyxzQkFBMEIsU0FBUSxhQUFnQjtJQUM3RCxpQkFBaUI7SUFDakIsTUFBTSxDQUFDLE9BQU8sQ0FDWixHQUFhLEVBQ2IsRUFDRSxJQUFJLEVBQ0osTUFBTSxFQUNOLEtBQUssR0FLTjtRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUN6QyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUQsSUFBSSxNQUFNLEtBQUssU0FBUztZQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDdEQsT0FBTyxJQUFJ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QUNqQyxDQUFDLENBQUMsQ0FDSixDQUFDO0lBQ0osQ0FBQztJQUVELFFBQVEsQ0FDTixPQUdDO1FBRUQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3BDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzdCLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQ2xELE1BQU07U0FDUCxDQUFDLENBQUMsQ0FDSixDQUFDO0lBQ0osQ0FBQztJQUVELGFBQWEsQ0FDWCxPQUdDO1FBRUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxlQUFlLENBQ2IsT0FHQztRQUVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQzdCLEdBQUcsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FDM0IsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFPLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDaEUsQ0FDRixDQUFDO0lBQ0osQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29uY2F0LCBFTVBUWSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY29uY2F0TWFwLCBleHBhbmQsIG1hcCwgcmVkdWNlLCB0b0FycmF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT0RhdGFBcGkgfSBmcm9tICcuLi8uLi9hcGknO1xuaW1wb3J0IHsgT0RhdGFDb2xsZWN0aW9uLCBPRGF0YU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IE9EYXRhU3RydWN0dXJlZFR5cGUgfSBmcm9tICcuLi8uLi9zY2hlbWEvc3RydWN0dXJlZC10eXBlJztcbmltcG9ydCB7IFBhdGhTZWdtZW50LCBRdWVyeU9wdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IE9EYXRhUGF0aFNlZ21lbnRzIH0gZnJvbSAnLi4vcGF0aCc7XG5pbXBvcnQgeyBPRGF0YVF1ZXJ5T3B0aW9ucyB9IGZyb20gJy4uL3F1ZXJ5JztcbmltcG9ydCB7IE9EYXRhUmVzb3VyY2UgfSBmcm9tICcuLi9yZXNvdXJjZSc7XG5pbXBvcnQge1xuICBPRGF0YUVudGl0aWVzLFxuICBPRGF0YUVudGl0aWVzQW5ub3RhdGlvbnMsXG4gIE9EYXRhRW50aXR5LFxufSBmcm9tICcuLi9yZXNwb25zZXMnO1xuaW1wb3J0IHsgT0RhdGFBY3Rpb25SZXNvdXJjZSB9IGZyb20gJy4vYWN0aW9uJztcbmltcG9ydCB7IE9EYXRhQ291bnRSZXNvdXJjZSB9IGZyb20gJy4vY291bnQnO1xuaW1wb3J0IHsgT0RhdGFFbnRpdHlSZXNvdXJjZSB9IGZyb20gJy4vZW50aXR5JztcbmltcG9ydCB7IE9EYXRhRnVuY3Rpb25SZXNvdXJjZSB9IGZyb20gJy4vZnVuY3Rpb24nO1xuaW1wb3J0IHsgT0RhdGFPcHRpb25zIH0gZnJvbSAnLi9vcHRpb25zJztcblxuZXhwb3J0IGNsYXNzIE9EYXRhRW50aXR5U2V0UmVzb3VyY2U8VD4gZXh0ZW5kcyBPRGF0YVJlc291cmNlPFQ+IHtcbiAgLy8jcmVnaW9uIEZhY3RvcnlcbiAgc3RhdGljIGZhY3Rvcnk8RT4oXG4gICAgYXBpOiBPRGF0YUFwaSxcbiAgICB7XG4gICAgICBwYXRoLFxuICAgICAgc2NoZW1hLFxuICAgICAgcXVlcnksXG4gICAgfToge1xuICAgICAgcGF0aDogc3RyaW5nO1xuICAgICAgc2NoZW1hPzogT0RhdGFTdHJ1Y3R1cmVkVHlwZTxFPjtcbiAgICAgIHF1ZXJ5PzogT0RhdGFRdWVyeU9wdGlvbnM8RT47XG4gICAgfVxuICApIHtcbiAgICBjb25zdCBzZWdtZW50cyA9IG5ldyBPRGF0YVBhdGhTZWdtZW50cygpO1xuICAgIGNvbnN0IHNlZ21lbnQgPSBzZWdtZW50cy5hZGQoUGF0aFNlZ21lbnQuZW50aXR5U2V0LCBwYXRoKTtcbiAgICBpZiAoc2NoZW1hICE9PSB1bmRlZmluZWQpIHNlZ21lbnQudHlwZShzY2hlbWEudHlwZSgpKTtcbiAgICByZXR1cm4gbmV3IE9EYXRhRW50aXR5U2V0UmVzb3VyY2U8RT4oYXBpLCB7IHNlZ21lbnRzLCBxdWVyeSwgc2NoZW1hIH0pO1xuICB9XG4gIG92ZXJyaWRlIGNsb25lKCk6IE9EYXRhRW50aXR5U2V0UmVzb3VyY2U8VD4ge1xuICAgIHJldHVybiBzdXBlci5jbG9uZSgpIGFzIE9EYXRhRW50aXR5U2V0UmVzb3VyY2U8VD47XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgZW50aXR5KGtleT86IGFueSkge1xuICAgIGNvbnN0IGVudGl0eSA9IE9EYXRhRW50aXR5UmVzb3VyY2UuZmFjdG9yeTxUPih0aGlzLmFwaSwge1xuICAgICAgc2NoZW1hOiB0aGlzLnNjaGVtYSBhcyBPRGF0YVN0cnVjdHVyZWRUeXBlPFQ+LFxuICAgICAgc2VnbWVudHM6IHRoaXMuY2xvbmVTZWdtZW50cygpLFxuICAgICAgcXVlcnk6IHRoaXMuY2xvbmVRdWVyeTxUPigpLFxuICAgIH0pO1xuICAgIGlmIChrZXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGVudGl0eS5rZXkoa2V5KTtcbiAgICB9XG4gICAgcmV0dXJuIGVudGl0eTtcbiAgfVxuXG4gIGFjdGlvbjxQLCBSPihwYXRoOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gT0RhdGFBY3Rpb25SZXNvdXJjZS5mcm9tUmVzb3VyY2U8UCwgUj4odGhpcywgcGF0aCk7XG4gIH1cblxuICBmdW5jdGlvbjxQLCBSPihwYXRoOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gT0RhdGFGdW5jdGlvblJlc291cmNlLmZyb21SZXNvdXJjZTxQLCBSPih0aGlzLCBwYXRoKTtcbiAgfVxuXG4gIGNvdW50KCkge1xuICAgIHJldHVybiBPRGF0YUNvdW50UmVzb3VyY2UuZmFjdG9yeTxUPih0aGlzLmFwaSwge1xuICAgICAgc2VnbWVudHM6IHRoaXMuY2xvbmVTZWdtZW50cygpLFxuICAgICAgcXVlcnk6IHRoaXMuY2xvbmVRdWVyeTxUPigpLFxuICAgIH0pO1xuICB9XG5cbiAgY2FzdDxDPih0eXBlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0gdGhpcy5zY2hlbWEgYXMgT0RhdGFTdHJ1Y3R1cmVkVHlwZTxUPjtcbiAgICBjb25zdCBjYXN0U2NoZW1hID0gdGhpcy5hcGkuZmluZFN0cnVjdHVyZWRUeXBlRm9yVHlwZTxDPih0eXBlKTtcbiAgICBpZiAoXG4gICAgICBjYXN0U2NoZW1hICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIGJhc2VTY2hlbWEgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgIWNhc3RTY2hlbWEuaXNTdWJ0eXBlT2YoYmFzZVNjaGVtYSlcbiAgICApXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBjYXN0IHRvICR7dHlwZX1gKTtcbiAgICBjb25zdCBzZWdtZW50cyA9IHRoaXMuY2xvbmVTZWdtZW50cygpO1xuICAgIHNlZ21lbnRzLmFkZChQYXRoU2VnbWVudC50eXBlLCB0eXBlKS50eXBlKHR5cGUpO1xuICAgIHJldHVybiBuZXcgT0RhdGFFbnRpdHlTZXRSZXNvdXJjZTxDPih0aGlzLmFwaSwge1xuICAgICAgc2VnbWVudHMsXG4gICAgICBzY2hlbWE6IGNhc3RTY2hlbWEsXG4gICAgICBxdWVyeTogdGhpcy5jbG9uZVF1ZXJ5PEM+KCksXG4gICAgfSk7XG4gIH1cblxuICAvLyNyZWdpb24gUmVxdWVzdHNcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHBvc3QoXG4gICAgYXR0cnM6IFBhcnRpYWw8VD4sXG4gICAgb3B0aW9ucz86IE9EYXRhT3B0aW9uc1xuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBzdXBlci5wb3N0KGF0dHJzLCB7IHJlc3BvbnNlVHlwZTogJ2VudGl0eScsIC4uLm9wdGlvbnMgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZ2V0KFxuICAgIG9wdGlvbnM6IE9EYXRhT3B0aW9ucyAmIHtcbiAgICAgIHdpdGhDb3VudD86IGJvb2xlYW47XG4gICAgICBib2R5UXVlcnlPcHRpb25zPzogUXVlcnlPcHRpb25bXTtcbiAgICB9ID0ge31cbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gc3VwZXIuZ2V0KHsgcmVzcG9uc2VUeXBlOiAnZW50aXRpZXMnLCAuLi5vcHRpb25zIH0pO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBTaG9ydGN1dHNcbiAgY3JlYXRlKFxuICAgIGF0dHJzOiBQYXJ0aWFsPFQ+LFxuICAgIG9wdGlvbnM/OiBPRGF0YU9wdGlvbnNcbiAgKTogT2JzZXJ2YWJsZTxPRGF0YUVudGl0eTxUPj4ge1xuICAgIHJldHVybiB0aGlzLnBvc3QoYXR0cnMsIG9wdGlvbnMpO1xuICB9XG5cbiAgZmV0Y2goXG4gICAgb3B0aW9ucz86IE9EYXRhT3B0aW9ucyAmIHtcbiAgICAgIHdpdGhDb3VudD86IGJvb2xlYW47XG4gICAgICBib2R5UXVlcnlPcHRpb25zPzogUXVlcnlPcHRpb25bXTtcbiAgICB9XG4gICk6IE9ic2VydmFibGU8T0RhdGFFbnRpdGllczxUPj4ge1xuICAgIHJldHVybiB0aGlzLmdldChvcHRpb25zKTtcbiAgfVxuXG4gIGZldGNoQWxsKFxuICAgIG9wdGlvbnM/OiBPRGF0YU9wdGlvbnMgJiB7XG4gICAgICB3aXRoQ291bnQ/OiBib29sZWFuO1xuICAgICAgYm9keVF1ZXJ5T3B0aW9ucz86IFF1ZXJ5T3B0aW9uW107XG4gICAgfVxuICApOiBPYnNlcnZhYmxlPHsgZW50aXRpZXM6IFRbXTsgYW5ub3RzOiBPRGF0YUVudGl0aWVzQW5ub3RhdGlvbnM8VD4gfT4ge1xuICAgIGxldCByZXMgPSB0aGlzLmNsb25lKCk7XG4gICAgLy8gQ2xlYW4gUGFnaW5nXG4gICAgcmVzLnF1ZXJ5KChxKSA9PiBxLmNsZWFyUGFnaW5nKCkpO1xuICAgIGxldCBmZXRjaCA9IChvcHRzPzoge1xuICAgICAgc2tpcD86IG51bWJlcjtcbiAgICAgIHNraXB0b2tlbj86IHN0cmluZztcbiAgICAgIHRvcD86IG51bWJlcjtcbiAgICB9KTogT2JzZXJ2YWJsZTxPRGF0YUVudGl0aWVzPFQ+PiA9PiB7XG4gICAgICBpZiAob3B0cykge1xuICAgICAgICByZXMucXVlcnkoKHEpID0+IHEucGFnaW5nKG9wdHMpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXMuZmV0Y2gob3B0aW9ucyk7XG4gICAgfTtcbiAgICByZXR1cm4gZmV0Y2goKS5waXBlKFxuICAgICAgZXhwYW5kKCh7IGFubm90cyB9KSA9PlxuICAgICAgICBhbm5vdHMuc2tpcCB8fCBhbm5vdHMuc2tpcHRva2VuID8gZmV0Y2goYW5ub3RzKSA6IEVNUFRZXG4gICAgICApLFxuICAgICAgbWFwKCh7IGVudGl0aWVzLCBhbm5vdHMgfSkgPT4gKHsgZW50aXRpZXM6IGVudGl0aWVzIHx8IFtdLCBhbm5vdHMgfSkpLFxuICAgICAgcmVkdWNlKChhY2MsIHsgZW50aXRpZXMsIGFubm90cyB9KSA9PiAoe1xuICAgICAgICBlbnRpdGllczogWy4uLihhY2MuZW50aXRpZXMgfHwgW10pLCAuLi4oZW50aXRpZXMgfHwgW10pXSxcbiAgICAgICAgYW5ub3RzOiBhY2MuYW5ub3RzLnVuaW9uKGFubm90cyksXG4gICAgICB9KSlcbiAgICApO1xuICB9XG5cbiAgZmV0Y2hNYW55KFxuICAgIHRvcDogbnVtYmVyLFxuICAgIG9wdGlvbnM/OiBPRGF0YU9wdGlvbnMgJiB7XG4gICAgICB3aXRoQ291bnQ/OiBib29sZWFuO1xuICAgICAgYm9keVF1ZXJ5T3B0aW9ucz86IFF1ZXJ5T3B0aW9uW107XG4gICAgfVxuICApOiBPYnNlcnZhYmxlPHsgZW50aXRpZXM6IFRbXTsgYW5ub3RzOiBPRGF0YUVudGl0aWVzQW5ub3RhdGlvbnM8VD4gfT4ge1xuICAgIGxldCByZXMgPSB0aGlzLmNsb25lKCk7XG4gICAgbGV0IGZldGNoID0gKG9wdHM/OiB7XG4gICAgICBza2lwPzogbnVtYmVyO1xuICAgICAgc2tpcHRva2VuPzogc3RyaW5nO1xuICAgICAgdG9wPzogbnVtYmVyO1xuICAgIH0pOiBPYnNlcnZhYmxlPE9EYXRhRW50aXRpZXM8VD4+ID0+IHtcbiAgICAgIGlmIChvcHRzKSB7XG4gICAgICAgIHJlcy5xdWVyeSgocSkgPT4gcS5wYWdpbmcob3B0cykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlcy5mZXRjaChvcHRpb25zKTtcbiAgICB9O1xuICAgIHJldHVybiBmZXRjaCh7IHRvcCB9KS5waXBlKFxuICAgICAgZXhwYW5kKCh7IGFubm90cyB9KSA9PlxuICAgICAgICBhbm5vdHMuc2tpcCB8fCBhbm5vdHMuc2tpcHRva2VuID8gZmV0Y2goYW5ub3RzKSA6IEVNUFRZXG4gICAgICApLFxuICAgICAgbWFwKCh7IGVudGl0aWVzLCBhbm5vdHMgfSkgPT4gKHsgZW50aXRpZXM6IGVudGl0aWVzIHx8IFtdLCBhbm5vdHMgfSkpLFxuICAgICAgcmVkdWNlKChhY2MsIHsgZW50aXRpZXMsIGFubm90cyB9KSA9PiAoe1xuICAgICAgICBlbnRpdGllczogWy4uLihhY2MuZW50aXRpZXMgfHwgW10pLCAuLi4oZW50aXRpZXMgfHwgW10pXSxcbiAgICAgICAgYW5ub3RzOiBhY2MuYW5ub3RzLnVuaW9uKGFubm90cyksXG4gICAgICB9KSlcbiAgICApO1xuICB9XG5cbiAgZmV0Y2hPbmUoXG4gICAgb3B0aW9ucz86IE9EYXRhT3B0aW9ucyAmIHtcbiAgICAgIHdpdGhDb3VudD86IGJvb2xlYW47XG4gICAgICBib2R5UXVlcnlPcHRpb25zPzogUXVlcnlPcHRpb25bXTtcbiAgICB9XG4gICk6IE9ic2VydmFibGU8eyBlbnRpdHk6IFQgfCBudWxsOyBhbm5vdHM6IE9EYXRhRW50aXRpZXNBbm5vdGF0aW9uczxUPiB9PiB7XG4gICAgcmV0dXJuIHRoaXMuZmV0Y2hNYW55KDEsIG9wdGlvbnMpLnBpcGUoXG4gICAgICBtYXAoKHsgZW50aXRpZXMsIGFubm90cyB9KSA9PiAoe1xuICAgICAgICBlbnRpdHk6IGVudGl0aWVzLmxlbmd0aCA9PT0gMSA/IGVudGl0aWVzWzBdIDogbnVsbCxcbiAgICAgICAgYW5ub3RzLFxuICAgICAgfSkpXG4gICAgKTtcbiAgfVxuXG4gIGZldGNoRW50aXRpZXMoXG4gICAgb3B0aW9ucz86IE9EYXRhT3B0aW9ucyAmIHtcbiAgICAgIHdpdGhDb3VudD86IGJvb2xlYW47XG4gICAgICBib2R5UXVlcnlPcHRpb25zPzogUXVlcnlPcHRpb25bXTtcbiAgICB9XG4gICk6IE9ic2VydmFibGU8VFtdIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLmZldGNoKG9wdGlvbnMpLnBpcGUobWFwKCh7IGVudGl0aWVzIH0pID0+IGVudGl0aWVzKSk7XG4gIH1cblxuICBmZXRjaENvbGxlY3Rpb248TSBleHRlbmRzIE9EYXRhTW9kZWw8VD4sIEMgZXh0ZW5kcyBPRGF0YUNvbGxlY3Rpb248VCwgTT4+KFxuICAgIG9wdGlvbnM/OiBPRGF0YU9wdGlvbnMgJiB7XG4gICAgICB3aXRoQ291bnQ/OiBib29sZWFuO1xuICAgICAgYm9keVF1ZXJ5T3B0aW9ucz86IFF1ZXJ5T3B0aW9uW107XG4gICAgfVxuICApOiBPYnNlcnZhYmxlPEMgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuZmV0Y2gob3B0aW9ucykucGlwZShcbiAgICAgIG1hcCgoeyBlbnRpdGllcywgYW5ub3RzIH0pID0+XG4gICAgICAgIGVudGl0aWVzID8gdGhpcy5hc0NvbGxlY3Rpb248TSwgQz4oZW50aXRpZXMsIHsgYW5ub3RzIH0pIDogbnVsbFxuICAgICAgKVxuICAgICk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG59XG4iXX0=
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXNldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi9yZXNvdXJjZXMvdHlwZXMvZW50aXR5LXNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsS0FBSyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBYSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBVyxNQUFNLGdCQUFnQixDQUFDO0FBSXpFLE9BQU8sRUFBRSxXQUFXLEVBQWUsTUFBTSxhQUFhLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRTVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFNNUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBR25ELE1BQU0sT0FBTyxzQkFBMEIsU0FBUSxhQUFnQjtJQUM3RCxpQkFBaUI7SUFDakIsTUFBTSxDQUFDLE9BQU8sQ0FDWixHQUFhLEVBQ2IsRUFDRSxJQUFJLEVBQ0osTUFBTSxFQUNOLEtBQUssR0FLTjtRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUN6QyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUQsSUFBSSxNQUFNLEtBQUssU0FBUztZQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDdEQsT0FBTyxJQUFJ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QUNqQyxDQUFDLENBQUMsQ0FDSixDQUFDO0lBQ0osQ0FBQztJQUVELFFBQVEsQ0FDTixPQUdDO1FBRUQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3BDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzdCLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQ2xELE1BQU07U0FDUCxDQUFDLENBQUMsQ0FDSixDQUFDO0lBQ0osQ0FBQztJQUVELGFBQWEsQ0FDWCxPQUdDO1FBRUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxlQUFlLENBQ2IsT0FHQztRQUVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQzdCLEdBQUcsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FDM0IsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFPLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDaEUsQ0FDRixDQUFDO0lBQ0osQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29uY2F0LCBFTVBUWSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY29uY2F0TWFwLCBleHBhbmQsIG1hcCwgcmVkdWNlLCB0b0FycmF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT0RhdGFBcGkgfSBmcm9tICcuLi8uLi9hcGknO1xuaW1wb3J0IHsgT0RhdGFDb2xsZWN0aW9uLCBPRGF0YU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IE9EYXRhU3RydWN0dXJlZFR5cGUgfSBmcm9tICcuLi8uLi9zY2hlbWEvc3RydWN0dXJlZC10eXBlJztcbmltcG9ydCB7IFBhdGhTZWdtZW50LCBRdWVyeU9wdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IE9EYXRhUGF0aFNlZ21lbnRzIH0gZnJvbSAnLi4vcGF0aCc7XG5pbXBvcnQgeyBPRGF0YVF1ZXJ5T3B0aW9ucyB9IGZyb20gJy4uL3F1ZXJ5JztcbmltcG9ydCB7IE9EYXRhUmVzb3VyY2UgfSBmcm9tICcuLi9yZXNvdXJjZSc7XG5pbXBvcnQge1xuICBPRGF0YUVudGl0aWVzLFxuICBPRGF0YUVudGl0aWVzQW5ub3RhdGlvbnMsXG4gIE9EYXRhRW50aXR5LFxufSBmcm9tICcuLi9yZXNwb25zZXMnO1xuaW1wb3J0IHsgT0RhdGFBY3Rpb25SZXNvdXJjZSB9IGZyb20gJy4vYWN0aW9uJztcbmltcG9ydCB7IE9EYXRhQ291bnRSZXNvdXJjZSB9IGZyb20gJy4vY291bnQnO1xuaW1wb3J0IHsgT0RhdGFFbnRpdHlSZXNvdXJjZSB9IGZyb20gJy4vZW50aXR5JztcbmltcG9ydCB7IE9EYXRhRnVuY3Rpb25SZXNvdXJjZSB9IGZyb20gJy4vZnVuY3Rpb24nO1xuaW1wb3J0IHsgT0RhdGFPcHRpb25zIH0gZnJvbSAnLi9vcHRpb25zJztcblxuZXhwb3J0IGNsYXNzIE9EYXRhRW50aXR5U2V0UmVzb3VyY2U8VD4gZXh0ZW5kcyBPRGF0YVJlc291cmNlPFQ+IHtcbiAgLy8jcmVnaW9uIEZhY3RvcnlcbiAgc3RhdGljIGZhY3Rvcnk8RT4oXG4gICAgYXBpOiBPRGF0YUFwaSxcbiAgICB7XG4gICAgICBwYXRoLFxuICAgICAgc2NoZW1hLFxuICAgICAgcXVlcnksXG4gICAgfToge1xuICAgICAgcGF0aDogc3RyaW5nO1xuICAgICAgc2NoZW1hPzogT0RhdGFTdHJ1Y3R1cmVkVHlwZTxFPjtcbiAgICAgIHF1ZXJ5PzogT0RhdGFRdWVyeU9wdGlvbnM8RT47XG4gICAgfSxcbiAgKSB7XG4gICAgY29uc3Qgc2VnbWVudHMgPSBuZXcgT0RhdGFQYXRoU2VnbWVudHMoKTtcbiAgICBjb25zdCBzZWdtZW50ID0gc2VnbWVudHMuYWRkKFBhdGhTZWdtZW50LmVudGl0eVNldCwgcGF0aCk7XG4gICAgaWYgKHNjaGVtYSAhPT0gdW5kZWZpbmVkKSBzZWdtZW50LnR5cGUoc2NoZW1hLnR5cGUoKSk7XG4gICAgcmV0dXJuIG5ldyBPRGF0YUVudGl0eVNldFJlc291cmNlPEU+KGFwaSwgeyBzZWdtZW50cywgcXVlcnksIHNjaGVtYSB9KTtcbiAgfVxuICBvdmVycmlkZSBjbG9uZSgpOiBPRGF0YUVudGl0eVNldFJlc291cmNlPFQ+IHtcbiAgICByZXR1cm4gc3VwZXIuY2xvbmUoKSBhcyBPRGF0YUVudGl0eVNldFJlc291cmNlPFQ+O1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIGVudGl0eShrZXk/OiBhbnkpIHtcbiAgICBjb25zdCBlbnRpdHkgPSBPRGF0YUVudGl0eVJlc291cmNlLmZhY3Rvcnk8VD4odGhpcy5hcGksIHtcbiAgICAgIHNjaGVtYTogdGhpcy5zY2hlbWEgYXMgT0RhdGFTdHJ1Y3R1cmVkVHlwZTxUPixcbiAgICAgIHNlZ21lbnRzOiB0aGlzLmNsb25lU2VnbWVudHMoKSxcbiAgICAgIHF1ZXJ5OiB0aGlzLmNsb25lUXVlcnk8VD4oKSxcbiAgICB9KTtcbiAgICBpZiAoa2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBlbnRpdHkua2V5KGtleSk7XG4gICAgfVxuICAgIHJldHVybiBlbnRpdHk7XG4gIH1cblxuICBhY3Rpb248UCwgUj4ocGF0aDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIE9EYXRhQWN0aW9uUmVzb3VyY2UuZnJvbVJlc291cmNlPFAsIFI+KHRoaXMsIHBhdGgpO1xuICB9XG5cbiAgZnVuY3Rpb248UCwgUj4ocGF0aDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIE9EYXRhRnVuY3Rpb25SZXNvdXJjZS5mcm9tUmVzb3VyY2U8UCwgUj4odGhpcywgcGF0aCk7XG4gIH1cblxuICBjb3VudCgpIHtcbiAgICByZXR1cm4gT0RhdGFDb3VudFJlc291cmNlLmZhY3Rvcnk8VD4odGhpcy5hcGksIHtcbiAgICAgIHNlZ21lbnRzOiB0aGlzLmNsb25lU2VnbWVudHMoKSxcbiAgICAgIHF1ZXJ5OiB0aGlzLmNsb25lUXVlcnk8VD4oKSxcbiAgICB9KTtcbiAgfVxuXG4gIGNhc3Q8Qz4odHlwZTogc3RyaW5nKSB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHRoaXMuc2NoZW1hIGFzIE9EYXRhU3RydWN0dXJlZFR5cGU8VD47XG4gICAgY29uc3QgY2FzdFNjaGVtYSA9IHRoaXMuYXBpLmZpbmRTdHJ1Y3R1cmVkVHlwZUZvclR5cGU8Qz4odHlwZSk7XG4gICAgaWYgKFxuICAgICAgY2FzdFNjaGVtYSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBiYXNlU2NoZW1hICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICFjYXN0U2NoZW1hLmlzU3VidHlwZU9mKGJhc2VTY2hlbWEpXG4gICAgKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgY2FzdCB0byAke3R5cGV9YCk7XG4gICAgY29uc3Qgc2VnbWVudHMgPSB0aGlzLmNsb25lU2VnbWVudHMoKTtcbiAgICBzZWdtZW50cy5hZGQoUGF0aFNlZ21lbnQudHlwZSwgdHlwZSkudHlwZSh0eXBlKTtcbiAgICByZXR1cm4gbmV3IE9EYXRhRW50aXR5U2V0UmVzb3VyY2U8Qz4odGhpcy5hcGksIHtcbiAgICAgIHNlZ21lbnRzLFxuICAgICAgc2NoZW1hOiBjYXN0U2NoZW1hLFxuICAgICAgcXVlcnk6IHRoaXMuY2xvbmVRdWVyeTxDPigpLFxuICAgIH0pO1xuICB9XG5cbiAgLy8jcmVnaW9uIFJlcXVlc3RzXG4gIHByb3RlY3RlZCBvdmVycmlkZSBwb3N0KFxuICAgIGF0dHJzOiBQYXJ0aWFsPFQ+LFxuICAgIG9wdGlvbnM/OiBPRGF0YU9wdGlvbnMsXG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHN1cGVyLnBvc3QoYXR0cnMsIHsgcmVzcG9uc2VUeXBlOiAnZW50aXR5JywgLi4ub3B0aW9ucyB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBnZXQoXG4gICAgb3B0aW9uczogT0RhdGFPcHRpb25zICYge1xuICAgICAgd2l0aENvdW50PzogYm9vbGVhbjtcbiAgICAgIGJvZHlRdWVyeU9wdGlvbnM/OiBRdWVyeU9wdGlvbltdO1xuICAgIH0gPSB7fSxcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gc3VwZXIuZ2V0KHsgcmVzcG9uc2VUeXBlOiAnZW50aXRpZXMnLCAuLi5vcHRpb25zIH0pO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBTaG9ydGN1dHNcbiAgY3JlYXRlKFxuICAgIGF0dHJzOiBQYXJ0aWFsPFQ+LFxuICAgIG9wdGlvbnM/OiBPRGF0YU9wdGlvbnMsXG4gICk6IE9ic2VydmFibGU8T0RhdGFFbnRpdHk8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5wb3N0KGF0dHJzLCBvcHRpb25zKTtcbiAgfVxuXG4gIGZldGNoKFxuICAgIG9wdGlvbnM/OiBPRGF0YU9wdGlvbnMgJiB7XG4gICAgICB3aXRoQ291bnQ/OiBib29sZWFuO1xuICAgICAgYm9keVF1ZXJ5T3B0aW9ucz86IFF1ZXJ5T3B0aW9uW107XG4gICAgfSxcbiAgKTogT2JzZXJ2YWJsZTxPRGF0YUVudGl0aWVzPFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KG9wdGlvbnMpO1xuICB9XG5cbiAgZmV0Y2hBbGwoXG4gICAgb3B0aW9ucz86IE9EYXRhT3B0aW9ucyAmIHtcbiAgICAgIHdpdGhDb3VudD86IGJvb2xlYW47XG4gICAgICBib2R5UXVlcnlPcHRpb25zPzogUXVlcnlPcHRpb25bXTtcbiAgICB9LFxuICApOiBPYnNlcnZhYmxlPHsgZW50aXRpZXM6IFRbXTsgYW5ub3RzOiBPRGF0YUVudGl0aWVzQW5ub3RhdGlvbnM8VD4gfT4ge1xuICAgIGxldCByZXMgPSB0aGlzLmNsb25lKCk7XG4gICAgLy8gQ2xlYW4gUGFnaW5nXG4gICAgcmVzLnF1ZXJ5KChxKSA9PiBxLmNsZWFyUGFnaW5nKCkpO1xuICAgIGxldCBmZXRjaCA9IChvcHRzPzoge1xuICAgICAgc2tpcD86IG51bWJlcjtcbiAgICAgIHNraXB0b2tlbj86IHN0cmluZztcbiAgICAgIHRvcD86IG51bWJlcjtcbiAgICB9KTogT2JzZXJ2YWJsZTxPRGF0YUVudGl0aWVzPFQ+PiA9PiB7XG4gICAgICBpZiAob3B0cykge1xuICAgICAgICByZXMucXVlcnkoKHEpID0+IHEucGFnaW5nKG9wdHMpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXMuZmV0Y2gob3B0aW9ucyk7XG4gICAgfTtcbiAgICByZXR1cm4gZmV0Y2goKS5waXBlKFxuICAgICAgZXhwYW5kKCh7IGFubm90cyB9KSA9PlxuICAgICAgICBhbm5vdHMuc2tpcCB8fCBhbm5vdHMuc2tpcHRva2VuID8gZmV0Y2goYW5ub3RzKSA6IEVNUFRZLFxuICAgICAgKSxcbiAgICAgIG1hcCgoeyBlbnRpdGllcywgYW5ub3RzIH0pID0+ICh7IGVudGl0aWVzOiBlbnRpdGllcyB8fCBbXSwgYW5ub3RzIH0pKSxcbiAgICAgIHJlZHVjZSgoYWNjLCB7IGVudGl0aWVzLCBhbm5vdHMgfSkgPT4gKHtcbiAgICAgICAgZW50aXRpZXM6IFsuLi4oYWNjLmVudGl0aWVzIHx8IFtdKSwgLi4uKGVudGl0aWVzIHx8IFtdKV0sXG4gICAgICAgIGFubm90czogYWNjLmFubm90cy51bmlvbihhbm5vdHMpLFxuICAgICAgfSkpLFxuICAgICk7XG4gIH1cblxuICBmZXRjaE1hbnkoXG4gICAgdG9wOiBudW1iZXIsXG4gICAgb3B0aW9ucz86IE9EYXRhT3B0aW9ucyAmIHtcbiAgICAgIHdpdGhDb3VudD86IGJvb2xlYW47XG4gICAgICBib2R5UXVlcnlPcHRpb25zPzogUXVlcnlPcHRpb25bXTtcbiAgICB9LFxuICApOiBPYnNlcnZhYmxlPHsgZW50aXRpZXM6IFRbXTsgYW5ub3RzOiBPRGF0YUVudGl0aWVzQW5ub3RhdGlvbnM8VD4gfT4ge1xuICAgIGxldCByZXMgPSB0aGlzLmNsb25lKCk7XG4gICAgbGV0IGZldGNoID0gKG9wdHM/OiB7XG4gICAgICBza2lwPzogbnVtYmVyO1xuICAgICAgc2tpcHRva2VuPzogc3RyaW5nO1xuICAgICAgdG9wPzogbnVtYmVyO1xuICAgIH0pOiBPYnNlcnZhYmxlPE9EYXRhRW50aXRpZXM8VD4+ID0+IHtcbiAgICAgIGlmIChvcHRzKSB7XG4gICAgICAgIHJlcy5xdWVyeSgocSkgPT4gcS5wYWdpbmcob3B0cykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlcy5mZXRjaChvcHRpb25zKTtcbiAgICB9O1xuICAgIHJldHVybiBmZXRjaCh7IHRvcCB9KS5waXBlKFxuICAgICAgZXhwYW5kKCh7IGFubm90cyB9KSA9PlxuICAgICAgICBhbm5vdHMuc2tpcCB8fCBhbm5vdHMuc2tpcHRva2VuID8gZmV0Y2goYW5ub3RzKSA6IEVNUFRZLFxuICAgICAgKSxcbiAgICAgIG1hcCgoeyBlbnRpdGllcywgYW5ub3RzIH0pID0+ICh7IGVudGl0aWVzOiBlbnRpdGllcyB8fCBbXSwgYW5ub3RzIH0pKSxcbiAgICAgIHJlZHVjZSgoYWNjLCB7IGVudGl0aWVzLCBhbm5vdHMgfSkgPT4gKHtcbiAgICAgICAgZW50aXRpZXM6IFsuLi4oYWNjLmVudGl0aWVzIHx8IFtdKSwgLi4uKGVudGl0aWVzIHx8IFtdKV0sXG4gICAgICAgIGFubm90czogYWNjLmFubm90cy51bmlvbihhbm5vdHMpLFxuICAgICAgfSkpLFxuICAgICk7XG4gIH1cblxuICBmZXRjaE9uZShcbiAgICBvcHRpb25zPzogT0RhdGFPcHRpb25zICYge1xuICAgICAgd2l0aENvdW50PzogYm9vbGVhbjtcbiAgICAgIGJvZHlRdWVyeU9wdGlvbnM/OiBRdWVyeU9wdGlvbltdO1xuICAgIH0sXG4gICk6IE9ic2VydmFibGU8eyBlbnRpdHk6IFQgfCBudWxsOyBhbm5vdHM6IE9EYXRhRW50aXRpZXNBbm5vdGF0aW9uczxUPiB9PiB7XG4gICAgcmV0dXJuIHRoaXMuZmV0Y2hNYW55KDEsIG9wdGlvbnMpLnBpcGUoXG4gICAgICBtYXAoKHsgZW50aXRpZXMsIGFubm90cyB9KSA9PiAoe1xuICAgICAgICBlbnRpdHk6IGVudGl0aWVzLmxlbmd0aCA9PT0gMSA/IGVudGl0aWVzWzBdIDogbnVsbCxcbiAgICAgICAgYW5ub3RzLFxuICAgICAgfSkpLFxuICAgICk7XG4gIH1cblxuICBmZXRjaEVudGl0aWVzKFxuICAgIG9wdGlvbnM/OiBPRGF0YU9wdGlvbnMgJiB7XG4gICAgICB3aXRoQ291bnQ/OiBib29sZWFuO1xuICAgICAgYm9keVF1ZXJ5T3B0aW9ucz86IFF1ZXJ5T3B0aW9uW107XG4gICAgfSxcbiAgKTogT2JzZXJ2YWJsZTxUW10gfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuZmV0Y2gob3B0aW9ucykucGlwZShtYXAoKHsgZW50aXRpZXMgfSkgPT4gZW50aXRpZXMpKTtcbiAgfVxuXG4gIGZldGNoQ29sbGVjdGlvbjxNIGV4dGVuZHMgT0RhdGFNb2RlbDxUPiwgQyBleHRlbmRzIE9EYXRhQ29sbGVjdGlvbjxULCBNPj4oXG4gICAgb3B0aW9ucz86IE9EYXRhT3B0aW9ucyAmIHtcbiAgICAgIHdpdGhDb3VudD86IGJvb2xlYW47XG4gICAgICBib2R5UXVlcnlPcHRpb25zPzogUXVlcnlPcHRpb25bXTtcbiAgICB9LFxuICApOiBPYnNlcnZhYmxlPEMgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuZmV0Y2gob3B0aW9ucykucGlwZShcbiAgICAgIG1hcCgoeyBlbnRpdGllcywgYW5ub3RzIH0pID0+XG4gICAgICAgIGVudGl0aWVzID8gdGhpcy5hc0NvbGxlY3Rpb248TSwgQz4oZW50aXRpZXMsIHsgYW5ub3RzIH0pIDogbnVsbCxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cbn1cbiJdfQ==
|
|
@@ -106,4 +106,4 @@ export class ODataEntityResource extends ODataResource {
|
|
|
106
106
|
return this.fetch(options).pipe(map(({ entity, annots }) => entity ? this.asModel(entity, { annots }) : null));
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL3Jlc291cmNlcy90eXBlcy9lbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJckMsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM3QyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV4RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFbkQsTUFBTSxPQUFPLG1CQUF1QixTQUFRLGFBQWdCO0lBQzFELGlCQUFpQjtJQUNqQixNQUFNLENBQUMsT0FBTyxDQUNaLEdBQWEsRUFDYixFQUNFLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxHQUtOO1FBRUQsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hFLE9BQU8sSUFBSSxtQkFBbUIsQ0FBSSxHQUFHLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUNRLEtBQUs7UUFDWixPQUFPLEtBQUssQ0FBQyxLQUFLLEVBQTRCLENBQUM7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QUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsTUFBTSxDQUNKLEtBQWlCLEVBQ2pCLE9BQXNCO1FBRXRCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELE9BQU8sQ0FBQyxPQUFzQjtRQUM1QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELEtBQUssQ0FDSCxPQUVDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEIsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQyxDQUFDO1FBQzNFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsV0FBVyxDQUNULE9BRUM7UUFFRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELFVBQVUsQ0FDUixPQUVDO1FBRUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDN0IsR0FBRyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUN6QixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUksTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNwRCxDQUNGLENBQUM7SUFDSixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBPRGF0YUFwaSB9IGZyb20gJy4uLy4uL2FwaSc7XG5pbXBvcnQgeyBPRGF0YU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IE9EYXRhU3RydWN0dXJlZFR5cGUgfSBmcm9tICcuLi8uLi9zY2hlbWEvc3RydWN0dXJlZC10eXBlJztcbmltcG9ydCB7IFBhdGhTZWdtZW50LCBRdWVyeU9wdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IE9EYXRhUGF0aFNlZ21lbnRzIH0gZnJvbSAnLi4vcGF0aCc7XG5pbXBvcnQgeyBPRGF0YVF1ZXJ5T3B0aW9ucyB9IGZyb20gJy4uL3F1ZXJ5JztcbmltcG9ydCB7IE9EYXRhUmVzb3VyY2UgfSBmcm9tICcuLi9yZXNvdXJjZSc7XG5pbXBvcnQgeyBPRGF0YUVudGl0eSB9IGZyb20gJy4uL3Jlc3BvbnNlcy90eXBlcyc7XG5pbXBvcnQgeyBPRGF0YUFjdGlvblJlc291cmNlIH0gZnJvbSAnLi9hY3Rpb24nO1xuaW1wb3J0IHsgT0RhdGFGdW5jdGlvblJlc291cmNlIH0gZnJvbSAnLi9mdW5jdGlvbic7XG5pbXBvcnQgeyBPRGF0YU1lZGlhUmVzb3VyY2UgfSBmcm9tICcuL21lZGlhJztcbmltcG9ydCB7IE9EYXRhTmF2aWdhdGlvblByb3BlcnR5UmVzb3VyY2UgfSBmcm9tICcuL25hdmlnYXRpb24tcHJvcGVydHknO1xuaW1wb3J0IHsgT0RhdGFPcHRpb25zIH0gZnJvbSAnLi9vcHRpb25zJztcbmltcG9ydCB7IE9EYXRhUHJvcGVydHlSZXNvdXJjZSB9IGZyb20gJy4vcHJvcGVydHknO1xuXG5leHBvcnQgY2xhc3MgT0RhdGFFbnRpdHlSZXNvdXJjZTxUPiBleHRlbmRzIE9EYXRhUmVzb3VyY2U8VD4ge1xuICAvLyNyZWdpb24gRmFjdG9yeVxuICBzdGF0aWMgZmFjdG9yeTxFPihcbiAgICBhcGk6IE9EYXRhQXBpLFxuICAgIHtcbiAgICAgIHNjaGVtYSxcbiAgICAgIHNlZ21lbnRzLFxuICAgICAgcXVlcnksXG4gICAgfToge1xuICAgICAgc2NoZW1hPzogT0RhdGFTdHJ1Y3R1cmVkVHlwZTxFPjtcbiAgICAgIHNlZ21lbnRzOiBPRGF0YVBhdGhTZWdtZW50cztcbiAgICAgIHF1ZXJ5PzogT0RhdGFRdWVyeU9wdGlvbnM8RT47XG4gICAgfVxuICApIHtcbiAgICBxdWVyeT8ua2VlcChRdWVyeU9wdGlvbi5leHBhbmQsIFF1ZXJ5T3B0aW9uLnNlbGVjdCwgUXVlcnlPcHRpb24uZm9ybWF0KTtcbiAgICByZXR1cm4gbmV3IE9EYXRhRW50aXR5UmVzb3VyY2U8RT4oYXBpLCB7IHNlZ21lbnRzLCBxdWVyeSwgc2NoZW1hIH0pO1xuICB9XG4gIG92ZXJyaWRlIGNsb25lKCk6IE9EYXRhRW50aXR5UmVzb3VyY2U8VD4ge1xuICAgIHJldHVybiBzdXBlci5jbG9uZSgpIGFzIE9EYXRhRW50aXR5UmVzb3VyY2U8VD47XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAga2V5KHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCBlbnRpdHkgPSB0aGlzLmNsb25lKCk7XG4gICAgdmFyIGtleSA9IHRoaXMucmVzb2x2ZUtleSh2YWx1ZSk7XG4gICAgaWYgKGtleSAhPT0gdW5kZWZpbmVkKSBlbnRpdHkuc2VnbWVudCgocykgPT4gcy5lbnRpdHlTZXQoKS5rZXkoa2V5KSk7XG4gICAgcmV0dXJuIGVudGl0eTtcbiAgfVxuXG4gIGtleXModmFsdWVzOiBhbnlbXSkge1xuICAgIGNvbnN0IGVudGl0eSA9IHRoaXMuY2xvbmUoKTtcbiAgICBjb25zdCB0eXBlcyA9IHRoaXMucGF0aFNlZ21lbnRzLnR5cGVzKHsga2V5OiB0cnVlIH0pO1xuICAgIGNvbnN0IGtleXMgPSB2YWx1ZXMubWFwKCh2YWx1ZSwgaW5kZXgpID0+XG4gICAgICBPRGF0YVJlc291cmNlLnJlc29sdmVLZXkoXG4gICAgICAgIHZhbHVlLFxuICAgICAgICB0aGlzLmFwaS5maW5kU3RydWN0dXJlZFR5cGVGb3JUeXBlPFQ+KHR5cGVzW2luZGV4XSlcbiAgICAgIClcbiAgICApO1xuICAgIGVudGl0eS5zZWdtZW50KChzKSA9PiBzLmtleXMoa2V5cykpO1xuICAgIHJldHVybiBlbnRpdHk7XG4gIH1cblxuICBtZWRpYSgpIHtcbiAgICByZXR1cm4gT0RhdGFNZWRpYVJlc291cmNlLmZhY3Rvcnk8VD4odGhpcy5hcGksIHtcbiAgICAgIHNlZ21lbnRzOiB0aGlzLmNsb25lU2VnbWVudHMoKSxcbiAgICAgIHF1ZXJ5OiB0aGlzLmNsb25lUXVlcnk8VD4oKSxcbiAgICB9KTtcbiAgfVxuXG4gIG5hdmlnYXRpb25Qcm9wZXJ0eTxOPihwYXRoOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gT0RhdGFOYXZpZ2F0aW9uUHJvcGVydHlSZXNvdXJjZS5mcm9tUmVzb3VyY2U8Tj4odGhpcywgcGF0aCk7XG4gIH1cblxuICBwcm9wZXJ0eTxQPihwYXRoOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gT0RhdGFQcm9wZXJ0eVJlc291cmNlLmZyb21SZXNvdXJjZTxQPih0aGlzLCBwYXRoKTtcbiAgfVxuXG4gIGFjdGlvbjxQLCBSPihwYXRoOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gT0RhdGFBY3Rpb25SZXNvdXJjZS5mcm9tUmVzb3VyY2U8UCwgUj4odGhpcywgcGF0aCk7XG4gIH1cblxuICBmdW5jdGlvbjxQLCBSPihwYXRoOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gT0RhdGFGdW5jdGlvblJlc291cmNlLmZyb21SZXNvdXJjZTxQLCBSPih0aGlzLCBwYXRoKTtcbiAgfVxuXG4gIGNhc3Q8Qz4odHlwZTogc3RyaW5nKSB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHRoaXMuc2NoZW1hIGFzIE9EYXRhU3RydWN0dXJlZFR5cGU8VD47XG4gICAgY29uc3QgY2FzdFNjaGVtYSA9IHRoaXMuYXBpLmZpbmRTdHJ1Y3R1cmVkVHlwZUZvclR5cGU8Qz4odHlwZSk7XG4gICAgaWYgKFxuICAgICAgY2FzdFNjaGVtYSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBiYXNlU2NoZW1hICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICFjYXN0U2NoZW1hLmlzU3VidHlwZU9mKGJhc2VTY2hlbWEpXG4gICAgKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBjYXN0OiBDYW5ub3QgY2FzdCB0byAke3R5cGV9YCk7XG4gICAgY29uc3Qgc2VnbWVudHMgPSB0aGlzLmNsb25lU2VnbWVudHMoKTtcbiAgICBzZWdtZW50cy5hZGQoUGF0aFNlZ21lbnQudHlwZSwgdHlwZSkudHlwZSh0eXBlKTtcbiAgICByZXR1cm4gbmV3IE9EYXRhRW50aXR5UmVzb3VyY2U8Qz4odGhpcy5hcGksIHtcbiAgICAgIHNlZ21lbnRzLFxuICAgICAgc2NoZW1hOiBjYXN0U2NoZW1hLFxuICAgICAgcXVlcnk6IHRoaXMuY2xvbmVRdWVyeTxDPigpLFxuICAgIH0pO1xuICB9XG5cbiAgLy8jcmVnaW9uIFJlcXVlc3RzXG4gIHByb3RlY3RlZCBvdmVycmlkZSBwb3N0KFxuICAgIGF0dHJzOiBQYXJ0aWFsPFQ+LFxuICAgIG9wdGlvbnM6IE9EYXRhT3B0aW9ucyA9IHt9XG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHN1cGVyLnBvc3QoYXR0cnMsIHsgcmVzcG9uc2VUeXBlOiAnZW50aXR5JywgLi4ub3B0aW9ucyB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBwdXQoXG4gICAgYXR0cnM6IFBhcnRpYWw8VD4sXG4gICAgb3B0aW9uczogT0RhdGFPcHRpb25zID0ge31cbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gc3VwZXIucHV0KGF0dHJzLCB7IHJlc3BvbnNlVHlwZTogJ2VudGl0eScsIC4uLm9wdGlvbnMgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcGF0Y2goXG4gICAgYXR0cnM6IFBhcnRpYWw8VD4sXG4gICAgb3B0aW9uczogT0RhdGFPcHRpb25zID0ge31cbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gc3VwZXIucGF0Y2goYXR0cnMsIHsgcmVzcG9uc2VUeXBlOiAnZW50aXR5JywgLi4ub3B0aW9ucyB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBkZWxldGUob3B0aW9uczogT0RhdGFPcHRpb25zID0ge30pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBzdXBlci5kZWxldGUoeyByZXNwb25zZVR5cGU6ICdlbnRpdHknLCAuLi5vcHRpb25zIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGdldChcbiAgICBvcHRpb25zOiBPRGF0YU9wdGlvbnMgJiB7XG4gICAgICBib2R5UXVlcnlPcHRpb25zPzogUXVlcnlPcHRpb25bXTtcbiAgICB9ID0ge31cbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gc3VwZXIuZ2V0KHsgcmVzcG9uc2VUeXBlOiAnZW50aXR5JywgLi4ub3B0aW9ucyB9KTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gU2hvcnRjdXRzXG4gIGNyZWF0ZShcbiAgICBhdHRyczogUGFydGlhbDxUPixcbiAgICBvcHRpb25zPzogT0RhdGFPcHRpb25zXG4gICk6IE9ic2VydmFibGU8T0RhdGFFbnRpdHk8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5wb3N0KGF0dHJzLCBvcHRpb25zKTtcbiAgfVxuXG4gIHVwZGF0ZShcbiAgICBhdHRyczogUGFydGlhbDxUPixcbiAgICBvcHRpb25zPzogT0RhdGFPcHRpb25zXG4gICk6IE9ic2VydmFibGU8T0RhdGFFbnRpdHk8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5wdXQoYXR0cnMsIG9wdGlvbnMpO1xuICB9XG5cbiAgbW9kaWZ5KFxuICAgIGF0dHJzOiBQYXJ0aWFsPFQ+LFxuICAgIG9wdGlvbnM/OiBPRGF0YU9wdGlvbnNcbiAgKTogT2JzZXJ2YWJsZTxPRGF0YUVudGl0eTxUPj4ge1xuICAgIHJldHVybiB0aGlzLnBhdGNoKGF0dHJzLCBvcHRpb25zKTtcbiAgfVxuXG4gIGRlc3Ryb3kob3B0aW9ucz86IE9EYXRhT3B0aW9ucyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuZGVsZXRlKG9wdGlvbnMpO1xuICB9XG5cbiAgZmV0Y2goXG4gICAgb3B0aW9ucz86IE9EYXRhT3B0aW9ucyAmIHtcbiAgICAgIGJvZHlRdWVyeU9wdGlvbnM/OiBRdWVyeU9wdGlvbltdO1xuICAgIH1cbiAgKTogT2JzZXJ2YWJsZTxPRGF0YUVudGl0eTxUPj4ge1xuICAgIGlmICghdGhpcy5oYXNLZXkoKSlcbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcignZmV0Y2g6IEVudGl0eSByZXNvdXJjZSB3aXRob3V0IGtleScpKTtcbiAgICByZXR1cm4gdGhpcy5nZXQob3B0aW9ucyk7XG4gIH1cblxuICBmZXRjaEVudGl0eShcbiAgICBvcHRpb25zPzogT0RhdGFPcHRpb25zICYge1xuICAgICAgYm9keVF1ZXJ5T3B0aW9ucz86IFF1ZXJ5T3B0aW9uW107XG4gICAgfVxuICApOiBPYnNlcnZhYmxlPFQgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuZmV0Y2gob3B0aW9ucykucGlwZShtYXAoKHsgZW50aXR5IH0pID0+IGVudGl0eSkpO1xuICB9XG5cbiAgZmV0Y2hNb2RlbDxNIGV4dGVuZHMgT0RhdGFNb2RlbDxUPj4oXG4gICAgb3B0aW9ucz86IE9EYXRhT3B0aW9ucyAmIHtcbiAgICAgIGJvZHlRdWVyeU9wdGlvbnM/OiBRdWVyeU9wdGlvbltdO1xuICAgIH1cbiAgKTogT2JzZXJ2YWJsZTxNIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLmZldGNoKG9wdGlvbnMpLnBpcGUoXG4gICAgICBtYXAoKHsgZW50aXR5LCBhbm5vdHMgfSkgPT5cbiAgICAgICAgZW50aXR5ID8gdGhpcy5hc01vZGVsPE0+KGVudGl0eSwgeyBhbm5vdHMgfSkgOiBudWxsXG4gICAgICApXG4gICAgKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cbn1cbiJdfQ==
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL3Jlc291cmNlcy90eXBlcy9lbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJckMsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM3QyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV4RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFbkQsTUFBTSxPQUFPLG1CQUF1QixTQUFRLGFBQWdCO0lBQzFELGlCQUFpQjtJQUNqQixNQUFNLENBQUMsT0FBTyxDQUNaLEdBQWEsRUFDYixFQUNFLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxHQUtOO1FBRUQsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hFLE9BQU8sSUFBSSxtQkFBbUIsQ0FBSSxHQUFHLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUNRLEtBQUs7UUFDWixPQUFPLEtBQUssQ0FBQyxLQUFLLEVBQTRCLENBQUM7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QUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsTUFBTSxDQUNKLEtBQWlCLEVBQ2pCLE9BQXNCO1FBRXRCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELE9BQU8sQ0FBQyxPQUFzQjtRQUM1QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELEtBQUssQ0FDSCxPQUVDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEIsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQyxDQUFDO1FBQzNFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsV0FBVyxDQUNULE9BRUM7UUFFRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELFVBQVUsQ0FDUixPQUVDO1FBRUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDN0IsR0FBRyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUN6QixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUksTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNwRCxDQUNGLENBQUM7SUFDSixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBPRGF0YUFwaSB9IGZyb20gJy4uLy4uL2FwaSc7XG5pbXBvcnQgeyBPRGF0YU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IE9EYXRhU3RydWN0dXJlZFR5cGUgfSBmcm9tICcuLi8uLi9zY2hlbWEvc3RydWN0dXJlZC10eXBlJztcbmltcG9ydCB7IFBhdGhTZWdtZW50LCBRdWVyeU9wdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IE9EYXRhUGF0aFNlZ21lbnRzIH0gZnJvbSAnLi4vcGF0aCc7XG5pbXBvcnQgeyBPRGF0YVF1ZXJ5T3B0aW9ucyB9IGZyb20gJy4uL3F1ZXJ5JztcbmltcG9ydCB7IE9EYXRhUmVzb3VyY2UgfSBmcm9tICcuLi9yZXNvdXJjZSc7XG5pbXBvcnQgeyBPRGF0YUVudGl0eSB9IGZyb20gJy4uL3Jlc3BvbnNlcy90eXBlcyc7XG5pbXBvcnQgeyBPRGF0YUFjdGlvblJlc291cmNlIH0gZnJvbSAnLi9hY3Rpb24nO1xuaW1wb3J0IHsgT0RhdGFGdW5jdGlvblJlc291cmNlIH0gZnJvbSAnLi9mdW5jdGlvbic7XG5pbXBvcnQgeyBPRGF0YU1lZGlhUmVzb3VyY2UgfSBmcm9tICcuL21lZGlhJztcbmltcG9ydCB7IE9EYXRhTmF2aWdhdGlvblByb3BlcnR5UmVzb3VyY2UgfSBmcm9tICcuL25hdmlnYXRpb24tcHJvcGVydHknO1xuaW1wb3J0IHsgT0RhdGFPcHRpb25zIH0gZnJvbSAnLi9vcHRpb25zJztcbmltcG9ydCB7IE9EYXRhUHJvcGVydHlSZXNvdXJjZSB9IGZyb20gJy4vcHJvcGVydHknO1xuXG5leHBvcnQgY2xhc3MgT0RhdGFFbnRpdHlSZXNvdXJjZTxUPiBleHRlbmRzIE9EYXRhUmVzb3VyY2U8VD4ge1xuICAvLyNyZWdpb24gRmFjdG9yeVxuICBzdGF0aWMgZmFjdG9yeTxFPihcbiAgICBhcGk6IE9EYXRhQXBpLFxuICAgIHtcbiAgICAgIHNjaGVtYSxcbiAgICAgIHNlZ21lbnRzLFxuICAgICAgcXVlcnksXG4gICAgfToge1xuICAgICAgc2NoZW1hPzogT0RhdGFTdHJ1Y3R1cmVkVHlwZTxFPjtcbiAgICAgIHNlZ21lbnRzOiBPRGF0YVBhdGhTZWdtZW50cztcbiAgICAgIHF1ZXJ5PzogT0RhdGFRdWVyeU9wdGlvbnM8RT47XG4gICAgfSxcbiAgKSB7XG4gICAgcXVlcnk/LmtlZXAoUXVlcnlPcHRpb24uZXhwYW5kLCBRdWVyeU9wdGlvbi5zZWxlY3QsIFF1ZXJ5T3B0aW9uLmZvcm1hdCk7XG4gICAgcmV0dXJuIG5ldyBPRGF0YUVudGl0eVJlc291cmNlPEU+KGFwaSwgeyBzZWdtZW50cywgcXVlcnksIHNjaGVtYSB9KTtcbiAgfVxuICBvdmVycmlkZSBjbG9uZSgpOiBPRGF0YUVudGl0eVJlc291cmNlPFQ+IHtcbiAgICByZXR1cm4gc3VwZXIuY2xvbmUoKSBhcyBPRGF0YUVudGl0eVJlc291cmNlPFQ+O1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIGtleSh2YWx1ZTogYW55KSB7XG4gICAgY29uc3QgZW50aXR5ID0gdGhpcy5jbG9uZSgpO1xuICAgIHZhciBrZXkgPSB0aGlzLnJlc29sdmVLZXkodmFsdWUpO1xuICAgIGlmIChrZXkgIT09IHVuZGVmaW5lZCkgZW50aXR5LnNlZ21lbnQoKHMpID0+IHMuZW50aXR5U2V0KCkua2V5KGtleSkpO1xuICAgIHJldHVybiBlbnRpdHk7XG4gIH1cblxuICBrZXlzKHZhbHVlczogYW55W10pIHtcbiAgICBjb25zdCBlbnRpdHkgPSB0aGlzLmNsb25lKCk7XG4gICAgY29uc3QgdHlwZXMgPSB0aGlzLnBhdGhTZWdtZW50cy50eXBlcyh7IGtleTogdHJ1ZSB9KTtcbiAgICBjb25zdCBrZXlzID0gdmFsdWVzLm1hcCgodmFsdWUsIGluZGV4KSA9PlxuICAgICAgT0RhdGFSZXNvdXJjZS5yZXNvbHZlS2V5KFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgdGhpcy5hcGkuZmluZFN0cnVjdHVyZWRUeXBlRm9yVHlwZTxUPih0eXBlc1tpbmRleF0pLFxuICAgICAgKSxcbiAgICApO1xuICAgIGVudGl0eS5zZWdtZW50KChzKSA9PiBzLmtleXMoa2V5cykpO1xuICAgIHJldHVybiBlbnRpdHk7XG4gIH1cblxuICBtZWRpYSgpIHtcbiAgICByZXR1cm4gT0RhdGFNZWRpYVJlc291cmNlLmZhY3Rvcnk8VD4odGhpcy5hcGksIHtcbiAgICAgIHNlZ21lbnRzOiB0aGlzLmNsb25lU2VnbWVudHMoKSxcbiAgICAgIHF1ZXJ5OiB0aGlzLmNsb25lUXVlcnk8VD4oKSxcbiAgICB9KTtcbiAgfVxuXG4gIG5hdmlnYXRpb25Qcm9wZXJ0eTxOPihwYXRoOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gT0RhdGFOYXZpZ2F0aW9uUHJvcGVydHlSZXNvdXJjZS5mcm9tUmVzb3VyY2U8Tj4odGhpcywgcGF0aCk7XG4gIH1cblxuICBwcm9wZXJ0eTxQPihwYXRoOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gT0RhdGFQcm9wZXJ0eVJlc291cmNlLmZyb21SZXNvdXJjZTxQPih0aGlzLCBwYXRoKTtcbiAgfVxuXG4gIGFjdGlvbjxQLCBSPihwYXRoOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gT0RhdGFBY3Rpb25SZXNvdXJjZS5mcm9tUmVzb3VyY2U8UCwgUj4odGhpcywgcGF0aCk7XG4gIH1cblxuICBmdW5jdGlvbjxQLCBSPihwYXRoOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gT0RhdGFGdW5jdGlvblJlc291cmNlLmZyb21SZXNvdXJjZTxQLCBSPih0aGlzLCBwYXRoKTtcbiAgfVxuXG4gIGNhc3Q8Qz4odHlwZTogc3RyaW5nKSB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHRoaXMuc2NoZW1hIGFzIE9EYXRhU3RydWN0dXJlZFR5cGU8VD47XG4gICAgY29uc3QgY2FzdFNjaGVtYSA9IHRoaXMuYXBpLmZpbmRTdHJ1Y3R1cmVkVHlwZUZvclR5cGU8Qz4odHlwZSk7XG4gICAgaWYgKFxuICAgICAgY2FzdFNjaGVtYSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBiYXNlU2NoZW1hICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICFjYXN0U2NoZW1hLmlzU3VidHlwZU9mKGJhc2VTY2hlbWEpXG4gICAgKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBjYXN0OiBDYW5ub3QgY2FzdCB0byAke3R5cGV9YCk7XG4gICAgY29uc3Qgc2VnbWVudHMgPSB0aGlzLmNsb25lU2VnbWVudHMoKTtcbiAgICBzZWdtZW50cy5hZGQoUGF0aFNlZ21lbnQudHlwZSwgdHlwZSkudHlwZSh0eXBlKTtcbiAgICByZXR1cm4gbmV3IE9EYXRhRW50aXR5UmVzb3VyY2U8Qz4odGhpcy5hcGksIHtcbiAgICAgIHNlZ21lbnRzLFxuICAgICAgc2NoZW1hOiBjYXN0U2NoZW1hLFxuICAgICAgcXVlcnk6IHRoaXMuY2xvbmVRdWVyeTxDPigpLFxuICAgIH0pO1xuICB9XG5cbiAgLy8jcmVnaW9uIFJlcXVlc3RzXG4gIHByb3RlY3RlZCBvdmVycmlkZSBwb3N0KFxuICAgIGF0dHJzOiBQYXJ0aWFsPFQ+LFxuICAgIG9wdGlvbnM6IE9EYXRhT3B0aW9ucyA9IHt9LFxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBzdXBlci5wb3N0KGF0dHJzLCB7IHJlc3BvbnNlVHlwZTogJ2VudGl0eScsIC4uLm9wdGlvbnMgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcHV0KFxuICAgIGF0dHJzOiBQYXJ0aWFsPFQ+LFxuICAgIG9wdGlvbnM6IE9EYXRhT3B0aW9ucyA9IHt9LFxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBzdXBlci5wdXQoYXR0cnMsIHsgcmVzcG9uc2VUeXBlOiAnZW50aXR5JywgLi4ub3B0aW9ucyB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBwYXRjaChcbiAgICBhdHRyczogUGFydGlhbDxUPixcbiAgICBvcHRpb25zOiBPRGF0YU9wdGlvbnMgPSB7fSxcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gc3VwZXIucGF0Y2goYXR0cnMsIHsgcmVzcG9uc2VUeXBlOiAnZW50aXR5JywgLi4ub3B0aW9ucyB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBkZWxldGUob3B0aW9uczogT0RhdGFPcHRpb25zID0ge30pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBzdXBlci5kZWxldGUoeyByZXNwb25zZVR5cGU6ICdlbnRpdHknLCAuLi5vcHRpb25zIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGdldChcbiAgICBvcHRpb25zOiBPRGF0YU9wdGlvbnMgJiB7XG4gICAgICBib2R5UXVlcnlPcHRpb25zPzogUXVlcnlPcHRpb25bXTtcbiAgICB9ID0ge30sXG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHN1cGVyLmdldCh7IHJlc3BvbnNlVHlwZTogJ2VudGl0eScsIC4uLm9wdGlvbnMgfSk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIFNob3J0Y3V0c1xuICBjcmVhdGUoXG4gICAgYXR0cnM6IFBhcnRpYWw8VD4sXG4gICAgb3B0aW9ucz86IE9EYXRhT3B0aW9ucyxcbiAgKTogT2JzZXJ2YWJsZTxPRGF0YUVudGl0eTxUPj4ge1xuICAgIHJldHVybiB0aGlzLnBvc3QoYXR0cnMsIG9wdGlvbnMpO1xuICB9XG5cbiAgdXBkYXRlKFxuICAgIGF0dHJzOiBQYXJ0aWFsPFQ+LFxuICAgIG9wdGlvbnM/OiBPRGF0YU9wdGlvbnMsXG4gICk6IE9ic2VydmFibGU8T0RhdGFFbnRpdHk8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5wdXQoYXR0cnMsIG9wdGlvbnMpO1xuICB9XG5cbiAgbW9kaWZ5KFxuICAgIGF0dHJzOiBQYXJ0aWFsPFQ+LFxuICAgIG9wdGlvbnM/OiBPRGF0YU9wdGlvbnMsXG4gICk6IE9ic2VydmFibGU8T0RhdGFFbnRpdHk8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5wYXRjaChhdHRycywgb3B0aW9ucyk7XG4gIH1cblxuICBkZXN0cm95KG9wdGlvbnM/OiBPRGF0YU9wdGlvbnMpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmRlbGV0ZShvcHRpb25zKTtcbiAgfVxuXG4gIGZldGNoKFxuICAgIG9wdGlvbnM/OiBPRGF0YU9wdGlvbnMgJiB7XG4gICAgICBib2R5UXVlcnlPcHRpb25zPzogUXVlcnlPcHRpb25bXTtcbiAgICB9LFxuICApOiBPYnNlcnZhYmxlPE9EYXRhRW50aXR5PFQ+PiB7XG4gICAgaWYgKCF0aGlzLmhhc0tleSgpKVxuICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCdmZXRjaDogRW50aXR5IHJlc291cmNlIHdpdGhvdXQga2V5JykpO1xuICAgIHJldHVybiB0aGlzLmdldChvcHRpb25zKTtcbiAgfVxuXG4gIGZldGNoRW50aXR5KFxuICAgIG9wdGlvbnM/OiBPRGF0YU9wdGlvbnMgJiB7XG4gICAgICBib2R5UXVlcnlPcHRpb25zPzogUXVlcnlPcHRpb25bXTtcbiAgICB9LFxuICApOiBPYnNlcnZhYmxlPFQgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuZmV0Y2gob3B0aW9ucykucGlwZShtYXAoKHsgZW50aXR5IH0pID0+IGVudGl0eSkpO1xuICB9XG5cbiAgZmV0Y2hNb2RlbDxNIGV4dGVuZHMgT0RhdGFNb2RlbDxUPj4oXG4gICAgb3B0aW9ucz86IE9EYXRhT3B0aW9ucyAmIHtcbiAgICAgIGJvZHlRdWVyeU9wdGlvbnM/OiBRdWVyeU9wdGlvbltdO1xuICAgIH0sXG4gICk6IE9ic2VydmFibGU8TSB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5mZXRjaChvcHRpb25zKS5waXBlKFxuICAgICAgbWFwKCh7IGVudGl0eSwgYW5ub3RzIH0pID0+XG4gICAgICAgIGVudGl0eSA/IHRoaXMuYXNNb2RlbDxNPihlbnRpdHksIHsgYW5ub3RzIH0pIDogbnVsbCxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cbn1cbiJdfQ==
|