@gomomento/sdk-core 1.81.1 → 1.82.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,5 @@
1
1
  import { CacheDelete, CacheGet, CacheIncrement, CacheSet, CacheSetIfNotExists, CacheSetIfAbsent, CacheSetIfPresent, CacheSetIfEqual, CacheSetIfNotEqual, CacheSetIfPresentAndNotEqual, CacheSetIfAbsentOrEqual, CacheSetFetch, CacheSetAddElements, CacheSetAddElement, CacheSetRemoveElements, CacheSetRemoveElement, CacheListFetch, CacheListLength, CacheListPushFront, CacheListPushBack, CacheListConcatenateBack, CacheListConcatenateFront, CacheListPopBack, CacheListPopFront, CacheListRemoveValue, CacheListRetain, CacheDictionarySetField, CacheDictionarySetFields, CacheDictionaryGetField, CacheDictionaryFetch, CacheDictionaryIncrement, CacheDictionaryRemoveField, CacheDictionaryRemoveFields, CacheSortedSetFetch, CacheSortedSetPutElement, CacheSortedSetPutElements, CacheSortedSetGetRank, CacheSortedSetGetScore, CacheSortedSetGetScores, CacheSortedSetIncrementScore, CacheSortedSetRemoveElement, CacheSortedSetLength, CacheSortedSetLengthByScore, CacheItemGetType, CacheItemGetTtl, CacheKeyExists, CacheKeysExist, CacheUpdateTtl, CacheIncreaseTtl, CacheDecreaseTtl, ICacheClient, CacheSortedSetRemoveElements, CacheDictionaryGetFields, CacheDictionaryLength, CacheGetBatch, CacheSetBatch, CacheSetSample } from '../../../index';
2
- import { ScalarCallOptions, ListFetchCallOptions, ListRetainCallOptions, BackTruncatableCallOptions, FrontTruncatableCallOptions, CollectionCallOptions, SortedSetFetchByRankCallOptions, SortedSetFetchByScoreCallOptions, SortedSetLengthByScoreCallOptions } from '../../../utils';
2
+ import { ScalarCallOptions, ListFetchCallOptions, ListRetainCallOptions, BackTruncatableCallOptions, FrontTruncatableCallOptions, CollectionCallOptions, SortedSetFetchByRankCallOptions, SortedSetFetchByScoreCallOptions, SortedSetLengthByScoreCallOptions, SetBatchItem } from '../../../utils';
3
3
  import { IMomentoCache } from '../../../clients/IMomentoCache';
4
4
  export type SetOptions = ScalarCallOptions;
5
5
  export type SetIfNotExistsOptions = ScalarCallOptions;
@@ -42,7 +42,7 @@ export declare class MomentoCache implements IMomentoCache {
42
42
  setIfPresentAndNotEqual(key: string | Uint8Array, value: string | Uint8Array, notEqual: string | Uint8Array, options?: SetIfPresentAndNotEqualOptions): Promise<CacheSetIfPresentAndNotEqual.Response>;
43
43
  setIfAbsentOrEqual(key: string | Uint8Array, value: string | Uint8Array, equal: string | Uint8Array, options?: SetIfAbsentOrEqualOptions): Promise<CacheSetIfAbsentOrEqual.Response>;
44
44
  getBatch(keys: string[] | Uint8Array[]): Promise<CacheGetBatch.Response>;
45
- setBatch(items: Record<string, string | Uint8Array> | Map<string | Uint8Array, string | Uint8Array>, options?: SetBatchOptions): Promise<CacheSetBatch.Response>;
45
+ setBatch(items: Record<string, string | Uint8Array> | Map<string | Uint8Array, string | Uint8Array> | Array<SetBatchItem>, options?: SetBatchOptions): Promise<CacheSetBatch.Response>;
46
46
  setFetch(setName: string): Promise<CacheSetFetch.Response>;
47
47
  setAddElement(setName: string, element: string | Uint8Array, options?: SetAddElementOptions): Promise<CacheSetAddElement.Response>;
48
48
  setAddElements(setName: string, elements: string[] | Uint8Array[], options?: SetAddElementsOptions): Promise<CacheSetAddElements.Response>;
@@ -182,4 +182,4 @@ class MomentoCache {
182
182
  }
183
183
  }
184
184
  exports.MomentoCache = MomentoCache;
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9tZW50by1jYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9pbnRlcm5hbC9jbGllbnRzL2NhY2hlL21vbWVudG8tY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBbUdBLE1BQWEsWUFBWTtJQUd2QixZQUFZLFdBQXlCLEVBQUUsU0FBaUI7UUFDdEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUVELEdBQUcsQ0FBQyxHQUF3QjtRQUMxQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUNELEdBQUcsQ0FDRCxHQUF3QixFQUN4QixLQUEwQixFQUMxQixPQUFvQjtRQUVwQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBQ0QsTUFBTSxDQUFDLEdBQXdCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBQ0QsU0FBUyxDQUNQLEtBQTBCLEVBQzFCLE1BQWMsRUFDZCxPQUEwQjtRQUUxQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBQ0QsY0FBYyxDQUNaLEdBQXdCLEVBQ3hCLEtBQTBCLEVBQzFCLE9BQStCO1FBRS9CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMs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Q0FBQyxDQUFDO0lBQzVFLENBQUM7SUFDRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMzQixDQUFDO0NBQ0Y7QUF6ZUQsb0NBeWVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2FjaGVEZWxldGUsXG4gIENhY2hlR2V0LFxuICBDYWNoZUluY3JlbWVudCxcbiAgQ2FjaGVTZXQsXG4gIENhY2hlU2V0SWZOb3RFeGlzdHMsXG4gIENhY2hlU2V0SWZBYnNlbnQsXG4gIENhY2hlU2V0SWZQcmVzZW50LFxuICBDYWNoZVNldElmRXF1YWwsXG4gIENhY2hlU2V0SWZOb3RFcXVhbCxcbiAgQ2FjaGVTZXRJZlByZXNlbnRBbmROb3RFcXVhbCxcbiAgQ2FjaGVTZXRJZkFic2VudE9yRXF1YWwsXG4gIENhY2hlU2V0RmV0Y2gsXG4gIENhY2hlU2V0QWRkRWxlbWVudHMsXG4gIENhY2hlU2V0QWRkRWxlbWVudCxcbiAgQ2FjaGVTZXRSZW1vdmVFbGVtZW50cyxcbiAgQ2FjaGVTZXRSZW1vdmVFbGVtZW50LFxuICBDYWNoZUxpc3RGZXRjaCxcbiAgQ2FjaGVMaXN0TGVuZ3RoLFxuICBDYWNoZUxpc3RQdXNoRnJvbnQsXG4gIENhY2hlTGlzdFB1c2hCYWNrLFxuICBDYWNoZUxpc3RDb25jYXRlbmF0ZUJhY2ssXG4gIENhY2hlTGlzdENvbmNhdGVuYXRlRnJvbnQsXG4gIENhY2hlTGlzdFBvcEJhY2ssXG4gIENhY2hlTGlzdFBvcEZyb250LFxuICBDYWNoZUxpc3RSZW1vdmVWYWx1ZSxcbiAgQ2FjaGVMaXN0UmV0YWluLFxuICBDYWNoZURpY3Rpb25hcnlTZXRGaWVsZCxcbiAgQ2FjaGVEaWN0aW9uYXJ5U2V0RmllbGRzLFxuICBDYWNoZURpY3Rpb25hcnlHZXRGaWVsZCxcbiAgQ2FjaGVEaWN0aW9uYXJ5RmV0Y2gsXG4gIENhY2hlRGljdGlvbmFyeUluY3JlbWVudCxcbiAgQ2FjaGVEaWN0aW9uYXJ5UmVtb3ZlRmllbGQsXG4gIENhY2hlRGljdGlvbmFyeVJlbW92ZUZpZWxkcyxcbiAgQ2FjaGVTb3J0ZWRTZXRGZXRjaCxcbiAgQ2FjaGVTb3J0ZWRTZXRQdXRFbGVtZW50LFxuICBDYWNoZVNvcnRlZFNldFB1dEVsZW1lbnRzLFxuICBDYWNoZVNvcnRlZFNldEdldFJhbmssXG4gIENhY2hlU29ydGVkU2V0R2V0U2NvcmUsXG4gIENhY2hlU29ydGVkU2V0R2V0U2NvcmVzLFxuICBDYWNoZVNvcnRlZFNldEluY3JlbWVudFNjb3JlLFxuICBDYWNoZVNvcnRlZFNldFJlbW92ZUVsZW1lbnQsXG4gIENhY2hlU29ydGVkU2V0TGVuZ3RoLFxuICBDYWNoZVNvcnRlZFNldExlbmd0aEJ5U2NvcmUsXG4gIENhY2hlSXRlbUdldFR5cGUsXG4gIENhY2hlSXRlbUdldFR0bCxcbiAgQ2FjaGVLZXlFeGlzdHMsXG4gIENhY2hlS2V5c0V4aXN0LFxuICBDYWNoZVVwZGF0ZVR0bCxcbiAgQ2FjaGVJbmNyZWFzZVR0bCxcbiAgQ2FjaGVEZWNyZWFzZVR0bCxcbiAgSUNhY2hlQ2xpZW50LFxuICBDYWNoZVNvcnRlZFNldFJlbW92ZUVsZW1lbnRzLFxuICBDYWNoZURpY3Rpb25hcnlHZXRGaWVsZHMsXG4gIENhY2hlRGljdGlvbmFyeUxlbmd0aCxcbiAgQ2FjaGVHZXRCYXRjaCxcbiAgQ2FjaGVTZXRCYXRjaCxcbiAgQ2FjaGVTZXRTYW1wbGUsXG59IGZyb20gJy4uLy4uLy4uL2luZGV4JztcbmltcG9ydCB7XG4gIFNjYWxhckNhbGxPcHRpb25zLFxuICBMaXN0RmV0Y2hDYWxsT3B0aW9ucyxcbiAgTGlzdFJldGFpbkNhbGxPcHRpb25zLFxuICBCYWNrVHJ1bmNhdGFibGVDYWxsT3B0aW9ucyxcbiAgRnJvbnRUcnVuY2F0YWJsZUNhbGxPcHRpb25zLFxuICBDb2xsZWN0aW9uQ2FsbE9wdGlvbnMsXG4gIFNvcnRlZFNldEZldGNoQnlSYW5rQ2FsbE9wdGlvbnMsXG4gIFNvcnRlZFNldEZldGNoQnlTY29yZUNhbGxPcHRpb25zLFxuICBTb3J0ZWRTZXRMZW5ndGhCeVNjb3JlQ2FsbE9wdGlvbnMsXG59IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7SU1vbWVudG9DYWNoZX0gZnJvbSAnLi4vLi4vLi4vY2xpZW50cy9JTW9tZW50b0NhY2hlJztcblxuLy8gVHlwZSBhbGlhc2VzIHRvIGRpZmZlcmVudGlhdGUgdGhlIGRpZmZlcmVudCBtZXRob2RzJyBvcHRpb25hbCBhcmd1bWVudHMuXG5leHBvcnQgdHlwZSBTZXRPcHRpb25zID0gU2NhbGFyQ2FsbE9wdGlvbnM7XG5leHBvcnQgdHlwZSBTZXRJZk5vdEV4aXN0c09wdGlvbnMgPSBTY2FsYXJDYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIFNldElmQWJzZW50T3B0aW9ucyA9IFNjYWxhckNhbGxPcHRpb25zO1xuZXhwb3J0IHR5cGUgU2V0SWZQcmVzZW50T3B0aW9ucyA9IFNjYWxhckNhbGxPcHRpb25zO1xuZXhwb3J0IHR5cGUgU2V0SWZFcXVhbE9wdGlvbnMgPSBTY2FsYXJDYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIFNldElmTm90RXF1YWxPcHRpb25zID0gU2NhbGFyQ2FsbE9wdGlvbnM7XG5leHBvcnQgdHlwZSBTZXRJZlByZXNlbnRBbmROb3RFcXVhbE9wdGlvbnMgPSBTY2FsYXJDYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIFNldElmQWJzZW50T3JFcXVhbE9wdGlvbnMgPSBTY2FsYXJDYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIFNldEJhdGNoT3B0aW9ucyA9IFNjYWxhckNhbGxPcHRpb25zO1xuZXhwb3J0IHR5cGUgTGlzdENvbmNhdGVuYXRlQmFja09wdGlvbnMgPSBGcm9udFRydW5jYXRhYmxlQ2FsbE9wdGlvbnM7XG5leHBvcnQgdHlwZSBMaXN0Q29uY2F0ZW5hdGVGcm9udE9wdGlvbnMgPSBCYWNrVHJ1bmNhdGFibGVDYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIExpc3RQdXNoQmFja09wdGlvbnMgPSBGcm9udFRydW5jYXRhYmxlQ2FsbE9wdGlvbnM7XG5leHBvcnQgdHlwZSBMaXN0UHVzaEZyb250T3B0aW9ucyA9IEJhY2tUcnVuY2F0YWJsZUNhbGxPcHRpb25zO1xuZXhwb3J0IHR5cGUgU2V0QWRkRWxlbWVudE9wdGlvbnMgPSBDb2xsZWN0aW9uQ2FsbE9wdGlvbnM7XG5leHBvcnQgdHlwZSBTZXRBZGRFbGVtZW50c09wdGlvbnMgPSBDb2xsZWN0aW9uQ2FsbE9wdGlvbnM7XG5leHBvcnQgdHlwZSBEaWN0aW9uYXJ5U2V0RmllbGRPcHRpb25zID0gQ29sbGVjdGlvbkNhbGxPcHRpb25zO1xuZXhwb3J0IHR5cGUgRGljdGlvbmFyeVNldEZpZWxkc09wdGlvbnMgPSBDb2xsZWN0aW9uQ2FsbE9wdGlvbnM7XG5leHBvcnQgdHlwZSBEaWN0aW9uYXJ5SW5jcmVtZW50T3B0aW9ucyA9IENvbGxlY3Rpb25DYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIEluY3JlbWVudE9wdGlvbnMgPSBTY2FsYXJDYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIFNvcnRlZFNldFB1dEVsZW1lbnRPcHRpb25zID0gQ29sbGVjdGlvbkNhbGxPcHRpb25zO1xuZXhwb3J0IHR5cGUgU29ydGVkU2V0UHV0RWxlbWVudHNPcHRpb25zID0gQ29sbGVjdGlvbkNhbGxPcHRpb25zO1xuZXhwb3J0IHR5cGUgU29ydGVkU2V0RmV0Y2hCeVJhbmtPcHRpb25zID0gU29ydGVkU2V0RmV0Y2hCeVJhbmtDYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIFNvcnRlZFNldEZldGNoQnlTY29yZU9wdGlvbnMgPSBTb3J0ZWRTZXRGZXRjaEJ5U2NvcmVDYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIFNvcnRlZFNldEluY3JlbWVudE9wdGlvbnMgPSBDb2xsZWN0aW9uQ2FsbE9wdGlvbnM7XG5leHBvcnQgdHlwZSBTb3J0ZWRTZXRMZW5ndGhCeVNjb3JlT3B0aW9ucyA9IFNvcnRlZFNldExlbmd0aEJ5U2NvcmVDYWxsT3B0aW9ucztcblxuZXhwb3J0IGNsYXNzIE1vbWVudG9DYWNoZSBpbXBsZW1lbnRzIElNb21lbnRvQ2FjaGUge1xuICBwcml2YXRlIHJlYWRvbmx5IGNhY2hlQ2xpZW50OiBJQ2FjaGVDbGllbnQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2FjaGVOYW1lOiBzdHJpbmc7XG4gIGNvbnN0cnVjdG9yKGNhY2hlQ2xpZW50OiBJQ2FjaGVDbGllbnQsIGNhY2hlTmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5jYWNoZUNsaWVudCA9IGNhY2hlQ2xpZW50O1xuICAgIHRoaXMuY2FjaGVOYW1lID0gY2FjaGVOYW1lO1xuICB9XG5cbiAgZ2V0KGtleTogc3RyaW5nIHwgVWludDhBcnJheSk6IFByb21pc2U8Q2FjaGVHZXQuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5nZXQodGhpcy5jYWNoZU5hbWUsIGtleSk7XG4gIH1cbiAgc2V0KFxuICAgIGtleTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICB2YWx1ZTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBvcHRpb25zPzogU2V0T3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlU2V0LlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc2V0KHRoaXMuY2FjaGVOYW1lLCBrZXksIHZhbHVlLCBvcHRpb25zKTtcbiAgfVxuICBkZWxldGUoa2V5OiBzdHJpbmcgfCBVaW50OEFycmF5KTogUHJvbWlzZTxDYWNoZURlbGV0ZS5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LmRlbGV0ZSh0aGlzLmNhY2hlTmFtZSwga2V5KTtcbiAgfVxuICBpbmNyZW1lbnQoXG4gICAgZmllbGQ6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgYW1vdW50OiBudW1iZXIsXG4gICAgb3B0aW9ucz86IEluY3JlbWVudE9wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZUluY3JlbWVudC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LmluY3JlbWVudCh0aGlzLmNhY2hlTmFtZSwgZmllbGQsIGFtb3VudCwgb3B0aW9ucyk7XG4gIH1cbiAgc2V0SWZOb3RFeGlzdHMoXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIGZpZWxkOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIG9wdGlvbnM/OiBTZXRJZk5vdEV4aXN0c09wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZVNldElmTm90RXhpc3RzLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc2V0SWZOb3RFeGlzdHModGhpcy5jYWNoZU5hbWUsIGtleSwgZmllbGQsIG9wdGlvbnMpO1xuICB9XG4gIHNldElmQWJzZW50KFxuICAgIGtleTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBmaWVsZDogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBvcHRpb25zPzogU2V0SWZBYnNlbnRPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVTZXRJZkFic2VudC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNldElmQWJzZW50KHRoaXMuY2FjaGVOYW1lLCBrZXksIGZpZWxkLCBvcHRpb25zKTtcbiAgfVxuICBzZXRJZlByZXNlbnQoXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIHZhbHVlOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIG9wdGlvbnM/OiBTZXRJZlByZXNlbnRPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVTZXRJZlByZXNlbnQuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5zZXRJZlByZXNlbnQodGhpcy5jYWNoZU5hbWUsIGtleSwgdmFsdWUsIG9wdGlvbnMpO1xuICB9XG4gIHNldElmRXF1YWwoXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIHZhbHVlOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIGVxdWFsOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIG9wdGlvbnM/OiBTZXRJZkVxdWFsT3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlU2V0SWZFcXVhbC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNldElmRXF1YWwoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIGtleSxcbiAgICAgIHZhbHVlLFxuICAgICAgZXF1YWwsXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuICBzZXRJZk5vdEVxdWFsKFxuICAgIGtleTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICB2YWx1ZTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBub3RFcXVhbDogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBvcHRpb25zPzogU2V0SWZOb3RFcXVhbE9wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZVNldElmTm90RXF1YWwuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5zZXRJZk5vdEVxdWFsKFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBrZXksXG4gICAgICB2YWx1ZSxcbiAgICAgIG5vdEVxdWFsLFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gIH1cbiAgc2V0SWZQcmVzZW50QW5kTm90RXF1YWwoXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIHZhbHVlOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIG5vdEVxdWFsOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIG9wdGlvbnM/OiBTZXRJZlByZXNlbnRBbmROb3RFcXVhbE9wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZVNldElmUHJlc2VudEFuZE5vdEVxdWFsLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc2V0SWZQcmVzZW50QW5kTm90RXF1YWwoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIGtleSxcbiAgICAgIHZhbHVlLFxuICAgICAgbm90RXF1YWwsXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuICBzZXRJZkFic2VudE9yRXF1YWwoXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIHZhbHVlOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIGVxdWFsOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIG9wdGlvbnM/OiBTZXRJZkFic2VudE9yRXF1YWxPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVTZXRJZkFic2VudE9yRXF1YWwuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5zZXRJZkFic2VudE9yRXF1YWwoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIGtleSxcbiAgICAgIHZhbHVlLFxuICAgICAgZXF1YWwsXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuICBnZXRCYXRjaChrZXlzOiBzdHJpbmdbXSB8IFVpbnQ4QXJyYXlbXSk6IFByb21pc2U8Q2FjaGVHZXRCYXRjaC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LmdldEJhdGNoKHRoaXMuY2FjaGVOYW1lLCBrZXlzKTtcbiAgfVxuICBzZXRCYXRjaChcbiAgICBpdGVtczpcbiAgICAgIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgVWludDhBcnJheT5cbiAgICAgIHwgTWFwPHN0cmluZyB8IFVpbnQ4QXJyYXksIHN0cmluZyB8IFVpbnQ4QXJyYXk+LFxuICAgIG9wdGlvbnM/OiBTZXRCYXRjaE9wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZVNldEJhdGNoLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc2V0QmF0Y2godGhpcy5jYWNoZU5hbWUsIGl0ZW1zLCBvcHRpb25zKTtcbiAgfVxuICBzZXRGZXRjaChzZXROYW1lOiBzdHJpbmcpOiBQcm9taXNlPENhY2hlU2V0RmV0Y2guUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5zZXRGZXRjaCh0aGlzLmNhY2hlTmFtZSwgc2V0TmFtZSk7XG4gIH1cbiAgc2V0QWRkRWxlbWVudChcbiAgICBzZXROYW1lOiBzdHJpbmcsXG4gICAgZWxlbWVudDogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBvcHRpb25zPzogU2V0QWRkRWxlbWVudE9wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZVNldEFkZEVsZW1lbnQuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5zZXRBZGRFbGVtZW50KFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBzZXROYW1lLFxuICAgICAgZWxlbWVudCxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICB9XG4gIHNldEFkZEVsZW1lbnRzKFxuICAgIHNldE5hbWU6IHN0cmluZyxcbiAgICBlbGVtZW50czogc3RyaW5nW10gfCBVaW50OEFycmF5W10sXG4gICAgb3B0aW9ucz86IFNldEFkZEVsZW1lbnRzT3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlU2V0QWRkRWxlbWVudHMuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5zZXRBZGRFbGVtZW50cyhcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgc2V0TmFtZSxcbiAgICAgIGVsZW1lbnRzLFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gIH1cbiAgc2V0UmVtb3ZlRWxlbWVudChcbiAgICBzZXROYW1lOiBzdHJpbmcsXG4gICAgZWxlbWVudDogc3RyaW5nIHwgVWludDhBcnJheVxuICApOiBQcm9taXNlPENhY2hlU2V0UmVtb3ZlRWxlbWVudC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNldFJlbW92ZUVsZW1lbnQodGhpcy5jYWNoZU5hbWUsIHNldE5hbWUsIGVsZW1lbnQpO1xuICB9XG4gIHNldFJlbW92ZUVsZW1lbnRzKFxuICAgIHNldE5hbWU6IHN0cmluZyxcbiAgICBlbGVtZW50czogc3RyaW5nW10gfCBVaW50OEFycmF5W11cbiAgKTogUHJvbWlzZTxDYWNoZVNldFJlbW92ZUVsZW1lbnRzLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc2V0UmVtb3ZlRWxlbWVudHMoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIHNldE5hbWUsXG4gICAgICBlbGVtZW50c1xuICAgICk7XG4gIH1cbiAgc2V0U2FtcGxlKHNldE5hbWU6IHN0cmluZywgbGltaXQ6IG51bWJlcik6IFByb21pc2U8Q2FjaGVTZXRTYW1wbGUuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5zZXRTYW1wbGUodGhpcy5jYWNoZU5hbWUsIHNldE5hbWUsIGxpbWl0KTtcbiAgfVxuICBsaXN0RmV0Y2goXG4gICAgbGlzdE5hbWU6IHN0cmluZyxcbiAgICBvcHRpb25zPzogTGlzdEZldGNoQ2FsbE9wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZUxpc3RGZXRjaC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50Lmxpc3RGZXRjaCh0aGlzLmNhY2hlTmFtZSwgbGlzdE5hbWUsIG9wdGlvbnMpO1xuICB9XG4gIGxpc3RMZW5ndGgobGlzdE5hbWU6IHN0cmluZyk6IFByb21pc2U8Q2FjaGVMaXN0TGVuZ3RoLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQubGlzdExlbmd0aCh0aGlzLmNhY2hlTmFtZSwgbGlzdE5hbWUpO1xuICB9XG4gIGxpc3RQdXNoRnJvbnQoXG4gICAgbGlzdE5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBvcHRpb25zPzogTGlzdFB1c2hGcm9udE9wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZUxpc3RQdXNoRnJvbnQuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5saXN0UHVzaEZyb250KFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBsaXN0TmFtZSxcbiAgICAgIHZhbHVlLFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gIH1cbiAgbGlzdFB1c2hCYWNrKFxuICAgIGxpc3ROYW1lOiBzdHJpbmcsXG4gICAgdmFsdWU6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgb3B0aW9ucz86IExpc3RQdXNoQmFja09wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZUxpc3RQdXNoQmFjay5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50Lmxpc3RQdXNoQmFjayhcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgbGlzdE5hbWUsXG4gICAgICB2YWx1ZSxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICB9XG4gIGxpc3RDb25jYXRlbmF0ZUJhY2soXG4gICAgbGlzdE5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZXM6IHN0cmluZ1tdIHwgVWludDhBcnJheVtdLFxuICAgIG9wdGlvbnM/OiBMaXN0Q29uY2F0ZW5hdGVCYWNrT3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlTGlzdENvbmNhdGVuYXRlQmFjay5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50Lmxpc3RDb25jYXRlbmF0ZUJhY2soXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIGxpc3ROYW1lLFxuICAgICAgdmFsdWVzLFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gIH1cbiAgbGlzdENvbmNhdGVuYXRlRnJvbnQoXG4gICAgbGlzdE5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZXM6IHN0cmluZ1tdIHwgVWludDhBcnJheVtdLFxuICAgIG9wdGlvbnM/OiBMaXN0Q29uY2F0ZW5hdGVGcm9udE9wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZUxpc3RDb25jYXRlbmF0ZUZyb250LlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQubGlzdENvbmNhdGVuYXRlRnJvbnQoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIGxpc3ROYW1lLFxuICAgICAgdmFsdWVzLFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gIH1cbiAgbGlzdFBvcEJhY2sobGlzdE5hbWU6IHN0cmluZyk6IFByb21pc2U8Q2FjaGVMaXN0UG9wQmFjay5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50Lmxpc3RQb3BCYWNrKHRoaXMuY2FjaGVOYW1lLCBsaXN0TmFtZSk7XG4gIH1cbiAgbGlzdFBvcEZyb250KGxpc3ROYW1lOiBzdHJpbmcpOiBQcm9taXNlPENhY2hlTGlzdFBvcEZyb250LlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQubGlzdFBvcEZyb250KHRoaXMuY2FjaGVOYW1lLCBsaXN0TmFtZSk7XG4gIH1cbiAgbGlzdFJlbW92ZVZhbHVlKFxuICAgIGxpc3ROYW1lOiBzdHJpbmcsXG4gICAgdmFsdWU6IHN0cmluZyB8IFVpbnQ4QXJyYXlcbiAgKTogUHJvbWlzZTxDYWNoZUxpc3RSZW1vdmVWYWx1ZS5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50Lmxpc3RSZW1vdmVWYWx1ZSh0aGlzLmNhY2hlTmFtZSwgbGlzdE5hbWUsIHZhbHVlKTtcbiAgfVxuICBsaXN0UmV0YWluKFxuICAgIGxpc3ROYW1lOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IExpc3RSZXRhaW5DYWxsT3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlTGlzdFJldGFpbi5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50Lmxpc3RSZXRhaW4odGhpcy5jYWNoZU5hbWUsIGxpc3ROYW1lLCBvcHRpb25zKTtcbiAgfVxuICBkaWN0aW9uYXJ5U2V0RmllbGQoXG4gICAgZGljdGlvbmFyeU5hbWU6IHN0cmluZyxcbiAgICBmaWVsZDogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICB2YWx1ZTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBvcHRpb25zPzogRGljdGlvbmFyeVNldEZpZWxkT3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlRGljdGlvbmFyeVNldEZpZWxkLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuZGljdGlvbmFyeVNldEZpZWxkKFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBkaWN0aW9uYXJ5TmFtZSxcbiAgICAgIGZpZWxkLFxuICAgICAgdmFsdWUsXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuICBkaWN0aW9uYXJ5U2V0RmllbGRzKFxuICAgIGRpY3Rpb25hcnlOYW1lOiBzdHJpbmcsXG4gICAgZWxlbWVudHM6XG4gICAgICB8IE1hcDxzdHJpbmcgfCBVaW50OEFycmF5LCBzdHJpbmcgfCBVaW50OEFycmF5PlxuICAgICAgfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBVaW50OEFycmF5PixcbiAgICBvcHRpb25zPzogRGljdGlvbmFyeVNldEZpZWxkc09wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZURpY3Rpb25hcnlTZXRGaWVsZHMuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5kaWN0aW9uYXJ5U2V0RmllbGRzKFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBkaWN0aW9uYXJ5TmFtZSxcbiAgICAgIGVsZW1lbnRzLFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gIH1cbiAgZGljdGlvbmFyeUdldEZpZWxkKFxuICAgIGRpY3Rpb25hcnlOYW1lOiBzdHJpbmcsXG4gICAgZmllbGQ6IHN0cmluZyB8IFVpbnQ4QXJyYXlcbiAgKTogUHJvbWlzZTxDYWNoZURpY3Rpb25hcnlHZXRGaWVsZC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LmRpY3Rpb25hcnlHZXRGaWVsZChcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgZGljdGlvbmFyeU5hbWUsXG4gICAgICBmaWVsZFxuICAgICk7XG4gIH1cbiAgZGljdGlvbmFyeUdldEZpZWxkcyhcbiAgICBkaWN0aW9uYXJ5TmFtZTogc3RyaW5nLFxuICAgIGZpZWxkczogc3RyaW5nW10gfCBVaW50OEFycmF5W11cbiAgKTogUHJvbWlzZTxDYWNoZURpY3Rpb25hcnlHZXRGaWVsZHMuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5kaWN0aW9uYXJ5R2V0RmllbGRzKFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBkaWN0aW9uYXJ5TmFtZSxcbiAgICAgIGZpZWxkc1xuICAgICk7XG4gIH1cbiAgZGljdGlvbmFyeUZldGNoKFxuICAgIGRpY3Rpb25hcnlOYW1lOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxDYWNoZURpY3Rpb25hcnlGZXRjaC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LmRpY3Rpb25hcnlGZXRjaCh0aGlzLmNhY2hlTmFtZSwgZGljdGlvbmFyeU5hbWUpO1xuICB9XG4gIGRpY3Rpb25hcnlJbmNyZW1lbnQoXG4gICAgZGljdGlvbmFyeU5hbWU6IHN0cmluZyxcbiAgICBmaWVsZDogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBhbW91bnQ/OiBudW1iZXIsXG4gICAgb3B0aW9ucz86IERpY3Rpb25hcnlJbmNyZW1lbnRPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVEaWN0aW9uYXJ5SW5jcmVtZW50LlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuZGljdGlvbmFyeUluY3JlbWVudChcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgZGljdGlvbmFyeU5hbWUsXG4gICAgICBmaWVsZCxcbiAgICAgIGFtb3VudCxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICB9XG4gIGRpY3Rpb25hcnlSZW1vdmVGaWVsZChcbiAgICBkaWN0aW9uYXJ5TmFtZTogc3RyaW5nLFxuICAgIGZpZWxkOiBzdHJpbmcgfCBVaW50OEFycmF5XG4gICk6IFByb21pc2U8Q2FjaGVEaWN0aW9uYXJ5UmVtb3ZlRmllbGQuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5kaWN0aW9uYXJ5UmVtb3ZlRmllbGQoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIGRpY3Rpb25hcnlOYW1lLFxuICAgICAgZmllbGRcbiAgICApO1xuICB9XG4gIGRpY3Rpb25hcnlSZW1vdmVGaWVsZHMoXG4gICAgZGljdGlvbmFyeU5hbWU6IHN0cmluZyxcbiAgICBmaWVsZHM6IHN0cmluZ1tdIHwgVWludDhBcnJheVtdXG4gICk6IFByb21pc2U8Q2FjaGVEaWN0aW9uYXJ5UmVtb3ZlRmllbGRzLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuZGljdGlvbmFyeVJlbW92ZUZpZWxkcyhcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgZGljdGlvbmFyeU5hbWUsXG4gICAgICBmaWVsZHNcbiAgICApO1xuICB9XG5cbiAgZGljdGlvbmFyeUxlbmd0aChcbiAgICBkaWN0aW9uYXJ5TmFtZTogc3RyaW5nXG4gICk6IFByb21pc2U8Q2FjaGVEaWN0aW9uYXJ5TGVuZ3RoLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuZGljdGlvbmFyeUxlbmd0aCh0aGlzLmNhY2hlTmFtZSwgZGljdGlvbmFyeU5hbWUpO1xuICB9XG5cbiAgc29ydGVkU2V0RmV0Y2hCeVJhbmsoXG4gICAgc29ydGVkU2V0TmFtZTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBTb3J0ZWRTZXRGZXRjaEJ5UmFua09wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZVNvcnRlZFNldEZldGNoLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc29ydGVkU2V0RmV0Y2hCeVJhbmsoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIHNvcnRlZFNldE5hbWUsXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuICBzb3J0ZWRTZXRGZXRjaEJ5U2NvcmUoXG4gICAgc29ydGVkU2V0TmFtZTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBTb3J0ZWRTZXRGZXRjaEJ5U2NvcmVPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVTb3J0ZWRTZXRGZXRjaC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNvcnRlZFNldEZldGNoQnlTY29yZShcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgc29ydGVkU2V0TmFtZSxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICB9XG4gIHNvcnRlZFNldFB1dEVsZW1lbnQoXG4gICAgc29ydGVkU2V0TmFtZTogc3RyaW5nLFxuICAgIHZhbHVlOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIHNjb3JlOiBudW1iZXIsXG4gICAgb3B0aW9ucz86IFNvcnRlZFNldFB1dEVsZW1lbnRPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVTb3J0ZWRTZXRQdXRFbGVtZW50LlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc29ydGVkU2V0UHV0RWxlbWVudChcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgc29ydGVkU2V0TmFtZSxcbiAgICAgIHZhbHVlLFxuICAgICAgc2NvcmUsXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuICBzb3J0ZWRTZXRQdXRFbGVtZW50cyhcbiAgICBzb3J0ZWRTZXROYW1lOiBzdHJpbmcsXG4gICAgZWxlbWVudHM6IE1hcDxzdHJpbmcgfCBVaW50OEFycmF5LCBudW1iZXI+IHwgUmVjb3JkPHN0cmluZywgbnVtYmVyPixcbiAgICBvcHRpb25zPzogU29ydGVkU2V0UHV0RWxlbWVudHNPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVTb3J0ZWRTZXRQdXRFbGVtZW50cy5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNvcnRlZFNldFB1dEVsZW1lbnRzKFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBzb3J0ZWRTZXROYW1lLFxuICAgICAgZWxlbWVudHMsXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuICBzb3J0ZWRTZXRHZXRSYW5rKFxuICAgIHNvcnRlZFNldE5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZTogc3RyaW5nIHwgVWludDhBcnJheVxuICApOiBQcm9taXNlPENhY2hlU29ydGVkU2V0R2V0UmFuay5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNvcnRlZFNldEdldFJhbmsoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIHNvcnRlZFNldE5hbWUsXG4gICAgICB2YWx1ZVxuICAgICk7XG4gIH1cbiAgc29ydGVkU2V0R2V0U2NvcmUoXG4gICAgc29ydGVkU2V0TmFtZTogc3RyaW5nLFxuICAgIHZhbHVlOiBzdHJpbmcgfCBVaW50OEFycmF5XG4gICk6IFByb21pc2U8Q2FjaGVTb3J0ZWRTZXRHZXRTY29yZS5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNvcnRlZFNldEdldFNjb3JlKFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBzb3J0ZWRTZXROYW1lLFxuICAgICAgdmFsdWVcbiAgICApO1xuICB9XG4gIHNvcnRlZFNldEdldFNjb3JlcyhcbiAgICBzb3J0ZWRTZXROYW1lOiBzdHJpbmcsXG4gICAgdmFsdWVzOiBzdHJpbmdbXSB8IFVpbnQ4QXJyYXlbXVxuICApOiBQcm9taXNlPENhY2hlU29ydGVkU2V0R2V0U2NvcmVzLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc29ydGVkU2V0R2V0U2NvcmVzKFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBzb3J0ZWRTZXROYW1lLFxuICAgICAgdmFsdWVzXG4gICAgKTtcbiAgfVxuICBzb3J0ZWRTZXRJbmNyZW1lbnRTY29yZShcbiAgICBzb3J0ZWRTZXROYW1lOiBzdHJpbmcsXG4gICAgdmFsdWU6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgYW1vdW50PzogbnVtYmVyLFxuICAgIG9wdGlvbnM/OiBTb3J0ZWRTZXRJbmNyZW1lbnRPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVTb3J0ZWRTZXRJbmNyZW1lbnRTY29yZS5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNvcnRlZFNldEluY3JlbWVudFNjb3JlKFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBzb3J0ZWRTZXROYW1lLFxuICAgICAgdmFsdWUsXG4gICAgICBhbW91bnQsXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuICBzb3J0ZWRTZXRSZW1vdmVFbGVtZW50KFxuICAgIHNvcnRlZFNldE5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZTogc3RyaW5nIHwgVWludDhBcnJheVxuICApOiBQcm9taXNlPENhY2hlU29ydGVkU2V0UmVtb3ZlRWxlbWVudC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNvcnRlZFNldFJlbW92ZUVsZW1lbnQoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIHNvcnRlZFNldE5hbWUsXG4gICAgICB2YWx1ZVxuICAgICk7XG4gIH1cbiAgc29ydGVkU2V0UmVtb3ZlRWxlbWVudHMoXG4gICAgc29ydGVkU2V0TmFtZTogc3RyaW5nLFxuICAgIHZhbHVlczogc3RyaW5nW10gfCBVaW50OEFycmF5W11cbiAgKTogUHJvbWlzZTxDYWNoZVNvcnRlZFNldFJlbW92ZUVsZW1lbnRzLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc29ydGVkU2V0UmVtb3ZlRWxlbWVudHMoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIHNvcnRlZFNldE5hbWUsXG4gICAgICB2YWx1ZXNcbiAgICApO1xuICB9XG4gIHNvcnRlZFNldExlbmd0aChcbiAgICBzb3J0ZWRTZXROYW1lOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxDYWNoZVNvcnRlZFNldExlbmd0aC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNvcnRlZFNldExlbmd0aCh0aGlzLmNhY2hlTmFtZSwgc29ydGVkU2V0TmFtZSk7XG4gIH1cbiAgc29ydGVkU2V0TGVuZ3RoQnlTY29yZShcbiAgICBzb3J0ZWRTZXROYW1lOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IFNvcnRlZFNldExlbmd0aEJ5U2NvcmVPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVTb3J0ZWRTZXRMZW5ndGhCeVNjb3JlLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc29ydGVkU2V0TGVuZ3RoQnlTY29yZShcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgc29ydGVkU2V0TmFtZSxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICB9XG4gIGl0ZW1HZXRUeXBlKGtleTogc3RyaW5nIHwgVWludDhBcnJheSk6IFByb21pc2U8Q2FjaGVJdGVtR2V0VHlwZS5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50Lml0ZW1HZXRUeXBlKHRoaXMuY2FjaGVOYW1lLCBrZXkpO1xuICB9XG4gIGl0ZW1HZXRUdGwoa2V5OiBzdHJpbmcgfCBVaW50OEFycmF5KTogUHJvbWlzZTxDYWNoZUl0ZW1HZXRUdGwuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5pdGVtR2V0VHRsKHRoaXMuY2FjaGVOYW1lLCBrZXkpO1xuICB9XG4gIGtleUV4aXN0cyhrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXkpOiBQcm9taXNlPENhY2hlS2V5RXhpc3RzLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQua2V5RXhpc3RzKHRoaXMuY2FjaGVOYW1lLCBrZXkpO1xuICB9XG4gIGtleXNFeGlzdChrZXlzOiBzdHJpbmdbXSB8IFVpbnQ4QXJyYXlbXSk6IFByb21pc2U8Q2FjaGVLZXlzRXhpc3QuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5rZXlzRXhpc3QodGhpcy5jYWNoZU5hbWUsIGtleXMpO1xuICB9XG4gIHVwZGF0ZVR0bChcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgdHRsTWlsbGlzZWNvbmRzOiBudW1iZXJcbiAgKTogUHJvbWlzZTxDYWNoZVVwZGF0ZVR0bC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnVwZGF0ZVR0bCh0aGlzLmNhY2hlTmFtZSwga2V5LCB0dGxNaWxsaXNlY29uZHMpO1xuICB9XG4gIGluY3JlYXNlVHRsKFxuICAgIGtleTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICB0dGxNaWxsaXNlY29uZHM6IG51bWJlclxuICApOiBQcm9taXNlPENhY2hlSW5jcmVhc2VUdGwuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5pbmNyZWFzZVR0bCh0aGlzLmNhY2hlTmFtZSwga2V5LCB0dGxNaWxsaXNlY29uZHMpO1xuICB9XG4gIGRlY3JlYXNlVHRsKFxuICAgIGtleTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICB0dGxNaWxsaXNlY29uZHM6IG51bWJlclxuICApOiBQcm9taXNlPENhY2hlRGVjcmVhc2VUdGwuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5kZWNyZWFzZVR0bCh0aGlzLmNhY2hlTmFtZSwga2V5LCB0dGxNaWxsaXNlY29uZHMpO1xuICB9XG4gIGNsb3NlKCkge1xuICAgIHRoaXMuY2FjaGVDbGllbnQuY2xvc2UoKTtcbiAgfVxufVxuIl19
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9tZW50by1jYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9pbnRlcm5hbC9jbGllbnRzL2NhY2hlL21vbWVudG8tY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBb0dBLE1BQWEsWUFBWTtJQUd2QixZQUFZLFdBQXlCLEVBQUUsU0FBaUI7UUFDdEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUVELEdBQUcsQ0FBQyxHQUF3QjtRQUMxQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUNELEdBQUcsQ0FDRCxHQUF3QixFQUN4QixLQUEwQixFQUMxQixPQUFvQjtRQUVwQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBQ0QsTUFBTSxDQUFDLEdBQXdCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBQ0QsU0FBUyxDQUNQLEtBQTBCLEVBQzFCLE1BQWMsRUFDZCxPQUEwQjtRQUUxQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBQ0QsY0FBYyxDQUNaLEdBQXdCLEVBQ3hCLEtBQTBCLEVBQzFCLE9BQStCO1FBRS9CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMs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Q0FBQyxDQUFDO0lBQzVFLENBQUM7SUFDRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMzQixDQUFDO0NBQ0Y7QUExZUQsb0NBMGVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2FjaGVEZWxldGUsXG4gIENhY2hlR2V0LFxuICBDYWNoZUluY3JlbWVudCxcbiAgQ2FjaGVTZXQsXG4gIENhY2hlU2V0SWZOb3RFeGlzdHMsXG4gIENhY2hlU2V0SWZBYnNlbnQsXG4gIENhY2hlU2V0SWZQcmVzZW50LFxuICBDYWNoZVNldElmRXF1YWwsXG4gIENhY2hlU2V0SWZOb3RFcXVhbCxcbiAgQ2FjaGVTZXRJZlByZXNlbnRBbmROb3RFcXVhbCxcbiAgQ2FjaGVTZXRJZkFic2VudE9yRXF1YWwsXG4gIENhY2hlU2V0RmV0Y2gsXG4gIENhY2hlU2V0QWRkRWxlbWVudHMsXG4gIENhY2hlU2V0QWRkRWxlbWVudCxcbiAgQ2FjaGVTZXRSZW1vdmVFbGVtZW50cyxcbiAgQ2FjaGVTZXRSZW1vdmVFbGVtZW50LFxuICBDYWNoZUxpc3RGZXRjaCxcbiAgQ2FjaGVMaXN0TGVuZ3RoLFxuICBDYWNoZUxpc3RQdXNoRnJvbnQsXG4gIENhY2hlTGlzdFB1c2hCYWNrLFxuICBDYWNoZUxpc3RDb25jYXRlbmF0ZUJhY2ssXG4gIENhY2hlTGlzdENvbmNhdGVuYXRlRnJvbnQsXG4gIENhY2hlTGlzdFBvcEJhY2ssXG4gIENhY2hlTGlzdFBvcEZyb250LFxuICBDYWNoZUxpc3RSZW1vdmVWYWx1ZSxcbiAgQ2FjaGVMaXN0UmV0YWluLFxuICBDYWNoZURpY3Rpb25hcnlTZXRGaWVsZCxcbiAgQ2FjaGVEaWN0aW9uYXJ5U2V0RmllbGRzLFxuICBDYWNoZURpY3Rpb25hcnlHZXRGaWVsZCxcbiAgQ2FjaGVEaWN0aW9uYXJ5RmV0Y2gsXG4gIENhY2hlRGljdGlvbmFyeUluY3JlbWVudCxcbiAgQ2FjaGVEaWN0aW9uYXJ5UmVtb3ZlRmllbGQsXG4gIENhY2hlRGljdGlvbmFyeVJlbW92ZUZpZWxkcyxcbiAgQ2FjaGVTb3J0ZWRTZXRGZXRjaCxcbiAgQ2FjaGVTb3J0ZWRTZXRQdXRFbGVtZW50LFxuICBDYWNoZVNvcnRlZFNldFB1dEVsZW1lbnRzLFxuICBDYWNoZVNvcnRlZFNldEdldFJhbmssXG4gIENhY2hlU29ydGVkU2V0R2V0U2NvcmUsXG4gIENhY2hlU29ydGVkU2V0R2V0U2NvcmVzLFxuICBDYWNoZVNvcnRlZFNldEluY3JlbWVudFNjb3JlLFxuICBDYWNoZVNvcnRlZFNldFJlbW92ZUVsZW1lbnQsXG4gIENhY2hlU29ydGVkU2V0TGVuZ3RoLFxuICBDYWNoZVNvcnRlZFNldExlbmd0aEJ5U2NvcmUsXG4gIENhY2hlSXRlbUdldFR5cGUsXG4gIENhY2hlSXRlbUdldFR0bCxcbiAgQ2FjaGVLZXlFeGlzdHMsXG4gIENhY2hlS2V5c0V4aXN0LFxuICBDYWNoZVVwZGF0ZVR0bCxcbiAgQ2FjaGVJbmNyZWFzZVR0bCxcbiAgQ2FjaGVEZWNyZWFzZVR0bCxcbiAgSUNhY2hlQ2xpZW50LFxuICBDYWNoZVNvcnRlZFNldFJlbW92ZUVsZW1lbnRzLFxuICBDYWNoZURpY3Rpb25hcnlHZXRGaWVsZHMsXG4gIENhY2hlRGljdGlvbmFyeUxlbmd0aCxcbiAgQ2FjaGVHZXRCYXRjaCxcbiAgQ2FjaGVTZXRCYXRjaCxcbiAgQ2FjaGVTZXRTYW1wbGUsXG59IGZyb20gJy4uLy4uLy4uL2luZGV4JztcbmltcG9ydCB7XG4gIFNjYWxhckNhbGxPcHRpb25zLFxuICBMaXN0RmV0Y2hDYWxsT3B0aW9ucyxcbiAgTGlzdFJldGFpbkNhbGxPcHRpb25zLFxuICBCYWNrVHJ1bmNhdGFibGVDYWxsT3B0aW9ucyxcbiAgRnJvbnRUcnVuY2F0YWJsZUNhbGxPcHRpb25zLFxuICBDb2xsZWN0aW9uQ2FsbE9wdGlvbnMsXG4gIFNvcnRlZFNldEZldGNoQnlSYW5rQ2FsbE9wdGlvbnMsXG4gIFNvcnRlZFNldEZldGNoQnlTY29yZUNhbGxPcHRpb25zLFxuICBTb3J0ZWRTZXRMZW5ndGhCeVNjb3JlQ2FsbE9wdGlvbnMsXG4gIFNldEJhdGNoSXRlbSxcbn0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHtJTW9tZW50b0NhY2hlfSBmcm9tICcuLi8uLi8uLi9jbGllbnRzL0lNb21lbnRvQ2FjaGUnO1xuXG4vLyBUeXBlIGFsaWFzZXMgdG8gZGlmZmVyZW50aWF0ZSB0aGUgZGlmZmVyZW50IG1ldGhvZHMnIG9wdGlvbmFsIGFyZ3VtZW50cy5cbmV4cG9ydCB0eXBlIFNldE9wdGlvbnMgPSBTY2FsYXJDYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIFNldElmTm90RXhpc3RzT3B0aW9ucyA9IFNjYWxhckNhbGxPcHRpb25zO1xuZXhwb3J0IHR5cGUgU2V0SWZBYnNlbnRPcHRpb25zID0gU2NhbGFyQ2FsbE9wdGlvbnM7XG5leHBvcnQgdHlwZSBTZXRJZlByZXNlbnRPcHRpb25zID0gU2NhbGFyQ2FsbE9wdGlvbnM7XG5leHBvcnQgdHlwZSBTZXRJZkVxdWFsT3B0aW9ucyA9IFNjYWxhckNhbGxPcHRpb25zO1xuZXhwb3J0IHR5cGUgU2V0SWZOb3RFcXVhbE9wdGlvbnMgPSBTY2FsYXJDYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIFNldElmUHJlc2VudEFuZE5vdEVxdWFsT3B0aW9ucyA9IFNjYWxhckNhbGxPcHRpb25zO1xuZXhwb3J0IHR5cGUgU2V0SWZBYnNlbnRPckVxdWFsT3B0aW9ucyA9IFNjYWxhckNhbGxPcHRpb25zO1xuZXhwb3J0IHR5cGUgU2V0QmF0Y2hPcHRpb25zID0gU2NhbGFyQ2FsbE9wdGlvbnM7XG5leHBvcnQgdHlwZSBMaXN0Q29uY2F0ZW5hdGVCYWNrT3B0aW9ucyA9IEZyb250VHJ1bmNhdGFibGVDYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIExpc3RDb25jYXRlbmF0ZUZyb250T3B0aW9ucyA9IEJhY2tUcnVuY2F0YWJsZUNhbGxPcHRpb25zO1xuZXhwb3J0IHR5cGUgTGlzdFB1c2hCYWNrT3B0aW9ucyA9IEZyb250VHJ1bmNhdGFibGVDYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIExpc3RQdXNoRnJvbnRPcHRpb25zID0gQmFja1RydW5jYXRhYmxlQ2FsbE9wdGlvbnM7XG5leHBvcnQgdHlwZSBTZXRBZGRFbGVtZW50T3B0aW9ucyA9IENvbGxlY3Rpb25DYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIFNldEFkZEVsZW1lbnRzT3B0aW9ucyA9IENvbGxlY3Rpb25DYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIERpY3Rpb25hcnlTZXRGaWVsZE9wdGlvbnMgPSBDb2xsZWN0aW9uQ2FsbE9wdGlvbnM7XG5leHBvcnQgdHlwZSBEaWN0aW9uYXJ5U2V0RmllbGRzT3B0aW9ucyA9IENvbGxlY3Rpb25DYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIERpY3Rpb25hcnlJbmNyZW1lbnRPcHRpb25zID0gQ29sbGVjdGlvbkNhbGxPcHRpb25zO1xuZXhwb3J0IHR5cGUgSW5jcmVtZW50T3B0aW9ucyA9IFNjYWxhckNhbGxPcHRpb25zO1xuZXhwb3J0IHR5cGUgU29ydGVkU2V0UHV0RWxlbWVudE9wdGlvbnMgPSBDb2xsZWN0aW9uQ2FsbE9wdGlvbnM7XG5leHBvcnQgdHlwZSBTb3J0ZWRTZXRQdXRFbGVtZW50c09wdGlvbnMgPSBDb2xsZWN0aW9uQ2FsbE9wdGlvbnM7XG5leHBvcnQgdHlwZSBTb3J0ZWRTZXRGZXRjaEJ5UmFua09wdGlvbnMgPSBTb3J0ZWRTZXRGZXRjaEJ5UmFua0NhbGxPcHRpb25zO1xuZXhwb3J0IHR5cGUgU29ydGVkU2V0RmV0Y2hCeVNjb3JlT3B0aW9ucyA9IFNvcnRlZFNldEZldGNoQnlTY29yZUNhbGxPcHRpb25zO1xuZXhwb3J0IHR5cGUgU29ydGVkU2V0SW5jcmVtZW50T3B0aW9ucyA9IENvbGxlY3Rpb25DYWxsT3B0aW9ucztcbmV4cG9ydCB0eXBlIFNvcnRlZFNldExlbmd0aEJ5U2NvcmVPcHRpb25zID0gU29ydGVkU2V0TGVuZ3RoQnlTY29yZUNhbGxPcHRpb25zO1xuXG5leHBvcnQgY2xhc3MgTW9tZW50b0NhY2hlIGltcGxlbWVudHMgSU1vbWVudG9DYWNoZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2FjaGVDbGllbnQ6IElDYWNoZUNsaWVudDtcbiAgcHJpdmF0ZSByZWFkb25seSBjYWNoZU5hbWU6IHN0cmluZztcbiAgY29uc3RydWN0b3IoY2FjaGVDbGllbnQ6IElDYWNoZUNsaWVudCwgY2FjaGVOYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNhY2hlQ2xpZW50ID0gY2FjaGVDbGllbnQ7XG4gICAgdGhpcy5jYWNoZU5hbWUgPSBjYWNoZU5hbWU7XG4gIH1cblxuICBnZXQoa2V5OiBzdHJpbmcgfCBVaW50OEFycmF5KTogUHJvbWlzZTxDYWNoZUdldC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LmdldCh0aGlzLmNhY2hlTmFtZSwga2V5KTtcbiAgfVxuICBzZXQoXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIHZhbHVlOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIG9wdGlvbnM/OiBTZXRPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVTZXQuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5zZXQodGhpcy5jYWNoZU5hbWUsIGtleSwgdmFsdWUsIG9wdGlvbnMpO1xuICB9XG4gIGRlbGV0ZShrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXkpOiBQcm9taXNlPENhY2hlRGVsZXRlLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuZGVsZXRlKHRoaXMuY2FjaGVOYW1lLCBrZXkpO1xuICB9XG4gIGluY3JlbWVudChcbiAgICBmaWVsZDogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBhbW91bnQ6IG51bWJlcixcbiAgICBvcHRpb25zPzogSW5jcmVtZW50T3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlSW5jcmVtZW50LlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuaW5jcmVtZW50KHRoaXMuY2FjaGVOYW1lLCBmaWVsZCwgYW1vdW50LCBvcHRpb25zKTtcbiAgfVxuICBzZXRJZk5vdEV4aXN0cyhcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgZmllbGQ6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgb3B0aW9ucz86IFNldElmTm90RXhpc3RzT3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlU2V0SWZOb3RFeGlzdHMuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5zZXRJZk5vdEV4aXN0cyh0aGlzLmNhY2hlTmFtZSwga2V5LCBmaWVsZCwgb3B0aW9ucyk7XG4gIH1cbiAgc2V0SWZBYnNlbnQoXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIGZpZWxkOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIG9wdGlvbnM/OiBTZXRJZkFic2VudE9wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZVNldElmQWJzZW50LlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc2V0SWZBYnNlbnQodGhpcy5jYWNoZU5hbWUsIGtleSwgZmllbGQsIG9wdGlvbnMpO1xuICB9XG4gIHNldElmUHJlc2VudChcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgdmFsdWU6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgb3B0aW9ucz86IFNldElmUHJlc2VudE9wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZVNldElmUHJlc2VudC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNldElmUHJlc2VudCh0aGlzLmNhY2hlTmFtZSwga2V5LCB2YWx1ZSwgb3B0aW9ucyk7XG4gIH1cbiAgc2V0SWZFcXVhbChcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgdmFsdWU6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgZXF1YWw6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgb3B0aW9ucz86IFNldElmRXF1YWxPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVTZXRJZkVxdWFsLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc2V0SWZFcXVhbChcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAga2V5LFxuICAgICAgdmFsdWUsXG4gICAgICBlcXVhbCxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICB9XG4gIHNldElmTm90RXF1YWwoXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIHZhbHVlOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIG5vdEVxdWFsOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIG9wdGlvbnM/OiBTZXRJZk5vdEVxdWFsT3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlU2V0SWZOb3RFcXVhbC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNldElmTm90RXF1YWwoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIGtleSxcbiAgICAgIHZhbHVlLFxuICAgICAgbm90RXF1YWwsXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuICBzZXRJZlByZXNlbnRBbmROb3RFcXVhbChcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgdmFsdWU6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgbm90RXF1YWw6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgb3B0aW9ucz86IFNldElmUHJlc2VudEFuZE5vdEVxdWFsT3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlU2V0SWZQcmVzZW50QW5kTm90RXF1YWwuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5zZXRJZlByZXNlbnRBbmROb3RFcXVhbChcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAga2V5LFxuICAgICAgdmFsdWUsXG4gICAgICBub3RFcXVhbCxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICB9XG4gIHNldElmQWJzZW50T3JFcXVhbChcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgdmFsdWU6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgZXF1YWw6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgb3B0aW9ucz86IFNldElmQWJzZW50T3JFcXVhbE9wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZVNldElmQWJzZW50T3JFcXVhbC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNldElmQWJzZW50T3JFcXVhbChcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAga2V5LFxuICAgICAgdmFsdWUsXG4gICAgICBlcXVhbCxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICB9XG4gIGdldEJhdGNoKGtleXM6IHN0cmluZ1tdIHwgVWludDhBcnJheVtdKTogUHJvbWlzZTxDYWNoZUdldEJhdGNoLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuZ2V0QmF0Y2godGhpcy5jYWNoZU5hbWUsIGtleXMpO1xuICB9XG4gIHNldEJhdGNoKFxuICAgIGl0ZW1zOlxuICAgICAgfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBVaW50OEFycmF5PlxuICAgICAgfCBNYXA8c3RyaW5nIHwgVWludDhBcnJheSwgc3RyaW5nIHwgVWludDhBcnJheT5cbiAgICAgIHwgQXJyYXk8U2V0QmF0Y2hJdGVtPixcbiAgICBvcHRpb25zPzogU2V0QmF0Y2hPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVTZXRCYXRjaC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNldEJhdGNoKHRoaXMuY2FjaGVOYW1lLCBpdGVtcywgb3B0aW9ucyk7XG4gIH1cbiAgc2V0RmV0Y2goc2V0TmFtZTogc3RyaW5nKTogUHJvbWlzZTxDYWNoZVNldEZldGNoLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc2V0RmV0Y2godGhpcy5jYWNoZU5hbWUsIHNldE5hbWUpO1xuICB9XG4gIHNldEFkZEVsZW1lbnQoXG4gICAgc2V0TmFtZTogc3RyaW5nLFxuICAgIGVsZW1lbnQ6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgb3B0aW9ucz86IFNldEFkZEVsZW1lbnRPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVTZXRBZGRFbGVtZW50LlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc2V0QWRkRWxlbWVudChcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgc2V0TmFtZSxcbiAgICAgIGVsZW1lbnQsXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuICBzZXRBZGRFbGVtZW50cyhcbiAgICBzZXROYW1lOiBzdHJpbmcsXG4gICAgZWxlbWVudHM6IHN0cmluZ1tdIHwgVWludDhBcnJheVtdLFxuICAgIG9wdGlvbnM/OiBTZXRBZGRFbGVtZW50c09wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZVNldEFkZEVsZW1lbnRzLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc2V0QWRkRWxlbWVudHMoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIHNldE5hbWUsXG4gICAgICBlbGVtZW50cyxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICB9XG4gIHNldFJlbW92ZUVsZW1lbnQoXG4gICAgc2V0TmFtZTogc3RyaW5nLFxuICAgIGVsZW1lbnQ6IHN0cmluZyB8IFVpbnQ4QXJyYXlcbiAgKTogUHJvbWlzZTxDYWNoZVNldFJlbW92ZUVsZW1lbnQuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5zZXRSZW1vdmVFbGVtZW50KHRoaXMuY2FjaGVOYW1lLCBzZXROYW1lLCBlbGVtZW50KTtcbiAgfVxuICBzZXRSZW1vdmVFbGVtZW50cyhcbiAgICBzZXROYW1lOiBzdHJpbmcsXG4gICAgZWxlbWVudHM6IHN0cmluZ1tdIHwgVWludDhBcnJheVtdXG4gICk6IFByb21pc2U8Q2FjaGVTZXRSZW1vdmVFbGVtZW50cy5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNldFJlbW92ZUVsZW1lbnRzKFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBzZXROYW1lLFxuICAgICAgZWxlbWVudHNcbiAgICApO1xuICB9XG4gIHNldFNhbXBsZShzZXROYW1lOiBzdHJpbmcsIGxpbWl0OiBudW1iZXIpOiBQcm9taXNlPENhY2hlU2V0U2FtcGxlLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuc2V0U2FtcGxlKHRoaXMuY2FjaGVOYW1lLCBzZXROYW1lLCBsaW1pdCk7XG4gIH1cbiAgbGlzdEZldGNoKFxuICAgIGxpc3ROYW1lOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IExpc3RGZXRjaENhbGxPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVMaXN0RmV0Y2guUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5saXN0RmV0Y2godGhpcy5jYWNoZU5hbWUsIGxpc3ROYW1lLCBvcHRpb25zKTtcbiAgfVxuICBsaXN0TGVuZ3RoKGxpc3ROYW1lOiBzdHJpbmcpOiBQcm9taXNlPENhY2hlTGlzdExlbmd0aC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50Lmxpc3RMZW5ndGgodGhpcy5jYWNoZU5hbWUsIGxpc3ROYW1lKTtcbiAgfVxuICBsaXN0UHVzaEZyb250KFxuICAgIGxpc3ROYW1lOiBzdHJpbmcsXG4gICAgdmFsdWU6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgb3B0aW9ucz86IExpc3RQdXNoRnJvbnRPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVMaXN0UHVzaEZyb250LlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQubGlzdFB1c2hGcm9udChcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgbGlzdE5hbWUsXG4gICAgICB2YWx1ZSxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICB9XG4gIGxpc3RQdXNoQmFjayhcbiAgICBsaXN0TmFtZTogc3RyaW5nLFxuICAgIHZhbHVlOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIG9wdGlvbnM/OiBMaXN0UHVzaEJhY2tPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVMaXN0UHVzaEJhY2suUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5saXN0UHVzaEJhY2soXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIGxpc3ROYW1lLFxuICAgICAgdmFsdWUsXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuICBsaXN0Q29uY2F0ZW5hdGVCYWNrKFxuICAgIGxpc3ROYW1lOiBzdHJpbmcsXG4gICAgdmFsdWVzOiBzdHJpbmdbXSB8IFVpbnQ4QXJyYXlbXSxcbiAgICBvcHRpb25zPzogTGlzdENvbmNhdGVuYXRlQmFja09wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZUxpc3RDb25jYXRlbmF0ZUJhY2suUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5saXN0Q29uY2F0ZW5hdGVCYWNrKFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBsaXN0TmFtZSxcbiAgICAgIHZhbHVlcyxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICB9XG4gIGxpc3RDb25jYXRlbmF0ZUZyb250KFxuICAgIGxpc3ROYW1lOiBzdHJpbmcsXG4gICAgdmFsdWVzOiBzdHJpbmdbXSB8IFVpbnQ4QXJyYXlbXSxcbiAgICBvcHRpb25zPzogTGlzdENvbmNhdGVuYXRlRnJvbnRPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVMaXN0Q29uY2F0ZW5hdGVGcm9udC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50Lmxpc3RDb25jYXRlbmF0ZUZyb250KFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBsaXN0TmFtZSxcbiAgICAgIHZhbHVlcyxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICB9XG4gIGxpc3RQb3BCYWNrKGxpc3ROYW1lOiBzdHJpbmcpOiBQcm9taXNlPENhY2hlTGlzdFBvcEJhY2suUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5saXN0UG9wQmFjayh0aGlzLmNhY2hlTmFtZSwgbGlzdE5hbWUpO1xuICB9XG4gIGxpc3RQb3BGcm9udChsaXN0TmFtZTogc3RyaW5nKTogUHJvbWlzZTxDYWNoZUxpc3RQb3BGcm9udC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50Lmxpc3RQb3BGcm9udCh0aGlzLmNhY2hlTmFtZSwgbGlzdE5hbWUpO1xuICB9XG4gIGxpc3RSZW1vdmVWYWx1ZShcbiAgICBsaXN0TmFtZTogc3RyaW5nLFxuICAgIHZhbHVlOiBzdHJpbmcgfCBVaW50OEFycmF5XG4gICk6IFByb21pc2U8Q2FjaGVMaXN0UmVtb3ZlVmFsdWUuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5saXN0UmVtb3ZlVmFsdWUodGhpcy5jYWNoZU5hbWUsIGxpc3ROYW1lLCB2YWx1ZSk7XG4gIH1cbiAgbGlzdFJldGFpbihcbiAgICBsaXN0TmFtZTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBMaXN0UmV0YWluQ2FsbE9wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZUxpc3RSZXRhaW4uUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5saXN0UmV0YWluKHRoaXMuY2FjaGVOYW1lLCBsaXN0TmFtZSwgb3B0aW9ucyk7XG4gIH1cbiAgZGljdGlvbmFyeVNldEZpZWxkKFxuICAgIGRpY3Rpb25hcnlOYW1lOiBzdHJpbmcsXG4gICAgZmllbGQ6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgdmFsdWU6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgb3B0aW9ucz86IERpY3Rpb25hcnlTZXRGaWVsZE9wdGlvbnNcbiAgKTogUHJvbWlzZTxDYWNoZURpY3Rpb25hcnlTZXRGaWVsZC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LmRpY3Rpb25hcnlTZXRGaWVsZChcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgZGljdGlvbmFyeU5hbWUsXG4gICAgICBmaWVsZCxcbiAgICAgIHZhbHVlLFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gIH1cbiAgZGljdGlvbmFyeVNldEZpZWxkcyhcbiAgICBkaWN0aW9uYXJ5TmFtZTogc3RyaW5nLFxuICAgIGVsZW1lbnRzOlxuICAgICAgfCBNYXA8c3RyaW5nIHwgVWludDhBcnJheSwgc3RyaW5nIHwgVWludDhBcnJheT5cbiAgICAgIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgVWludDhBcnJheT4sXG4gICAgb3B0aW9ucz86IERpY3Rpb25hcnlTZXRGaWVsZHNPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVEaWN0aW9uYXJ5U2V0RmllbGRzLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuZGljdGlvbmFyeVNldEZpZWxkcyhcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgZGljdGlvbmFyeU5hbWUsXG4gICAgICBlbGVtZW50cyxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICB9XG4gIGRpY3Rpb25hcnlHZXRGaWVsZChcbiAgICBkaWN0aW9uYXJ5TmFtZTogc3RyaW5nLFxuICAgIGZpZWxkOiBzdHJpbmcgfCBVaW50OEFycmF5XG4gICk6IFByb21pc2U8Q2FjaGVEaWN0aW9uYXJ5R2V0RmllbGQuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5kaWN0aW9uYXJ5R2V0RmllbGQoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIGRpY3Rpb25hcnlOYW1lLFxuICAgICAgZmllbGRcbiAgICApO1xuICB9XG4gIGRpY3Rpb25hcnlHZXRGaWVsZHMoXG4gICAgZGljdGlvbmFyeU5hbWU6IHN0cmluZyxcbiAgICBmaWVsZHM6IHN0cmluZ1tdIHwgVWludDhBcnJheVtdXG4gICk6IFByb21pc2U8Q2FjaGVEaWN0aW9uYXJ5R2V0RmllbGRzLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuZGljdGlvbmFyeUdldEZpZWxkcyhcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgZGljdGlvbmFyeU5hbWUsXG4gICAgICBmaWVsZHNcbiAgICApO1xuICB9XG4gIGRpY3Rpb25hcnlGZXRjaChcbiAgICBkaWN0aW9uYXJ5TmFtZTogc3RyaW5nXG4gICk6IFByb21pc2U8Q2FjaGVEaWN0aW9uYXJ5RmV0Y2guUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5kaWN0aW9uYXJ5RmV0Y2godGhpcy5jYWNoZU5hbWUsIGRpY3Rpb25hcnlOYW1lKTtcbiAgfVxuICBkaWN0aW9uYXJ5SW5jcmVtZW50KFxuICAgIGRpY3Rpb25hcnlOYW1lOiBzdHJpbmcsXG4gICAgZmllbGQ6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgYW1vdW50PzogbnVtYmVyLFxuICAgIG9wdGlvbnM/OiBEaWN0aW9uYXJ5SW5jcmVtZW50T3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlRGljdGlvbmFyeUluY3JlbWVudC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LmRpY3Rpb25hcnlJbmNyZW1lbnQoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIGRpY3Rpb25hcnlOYW1lLFxuICAgICAgZmllbGQsXG4gICAgICBhbW91bnQsXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuICBkaWN0aW9uYXJ5UmVtb3ZlRmllbGQoXG4gICAgZGljdGlvbmFyeU5hbWU6IHN0cmluZyxcbiAgICBmaWVsZDogc3RyaW5nIHwgVWludDhBcnJheVxuICApOiBQcm9taXNlPENhY2hlRGljdGlvbmFyeVJlbW92ZUZpZWxkLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuZGljdGlvbmFyeVJlbW92ZUZpZWxkKFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBkaWN0aW9uYXJ5TmFtZSxcbiAgICAgIGZpZWxkXG4gICAgKTtcbiAgfVxuICBkaWN0aW9uYXJ5UmVtb3ZlRmllbGRzKFxuICAgIGRpY3Rpb25hcnlOYW1lOiBzdHJpbmcsXG4gICAgZmllbGRzOiBzdHJpbmdbXSB8IFVpbnQ4QXJyYXlbXVxuICApOiBQcm9taXNlPENhY2hlRGljdGlvbmFyeVJlbW92ZUZpZWxkcy5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LmRpY3Rpb25hcnlSZW1vdmVGaWVsZHMoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIGRpY3Rpb25hcnlOYW1lLFxuICAgICAgZmllbGRzXG4gICAgKTtcbiAgfVxuXG4gIGRpY3Rpb25hcnlMZW5ndGgoXG4gICAgZGljdGlvbmFyeU5hbWU6IHN0cmluZ1xuICApOiBQcm9taXNlPENhY2hlRGljdGlvbmFyeUxlbmd0aC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LmRpY3Rpb25hcnlMZW5ndGgodGhpcy5jYWNoZU5hbWUsIGRpY3Rpb25hcnlOYW1lKTtcbiAgfVxuXG4gIHNvcnRlZFNldEZldGNoQnlSYW5rKFxuICAgIHNvcnRlZFNldE5hbWU6IHN0cmluZyxcbiAgICBvcHRpb25zPzogU29ydGVkU2V0RmV0Y2hCeVJhbmtPcHRpb25zXG4gICk6IFByb21pc2U8Q2FjaGVTb3J0ZWRTZXRGZXRjaC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNvcnRlZFNldEZldGNoQnlSYW5rKFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBzb3J0ZWRTZXROYW1lLFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gIH1cbiAgc29ydGVkU2V0RmV0Y2hCeVNjb3JlKFxuICAgIHNvcnRlZFNldE5hbWU6IHN0cmluZyxcbiAgICBvcHRpb25zPzogU29ydGVkU2V0RmV0Y2hCeVNjb3JlT3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlU29ydGVkU2V0RmV0Y2guUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5zb3J0ZWRTZXRGZXRjaEJ5U2NvcmUoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIHNvcnRlZFNldE5hbWUsXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuICBzb3J0ZWRTZXRQdXRFbGVtZW50KFxuICAgIHNvcnRlZFNldE5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZTogc3RyaW5nIHwgVWludDhBcnJheSxcbiAgICBzY29yZTogbnVtYmVyLFxuICAgIG9wdGlvbnM/OiBTb3J0ZWRTZXRQdXRFbGVtZW50T3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlU29ydGVkU2V0UHV0RWxlbWVudC5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNvcnRlZFNldFB1dEVsZW1lbnQoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIHNvcnRlZFNldE5hbWUsXG4gICAgICB2YWx1ZSxcbiAgICAgIHNjb3JlLFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gIH1cbiAgc29ydGVkU2V0UHV0RWxlbWVudHMoXG4gICAgc29ydGVkU2V0TmFtZTogc3RyaW5nLFxuICAgIGVsZW1lbnRzOiBNYXA8c3RyaW5nIHwgVWludDhBcnJheSwgbnVtYmVyPiB8IFJlY29yZDxzdHJpbmcsIG51bWJlcj4sXG4gICAgb3B0aW9ucz86IFNvcnRlZFNldFB1dEVsZW1lbnRzT3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlU29ydGVkU2V0UHV0RWxlbWVudHMuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5zb3J0ZWRTZXRQdXRFbGVtZW50cyhcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgc29ydGVkU2V0TmFtZSxcbiAgICAgIGVsZW1lbnRzLFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gIH1cbiAgc29ydGVkU2V0R2V0UmFuayhcbiAgICBzb3J0ZWRTZXROYW1lOiBzdHJpbmcsXG4gICAgdmFsdWU6IHN0cmluZyB8IFVpbnQ4QXJyYXlcbiAgKTogUHJvbWlzZTxDYWNoZVNvcnRlZFNldEdldFJhbmsuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5zb3J0ZWRTZXRHZXRSYW5rKFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBzb3J0ZWRTZXROYW1lLFxuICAgICAgdmFsdWVcbiAgICApO1xuICB9XG4gIHNvcnRlZFNldEdldFNjb3JlKFxuICAgIHNvcnRlZFNldE5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZTogc3RyaW5nIHwgVWludDhBcnJheVxuICApOiBQcm9taXNlPENhY2hlU29ydGVkU2V0R2V0U2NvcmUuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5zb3J0ZWRTZXRHZXRTY29yZShcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgc29ydGVkU2V0TmFtZSxcbiAgICAgIHZhbHVlXG4gICAgKTtcbiAgfVxuICBzb3J0ZWRTZXRHZXRTY29yZXMoXG4gICAgc29ydGVkU2V0TmFtZTogc3RyaW5nLFxuICAgIHZhbHVlczogc3RyaW5nW10gfCBVaW50OEFycmF5W11cbiAgKTogUHJvbWlzZTxDYWNoZVNvcnRlZFNldEdldFNjb3Jlcy5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNvcnRlZFNldEdldFNjb3JlcyhcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgc29ydGVkU2V0TmFtZSxcbiAgICAgIHZhbHVlc1xuICAgICk7XG4gIH1cbiAgc29ydGVkU2V0SW5jcmVtZW50U2NvcmUoXG4gICAgc29ydGVkU2V0TmFtZTogc3RyaW5nLFxuICAgIHZhbHVlOiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIGFtb3VudD86IG51bWJlcixcbiAgICBvcHRpb25zPzogU29ydGVkU2V0SW5jcmVtZW50T3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlU29ydGVkU2V0SW5jcmVtZW50U2NvcmUuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5zb3J0ZWRTZXRJbmNyZW1lbnRTY29yZShcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgc29ydGVkU2V0TmFtZSxcbiAgICAgIHZhbHVlLFxuICAgICAgYW1vdW50LFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gIH1cbiAgc29ydGVkU2V0UmVtb3ZlRWxlbWVudChcbiAgICBzb3J0ZWRTZXROYW1lOiBzdHJpbmcsXG4gICAgdmFsdWU6IHN0cmluZyB8IFVpbnQ4QXJyYXlcbiAgKTogUHJvbWlzZTxDYWNoZVNvcnRlZFNldFJlbW92ZUVsZW1lbnQuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5zb3J0ZWRTZXRSZW1vdmVFbGVtZW50KFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBzb3J0ZWRTZXROYW1lLFxuICAgICAgdmFsdWVcbiAgICApO1xuICB9XG4gIHNvcnRlZFNldFJlbW92ZUVsZW1lbnRzKFxuICAgIHNvcnRlZFNldE5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZXM6IHN0cmluZ1tdIHwgVWludDhBcnJheVtdXG4gICk6IFByb21pc2U8Q2FjaGVTb3J0ZWRTZXRSZW1vdmVFbGVtZW50cy5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNvcnRlZFNldFJlbW92ZUVsZW1lbnRzKFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICBzb3J0ZWRTZXROYW1lLFxuICAgICAgdmFsdWVzXG4gICAgKTtcbiAgfVxuICBzb3J0ZWRTZXRMZW5ndGgoXG4gICAgc29ydGVkU2V0TmFtZTogc3RyaW5nXG4gICk6IFByb21pc2U8Q2FjaGVTb3J0ZWRTZXRMZW5ndGguUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5zb3J0ZWRTZXRMZW5ndGgodGhpcy5jYWNoZU5hbWUsIHNvcnRlZFNldE5hbWUpO1xuICB9XG4gIHNvcnRlZFNldExlbmd0aEJ5U2NvcmUoXG4gICAgc29ydGVkU2V0TmFtZTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBTb3J0ZWRTZXRMZW5ndGhCeVNjb3JlT3B0aW9uc1xuICApOiBQcm9taXNlPENhY2hlU29ydGVkU2V0TGVuZ3RoQnlTY29yZS5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LnNvcnRlZFNldExlbmd0aEJ5U2NvcmUoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIHNvcnRlZFNldE5hbWUsXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuICBpdGVtR2V0VHlwZShrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXkpOiBQcm9taXNlPENhY2hlSXRlbUdldFR5cGUuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC5pdGVtR2V0VHlwZSh0aGlzLmNhY2hlTmFtZSwga2V5KTtcbiAgfVxuICBpdGVtR2V0VHRsKGtleTogc3RyaW5nIHwgVWludDhBcnJheSk6IFByb21pc2U8Q2FjaGVJdGVtR2V0VHRsLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuaXRlbUdldFR0bCh0aGlzLmNhY2hlTmFtZSwga2V5KTtcbiAgfVxuICBrZXlFeGlzdHMoa2V5OiBzdHJpbmcgfCBVaW50OEFycmF5KTogUHJvbWlzZTxDYWNoZUtleUV4aXN0cy5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlQ2xpZW50LmtleUV4aXN0cyh0aGlzLmNhY2hlTmFtZSwga2V5KTtcbiAgfVxuICBrZXlzRXhpc3Qoa2V5czogc3RyaW5nW10gfCBVaW50OEFycmF5W10pOiBQcm9taXNlPENhY2hlS2V5c0V4aXN0LlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQua2V5c0V4aXN0KHRoaXMuY2FjaGVOYW1lLCBrZXlzKTtcbiAgfVxuICB1cGRhdGVUdGwoXG4gICAga2V5OiBzdHJpbmcgfCBVaW50OEFycmF5LFxuICAgIHR0bE1pbGxpc2Vjb25kczogbnVtYmVyXG4gICk6IFByb21pc2U8Q2FjaGVVcGRhdGVUdGwuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZUNsaWVudC51cGRhdGVUdGwodGhpcy5jYWNoZU5hbWUsIGtleSwgdHRsTWlsbGlzZWNvbmRzKTtcbiAgfVxuICBpbmNyZWFzZVR0bChcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgdHRsTWlsbGlzZWNvbmRzOiBudW1iZXJcbiAgKTogUHJvbWlzZTxDYWNoZUluY3JlYXNlVHRsLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuaW5jcmVhc2VUdGwodGhpcy5jYWNoZU5hbWUsIGtleSwgdHRsTWlsbGlzZWNvbmRzKTtcbiAgfVxuICBkZWNyZWFzZVR0bChcbiAgICBrZXk6IHN0cmluZyB8IFVpbnQ4QXJyYXksXG4gICAgdHRsTWlsbGlzZWNvbmRzOiBudW1iZXJcbiAgKTogUHJvbWlzZTxDYWNoZURlY3JlYXNlVHRsLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVDbGllbnQuZGVjcmVhc2VUdGwodGhpcy5jYWNoZU5hbWUsIGtleSwgdHRsTWlsbGlzZWNvbmRzKTtcbiAgfVxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmNhY2hlQ2xpZW50LmNsb3NlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -75,11 +75,6 @@ declare class _Success extends Response {
75
75
  * @returns {Map<string, Uint8Array>}
76
76
  */
77
77
  valuesMapStringUint8Array(): Map<string, Uint8Array>;
78
- /**
79
- * Returns the data as a Map whose keys and values are byte arrays.
80
- * @returns {Map<Uint8Array, Uint8Array>}
81
- */
82
- valuesMapUint8ArrayUint8Array(): Map<Uint8Array, Uint8Array>;
83
78
  toString(): string;
84
79
  }
85
80
  declare const Success_base: {
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Error = exports.Success = exports.Response = void 0;
4
4
  const response_base_1 = require("./response-base");
5
+ const __1 = require("../..");
5
6
  const TEXT_DECODER = new TextDecoder();
6
7
  /**
7
8
  * Parent response type for a cache get batch request. The
@@ -75,7 +76,7 @@ class _Success extends Response {
75
76
  */
76
77
  valuesRecordStringString() {
77
78
  return this.items.reduce((acc, item, index) => {
78
- if (item.value() !== undefined) {
79
+ if (item instanceof __1.CacheGet.Hit) {
79
80
  acc[TEXT_DECODER.decode(this.keys[index])] = item.valueString();
80
81
  }
81
82
  return acc;
@@ -88,7 +89,7 @@ class _Success extends Response {
88
89
  */
89
90
  valuesRecordStringUint8Array() {
90
91
  return this.items.reduce((acc, item, index) => {
91
- if (item.value() !== undefined) {
92
+ if (item instanceof __1.CacheGet.Hit) {
92
93
  acc[TEXT_DECODER.decode(this.keys[index])] = item.valueUint8Array();
93
94
  }
94
95
  return acc;
@@ -108,7 +109,7 @@ class _Success extends Response {
108
109
  */
109
110
  valuesMapStringString() {
110
111
  return this.items.reduce((acc, item, index) => {
111
- if (item.value() !== undefined) {
112
+ if (item instanceof __1.CacheGet.Hit) {
112
113
  acc.set(TEXT_DECODER.decode(this.keys[index]), item.valueString());
113
114
  }
114
115
  return acc;
@@ -120,24 +121,12 @@ class _Success extends Response {
120
121
  */
121
122
  valuesMapStringUint8Array() {
122
123
  return this.items.reduce((acc, item, index) => {
123
- if (item.value() !== undefined) {
124
+ if (item instanceof __1.CacheGet.Hit) {
124
125
  acc.set(TEXT_DECODER.decode(this.keys[index]), item.valueUint8Array());
125
126
  }
126
127
  return acc;
127
128
  }, new Map());
128
129
  }
129
- /**
130
- * Returns the data as a Map whose keys and values are byte arrays.
131
- * @returns {Map<Uint8Array, Uint8Array>}
132
- */
133
- valuesMapUint8ArrayUint8Array() {
134
- return this.items.reduce((acc, item, index) => {
135
- if (item.value() !== undefined) {
136
- acc.set(this.keys[index], item.valueUint8Array());
137
- }
138
- return acc;
139
- }, new Map());
140
- }
141
130
  toString() {
142
131
  const display = this.results()
143
132
  .map(result => result.toString())
@@ -171,4 +160,4 @@ class _Error extends Response {
171
160
  class Error extends (0, response_base_1.ResponseError)(_Error) {
172
161
  }
173
162
  exports.Error = Error;
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUtYmF0Y2gtZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1iYXRjaC1nZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsbURBQTZFO0FBRzdFLE1BQU0sWUFBWSxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7QUFFdkM7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUNILE1BQXNCLFFBQVMsU0FBUSw0QkFBWTtJQUMxQyxNQUFNO1FBQ1gsSUFBSSxJQUFJLFlBQVksT0FBTyxFQUFFO1lBQzNCLE9BQVEsSUFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNuQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxJQUFJLFlBQVksT0FBTyxFQUFFO1lBQzNCLE9BQVEsSUFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNwQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7Q0FDRjtBQWRELDRCQWNDO0FBRUQsTUFBTSxRQUFTLFNBQVEsUUFBUTtJQUk3QixZQUFZLEtBQTBCLEVBQUUsSUFBa0I7UUFDeEQsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksT0FBTztRQUNaLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNO1FBQ1gsT0FBTyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxZQUFZO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSx3QkFBd0I7UUFDN0Is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QUFNLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDaEMsUUFBUSxFQUFFLENBQUM7UUFDZCxPQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLE9BQU8sRUFBRSxDQUFDO0lBQzNDLENBQUM7Q0FDRjtBQUVEOzs7R0FHRztBQUNILE1BQWEsT0FBUSxTQUFRLElBQUEsK0JBQWUsRUFBQyxRQUFRLENBQUM7Q0FBRztBQUF6RCwwQkFBeUQ7QUFFekQsTUFBTSxNQUFPLFNBQVEsUUFBUTtJQUMzQixZQUFzQixlQUF5QjtRQUM3QyxLQUFLLEVBQUUsQ0FBQztRQURZLG9CQUFlLEdBQWYsZUFBZSxDQUFVO0lBRS9DLENBQUM7Q0FDRjtBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQWEsS0FBTSxTQUFRLElBQUEsNkJBQWEsRUFBQyxNQUFNLENBQUM7Q0FBRztBQUFuRCxzQkFBbUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1Nka0Vycm9yfSBmcm9tICcuLi8uLi9lcnJvcnMnO1xuaW1wb3J0IHtSZXNwb25zZUJhc2UsIFJlc3BvbnNlRXJyb3IsIFJlc3BvbnNlU3VjY2Vzc30gZnJvbSAnLi9yZXNwb25zZS1iYXNlJztcbmltcG9ydCB7Q2FjaGVHZXR9IGZyb20gJy4uLy4uJztcblxuY29uc3QgVEVYVF9ERUNPREVSID0gbmV3IFRleHREZWNvZGVyKCk7XG5cbi8qKlxuICogUGFyZW50IHJlc3BvbnNlIHR5cGUgZm9yIGEgY2FjaGUgZ2V0IGJhdGNoIHJlcXVlc3QuICBUaGVcbiAqIHJlc3BvbnNlIG9iamVjdCBpcyByZXNvbHZlZCB0byBhIHR5cGUtc2FmZSBvYmplY3Qgb2Ygb25lIG9mXG4gKiB0aGUgZm9sbG93aW5nIHN1YnR5cGVzOlxuICpcbiAqIC0ge1N1Y2Nlc3N9XG4gKiAtIHtFcnJvcn1cbiAqXG4gKiBgaW5zdGFuY2VvZmAgdHlwZSBndWFyZHMgY2FuIGJlIHVzZWQgdG8gb3BlcmF0ZSBvbiB0aGUgYXBwcm9wcmlhdGUgc3VidHlwZS5cbiAqIEBleGFtcGxlXG4gKiBGb3IgZXhhbXBsZTpcbiAqIGBgYFxuICogaWYgKHJlc3BvbnNlIGluc3RhbmNlb2YgQmF0Y2hHZXQuRXJyb3IpIHtcbiAqICAgLy8gSGFuZGxlIGVycm9yIGFzIGFwcHJvcHJpYXRlLiAgVGhlIGNvbXBpbGVyIHdpbGwgc21hcnQtY2FzdCBgcmVzcG9uc2VgIHRvIHR5cGVcbiAqICAgLy8gYEJhdGNoR2V0LkVycm9yYCBpbiB0aGlzIGJsb2NrLCBzbyB5b3Ugd2lsbCBoYXZlIGFjY2VzcyB0byB0aGUgcHJvcGVydGllc1xuICogICAvLyBvZiB0aGUgRXJyb3IgY2xhc3M7IGUuZy4gYHJlc3BvbnNlLmVycm9yQ29kZSgpYC5cbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmVzcG9uc2UgZXh0ZW5kcyBSZXNwb25zZUJhc2Uge1xuICBwdWJsaWMgdmFsdWVzKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCB1bmRlZmluZWQge1xuICAgIGlmICh0aGlzIGluc3RhbmNlb2YgU3VjY2Vzcykge1xuICAgICAgcmV0dXJuICh0aGlzIGFzIFN1Y2Nlc3MpLnZhbHVlcygpO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIHJlc3VsdHMoKTogQ2FjaGVHZXQuUmVzcG9uc2VbXSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMgaW5zdGFuY2VvZiBTdWNjZXNzKSB7XG4gICAgICByZXR1cm4gKHRoaXMgYXMgU3VjY2VzcykucmVzdWx0cygpO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbmNsYXNzIF9TdWNjZXNzIGV4dGVuZHMgUmVzcG9uc2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGl0ZW1zOiBDYWNoZUdldC5SZXNwb25zZVtdO1xuICBwcml2YXRlIHJlYWRvbmx5IGtleXM6IFVpbnQ4QXJyYXlbXTtcblxuICBjb25zdHJ1Y3RvcihpdGVtczogQ2FjaGVHZXQuUmVzcG9uc2VbXSwga2V5czogVWludDhBcnJheVtdKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLml0ZW1zID0gaXRlbXM7XG4gICAgdGhpcy5rZXlzID0ga2V5cztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBzdGF0dXMgZm9yIGVhY2ggcmVxdWVzdCBpbiB0aGUgYmF0Y2ggYXMgYSBsaXN0IG9mIENhY2hlR2V0LlJlc3BvbnNlIG9iamVjdHMuXG4gICAqIEByZXR1cm5zIHtDYWNoZUdldC5SZXNwb25zZVtdfVxuICAgKi9cbiAgcHVibGljIHJlc3VsdHMoKTogQ2FjaGVHZXQuUmVzcG9uc2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZGF0YSBhcyBhIFJlY29yZCB3aG9zZSBrZXlzIGFuZCB2YWx1ZXMgYXJlIHV0Zi04IHN0cmluZ3MsIGRlY29kZWQgZnJvbSB0aGUgdW5kZXJseWluZyBieXRlIGFycmF5cy5cbiAgICogVGhpcyBjYW4gYmUgdXNlZCBpbiBtb3N0IHBsYWNlcyB3aGVyZSBhbiBPYmplY3QgaXMgZGVzaXJlZC4gIFRoaXMgaXMgYSBjb252ZW5pZW5jZSBhbGlhcyBmb3JcbiAgICoge3ZhbHVlUmVjb3JkU3RyaW5nU3RyaW5nfS5cbiAgICogQHJldHVybnMge1JlY29yZDxzdHJpbmcsIHN0cmluZz59XG4gICAqL1xuICBwdWJsaWMgdmFsdWVzKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlc1JlY29yZFN0cmluZ1N0cmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGRhdGEgYXMgYSBSZWNvcmQgd2hvc2Uga2V5cyBhbmQgdmFsdWVzIGFyZSB1dGYtOCBzdHJpbmdzLCBkZWNvZGVkIGZyb20gdGhlIHVuZGVybHlpbmcgYnl0ZSBhcnJheXMuXG4gICAqIFRoaXMgY2FuIGJlIHVzZWQgaW4gbW9zdCBwbGFjZXMgd2hlcmUgYW4gT2JqZWN0IGlzIGRlc2lyZWQuICBUaGlzIGlzIGEgY29udmVuaWVuY2UgYWxpYXMgZm9yXG4gICAqIHt2YWx1ZVJlY29yZFN0cmluZ1N0cmluZ30uXG4gICAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fVxuICAgKi9cbiAgcHVibGljIHZhbHVlc1JlY29yZCgpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZXNSZWNvcmRTdHJpbmdTdHJpbmcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBkYXRhIGFzIGEgUmVjb3JkIHdob3NlIGtleXMgYW5kIHZhbHVlcyBhcmUgdXRmLTggc3RyaW5ncywgZGVjb2RlZCBmcm9tIHRoZSB1bmRlcmx5aW5nIGJ5dGUgYXJyYXlzLlxuICAgKiBUaGlzIGNhbiBiZSB1c2VkIGluIG1vc3QgcGxhY2VzIHdoZXJlIGFuIE9iamVjdCBpcyBkZXNpcmVkLlxuICAgKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn1cbiAgICovXG4gIHB1YmxpYyB2YWx1ZXNSZWNvcmRTdHJpbmdTdHJpbmcoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMucmVkdWNlPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KChhY2MsIGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICBpZiAoaXRlbS52YWx1ZSgpICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgYWNjW1RFWFRfREVDT0RFUi5kZWNvZGUodGhpcy5rZXlzW2luZGV4XSldID0gKFxuICAgICAgICAgIGl0ZW0gYXMgQ2FjaGVHZXQuSGl0XG4gICAgICAgICkudmFsdWVTdHJpbmcoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGRhdGEgYXMgYSBSZWNvcmQgd2hvc2Uga2V5cyBhcmUgdXRmLTggc3RyaW5ncywgZGVjb2RlZCBmcm9tIHRoZSB1bmRlcmx5aW5nIGJ5dGUgYXJyYXksIGFuZCB3aG9zZVxuICAgKiB2YWx1ZXMgYXJlIGJ5dGUgYXJyYXlzLiAgVGhpcyBjYW4gYmUgdXNlZCBpbiBtb3N0IHBsYWNlcyB3aGVyZSBhbiBPYmplY3QgaXMgZGVzaXJlZC5cbiAgICogQHJldHVybnMge1JlY29yZDxzdHJpbmcsIFVpbnQ4QXJyYXk+fVxuICAgKi9cbiAgcHVibGljIHZhbHVlc1JlY29yZFN0cmluZ1VpbnQ4QXJyYXkoKTogUmVjb3JkPHN0cmluZywgVWludDhBcnJheT4ge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLnJlZHVjZTxSZWNvcmQ8c3RyaW5nLCBVaW50OEFycmF5Pj4oKGFjYywgaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgIGlmIChpdGVtLnZhbHVlKCkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBhY2NbVEVYVF9ERUNPREVSLmRlY29kZSh0aGlzLmtleXNbaW5kZXhdKV0gPSAoXG4gICAgICAgICAgaXRlbSBhcyBDYWNoZUdldC5IaXRcbiAgICAgICAgKS52YWx1ZVVpbnQ4QXJyYXkoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGRhdGEgYXMgYSBNYXAgd2hvc2Uga2V5cyBhbmQgdmFsdWVzIGFyZSB1dGYtOCBzdHJpbmdzLCBkZWNvZGVkIGZyb20gdGhlIHVuZGVybHlpbmcgYnl0ZSBhcnJheXMuXG4gICAqIFRoaXMgaXMgYSBjb252ZW5pZW5jZSBhbGlhcyBmb3Ige3ZhbHVlTWFwU3RyaW5nU3RyaW5nfS5cbiAgICogQHJldHVybnMge01hcDxzdHJpbmcsIHN0cmluZz59XG4gICAqL1xuICBwdWJsaWMgdmFsdWVzTWFwKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlc01hcFN0cmluZ1N0cmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGRhdGEgYXMgYSBNYXAgd2hvc2Uga2V5cyBhbmQgdmFsdWVzIGFyZSB1dGYtOCBzdHJpbmdzLCBkZWNvZGVkIGZyb20gdGhlIHVuZGVybHlpbmcgYnl0ZSBhcnJheXMuXG4gICAqIEByZXR1cm5zIHtNYXA8c3RyaW5nLCBzdHJpbmc+fVxuICAgKi9cbiAgcHVibGljIHZhbHVlc01hcFN0cmluZ1N0cmluZygpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2UoKGFjYywgaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgIGlmIChpdGVtLnZhbHVlKCkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBhY2Muc2V0KFxuICAgICAgICAgIFRFWFRfREVDT0RFUi5kZWNvZGUodGhpcy5rZXlzW2luZGV4XSksXG4gICAgICAgICAgKGl0ZW0gYXMgQ2FjaGVHZXQuSGl0KS52YWx1ZVN0cmluZygpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGRhdGEgYXMgYSBNYXAgd2hvc2Uga2V5cyBhcmUgc3RyaW5ncyBhbmQgd2hvc2UgdmFsdWVzIGFyZSBieXRlIGFycmF5cy5cbiAgICogQHJldHVybnMge01hcDxzdHJpbmcsIFVpbnQ4QXJyYXk+fVxuICAgKi9cbiAgcHVibGljIHZhbHVlc01hcFN0cmluZ1VpbnQ4QXJyYXkoKTogTWFwPHN0cmluZywgVWludDhBcnJheT4ge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLnJlZHVjZSgoYWNjLCBpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKGl0ZW0udmFsdWUoKSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGFjYy5zZXQoXG4gICAgICAgICAgVEVYVF9ERUNPREVSLmRlY29kZSh0aGlzLmtleXNbaW5kZXhdKSxcbiAgICAgICAgICAoaXRlbSBhcyBDYWNoZUdldC5IaXQpLnZhbHVlVWludDhBcnJheSgpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIG5ldyBNYXA8c3RyaW5nLCBVaW50OEFycmF5PigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBkYXRhIGFzIGEgTWFwIHdob3NlIGtleXMgYW5kIHZhbHVlcyBhcmUgYnl0ZSBhcnJheXMuXG4gICAqIEByZXR1cm5zIHtNYXA8VWludDhBcnJheSwgVWludDhBcnJheT59XG4gICAqL1xuICBwdWJsaWMgdmFsdWVzTWFwVWludDhBcnJheVVpbnQ4QXJyYXkoKTogTWFwPFVpbnQ4QXJyYXksIFVpbnQ4QXJyYXk+IHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2UoKGFjYywgaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgIGlmIChpdGVtLnZhbHVlKCkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBhY2Muc2V0KHRoaXMua2V5c1tpbmRleF0sIChpdGVtIGFzIENhY2hlR2V0LkhpdCkudmFsdWVVaW50OEFycmF5KCkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCBuZXcgTWFwPFVpbnQ4QXJyYXksIFVpbnQ4QXJyYXk+KCkpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgY29uc3QgZGlzcGxheSA9IHRoaXMucmVzdWx0cygpXG4gICAgICAubWFwKHJlc3VsdCA9PiByZXN1bHQudG9TdHJpbmcoKSlcbiAgICAgIC50b1N0cmluZygpO1xuICAgIHJldHVybiBgJHtzdXBlci50b1N0cmluZygpfTogJHtkaXNwbGF5fWA7XG4gIH1cbn1cblxuLyoqXG4gKiBJbmRpY2F0ZXMgdGhhdCB0aGUgcmVxdWVzdGVkIGRhdGEgd2FzIHN1Y2Nlc3NmdWxseSByZXRyaWV2ZWQgZnJvbSB0aGUgY2FjaGUuICBQcm92aWRlc1xuICogYHZhbHVlKmAgYWNjZXNzb3JzIHRvIHJldHJpZXZlIHRoZSBkYXRhIGluIHRoZSBhcHByb3ByaWF0ZSBmb3JtYXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdWNjZXNzIGV4dGVuZHMgUmVzcG9uc2VTdWNjZXNzKF9TdWNjZXNzKSB7fVxuXG5jbGFzcyBfRXJyb3IgZXh0ZW5kcyBSZXNwb25zZSB7XG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfaW5uZXJFeGNlcHRpb246IFNka0Vycm9yKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxufVxuXG4vKipcbiAqIEluZGljYXRlcyB0aGF0IGFuIGVycm9yIG9jY3VycmVkIGR1cmluZyB0aGUgY2FjaGUgZ2V0IHJlcXVlc3QuXG4gKlxuICogVGhpcyByZXNwb25zZSBvYmplY3QgaW5jbHVkZXMgdGhlIGZvbGxvd2luZyBmaWVsZHMgdGhhdCB5b3UgY2FuIHVzZSB0byBkZXRlcm1pbmVcbiAqIGhvdyB5b3Ugd291bGQgbGlrZSB0byBoYW5kbGUgdGhlIGVycm9yOlxuICpcbiAqIC0gYGVycm9yQ29kZSgpYCAtIGEgdW5pcXVlIE1vbWVudG8gZXJyb3IgY29kZSBpbmRpY2F0aW5nIHRoZSB0eXBlIG9mIGVycm9yIHRoYXQgb2NjdXJyZWQuXG4gKiAtIGBtZXNzYWdlKClgIC0gYSBodW1hbi1yZWFkYWJsZSBkZXNjcmlwdGlvbiBvZiB0aGUgZXJyb3JcbiAqIC0gYGlubmVyRXhjZXB0aW9uKClgIC0gdGhlIG9yaWdpbmFsIGVycm9yIHRoYXQgY2F1c2VkIHRoZSBmYWlsdXJlOyBjYW4gYmUgcmUtdGhyb3duLlxuICovXG5leHBvcnQgY2xhc3MgRXJyb3IgZXh0ZW5kcyBSZXNwb25zZUVycm9yKF9FcnJvcikge31cbiJdfQ==
163
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUtYmF0Y2gtZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1iYXRjaC1nZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsbURBQTZFO0FBQzdFLDZCQUErQjtBQUUvQixNQUFNLFlBQVksR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO0FBRXZDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFDSCxNQUFzQixRQUFTLFNBQVEsNEJBQVk7SUFDMUMsTUFBTTtRQUNYLElBQUksSUFBSSxZQUFZLE9BQU8sRUFBRTtZQUMzQixPQUFRLElBQWdCLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDbkM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksSUFBSSxZQUFZLE9BQU8sRUFBRTtZQUMzQixPQUFRLElBQWdCLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDcEM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0NBQ0Y7QUFkRCw0QkFjQztBQUVELE1BQU0sUUFBUyxTQUFRLFFBQVE7SUFJN0IsWUFBWSxLQUEwQixFQUFFLElBQWtCO1FBQ3hELEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE9BQU87UUFDWixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTTtRQUNYLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksWUFBWTtRQUNqQixPQUFPLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ks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USxJQUFBLDZCQUFhLEVBQUMsTUFBTSxDQUFDO0NBQUc7QUFBbkQsc0JBQW1EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTZGtFcnJvcn0gZnJvbSAnLi4vLi4vZXJyb3JzJztcbmltcG9ydCB7UmVzcG9uc2VCYXNlLCBSZXNwb25zZUVycm9yLCBSZXNwb25zZVN1Y2Nlc3N9IGZyb20gJy4vcmVzcG9uc2UtYmFzZSc7XG5pbXBvcnQge0NhY2hlR2V0fSBmcm9tICcuLi8uLic7XG5cbmNvbnN0IFRFWFRfREVDT0RFUiA9IG5ldyBUZXh0RGVjb2RlcigpO1xuXG4vKipcbiAqIFBhcmVudCByZXNwb25zZSB0eXBlIGZvciBhIGNhY2hlIGdldCBiYXRjaCByZXF1ZXN0LiAgVGhlXG4gKiByZXNwb25zZSBvYmplY3QgaXMgcmVzb2x2ZWQgdG8gYSB0eXBlLXNhZmUgb2JqZWN0IG9mIG9uZSBvZlxuICogdGhlIGZvbGxvd2luZyBzdWJ0eXBlczpcbiAqXG4gKiAtIHtTdWNjZXNzfVxuICogLSB7RXJyb3J9XG4gKlxuICogYGluc3RhbmNlb2ZgIHR5cGUgZ3VhcmRzIGNhbiBiZSB1c2VkIHRvIG9wZXJhdGUgb24gdGhlIGFwcHJvcHJpYXRlIHN1YnR5cGUuXG4gKiBAZXhhbXBsZVxuICogRm9yIGV4YW1wbGU6XG4gKiBgYGBcbiAqIGlmIChyZXNwb25zZSBpbnN0YW5jZW9mIEJhdGNoR2V0LkVycm9yKSB7XG4gKiAgIC8vIEhhbmRsZSBlcnJvciBhcyBhcHByb3ByaWF0ZS4gIFRoZSBjb21waWxlciB3aWxsIHNtYXJ0LWNhc3QgYHJlc3BvbnNlYCB0byB0eXBlXG4gKiAgIC8vIGBCYXRjaEdldC5FcnJvcmAgaW4gdGhpcyBibG9jaywgc28geW91IHdpbGwgaGF2ZSBhY2Nlc3MgdG8gdGhlIHByb3BlcnRpZXNcbiAqICAgLy8gb2YgdGhlIEVycm9yIGNsYXNzOyBlLmcuIGByZXNwb25zZS5lcnJvckNvZGUoKWAuXG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJlc3BvbnNlIGV4dGVuZHMgUmVzcG9uc2VCYXNlIHtcbiAgcHVibGljIHZhbHVlcygpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcyBpbnN0YW5jZW9mIFN1Y2Nlc3MpIHtcbiAgICAgIHJldHVybiAodGhpcyBhcyBTdWNjZXNzKS52YWx1ZXMoKTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyByZXN1bHRzKCk6IENhY2hlR2V0LlJlc3BvbnNlW10gfCB1bmRlZmluZWQge1xuICAgIGlmICh0aGlzIGluc3RhbmNlb2YgU3VjY2Vzcykge1xuICAgICAgcmV0dXJuICh0aGlzIGFzIFN1Y2Nlc3MpLnJlc3VsdHMoKTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG5jbGFzcyBfU3VjY2VzcyBleHRlbmRzIFJlc3BvbnNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBpdGVtczogQ2FjaGVHZXQuUmVzcG9uc2VbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBrZXlzOiBVaW50OEFycmF5W107XG5cbiAgY29uc3RydWN0b3IoaXRlbXM6IENhY2hlR2V0LlJlc3BvbnNlW10sIGtleXM6IFVpbnQ4QXJyYXlbXSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5pdGVtcyA9IGl0ZW1zO1xuICAgIHRoaXMua2V5cyA9IGtleXM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgc3RhdHVzIGZvciBlYWNoIHJlcXVlc3QgaW4gdGhlIGJhdGNoIGFzIGEgbGlzdCBvZiBDYWNoZUdldC5SZXNwb25zZSBvYmplY3RzLlxuICAgKiBAcmV0dXJucyB7Q2FjaGVHZXQuUmVzcG9uc2VbXX1cbiAgICovXG4gIHB1YmxpYyByZXN1bHRzKCk6IENhY2hlR2V0LlJlc3BvbnNlW10ge1xuICAgIHJldHVybiB0aGlzLml0ZW1zO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGRhdGEgYXMgYSBSZWNvcmQgd2hvc2Uga2V5cyBhbmQgdmFsdWVzIGFyZSB1dGYtOCBzdHJpbmdzLCBkZWNvZGVkIGZyb20gdGhlIHVuZGVybHlpbmcgYnl0ZSBhcnJheXMuXG4gICAqIFRoaXMgY2FuIGJlIHVzZWQgaW4gbW9zdCBwbGFjZXMgd2hlcmUgYW4gT2JqZWN0IGlzIGRlc2lyZWQuICBUaGlzIGlzIGEgY29udmVuaWVuY2UgYWxpYXMgZm9yXG4gICAqIHt2YWx1ZVJlY29yZFN0cmluZ1N0cmluZ30uXG4gICAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fVxuICAgKi9cbiAgcHVibGljIHZhbHVlcygpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZXNSZWNvcmRTdHJpbmdTdHJpbmcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBkYXRhIGFzIGEgUmVjb3JkIHdob3NlIGtleXMgYW5kIHZhbHVlcyBhcmUgdXRmLTggc3RyaW5ncywgZGVjb2RlZCBmcm9tIHRoZSB1bmRlcmx5aW5nIGJ5dGUgYXJyYXlzLlxuICAgKiBUaGlzIGNhbiBiZSB1c2VkIGluIG1vc3QgcGxhY2VzIHdoZXJlIGFuIE9iamVjdCBpcyBkZXNpcmVkLiAgVGhpcyBpcyBhIGNvbnZlbmllbmNlIGFsaWFzIGZvclxuICAgKiB7dmFsdWVSZWNvcmRTdHJpbmdTdHJpbmd9LlxuICAgKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn1cbiAgICovXG4gIHB1YmxpYyB2YWx1ZXNSZWNvcmQoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVzUmVjb3JkU3RyaW5nU3RyaW5nKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZGF0YSBhcyBhIFJlY29yZCB3aG9zZSBrZXlzIGFuZCB2YWx1ZXMgYXJlIHV0Zi04IHN0cmluZ3MsIGRlY29kZWQgZnJvbSB0aGUgdW5kZXJseWluZyBieXRlIGFycmF5cy5cbiAgICogVGhpcyBjYW4gYmUgdXNlZCBpbiBtb3N0IHBsYWNlcyB3aGVyZSBhbiBPYmplY3QgaXMgZGVzaXJlZC5cbiAgICogQHJldHVybnMge1JlY29yZDxzdHJpbmcsIHN0cmluZz59XG4gICAqL1xuICBwdWJsaWMgdmFsdWVzUmVjb3JkU3RyaW5nU3RyaW5nKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLnJlZHVjZTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PigoYWNjLCBpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBDYWNoZUdldC5IaXQpIHtcbiAgICAgICAgYWNjW1RFWFRfREVDT0RFUi5kZWNvZGUodGhpcy5rZXlzW2luZGV4XSldID0gaXRlbS52YWx1ZVN0cmluZygpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZGF0YSBhcyBhIFJlY29yZCB3aG9zZSBrZXlzIGFyZSB1dGYtOCBzdHJpbmdzLCBkZWNvZGVkIGZyb20gdGhlIHVuZGVybHlpbmcgYnl0ZSBhcnJheSwgYW5kIHdob3NlXG4gICAqIHZhbHVlcyBhcmUgYnl0ZSBhcnJheXMuICBUaGlzIGNhbiBiZSB1c2VkIGluIG1vc3QgcGxhY2VzIHdoZXJlIGFuIE9iamVjdCBpcyBkZXNpcmVkLlxuICAgKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgVWludDhBcnJheT59XG4gICAqL1xuICBwdWJsaWMgdmFsdWVzUmVjb3JkU3RyaW5nVWludDhBcnJheSgpOiBSZWNvcmQ8c3RyaW5nLCBVaW50OEFycmF5PiB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMucmVkdWNlPFJlY29yZDxzdHJpbmcsIFVpbnQ4QXJyYXk+PigoYWNjLCBpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBDYWNoZUdldC5IaXQpIHtcbiAgICAgICAgYWNjW1RFWFRfREVDT0RFUi5kZWNvZGUodGhpcy5rZXlzW2luZGV4XSldID0gaXRlbS52YWx1ZVVpbnQ4QXJyYXkoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGRhdGEgYXMgYSBNYXAgd2hvc2Uga2V5cyBhbmQgdmFsdWVzIGFyZSB1dGYtOCBzdHJpbmdzLCBkZWNvZGVkIGZyb20gdGhlIHVuZGVybHlpbmcgYnl0ZSBhcnJheXMuXG4gICAqIFRoaXMgaXMgYSBjb252ZW5pZW5jZSBhbGlhcyBmb3Ige3ZhbHVlTWFwU3RyaW5nU3RyaW5nfS5cbiAgICogQHJldHVybnMge01hcDxzdHJpbmcsIHN0cmluZz59XG4gICAqL1xuICBwdWJsaWMgdmFsdWVzTWFwKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlc01hcFN0cmluZ1N0cmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGRhdGEgYXMgYSBNYXAgd2hvc2Uga2V5cyBhbmQgdmFsdWVzIGFyZSB1dGYtOCBzdHJpbmdzLCBkZWNvZGVkIGZyb20gdGhlIHVuZGVybHlpbmcgYnl0ZSBhcnJheXMuXG4gICAqIEByZXR1cm5zIHtNYXA8c3RyaW5nLCBzdHJpbmc+fVxuICAgKi9cbiAgcHVibGljIHZhbHVlc01hcFN0cmluZ1N0cmluZygpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2UoKGFjYywgaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgIGlmIChpdGVtIGluc3RhbmNlb2YgQ2FjaGVHZXQuSGl0KSB7XG4gICAgICAgIGFjYy5zZXQoVEVYVF9ERUNPREVSLmRlY29kZSh0aGlzLmtleXNbaW5kZXhdKSwgaXRlbS52YWx1ZVN0cmluZygpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZGF0YSBhcyBhIE1hcCB3aG9zZSBrZXlzIGFyZSBzdHJpbmdzIGFuZCB3aG9zZSB2YWx1ZXMgYXJlIGJ5dGUgYXJyYXlzLlxuICAgKiBAcmV0dXJucyB7TWFwPHN0cmluZywgVWludDhBcnJheT59XG4gICAqL1xuICBwdWJsaWMgdmFsdWVzTWFwU3RyaW5nVWludDhBcnJheSgpOiBNYXA8c3RyaW5nLCBVaW50OEFycmF5PiB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMucmVkdWNlKChhY2MsIGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIENhY2hlR2V0LkhpdCkge1xuICAgICAgICBhY2Muc2V0KFRFWFRfREVDT0RFUi5kZWNvZGUodGhpcy5rZXlzW2luZGV4XSksIGl0ZW0udmFsdWVVaW50OEFycmF5KCkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCBuZXcgTWFwPHN0cmluZywgVWludDhBcnJheT4oKSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICBjb25zdCBkaXNwbGF5ID0gdGhpcy5yZXN1bHRzKClcbiAgICAgIC5tYXAocmVzdWx0ID0+IHJlc3VsdC50b1N0cmluZygpKVxuICAgICAgLnRvU3RyaW5nKCk7XG4gICAgcmV0dXJuIGAke3N1cGVyLnRvU3RyaW5nKCl9OiAke2Rpc3BsYXl9YDtcbiAgfVxufVxuXG4vKipcbiAqIEluZGljYXRlcyB0aGF0IHRoZSByZXF1ZXN0ZWQgZGF0YSB3YXMgc3VjY2Vzc2Z1bGx5IHJldHJpZXZlZCBmcm9tIHRoZSBjYWNoZS4gIFByb3ZpZGVzXG4gKiBgdmFsdWUqYCBhY2Nlc3NvcnMgdG8gcmV0cmlldmUgdGhlIGRhdGEgaW4gdGhlIGFwcHJvcHJpYXRlIGZvcm1hdC5cbiAqL1xuZXhwb3J0IGNsYXNzIFN1Y2Nlc3MgZXh0ZW5kcyBSZXNwb25zZVN1Y2Nlc3MoX1N1Y2Nlc3MpIHt9XG5cbmNsYXNzIF9FcnJvciBleHRlbmRzIFJlc3BvbnNlIHtcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9pbm5lckV4Y2VwdGlvbjogU2RrRXJyb3IpIHtcbiAgICBzdXBlcigpO1xuICB9XG59XG5cbi8qKlxuICogSW5kaWNhdGVzIHRoYXQgYW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHRoZSBjYWNoZSBnZXQgcmVxdWVzdC5cbiAqXG4gKiBUaGlzIHJlc3BvbnNlIG9iamVjdCBpbmNsdWRlcyB0aGUgZm9sbG93aW5nIGZpZWxkcyB0aGF0IHlvdSBjYW4gdXNlIHRvIGRldGVybWluZVxuICogaG93IHlvdSB3b3VsZCBsaWtlIHRvIGhhbmRsZSB0aGUgZXJyb3I6XG4gKlxuICogLSBgZXJyb3JDb2RlKClgIC0gYSB1bmlxdWUgTW9tZW50byBlcnJvciBjb2RlIGluZGljYXRpbmcgdGhlIHR5cGUgb2YgZXJyb3IgdGhhdCBvY2N1cnJlZC5cbiAqIC0gYG1lc3NhZ2UoKWAgLSBhIGh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uIG9mIHRoZSBlcnJvclxuICogLSBgaW5uZXJFeGNlcHRpb24oKWAgLSB0aGUgb3JpZ2luYWwgZXJyb3IgdGhhdCBjYXVzZWQgdGhlIGZhaWx1cmU7IGNhbiBiZSByZS10aHJvd24uXG4gKi9cbmV4cG9ydCBjbGFzcyBFcnJvciBleHRlbmRzIFJlc3BvbnNlRXJyb3IoX0Vycm9yKSB7fVxuIl19
@@ -34,11 +34,6 @@ declare class _Hit extends Response {
34
34
  * @returns {Map<string, string>}
35
35
  */
36
36
  valueMap(): Map<string, string>;
37
- /**
38
- * Returns the data as a Map whose keys and values are byte arrays.
39
- * @returns {Map<Uint8Array, Uint8Array>}
40
- */
41
- valueMapUint8ArrayUint8Array(): Map<Uint8Array, Uint8Array>;
42
37
  /**
43
38
  * Returns the data as a Map whose keys and values are utf-8 strings, decoded from the underlying byte arrays.
44
39
  * @returns {Map<string, string>}
@@ -46,16 +46,6 @@ class _Hit extends Response {
46
46
  valueMap() {
47
47
  return this.valueMapStringString();
48
48
  }
49
- /**
50
- * Returns the data as a Map whose keys and values are byte arrays.
51
- * @returns {Map<Uint8Array, Uint8Array>}
52
- */
53
- valueMapUint8ArrayUint8Array() {
54
- return this.items.reduce((acc, item) => {
55
- acc.set(item.field, item.value);
56
- return acc;
57
- }, new Map());
58
- }
59
49
  /**
60
50
  * Returns the data as a Map whose keys and values are utf-8 strings, decoded from the underlying byte arrays.
61
51
  * @returns {Map<string, string>}
@@ -174,4 +164,4 @@ class _Error extends Response {
174
164
  class Error extends (0, response_base_1.ResponseError)(_Error) {
175
165
  }
176
166
  exports.Error = Error;
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUtZGljdGlvbmFyeS1mZXRjaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tZXNzYWdlcy9yZXNwb25zZXMvY2FjaGUtZGljdGlvbmFyeS1mZXRjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFLeUI7QUFJekIsTUFBTSxZQUFZLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztBQUV2Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILE1BQXNCLFFBQVMsU0FBUSw0QkFBWTtJQUMxQyxLQUFLO1FBQ1YsSUFBSSxJQUFJLFlBQVksR0FBRyxFQUFFO1lBQ3ZCLE9BQVEsSUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzlCO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztDQUNGO0FBUEQsNEJBT0M7QUFFRCxNQUFNLElBQUssU0FBUSxRQUFRO0lBSXpCLFlBQVksS0FBa0M7UUFDNUMsS0FBSyxFQUFFLENBQUM7UUFITywwQkFBcUIsR0FBRyxDQUFDLENBQUM7UUFJekMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxRQUFRO1FBQ2IsT0FBTyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksNEJBQTRCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDckMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoQyxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBMEIsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxvQkFBb0I7UUFDekIsT0FBTyxJQUFJLENBQUMsS0FB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QUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZDLENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJQUVlLFFBQVE7UUFDdEIsT0FBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsa0NBQWtDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLENBQUM7SUFDNUYsQ0FBQztDQUNGO0FBRUQ7OztHQUdHO0FBQ0gsTUFBYSxHQUFJLFNBQVEsSUFBQSwyQkFBVyxFQUFDLElBQUksQ0FBQztDQUFHO0FBQTdDLGtCQUE2QztBQUU3QyxNQUFNLEtBQU0sU0FBUSxRQUFRO0NBQUc7QUFFL0I7O0dBRUc7QUFDSCxNQUFhLElBQUssU0FBUSxJQUFBLDRCQUFZLEVBQUMsS0FBSyxDQUFDO0NBQUc7QUFBaEQsb0JBQWdEO0FBRWhELE1BQU0sTUFBTyxTQUFRLFFBQVE7SUFDM0IsWUFBc0IsZUFBeUI7UUFDN0MsS0FBSyxFQUFFLENBQUM7UUFEWSxvQkFBZSxHQUFmLGVBQWUsQ0FBVTtJQUUvQyxDQUFDO0NBQ0Y7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFhLEtBQU0sU0FBUSxJQUFBLDZCQUFhLEVBQUMsTUFBTSxDQUFDO0NBQUc7QUFBbkQsc0JBQW1EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgUmVzcG9uc2VCYXNlLFxuICBSZXNwb25zZUhpdCxcbiAgUmVzcG9uc2VNaXNzLFxuICBSZXNwb25zZUVycm9yLFxufSBmcm9tICcuL3Jlc3BvbnNlLWJhc2UnO1xuaW1wb3J0IHtTZGtFcnJvcn0gZnJvbSAnLi4vLi4vZXJyb3JzJztcbmltcG9ydCB7X0RpY3Rpb25hcnlGaWVsZFZhbHVlUGFpcn0gZnJvbSAnLi9ncnBjLXJlc3BvbnNlLXR5cGVzJztcblxuY29uc3QgVEVYVF9ERUNPREVSID0gbmV3IFRleHREZWNvZGVyKCk7XG5cbi8qKlxuICogUGFyZW50IHJlc3BvbnNlIHR5cGUgZm9yIGEgZGljdGlvbmFyeSBmZXRjaCByZXF1ZXN0LiAgVGhlXG4gKiByZXNwb25zZSBvYmplY3QgaXMgcmVzb2x2ZWQgdG8gYSB0eXBlLXNhZmUgb2JqZWN0IG9mIG9uZSBvZlxuICogdGhlIGZvbGxvd2luZyBzdWJ0eXBlczpcbiAqXG4gKiAtIHtIaXR9XG4gKiAtIHtNaXNzfVxuICogLSB7RXJyb3J9XG4gKlxuICogYGluc3RhbmNlb2ZgIHR5cGUgZ3VhcmRzIGNhbiBiZSB1c2VkIHRvIG9wZXJhdGUgb24gdGhlIGFwcHJvcHJpYXRlIHN1YnR5cGUuXG4gKiBAZXhhbXBsZVxuICogRm9yIGV4YW1wbGU6XG4gKiBgYGBcbiAqIGlmIChyZXNwb25zZSBpbnN0YW5jZW9mIENhY2hlRGljdGlvbmFyeUZldGNoLkVycm9yKSB7XG4gKiAgIC8vIEhhbmRsZSBlcnJvciBhcyBhcHByb3ByaWF0ZS4gIFRoZSBjb21waWxlciB3aWxsIHNtYXJ0LWNhc3QgYHJlc3BvbnNlYCB0byB0eXBlXG4gKiAgIC8vIGBDYWNoZURpY3Rpb25hcnlGZXRjaC5FcnJvcmAgaW4gdGhpcyBibG9jaywgc28geW91IHdpbGwgaGF2ZSBhY2Nlc3MgdG8gdGhlIHByb3BlcnRpZXNcbiAqICAgLy8gb2YgdGhlIEVycm9yIGNsYXNzOyBlLmcuIGByZXNwb25zZS5lcnJvckNvZGUoKWAuXG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJlc3BvbnNlIGV4dGVuZHMgUmVzcG9uc2VCYXNlIHtcbiAgcHVibGljIHZhbHVlKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCB1bmRlZmluZWQge1xuICAgIGlmICh0aGlzIGluc3RhbmNlb2YgSGl0KSB7XG4gICAgICByZXR1cm4gKHRoaXMgYXMgSGl0KS52YWx1ZSgpO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbmNsYXNzIF9IaXQgZXh0ZW5kcyBSZXNwb25zZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaXRlbXM6IF9EaWN0aW9uYXJ5RmllbGRWYWx1ZVBhaXJbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGlzcGxheUxpc3RTaXplTGltaXQgPSA1O1xuXG4gIGNvbnN0cnVjdG9yKGl0ZW1zOiBfRGljdGlvbmFyeUZpZWxkVmFsdWVQYWlyW10pIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuaXRlbXMgPSBpdGVtcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBkYXRhIGFzIGEgTWFwIHdob3NlIGtleXMgYW5kIHZhbHVlcyBhcmUgdXRmLTggc3RyaW5ncywgZGVjb2RlZCBmcm9tIHRoZSB1bmRlcmx5aW5nIGJ5dGUgYXJyYXlzLlxuICAgKiBUaGlzIGlzIGEgY29udmVuaWVuY2UgYWxpYXMgZm9yIHt2YWx1ZU1hcFN0cmluZ1N0cmluZ30uXG4gICAqIEByZXR1cm5zIHtNYXA8c3RyaW5nLCBzdHJpbmc+fVxuICAgKi9cbiAgcHVibGljIHZhbHVlTWFwKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlTWFwU3RyaW5nU3RyaW5nKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZGF0YSBhcyBhIE1hcCB3aG9zZSBrZXlzIGFuZCB2YWx1ZXMgYXJlIGJ5dGUgYXJyYXlzLlxuICAgKiBAcmV0dXJucyB7TWFwPFVpbnQ4QXJyYXksIFVpbnQ4QXJyYXk+fVxuICAgKi9cbiAgcHVibGljIHZhbHVlTWFwVWludDhBcnJheVVpbnQ4QXJyYXkoKTogTWFwPFVpbnQ4QXJyYXksIFVpbnQ4QXJyYXk+IHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2UoKGFjYywgaXRlbSkgPT4ge1xuICAgICAgYWNjLnNldChpdGVtLmZpZWxkLCBpdGVtLnZhbHVlKTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgbmV3IE1hcDxVaW50OEFycmF5LCBVaW50OEFycmF5PigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBkYXRhIGFzIGEgTWFwIHdob3NlIGtleXMgYW5kIHZhbHVlcyBhcmUgdXRmLTggc3RyaW5ncywgZGVjb2RlZCBmcm9tIHRoZSB1bmRlcmx5aW5nIGJ5dGUgYXJyYXlzLlxuICAgKiBAcmV0dXJucyB7TWFwPHN0cmluZywgc3RyaW5nPn1cbiAgICovXG4gIHB1YmxpYyB2YWx1ZU1hcFN0cmluZ1N0cmluZygpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2UoKGFjYywgaXRlbSkgPT4ge1xuICAgICAgYWNjLnNldChURVhUX0RFQ09ERVIuZGVjb2RlKGl0ZW0uZmllbGQpLCBURVhUX0RFQ09ERVIuZGVjb2RlKGl0ZW0udmFsdWUpKTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZGF0YSBhcyBhIE1hcCB3aG9zZSBrZXlzIGFyZSB1dGYtOCBzdHJpbmdzLCBkZWNvZGVkIGZyb20gdGhlIHVuZGVybHlpbmcgYnl0ZSBhcnJheSwgYW5kIHdob3NlIHZhbHVlc1xuICAgKiBhcmUgYnl0ZSBhcnJheXMuXG4gICAqIEByZXR1cm5zIHtNYXA8c3RyaW5nLCBVaW50OEFycmF5Pn1cbiAgICovXG4gIHB1YmxpYyB2YWx1ZU1hcFN0cmluZ1VpbnQ4QXJyYXkoKTogTWFwPHN0cmluZywgVWludDhBcnJheT4ge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLnJlZHVjZSgoYWNjLCBpdGVtKSA9PiB7XG4gICAgICBhY2Muc2V0KFRFWFRfREVDT0RFUi5kZWNvZGUoaXRlbS5maWVsZCksIGl0ZW0udmFsdWUpO1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCBuZXcgTWFwPHN0cmluZywgVWludDhBcnJheT4oKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZGF0YSBhcyBhIFJlY29yZCB3aG9zZSBrZXlzIGFuZCB2YWx1ZXMgYXJlIHV0Zi04IHN0cmluZ3MsIGRlY29kZWQgZnJvbSB0aGUgdW5kZXJseWluZyBieXRlIGFycmF5cy5cbiAgICogVGhpcyBjYW4gYmUgdXNlZCBpbiBtb3N0IHBsYWNlcyB3aGVyZSBhbiBPYmplY3QgaXMgZGVzaXJlZC4gIFRoaXMgaXMgYSBjb252ZW5pZW5jZSBhbGlhcyBmb3JcbiAgICoge3ZhbHVlUmVjb3JkU3RyaW5nU3RyaW5nfS5cbiAgICogQHJldHVybnMge1JlY29yZDxzdHJpbmcsIHN0cmluZz59XG4gICAqL1xuICBwdWJsaWMgdmFsdWUoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVSZWNvcmRTdHJpbmdTdHJpbmcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBkYXRhIGFzIGEgUmVjb3JkIHdob3NlIGtleXMgYW5kIHZhbHVlcyBhcmUgdXRmLTggc3RyaW5ncywgZGVjb2RlZCBmcm9tIHRoZSB1bmRlcmx5aW5nIGJ5dGUgYXJyYXlzLlxuICAgKiBUaGlzIGNhbiBiZSB1c2VkIGluIG1vc3QgcGxhY2VzIHdoZXJlIGFuIE9iamVjdCBpcyBkZXNpcmVkLiAgVGhpcyBpcyBhIGNvbnZlbmllbmNlIGFsaWFzIGZvclxuICAgKiB7dmFsdWVSZWNvcmRTdHJpbmdTdHJpbmd9LlxuICAgKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn1cbiAgICovXG4gIHB1YmxpYyB2YWx1ZVJlY29yZCgpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZVJlY29yZFN0cmluZ1N0cmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGRhdGEgYXMgYSBSZWNvcmQgd2hvc2Uga2V5cyBhbmQgdmFsdWVzIGFyZSB1dGYtOCBzdHJpbmdzLCBkZWNvZGVkIGZyb20gdGhlIHVuZGVybHlpbmcgYnl0ZSBhcnJheXMuXG4gICAqIFRoaXMgY2FuIGJlIHVzZWQgaW4gbW9zdCBwbGFjZXMgd2hlcmUgYW4gT2JqZWN0IGlzIGRlc2lyZWQuXG4gICAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fVxuICAgKi9cbiAgcHVibGljIHZhbHVlUmVjb3JkU3RyaW5nU3RyaW5nKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLnJlZHVjZTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PigoYWNjLCBpdGVtKSA9PiB7XG4gICAgICBhY2NbVEVYVF9ERUNPREVSLmRlY29kZShpdGVtLmZpZWxkKV0gPSBURVhUX0RFQ09ERVIuZGVjb2RlKGl0ZW0udmFsdWUpO1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZGF0YSBhcyBhIFJlY29yZCB3aG9zZSBrZXlzIGFyZSB1dGYtOCBzdHJpbmdzLCBkZWNvZGVkIGZyb20gdGhlIHVuZGVybHlpbmcgYnl0ZSBhcnJheSwgYW5kIHdob3NlXG4gICAqIHZhbHVlcyBhcmUgYnl0ZSBhcnJheXMuICBUaGlzIGNhbiBiZSB1c2VkIGluIG1vc3QgcGxhY2VzIHdoZXJlIGFuIE9iamVjdCBpcyBkZXNpcmVkLlxuICAgKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgVWludDhBcnJheT59XG4gICAqL1xuICBwdWJsaWMgdmFsdWVSZWNvcmRTdHJpbmdVaW50OEFycmF5KCk6IFJlY29yZDxzdHJpbmcsIFVpbnQ4QXJyYXk+IHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2U8UmVjb3JkPHN0cmluZywgVWludDhBcnJheT4+KChhY2MsIGl0ZW0pID0+IHtcbiAgICAgIGFjY1tURVhUX0RFQ09ERVIuZGVjb2RlKGl0ZW0uZmllbGQpXSA9IGl0ZW0udmFsdWU7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9KTtcbiAgfVxuXG4gIHByaXZhdGUgdHJ1bmNhdGVWYWx1ZVN0cmluZ3MoKTogc3RyaW5nIHtcbiAgICBjb25zdCBrZXlWYWx1ZUl0ZXJhYmxlID0gdGhpcy52YWx1ZU1hcFN0cmluZ1N0cmluZygpLmVudHJpZXMoKTtcbiAgICBjb25zdCBrZXlWYWx1ZUFycmF5ID0gQXJyYXkuZnJvbShrZXlWYWx1ZUl0ZXJhYmxlKTtcbiAgICBpZiAoa2V5VmFsdWVBcnJheS5sZW5ndGggPD0gdGhpcy5fZGlzcGxheUxpc3RTaXplTGltaXQpIHtcbiAgICAgIGNvbnN0IHBhaXJzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAga2V5VmFsdWVBcnJheS5mb3JFYWNoKHBhaXIgPT4ge1xuICAgICAgICBwYWlycy5wdXNoKGAke3BhaXJbMF19OiAke3BhaXJbMV19YCk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBwYWlycy5qb2luKCcsJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHNsaWNlZEFycmF5ID0ga2V5VmFsdWVBcnJheS5zbGljZSgwLCB0aGlzLl9kaXNwbGF5TGlzdFNpemVMaW1pdCk7XG4gICAgICBjb25zdCBwYWlyczogc3RyaW5nW10gPSBbXTtcbiAgICAgIHNsaWNlZEFycmF5LmZvckVhY2gocGFpciA9PiB7XG4gICAgICAgIHBhaXJzLnB1c2goYCR7cGFpclswXX06ICR7cGFpclsxXX1gKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHBhaXJzLmpvaW4oJywnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7c3VwZXIudG9TdHJpbmcoKX06IHZhbHVlRGljdGlvbmFyeVN0cmluZ1N0cmluZzogJHt0aGlzLnRydW5jYXRlVmFsdWVTdHJpbmdzKCl9YDtcbiAgfVxufVxuXG4vKipcbiAqIEluZGljYXRlcyB0aGF0IHRoZSByZXF1ZXN0ZWQgZGF0YSB3YXMgc3VjY2Vzc2Z1bGx5IHJldHJpZXZlZCBmcm9tIHRoZSBjYWNoZS4gIFByb3ZpZGVzXG4gKiBgdmFsdWUqYCBhY2Nlc3NvcnMgdG8gcmV0cmlldmUgdGhlIGRhdGEgaW4gdGhlIGFwcHJvcHJpYXRlIGZvcm1hdC5cbiAqL1xuZXhwb3J0IGNsYXNzIEhpdCBleHRlbmRzIFJlc3BvbnNlSGl0KF9IaXQpIHt9XG5cbmNsYXNzIF9NaXNzIGV4dGVuZHMgUmVzcG9uc2Uge31cblxuLyoqXG4gKiBJbmRpY2F0ZXMgdGhhdCB0aGUgcmVxdWVzdGVkIGRhdGEgd2FzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGNhY2hlLlxuICovXG5leHBvcnQgY2xhc3MgTWlzcyBleHRlbmRzIFJlc3BvbnNlTWlzcyhfTWlzcykge31cblxuY2xhc3MgX0Vycm9yIGV4dGVuZHMgUmVzcG9uc2Uge1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2lubmVyRXhjZXB0aW9uOiBTZGtFcnJvcikge1xuICAgIHN1cGVyKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBJbmRpY2F0ZXMgdGhhdCBhbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgdGhlIGRpY3Rpb25hcnkgZmV0Y2ggcmVxdWVzdC5cbiAqXG4gKiBUaGlzIHJlc3BvbnNlIG9iamVjdCBpbmNsdWRlcyB0aGUgZm9sbG93aW5nIGZpZWxkcyB0aGF0IHlvdSBjYW4gdXNlIHRvIGRldGVybWluZVxuICogaG93IHlvdSB3b3VsZCBsaWtlIHRvIGhhbmRsZSB0aGUgZXJyb3I6XG4gKlxuICogLSBgZXJyb3JDb2RlKClgIC0gYSB1bmlxdWUgTW9tZW50byBlcnJvciBjb2RlIGluZGljYXRpbmcgdGhlIHR5cGUgb2YgZXJyb3IgdGhhdCBvY2N1cnJlZC5cbiAqIC0gYG1lc3NhZ2UoKWAgLSBhIGh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uIG9mIHRoZSBlcnJvclxuICogLSBgaW5uZXJFeGNlcHRpb24oKWAgLSB0aGUgb3JpZ2luYWwgZXJyb3IgdGhhdCBjYXVzZWQgdGhlIGZhaWx1cmU7IGNhbiBiZSByZS10aHJvd24uXG4gKi9cbmV4cG9ydCBjbGFzcyBFcnJvciBleHRlbmRzIFJlc3BvbnNlRXJyb3IoX0Vycm9yKSB7fVxuIl19
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUtZGljdGlvbmFyeS1mZXRjaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tZXNzYWdlcy9yZXNwb25zZXMvY2FjaGUtZGljdGlvbmFyeS1mZXRjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFLeUI7QUFJekIsTUFBTSxZQUFZLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztBQUV2Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILE1BQXNCLFFBQVMsU0FBUSw0QkFBWTtJQUMxQyxLQUFLO1FBQ1YsSUFBSSxJQUFJLFlBQVksR0FBRyxFQUFFO1lBQ3ZCLE9BQVEsSUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzlCO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztDQUNGO0FBUEQsNEJBT0M7QUFFRCxNQUFNLElBQUssU0FBUSxRQUFRO0lBSXpCLFlBQVksS0FBa0M7UUFDNUMsS0FBSyxFQUFFLENBQUM7UUFITywwQkFBcUIsR0FBRyxDQUFDLENBQUM7UUFJekMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxRQUFRO1FBQ2IsT0FBTyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksb0JBQW9CO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDckMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQzFFLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFrQixDQUFDLENBQUM7SUFDaEMsQ0FB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R0FBSSxTQUFRLElBQUEsMkJBQVcsRUFBQyxJQUFJLENBQUM7Q0FBRztBQUE3QyxrQkFBNkM7QUFFN0MsTUFBTSxLQUFNLFNBQVEsUUFBUTtDQUFHO0FBRS9COztHQUVHO0FBQ0gsTUFBYSxJQUFLLFNBQVEsSUFBQSw0QkFBWSxFQUFDLEtBQUssQ0FBQztDQUFHO0FBQWhELG9CQUFnRDtBQUVoRCxNQUFNLE1BQU8sU0FBUSxRQUFRO0lBQzNCLFlBQXNCLGVBQXlCO1FBQzdDLEtBQUssRUFBRSxDQUFDO1FBRFksb0JBQWUsR0FBZixlQUFlLENBQVU7SUFFL0MsQ0FBQztDQUNGO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBYSxLQUFNLFNBQVEsSUFBQSw2QkFBYSxFQUFDLE1BQU0sQ0FBQztDQUFHO0FBQW5ELHNCQUFtRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFJlc3BvbnNlQmFzZSxcbiAgUmVzcG9uc2VIaXQsXG4gIFJlc3BvbnNlTWlzcyxcbiAgUmVzcG9uc2VFcnJvcixcbn0gZnJvbSAnLi9yZXNwb25zZS1iYXNlJztcbmltcG9ydCB7U2RrRXJyb3J9IGZyb20gJy4uLy4uL2Vycm9ycyc7XG5pbXBvcnQge19EaWN0aW9uYXJ5RmllbGRWYWx1ZVBhaXJ9IGZyb20gJy4vZ3JwYy1yZXNwb25zZS10eXBlcyc7XG5cbmNvbnN0IFRFWFRfREVDT0RFUiA9IG5ldyBUZXh0RGVjb2RlcigpO1xuXG4vKipcbiAqIFBhcmVudCByZXNwb25zZSB0eXBlIGZvciBhIGRpY3Rpb25hcnkgZmV0Y2ggcmVxdWVzdC4gIFRoZVxuICogcmVzcG9uc2Ugb2JqZWN0IGlzIHJlc29sdmVkIHRvIGEgdHlwZS1zYWZlIG9iamVjdCBvZiBvbmUgb2ZcbiAqIHRoZSBmb2xsb3dpbmcgc3VidHlwZXM6XG4gKlxuICogLSB7SGl0fVxuICogLSB7TWlzc31cbiAqIC0ge0Vycm9yfVxuICpcbiAqIGBpbnN0YW5jZW9mYCB0eXBlIGd1YXJkcyBjYW4gYmUgdXNlZCB0byBvcGVyYXRlIG9uIHRoZSBhcHByb3ByaWF0ZSBzdWJ0eXBlLlxuICogQGV4YW1wbGVcbiAqIEZvciBleGFtcGxlOlxuICogYGBgXG4gKiBpZiAocmVzcG9uc2UgaW5zdGFuY2VvZiBDYWNoZURpY3Rpb25hcnlGZXRjaC5FcnJvcikge1xuICogICAvLyBIYW5kbGUgZXJyb3IgYXMgYXBwcm9wcmlhdGUuICBUaGUgY29tcGlsZXIgd2lsbCBzbWFydC1jYXN0IGByZXNwb25zZWAgdG8gdHlwZVxuICogICAvLyBgQ2FjaGVEaWN0aW9uYXJ5RmV0Y2guRXJyb3JgIGluIHRoaXMgYmxvY2ssIHNvIHlvdSB3aWxsIGhhdmUgYWNjZXNzIHRvIHRoZSBwcm9wZXJ0aWVzXG4gKiAgIC8vIG9mIHRoZSBFcnJvciBjbGFzczsgZS5nLiBgcmVzcG9uc2UuZXJyb3JDb2RlKClgLlxuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZXNwb25zZSBleHRlbmRzIFJlc3BvbnNlQmFzZSB7XG4gIHB1YmxpYyB2YWx1ZSgpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcyBpbnN0YW5jZW9mIEhpdCkge1xuICAgICAgcmV0dXJuICh0aGlzIGFzIEhpdCkudmFsdWUoKTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG5jbGFzcyBfSGl0IGV4dGVuZHMgUmVzcG9uc2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGl0ZW1zOiBfRGljdGlvbmFyeUZpZWxkVmFsdWVQYWlyW107XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rpc3BsYXlMaXN0U2l6ZUxpbWl0ID0gNTtcblxuICBjb25zdHJ1Y3RvcihpdGVtczogX0RpY3Rpb25hcnlGaWVsZFZhbHVlUGFpcltdKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLml0ZW1zID0gaXRlbXM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZGF0YSBhcyBhIE1hcCB3aG9zZSBrZXlzIGFuZCB2YWx1ZXMgYXJlIHV0Zi04IHN0cmluZ3MsIGRlY29kZWQgZnJvbSB0aGUgdW5kZXJseWluZyBieXRlIGFycmF5cy5cbiAgICogVGhpcyBpcyBhIGNvbnZlbmllbmNlIGFsaWFzIGZvciB7dmFsdWVNYXBTdHJpbmdTdHJpbmd9LlxuICAgKiBAcmV0dXJucyB7TWFwPHN0cmluZywgc3RyaW5nPn1cbiAgICovXG4gIHB1YmxpYyB2YWx1ZU1hcCgpOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZU1hcFN0cmluZ1N0cmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGRhdGEgYXMgYSBNYXAgd2hvc2Uga2V5cyBhbmQgdmFsdWVzIGFyZSB1dGYtOCBzdHJpbmdzLCBkZWNvZGVkIGZyb20gdGhlIHVuZGVybHlpbmcgYnl0ZSBhcnJheXMuXG4gICAqIEByZXR1cm5zIHtNYXA8c3RyaW5nLCBzdHJpbmc+fVxuICAgKi9cbiAgcHVibGljIHZhbHVlTWFwU3RyaW5nU3RyaW5nKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLnJlZHVjZSgoYWNjLCBpdGVtKSA9PiB7XG4gICAgICBhY2Muc2V0KFRFWFRfREVDT0RFUi5kZWNvZGUoaXRlbS5maWVsZCksIFRFWFRfREVDT0RFUi5kZWNvZGUoaXRlbS52YWx1ZSkpO1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBkYXRhIGFzIGEgTWFwIHdob3NlIGtleXMgYXJlIHV0Zi04IHN0cmluZ3MsIGRlY29kZWQgZnJvbSB0aGUgdW5kZXJseWluZyBieXRlIGFycmF5LCBhbmQgd2hvc2UgdmFsdWVzXG4gICAqIGFyZSBieXRlIGFycmF5cy5cbiAgICogQHJldHVybnMge01hcDxzdHJpbmcsIFVpbnQ4QXJyYXk+fVxuICAgKi9cbiAgcHVibGljIHZhbHVlTWFwU3RyaW5nVWludDhBcnJheSgpOiBNYXA8c3RyaW5nLCBVaW50OEFycmF5PiB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMucmVkdWNlKChhY2MsIGl0ZW0pID0+IHtcbiAgICAgIGFjYy5zZXQoVEVYVF9ERUNPREVSLmRlY29kZShpdGVtLmZpZWxkKSwgaXRlbS52YWx1ZSk7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIG5ldyBNYXA8c3RyaW5nLCBVaW50OEFycmF5PigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBkYXRhIGFzIGEgUmVjb3JkIHdob3NlIGtleXMgYW5kIHZhbHVlcyBhcmUgdXRmLTggc3RyaW5ncywgZGVjb2RlZCBmcm9tIHRoZSB1bmRlcmx5aW5nIGJ5dGUgYXJyYXlzLlxuICAgKiBUaGlzIGNhbiBiZSB1c2VkIGluIG1vc3QgcGxhY2VzIHdoZXJlIGFuIE9iamVjdCBpcyBkZXNpcmVkLiAgVGhpcyBpcyBhIGNvbnZlbmllbmNlIGFsaWFzIGZvclxuICAgKiB7dmFsdWVSZWNvcmRTdHJpbmdTdHJpbmd9LlxuICAgKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn1cbiAgICovXG4gIHB1YmxpYyB2YWx1ZSgpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZVJlY29yZFN0cmluZ1N0cmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGRhdGEgYXMgYSBSZWNvcmQgd2hvc2Uga2V5cyBhbmQgdmFsdWVzIGFyZSB1dGYtOCBzdHJpbmdzLCBkZWNvZGVkIGZyb20gdGhlIHVuZGVybHlpbmcgYnl0ZSBhcnJheXMuXG4gICAqIFRoaXMgY2FuIGJlIHVzZWQgaW4gbW9zdCBwbGFjZXMgd2hlcmUgYW4gT2JqZWN0IGlzIGRlc2lyZWQuICBUaGlzIGlzIGEgY29udmVuaWVuY2UgYWxpYXMgZm9yXG4gICAqIHt2YWx1ZVJlY29yZFN0cmluZ1N0cmluZ30uXG4gICAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fVxuICAgKi9cbiAgcHVibGljIHZhbHVlUmVjb3JkKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlUmVjb3JkU3RyaW5nU3RyaW5nKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZGF0YSBhcyBhIFJlY29yZCB3aG9zZSBrZXlzIGFuZCB2YWx1ZXMgYXJlIHV0Zi04IHN0cmluZ3MsIGRlY29kZWQgZnJvbSB0aGUgdW5kZXJseWluZyBieXRlIGFycmF5cy5cbiAgICogVGhpcyBjYW4gYmUgdXNlZCBpbiBtb3N0IHBsYWNlcyB3aGVyZSBhbiBPYmplY3QgaXMgZGVzaXJlZC5cbiAgICogQHJldHVybnMge1JlY29yZDxzdHJpbmcsIHN0cmluZz59XG4gICAqL1xuICBwdWJsaWMgdmFsdWVSZWNvcmRTdHJpbmdTdHJpbmcoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMucmVkdWNlPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KChhY2MsIGl0ZW0pID0+IHtcbiAgICAgIGFjY1tURVhUX0RFQ09ERVIuZGVjb2RlKGl0ZW0uZmllbGQpXSA9IFRFWFRfREVDT0RFUi5kZWNvZGUoaXRlbS52YWx1ZSk7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBkYXRhIGFzIGEgUmVjb3JkIHdob3NlIGtleXMgYXJlIHV0Zi04IHN0cmluZ3MsIGRlY29kZWQgZnJvbSB0aGUgdW5kZXJseWluZyBieXRlIGFycmF5LCBhbmQgd2hvc2VcbiAgICogdmFsdWVzIGFyZSBieXRlIGFycmF5cy4gIFRoaXMgY2FuIGJlIHVzZWQgaW4gbW9zdCBwbGFjZXMgd2hlcmUgYW4gT2JqZWN0IGlzIGRlc2lyZWQuXG4gICAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCBVaW50OEFycmF5Pn1cbiAgICovXG4gIHB1YmxpYyB2YWx1ZVJlY29yZFN0cmluZ1VpbnQ4QXJyYXkoKTogUmVjb3JkPHN0cmluZywgVWludDhBcnJheT4ge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLnJlZHVjZTxSZWNvcmQ8c3RyaW5nLCBVaW50OEFycmF5Pj4oKGFjYywgaXRlbSkgPT4ge1xuICAgICAgYWNjW1RFWFRfREVDT0RFUi5kZWNvZGUoaXRlbS5maWVsZCldID0gaXRlbS52YWx1ZTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xuICB9XG5cbiAgcHJpdmF0ZSB0cnVuY2F0ZVZhbHVlU3RyaW5ncygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGtleVZhbHVlSXRlcmFibGUgPSB0aGlzLnZhbHVlTWFwU3RyaW5nU3RyaW5nKCkuZW50cmllcygpO1xuICAgIGNvbnN0IGtleVZhbHVlQXJyYXkgPSBBcnJheS5mcm9tKGtleVZhbHVlSXRlcmFibGUpO1xuICAgIGlmIChrZXlWYWx1ZUFycmF5Lmxlbmd0aCA8PSB0aGlzLl9kaXNwbGF5TGlzdFNpemVMaW1pdCkge1xuICAgICAgY29uc3QgcGFpcnM6IHN0cmluZ1tdID0gW107XG4gICAgICBrZXlWYWx1ZUFycmF5LmZvckVhY2gocGFpciA9PiB7XG4gICAgICAgIHBhaXJzLnB1c2goYCR7cGFpclswXX06ICR7cGFpclsxXX1gKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHBhaXJzLmpvaW4oJywnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc2xpY2VkQXJyYXkgPSBrZXlWYWx1ZUFycmF5LnNsaWNlKDAsIHRoaXMuX2Rpc3BsYXlMaXN0U2l6ZUxpbWl0KTtcbiAgICAgIGNvbnN0IHBhaXJzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgc2xpY2VkQXJyYXkuZm9yRWFjaChwYWlyID0+IHtcbiAgICAgICAgcGFpcnMucHVzaChgJHtwYWlyWzBdfTogJHtwYWlyWzFdfWApO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gcGFpcnMuam9pbignLCcpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtzdXBlci50b1N0cmluZygpfTogdmFsdWVEaWN0aW9uYXJ5U3RyaW5nU3RyaW5nOiAke3RoaXMudHJ1bmNhdGVWYWx1ZVN0cmluZ3MoKX1gO1xuICB9XG59XG5cbi8qKlxuICogSW5kaWNhdGVzIHRoYXQgdGhlIHJlcXVlc3RlZCBkYXRhIHdhcyBzdWNjZXNzZnVsbHkgcmV0cmlldmVkIGZyb20gdGhlIGNhY2hlLiAgUHJvdmlkZXNcbiAqIGB2YWx1ZSpgIGFjY2Vzc29ycyB0byByZXRyaWV2ZSB0aGUgZGF0YSBpbiB0aGUgYXBwcm9wcmlhdGUgZm9ybWF0LlxuICovXG5leHBvcnQgY2xhc3MgSGl0IGV4dGVuZHMgUmVzcG9uc2VIaXQoX0hpdCkge31cblxuY2xhc3MgX01pc3MgZXh0ZW5kcyBSZXNwb25zZSB7fVxuXG4vKipcbiAqIEluZGljYXRlcyB0aGF0IHRoZSByZXF1ZXN0ZWQgZGF0YSB3YXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgY2FjaGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBNaXNzIGV4dGVuZHMgUmVzcG9uc2VNaXNzKF9NaXNzKSB7fVxuXG5jbGFzcyBfRXJyb3IgZXh0ZW5kcyBSZXNwb25zZSB7XG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfaW5uZXJFeGNlcHRpb246IFNka0Vycm9yKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxufVxuXG4vKipcbiAqIEluZGljYXRlcyB0aGF0IGFuIGVycm9yIG9jY3VycmVkIGR1cmluZyB0aGUgZGljdGlvbmFyeSBmZXRjaCByZXF1ZXN0LlxuICpcbiAqIFRoaXMgcmVzcG9uc2Ugb2JqZWN0IGluY2x1ZGVzIHRoZSBmb2xsb3dpbmcgZmllbGRzIHRoYXQgeW91IGNhbiB1c2UgdG8gZGV0ZXJtaW5lXG4gKiBob3cgeW91IHdvdWxkIGxpa2UgdG8gaGFuZGxlIHRoZSBlcnJvcjpcbiAqXG4gKiAtIGBlcnJvckNvZGUoKWAgLSBhIHVuaXF1ZSBNb21lbnRvIGVycm9yIGNvZGUgaW5kaWNhdGluZyB0aGUgdHlwZSBvZiBlcnJvciB0aGF0IG9jY3VycmVkLlxuICogLSBgbWVzc2FnZSgpYCAtIGEgaHVtYW4tcmVhZGFibGUgZGVzY3JpcHRpb24gb2YgdGhlIGVycm9yXG4gKiAtIGBpbm5lckV4Y2VwdGlvbigpYCAtIHRoZSBvcmlnaW5hbCBlcnJvciB0aGF0IGNhdXNlZCB0aGUgZmFpbHVyZTsgY2FuIGJlIHJlLXRocm93bi5cbiAqL1xuZXhwb3J0IGNsYXNzIEVycm9yIGV4dGVuZHMgUmVzcG9uc2VFcnJvcihfRXJyb3IpIHt9XG4iXX0=
@@ -31,11 +31,6 @@ declare class _Hit extends Response {
31
31
  private readonly fields;
32
32
  responses: CacheDictionaryGetFieldResponseType[];
33
33
  constructor(items: _DictionaryGetResponsePart[], fields: Uint8Array[]);
34
- /**
35
- * Returns the data as a Map whose keys and values are byte arrays.
36
- * @returns {Map<Uint8Array, Uint8Array>}
37
- */
38
- valueMapUint8ArrayUint8Array(): Map<Uint8Array, Uint8Array>;
39
34
  /**
40
35
  * Returns the data as a Map whose keys and values are utf-8 strings, decoded from the underlying byte arrays.
41
36
  * @returns {Map<string, string>}
@@ -53,18 +53,6 @@ class _Hit extends Response {
53
53
  }
54
54
  });
55
55
  }
56
- /**
57
- * Returns the data as a Map whose keys and values are byte arrays.
58
- * @returns {Map<Uint8Array, Uint8Array>}
59
- */
60
- valueMapUint8ArrayUint8Array() {
61
- return this.items.reduce((acc, item, index) => {
62
- if (item.result === grpc_response_types_1._ECacheResult.Hit) {
63
- acc.set(this.fields[index], item.cacheBody);
64
- }
65
- return acc;
66
- }, new Map());
67
- }
68
56
  /**
69
57
  * Returns the data as a Map whose keys and values are utf-8 strings, decoded from the underlying byte arrays.
70
58
  * @returns {Map<string, string>}
@@ -185,4 +173,4 @@ class _Error extends Response {
185
173
  class Error extends (0, response_base_1.ResponseError)(_Error) {
186
174
  }
187
175
  exports.Error = Error;
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUtZGljdGlvbmFyeS1nZXQtZmllbGRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1kaWN0aW9uYXJ5LWdldC1maWVsZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQW9EO0FBQ3BELG1EQUt5QjtBQUN6QixnRkFBZ0Y7QUFDaEYsK0RBQWdGO0FBRWhGLE1BQU0sWUFBWSxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7QUFNdkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFDSCxNQUFzQixRQUFTLFNBQVEsNEJBQVk7SUFDMUMsS0FBSztRQUNWLElBQUksSUFBSSxZQUFZLEdBQUcsRUFBRTtZQUN2QixPQUFRLElBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUM5QjtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7Q0FDRjtBQVBELDRCQU9DO0FBRUQsTUFBTSxJQUFLLFNBQVEsUUFBUTtJQUt6QixZQUFZLEtBQW1DLEVBQUUsTUFBb0I7UUFDbkUsS0FBSyxFQUFFLENBQUM7UUFISCxjQUFTLEdBQTBDLEVBQUUsQ0FBQztRQUkzRCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUVyQixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzVCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxtQ0FBYSxDQUFDLEdBQUcsRUFBRTtnQkFDckMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQ2pCLElBQUksK0JBQStCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ3ZFLENBQUM7YUFDSDtpQkFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssbUNBQWEsQ0FB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QUFHO0FBRS9COztHQUVHO0FBQ0gsTUFBYSxJQUFLLFNBQVEsSUFBQSw0QkFBWSxFQUFDLEtBQUssQ0FBQztDQUFHO0FBQWhELG9CQUFnRDtBQUVoRCxNQUFNLE1BQU8sU0FBUSxRQUFRO0lBQzNCLFlBQW1CLGVBQXlCO1FBQzFDLEtBQUssRUFBRSxDQUFDO1FBRFMsb0JBQWUsR0FBZixlQUFlLENBQVU7SUFFNUMsQ0FBQztDQUNGO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBYSxLQUFNLFNBQVEsSUFBQSw2QkFBYSxFQUFDLE1BQU0sQ0FBQztDQUFHO0FBQW5ELHNCQUFtRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U2RrRXJyb3IsIFVua25vd25FcnJvcn0gZnJvbSAnLi4vLi4vZXJyb3JzJztcbmltcG9ydCB7XG4gIFJlc3BvbnNlQmFzZSxcbiAgUmVzcG9uc2VIaXQsXG4gIFJlc3BvbnNlTWlzcyxcbiAgUmVzcG9uc2VFcnJvcixcbn0gZnJvbSAnLi9yZXNwb25zZS1iYXNlJztcbmltcG9ydCAqIGFzIENhY2hlRGljdGlvbmFyeUdldEZpZWxkUmVzcG9uc2UgZnJvbSAnLi9jYWNoZS1kaWN0aW9uYXJ5LWdldC1maWVsZCc7XG5pbXBvcnQge19EaWN0aW9uYXJ5R2V0UmVzcG9uc2VQYXJ0LCBfRUNhY2hlUmVzdWx0fSBmcm9tICcuL2dycGMtcmVzcG9uc2UtdHlwZXMnO1xuXG5jb25zdCBURVhUX0RFQ09ERVIgPSBuZXcgVGV4dERlY29kZXIoKTtcbnR5cGUgQ2FjaGVEaWN0aW9uYXJ5R2V0RmllbGRSZXNwb25zZVR5cGUgPVxuICB8IENhY2hlRGljdGlvbmFyeUdldEZpZWxkUmVzcG9uc2UuSGl0XG4gIHwgQ2FjaGVEaWN0aW9uYXJ5R2V0RmllbGRSZXNwb25zZS5NaXNzXG4gIHwgQ2FjaGVEaWN0aW9uYXJ5R2V0RmllbGRSZXNwb25zZS5FcnJvcjtcblxuLyoqXG4gKiBQYXJlbnQgcmVzcG9uc2UgdHlwZSBmb3IgYSBkaWN0aW9uYXJ5IGdldCBmaWVsZHMgcmVxdWVzdC4gIFRoZVxuICogcmVzcG9uc2Ugb2JqZWN0IGlzIHJlc29sdmVkIHRvIGEgdHlwZS1zYWZlIG9iamVjdCBvZiBvbmUgb2ZcbiAqIHRoZSBmb2xsb3dpbmcgc3VidHlwZXM6XG4gKlxuICogLSB7SGl0fVxuICogLSB7TWlzc31cbiAqIC0ge0Vycm9yfVxuICpcbiAqIGBpbnN0YW5jZW9mYCB0eXBlIGd1YXJkcyBjYW4gYmUgdXNlZCB0byBvcGVyYXRlIG9uIHRoZSBhcHByb3ByaWF0ZSBzdWJ0eXBlLlxuICogQGV4YW1wbGVcbiAqIEZvciBleGFtcGxlOlxuICogYGBgXG4gKiBpZiAocmVzcG9uc2UgaW5zdGFuY2VvZiBDYWNoZURpY3Rpb25hcnlHZXRGaWVsZHMuRXJyb3IpIHtcbiAqICAgLy8gSGFuZGxlIGVycm9yIGFzIGFwcHJvcHJpYXRlLiAgVGhlIGNvbXBpbGVyIHdpbGwgc21hcnQtY2FzdCBgcmVzcG9uc2VgIHRvIHR5cGVcbiAqICAgLy8gYENhY2hlRGljdGlvbmFyeUdldEZpZWxkcy5FcnJvcmAgaW4gdGhpcyBibG9jaywgc28geW91IHdpbGwgaGF2ZSBhY2Nlc3MgdG8gdGhlIHByb3BlcnRpZXNcbiAqICAgLy8gb2YgdGhlIEVycm9yIGNsYXNzOyBlLmcuIGByZXNwb25zZS5lcnJvckNvZGUoKWAuXG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJlc3BvbnNlIGV4dGVuZHMgUmVzcG9uc2VCYXNlIHtcbiAgcHVibGljIHZhbHVlKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCB1bmRlZmluZWQge1xuICAgIGlmICh0aGlzIGluc3RhbmNlb2YgSGl0KSB7XG4gICAgICByZXR1cm4gKHRoaXMgYXMgSGl0KS52YWx1ZSgpO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbmNsYXNzIF9IaXQgZXh0ZW5kcyBSZXNwb25zZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaXRlbXM6IF9EaWN0aW9uYXJ5R2V0UmVzcG9uc2VQYXJ0W107XG4gIHByaXZhdGUgcmVhZG9ubHkgZmllbGRzOiBVaW50OEFycmF5W107XG4gIHB1YmxpYyByZXNwb25zZXM6IENhY2hlRGljdGlvbmFyeUdldEZpZWxkUmVzcG9uc2VUeXBlW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihpdGVtczogX0RpY3Rpb25hcnlHZXRSZXNwb25zZVBhcnRbXSwgZmllbGRzOiBVaW50OEFycmF5W10pIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuaXRlbXMgPSBpdGVtcztcbiAgICB0aGlzLmZpZWxkcyA9IGZpZWxkcztcblxuICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICBpZiAoaXRlbS5yZXN1bHQgPT09IF9FQ2FjaGVSZXN1bHQuSGl0KSB7XG4gICAgICAgIHRoaXMucmVzcG9uc2VzLnB1c2goXG4gICAgICAgICAgbmV3IENhY2hlRGljdGlvbmFyeUdldEZpZWxkUmVzcG9uc2UuSGl0KGl0ZW0uY2FjaGVCb2R5LCBmaWVsZHNbaW5kZXhdKVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIGlmIChpdGVtLnJlc3VsdCA9PT0gX0VDYWNoZVJlc3VsdC5NaXNzKSB7XG4gICAgICAgIHRoaXMucmVzcG9uc2VzLnB1c2goXG4gICAgICAgICAgbmV3IENhY2hlRGljdGlvbmFyeUdldEZpZWxkUmVzcG9uc2UuTWlzcyhmaWVsZHNbaW5kZXhdKVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZXNwb25zZXMucHVzaChcbiAgICAgICAgICBuZXcgQ2FjaGVEaWN0aW9uYXJ5R2V0RmllbGRSZXNwb25zZS5FcnJvcihcbiAgICAgICAgICAgIG5ldyBVbmtub3duRXJyb3IoaXRlbS5yZXN1bHQudG9TdHJpbmcoKSksXG4gICAgICAgICAgICBmaWVsZHNbaW5kZXhdXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGRhdGEgYXMgYSBNYXAgd2hvc2Uga2V5cyBhbmQgdmFsdWVzIGFyZSBieXRlIGFycmF5cy5cbiAgICogQHJldHVybnMge01hcDxVaW50OEFycmF5LCBVaW50OEFycmF5Pn1cbiAgICovXG4gIHB1YmxpYyB2YWx1ZU1hcFVpbnQ4QXJyYXlVaW50OEFycmF5KCk6IE1hcDxVaW50OEFycmF5LCBVaW50OEFycmF5PiB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMucmVkdWNlKChhY2MsIGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICBpZiAoaXRlbS5yZXN1bHQgPT09IF9FQ2FjaGVSZXN1bHQuSGl0KSB7XG4gICAgICAgIGFjYy5zZXQodGhpcy5maWVsZHNbaW5kZXhdLCBpdGVtLmNhY2hlQm9keSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIG5ldyBNYXA8VWludDhBcnJheSwgVWludDhBcnJheT4oKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZGF0YSBhcyBhIE1hcCB3aG9zZSBrZXlzIGFuZCB2YWx1ZXMgYXJlIHV0Zi04IHN0cmluZ3MsIGRlY29kZWQgZnJvbSB0aGUgdW5kZXJseWluZyBieXRlIGFycmF5cy5cbiAgICogQHJldHVybnMge01hcDxzdHJpbmcsIHN0cmluZz59XG4gICAqL1xuICBwdWJsaWMgdmFsdWVNYXBTdHJpbmdTdHJpbmcoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMucmVkdWNlKChhY2MsIGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICBpZiAoaXRlbS5yZXN1bHQgPT09IF9FQ2FjaGVSZXN1bHQuSGl0KSB7XG4gICAgICAgIGFjYy5zZXQoXG4gICAgICAgICAgVEVYVF9ERUNPREVSLmRlY29kZSh0aGlzLmZpZWxkc1tpbmRleF0pLFxuICAgICAgICAgIFRFWFRfREVDT0RFUi5kZWNvZGUoaXRlbS5jYWNoZUJvZHkpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGRhdGEgYXMgYSBNYXAgd2hvc2Uga2V5cyBhbmQgdmFsdWVzIGFyZSB1dGYtOCBzdHJpbmdzLCBkZWNvZGVkIGZyb20gdGhlIHVuZGVybHlpbmcgYnl0ZSBhcnJheXMuXG4gICAqIFRoaXMgaXMgYSBjb252ZW5pZW5jZSBhbGlhcyBmb3Ige3ZhbHVlTWFwU3RyaW5nU3RyaW5nfS5cbiAgICogQHJldHVybnMge01hcDxzdHJpbmcsIHN0cmluZz59XG4gICAqL1xuICBwdWJsaWMgdmFsdWVNYXAoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVNYXBTdHJpbmdTdHJpbmcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBkYXRhIGFzIGEgTWFwIHdob3NlIGtleXMgYXJlIHV0Zi04IHN0cmluZ3MsIGRlY29kZWQgZnJvbSB0aGUgdW5kZXJseWluZyBieXRlIGFycmF5LCBhbmQgd2hvc2UgdmFsdWVzXG4gICAqIGFyZSBieXRlIGFycmF5cy5cbiAgICogQHJldHVybnMge01hcDxzdHJpbmcsIFVpbnQ4QXJyYXk+fVxuICAgKi9cbiAgcHVibGljIHZhbHVlTWFwU3RyaW5nVWludDhBcnJheSgpOiBNYXA8c3RyaW5nLCBVaW50OEFycmF5PiB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMucmVkdWNlKChhY2MsIGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICBpZiAoaXRlbS5yZXN1bHQgPT09IF9FQ2FjaGVSZXN1bHQuSGl0KSB7XG4gICAgICAgIGFjYy5zZXQoVEVYVF9ERUNPREVSLmRlY29kZSh0aGlzLmZpZWxkc1tpbmRleF0pLCBpdGVtLmNhY2hlQm9keSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIG5ldyBNYXA8c3RyaW5nLCBVaW50OEFycmF5PigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBkYXRhIGFzIGEgUmVjb3JkIHdob3NlIGtleXMgYW5kIHZhbHVlcyBhcmUgdXRmLTggc3RyaW5ncywgZGVjb2RlZCBmcm9tIHRoZSB1bmRlcmx5aW5nIGJ5dGUgYXJyYXlzLlxuICAgKiBUaGlzIGNhbiBiZSB1c2VkIGluIG1vc3QgcGxhY2VzIHdoZXJlIGFuIE9iamVjdCBpcyBkZXNpcmVkLlxuICAgKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn1cbiAgICovXG4gIHB1YmxpYyB2YWx1ZVJlY29yZFN0cmluZ1N0cmluZygpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2U8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4oKGFjYywgaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgIGlmIChpdGVtLnJlc3VsdCA9PT0gX0VDYWNoZVJlc3VsdC5IaXQpIHtcbiAgICAgICAgYWNjW1RFWFRfREVDT0RFUi5kZWNvZGUodGhpcy5maWVsZHNbaW5kZXhdKV0gPSBURVhUX0RFQ09ERVIuZGVjb2RlKFxuICAgICAgICAgIGl0ZW0uY2FjaGVCb2R5XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBkYXRhIGFzIGEgUmVjb3JkIHdob3NlIGtleXMgYW5kIHZhbHVlcyBhcmUgdXRmLTggc3RyaW5ncywgZGVjb2RlZCBmcm9tIHRoZSB1bmRlcmx5aW5nIGJ5dGUgYXJyYXlzLlxuICAgKiBUaGlzIGNhbiBiZSB1c2VkIGluIG1vc3QgcGxhY2VzIHdoZXJlIGFuIE9iamVjdCBpcyBkZXNpcmVkLiAgVGhpcyBpcyBhIGNvbnZlbmllbmNlIGFsaWFzIGZvclxuICAgKiB7dmFsdWVSZWNvcmRTdHJpbmdTdHJpbmd9LlxuICAgKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn1cbiAgICovXG4gIHB1YmxpYyB2YWx1ZVJlY29yZCgpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZVJlY29yZFN0cmluZ1N0cmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGRhdGEgYXMgYSBSZWNvcmQgd2hvc2Uga2V5cyBhbmQgdmFsdWVzIGFyZSB1dGYtOCBzdHJpbmdzLCBkZWNvZGVkIGZyb20gdGhlIHVuZGVybHlpbmcgYnl0ZSBhcnJheXMuXG4gICAqIFRoaXMgY2FuIGJlIHVzZWQgaW4gbW9zdCBwbGFjZXMgd2hlcmUgYW4gT2JqZWN0IGlzIGRlc2lyZWQuICBUaGlzIGlzIGEgY29udmVuaWVuY2UgYWxpYXMgZm9yXG4gICAqIHt2YWx1ZVJlY29yZFN0cmluZ1N0cmluZ30uXG4gICAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fVxuICAgKi9cbiAgcHVibGljIHZhbHVlKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlUmVjb3JkU3RyaW5nU3RyaW5nKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZGF0YSBhcyBhIFJlY29yZCB3aG9zZSBrZXlzIGFyZSB1dGYtOCBzdHJpbmdzLCBkZWNvZGVkIGZyb20gdGhlIHVuZGVybHlpbmcgYnl0ZSBhcnJheSwgYW5kIHdob3NlXG4gICAqIHZhbHVlcyBhcmUgYnl0ZSBhcnJheXMuICBUaGlzIGNhbiBiZSB1c2VkIGluIG1vc3QgcGxhY2VzIHdoZXJlIGFuIE9iamVjdCBpcyBkZXNpcmVkLlxuICAgKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgVWludDhBcnJheT59XG4gICAqL1xuICBwdWJsaWMgdmFsdWVSZWNvcmRTdHJpbmdVaW50OEFycmF5KCk6IFJlY29yZDxzdHJpbmcsIFVpbnQ4QXJyYXk+IHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2U8UmVjb3JkPHN0cmluZywgVWludDhBcnJheT4+KChhY2MsIGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICBpZiAoaXRlbS5yZXN1bHQgPT09IF9FQ2FjaGVSZXN1bHQuSGl0KSB7XG4gICAgICAgIGFjY1tURVhUX0RFQ09ERVIuZGVjb2RlKHRoaXMuZmllbGRzW2luZGV4XSldID0gaXRlbS5jYWNoZUJvZHk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9KTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIGxldCBzdHJpbmdSZXByZXNlbnRhdGlvbiA9ICcnO1xuICAgIHRoaXMudmFsdWVNYXBTdHJpbmdTdHJpbmcoKS5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICBjb25zdCBrZXlWYWx1ZSA9IGAke2tleX06ICR7dmFsdWV9LCBgO1xuICAgICAgc3RyaW5nUmVwcmVzZW50YXRpb24gPSBzdHJpbmdSZXByZXNlbnRhdGlvbiArIGtleVZhbHVlO1xuICAgIH0pO1xuICAgIHJldHVybiBgJHtzdXBlci50b1N0cmluZygpfTogdmFsdWVEaWN0aW9uYXJ5U3RyaW5nU3RyaW5nOiAke3N0cmluZ1JlcHJlc2VudGF0aW9uLnNsaWNlKFxuICAgICAgMCxcbiAgICAgIC0yXG4gICAgKX1gO1xuICB9XG59XG5cbi8qKlxuICogSW5kaWNhdGVzIHRoYXQgdGhlIHJlcXVlc3RlZCBkYXRhIHdhcyBzdWNjZXNzZnVsbHkgcmV0cmlldmVkIGZyb20gdGhlIGNhY2hlLiAgUHJvdmlkZXNcbiAqIGB2YWx1ZSpgIGFjY2Vzc29ycyB0byByZXRyaWV2ZSB0aGUgZGF0YSBpbiB0aGUgYXBwcm9wcmlhdGUgZm9ybWF0LlxuICovXG5leHBvcnQgY2xhc3MgSGl0IGV4dGVuZHMgUmVzcG9uc2VIaXQoX0hpdCkge31cblxuY2xhc3MgX01pc3MgZXh0ZW5kcyBSZXNwb25zZSB7fVxuXG4vKipcbiAqIEluZGljYXRlcyB0aGF0IHRoZSByZXF1ZXN0ZWQgZGF0YSB3YXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgY2FjaGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBNaXNzIGV4dGVuZHMgUmVzcG9uc2VNaXNzKF9NaXNzKSB7fVxuXG5jbGFzcyBfRXJyb3IgZXh0ZW5kcyBSZXNwb25zZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBfaW5uZXJFeGNlcHRpb246IFNka0Vycm9yKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxufVxuXG4vKipcbiAqIEluZGljYXRlcyB0aGF0IGFuIGVycm9yIG9jY3VycmVkIGR1cmluZyB0aGUgZGljdGlvbmFyeSBnZXQgZmllbGRzIHJlcXVlc3QuXG4gKlxuICogVGhpcyByZXNwb25zZSBvYmplY3QgaW5jbHVkZXMgdGhlIGZvbGxvd2luZyBmaWVsZHMgdGhhdCB5b3UgY2FuIHVzZSB0byBkZXRlcm1pbmVcbiAqIGhvdyB5b3Ugd291bGQgbGlrZSB0byBoYW5kbGUgdGhlIGVycm9yOlxuICpcbiAqIC0gYGVycm9yQ29kZSgpYCAtIGEgdW5pcXVlIE1vbWVudG8gZXJyb3IgY29kZSBpbmRpY2F0aW5nIHRoZSB0eXBlIG9mIGVycm9yIHRoYXQgb2NjdXJyZWQuXG4gKiAtIGBtZXNzYWdlKClgIC0gYSBodW1hbi1yZWFkYWJsZSBkZXNjcmlwdGlvbiBvZiB0aGUgZXJyb3JcbiAqIC0gYGlubmVyRXhjZXB0aW9uKClgIC0gdGhlIG9yaWdpbmFsIGVycm9yIHRoYXQgY2F1c2VkIHRoZSBmYWlsdXJlOyBjYW4gYmUgcmUtdGhyb3duLlxuICovXG5leHBvcnQgY2xhc3MgRXJyb3IgZXh0ZW5kcyBSZXNwb25zZUVycm9yKF9FcnJvcikge31cbiJdfQ==
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUtZGljdGlvbmFyeS1nZXQtZmllbGRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1kaWN0aW9uYXJ5LWdldC1maWVsZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQW9EO0FBQ3BELG1EQUt5QjtBQUN6QixnRkFBZ0Y7QUFDaEYsK0RBQWdGO0FBRWhGLE1BQU0sWUFBWSxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7QUFNdkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFDSCxNQUFzQixRQUFTLFNBQVEsNEJBQVk7SUFDMUMsS0FBSztRQUNWLElBQUksSUFBSSxZQUFZLEdBQUcsRUFBRTtZQUN2QixPQUFRLElBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUM5QjtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7Q0FDRjtBQVBELDRCQU9DO0FBRUQsTUFBTSxJQUFLLFNBQVEsUUFBUTtJQUt6QixZQUFZLEtBQW1DLEVBQUUsTUFBb0I7UUFDbkUsS0FBSyxFQUFFLENBQUM7UUFISCxjQUFTLEdBQTBDLEVBQUUsQ0FBQztRQUkzRCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUVyQixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzVCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxtQ0FBYSxDQUFDLEdBQUcsRUFBRTtnQkFDckMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQ2pCLElBQUksK0JBQStCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ3ZFLENBQUM7YUFDSDtpQkFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssbUNBQWEsQ0FBQyxJQUFJLEVBQUU7Z0JBQzdDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUNqQixJQUFJLCtCQUErQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDeEQsQ0FBQzthQUNIO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUNqQixJQUFJLCtCQUErQixDQUFDLEtBQUssQ0FDdkMsSUFBSSxxQkFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsRUFDeEMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUNkLENBQ0YsQ0FBQzthQUNIO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksb0JBQW9CO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzVDLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxtQ0FBYSxDQUFDLEdBQUcsRUFBRTtnQkFDckMsR0FBRyxDQUFDLEdBQUcsQ0FDTCxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDdkMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQ3BDLENBQUM7YUFDSDtZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFrQixDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxRQUFRO1FBQ2IsT0FBTyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLHdCQUF3QjtRQUM3QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUM1QyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssbUNBQWEsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3JDLEdBQUcsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ2xFO1lBQ0QsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQXNCLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLHVCQUF1QjtRQUM1QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUF5QixDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDcEUsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLG1DQUFhLENBQUMsR0FBRyxFQUFFO2dCQUNyQyxHQUFHLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUNoRSxJQUFJLENBQUMsU0FBUyxDQUNmLENBQUM7YUFDSDtZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksV0FBVztRQUNoQixPQUFPLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLEtBQUs7UUFDVixPQUFPLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksMkJBQTJCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQTZCLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUN4RSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssbUNBQWEsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3JDLEdBQUcsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7YUFDL0Q7WUFDRCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNULENBQUM7SUFFZSxRQUFRO1FBQ3RCLElBQUksb0JBQW9CLEdBQUcsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUNqRCxNQUFNLFFBQVEsR0FBRyxHQUFHLEdBQUcsS0FBSyxLQUFLLElBQUksQ0FBQztZQUN0QyxvQkFBb0IsR0FBRyxvQkFBb0IsR0FBRyxRQUFRLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxrQ0FBa0Msb0JBQW9CLENBQUMsS0FBSyxDQUNwRixDQUFDLEVBQ0QsQ0FBQyxDQUFDLENBQ0gsRUFBRSxDQUFDO0lBQ04sQ0FBQztDQUNGO0FBRUQ7OztHQUdHO0FBQ0gsTUFBYSxHQUFJLFNBQVEsSUFBQSwyQkFBVyxFQUFDLElBQUksQ0FBQztDQUFHO0FBQTdDLGtCQUE2QztBQUU3QyxNQUFNLEtBQU0sU0FBUSxRQUFRO0NBQUc7QUFFL0I7O0dBRUc7QUFDSCxNQUFhLElBQUssU0FBUSxJQUFBLDRCQUFZLEVBQUMsS0FBSyxDQUFDO0NBQUc7QUFBaEQsb0JBQWdEO0FBRWhELE1BQU0sTUFBTyxTQUFRLFFBQVE7SUFDM0IsWUFBbUIsZUFBeUI7UUFDMUMsS0FBSyxFQUFFLENBQUM7UUFEUyxvQkFBZSxHQUFmLGVBQWUsQ0FBVTtJQUU1QyxDQUFDO0NBQ0Y7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFhLEtBQU0sU0FBUSxJQUFBLDZCQUFhLEVBQUMsTUFBTSxDQUFDO0NBQUc7QUFBbkQsc0JBQW1EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTZGtFcnJvciwgVW5rbm93bkVycm9yfSBmcm9tICcuLi8uLi9lcnJvcnMnO1xuaW1wb3J0IHtcbiAgUmVzcG9uc2VCYXNlLFxuICBSZXNwb25zZUhpdCxcbiAgUmVzcG9uc2VNaXNzLFxuICBSZXNwb25zZUVycm9yLFxufSBmcm9tICcuL3Jlc3BvbnNlLWJhc2UnO1xuaW1wb3J0ICogYXMgQ2FjaGVEaWN0aW9uYXJ5R2V0RmllbGRSZXNwb25zZSBmcm9tICcuL2NhY2hlLWRpY3Rpb25hcnktZ2V0LWZpZWxkJztcbmltcG9ydCB7X0RpY3Rpb25hcnlHZXRSZXNwb25zZVBhcnQsIF9FQ2FjaGVSZXN1bHR9IGZyb20gJy4vZ3JwYy1yZXNwb25zZS10eXBlcyc7XG5cbmNvbnN0IFRFWFRfREVDT0RFUiA9IG5ldyBUZXh0RGVjb2RlcigpO1xudHlwZSBDYWNoZURpY3Rpb25hcnlHZXRGaWVsZFJlc3BvbnNlVHlwZSA9XG4gIHwgQ2FjaGVEaWN0aW9uYXJ5R2V0RmllbGRSZXNwb25zZS5IaXRcbiAgfCBDYWNoZURpY3Rpb25hcnlHZXRGaWVsZFJlc3BvbnNlLk1pc3NcbiAgfCBDYWNoZURpY3Rpb25hcnlHZXRGaWVsZFJlc3BvbnNlLkVycm9yO1xuXG4vKipcbiAqIFBhcmVudCByZXNwb25zZSB0eXBlIGZvciBhIGRpY3Rpb25hcnkgZ2V0IGZpZWxkcyByZXF1ZXN0LiAgVGhlXG4gKiByZXNwb25zZSBvYmplY3QgaXMgcmVzb2x2ZWQgdG8gYSB0eXBlLXNhZmUgb2JqZWN0IG9mIG9uZSBvZlxuICogdGhlIGZvbGxvd2luZyBzdWJ0eXBlczpcbiAqXG4gKiAtIHtIaXR9XG4gKiAtIHtNaXNzfVxuICogLSB7RXJyb3J9XG4gKlxuICogYGluc3RhbmNlb2ZgIHR5cGUgZ3VhcmRzIGNhbiBiZSB1c2VkIHRvIG9wZXJhdGUgb24gdGhlIGFwcHJvcHJpYXRlIHN1YnR5cGUuXG4gKiBAZXhhbXBsZVxuICogRm9yIGV4YW1wbGU6XG4gKiBgYGBcbiAqIGlmIChyZXNwb25zZSBpbnN0YW5jZW9mIENhY2hlRGljdGlvbmFyeUdldEZpZWxkcy5FcnJvcikge1xuICogICAvLyBIYW5kbGUgZXJyb3IgYXMgYXBwcm9wcmlhdGUuICBUaGUgY29tcGlsZXIgd2lsbCBzbWFydC1jYXN0IGByZXNwb25zZWAgdG8gdHlwZVxuICogICAvLyBgQ2FjaGVEaWN0aW9uYXJ5R2V0RmllbGRzLkVycm9yYCBpbiB0aGlzIGJsb2NrLCBzbyB5b3Ugd2lsbCBoYXZlIGFjY2VzcyB0byB0aGUgcHJvcGVydGllc1xuICogICAvLyBvZiB0aGUgRXJyb3IgY2xhc3M7IGUuZy4gYHJlc3BvbnNlLmVycm9yQ29kZSgpYC5cbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmVzcG9uc2UgZXh0ZW5kcyBSZXNwb25zZUJhc2Uge1xuICBwdWJsaWMgdmFsdWUoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMgaW5zdGFuY2VvZiBIaXQpIHtcbiAgICAgIHJldHVybiAodGhpcyBhcyBIaXQpLnZhbHVlKCk7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuY2xhc3MgX0hpdCBleHRlbmRzIFJlc3BvbnNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBpdGVtczogX0RpY3Rpb25hcnlHZXRSZXNwb25zZVBhcnRbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBmaWVsZHM6IFVpbnQ4QXJyYXlbXTtcbiAgcHVibGljIHJlc3BvbnNlczogQ2FjaGVEaWN0aW9uYXJ5R2V0RmllbGRSZXNwb25zZVR5cGVbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKGl0ZW1zOiBfRGljdGlvbmFyeUdldFJlc3BvbnNlUGFydFtdLCBmaWVsZHM6IFVpbnQ4QXJyYXlbXSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5pdGVtcyA9IGl0ZW1zO1xuICAgIHRoaXMuZmllbGRzID0gZmllbGRzO1xuXG4gICAgaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgIGlmIChpdGVtLnJlc3VsdCA9PT0gX0VDYWNoZVJlc3VsdC5IaXQpIHtcbiAgICAgICAgdGhpcy5yZXNwb25zZXMucHVzaChcbiAgICAgICAgICBuZXcgQ2FjaGVEaWN0aW9uYXJ5R2V0RmllbGRSZXNwb25zZS5IaXQoaXRlbS5jYWNoZUJvZHksIGZpZWxkc1tpbmRleF0pXG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKGl0ZW0ucmVzdWx0ID09PSBfRUNhY2hlUmVzdWx0Lk1pc3MpIHtcbiAgICAgICAgdGhpcy5yZXNwb25zZXMucHVzaChcbiAgICAgICAgICBuZXcgQ2FjaGVEaWN0aW9uYXJ5R2V0RmllbGRSZXNwb25zZS5NaXNzKGZpZWxkc1tpbmRleF0pXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlc3BvbnNlcy5wdXNoKFxuICAgICAgICAgIG5ldyBDYWNoZURpY3Rpb25hcnlHZXRGaWVsZFJlc3BvbnNlLkVycm9yKFxuICAgICAgICAgICAgbmV3IFVua25vd25FcnJvcihpdGVtLnJlc3VsdC50b1N0cmluZygpKSxcbiAgICAgICAgICAgIGZpZWxkc1tpbmRleF1cbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZGF0YSBhcyBhIE1hcCB3aG9zZSBrZXlzIGFuZCB2YWx1ZXMgYXJlIHV0Zi04IHN0cmluZ3MsIGRlY29kZWQgZnJvbSB0aGUgdW5kZXJseWluZyBieXRlIGFycmF5cy5cbiAgICogQHJldHVybnMge01hcDxzdHJpbmcsIHN0cmluZz59XG4gICAqL1xuICBwdWJsaWMgdmFsdWVNYXBTdHJpbmdTdHJpbmcoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMucmVkdWNlKChhY2MsIGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICBpZiAoaXRlbS5yZXN1bHQgPT09IF9FQ2FjaGVSZXN1bHQuSGl0KSB7XG4gICAgICAgIGFjYy5zZXQoXG4gICAgICAgICAgVEVYVF9ERUNPREVSLmRlY29kZSh0aGlzLmZpZWxkc1tpbmRleF0pLFxuICAgICAgICAgIFRFWFRfREVDT0RFUi5kZWNvZGUoaXRlbS5jYWNoZUJvZHkpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGRhdGEgYXMgYSBNYXAgd2hvc2Uga2V5cyBhbmQgdmFsdWVzIGFyZSB1dGYtOCBzdHJpbmdzLCBkZWNvZGVkIGZyb20gdGhlIHVuZGVybHlpbmcgYnl0ZSBhcnJheXMuXG4gICAqIFRoaXMgaXMgYSBjb252ZW5pZW5jZSBhbGlhcyBmb3Ige3ZhbHVlTWFwU3RyaW5nU3RyaW5nfS5cbiAgICogQHJldHVybnMge01hcDxzdHJpbmcsIHN0cmluZz59XG4gICAqL1xuICBwdWJsaWMgdmFsdWVNYXAoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVNYXBTdHJpbmdTdHJpbmcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBkYXRhIGFzIGEgTWFwIHdob3NlIGtleXMgYXJlIHV0Zi04IHN0cmluZ3MsIGRlY29kZWQgZnJvbSB0aGUgdW5kZXJseWluZyBieXRlIGFycmF5LCBhbmQgd2hvc2UgdmFsdWVzXG4gICAqIGFyZSBieXRlIGFycmF5cy5cbiAgICogQHJldHVybnMge01hcDxzdHJpbmcsIFVpbnQ4QXJyYXk+fVxuICAgKi9cbiAgcHVibGljIHZhbHVlTWFwU3RyaW5nVWludDhBcnJheSgpOiBNYXA8c3RyaW5nLCBVaW50OEFycmF5PiB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMucmVkdWNlKChhY2MsIGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICBpZiAoaXRlbS5yZXN1bHQgPT09IF9FQ2FjaGVSZXN1bHQuSGl0KSB7XG4gICAgICAgIGFjYy5zZXQoVEVYVF9ERUNPREVSLmRlY29kZSh0aGlzLmZpZWxkc1tpbmRleF0pLCBpdGVtLmNhY2hlQm9keSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIG5ldyBNYXA8c3RyaW5nLCBVaW50OEFycmF5PigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBkYXRhIGFzIGEgUmVjb3JkIHdob3NlIGtleXMgYW5kIHZhbHVlcyBhcmUgdXRmLTggc3RyaW5ncywgZGVjb2RlZCBmcm9tIHRoZSB1bmRlcmx5aW5nIGJ5dGUgYXJyYXlzLlxuICAgKiBUaGlzIGNhbiBiZSB1c2VkIGluIG1vc3QgcGxhY2VzIHdoZXJlIGFuIE9iamVjdCBpcyBkZXNpcmVkLlxuICAgKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn1cbiAgICovXG4gIHB1YmxpYyB2YWx1ZVJlY29yZFN0cmluZ1N0cmluZygpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2U8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4oKGFjYywgaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgIGlmIChpdGVtLnJlc3VsdCA9PT0gX0VDYWNoZVJlc3VsdC5IaXQpIHtcbiAgICAgICAgYWNjW1RFWFRfREVDT0RFUi5kZWNvZGUodGhpcy5maWVsZHNbaW5kZXhdKV0gPSBURVhUX0RFQ09ERVIuZGVjb2RlKFxuICAgICAgICAgIGl0ZW0uY2FjaGVCb2R5XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBkYXRhIGFzIGEgUmVjb3JkIHdob3NlIGtleXMgYW5kIHZhbHVlcyBhcmUgdXRmLTggc3RyaW5ncywgZGVjb2RlZCBmcm9tIHRoZSB1bmRlcmx5aW5nIGJ5dGUgYXJyYXlzLlxuICAgKiBUaGlzIGNhbiBiZSB1c2VkIGluIG1vc3QgcGxhY2VzIHdoZXJlIGFuIE9iamVjdCBpcyBkZXNpcmVkLiAgVGhpcyBpcyBhIGNvbnZlbmllbmNlIGFsaWFzIGZvclxuICAgKiB7dmFsdWVSZWNvcmRTdHJpbmdTdHJpbmd9LlxuICAgKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn1cbiAgICovXG4gIHB1YmxpYyB2YWx1ZVJlY29yZCgpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZVJlY29yZFN0cmluZ1N0cmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGRhdGEgYXMgYSBSZWNvcmQgd2hvc2Uga2V5cyBhbmQgdmFsdWVzIGFyZSB1dGYtOCBzdHJpbmdzLCBkZWNvZGVkIGZyb20gdGhlIHVuZGVybHlpbmcgYnl0ZSBhcnJheXMuXG4gICAqIFRoaXMgY2FuIGJlIHVzZWQgaW4gbW9zdCBwbGFjZXMgd2hlcmUgYW4gT2JqZWN0IGlzIGRlc2lyZWQuICBUaGlzIGlzIGEgY29udmVuaWVuY2UgYWxpYXMgZm9yXG4gICAqIHt2YWx1ZVJlY29yZFN0cmluZ1N0cmluZ30uXG4gICAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fVxuICAgKi9cbiAgcHVibGljIHZhbHVlKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlUmVjb3JkU3RyaW5nU3RyaW5nKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZGF0YSBhcyBhIFJlY29yZCB3aG9zZSBrZXlzIGFyZSB1dGYtOCBzdHJpbmdzLCBkZWNvZGVkIGZyb20gdGhlIHVuZGVybHlpbmcgYnl0ZSBhcnJheSwgYW5kIHdob3NlXG4gICAqIHZhbHVlcyBhcmUgYnl0ZSBhcnJheXMuICBUaGlzIGNhbiBiZSB1c2VkIGluIG1vc3QgcGxhY2VzIHdoZXJlIGFuIE9iamVjdCBpcyBkZXNpcmVkLlxuICAgKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgVWludDhBcnJheT59XG4gICAqL1xuICBwdWJsaWMgdmFsdWVSZWNvcmRTdHJpbmdVaW50OEFycmF5KCk6IFJlY29yZDxzdHJpbmcsIFVpbnQ4QXJyYXk+IHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2U8UmVjb3JkPHN0cmluZywgVWludDhBcnJheT4+KChhY2MsIGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICBpZiAoaXRlbS5yZXN1bHQgPT09IF9FQ2FjaGVSZXN1bHQuSGl0KSB7XG4gICAgICAgIGFjY1tURVhUX0RFQ09ERVIuZGVjb2RlKHRoaXMuZmllbGRzW2luZGV4XSldID0gaXRlbS5jYWNoZUJvZHk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9KTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIGxldCBzdHJpbmdSZXByZXNlbnRhdGlvbiA9ICcnO1xuICAgIHRoaXMudmFsdWVNYXBTdHJpbmdTdHJpbmcoKS5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICBjb25zdCBrZXlWYWx1ZSA9IGAke2tleX06ICR7dmFsdWV9LCBgO1xuICAgICAgc3RyaW5nUmVwcmVzZW50YXRpb24gPSBzdHJpbmdSZXByZXNlbnRhdGlvbiArIGtleVZhbHVlO1xuICAgIH0pO1xuICAgIHJldHVybiBgJHtzdXBlci50b1N0cmluZygpfTogdmFsdWVEaWN0aW9uYXJ5U3RyaW5nU3RyaW5nOiAke3N0cmluZ1JlcHJlc2VudGF0aW9uLnNsaWNlKFxuICAgICAgMCxcbiAgICAgIC0yXG4gICAgKX1gO1xuICB9XG59XG5cbi8qKlxuICogSW5kaWNhdGVzIHRoYXQgdGhlIHJlcXVlc3RlZCBkYXRhIHdhcyBzdWNjZXNzZnVsbHkgcmV0cmlldmVkIGZyb20gdGhlIGNhY2hlLiAgUHJvdmlkZXNcbiAqIGB2YWx1ZSpgIGFjY2Vzc29ycyB0byByZXRyaWV2ZSB0aGUgZGF0YSBpbiB0aGUgYXBwcm9wcmlhdGUgZm9ybWF0LlxuICovXG5leHBvcnQgY2xhc3MgSGl0IGV4dGVuZHMgUmVzcG9uc2VIaXQoX0hpdCkge31cblxuY2xhc3MgX01pc3MgZXh0ZW5kcyBSZXNwb25zZSB7fVxuXG4vKipcbiAqIEluZGljYXRlcyB0aGF0IHRoZSByZXF1ZXN0ZWQgZGF0YSB3YXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgY2FjaGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBNaXNzIGV4dGVuZHMgUmVzcG9uc2VNaXNzKF9NaXNzKSB7fVxuXG5jbGFzcyBfRXJyb3IgZXh0ZW5kcyBSZXNwb25zZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBfaW5uZXJFeGNlcHRpb246IFNka0Vycm9yKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxufVxuXG4vKipcbiAqIEluZGljYXRlcyB0aGF0IGFuIGVycm9yIG9jY3VycmVkIGR1cmluZyB0aGUgZGljdGlvbmFyeSBnZXQgZmllbGRzIHJlcXVlc3QuXG4gKlxuICogVGhpcyByZXNwb25zZSBvYmplY3QgaW5jbHVkZXMgdGhlIGZvbGxvd2luZyBmaWVsZHMgdGhhdCB5b3UgY2FuIHVzZSB0byBkZXRlcm1pbmVcbiAqIGhvdyB5b3Ugd291bGQgbGlrZSB0byBoYW5kbGUgdGhlIGVycm9yOlxuICpcbiAqIC0gYGVycm9yQ29kZSgpYCAtIGEgdW5pcXVlIE1vbWVudG8gZXJyb3IgY29kZSBpbmRpY2F0aW5nIHRoZSB0eXBlIG9mIGVycm9yIHRoYXQgb2NjdXJyZWQuXG4gKiAtIGBtZXNzYWdlKClgIC0gYSBodW1hbi1yZWFkYWJsZSBkZXNjcmlwdGlvbiBvZiB0aGUgZXJyb3JcbiAqIC0gYGlubmVyRXhjZXB0aW9uKClgIC0gdGhlIG9yaWdpbmFsIGVycm9yIHRoYXQgY2F1c2VkIHRoZSBmYWlsdXJlOyBjYW4gYmUgcmUtdGhyb3duLlxuICovXG5leHBvcnQgY2xhc3MgRXJyb3IgZXh0ZW5kcyBSZXNwb25zZUVycm9yKF9FcnJvcikge31cbiJdfQ==
@@ -30,11 +30,6 @@ declare class _Hit extends Response {
30
30
  _responses: CacheSortedSetGetScoreResponseType[];
31
31
  constructor(scores: _SortedSetGetScoreResponsePart[], values: Uint8Array[]);
32
32
  responses(): CacheSortedSetGetScoreResponseType[];
33
- /**
34
- * Returns the data as a Map whose keys are byte arrays and values numbers.
35
- * @returns {Map<Uint8Array, number>}
36
- */
37
- valueMapUint8Array(): Map<Uint8Array, number>;
38
33
  /**
39
34
  * Returns the data as a Map whose keys are utf-8 strings, decoded from the underlying byte arrays and values are numbers.
40
35
  * @returns {Map<string, number>}
@@ -53,18 +53,6 @@ class _Hit extends Response {
53
53
  responses() {
54
54
  return this._responses;
55
55
  }
56
- /**
57
- * Returns the data as a Map whose keys are byte arrays and values numbers.
58
- * @returns {Map<Uint8Array, number>}
59
- */
60
- valueMapUint8Array() {
61
- return this._responses.reduce((acc, response) => {
62
- if (response instanceof CacheSortedSetGetScoreResponse.Hit) {
63
- acc.set(response.valueUint8Array(), response.score());
64
- }
65
- return acc;
66
- }, new Map());
67
- }
68
56
  /**
69
57
  * Returns the data as a Map whose keys are utf-8 strings, decoded from the underlying byte arrays and values are numbers.
70
58
  * @returns {Map<string, number>}
@@ -159,4 +147,4 @@ class _Error extends Response {
159
147
  class Error extends (0, response_base_1.ResponseError)(_Error) {
160
148
  }
161
149
  exports.Error = Error;
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUtc29ydGVkLXNldC1nZXQtc2NvcmVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1zb3J0ZWQtc2V0LWdldC1zY29yZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQW9EO0FBQ3BELG1EQUt5QjtBQUN6QiwrRUFBK0U7QUFDL0UsK0RBRytCO0FBTy9COzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBQ0gsTUFBc0IsUUFBUyxTQUFRLDRCQUFZO0lBQzFDLEtBQUs7UUFDVixJQUFJLElBQUksWUFBWSxHQUFHLEVBQUU7WUFDdkIsT0FBUSxJQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDOUI7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0NBQ0Y7QUFQRCw0QkFPQztBQUVELE1BQU0sSUFBSyxTQUFRLFFBQVE7SUFHekIsWUFBWSxNQUF3QyxFQUFFLE1BQW9CO1FBQ3hFLEtBQUssRUFBRSxDQUFDO1FBSEgsZUFBVSxHQUF5QyxFQUFFLENBQUM7UUFJM0QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUM5QixJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssbUNBQWEsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3RDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUNsQixJQUFJLDhCQUE4QixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUNuRSxDQUFDO2FBQ0g7aUJBQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLG1DQUFhLENBQUMsSUFBSSxFQUFFO2dCQUM5QyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDbEIsSUFBSSw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ3ZELENBQUM7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Q0gsTUFBYSxJQUFLLFNBQVEsSUFBQSw0QkFBWSxFQUFDLEtBQUssQ0FBQztDQUFHO0FBQWhELG9CQUFnRDtBQUVoRCxNQUFNLE1BQU8sU0FBUSxRQUFRO0lBQzNCLFlBQW1CLGVBQXlCO1FBQzFDLEtBQUssRUFBRSxDQUFDO1FBRFMsb0JBQWUsR0FBZixlQUFlLENBQVU7SUFFNUMsQ0FBQztDQUNGO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBYSxLQUFNLFNBQVEsSUFBQSw2QkFBYSxFQUFDLE1BQU0sQ0FBQztDQUFHO0FBQW5ELHNCQUFtRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U2RrRXJyb3IsIFVua25vd25FcnJvcn0gZnJvbSAnLi4vLi4vZXJyb3JzJztcbmltcG9ydCB7XG4gIFJlc3BvbnNlQmFzZSxcbiAgUmVzcG9uc2VIaXQsXG4gIFJlc3BvbnNlTWlzcyxcbiAgUmVzcG9uc2VFcnJvcixcbn0gZnJvbSAnLi9yZXNwb25zZS1iYXNlJztcbmltcG9ydCAqIGFzIENhY2hlU29ydGVkU2V0R2V0U2NvcmVSZXNwb25zZSBmcm9tICcuL2NhY2hlLXNvcnRlZC1zZXQtZ2V0LXNjb3JlJztcbmltcG9ydCB7XG4gIF9FQ2FjaGVSZXN1bHQsXG4gIF9Tb3J0ZWRTZXRHZXRTY29yZVJlc3BvbnNlUGFydCxcbn0gZnJvbSAnLi9ncnBjLXJlc3BvbnNlLXR5cGVzJztcblxudHlwZSBDYWNoZVNvcnRlZFNldEdldFNjb3JlUmVzcG9uc2VUeXBlID1cbiAgfCBDYWNoZVNvcnRlZFNldEdldFNjb3JlUmVzcG9uc2UuSGl0XG4gIHwgQ2FjaGVTb3J0ZWRTZXRHZXRTY29yZVJlc3BvbnNlLk1pc3NcbiAgfCBDYWNoZVNvcnRlZFNldEdldFNjb3JlUmVzcG9uc2UuRXJyb3I7XG5cbi8qKlxuICogUGFyZW50IHJlc3BvbnNlIHR5cGUgZm9yIGEgc29ydGVkIHNldCBnZXQgc2NvcmVzIHJlcXVlc3QuICBUaGVcbiAqIHJlc3BvbnNlIG9iamVjdCBpcyByZXNvbHZlZCB0byBhIHR5cGUtc2FmZSBvYmplY3Qgb2Ygb25lIG9mXG4gKiB0aGUgZm9sbG93aW5nIHN1YnR5cGVzOlxuICpcbiAqIC0ge0hpdH1cbiAqIC0ge01pc3N9XG4gKiAtIHtFcnJvcn1cbiAqXG4gKiBgaW5zdGFuY2VvZmAgdHlwZSBndWFyZHMgY2FuIGJlIHVzZWQgdG8gb3BlcmF0ZSBvbiB0aGUgYXBwcm9wcmlhdGUgc3VidHlwZS5cbiAqIEBleGFtcGxlXG4gKiBGb3IgZXhhbXBsZTpcbiAqIGBgYFxuICogaWYgKHJlc3BvbnNlIGluc3RhbmNlb2YgQ2FjaGVTb3J0ZWRTZXRHZXRTY29yZXMuRXJyb3IpIHtcbiAqICAgLy8gSGFuZGxlIGVycm9yIGFzIGFwcHJvcHJpYXRlLiAgVGhlIGNvbXBpbGVyIHdpbGwgc21hcnQtY2FzdCBgcmVzcG9uc2VgIHRvIHR5cGVcbiAqICAgLy8gYENhY2hlU29ydGVkU2V0R2V0U2NvcmVzLkVycm9yYCBpbiB0aGlzIGJsb2NrLCBzbyB5b3Ugd2lsbCBoYXZlIGFjY2VzcyB0byB0aGUgcHJvcGVydGllc1xuICogICAvLyBvZiB0aGUgRXJyb3IgY2xhc3M7IGUuZy4gYHJlc3BvbnNlLmVycm9yQ29kZSgpYC5cbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmVzcG9uc2UgZXh0ZW5kcyBSZXNwb25zZUJhc2Uge1xuICBwdWJsaWMgdmFsdWUoKTogUmVjb3JkPHN0cmluZywgbnVtYmVyPiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMgaW5zdGFuY2VvZiBIaXQpIHtcbiAgICAgIHJldHVybiAodGhpcyBhcyBIaXQpLnZhbHVlKCk7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuY2xhc3MgX0hpdCBleHRlbmRzIFJlc3BvbnNlIHtcbiAgcHVibGljIF9yZXNwb25zZXM6IENhY2hlU29ydGVkU2V0R2V0U2NvcmVSZXNwb25zZVR5cGVbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3JlczogX1NvcnRlZFNldEdldFNjb3JlUmVzcG9uc2VQYXJ0W10sIHZhbHVlczogVWludDhBcnJheVtdKSB7XG4gICAgc3VwZXIoKTtcbiAgICBzY29yZXMuZm9yRWFjaCgoc2NvcmUsIGluZGV4KSA9PiB7XG4gICAgICBpZiAoc2NvcmUucmVzdWx0ID09PSBfRUNhY2hlUmVzdWx0LkhpdCkge1xuICAgICAgICB0aGlzLl9yZXNwb25zZXMucHVzaChcbiAgICAgICAgICBuZXcgQ2FjaGVTb3J0ZWRTZXRHZXRTY29yZVJlc3BvbnNlLkhpdChzY29yZS5zY29yZSwgdmFsdWVzW2luZGV4XSlcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSBpZiAoc2NvcmUucmVzdWx0ID09PSBfRUNhY2hlUmVzdWx0Lk1pc3MpIHtcbiAgICAgICAgdGhpcy5fcmVzcG9uc2VzLnB1c2goXG4gICAgICAgICAgbmV3IENhY2hlU29ydGVkU2V0R2V0U2NvcmVSZXNwb25zZS5NaXNzKHZhbHVlc1tpbmRleF0pXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9yZXNwb25zZXMucHVzaChcbiAgICAgICAgICBuZXcgQ2FjaGVTb3J0ZWRTZXRHZXRTY29yZVJlc3BvbnNlLkVycm9yKFxuICAgICAgICAgICAgbmV3IFVua25vd25FcnJvcihzY29yZS5yZXN1bHQudG9TdHJpbmcoKSksXG4gICAgICAgICAgICB2YWx1ZXNbaW5kZXhdXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlc3BvbnNlcygpOiBDYWNoZVNvcnRlZFNldEdldFNjb3JlUmVzcG9uc2VUeXBlW10ge1xuICAgIHJldHVybiB0aGlzLl9yZXNwb25zZXM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZGF0YSBhcyBhIE1hcCB3aG9zZSBrZXlzIGFyZSBieXRlIGFycmF5cyBhbmQgdmFsdWVzIG51bWJlcnMuXG4gICAqIEByZXR1cm5zIHtNYXA8VWludDhBcnJheSwgbnVtYmVyPn1cbiAgICovXG4gIHB1YmxpYyB2YWx1ZU1hcFVpbnQ4QXJyYXkoKTogTWFwPFVpbnQ4QXJyYXksIG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLl9yZXNwb25zZXMucmVkdWNlKChhY2MsIHJlc3BvbnNlKSA9PiB7XG4gICAgICBpZiAocmVzcG9uc2UgaW5zdGFuY2VvZiBDYWNoZVNvcnRlZFNldEdldFNjb3JlUmVzcG9uc2UuSGl0KSB7XG4gICAgICAgIGFjYy5zZXQocmVzcG9uc2UudmFsdWVVaW50OEFycmF5KCksIHJlc3BvbnNlLnNjb3JlKCkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCBuZXcgTWFwPFVpbnQ4QXJyYXksIG51bWJlcj4oKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZGF0YSBhcyBhIE1hcCB3aG9zZSBrZXlzIGFyZSB1dGYtOCBzdHJpbmdzLCBkZWNvZGVkIGZyb20gdGhlIHVuZGVybHlpbmcgYnl0ZSBhcnJheXMgYW5kIHZhbHVlcyBhcmUgbnVtYmVycy5cbiAgICogQHJldHVybnMge01hcDxzdHJpbmcsIG51bWJlcj59XG4gICAqL1xuICBwdWJsaWMgdmFsdWVNYXBTdHJpbmcoKTogTWFwPHN0cmluZywgbnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuX3Jlc3BvbnNlcy5yZWR1Y2UoKGFjYywgcmVzcG9uc2UpID0+IHtcbiAgICAgIGlmIChyZXNwb25zZSBpbnN0YW5jZW9mIENhY2hlU29ydGVkU2V0R2V0U2NvcmVSZXNwb25zZS5IaXQpIHtcbiAgICAgICAgYWNjLnNldChyZXNwb25zZS52YWx1ZVN0cmluZygpLCByZXNwb25zZS5zY29yZSgpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZGF0YSBhcyBhIE1hcCB3aG9zZSBrZXlzIGFuZCB2YWx1ZXMgYXJlIHV0Zi04IHN0cmluZ3MsIGRlY29kZWQgZnJvbSB0aGUgdW5kZXJseWluZyBieXRlIGFycmF5cy5cbiAgICogVGhpcyBpcyBhIGNvbnZlbmllbmNlIGFsaWFzIGZvciB7dmFsdWVNYXBTdHJpbmdTdHJpbmd9LlxuICAgKiBAcmV0dXJucyB7TWFwPHN0cmluZywgbnVtYmVyPn1cbiAgICovXG4gIHB1YmxpYyB2YWx1ZU1hcCgpOiBNYXA8c3RyaW5nLCBudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZU1hcFN0cmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGRhdGEgYXMgYSBSZWNvcmQgd2hvc2Uga2V5cyBhbmQgdmFsdWVzIGFyZSB1dGYtOCBzdHJpbmdzLCBkZWNvZGVkIGZyb20gdGhlIHVuZGVybHlpbmcgYnl0ZSBhcnJheXMuXG4gICAqIFRoaXMgY2FuIGJlIHVzZWQgaW4gbW9zdCBwbGFjZXMgd2hlcmUgYW4gT2JqZWN0IGlzIGRlc2lyZWQuXG4gICAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCBudW1iZXI+fVxuICAgKi9cbiAgcHVibGljIHZhbHVlUmVjb3JkU3RyaW5nKCk6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLl9yZXNwb25zZXMucmVkdWNlPFJlY29yZDxzdHJpbmcsIG51bWJlcj4+KChhY2MsIHJlc3BvbnNlKSA9PiB7XG4gICAgICBpZiAocmVzcG9uc2UgaW5zdGFuY2VvZiBDYWNoZVNvcnRlZFNldEdldFNjb3JlUmVzcG9uc2UuSGl0KSB7XG4gICAgICAgIGFjY1tyZXNwb25zZS52YWx1ZVN0cmluZygpXSA9IHJlc3BvbnNlLnNjb3JlKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBkYXRhIGFzIGEgUmVjb3JkIHdob3NlIGtleXMgYW5kIHZhbHVlcyBhcmUgdXRmLTggc3RyaW5ncywgZGVjb2RlZCBmcm9tIHRoZSB1bmRlcmx5aW5nIGJ5dGUgYXJyYXlzLlxuICAgKiBUaGlzIGNhbiBiZSB1c2VkIGluIG1vc3QgcGxhY2VzIHdoZXJlIGFuIE9iamVjdCBpcyBkZXNpcmVkLiAgVGhpcyBpcyBhIGNvbnZlbmllbmNlIGFsaWFzIGZvclxuICAgKiB7dmFsdWVSZWNvcmRTdHJpbmdTdHJpbmd9LlxuICAgKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgbnVtYmVyPn1cbiAgICovXG4gIHB1YmxpYyB2YWx1ZVJlY29yZCgpOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZVJlY29yZFN0cmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGRhdGEgYXMgYSBSZWNvcmQgd2hvc2Uga2V5cyBhbmQgdmFsdWVzIGFyZSB1dGYtOCBzdHJpbmdzLCBkZWNvZGVkIGZyb20gdGhlIHVuZGVybHlpbmcgYnl0ZSBhcnJheXMuXG4gICAqIFRoaXMgY2FuIGJlIHVzZWQgaW4gbW9zdCBwbGFjZXMgd2hlcmUgYW4gT2JqZWN0IGlzIGRlc2lyZWQuICBUaGlzIGlzIGEgY29udmVuaWVuY2UgYWxpYXMgZm9yXG4gICAqIHt2YWx1ZVJlY29yZFN0cmluZ1N0cmluZ30uXG4gICAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCBudW1iZXI+fVxuICAgKi9cbiAgcHVibGljIHZhbHVlKCk6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlUmVjb3JkKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICBsZXQgc3RyaW5nUmVwcmVzZW50YXRpb24gPSAnJztcbiAgICB0aGlzLnZhbHVlTWFwU3RyaW5nKCkuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgY29uc3Qga2V5VmFsdWUgPSBgJHtrZXl9OiAke3ZhbHVlfSwgYDtcbiAgICAgIHN0cmluZ1JlcHJlc2VudGF0aW9uID0gc3RyaW5nUmVwcmVzZW50YXRpb24gKyBrZXlWYWx1ZTtcbiAgICB9KTtcbiAgICByZXR1cm4gYCR7c3VwZXIudG9TdHJpbmcoKX06IHZhbHVlTWFwU3RyaW5nOiAke3N0cmluZ1JlcHJlc2VudGF0aW9uLnNsaWNlKFxuICAgICAgMCxcbiAgICAgIC0yXG4gICAgKX1gO1xuICB9XG59XG5cbi8qKlxuICogSW5kaWNhdGVzIHRoYXQgdGhlIHJlcXVlc3RlZCBkYXRhIHdhcyBzdWNjZXNzZnVsbHkgcmV0cmlldmVkIGZyb20gdGhlIGNhY2hlLiAgUHJvdmlkZXNcbiAqIGB2YWx1ZSpgIGFjY2Vzc29ycyB0byByZXRyaWV2ZSB0aGUgZGF0YSBpbiB0aGUgYXBwcm9wcmlhdGUgZm9ybWF0LlxuICovXG5leHBvcnQgY2xhc3MgSGl0IGV4dGVuZHMgUmVzcG9uc2VIaXQoX0hpdCkge31cblxuY2xhc3MgX01pc3MgZXh0ZW5kcyBSZXNwb25zZSB7fVxuXG4vKipcbiAqIEluZGljYXRlcyB0aGF0IHRoZSByZXF1ZXN0ZWQgZGF0YSB3YXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgY2FjaGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBNaXNzIGV4dGVuZHMgUmVzcG9uc2VNaXNzKF9NaXNzKSB7fVxuXG5jbGFzcyBfRXJyb3IgZXh0ZW5kcyBSZXNwb25zZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBfaW5uZXJFeGNlcHRpb246IFNka0Vycm9yKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxufVxuXG4vKipcbiAqIEluZGljYXRlcyB0aGF0IGFuIGVycm9yIG9jY3VycmVkIGR1cmluZyB0aGUgZGljdGlvbmFyeSBnZXQgZmllbGRzIHJlcXVlc3QuXG4gKlxuICogVGhpcyByZXNwb25zZSBvYmplY3QgaW5jbHVkZXMgdGhlIGZvbGxvd2luZyBmaWVsZHMgdGhhdCB5b3UgY2FuIHVzZSB0byBkZXRlcm1pbmVcbiAqIGhvdyB5b3Ugd291bGQgbGlrZSB0byBoYW5kbGUgdGhlIGVycm9yOlxuICpcbiAqIC0gYGVycm9yQ29kZSgpYCAtIGEgdW5pcXVlIE1vbWVudG8gZXJyb3IgY29kZSBpbmRpY2F0aW5nIHRoZSB0eXBlIG9mIGVycm9yIHRoYXQgb2NjdXJyZWQuXG4gKiAtIGBtZXNzYWdlKClgIC0gYSBodW1hbi1yZWFkYWJsZSBkZXNjcmlwdGlvbiBvZiB0aGUgZXJyb3JcbiAqIC0gYGlubmVyRXhjZXB0aW9uKClgIC0gdGhlIG9yaWdpbmFsIGVycm9yIHRoYXQgY2F1c2VkIHRoZSBmYWlsdXJlOyBjYW4gYmUgcmUtdGhyb3duLlxuICovXG5leHBvcnQgY2xhc3MgRXJyb3IgZXh0ZW5kcyBSZXNwb25zZUVycm9yKF9FcnJvcikge31cbiJdfQ==
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUtc29ydGVkLXNldC1nZXQtc2NvcmVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1zb3J0ZWQtc2V0LWdldC1zY29yZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQW9EO0FBQ3BELG1EQUt5QjtBQUN6QiwrRUFBK0U7QUFDL0UsK0RBRytCO0FBTy9COzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBQ0gsTUFBc0IsUUFBUyxTQUFRLDRCQUFZO0lBQzFDLEtBQUs7UUFDVixJQUFJLElBQUksWUFBWSxHQUFHLEVBQUU7WUFDdkIsT0FBUSxJQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDOUI7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0NBQ0Y7QUFQRCw0QkFPQztBQUVELE1BQU0sSUFBSyxTQUFRLFFBQVE7SUFHekIsWUFBWSxNQUF3QyxFQUFFLE1BQW9CO1FBQ3hFLEtBQUssRUFBRSxDQUFDO1FBSEgsZUFBVSxHQUF5QyxFQUFFLENBQUM7UUFJM0QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUM5QixJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssbUNBQWEsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3RDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUNsQixJQUFJLDhCQUE4QixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUNuRSxDQUFDO2FBQ0g7aUJBQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLG1DQUFhLENBQUMsSUFBSSxFQUFFO2dCQUM5QyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDbEIsSUFBSSw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ3ZELENBQUM7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cm9yfSBmcm9tICcuLi8uLi9lcnJvcnMnO1xuaW1wb3J0IHtcbiAgUmVzcG9uc2VCYXNlLFxuICBSZXNwb25zZUhpdCxcbiAgUmVzcG9uc2VNaXNzLFxuICBSZXNwb25zZUVycm9yLFxufSBmcm9tICcuL3Jlc3BvbnNlLWJhc2UnO1xuaW1wb3J0ICogYXMgQ2FjaGVTb3J0ZWRTZXRHZXRTY29yZVJlc3BvbnNlIGZyb20gJy4vY2FjaGUtc29ydGVkLXNldC1nZXQtc2NvcmUnO1xuaW1wb3J0IHtcbiAgX0VDYWNoZVJlc3VsdCxcbiAgX1NvcnRlZFNldEdldFNjb3JlUmVzcG9uc2VQYXJ0LFxufSBmcm9tICcuL2dycGMtcmVzcG9uc2UtdHlwZXMnO1xuXG50eXBlIENhY2hlU29ydGVkU2V0R2V0U2NvcmVSZXNwb25zZVR5cGUgPVxuICB8IENhY2hlU29ydGVkU2V0R2V0U2NvcmVSZXNwb25zZS5IaXRcbiAgfCBDYWNoZVNvcnRlZFNldEdldFNjb3JlUmVzcG9uc2UuTWlzc1xuICB8IENhY2hlU29ydGVkU2V0R2V0U2NvcmVSZXNwb25zZS5FcnJvcjtcblxuLyoqXG4gKiBQYXJlbnQgcmVzcG9uc2UgdHlwZSBmb3IgYSBzb3J0ZWQgc2V0IGdldCBzY29yZXMgcmVxdWVzdC4gIFRoZVxuICogcmVzcG9uc2Ugb2JqZWN0IGlzIHJlc29sdmVkIHRvIGEgdHlwZS1zYWZlIG9iamVjdCBvZiBvbmUgb2ZcbiAqIHRoZSBmb2xsb3dpbmcgc3VidHlwZXM6XG4gKlxuICogLSB7SGl0fVxuICogLSB7TWlzc31cbiAqIC0ge0Vycm9yfVxuICpcbiAqIGBpbnN0YW5jZW9mYCB0eXBlIGd1YXJkcyBjYW4gYmUgdXNlZCB0byBvcGVyYXRlIG9uIHRoZSBhcHByb3ByaWF0ZSBzdWJ0eXBlLlxuICogQGV4YW1wbGVcbiAqIEZvciBleGFtcGxlOlxuICogYGBgXG4gKiBpZiAocmVzcG9uc2UgaW5zdGFuY2VvZiBDYWNoZVNvcnRlZFNldEdldFNjb3Jlcy5FcnJvcikge1xuICogICAvLyBIYW5kbGUgZXJyb3IgYXMgYXBwcm9wcmlhdGUuICBUaGUgY29tcGlsZXIgd2lsbCBzbWFydC1jYXN0IGByZXNwb25zZWAgdG8gdHlwZVxuICogICAvLyBgQ2FjaGVTb3J0ZWRTZXRHZXRTY29yZXMuRXJyb3JgIGluIHRoaXMgYmxvY2ssIHNvIHlvdSB3aWxsIGhhdmUgYWNjZXNzIHRvIHRoZSBwcm9wZXJ0aWVzXG4gKiAgIC8vIG9mIHRoZSBFcnJvciBjbGFzczsgZS5nLiBgcmVzcG9uc2UuZXJyb3JDb2RlKClgLlxuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZXNwb25zZSBleHRlbmRzIFJlc3BvbnNlQmFzZSB7XG4gIHB1YmxpYyB2YWx1ZSgpOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcyBpbnN0YW5jZW9mIEhpdCkge1xuICAgICAgcmV0dXJuICh0aGlzIGFzIEhpdCkudmFsdWUoKTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG5jbGFzcyBfSGl0IGV4dGVuZHMgUmVzcG9uc2Uge1xuICBwdWJsaWMgX3Jlc3BvbnNlczogQ2FjaGVTb3J0ZWRTZXRHZXRTY29yZVJlc3BvbnNlVHlwZVtdID0gW107XG5cbiAgY29uc3RydWN0b3Ioc2NvcmVzOiBfU29ydGVkU2V0R2V0U2NvcmVSZXNwb25zZVBhcnRbXSwgdmFsdWVzOiBVaW50OEFycmF5W10pIHtcbiAgICBzdXBlcigpO1xuICAgIHNjb3Jlcy5mb3JFYWNoKChzY29yZSwgaW5kZXgpID0+IHtcbiAgICAgIGlmIChzY29yZS5yZXN1bHQgPT09IF9FQ2FjaGVSZXN1bHQuSGl0KSB7XG4gICAgICAgIHRoaXMuX3Jlc3BvbnNlcy5wdXNoKFxuICAgICAgICAgIG5ldyBDYWNoZVNvcnRlZFNldEdldFNjb3JlUmVzcG9uc2UuSGl0KHNjb3JlLnNjb3JlLCB2YWx1ZXNbaW5kZXhdKVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIGlmIChzY29yZS5yZXN1bHQgPT09IF9FQ2FjaGVSZXN1bHQuTWlzcykge1xuICAgICAgICB0aGlzLl9yZXNwb25zZXMucHVzaChcbiAgICAgICAgICBuZXcgQ2FjaGVTb3J0ZWRTZXRHZXRTY29yZVJlc3BvbnNlLk1pc3ModmFsdWVzW2luZGV4XSlcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX3Jlc3BvbnNlcy5wdXNoKFxuICAgICAgICAgIG5ldyBDYWNoZVNvcnRlZFNldEdldFNjb3JlUmVzcG9uc2UuRXJyb3IoXG4gICAgICAgICAgICBuZXcgVW5rbm93bkVycm9yKHNjb3JlLnJlc3VsdC50b1N0cmluZygpKSxcbiAgICAgICAgICAgIHZhbHVlc1tpbmRleF1cbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVzcG9uc2VzKCk6IENhY2hlU29ydGVkU2V0R2V0U2NvcmVSZXNwb25zZVR5cGVbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3Jlc3BvbnNlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBkYXRhIGFzIGEgTWFwIHdob3NlIGtleXMgYXJlIHV0Zi04IHN0cmluZ3MsIGRlY29kZWQgZnJvbSB0aGUgdW5kZXJseWluZyBieXRlIGFycmF5cyBhbmQgdmFsdWVzIGFyZSBudW1iZXJzLlxuICAgKiBAcmV0dXJucyB7TWFwPHN0cmluZywgbnVtYmVyPn1cbiAgICovXG4gIHB1YmxpYyB2YWx1ZU1hcFN0cmluZygpOiBNYXA8c3RyaW5nLCBudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5fcmVzcG9uc2VzLnJlZHVjZSgoYWNjLCByZXNwb25zZSkgPT4ge1xuICAgICAgaWYgKHJlc3BvbnNlIGluc3RhbmNlb2YgQ2FjaGVTb3J0ZWRTZXRHZXRTY29yZVJlc3BvbnNlLkhpdCkge1xuICAgICAgICBhY2Muc2V0KHJlc3BvbnNlLnZhbHVlU3RyaW5nKCksIHJlc3BvbnNlLnNjb3JlKCkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBkYXRhIGFzIGEgTWFwIHdob3NlIGtleXMgYW5kIHZhbHVlcyBhcmUgdXRmLTggc3RyaW5ncywgZGVjb2RlZCBmcm9tIHRoZSB1bmRlcmx5aW5nIGJ5dGUgYXJyYXlzLlxuICAgKiBUaGlzIGlzIGEgY29udmVuaWVuY2UgYWxpYXMgZm9yIHt2YWx1ZU1hcFN0cmluZ1N0cmluZ30uXG4gICAqIEByZXR1cm5zIHtNYXA8c3RyaW5nLCBudW1iZXI+fVxuICAgKi9cbiAgcHVibGljIHZhbHVlTWFwKCk6IE1hcDxzdHJpbmcsIG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlTWFwU3RyaW5nKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZGF0YSBhcyBhIFJlY29yZCB3aG9zZSBrZXlzIGFuZCB2YWx1ZXMgYXJlIHV0Zi04IHN0cmluZ3MsIGRlY29kZWQgZnJvbSB0aGUgdW5kZXJseWluZyBieXRlIGFycmF5cy5cbiAgICogVGhpcyBjYW4gYmUgdXNlZCBpbiBtb3N0IHBsYWNlcyB3aGVyZSBhbiBPYmplY3QgaXMgZGVzaXJlZC5cbiAgICogQHJldHVybnMge1JlY29yZDxzdHJpbmcsIG51bWJlcj59XG4gICAqL1xuICBwdWJsaWMgdmFsdWVSZWNvcmRTdHJpbmcoKTogUmVjb3JkPHN0cmluZywgbnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuX3Jlc3BvbnNlcy5yZWR1Y2U8UmVjb3JkPHN0cmluZywgbnVtYmVyPj4oKGFjYywgcmVzcG9uc2UpID0+IHtcbiAgICAgIGlmIChyZXNwb25zZSBpbnN0YW5jZW9mIENhY2hlU29ydGVkU2V0R2V0U2NvcmVSZXNwb25zZS5IaXQpIHtcbiAgICAgICAgYWNjW3Jlc3BvbnNlLnZhbHVlU3RyaW5nKCldID0gcmVzcG9uc2Uuc2NvcmUoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGRhdGEgYXMgYSBSZWNvcmQgd2hvc2Uga2V5cyBhbmQgdmFsdWVzIGFyZSB1dGYtOCBzdHJpbmdzLCBkZWNvZGVkIGZyb20gdGhlIHVuZGVybHlpbmcgYnl0ZSBhcnJheXMuXG4gICAqIFRoaXMgY2FuIGJlIHVzZWQgaW4gbW9zdCBwbGFjZXMgd2hlcmUgYW4gT2JqZWN0IGlzIGRlc2lyZWQuICBUaGlzIGlzIGEgY29udmVuaWVuY2UgYWxpYXMgZm9yXG4gICAqIHt2YWx1ZVJlY29yZFN0cmluZ1N0cmluZ30uXG4gICAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCBudW1iZXI+fVxuICAgKi9cbiAgcHVibGljIHZhbHVlUmVjb3JkKCk6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlUmVjb3JkU3RyaW5nKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZGF0YSBhcyBhIFJlY29yZCB3aG9zZSBrZXlzIGFuZCB2YWx1ZXMgYXJlIHV0Zi04IHN0cmluZ3MsIGRlY29kZWQgZnJvbSB0aGUgdW5kZXJseWluZyBieXRlIGFycmF5cy5cbiAgICogVGhpcyBjYW4gYmUgdXNlZCBpbiBtb3N0IHBsYWNlcyB3aGVyZSBhbiBPYmplY3QgaXMgZGVzaXJlZC4gIFRoaXMgaXMgYSBjb252ZW5pZW5jZSBhbGlhcyBmb3JcbiAgICoge3ZhbHVlUmVjb3JkU3RyaW5nU3RyaW5nfS5cbiAgICogQHJldHVybnMge1JlY29yZDxzdHJpbmcsIG51bWJlcj59XG4gICAqL1xuICBwdWJsaWMgdmFsdWUoKTogUmVjb3JkPHN0cmluZywgbnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVSZWNvcmQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIGxldCBzdHJpbmdSZXByZXNlbnRhdGlvbiA9ICcnO1xuICAgIHRoaXMudmFsdWVNYXBTdHJpbmcoKS5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICBjb25zdCBrZXlWYWx1ZSA9IGAke2tleX06ICR7dmFsdWV9LCBgO1xuICAgICAgc3RyaW5nUmVwcmVzZW50YXRpb24gPSBzdHJpbmdSZXByZXNlbnRhdGlvbiArIGtleVZhbHVlO1xuICAgIH0pO1xuICAgIHJldHVybiBgJHtzdXBlci50b1N0cmluZygpfTogdmFsdWVNYXBTdHJpbmc6ICR7c3RyaW5nUmVwcmVzZW50YXRpb24uc2xpY2UoXG4gICAgICAwLFxuICAgICAgLTJcbiAgICApfWA7XG4gIH1cbn1cblxuLyoqXG4gKiBJbmRpY2F0ZXMgdGhhdCB0aGUgcmVxdWVzdGVkIGRhdGEgd2FzIHN1Y2Nlc3NmdWxseSByZXRyaWV2ZWQgZnJvbSB0aGUgY2FjaGUuICBQcm92aWRlc1xuICogYHZhbHVlKmAgYWNjZXNzb3JzIHRvIHJldHJpZXZlIHRoZSBkYXRhIGluIHRoZSBhcHByb3ByaWF0ZSBmb3JtYXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBIaXQgZXh0ZW5kcyBSZXNwb25zZUhpdChfSGl0KSB7fVxuXG5jbGFzcyBfTWlzcyBleHRlbmRzIFJlc3BvbnNlIHt9XG5cbi8qKlxuICogSW5kaWNhdGVzIHRoYXQgdGhlIHJlcXVlc3RlZCBkYXRhIHdhcyBub3QgYXZhaWxhYmxlIGluIHRoZSBjYWNoZS5cbiAqL1xuZXhwb3J0IGNsYXNzIE1pc3MgZXh0ZW5kcyBSZXNwb25zZU1pc3MoX01pc3MpIHt9XG5cbmNsYXNzIF9FcnJvciBleHRlbmRzIFJlc3BvbnNlIHtcbiAgY29uc3RydWN0b3IocHVibGljIF9pbm5lckV4Y2VwdGlvbjogU2RrRXJyb3IpIHtcbiAgICBzdXBlcigpO1xuICB9XG59XG5cbi8qKlxuICogSW5kaWNhdGVzIHRoYXQgYW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHRoZSBkaWN0aW9uYXJ5IGdldCBmaWVsZHMgcmVxdWVzdC5cbiAqXG4gKiBUaGlzIHJlc3BvbnNlIG9iamVjdCBpbmNsdWRlcyB0aGUgZm9sbG93aW5nIGZpZWxkcyB0aGF0IHlvdSBjYW4gdXNlIHRvIGRldGVybWluZVxuICogaG93IHlvdSB3b3VsZCBsaWtlIHRvIGhhbmRsZSB0aGUgZXJyb3I6XG4gKlxuICogLSBgZXJyb3JDb2RlKClgIC0gYSB1bmlxdWUgTW9tZW50byBlcnJvciBjb2RlIGluZGljYXRpbmcgdGhlIHR5cGUgb2YgZXJyb3IgdGhhdCBvY2N1cnJlZC5cbiAqIC0gYG1lc3NhZ2UoKWAgLSBhIGh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uIG9mIHRoZSBlcnJvclxuICogLSBgaW5uZXJFeGNlcHRpb24oKWAgLSB0aGUgb3JpZ2luYWwgZXJyb3IgdGhhdCBjYXVzZWQgdGhlIGZhaWx1cmU7IGNhbiBiZSByZS10aHJvd24uXG4gKi9cbmV4cG9ydCBjbGFzcyBFcnJvciBleHRlbmRzIFJlc3BvbnNlRXJyb3IoX0Vycm9yKSB7fVxuIl19