@revxui/api-clients-ts 1.1.350 → 1.1.352
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/api/campaignController.service.d.ts +13 -0
- package/esm2020/api/campaignController.service.mjs +29 -1
- package/esm2020/model/apiResponseObjectBudgetStatsDTO.mjs +2 -0
- package/esm2020/model/budgetStatsDTO.mjs +13 -0
- package/esm2020/model/campaignDTO.mjs +1 -1
- package/esm2020/model/models.mjs +3 -1
- package/esm2020/model/strategyDTO.mjs +1 -1
- package/esm2020/model/strategyInlineDTO.mjs +1 -1
- package/fesm2015/revxui-api-clients-ts.mjs +28 -0
- package/fesm2015/revxui-api-clients-ts.mjs.map +1 -1
- package/fesm2020/revxui-api-clients-ts.mjs +40 -0
- package/fesm2020/revxui-api-clients-ts.mjs.map +1 -1
- package/model/apiResponseObjectBudgetStatsDTO.d.ts +17 -0
- package/model/budgetStatsDTO.d.ts +19 -0
- package/model/campaignDTO.d.ts +1 -0
- package/model/models.d.ts +2 -0
- package/model/strategyDTO.d.ts +1 -0
- package/model/strategyInlineDTO.d.ts +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
## @revxui/api-clients-ts@1.1.
|
|
1
|
+
## @revxui/api-clients-ts@1.1.352
|
|
2
2
|
|
|
3
3
|
### Building
|
|
4
4
|
|
|
@@ -19,7 +19,7 @@ Navigate to the folder of your consuming project and run one of next commands.
|
|
|
19
19
|
_published:_
|
|
20
20
|
|
|
21
21
|
```
|
|
22
|
-
npm install @revxui/api-clients-ts@1.1.
|
|
22
|
+
npm install @revxui/api-clients-ts@1.1.352 --save
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
_without publishing (not recommended):_
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { HttpClient, HttpHeaders, HttpResponse, HttpEvent } from '@angular/common/http';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
|
+
import { ApiResponseObjectBudgetStatsDTO } from '../model/apiResponseObjectBudgetStatsDTO';
|
|
3
4
|
import { ApiResponseObjectCampaignDTO } from '../model/apiResponseObjectCampaignDTO';
|
|
4
5
|
import { ApiResponseObjectCampaignDTOList } from '../model/apiResponseObjectCampaignDTOList';
|
|
5
6
|
import { ApiResponseObjectListCampaignDTO } from '../model/apiResponseObjectListCampaignDTO';
|
|
@@ -86,6 +87,18 @@ export declare class CampaignControllerService {
|
|
|
86
87
|
getAllCampaignUsingGET(advertiser_id: number, refresh?: boolean, reqId?: string, search?: string, token?: string, observe?: 'body', reportProgress?: boolean): Observable<ApiResponseObjectListCampaignDTO>;
|
|
87
88
|
getAllCampaignUsingGET(advertiser_id: number, refresh?: boolean, reqId?: string, search?: string, token?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ApiResponseObjectListCampaignDTO>>;
|
|
88
89
|
getAllCampaignUsingGET(advertiser_id: number, refresh?: boolean, reqId?: string, search?: string, token?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ApiResponseObjectListCampaignDTO>>;
|
|
90
|
+
/**
|
|
91
|
+
* API to get consumed budget statistics for a campaign
|
|
92
|
+
*
|
|
93
|
+
* @param id id
|
|
94
|
+
* @param reqId request id
|
|
95
|
+
* @param token Auth Token
|
|
96
|
+
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
|
|
97
|
+
* @param reportProgress flag to report request and response progress.
|
|
98
|
+
*/
|
|
99
|
+
getCampaignBudgetStatsUsingGET(id: number, reqId?: string, token?: string, observe?: 'body', reportProgress?: boolean): Observable<ApiResponseObjectBudgetStatsDTO>;
|
|
100
|
+
getCampaignBudgetStatsUsingGET(id: number, reqId?: string, token?: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ApiResponseObjectBudgetStatsDTO>>;
|
|
101
|
+
getCampaignBudgetStatsUsingGET(id: number, reqId?: string, token?: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ApiResponseObjectBudgetStatsDTO>>;
|
|
89
102
|
/**
|
|
90
103
|
* Api to get Campaign by Id
|
|
91
104
|
*
|
|
@@ -225,6 +225,34 @@ export class CampaignControllerService {
|
|
|
225
225
|
reportProgress: reportProgress
|
|
226
226
|
});
|
|
227
227
|
}
|
|
228
|
+
getCampaignBudgetStatsUsingGET(id, reqId, token, observe = 'body', reportProgress = false) {
|
|
229
|
+
if (id === null || id === undefined) {
|
|
230
|
+
throw new Error('Required parameter id was null or undefined when calling getCampaignBudgetStatsUsingGET.');
|
|
231
|
+
}
|
|
232
|
+
let headers = this.defaultHeaders;
|
|
233
|
+
if (reqId !== undefined && reqId !== null) {
|
|
234
|
+
headers = headers.set('reqId', String(reqId));
|
|
235
|
+
}
|
|
236
|
+
if (token !== undefined && token !== null) {
|
|
237
|
+
headers = headers.set('token', String(token));
|
|
238
|
+
}
|
|
239
|
+
// to determine the Accept header
|
|
240
|
+
let httpHeaderAccepts = [
|
|
241
|
+
'*/*'
|
|
242
|
+
];
|
|
243
|
+
const httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
|
|
244
|
+
if (httpHeaderAcceptSelected != undefined) {
|
|
245
|
+
headers = headers.set('Accept', httpHeaderAcceptSelected);
|
|
246
|
+
}
|
|
247
|
+
// to determine the Content-Type header
|
|
248
|
+
const consumes = [];
|
|
249
|
+
return this.httpClient.get(`${this.basePath}/v2/api/campaigns/fetch/budget/${encodeURIComponent(String(id))}`, {
|
|
250
|
+
withCredentials: this.configuration.withCredentials,
|
|
251
|
+
headers: headers,
|
|
252
|
+
observe: observe,
|
|
253
|
+
reportProgress: reportProgress
|
|
254
|
+
});
|
|
255
|
+
}
|
|
228
256
|
getCampaignByIdUsingGET(id, refresh, reqId, token, observe = 'body', reportProgress = false) {
|
|
229
257
|
if (id === null || id === undefined) {
|
|
230
258
|
throw new Error('Required parameter id was null or undefined when calling getCampaignByIdUsingGET.');
|
|
@@ -418,4 +446,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
418
446
|
}] }, { type: i2.Configuration, decorators: [{
|
|
419
447
|
type: Optional
|
|
420
448
|
}] }]; } });
|
|
421
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtcGFpZ25Db250cm9sbGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9hcGkvY2FtcGFpZ25Db250cm9sbGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRztBQUNILHVEQUF1RDtBQUV2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBMkIsZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBYyxXQUFXLEVBQUUsVUFBVSxFQUNWLE1BQWdDLHNCQUFzQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUE2QixZQUFZLENBQUM7QUFlL0UsT0FBTyxFQUFFLFNBQVMsRUFBc0IsTUFBMEIsY0FBYyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBMEMsa0JBQWtCLENBQUM7Ozs7QUFJckYsTUFBTSxPQUFPLHlCQUF5QjtJQU1sQyxZQUFzQixVQUFzQixFQUFnQyxRQUFnQixFQUFjLGFBQTRCO1FBQWhILGVBQVUsR0FBVixVQUFVLENBQVk7UUFKbEMsYUFBUSxHQUFHLGdDQUFnQyxDQUFDO1FBQy9DLG1CQUFjLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNuQyxrQkFBYSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7UUFHdkMsSUFBSSxRQUFRLEVBQUU7WUFDVixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztTQUM1QjtRQUNELElBQUksYUFBYSxFQUFFO1lBQ2YsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7WUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLElBQUksYUFBYSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ3ZFO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGNBQWMsQ0FBQyxRQUFrQjtRQUNyQyxNQUFNLElBQUksR0FBRyxxQkFBcUIsQ0FBQztRQUNu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QUEyQixHQUFHLElBQUksQ0FBQyxRQUFRLG9DQUFvQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUN0SSxHQUFHLEVBQ0g7WUFDSSxlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlO1lBQ25ELE9BQU8sRUFBRSxPQUFPO1lBQ2hCLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLGNBQWMsRUFBRSxjQUFjO1NBQ2pDLENBQ0osQ0FBQztJQUNOLENBQUM7O3VIQTluQlEseUJBQXlCLDRDQU0rQixTQUFTOzJIQU5qRSx5QkFBeUI7NEZBQXpCLHlCQUF5QjtrQkFEckMsVUFBVTs7MEJBT3dDLFFBQVE7OzBCQUFHLE1BQU07MkJBQUMsU0FBUzs7MEJBQXFCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFwaSBEb2N1bWVudGF0aW9uXG4gKiBBcGkgRG9jdW1lbnRhdGlvblxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKi9cbi8qIHRzbGludDpkaXNhYmxlOm5vLXVudXNlZC12YXJpYWJsZSBtZW1iZXItb3JkZXJpbmcgKi9cblxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9ICAgICAgICAgICAgICAgICAgICAgIGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMsXG4gICAgICAgICBIdHRwUmVzcG9uc2UsIEh0dHBFdmVudCB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQ3VzdG9tSHR0cFVybEVuY29kaW5nQ29kZWMgfSAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gJy4uL2VuY29kZXInO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFwaVJlc3BvbnNlT2JqZWN0Q2FtcGFpZ25EVE8gfSBmcm9tICcuLi9tb2RlbC9hcGlSZXNwb25zZU9iamVjdENhbXBhaWduRFRPJztcbmltcG9ydCB7IEFwaVJlc3BvbnNlT2JqZWN0Q2FtcGFpZ25EVE9MaXN0IH0gZnJvbSAnLi4vbW9kZWwvYXBpUmVzcG9uc2VPYmplY3RDYW1wYWlnbkRUT0xpc3QnO1xuaW1wb3J0IHsgQXBpUmVzcG9uc2VPYmplY3RMaXN0Q2FtcGFpZ25EVE8gfSBmcm9tICcuLi9tb2RlbC9hcGlSZXNwb25zZU9iamVjdExpc3RDYW1wYWlnbkRUTyc7XG5pbXBvcnQgeyBBcGlSZXNwb25zZU9iamVjdE1hcGludFJlc3BvbnNlTWVzc2FnZSB9IGZyb20gJy4uL21vZGVsL2FwaVJlc3BvbnNlT2JqZWN0TWFwaW50UmVzcG9uc2VNZXNzYWdlJztcbmltcG9ydCB7IEFwaVJlc3BvbnNlT2JqZWN0Ym9vbGVhbiB9IGZyb20gJy4uL21vZGVsL2FwaVJlc3BvbnNlT2JqZWN0Ym9vbGVhbic7XG5pbXBvcnQgeyBBcGlSZXNwb25zZU9iamVjdHN0cmluZyB9IGZyb20gJy4uL21vZGVsL2FwaVJlc3BvbnNlT2JqZWN0c3RyaW5nJztcbmltcG9ydCB7IENhbXBhaWduRFRPIH0gZnJvbSAnLi4vbW9kZWwvY2FtcGFpZ25EVE8nO1xuaW1wb3J0IHsgRHVwbGljYXRlQ2FtcGFpZ25TdHJhdGVneVJlcXVlc3REVE8gfSBmcm9tICcuLi9tb2RlbC9kdXBsaWNhdGVDYW1wYWlnblN0cmF0ZWd5UmVxdWVzdERUTyc7XG5pbXBvcnQgeyBJbmNyZW1lbnRhbGl0eVJlcG9ydERUTyB9IGZyb20gJy4uL21vZGVsL2luY3JlbWVudGFsaXR5UmVwb3J0RFRPJztcbmltcG9ydCB7IEluY3JlbWVudGFsaXR5UmVzcG9uc2UgfSBmcm9tICcuLi9tb2RlbC9pbmNyZW1lbnRhbGl0eVJlc3BvbnNlJztcblxuaW1wb3J0IHsgQkFTRV9QQVRILCBDT0xMRUNUSU9OX0ZPUk1BVFMgfSAgICAgICAgICAgICAgICAgICAgIGZyb20gJy4uL3ZhcmlhYmxlcyc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAnLi4vY29uZmlndXJhdGlvbic7XG5cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhbXBhaWduQ29udHJvbGxlclNlcnZpY2Uge1xuXG4gICAgcHJvdGVjdGVkIGJhc2VQYXRoID0gJ2h0dHBzOi8vYXBpdjJzdGFnZTcuYXRvbWV4Lm5ldCc7XG4gICAgcHVibGljIGRlZmF1bHRIZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XG4gICAgcHVibGljIGNvbmZpZ3VyYXRpb24gPSBuZXcgQ29uZmlndXJhdGlvbigpO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsIEBPcHRpb25hbCgpQEluamVjdChCQVNFX1BBVEgpIGJhc2VQYXRoOiBzdHJpbmcsIEBPcHRpb25hbCgpIGNvbmZpZ3VyYXRpb246IENvbmZpZ3VyYXRpb24pIHtcbiAgICAgICAgaWYgKGJhc2VQYXRoKSB7XG4gICAgICAgICAgICB0aGlzLmJhc2VQYXRoID0gYmFzZVBhdGg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb247XG4gICAgICAgICAgICB0aGlzLmJhc2VQYXRoID0gYmFzZVBhdGggfHwgY29uZmlndXJhdGlvbi5iYXNlUGF0aCB8fCB0aGlzLmJhc2VQYXRoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIGNvbnN1bWVzIHN0cmluZ1tdIG1pbWUtdHlwZXNcbiAgICAgKiBAcmV0dXJuIHRydWU6IGNvbnN1bWVzIGNvbnRhaW5zICdtdWx0aXBhcnQvZm9ybS1kYXRhJywgZmFsc2U6IG90aGVyd2lzZVxuICAgICAqL1xuICAgIHByaXZhdGUgY2FuQ29uc3VtZUZvcm0oY29uc3VtZXM6IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGZvcm0gPSAnbXVsdGlwYXJ0L2Zvcm0tZGF0YSc7XG4gICAgICAgIGZvciAoY29uc3QgY29uc3VtZSBvZiBjb25zdW1lcykge1xuICAgICAgICAgICAgaWYgKGZvcm0gPT09IGNvbnN1bWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG5cbiAgICAvKipcbiAgICAgKiBBcGkgdG8gYWN0aXZhdGUgTGlzdHMgb2YgQ2FtcGFpZ25zIGlkXG4gICAgICogXG4gICAgICogQHBhcmFtIGlkIGlkXG4gICAgICogQHBhcmFtIHJlcUlkIHJlcXVlc3QgaWRcbiAgICAgKiBAcGFyYW0gdG9rZW4gQXV0aCBUb2tlblxuICAgICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXG4gICAgICogQHBhcmFtIHJlcG9ydFByb2dyZXNzIGZsYWcgdG8gcmVwb3J0IHJlcXVlc3QgYW5kIHJlc3BvbnNlIHByb2dyZXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyBhY3RpdmF0ZUNhbXBhaWduVXNpbmdQT1NUKGlkOiBzdHJpbmcsIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZT86ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxBcGlSZXNwb25zZU9iamVjdE1hcGludFJlc3BvbnNlTWVzc2FnZT47XG4gICAgcHVibGljIGFjdGl2YXRlQ2FtcGFpZ25Vc2luZ1BPU1QoaWQ6IHN0cmluZywgcmVxSWQ/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlPzogJ3Jlc3BvbnNlJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8QXBpUmVzcG9uc2VPYmplY3RNYXBpbnRSZXNwb25zZU1lc3NhZ2U+PjtcbiAgICBwdWJsaWMgYWN0aXZhdGVDYW1wYWlnblVzaW5nUE9TVChpZDogc3RyaW5nLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAnZXZlbnRzJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8QXBpUmVzcG9uc2VPYmplY3RNYXBpbnRSZXNwb25zZU1lc3NhZ2U+PjtcbiAgICBwdWJsaWMgYWN0aXZhdGVDYW1wYWlnblVzaW5nUE9TVChpZDogc3RyaW5nLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU6IGFueSA9ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZSApOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgICAgIGlmIChpZCA9PT0gbnVsbCB8fCBpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciBpZCB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIGFjdGl2YXRlQ2FtcGFpZ25Vc2luZ1BPU1QuJyk7XG4gICAgICAgIH1cblxuXG5cbiAgICAgICAgbGV0IHF1ZXJ5UGFyYW1ldGVycyA9IG5ldyBIdHRwUGFyYW1zKHtlbmNvZGVyOiBuZXcgQ3VzdG9tSHR0cFVybEVuY29kaW5nQ29kZWMoKX0pO1xuICAgICAgICBpZiAoaWQgIT09IHVuZGVmaW5lZCAmJiBpZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcXVlcnlQYXJhbWV0ZXJzID0gcXVlcnlQYXJhbWV0ZXJzLnNldCgnaWQnLCA8YW55PmlkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBoZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcbiAgICAgICAgaWYgKHJlcUlkICE9PSB1bmRlZmluZWQgJiYgcmVxSWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgncmVxSWQnLCBTdHJpbmcocmVxSWQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW4gIT09IHVuZGVmaW5lZCAmJiB0b2tlbiAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCd0b2tlbicsIFN0cmluZyh0b2tlbikpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBBY2NlcHQgaGVhZGVyXG4gICAgICAgIGxldCBodHRwSGVhZGVyQWNjZXB0czogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQWNjZXB0KGh0dHBIZWFkZXJBY2NlcHRzKTtcbiAgICAgICAgaWYgKGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0JywgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQ29udGVudC1UeXBlIGhlYWRlclxuICAgICAgICBjb25zdCBjb25zdW1lczogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXTtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8QXBpUmVzcG9uc2VPYmplY3RNYXBpbnRSZXNwb25zZU1lc3NhZ2U+KGAke3RoaXMuYmFzZVBhdGh9L3YyL2FwaS9jYW1wYWlnbnMvYWN0aXZhdGVgLFxuICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRoaXMuY29uZmlndXJhdGlvbi53aXRoQ3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogaGVhZGVycyxcbiAgICAgICAgICAgICAgICBvYnNlcnZlOiBvYnNlcnZlLFxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiByZXBvcnRQcm9ncmVzc1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFwaSB0byBjcmVhdGUgQ2FtcGFpZ25cbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gY2FtcGFpZ24gY2FtcGFpZ25cbiAgICAgKiBAcGFyYW0gcmVxSWQgcmVxdWVzdCBpZFxuICAgICAqIEBwYXJhbSB0b2tlbiBBdXRoIFRva2VuXG4gICAgICogQHBhcmFtIG9ic2VydmUgc2V0IHdoZXRoZXIgb3Igbm90IHRvIHJldHVybiB0aGUgZGF0YSBPYnNlcnZhYmxlIGFzIHRoZSBib2R5LCByZXNwb25zZSBvciBldmVudHMuIGRlZmF1bHRzIHRvIHJldHVybmluZyB0aGUgYm9keS5cbiAgICAgKiBAcGFyYW0gcmVwb3J0UHJvZ3Jlc3MgZmxhZyB0byByZXBvcnQgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcHJvZ3Jlc3MuXG4gICAgICovXG4gICAgcHVibGljIGNyZWF0ZUNhbXBhaWduVXNpbmdQT1NUKGNhbXBhaWduOiBDYW1wYWlnbkRUTywgcmVxSWQ/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlPzogJ2JvZHknLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEFwaVJlc3BvbnNlT2JqZWN0Q2FtcGFpZ25EVE8+O1xuICAgIHB1YmxpYyBjcmVhdGVDYW1wYWlnblVzaW5nUE9TVChjYW1wYWlnbjogQ2FtcGFpZ25EVE8sIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZT86ICdyZXNwb25zZScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPEFwaVJlc3BvbnNlT2JqZWN0Q2FtcGFpZ25EVE8+PjtcbiAgICBwdWJsaWMgY3JlYXRlQ2FtcGFpZ25Vc2luZ1BPU1QoY2FtcGFpZ246IENhbXBhaWduRFRPLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAnZXZlbnRzJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8QXBpUmVzcG9uc2VPYmplY3RDYW1wYWlnbkRUTz4+O1xuICAgIHB1YmxpYyBjcmVhdGVDYW1wYWlnblVzaW5nUE9TVChjYW1wYWlnbjogQ2FtcGFpZ25EVE8sIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZTogYW55ID0gJ2JvZHknLCByZXBvcnRQcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlICk6IE9ic2VydmFibGU8YW55PiB7XG5cbiAgICAgICAgaWYgKGNhbXBhaWduID09PSBudWxsIHx8IGNhbXBhaWduID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIGNhbXBhaWduIHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgY3JlYXRlQ2FtcGFpZ25Vc2luZ1BPU1QuJyk7XG4gICAgICAgIH1cblxuXG5cbiAgICAgICAgbGV0IGhlYWRlcnMgPSB0aGlzLmRlZmF1bHRIZWFkZXJzO1xuICAgICAgICBpZiAocmVxSWQgIT09IHVuZGVmaW5lZCAmJiByZXFJZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdyZXFJZCcsIFN0cmluZyhyZXFJZCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0b2tlbiAhPT0gdW5kZWZpbmVkICYmIHRva2VuICE9PSBudWxsKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ3Rva2VuJywgU3RyaW5nKHRva2VuKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIEFjY2VwdCBoZWFkZXJcbiAgICAgICAgbGV0IGh0dHBIZWFkZXJBY2NlcHRzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICBdO1xuICAgICAgICBjb25zdCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJBY2NlcHQoaHR0cEhlYWRlckFjY2VwdHMpO1xuICAgICAgICBpZiAoaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBY2NlcHQnLCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBDb250ZW50LVR5cGUgaGVhZGVyXG4gICAgICAgIGNvbnN0IGNvbnN1bWVzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICBdO1xuICAgICAgICBjb25zdCBodHRwQ29udGVudFR5cGVTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckNvbnRlbnRUeXBlKGNvbnN1bWVzKTtcbiAgICAgICAgaWYgKGh0dHBDb250ZW50VHlwZVNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdDb250ZW50LVR5cGUnLCBodHRwQ29udGVudFR5cGVTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8QXBpUmVzcG9uc2VPYmplY3RDYW1wYWlnbkRUTz4oYCR7dGhpcy5iYXNlUGF0aH0vdjIvYXBpL2NhbXBhaWduc2AsXG4gICAgICAgICAgICBjYW1wYWlnbixcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRoaXMuY29uZmlndXJhdGlvbi53aXRoQ3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogaGVhZGVycyxcbiAgICAgICAgICAgICAgICBvYnNlcnZlOiBvYnNlcnZlLFxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiByZXBvcnRQcm9ncmVzc1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFwaSB0byBkZWFjdGl2YXRlIExpc3RzIG9mIENhbXBhaWducyBpZFxuICAgICAqIFxuICAgICAqIEBwYXJhbSBpZCBpZFxuICAgICAqIEBwYXJhbSByZXFJZCByZXF1ZXN0IGlkXG4gICAgICogQHBhcmFtIHRva2VuIEF1dGggVG9rZW5cbiAgICAgKiBAcGFyYW0gb2JzZXJ2ZSBzZXQgd2hldGhlciBvciBub3QgdG8gcmV0dXJuIHRoZSBkYXRhIE9ic2VydmFibGUgYXMgdGhlIGJvZHksIHJlc3BvbnNlIG9yIGV2ZW50cy4gZGVmYXVsdHMgdG8gcmV0dXJuaW5nIHRoZSBib2R5LlxuICAgICAqIEBwYXJhbSByZXBvcnRQcm9ncmVzcyBmbGFnIHRvIHJlcG9ydCByZXF1ZXN0IGFuZCByZXNwb25zZSBwcm9ncmVzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZGVhY3RpdmF0ZUNhbXBhaWduVXNpbmdQT1NUKGlkOiBzdHJpbmcsIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZT86ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxBcGlSZXNwb25zZU9iamVjdE1hcGludFJlc3BvbnNlTWVzc2FnZT47XG4gICAgcHVibGljIGRlYWN0aXZhdGVDYW1wYWlnblVzaW5nUE9TVChpZDogc3RyaW5nLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAncmVzcG9uc2UnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxBcGlSZXNwb25zZU9iamVjdE1hcGludFJlc3BvbnNlTWVzc2FnZT4+O1xuICAgIHB1YmxpYyBkZWFjdGl2YXRlQ2FtcGFpZ25Vc2luZ1BPU1QoaWQ6IHN0cmluZywgcmVxSWQ/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlPzogJ2V2ZW50cycsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cEV2ZW50PEFwaVJlc3BvbnNlT2JqZWN0TWFwaW50UmVzcG9uc2VNZXNzYWdlPj47XG4gICAgcHVibGljIGRlYWN0aXZhdGVDYW1wYWlnblVzaW5nUE9TVChpZDogc3RyaW5nLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU6IGFueSA9ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZSApOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgICAgIGlmIChpZCA9PT0gbnVsbCB8fCBpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciBpZCB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIGRlYWN0aXZhdGVDYW1wYWlnblVzaW5nUE9TVC4nKTtcbiAgICAgICAgfVxuXG5cblxuICAgICAgICBsZXQgcXVlcnlQYXJhbWV0ZXJzID0gbmV3IEh0dHBQYXJhbXMoe2VuY29kZXI6IG5ldyBDdXN0b21IdHRwVXJsRW5jb2RpbmdDb2RlYygpfSk7XG4gICAgICAgIGlmIChpZCAhPT0gdW5kZWZpbmVkICYmIGlkICE9PSBudWxsKSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBxdWVyeVBhcmFtZXRlcnMuc2V0KCdpZCcsIDxhbnk+aWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGhlYWRlcnMgPSB0aGlzLmRlZmF1bHRIZWFkZXJzO1xuICAgICAgICBpZiAocmVxSWQgIT09IHVuZGVmaW5lZCAmJiByZXFJZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdyZXFJZCcsIFN0cmluZyhyZXFJZCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0b2tlbiAhPT0gdW5kZWZpbmVkICYmIHRva2VuICE9PSBudWxsKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ3Rva2VuJywgU3RyaW5nKHRva2VuKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIEFjY2VwdCBoZWFkZXJcbiAgICAgICAgbGV0IGh0dHBIZWFkZXJBY2NlcHRzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICBdO1xuICAgICAgICBjb25zdCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJBY2NlcHQoaHR0cEhlYWRlckFjY2VwdHMpO1xuICAgICAgICBpZiAoaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBY2NlcHQnLCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBDb250ZW50LVR5cGUgaGVhZGVyXG4gICAgICAgIGNvbnN0IGNvbnN1bWVzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICBdO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxBcGlSZXNwb25zZU9iamVjdE1hcGludFJlc3BvbnNlTWVzc2FnZT4oYCR7dGhpcy5iYXNlUGF0aH0vdjIvYXBpL2NhbXBhaWducy9kZWFjdGl2YXRlYCxcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcGFyYW1zOiBxdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcbiAgICAgICAgICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBcGkgdG8gQ3JlYXRlIGR1cGxpY2F0ZSBDYW1wYWlnblxuICAgICAqIFxuICAgICAqIEBwYXJhbSBkdG8gZHRvXG4gICAgICogQHBhcmFtIGlkIGlkXG4gICAgICogQHBhcmFtIHJlcUlkIHJlcXVlc3QgaWRcbiAgICAgKiBAcGFyYW0gdG9rZW4gQXV0aCBUb2tlblxuICAgICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXG4gICAgICogQHBhcmFtIHJlcG9ydFByb2dyZXNzIGZsYWcgdG8gcmVwb3J0IHJlcXVlc3QgYW5kIHJlc3BvbnNlIHByb2dyZXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyBkdXBsaWNhdGVDYW1wYWlnblVzaW5nUE9TVChkdG86IER1cGxpY2F0ZUNhbXBhaWduU3RyYXRlZ3lSZXF1ZXN0RFRPLCBpZDogbnVtYmVyLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAnYm9keScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8QXBpUmVzcG9uc2VPYmplY3RzdHJpbmc+O1xuICAgIHB1YmxpYyBkdXBsaWNhdGVDYW1wYWlnblVzaW5nUE9TVChkdG86IER1cGxpY2F0ZUNhbXBhaWduU3RyYXRlZ3lSZXF1ZXN0RFRPLCBpZDogbnVtYmVyLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAncmVzcG9uc2UnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxBcGlSZXNwb25zZU9iamVjdHN0cmluZz4+O1xuICAgIHB1YmxpYyBkdXBsaWNhdGVDYW1wYWlnblVzaW5nUE9TVChkdG86IER1cGxpY2F0ZUNhbXBhaWduU3RyYXRlZ3lSZXF1ZXN0RFRPLCBpZDogbnVtYmVyLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAnZXZlbnRzJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8QXBpUmVzcG9uc2VPYmplY3RzdHJpbmc+PjtcbiAgICBwdWJsaWMgZHVwbGljYXRlQ2FtcGFpZ25Vc2luZ1BPU1QoZHRvOiBEdXBsaWNhdGVDYW1wYWlnblN0cmF0ZWd5UmVxdWVzdERUTywgaWQ6IG51bWJlciwgcmVxSWQ/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlOiBhbnkgPSAnYm9keScsIHJlcG9ydFByb2dyZXNzOiBib29sZWFuID0gZmFsc2UgKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgICAgICBpZiAoZHRvID09PSBudWxsIHx8IGR0byA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciBkdG8gd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyBkdXBsaWNhdGVDYW1wYWlnblVzaW5nUE9TVC4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpZCA9PT0gbnVsbCB8fCBpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciBpZCB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIGR1cGxpY2F0ZUNhbXBhaWduVXNpbmdQT1NULicpO1xuICAgICAgICB9XG5cblxuXG4gICAgICAgIGxldCBoZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcbiAgICAgICAgaWYgKHJlcUlkICE9PSB1bmRlZmluZWQgJiYgcmVxSWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgncmVxSWQnLCBTdHJpbmcocmVxSWQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW4gIT09IHVuZGVmaW5lZCAmJiB0b2tlbiAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCd0b2tlbicsIFN0cmluZyh0b2tlbikpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBBY2NlcHQgaGVhZGVyXG4gICAgICAgIGxldCBodHRwSGVhZGVyQWNjZXB0czogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQWNjZXB0KGh0dHBIZWFkZXJBY2NlcHRzKTtcbiAgICAgICAgaWYgKGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0JywgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQ29udGVudC1UeXBlIGhlYWRlclxuICAgICAgICBjb25zdCBjb25zdW1lczogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJDb250ZW50VHlwZShjb25zdW1lcyk7XG4gICAgICAgIGlmIChodHRwQ29udGVudFR5cGVTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQ29udGVudC1UeXBlJywgaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PEFwaVJlc3BvbnNlT2JqZWN0c3RyaW5nPihgJHt0aGlzLmJhc2VQYXRofS92Mi9hcGkvY2FtcGFpZ25zL2R1cGxpY2F0ZS8ke2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoaWQpKX1gLFxuICAgICAgICAgICAgZHRvLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdGhpcy5jb25maWd1cmF0aW9uLndpdGhDcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgICAgICAgICAgICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHJlcG9ydFByb2dyZXNzXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQXBpIHRvIGdldCBBbGwgQ2FtcGFpZ24gZm9yIGdpdmVuIEFkdiBJZFxuICAgICAqIFxuICAgICAqIEBwYXJhbSBhZHZlcnRpc2VyX2lkIGFkdmVydGlzZXJfaWRcbiAgICAgKiBAcGFyYW0gcmVmcmVzaCByZWZyZXNoXG4gICAgICogQHBhcmFtIHJlcUlkIHJlcXVlc3QgaWRcbiAgICAgKiBAcGFyYW0gc2VhcmNoIHNlYXJjaFxuICAgICAqIEBwYXJhbSB0b2tlbiBBdXRoIFRva2VuXG4gICAgICogQHBhcmFtIG9ic2VydmUgc2V0IHdoZXRoZXIgb3Igbm90IHRvIHJldHVybiB0aGUgZGF0YSBPYnNlcnZhYmxlIGFzIHRoZSBib2R5LCByZXNwb25zZSBvciBldmVudHMuIGRlZmF1bHRzIHRvIHJldHVybmluZyB0aGUgYm9keS5cbiAgICAgKiBAcGFyYW0gcmVwb3J0UHJvZ3Jlc3MgZmxhZyB0byByZXBvcnQgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcHJvZ3Jlc3MuXG4gICAgICovXG4gICAgcHVibGljIGdldEFsbENhbXBhaWduVXNpbmdHRVQoYWR2ZXJ0aXNlcl9pZDogbnVtYmVyLCByZWZyZXNoPzogYm9vbGVhbiwgcmVxSWQ/OiBzdHJpbmcsIHNlYXJjaD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAnYm9keScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8QXBpUmVzcG9uc2VPYmplY3RMaXN0Q2FtcGFpZ25EVE8+O1xuICAgIHB1YmxpYyBnZXRBbGxDYW1wYWlnblVzaW5nR0VUKGFkdmVydGlzZXJfaWQ6IG51bWJlciwgcmVmcmVzaD86IGJvb2xlYW4sIHJlcUlkPzogc3RyaW5nLCBzZWFyY2g/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlPzogJ3Jlc3BvbnNlJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8QXBpUmVzcG9uc2VPYmplY3RMaXN0Q2FtcGFpZ25EVE8+PjtcbiAgICBwdWJsaWMgZ2V0QWxsQ2FtcGFpZ25Vc2luZ0dFVChhZHZlcnRpc2VyX2lkOiBudW1iZXIsIHJlZnJlc2g/OiBib29sZWFuLCByZXFJZD86IHN0cmluZywgc2VhcmNoPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZT86ICdldmVudHMnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxBcGlSZXNwb25zZU9iamVjdExpc3RDYW1wYWlnbkRUTz4+O1xuICAgIHB1YmxpYyBnZXRBbGxDYW1wYWlnblVzaW5nR0VUKGFkdmVydGlzZXJfaWQ6IG51bWJlciwgcmVmcmVzaD86IGJvb2xlYW4sIHJlcUlkPzogc3RyaW5nLCBzZWFyY2g/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlOiBhbnkgPSAnYm9keScsIHJlcG9ydFByb2dyZXNzOiBib29sZWFuID0gZmFsc2UgKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgICAgICBpZiAoYWR2ZXJ0aXNlcl9pZCA9PT0gbnVsbCB8fCBhZHZlcnRpc2VyX2lkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIGFkdmVydGlzZXJfaWQgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyBnZXRBbGxDYW1wYWlnblVzaW5nR0VULicpO1xuICAgICAgICB9XG5cblxuXG5cblxuICAgICAgICBsZXQgcXVlcnlQYXJhbWV0ZXJzID0gbmV3IEh0dHBQYXJhbXMoe2VuY29kZXI6IG5ldyBDdXN0b21IdHRwVXJsRW5jb2RpbmdDb2RlYygpfSk7XG4gICAgICAgIGlmIChhZHZlcnRpc2VyX2lkICE9PSB1bmRlZmluZWQgJiYgYWR2ZXJ0aXNlcl9pZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcXVlcnlQYXJhbWV0ZXJzID0gcXVlcnlQYXJhbWV0ZXJzLnNldCgnYWR2ZXJ0aXNlcl9pZCcsIDxhbnk+YWR2ZXJ0aXNlcl9pZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlZnJlc2ggIT09IHVuZGVmaW5lZCAmJiByZWZyZXNoICE9PSBudWxsKSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBxdWVyeVBhcmFtZXRlcnMuc2V0KCdyZWZyZXNoJywgPGFueT5yZWZyZXNoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2VhcmNoICE9PSB1bmRlZmluZWQgJiYgc2VhcmNoICE9PSBudWxsKSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBxdWVyeVBhcmFtZXRlcnMuc2V0KCdzZWFyY2gnLCA8YW55PnNlYXJjaCk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgaGVhZGVycyA9IHRoaXMuZGVmYXVsdEhlYWRlcnM7XG4gICAgICAgIGlmIChyZXFJZCAhPT0gdW5kZWZpbmVkICYmIHJlcUlkICE9PSBudWxsKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ3JlcUlkJywgU3RyaW5nKHJlcUlkKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRva2VuICE9PSB1bmRlZmluZWQgJiYgdG9rZW4gIT09IG51bGwpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgndG9rZW4nLCBTdHJpbmcodG9rZW4pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQWNjZXB0IGhlYWRlclxuICAgICAgICBsZXQgaHR0cEhlYWRlckFjY2VwdHM6IHN0cmluZ1tdID0gW1xuICAgICAgICAgICAgJyovKidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQWNjZXB0KGh0dHBIZWFkZXJBY2NlcHRzKTtcbiAgICAgICAgaWYgKGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0JywgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQ29udGVudC1UeXBlIGhlYWRlclxuICAgICAgICBjb25zdCBjb25zdW1lczogc3RyaW5nW10gPSBbXG4gICAgICAgIF07XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8QXBpUmVzcG9uc2VPYmplY3RMaXN0Q2FtcGFpZ25EVE8+KGAke3RoaXMuYmFzZVBhdGh9L3YyL2FwaS9jYW1wYWlnbnNgLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHBhcmFtczogcXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdGhpcy5jb25maWd1cmF0aW9uLndpdGhDcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgICAgICAgICAgICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHJlcG9ydFByb2dyZXNzXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQXBpIHRvIGdldCBDYW1wYWlnbiBieSBJZFxuICAgICAqIFxuICAgICAqIEBwYXJhbSBpZCBpZFxuICAgICAqIEBwYXJhbSByZWZyZXNoIHJlZnJlc2hcbiAgICAgKiBAcGFyYW0gcmVxSWQgcmVxdWVzdCBpZFxuICAgICAqIEBwYXJhbSB0b2tlbiBBdXRoIFRva2VuXG4gICAgICogQHBhcmFtIG9ic2VydmUgc2V0IHdoZXRoZXIgb3Igbm90IHRvIHJldHVybiB0aGUgZGF0YSBPYnNlcnZhYmxlIGFzIHRoZSBib2R5LCByZXNwb25zZSBvciBldmVudHMuIGRlZmF1bHRzIHRvIHJldHVybmluZyB0aGUgYm9keS5cbiAgICAgKiBAcGFyYW0gcmVwb3J0UHJvZ3Jlc3MgZmxhZyB0byByZXBvcnQgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcHJvZ3Jlc3MuXG4gICAgICovXG4gICAgcHVibGljIGdldENhbXBhaWduQnlJZFVzaW5nR0VUKGlkOiBudW1iZXIsIHJlZnJlc2g/OiBib29sZWFuLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAnYm9keScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8QXBpUmVzcG9uc2VPYmplY3RDYW1wYWlnbkRUTz47XG4gICAgcHVibGljIGdldENhbXBhaWduQnlJZFVzaW5nR0VUKGlkOiBudW1iZXIsIHJlZnJlc2g/OiBib29sZWFuLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAncmVzcG9uc2UnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxBcGlSZXNwb25zZU9iamVjdENhbXBhaWduRFRPPj47XG4gICAgcHVibGljIGdldENhbXBhaWduQnlJZFVzaW5nR0VUKGlkOiBudW1iZXIsIHJlZnJlc2g/OiBib29sZWFuLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAnZXZlbnRzJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8QXBpUmVzcG9uc2VPYmplY3RDYW1wYWlnbkRUTz4+O1xuICAgIHB1YmxpYyBnZXRDYW1wYWlnbkJ5SWRVc2luZ0dFVChpZDogbnVtYmVyLCByZWZyZXNoPzogYm9vbGVhbiwgcmVxSWQ/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlOiBhbnkgPSAnYm9keScsIHJlcG9ydFByb2dyZXNzOiBib29sZWFuID0gZmFsc2UgKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgICAgICBpZiAoaWQgPT09IG51bGwgfHwgaWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXF1aXJlZCBwYXJhbWV0ZXIgaWQgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyBnZXRDYW1wYWlnbkJ5SWRVc2luZ0dFVC4nKTtcbiAgICAgICAgfVxuXG5cblxuXG4gICAgICAgIGxldCBxdWVyeVBhcmFtZXRlcnMgPSBuZXcgSHR0cFBhcmFtcyh7ZW5jb2RlcjogbmV3IEN1c3RvbUh0dHBVcmxFbmNvZGluZ0NvZGVjKCl9KTtcbiAgICAgICAgaWYgKHJlZnJlc2ggIT09IHVuZGVmaW5lZCAmJiByZWZyZXNoICE9PSBudWxsKSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBxdWVyeVBhcmFtZXRlcnMuc2V0KCdyZWZyZXNoJywgPGFueT5yZWZyZXNoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBoZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcbiAgICAgICAgaWYgKHJlcUlkICE9PSB1bmRlZmluZWQgJiYgcmVxSWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgncmVxSWQnLCBTdHJpbmcocmVxSWQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW4gIT09IHVuZGVmaW5lZCAmJiB0b2tlbiAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCd0b2tlbicsIFN0cmluZyh0b2tlbikpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBBY2NlcHQgaGVhZGVyXG4gICAgICAgIGxldCBodHRwSGVhZGVyQWNjZXB0czogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnKi8qJ1xuICAgICAgICBdO1xuICAgICAgICBjb25zdCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJBY2NlcHQoaHR0cEhlYWRlckFjY2VwdHMpO1xuICAgICAgICBpZiAoaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBY2NlcHQnLCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBDb250ZW50LVR5cGUgaGVhZGVyXG4gICAgICAgIGNvbnN0IGNvbnN1bWVzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgXTtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxBcGlSZXNwb25zZU9iamVjdENhbXBhaWduRFRPPihgJHt0aGlzLmJhc2VQYXRofS92Mi9hcGkvY2FtcGFpZ25zLyR7ZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhpZCkpfWAsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcGFyYW1zOiBxdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcbiAgICAgICAgICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBcGkgdG8gZ2V0IENhbXBhaWducyBieSBJZHNcbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gY2FtcGFpZ25JZHMgY2FtcGFpZ25JZHNcbiAgICAgKiBAcGFyYW0gcmVmcmVzaCByZWZyZXNoXG4gICAgICogQHBhcmFtIHJlcUlkIHJlcXVlc3QgaWRcbiAgICAgKiBAcGFyYW0gdG9rZW4gQXV0aCBUb2tlblxuICAgICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXG4gICAgICogQHBhcmFtIHJlcG9ydFByb2dyZXNzIGZsYWcgdG8gcmVwb3J0IHJlcXVlc3QgYW5kIHJlc3BvbnNlIHByb2dyZXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDYW1wYWlnbnNCeUlkc1VzaW5nUE9TVChjYW1wYWlnbklkczogQXJyYXk8bnVtYmVyPiwgcmVmcmVzaD86IGJvb2xlYW4sIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZT86ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxBcGlSZXNwb25zZU9iamVjdENhbXBhaWduRFRPTGlzdD47XG4gICAgcHVibGljIGdldENhbXBhaWduc0J5SWRzVXNpbmdQT1NUKGNhbXBhaWduSWRzOiBBcnJheTxudW1iZXI+LCByZWZyZXNoPzogYm9vbGVhbiwgcmVxSWQ/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlPzogJ3Jlc3BvbnNlJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8QXBpUmVzcG9uc2VPYmplY3RDYW1wYWlnbkRUT0xpc3Q+PjtcbiAgICBwdWJsaWMgZ2V0Q2FtcGFpZ25zQnlJZHNVc2luZ1BPU1QoY2FtcGFpZ25JZHM6IEFycmF5PG51bWJlcj4sIHJlZnJlc2g/OiBib29sZWFuLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAnZXZlbnRzJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8QXBpUmVzcG9uc2VPYmplY3RDYW1wYWlnbkRUT0xpc3Q+PjtcbiAgICBwdWJsaWMgZ2V0Q2FtcGFpZ25zQnlJZHNVc2luZ1BPU1QoY2FtcGFpZ25JZHM6IEFycmF5PG51bWJlcj4sIHJlZnJlc2g/OiBib29sZWFuLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU6IGFueSA9ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZSApOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgICAgIGlmIChjYW1wYWlnbklkcyA9PT0gbnVsbCB8fCBjYW1wYWlnbklkcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciBjYW1wYWlnbklkcyB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIGdldENhbXBhaWduc0J5SWRzVXNpbmdQT1NULicpO1xuICAgICAgICB9XG5cblxuXG5cbiAgICAgICAgbGV0IHF1ZXJ5UGFyYW1ldGVycyA9IG5ldyBIdHRwUGFyYW1zKHtlbmNvZGVyOiBuZXcgQ3VzdG9tSHR0cFVybEVuY29kaW5nQ29kZWMoKX0pO1xuICAgICAgICBpZiAocmVmcmVzaCAhPT0gdW5kZWZpbmVkICYmIHJlZnJlc2ggIT09IG51bGwpIHtcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1ldGVycyA9IHF1ZXJ5UGFyYW1ldGVycy5zZXQoJ3JlZnJlc2gnLCA8YW55PnJlZnJlc2gpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGhlYWRlcnMgPSB0aGlzLmRlZmF1bHRIZWFkZXJzO1xuICAgICAgICBpZiAocmVxSWQgIT09IHVuZGVmaW5lZCAmJiByZXFJZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdyZXFJZCcsIFN0cmluZyhyZXFJZCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0b2tlbiAhPT0gdW5kZWZpbmVkICYmIHRva2VuICE9PSBudWxsKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ3Rva2VuJywgU3RyaW5nKHRva2VuKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIEFjY2VwdCBoZWFkZXJcbiAgICAgICAgbGV0IGh0dHBIZWFkZXJBY2NlcHRzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICBdO1xuICAgICAgICBjb25zdCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJBY2NlcHQoaHR0cEhlYWRlckFjY2VwdHMpO1xuICAgICAgICBpZiAoaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBY2NlcHQnLCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBDb250ZW50LVR5cGUgaGVhZGVyXG4gICAgICAgIGNvbnN0IGNvbnN1bWVzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICBdO1xuICAgICAgICBjb25zdCBodHRwQ29udGVudFR5cGVTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckNvbnRlbnRUeXBlKGNvbnN1bWVzKTtcbiAgICAgICAgaWYgKGh0dHBDb250ZW50VHlwZVNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdDb250ZW50LVR5cGUnLCBodHRwQ29udGVudFR5cGVTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8QXBpUmVzcG9uc2VPYmplY3RDYW1wYWlnbkRUT0xpc3Q+KGAke3RoaXMuYmFzZVBhdGh9L3YyL2FwaS9jYW1wYWlnbnMvaWRzL2AsXG4gICAgICAgICAgICBjYW1wYWlnbklkcyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRoaXMuY29uZmlndXJhdGlvbi53aXRoQ3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogaGVhZGVycyxcbiAgICAgICAgICAgICAgICBvYnNlcnZlOiBvYnNlcnZlLFxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiByZXBvcnRQcm9ncmVzc1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFwaSB0byBmZXRjaCBpbmNyZW1lbnRhbGl0eSByZXBvcnRcbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gaW5jcmVtZW50YWxpdHlSZXBvcnREVE8gaW5jcmVtZW50YWxpdHlSZXBvcnREVE9cbiAgICAgKiBAcGFyYW0gcmVxSWQgcmVxdWVzdCBpZFxuICAgICAqIEBwYXJhbSB0b2tlbiBBdXRoIFRva2VuXG4gICAgICogQHBhcmFtIG9ic2VydmUgc2V0IHdoZXRoZXIgb3Igbm90IHRvIHJldHVybiB0aGUgZGF0YSBPYnNlcnZhYmxlIGFzIHRoZSBib2R5LCByZXNwb25zZSBvciBldmVudHMuIGRlZmF1bHRzIHRvIHJldHVybmluZyB0aGUgYm9keS5cbiAgICAgKiBAcGFyYW0gcmVwb3J0UHJvZ3Jlc3MgZmxhZyB0byByZXBvcnQgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcHJvZ3Jlc3MuXG4gICAgICovXG4gICAgcHVibGljIGluY3JlbWVudGFsaXR5UmVwb3J0VXNpbmdQT1NUKGluY3JlbWVudGFsaXR5UmVwb3J0RFRPOiBJbmNyZW1lbnRhbGl0eVJlcG9ydERUTywgcmVxSWQ/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlPzogJ2JvZHknLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEluY3JlbWVudGFsaXR5UmVzcG9uc2U+O1xuICAgIHB1YmxpYyBpbmNyZW1lbnRhbGl0eVJlcG9ydFVzaW5nUE9TVChpbmNyZW1lbnRhbGl0eVJlcG9ydERUTzogSW5jcmVtZW50YWxpdHlSZXBvcnREVE8sIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZT86ICdyZXNwb25zZScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPEluY3JlbWVudGFsaXR5UmVzcG9uc2U+PjtcbiAgICBwdWJsaWMgaW5jcmVtZW50YWxpdHlSZXBvcnRVc2luZ1BPU1QoaW5jcmVtZW50YWxpdHlSZXBvcnREVE86IEluY3JlbWVudGFsaXR5UmVwb3J0RFRPLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAnZXZlbnRzJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8SW5jcmVtZW50YWxpdHlSZXNwb25zZT4+O1xuICAgIHB1YmxpYyBpbmNyZW1lbnRhbGl0eVJlcG9ydFVzaW5nUE9TVChpbmNyZW1lbnRhbGl0eVJlcG9ydERUTzogSW5jcmVtZW50YWxpdHlSZXBvcnREVE8sIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZTogYW55ID0gJ2JvZHknLCByZXBvcnRQcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlICk6IE9ic2VydmFibGU8YW55PiB7XG5cbiAgICAgICAgaWYgKGluY3JlbWVudGFsaXR5UmVwb3J0RFRPID09PSBudWxsIHx8IGluY3JlbWVudGFsaXR5UmVwb3J0RFRPID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIGluY3JlbWVudGFsaXR5UmVwb3J0RFRPIHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgaW5jcmVtZW50YWxpdHlSZXBvcnRVc2luZ1BPU1QuJyk7XG4gICAgICAgIH1cblxuXG5cbiAgICAgICAgbGV0IGhlYWRlcnMgPSB0aGlzLmRlZmF1bHRIZWFkZXJzO1xuICAgICAgICBpZiAocmVxSWQgIT09IHVuZGVmaW5lZCAmJiByZXFJZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdyZXFJZCcsIFN0cmluZyhyZXFJZCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0b2tlbiAhPT0gdW5kZWZpbmVkICYmIHRva2VuICE9PSBudWxsKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ3Rva2VuJywgU3RyaW5nKHRva2VuKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIEFjY2VwdCBoZWFkZXJcbiAgICAgICAgbGV0IGh0dHBIZWFkZXJBY2NlcHRzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICBdO1xuICAgICAgICBjb25zdCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJBY2NlcHQoaHR0cEhlYWRlckFjY2VwdHMpO1xuICAgICAgICBpZiAoaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBY2NlcHQnLCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBDb250ZW50LVR5cGUgaGVhZGVyXG4gICAgICAgIGNvbnN0IGNvbnN1bWVzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICBdO1xuICAgICAgICBjb25zdCBodHRwQ29udGVudFR5cGVTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckNvbnRlbnRUeXBlKGNvbnN1bWVzKTtcbiAgICAgICAgaWYgKGh0dHBDb250ZW50VHlwZVNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdDb250ZW50LVR5cGUnLCBodHRwQ29udGVudFR5cGVTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8SW5jcmVtZW50YWxpdHlSZXNwb25zZT4oYCR7dGhpcy5iYXNlUGF0aH0vdjIvYXBpL2NhbXBhaWducy9pbmNyZW1lbnRhbGl0eXJlcG9ydGAsXG4gICAgICAgICAgICBpbmNyZW1lbnRhbGl0eVJlcG9ydERUTyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRoaXMuY29uZmlndXJhdGlvbi53aXRoQ3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogaGVhZGVycyxcbiAgICAgICAgICAgICAgICBvYnNlcnZlOiBvYnNlcnZlLFxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiByZXBvcnRQcm9ncmVzc1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFwaSB0byB1cGRhdGUgQ2FtcGFpZ25cbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gY2FtcGFpZ24gY2FtcGFpZ25cbiAgICAgKiBAcGFyYW0gaWQgaWRcbiAgICAgKiBAcGFyYW0gcmVxSWQgcmVxdWVzdCBpZFxuICAgICAqIEBwYXJhbSB0b2tlbiBBdXRoIFRva2VuXG4gICAgICogQHBhcmFtIG9ic2VydmUgc2V0IHdoZXRoZXIgb3Igbm90IHRvIHJldHVybiB0aGUgZGF0YSBPYnNlcnZhYmxlIGFzIHRoZSBib2R5LCByZXNwb25zZSBvciBldmVudHMuIGRlZmF1bHRzIHRvIHJldHVybmluZyB0aGUgYm9keS5cbiAgICAgKiBAcGFyYW0gcmVwb3J0UHJvZ3Jlc3MgZmxhZyB0byByZXBvcnQgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcHJvZ3Jlc3MuXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZUNhbXBhaWduVXNpbmdQT1NUKGNhbXBhaWduOiBDYW1wYWlnbkRUTywgaWQ6IG51bWJlciwgcmVxSWQ/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlPzogJ2JvZHknLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEFwaVJlc3BvbnNlT2JqZWN0Q2FtcGFpZ25EVE8+O1xuICAgIHB1YmxpYyB1cGRhdGVDYW1wYWlnblVzaW5nUE9TVChjYW1wYWlnbjogQ2FtcGFpZ25EVE8sIGlkOiBudW1iZXIsIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZT86ICdyZXNwb25zZScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPEFwaVJlc3BvbnNlT2JqZWN0Q2FtcGFpZ25EVE8+PjtcbiAgICBwdWJsaWMgdXBkYXRlQ2FtcGFpZ25Vc2luZ1BPU1QoY2FtcGFpZ246IENhbXBhaWduRFRPLCBpZDogbnVtYmVyLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAnZXZlbnRzJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8QXBpUmVzcG9uc2VPYmplY3RDYW1wYWlnbkRUTz4+O1xuICAgIHB1YmxpYyB1cGRhdGVDYW1wYWlnblVzaW5nUE9TVChjYW1wYWlnbjogQ2FtcGFpZ25EVE8sIGlkOiBudW1iZXIsIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZTogYW55ID0gJ2JvZHknLCByZXBvcnRQcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlICk6IE9ic2VydmFibGU8YW55PiB7XG5cbiAgICAgICAgaWYgKGNhbXBhaWduID09PSBudWxsIHx8IGNhbXBhaWduID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIGNhbXBhaWduIHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgdXBkYXRlQ2FtcGFpZ25Vc2luZ1BPU1QuJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaWQgPT09IG51bGwgfHwgaWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXF1aXJlZCBwYXJhbWV0ZXIgaWQgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyB1cGRhdGVDYW1wYWlnblVzaW5nUE9TVC4nKTtcbiAgICAgICAgfVxuXG5cblxuICAgICAgICBsZXQgaGVhZGVycyA9IHRoaXMuZGVmYXVsdEhlYWRlcnM7XG4gICAgICAgIGlmIChyZXFJZCAhPT0gdW5kZWZpbmVkICYmIHJlcUlkICE9PSBudWxsKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ3JlcUlkJywgU3RyaW5nKHJlcUlkKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRva2VuICE9PSB1bmRlZmluZWQgJiYgdG9rZW4gIT09IG51bGwpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgndG9rZW4nLCBTdHJpbmcodG9rZW4pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQWNjZXB0IGhlYWRlclxuICAgICAgICBsZXQgaHR0cEhlYWRlckFjY2VwdHM6IHN0cmluZ1tdID0gW1xuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckFjY2VwdChodHRwSGVhZGVyQWNjZXB0cyk7XG4gICAgICAgIGlmIChodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0FjY2VwdCcsIGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIENvbnRlbnQtVHlwZSBoZWFkZXJcbiAgICAgICAgY29uc3QgY29uc3VtZXM6IHN0cmluZ1tdID0gW1xuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IGh0dHBDb250ZW50VHlwZVNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQ29udGVudFR5cGUoY29uc3VtZXMpO1xuICAgICAgICBpZiAoaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0NvbnRlbnQtVHlwZScsIGh0dHBDb250ZW50VHlwZVNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxBcGlSZXNwb25zZU9iamVjdENhbXBhaWduRFRPPihgJHt0aGlzLmJhc2VQYXRofS92Mi9hcGkvY2FtcGFpZ25zLyR7ZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhpZCkpfWAsXG4gICAgICAgICAgICBjYW1wYWlnbixcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRoaXMuY29uZmlndXJhdGlvbi53aXRoQ3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogaGVhZGVycyxcbiAgICAgICAgICAgICAgICBvYnNlcnZlOiBvYnNlcnZlLFxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiByZXBvcnRQcm9ncmVzc1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFwaSB0byB2YWxpZGF0ZSBDYW1wYWlnbiBiZWZvcmUgQ2xvbmluZ1xuICAgICAqIFxuICAgICAqIEBwYXJhbSBkdG8gZHRvXG4gICAgICogQHBhcmFtIGlkIGlkXG4gICAgICogQHBhcmFtIHJlcUlkIHJlcXVlc3QgaWRcbiAgICAgKiBAcGFyYW0gdG9rZW4gQXV0aCBUb2tlblxuICAgICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXG4gICAgICogQHBhcmFtIHJlcG9ydFByb2dyZXNzIGZsYWcgdG8gcmVwb3J0IHJlcXVlc3QgYW5kIHJlc3BvbnNlIHByb2dyZXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyB2YWxpZGF0ZUNsb25lQ2FtcGFpZ25Vc2luZ1BPU1QoZHRvOiBEdXBsaWNhdGVDYW1wYWlnblN0cmF0ZWd5UmVxdWVzdERUTywgaWQ6IG51bWJlciwgcmVxSWQ/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlPzogJ2JvZHknLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEFwaVJlc3BvbnNlT2JqZWN0Ym9vbGVhbj47XG4gICAgcHVibGljIHZhbGlkYXRlQ2xvbmVDYW1wYWlnblVzaW5nUE9TVChkdG86IER1cGxpY2F0ZUNhbXBhaWduU3RyYXRlZ3lSZXF1ZXN0RFRPLCBpZDogbnVtYmVyLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAncmVzcG9uc2UnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxBcGlSZXNwb25zZU9iamVjdGJvb2xlYW4+PjtcbiAgICBwdWJsaWMgdmFsaWRhdGVDbG9uZUNhbXBhaWduVXNpbmdQT1NUKGR0bzogRHVwbGljYXRlQ2FtcGFpZ25TdHJhdGVneVJlcXVlc3REVE8sIGlkOiBudW1iZXIsIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZT86ICdldmVudHMnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxBcGlSZXNwb25zZU9iamVjdGJvb2xlYW4+PjtcbiAgICBwdWJsaWMgdmFsaWRhdGVDbG9uZUNhbXBhaWduVXNpbmdQT1NUKGR0bzogRHVwbGljYXRlQ2FtcGFpZ25TdHJhdGVneVJlcXVlc3REVE8sIGlkOiBudW1iZXIsIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZTogYW55ID0gJ2JvZHknLCByZXBvcnRQcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlICk6IE9ic2VydmFibGU8YW55PiB7XG5cbiAgICAgICAgaWYgKGR0byA9PT0gbnVsbCB8fCBkdG8gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXF1aXJlZCBwYXJhbWV0ZXIgZHRvIHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgdmFsaWRhdGVDbG9uZUNhbXBhaWduVXNpbmdQT1NULicpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlkID09PSBudWxsIHx8IGlkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIGlkIHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgdmFsaWRhdGVDbG9uZUNhbXBhaWduVXNpbmdQT1NULicpO1xuICAgICAgICB9XG5cblxuXG4gICAgICAgIGxldCBoZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcbiAgICAgICAgaWYgKHJlcUlkICE9PSB1bmRlZmluZWQgJiYgcmVxSWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgncmVxSWQnLCBTdHJpbmcocmVxSWQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW4gIT09IHVuZGVmaW5lZCAmJiB0b2tlbiAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCd0b2tlbicsIFN0cmluZyh0b2tlbikpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBBY2NlcHQgaGVhZGVyXG4gICAgICAgIGxldCBodHRwSGVhZGVyQWNjZXB0czogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQWNjZXB0KGh0dHBIZWFkZXJBY2NlcHRzKTtcbiAgICAgICAgaWYgKGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0JywgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQ29udGVudC1UeXBlIGhlYWRlclxuICAgICAgICBjb25zdCBjb25zdW1lczogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJDb250ZW50VHlwZShjb25zdW1lcyk7XG4gICAgICAgIGlmIChodHRwQ29udGVudFR5cGVTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQ29udGVudC1UeXBlJywgaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PEFwaVJlc3BvbnNlT2JqZWN0Ym9vbGVhbj4oYCR7dGhpcy5iYXNlUGF0aH0vdjIvYXBpL2NhbXBhaWducy9jbG9uZS92YWxpZGF0ZS8ke2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoaWQpKX1gLFxuICAgICAgICAgICAgZHRvLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdGhpcy5jb25maWd1cmF0aW9uLndpdGhDcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgICAgICAgICAgICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHJlcG9ydFByb2dyZXNzXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG59XG4iXX0=
|
|
449
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtcGFpZ25Db250cm9sbGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9hcGkvY2FtcGFpZ25Db250cm9sbGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRztBQUNILHVEQUF1RDtBQUV2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBMkIsZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBYyxXQUFXLEVBQUUsVUFBVSxFQUNWLE1BQWdDLHNCQUFzQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUE2QixZQUFZLENBQUM7QUFnQi9FLE9BQU8sRUFBRSxTQUFTLEVBQXNCLE1BQTBCLGNBQWMsQ0FBQztBQUNqRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQTBDLGtCQUFrQixDQUFDOzs7O0FBSXJGLE1BQU0sT0FBTyx5QkFBeUI7SUFNbEMsWUFBc0IsVUFBc0IsRUFBZ0MsUUFBZ0IsRUFBYyxhQUE0QjtRQUFoSCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBSmxDLGFBQVEsR0FBRyxnQ0FBZ0MsQ0FBQztRQUMvQyxtQkFBYyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDbkMsa0JBQWEsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBR3ZDLElBQUksUUFBUSxFQUFFO1lBQ1YsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7U0FDNUI7UUFDRCxJQUFJLGFBQWEsRUFBRTtZQUNmLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1lBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxJQUFJLGFBQWEsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUN2RTtJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSyxjQUFjLENBQUMsUUFBa0I7UUFDckMsTUFBTSxJQUFJLEdBQUcscUJBQXFCLENBQUM7UUFD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T0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLHVCQUF1QixDQUFDLENBQUM7U0FDbEU7UUFFRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUEyQixHQUFHLElBQUksQ0FBQyxRQUFRLG9DQUFvQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUN0SSxHQUFHLEVBQ0g7WUFDSSxlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlO1lBQ25ELE9BQU8sRUFBRSxPQUFPO1lBQ2hCLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLGNBQWMsRUFBRSxjQUFjO1NBQ2pDLENBQ0osQ0FBQztJQUNOLENBQUM7O3VIQWpyQlEseUJBQXlCLDRDQU0rQixTQUFTOzJIQU5qRSx5QkFBeUI7NEZBQXpCLHlCQUF5QjtrQkFEckMsVUFBVTs7MEJBT3dDLFFBQVE7OzBCQUFHLE1BQU07MkJBQUMsU0FBUzs7MEJBQXFCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFwaSBEb2N1bWVudGF0aW9uXG4gKiBBcGkgRG9jdW1lbnRhdGlvblxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKi9cbi8qIHRzbGludDpkaXNhYmxlOm5vLXVudXNlZC12YXJpYWJsZSBtZW1iZXItb3JkZXJpbmcgKi9cblxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9ICAgICAgICAgICAgICAgICAgICAgIGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMsXG4gICAgICAgICBIdHRwUmVzcG9uc2UsIEh0dHBFdmVudCB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQ3VzdG9tSHR0cFVybEVuY29kaW5nQ29kZWMgfSAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gJy4uL2VuY29kZXInO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFwaVJlc3BvbnNlT2JqZWN0QnVkZ2V0U3RhdHNEVE8gfSBmcm9tICcuLi9tb2RlbC9hcGlSZXNwb25zZU9iamVjdEJ1ZGdldFN0YXRzRFRPJztcbmltcG9ydCB7IEFwaVJlc3BvbnNlT2JqZWN0Q2FtcGFpZ25EVE8gfSBmcm9tICcuLi9tb2RlbC9hcGlSZXNwb25zZU9iamVjdENhbXBhaWduRFRPJztcbmltcG9ydCB7IEFwaVJlc3BvbnNlT2JqZWN0Q2FtcGFpZ25EVE9MaXN0IH0gZnJvbSAnLi4vbW9kZWwvYXBpUmVzcG9uc2VPYmplY3RDYW1wYWlnbkRUT0xpc3QnO1xuaW1wb3J0IHsgQXBpUmVzcG9uc2VPYmplY3RMaXN0Q2FtcGFpZ25EVE8gfSBmcm9tICcuLi9tb2RlbC9hcGlSZXNwb25zZU9iamVjdExpc3RDYW1wYWlnbkRUTyc7XG5pbXBvcnQgeyBBcGlSZXNwb25zZU9iamVjdE1hcGludFJlc3BvbnNlTWVzc2FnZSB9IGZyb20gJy4uL21vZGVsL2FwaVJlc3BvbnNlT2JqZWN0TWFwaW50UmVzcG9uc2VNZXNzYWdlJztcbmltcG9ydCB7IEFwaVJlc3BvbnNlT2JqZWN0Ym9vbGVhbiB9IGZyb20gJy4uL21vZGVsL2FwaVJlc3BvbnNlT2JqZWN0Ym9vbGVhbic7XG5pbXBvcnQgeyBBcGlSZXNwb25zZU9iamVjdHN0cmluZyB9IGZyb20gJy4uL21vZGVsL2FwaVJlc3BvbnNlT2JqZWN0c3RyaW5nJztcbmltcG9ydCB7IENhbXBhaWduRFRPIH0gZnJvbSAnLi4vbW9kZWwvY2FtcGFpZ25EVE8nO1xuaW1wb3J0IHsgRHVwbGljYXRlQ2FtcGFpZ25TdHJhdGVneVJlcXVlc3REVE8gfSBmcm9tICcuLi9tb2RlbC9kdXBsaWNhdGVDYW1wYWlnblN0cmF0ZWd5UmVxdWVzdERUTyc7XG5pbXBvcnQgeyBJbmNyZW1lbnRhbGl0eVJlcG9ydERUTyB9IGZyb20gJy4uL21vZGVsL2luY3JlbWVudGFsaXR5UmVwb3J0RFRPJztcbmltcG9ydCB7IEluY3JlbWVudGFsaXR5UmVzcG9uc2UgfSBmcm9tICcuLi9tb2RlbC9pbmNyZW1lbnRhbGl0eVJlc3BvbnNlJztcblxuaW1wb3J0IHsgQkFTRV9QQVRILCBDT0xMRUNUSU9OX0ZPUk1BVFMgfSAgICAgICAgICAgICAgICAgICAgIGZyb20gJy4uL3ZhcmlhYmxlcyc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAnLi4vY29uZmlndXJhdGlvbic7XG5cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhbXBhaWduQ29udHJvbGxlclNlcnZpY2Uge1xuXG4gICAgcHJvdGVjdGVkIGJhc2VQYXRoID0gJ2h0dHBzOi8vYXBpdjJzdGFnZTcuYXRvbWV4Lm5ldCc7XG4gICAgcHVibGljIGRlZmF1bHRIZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XG4gICAgcHVibGljIGNvbmZpZ3VyYXRpb24gPSBuZXcgQ29uZmlndXJhdGlvbigpO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsIEBPcHRpb25hbCgpQEluamVjdChCQVNFX1BBVEgpIGJhc2VQYXRoOiBzdHJpbmcsIEBPcHRpb25hbCgpIGNvbmZpZ3VyYXRpb246IENvbmZpZ3VyYXRpb24pIHtcbiAgICAgICAgaWYgKGJhc2VQYXRoKSB7XG4gICAgICAgICAgICB0aGlzLmJhc2VQYXRoID0gYmFzZVBhdGg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb247XG4gICAgICAgICAgICB0aGlzLmJhc2VQYXRoID0gYmFzZVBhdGggfHwgY29uZmlndXJhdGlvbi5iYXNlUGF0aCB8fCB0aGlzLmJhc2VQYXRoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIGNvbnN1bWVzIHN0cmluZ1tdIG1pbWUtdHlwZXNcbiAgICAgKiBAcmV0dXJuIHRydWU6IGNvbnN1bWVzIGNvbnRhaW5zICdtdWx0aXBhcnQvZm9ybS1kYXRhJywgZmFsc2U6IG90aGVyd2lzZVxuICAgICAqL1xuICAgIHByaXZhdGUgY2FuQ29uc3VtZUZvcm0oY29uc3VtZXM6IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGZvcm0gPSAnbXVsdGlwYXJ0L2Zvcm0tZGF0YSc7XG4gICAgICAgIGZvciAoY29uc3QgY29uc3VtZSBvZiBjb25zdW1lcykge1xuICAgICAgICAgICAgaWYgKGZvcm0gPT09IGNvbnN1bWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG5cbiAgICAvKipcbiAgICAgKiBBcGkgdG8gYWN0aXZhdGUgTGlzdHMgb2YgQ2FtcGFpZ25zIGlkXG4gICAgICogXG4gICAgICogQHBhcmFtIGlkIGlkXG4gICAgICogQHBhcmFtIHJlcUlkIHJlcXVlc3QgaWRcbiAgICAgKiBAcGFyYW0gdG9rZW4gQXV0aCBUb2tlblxuICAgICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXG4gICAgICogQHBhcmFtIHJlcG9ydFByb2dyZXNzIGZsYWcgdG8gcmVwb3J0IHJlcXVlc3QgYW5kIHJlc3BvbnNlIHByb2dyZXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyBhY3RpdmF0ZUNhbXBhaWduVXNpbmdQT1NUKGlkOiBzdHJpbmcsIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZT86ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxBcGlSZXNwb25zZU9iamVjdE1hcGludFJlc3BvbnNlTWVzc2FnZT47XG4gICAgcHVibGljIGFjdGl2YXRlQ2FtcGFpZ25Vc2luZ1BPU1QoaWQ6IHN0cmluZywgcmVxSWQ/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlPzogJ3Jlc3BvbnNlJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8QXBpUmVzcG9uc2VPYmplY3RNYXBpbnRSZXNwb25zZU1lc3NhZ2U+PjtcbiAgICBwdWJsaWMgYWN0aXZhdGVDYW1wYWlnblVzaW5nUE9TVChpZDogc3RyaW5nLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAnZXZlbnRzJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8QXBpUmVzcG9uc2VPYmplY3RNYXBpbnRSZXNwb25zZU1lc3NhZ2U+PjtcbiAgICBwdWJsaWMgYWN0aXZhdGVDYW1wYWlnblVzaW5nUE9TVChpZDogc3RyaW5nLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU6IGFueSA9ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZSApOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgICAgIGlmIChpZCA9PT0gbnVsbCB8fCBpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciBpZCB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIGFjdGl2YXRlQ2FtcGFpZ25Vc2luZ1BPU1QuJyk7XG4gICAgICAgIH1cblxuXG5cbiAgICAgICAgbGV0IHF1ZXJ5UGFyYW1ldGVycyA9IG5ldyBIdHRwUGFyYW1zKHtlbmNvZGVyOiBuZXcgQ3VzdG9tSHR0cFVybEVuY29kaW5nQ29kZWMoKX0pO1xuICAgICAgICBpZiAoaWQgIT09IHVuZGVmaW5lZCAmJiBpZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcXVlcnlQYXJhbWV0ZXJzID0gcXVlcnlQYXJhbWV0ZXJzLnNldCgnaWQnLCA8YW55PmlkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBoZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcbiAgICAgICAgaWYgKHJlcUlkICE9PSB1bmRlZmluZWQgJiYgcmVxSWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgncmVxSWQnLCBTdHJpbmcocmVxSWQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW4gIT09IHVuZGVmaW5lZCAmJiB0b2tlbiAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCd0b2tlbicsIFN0cmluZyh0b2tlbikpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBBY2NlcHQgaGVhZGVyXG4gICAgICAgIGxldCBodHRwSGVhZGVyQWNjZXB0czogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQWNjZXB0KGh0dHBIZWFkZXJBY2NlcHRzKTtcbiAgICAgICAgaWYgKGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0JywgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQ29udGVudC1UeXBlIGhlYWRlclxuICAgICAgICBjb25zdCBjb25zdW1lczogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXTtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8QXBpUmVzcG9uc2VPYmplY3RNYXBpbnRSZXNwb25zZU1lc3NhZ2U+KGAke3RoaXMuYmFzZVBhdGh9L3YyL2FwaS9jYW1wYWlnbnMvYWN0aXZhdGVgLFxuICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRoaXMuY29uZmlndXJhdGlvbi53aXRoQ3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogaGVhZGVycyxcbiAgICAgICAgICAgICAgICBvYnNlcnZlOiBvYnNlcnZlLFxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiByZXBvcnRQcm9ncmVzc1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFwaSB0byBjcmVhdGUgQ2FtcGFpZ25cbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gY2FtcGFpZ24gY2FtcGFpZ25cbiAgICAgKiBAcGFyYW0gcmVxSWQgcmVxdWVzdCBpZFxuICAgICAqIEBwYXJhbSB0b2tlbiBBdXRoIFRva2VuXG4gICAgICogQHBhcmFtIG9ic2VydmUgc2V0IHdoZXRoZXIgb3Igbm90IHRvIHJldHVybiB0aGUgZGF0YSBPYnNlcnZhYmxlIGFzIHRoZSBib2R5LCByZXNwb25zZSBvciBldmVudHMuIGRlZmF1bHRzIHRvIHJldHVybmluZyB0aGUgYm9keS5cbiAgICAgKiBAcGFyYW0gcmVwb3J0UHJvZ3Jlc3MgZmxhZyB0byByZXBvcnQgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcHJvZ3Jlc3MuXG4gICAgICovXG4gICAgcHVibGljIGNyZWF0ZUNhbXBhaWduVXNpbmdQT1NUKGNhbXBhaWduOiBDYW1wYWlnbkRUTywgcmVxSWQ/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlPzogJ2JvZHknLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEFwaVJlc3BvbnNlT2JqZWN0Q2FtcGFpZ25EVE8+O1xuICAgIHB1YmxpYyBjcmVhdGVDYW1wYWlnblVzaW5nUE9TVChjYW1wYWlnbjogQ2FtcGFpZ25EVE8sIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZT86ICdyZXNwb25zZScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPEFwaVJlc3BvbnNlT2JqZWN0Q2FtcGFpZ25EVE8+PjtcbiAgICBwdWJsaWMgY3JlYXRlQ2FtcGFpZ25Vc2luZ1BPU1QoY2FtcGFpZ246IENhbXBhaWduRFRPLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAnZXZlbnRzJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8QXBpUmVzcG9uc2VPYmplY3RDYW1wYWlnbkRUTz4+O1xuICAgIHB1YmxpYyBjcmVhdGVDYW1wYWlnblVzaW5nUE9TVChjYW1wYWlnbjogQ2FtcGFpZ25EVE8sIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZTogYW55ID0gJ2JvZHknLCByZXBvcnRQcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlICk6IE9ic2VydmFibGU8YW55PiB7XG5cbiAgICAgICAgaWYgKGNhbXBhaWduID09PSBudWxsIHx8IGNhbXBhaWduID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIGNhbXBhaWduIHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgY3JlYXRlQ2FtcGFpZ25Vc2luZ1BPU1QuJyk7XG4gICAgICAgIH1cblxuXG5cbiAgICAgICAgbGV0IGhlYWRlcnMgPSB0aGlzLmRlZmF1bHRIZWFkZXJzO1xuICAgICAgICBpZiAocmVxSWQgIT09IHVuZGVmaW5lZCAmJiByZXFJZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdyZXFJZCcsIFN0cmluZyhyZXFJZCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0b2tlbiAhPT0gdW5kZWZpbmVkICYmIHRva2VuICE9PSBudWxsKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ3Rva2VuJywgU3RyaW5nKHRva2VuKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIEFjY2VwdCBoZWFkZXJcbiAgICAgICAgbGV0IGh0dHBIZWFkZXJBY2NlcHRzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICBdO1xuICAgICAgICBjb25zdCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJBY2NlcHQoaHR0cEhlYWRlckFjY2VwdHMpO1xuICAgICAgICBpZiAoaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBY2NlcHQnLCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBDb250ZW50LVR5cGUgaGVhZGVyXG4gICAgICAgIGNvbnN0IGNvbnN1bWVzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICBdO1xuICAgICAgICBjb25zdCBodHRwQ29udGVudFR5cGVTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckNvbnRlbnRUeXBlKGNvbnN1bWVzKTtcbiAgICAgICAgaWYgKGh0dHBDb250ZW50VHlwZVNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdDb250ZW50LVR5cGUnLCBodHRwQ29udGVudFR5cGVTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8QXBpUmVzcG9uc2VPYmplY3RDYW1wYWlnbkRUTz4oYCR7dGhpcy5iYXNlUGF0aH0vdjIvYXBpL2NhbXBhaWduc2AsXG4gICAgICAgICAgICBjYW1wYWlnbixcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRoaXMuY29uZmlndXJhdGlvbi53aXRoQ3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogaGVhZGVycyxcbiAgICAgICAgICAgICAgICBvYnNlcnZlOiBvYnNlcnZlLFxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiByZXBvcnRQcm9ncmVzc1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFwaSB0byBkZWFjdGl2YXRlIExpc3RzIG9mIENhbXBhaWducyBpZFxuICAgICAqIFxuICAgICAqIEBwYXJhbSBpZCBpZFxuICAgICAqIEBwYXJhbSByZXFJZCByZXF1ZXN0IGlkXG4gICAgICogQHBhcmFtIHRva2VuIEF1dGggVG9rZW5cbiAgICAgKiBAcGFyYW0gb2JzZXJ2ZSBzZXQgd2hldGhlciBvciBub3QgdG8gcmV0dXJuIHRoZSBkYXRhIE9ic2VydmFibGUgYXMgdGhlIGJvZHksIHJlc3BvbnNlIG9yIGV2ZW50cy4gZGVmYXVsdHMgdG8gcmV0dXJuaW5nIHRoZSBib2R5LlxuICAgICAqIEBwYXJhbSByZXBvcnRQcm9ncmVzcyBmbGFnIHRvIHJlcG9ydCByZXF1ZXN0IGFuZCByZXNwb25zZSBwcm9ncmVzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZGVhY3RpdmF0ZUNhbXBhaWduVXNpbmdQT1NUKGlkOiBzdHJpbmcsIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZT86ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxBcGlSZXNwb25zZU9iamVjdE1hcGludFJlc3BvbnNlTWVzc2FnZT47XG4gICAgcHVibGljIGRlYWN0aXZhdGVDYW1wYWlnblVzaW5nUE9TVChpZDogc3RyaW5nLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAncmVzcG9uc2UnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxBcGlSZXNwb25zZU9iamVjdE1hcGludFJlc3BvbnNlTWVzc2FnZT4+O1xuICAgIHB1YmxpYyBkZWFjdGl2YXRlQ2FtcGFpZ25Vc2luZ1BPU1QoaWQ6IHN0cmluZywgcmVxSWQ/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlPzogJ2V2ZW50cycsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cEV2ZW50PEFwaVJlc3BvbnNlT2JqZWN0TWFwaW50UmVzcG9uc2VNZXNzYWdlPj47XG4gICAgcHVibGljIGRlYWN0aXZhdGVDYW1wYWlnblVzaW5nUE9TVChpZDogc3RyaW5nLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU6IGFueSA9ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZSApOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgICAgIGlmIChpZCA9PT0gbnVsbCB8fCBpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciBpZCB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIGRlYWN0aXZhdGVDYW1wYWlnblVzaW5nUE9TVC4nKTtcbiAgICAgICAgfVxuXG5cblxuICAgICAgICBsZXQgcXVlcnlQYXJhbWV0ZXJzID0gbmV3IEh0dHBQYXJhbXMoe2VuY29kZXI6IG5ldyBDdXN0b21IdHRwVXJsRW5jb2RpbmdDb2RlYygpfSk7XG4gICAgICAgIGlmIChpZCAhPT0gdW5kZWZpbmVkICYmIGlkICE9PSBudWxsKSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBxdWVyeVBhcmFtZXRlcnMuc2V0KCdpZCcsIDxhbnk+aWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGhlYWRlcnMgPSB0aGlzLmRlZmF1bHRIZWFkZXJzO1xuICAgICAgICBpZiAocmVxSWQgIT09IHVuZGVmaW5lZCAmJiByZXFJZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdyZXFJZCcsIFN0cmluZyhyZXFJZCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0b2tlbiAhPT0gdW5kZWZpbmVkICYmIHRva2VuICE9PSBudWxsKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ3Rva2VuJywgU3RyaW5nKHRva2VuKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIEFjY2VwdCBoZWFkZXJcbiAgICAgICAgbGV0IGh0dHBIZWFkZXJBY2NlcHRzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICBdO1xuICAgICAgICBjb25zdCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJBY2NlcHQoaHR0cEhlYWRlckFjY2VwdHMpO1xuICAgICAgICBpZiAoaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBY2NlcHQnLCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBDb250ZW50LVR5cGUgaGVhZGVyXG4gICAgICAgIGNvbnN0IGNvbnN1bWVzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICBdO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxBcGlSZXNwb25zZU9iamVjdE1hcGludFJlc3BvbnNlTWVzc2FnZT4oYCR7dGhpcy5iYXNlUGF0aH0vdjIvYXBpL2NhbXBhaWducy9kZWFjdGl2YXRlYCxcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcGFyYW1zOiBxdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcbiAgICAgICAgICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBcGkgdG8gQ3JlYXRlIGR1cGxpY2F0ZSBDYW1wYWlnblxuICAgICAqIFxuICAgICAqIEBwYXJhbSBkdG8gZHRvXG4gICAgICogQHBhcmFtIGlkIGlkXG4gICAgICogQHBhcmFtIHJlcUlkIHJlcXVlc3QgaWRcbiAgICAgKiBAcGFyYW0gdG9rZW4gQXV0aCBUb2tlblxuICAgICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXG4gICAgICogQHBhcmFtIHJlcG9ydFByb2dyZXNzIGZsYWcgdG8gcmVwb3J0IHJlcXVlc3QgYW5kIHJlc3BvbnNlIHByb2dyZXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyBkdXBsaWNhdGVDYW1wYWlnblVzaW5nUE9TVChkdG86IER1cGxpY2F0ZUNhbXBhaWduU3RyYXRlZ3lSZXF1ZXN0RFRPLCBpZDogbnVtYmVyLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAnYm9keScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8QXBpUmVzcG9uc2VPYmplY3RzdHJpbmc+O1xuICAgIHB1YmxpYyBkdXBsaWNhdGVDYW1wYWlnblVzaW5nUE9TVChkdG86IER1cGxpY2F0ZUNhbXBhaWduU3RyYXRlZ3lSZXF1ZXN0RFRPLCBpZDogbnVtYmVyLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAncmVzcG9uc2UnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxBcGlSZXNwb25zZU9iamVjdHN0cmluZz4+O1xuICAgIHB1YmxpYyBkdXBsaWNhdGVDYW1wYWlnblVzaW5nUE9TVChkdG86IER1cGxpY2F0ZUNhbXBhaWduU3RyYXRlZ3lSZXF1ZXN0RFRPLCBpZDogbnVtYmVyLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAnZXZlbnRzJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8QXBpUmVzcG9uc2VPYmplY3RzdHJpbmc+PjtcbiAgICBwdWJsaWMgZHVwbGljYXRlQ2FtcGFpZ25Vc2luZ1BPU1QoZHRvOiBEdXBsaWNhdGVDYW1wYWlnblN0cmF0ZWd5UmVxdWVzdERUTywgaWQ6IG51bWJlciwgcmVxSWQ/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlOiBhbnkgPSAnYm9keScsIHJlcG9ydFByb2dyZXNzOiBib29sZWFuID0gZmFsc2UgKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgICAgICBpZiAoZHRvID09PSBudWxsIHx8IGR0byA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciBkdG8gd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyBkdXBsaWNhdGVDYW1wYWlnblVzaW5nUE9TVC4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpZCA9PT0gbnVsbCB8fCBpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciBpZCB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIGR1cGxpY2F0ZUNhbXBhaWduVXNpbmdQT1NULicpO1xuICAgICAgICB9XG5cblxuXG4gICAgICAgIGxldCBoZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcbiAgICAgICAgaWYgKHJlcUlkICE9PSB1bmRlZmluZWQgJiYgcmVxSWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgncmVxSWQnLCBTdHJpbmcocmVxSWQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW4gIT09IHVuZGVmaW5lZCAmJiB0b2tlbiAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCd0b2tlbicsIFN0cmluZyh0b2tlbikpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBBY2NlcHQgaGVhZGVyXG4gICAgICAgIGxldCBodHRwSGVhZGVyQWNjZXB0czogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQWNjZXB0KGh0dHBIZWFkZXJBY2NlcHRzKTtcbiAgICAgICAgaWYgKGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0JywgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQ29udGVudC1UeXBlIGhlYWRlclxuICAgICAgICBjb25zdCBjb25zdW1lczogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJDb250ZW50VHlwZShjb25zdW1lcyk7XG4gICAgICAgIGlmIChodHRwQ29udGVudFR5cGVTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQ29udGVudC1UeXBlJywgaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PEFwaVJlc3BvbnNlT2JqZWN0c3RyaW5nPihgJHt0aGlzLmJhc2VQYXRofS92Mi9hcGkvY2FtcGFpZ25zL2R1cGxpY2F0ZS8ke2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoaWQpKX1gLFxuICAgICAgICAgICAgZHRvLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdGhpcy5jb25maWd1cmF0aW9uLndpdGhDcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgICAgICAgICAgICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHJlcG9ydFByb2dyZXNzXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQXBpIHRvIGdldCBBbGwgQ2FtcGFpZ24gZm9yIGdpdmVuIEFkdiBJZFxuICAgICAqIFxuICAgICAqIEBwYXJhbSBhZHZlcnRpc2VyX2lkIGFkdmVydGlzZXJfaWRcbiAgICAgKiBAcGFyYW0gcmVmcmVzaCByZWZyZXNoXG4gICAgICogQHBhcmFtIHJlcUlkIHJlcXVlc3QgaWRcbiAgICAgKiBAcGFyYW0gc2VhcmNoIHNlYXJjaFxuICAgICAqIEBwYXJhbSB0b2tlbiBBdXRoIFRva2VuXG4gICAgICogQHBhcmFtIG9ic2VydmUgc2V0IHdoZXRoZXIgb3Igbm90IHRvIHJldHVybiB0aGUgZGF0YSBPYnNlcnZhYmxlIGFzIHRoZSBib2R5LCByZXNwb25zZSBvciBldmVudHMuIGRlZmF1bHRzIHRvIHJldHVybmluZyB0aGUgYm9keS5cbiAgICAgKiBAcGFyYW0gcmVwb3J0UHJvZ3Jlc3MgZmxhZyB0byByZXBvcnQgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcHJvZ3Jlc3MuXG4gICAgICovXG4gICAgcHVibGljIGdldEFsbENhbXBhaWduVXNpbmdHRVQoYWR2ZXJ0aXNlcl9pZDogbnVtYmVyLCByZWZyZXNoPzogYm9vbGVhbiwgcmVxSWQ/OiBzdHJpbmcsIHNlYXJjaD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAnYm9keScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8QXBpUmVzcG9uc2VPYmplY3RMaXN0Q2FtcGFpZ25EVE8+O1xuICAgIHB1YmxpYyBnZXRBbGxDYW1wYWlnblVzaW5nR0VUKGFkdmVydGlzZXJfaWQ6IG51bWJlciwgcmVmcmVzaD86IGJvb2xlYW4sIHJlcUlkPzogc3RyaW5nLCBzZWFyY2g/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlPzogJ3Jlc3BvbnNlJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8QXBpUmVzcG9uc2VPYmplY3RMaXN0Q2FtcGFpZ25EVE8+PjtcbiAgICBwdWJsaWMgZ2V0QWxsQ2FtcGFpZ25Vc2luZ0dFVChhZHZlcnRpc2VyX2lkOiBudW1iZXIsIHJlZnJlc2g/OiBib29sZWFuLCByZXFJZD86IHN0cmluZywgc2VhcmNoPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZT86ICdldmVudHMnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxBcGlSZXNwb25zZU9iamVjdExpc3RDYW1wYWlnbkRUTz4+O1xuICAgIHB1YmxpYyBnZXRBbGxDYW1wYWlnblVzaW5nR0VUKGFkdmVydGlzZXJfaWQ6IG51bWJlciwgcmVmcmVzaD86IGJvb2xlYW4sIHJlcUlkPzogc3RyaW5nLCBzZWFyY2g/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlOiBhbnkgPSAnYm9keScsIHJlcG9ydFByb2dyZXNzOiBib29sZWFuID0gZmFsc2UgKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgICAgICBpZiAoYWR2ZXJ0aXNlcl9pZCA9PT0gbnVsbCB8fCBhZHZlcnRpc2VyX2lkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIGFkdmVydGlzZXJfaWQgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyBnZXRBbGxDYW1wYWlnblVzaW5nR0VULicpO1xuICAgICAgICB9XG5cblxuXG5cblxuICAgICAgICBsZXQgcXVlcnlQYXJhbWV0ZXJzID0gbmV3IEh0dHBQYXJhbXMoe2VuY29kZXI6IG5ldyBDdXN0b21IdHRwVXJsRW5jb2RpbmdDb2RlYygpfSk7XG4gICAgICAgIGlmIChhZHZlcnRpc2VyX2lkICE9PSB1bmRlZmluZWQgJiYgYWR2ZXJ0aXNlcl9pZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcXVlcnlQYXJhbWV0ZXJzID0gcXVlcnlQYXJhbWV0ZXJzLnNldCgnYWR2ZXJ0aXNlcl9pZCcsIDxhbnk+YWR2ZXJ0aXNlcl9pZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlZnJlc2ggIT09IHVuZGVmaW5lZCAmJiByZWZyZXNoICE9PSBudWxsKSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBxdWVyeVBhcmFtZXRlcnMuc2V0KCdyZWZyZXNoJywgPGFueT5yZWZyZXNoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2VhcmNoICE9PSB1bmRlZmluZWQgJiYgc2VhcmNoICE9PSBudWxsKSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBxdWVyeVBhcmFtZXRlcnMuc2V0KCdzZWFyY2gnLCA8YW55PnNlYXJjaCk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgaGVhZGVycyA9IHRoaXMuZGVmYXVsdEhlYWRlcnM7XG4gICAgICAgIGlmIChyZXFJZCAhPT0gdW5kZWZpbmVkICYmIHJlcUlkICE9PSBudWxsKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ3JlcUlkJywgU3RyaW5nKHJlcUlkKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRva2VuICE9PSB1bmRlZmluZWQgJiYgdG9rZW4gIT09IG51bGwpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgndG9rZW4nLCBTdHJpbmcodG9rZW4pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQWNjZXB0IGhlYWRlclxuICAgICAgICBsZXQgaHR0cEhlYWRlckFjY2VwdHM6IHN0cmluZ1tdID0gW1xuICAgICAgICAgICAgJyovKidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQWNjZXB0KGh0dHBIZWFkZXJBY2NlcHRzKTtcbiAgICAgICAgaWYgKGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0JywgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQ29udGVudC1UeXBlIGhlYWRlclxuICAgICAgICBjb25zdCBjb25zdW1lczogc3RyaW5nW10gPSBbXG4gICAgICAgIF07XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8QXBpUmVzcG9uc2VPYmplY3RMaXN0Q2FtcGFpZ25EVE8+KGAke3RoaXMuYmFzZVBhdGh9L3YyL2FwaS9jYW1wYWlnbnNgLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHBhcmFtczogcXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdGhpcy5jb25maWd1cmF0aW9uLndpdGhDcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgICAgICAgICAgICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHJlcG9ydFByb2dyZXNzXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQVBJIHRvIGdldCBjb25zdW1lZCBidWRnZXQgc3RhdGlzdGljcyBmb3IgYSBjYW1wYWlnblxuICAgICAqIFxuICAgICAqIEBwYXJhbSBpZCBpZFxuICAgICAqIEBwYXJhbSByZXFJZCByZXF1ZXN0IGlkXG4gICAgICogQHBhcmFtIHRva2VuIEF1dGggVG9rZW5cbiAgICAgKiBAcGFyYW0gb2JzZXJ2ZSBzZXQgd2hldGhlciBvciBub3QgdG8gcmV0dXJuIHRoZSBkYXRhIE9ic2VydmFibGUgYXMgdGhlIGJvZHksIHJlc3BvbnNlIG9yIGV2ZW50cy4gZGVmYXVsdHMgdG8gcmV0dXJuaW5nIHRoZSBib2R5LlxuICAgICAqIEBwYXJhbSByZXBvcnRQcm9ncmVzcyBmbGFnIHRvIHJlcG9ydCByZXF1ZXN0IGFuZCByZXNwb25zZSBwcm9ncmVzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q2FtcGFpZ25CdWRnZXRTdGF0c1VzaW5nR0VUKGlkOiBudW1iZXIsIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZT86ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxBcGlSZXNwb25zZU9iamVjdEJ1ZGdldFN0YXRzRFRPPjtcbiAgICBwdWJsaWMgZ2V0Q2FtcGFpZ25CdWRnZXRTdGF0c1VzaW5nR0VUKGlkOiBudW1iZXIsIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZT86ICdyZXNwb25zZScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPEFwaVJlc3BvbnNlT2JqZWN0QnVkZ2V0U3RhdHNEVE8+PjtcbiAgICBwdWJsaWMgZ2V0Q2FtcGFpZ25CdWRnZXRTdGF0c1VzaW5nR0VUKGlkOiBudW1iZXIsIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZT86ICdldmVudHMnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxBcGlSZXNwb25zZU9iamVjdEJ1ZGdldFN0YXRzRFRPPj47XG4gICAgcHVibGljIGdldENhbXBhaWduQnVkZ2V0U3RhdHNVc2luZ0dFVChpZDogbnVtYmVyLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU6IGFueSA9ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZSApOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgICAgIGlmIChpZCA9PT0gbnVsbCB8fCBpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciBpZCB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIGdldENhbXBhaWduQnVkZ2V0U3RhdHNVc2luZ0dFVC4nKTtcbiAgICAgICAgfVxuXG5cblxuICAgICAgICBsZXQgaGVhZGVycyA9IHRoaXMuZGVmYXVsdEhlYWRlcnM7XG4gICAgICAgIGlmIChyZXFJZCAhPT0gdW5kZWZpbmVkICYmIHJlcUlkICE9PSBudWxsKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ3JlcUlkJywgU3RyaW5nKHJlcUlkKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRva2VuICE9PSB1bmRlZmluZWQgJiYgdG9rZW4gIT09IG51bGwpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgndG9rZW4nLCBTdHJpbmcodG9rZW4pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQWNjZXB0IGhlYWRlclxuICAgICAgICBsZXQgaHR0cEhlYWRlckFjY2VwdHM6IHN0cmluZ1tdID0gW1xuICAgICAgICAgICAgJyovKidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQWNjZXB0KGh0dHBIZWFkZXJBY2NlcHRzKTtcbiAgICAgICAgaWYgKGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0JywgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQ29udGVudC1UeXBlIGhlYWRlclxuICAgICAgICBjb25zdCBjb25zdW1lczogc3RyaW5nW10gPSBbXG4gICAgICAgIF07XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8QXBpUmVzcG9uc2VPYmplY3RCdWRnZXRTdGF0c0RUTz4oYCR7dGhpcy5iYXNlUGF0aH0vdjIvYXBpL2NhbXBhaWducy9mZXRjaC9idWRnZXQvJHtlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGlkKSl9YCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRoaXMuY29uZmlndXJhdGlvbi53aXRoQ3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogaGVhZGVycyxcbiAgICAgICAgICAgICAgICBvYnNlcnZlOiBvYnNlcnZlLFxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiByZXBvcnRQcm9ncmVzc1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFwaSB0byBnZXQgQ2FtcGFpZ24gYnkgSWRcbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gaWQgaWRcbiAgICAgKiBAcGFyYW0gcmVmcmVzaCByZWZyZXNoXG4gICAgICogQHBhcmFtIHJlcUlkIHJlcXVlc3QgaWRcbiAgICAgKiBAcGFyYW0gdG9rZW4gQXV0aCBUb2tlblxuICAgICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXG4gICAgICogQHBhcmFtIHJlcG9ydFByb2dyZXNzIGZsYWcgdG8gcmVwb3J0IHJlcXVlc3QgYW5kIHJlc3BvbnNlIHByb2dyZXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDYW1wYWlnbkJ5SWRVc2luZ0dFVChpZDogbnVtYmVyLCByZWZyZXNoPzogYm9vbGVhbiwgcmVxSWQ/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlPzogJ2JvZHknLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEFwaVJlc3BvbnNlT2JqZWN0Q2FtcGFpZ25EVE8+O1xuICAgIHB1YmxpYyBnZXRDYW1wYWlnbkJ5SWRVc2luZ0dFVChpZDogbnVtYmVyLCByZWZyZXNoPzogYm9vbGVhbiwgcmVxSWQ/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlPzogJ3Jlc3BvbnNlJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8QXBpUmVzcG9uc2VPYmplY3RDYW1wYWlnbkRUTz4+O1xuICAgIHB1YmxpYyBnZXRDYW1wYWlnbkJ5SWRVc2luZ0dFVChpZDogbnVtYmVyLCByZWZyZXNoPzogYm9vbGVhbiwgcmVxSWQ/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlPzogJ2V2ZW50cycsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cEV2ZW50PEFwaVJlc3BvbnNlT2JqZWN0Q2FtcGFpZ25EVE8+PjtcbiAgICBwdWJsaWMgZ2V0Q2FtcGFpZ25CeUlkVXNpbmdHRVQoaWQ6IG51bWJlciwgcmVmcmVzaD86IGJvb2xlYW4sIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZTogYW55ID0gJ2JvZHknLCByZXBvcnRQcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlICk6IE9ic2VydmFibGU8YW55PiB7XG5cbiAgICAgICAgaWYgKGlkID09PSBudWxsIHx8IGlkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIGlkIHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgZ2V0Q2FtcGFpZ25CeUlkVXNpbmdHRVQuJyk7XG4gICAgICAgIH1cblxuXG5cblxuICAgICAgICBsZXQgcXVlcnlQYXJhbWV0ZXJzID0gbmV3IEh0dHBQYXJhbXMoe2VuY29kZXI6IG5ldyBDdXN0b21IdHRwVXJsRW5jb2RpbmdDb2RlYygpfSk7XG4gICAgICAgIGlmIChyZWZyZXNoICE9PSB1bmRlZmluZWQgJiYgcmVmcmVzaCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcXVlcnlQYXJhbWV0ZXJzID0gcXVlcnlQYXJhbWV0ZXJzLnNldCgncmVmcmVzaCcsIDxhbnk+cmVmcmVzaCk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgaGVhZGVycyA9IHRoaXMuZGVmYXVsdEhlYWRlcnM7XG4gICAgICAgIGlmIChyZXFJZCAhPT0gdW5kZWZpbmVkICYmIHJlcUlkICE9PSBudWxsKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ3JlcUlkJywgU3RyaW5nKHJlcUlkKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRva2VuICE9PSB1bmRlZmluZWQgJiYgdG9rZW4gIT09IG51bGwpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgndG9rZW4nLCBTdHJpbmcodG9rZW4pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQWNjZXB0IGhlYWRlclxuICAgICAgICBsZXQgaHR0cEhlYWRlckFjY2VwdHM6IHN0cmluZ1tdID0gW1xuICAgICAgICAgICAgJyovKidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQWNjZXB0KGh0dHBIZWFkZXJBY2NlcHRzKTtcbiAgICAgICAgaWYgKGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0JywgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQ29udGVudC1UeXBlIGhlYWRlclxuICAgICAgICBjb25zdCBjb25zdW1lczogc3RyaW5nW10gPSBbXG4gICAgICAgIF07XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8QXBpUmVzcG9uc2VPYmplY3RDYW1wYWlnbkRUTz4oYCR7dGhpcy5iYXNlUGF0aH0vdjIvYXBpL2NhbXBhaWducy8ke2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoaWQpKX1gLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHBhcmFtczogcXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdGhpcy5jb25maWd1cmF0aW9uLndpdGhDcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgICAgICAgICAgICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHJlcG9ydFByb2dyZXNzXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQXBpIHRvIGdldCBDYW1wYWlnbnMgYnkgSWRzXG4gICAgICogXG4gICAgICogQHBhcmFtIGNhbXBhaWduSWRzIGNhbXBhaWduSWRzXG4gICAgICogQHBhcmFtIHJlZnJlc2ggcmVmcmVzaFxuICAgICAqIEBwYXJhbSByZXFJZCByZXF1ZXN0IGlkXG4gICAgICogQHBhcmFtIHRva2VuIEF1dGggVG9rZW5cbiAgICAgKiBAcGFyYW0gb2JzZXJ2ZSBzZXQgd2hldGhlciBvciBub3QgdG8gcmV0dXJuIHRoZSBkYXRhIE9ic2VydmFibGUgYXMgdGhlIGJvZHksIHJlc3BvbnNlIG9yIGV2ZW50cy4gZGVmYXVsdHMgdG8gcmV0dXJuaW5nIHRoZSBib2R5LlxuICAgICAqIEBwYXJhbSByZXBvcnRQcm9ncmVzcyBmbGFnIHRvIHJlcG9ydCByZXF1ZXN0IGFuZCByZXNwb25zZSBwcm9ncmVzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q2FtcGFpZ25zQnlJZHNVc2luZ1BPU1QoY2FtcGFpZ25JZHM6IEFycmF5PG51bWJlcj4sIHJlZnJlc2g/OiBib29sZWFuLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAnYm9keScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8QXBpUmVzcG9uc2VPYmplY3RDYW1wYWlnbkRUT0xpc3Q+O1xuICAgIHB1YmxpYyBnZXRDYW1wYWlnbnNCeUlkc1VzaW5nUE9TVChjYW1wYWlnbklkczogQXJyYXk8bnVtYmVyPiwgcmVmcmVzaD86IGJvb2xlYW4sIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZT86ICdyZXNwb25zZScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPEFwaVJlc3BvbnNlT2JqZWN0Q2FtcGFpZ25EVE9MaXN0Pj47XG4gICAgcHVibGljIGdldENhbXBhaWduc0J5SWRzVXNpbmdQT1NUKGNhbXBhaWduSWRzOiBBcnJheTxudW1iZXI+LCByZWZyZXNoPzogYm9vbGVhbiwgcmVxSWQ/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlPzogJ2V2ZW50cycsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cEV2ZW50PEFwaVJlc3BvbnNlT2JqZWN0Q2FtcGFpZ25EVE9MaXN0Pj47XG4gICAgcHVibGljIGdldENhbXBhaWduc0J5SWRzVXNpbmdQT1NUKGNhbXBhaWduSWRzOiBBcnJheTxudW1iZXI+LCByZWZyZXNoPzogYm9vbGVhbiwgcmVxSWQ/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlOiBhbnkgPSAnYm9keScsIHJlcG9ydFByb2dyZXNzOiBib29sZWFuID0gZmFsc2UgKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgICAgICBpZiAoY2FtcGFpZ25JZHMgPT09IG51bGwgfHwgY2FtcGFpZ25JZHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXF1aXJlZCBwYXJhbWV0ZXIgY2FtcGFpZ25JZHMgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyBnZXRDYW1wYWlnbnNCeUlkc1VzaW5nUE9TVC4nKTtcbiAgICAgICAgfVxuXG5cblxuXG4gICAgICAgIGxldCBxdWVyeVBhcmFtZXRlcnMgPSBuZXcgSHR0cFBhcmFtcyh7ZW5jb2RlcjogbmV3IEN1c3RvbUh0dHBVcmxFbmNvZGluZ0NvZGVjKCl9KTtcbiAgICAgICAgaWYgKHJlZnJlc2ggIT09IHVuZGVmaW5lZCAmJiByZWZyZXNoICE9PSBudWxsKSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBxdWVyeVBhcmFtZXRlcnMuc2V0KCdyZWZyZXNoJywgPGFueT5yZWZyZXNoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBoZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcbiAgICAgICAgaWYgKHJlcUlkICE9PSB1bmRlZmluZWQgJiYgcmVxSWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgncmVxSWQnLCBTdHJpbmcocmVxSWQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW4gIT09IHVuZGVmaW5lZCAmJiB0b2tlbiAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCd0b2tlbicsIFN0cmluZyh0b2tlbikpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBBY2NlcHQgaGVhZGVyXG4gICAgICAgIGxldCBodHRwSGVhZGVyQWNjZXB0czogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQWNjZXB0KGh0dHBIZWFkZXJBY2NlcHRzKTtcbiAgICAgICAgaWYgKGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0JywgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQ29udGVudC1UeXBlIGhlYWRlclxuICAgICAgICBjb25zdCBjb25zdW1lczogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJDb250ZW50VHlwZShjb25zdW1lcyk7XG4gICAgICAgIGlmIChodHRwQ29udGVudFR5cGVTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQ29udGVudC1UeXBlJywgaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PEFwaVJlc3BvbnNlT2JqZWN0Q2FtcGFpZ25EVE9MaXN0PihgJHt0aGlzLmJhc2VQYXRofS92Mi9hcGkvY2FtcGFpZ25zL2lkcy9gLFxuICAgICAgICAgICAgY2FtcGFpZ25JZHMsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcGFyYW1zOiBxdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcbiAgICAgICAgICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBcGkgdG8gZmV0Y2ggaW5jcmVtZW50YWxpdHkgcmVwb3J0XG4gICAgICogXG4gICAgICogQHBhcmFtIGluY3JlbWVudGFsaXR5UmVwb3J0RFRPIGluY3JlbWVudGFsaXR5UmVwb3J0RFRPXG4gICAgICogQHBhcmFtIHJlcUlkIHJlcXVlc3QgaWRcbiAgICAgKiBAcGFyYW0gdG9rZW4gQXV0aCBUb2tlblxuICAgICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXG4gICAgICogQHBhcmFtIHJlcG9ydFByb2dyZXNzIGZsYWcgdG8gcmVwb3J0IHJlcXVlc3QgYW5kIHJlc3BvbnNlIHByb2dyZXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyBpbmNyZW1lbnRhbGl0eVJlcG9ydFVzaW5nUE9TVChpbmNyZW1lbnRhbGl0eVJlcG9ydERUTzogSW5jcmVtZW50YWxpdHlSZXBvcnREVE8sIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZT86ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxJbmNyZW1lbnRhbGl0eVJlc3BvbnNlPjtcbiAgICBwdWJsaWMgaW5jcmVtZW50YWxpdHlSZXBvcnRVc2luZ1BPU1QoaW5jcmVtZW50YWxpdHlSZXBvcnREVE86IEluY3JlbWVudGFsaXR5UmVwb3J0RFRPLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAncmVzcG9uc2UnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxJbmNyZW1lbnRhbGl0eVJlc3BvbnNlPj47XG4gICAgcHVibGljIGluY3JlbWVudGFsaXR5UmVwb3J0VXNpbmdQT1NUKGluY3JlbWVudGFsaXR5UmVwb3J0RFRPOiBJbmNyZW1lbnRhbGl0eVJlcG9ydERUTywgcmVxSWQ/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlPzogJ2V2ZW50cycsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cEV2ZW50PEluY3JlbWVudGFsaXR5UmVzcG9uc2U+PjtcbiAgICBwdWJsaWMgaW5jcmVtZW50YWxpdHlSZXBvcnRVc2luZ1BPU1QoaW5jcmVtZW50YWxpdHlSZXBvcnREVE86IEluY3JlbWVudGFsaXR5UmVwb3J0RFRPLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU6IGFueSA9ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZSApOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgICAgIGlmIChpbmNyZW1lbnRhbGl0eVJlcG9ydERUTyA9PT0gbnVsbCB8fCBpbmNyZW1lbnRhbGl0eVJlcG9ydERUTyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciBpbmNyZW1lbnRhbGl0eVJlcG9ydERUTyB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIGluY3JlbWVudGFsaXR5UmVwb3J0VXNpbmdQT1NULicpO1xuICAgICAgICB9XG5cblxuXG4gICAgICAgIGxldCBoZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcbiAgICAgICAgaWYgKHJlcUlkICE9PSB1bmRlZmluZWQgJiYgcmVxSWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgncmVxSWQnLCBTdHJpbmcocmVxSWQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW4gIT09IHVuZGVmaW5lZCAmJiB0b2tlbiAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCd0b2tlbicsIFN0cmluZyh0b2tlbikpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBBY2NlcHQgaGVhZGVyXG4gICAgICAgIGxldCBodHRwSGVhZGVyQWNjZXB0czogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQWNjZXB0KGh0dHBIZWFkZXJBY2NlcHRzKTtcbiAgICAgICAgaWYgKGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0JywgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQ29udGVudC1UeXBlIGhlYWRlclxuICAgICAgICBjb25zdCBjb25zdW1lczogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJDb250ZW50VHlwZShjb25zdW1lcyk7XG4gICAgICAgIGlmIChodHRwQ29udGVudFR5cGVTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQ29udGVudC1UeXBlJywgaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PEluY3JlbWVudGFsaXR5UmVzcG9uc2U+KGAke3RoaXMuYmFzZVBhdGh9L3YyL2FwaS9jYW1wYWlnbnMvaW5jcmVtZW50YWxpdHlyZXBvcnRgLFxuICAgICAgICAgICAgaW5jcmVtZW50YWxpdHlSZXBvcnREVE8sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcbiAgICAgICAgICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBcGkgdG8gdXBkYXRlIENhbXBhaWduXG4gICAgICogXG4gICAgICogQHBhcmFtIGNhbXBhaWduIGNhbXBhaWduXG4gICAgICogQHBhcmFtIGlkIGlkXG4gICAgICogQHBhcmFtIHJlcUlkIHJlcXVlc3QgaWRcbiAgICAgKiBAcGFyYW0gdG9rZW4gQXV0aCBUb2tlblxuICAgICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXG4gICAgICogQHBhcmFtIHJlcG9ydFByb2dyZXNzIGZsYWcgdG8gcmVwb3J0IHJlcXVlc3QgYW5kIHJlc3BvbnNlIHByb2dyZXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVDYW1wYWlnblVzaW5nUE9TVChjYW1wYWlnbjogQ2FtcGFpZ25EVE8sIGlkOiBudW1iZXIsIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZT86ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxBcGlSZXNwb25zZU9iamVjdENhbXBhaWduRFRPPjtcbiAgICBwdWJsaWMgdXBkYXRlQ2FtcGFpZ25Vc2luZ1BPU1QoY2FtcGFpZ246IENhbXBhaWduRFRPLCBpZDogbnVtYmVyLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAncmVzcG9uc2UnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxBcGlSZXNwb25zZU9iamVjdENhbXBhaWduRFRPPj47XG4gICAgcHVibGljIHVwZGF0ZUNhbXBhaWduVXNpbmdQT1NUKGNhbXBhaWduOiBDYW1wYWlnbkRUTywgaWQ6IG51bWJlciwgcmVxSWQ/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlPzogJ2V2ZW50cycsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cEV2ZW50PEFwaVJlc3BvbnNlT2JqZWN0Q2FtcGFpZ25EVE8+PjtcbiAgICBwdWJsaWMgdXBkYXRlQ2FtcGFpZ25Vc2luZ1BPU1QoY2FtcGFpZ246IENhbXBhaWduRFRPLCBpZDogbnVtYmVyLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU6IGFueSA9ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZSApOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgICAgIGlmIChjYW1wYWlnbiA9PT0gbnVsbCB8fCBjYW1wYWlnbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciBjYW1wYWlnbiB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIHVwZGF0ZUNhbXBhaWduVXNpbmdQT1NULicpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlkID09PSBudWxsIHx8IGlkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIGlkIHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgdXBkYXRlQ2FtcGFpZ25Vc2luZ1BPU1QuJyk7XG4gICAgICAgIH1cblxuXG5cbiAgICAgICAgbGV0IGhlYWRlcnMgPSB0aGlzLmRlZmF1bHRIZWFkZXJzO1xuICAgICAgICBpZiAocmVxSWQgIT09IHVuZGVmaW5lZCAmJiByZXFJZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdyZXFJZCcsIFN0cmluZyhyZXFJZCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0b2tlbiAhPT0gdW5kZWZpbmVkICYmIHRva2VuICE9PSBudWxsKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ3Rva2VuJywgU3RyaW5nKHRva2VuKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIEFjY2VwdCBoZWFkZXJcbiAgICAgICAgbGV0IGh0dHBIZWFkZXJBY2NlcHRzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICBdO1xuICAgICAgICBjb25zdCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJBY2NlcHQoaHR0cEhlYWRlckFjY2VwdHMpO1xuICAgICAgICBpZiAoaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBY2NlcHQnLCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBDb250ZW50LVR5cGUgaGVhZGVyXG4gICAgICAgIGNvbnN0IGNvbnN1bWVzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICBdO1xuICAgICAgICBjb25zdCBodHRwQ29udGVudFR5cGVTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckNvbnRlbnRUeXBlKGNvbnN1bWVzKTtcbiAgICAgICAgaWYgKGh0dHBDb250ZW50VHlwZVNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdDb250ZW50LVR5cGUnLCBodHRwQ29udGVudFR5cGVTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8QXBpUmVzcG9uc2VPYmplY3RDYW1wYWlnbkRUTz4oYCR7dGhpcy5iYXNlUGF0aH0vdjIvYXBpL2NhbXBhaWducy8ke2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoaWQpKX1gLFxuICAgICAgICAgICAgY2FtcGFpZ24sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcbiAgICAgICAgICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBcGkgdG8gdmFsaWRhdGUgQ2FtcGFpZ24gYmVmb3JlIENsb25pbmdcbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gZHRvIGR0b1xuICAgICAqIEBwYXJhbSBpZCBpZFxuICAgICAqIEBwYXJhbSByZXFJZCByZXF1ZXN0IGlkXG4gICAgICogQHBhcmFtIHRva2VuIEF1dGggVG9rZW5cbiAgICAgKiBAcGFyYW0gb2JzZXJ2ZSBzZXQgd2hldGhlciBvciBub3QgdG8gcmV0dXJuIHRoZSBkYXRhIE9ic2VydmFibGUgYXMgdGhlIGJvZHksIHJlc3BvbnNlIG9yIGV2ZW50cy4gZGVmYXVsdHMgdG8gcmV0dXJuaW5nIHRoZSBib2R5LlxuICAgICAqIEBwYXJhbSByZXBvcnRQcm9ncmVzcyBmbGFnIHRvIHJlcG9ydCByZXF1ZXN0IGFuZCByZXNwb25zZSBwcm9ncmVzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgdmFsaWRhdGVDbG9uZUNhbXBhaWduVXNpbmdQT1NUKGR0bzogRHVwbGljYXRlQ2FtcGFpZ25TdHJhdGVneVJlcXVlc3REVE8sIGlkOiBudW1iZXIsIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZT86ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxBcGlSZXNwb25zZU9iamVjdGJvb2xlYW4+O1xuICAgIHB1YmxpYyB2YWxpZGF0ZUNsb25lQ2FtcGFpZ25Vc2luZ1BPU1QoZHRvOiBEdXBsaWNhdGVDYW1wYWlnblN0cmF0ZWd5UmVxdWVzdERUTywgaWQ6IG51bWJlciwgcmVxSWQ/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlPzogJ3Jlc3BvbnNlJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8QXBpUmVzcG9uc2VPYmplY3Rib29sZWFuPj47XG4gICAgcHVibGljIHZhbGlkYXRlQ2xvbmVDYW1wYWlnblVzaW5nUE9TVChkdG86IER1cGxpY2F0ZUNhbXBhaWduU3RyYXRlZ3lSZXF1ZXN0RFRPLCBpZDogbnVtYmVyLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAnZXZlbnRzJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8QXBpUmVzcG9uc2VPYmplY3Rib29sZWFuPj47XG4gICAgcHVibGljIHZhbGlkYXRlQ2xvbmVDYW1wYWlnblVzaW5nUE9TVChkdG86IER1cGxpY2F0ZUNhbXBhaWduU3RyYXRlZ3lSZXF1ZXN0RFRPLCBpZDogbnVtYmVyLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU6IGFueSA9ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZSApOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgICAgIGlmIChkdG8gPT09IG51bGwgfHwgZHRvID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIGR0byB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIHZhbGlkYXRlQ2xvbmVDYW1wYWlnblVzaW5nUE9TVC4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpZCA9PT0gbnVsbCB8fCBpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciBpZCB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIHZhbGlkYXRlQ2xvbmVDYW1wYWlnblVzaW5nUE9TVC4nKTtcbiAgICAgICAgfVxuXG5cblxuICAgICAgICBsZXQgaGVhZGVycyA9IHRoaXMuZGVmYXVsdEhlYWRlcnM7XG4gICAgICAgIGlmIChyZXFJZCAhPT0gdW5kZWZpbmVkICYmIHJlcUlkICE9PSBudWxsKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ3JlcUlkJywgU3RyaW5nKHJlcUlkKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRva2VuICE9PSB1bmRlZmluZWQgJiYgdG9rZW4gIT09IG51bGwpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgndG9rZW4nLCBTdHJpbmcodG9rZW4pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQWNjZXB0IGhlYWRlclxuICAgICAgICBsZXQgaHR0cEhlYWRlckFjY2VwdHM6IHN0cmluZ1tdID0gW1xuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckFjY2VwdChodHRwSGVhZGVyQWNjZXB0cyk7XG4gICAgICAgIGlmIChodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0FjY2VwdCcsIGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIENvbnRlbnQtVHlwZSBoZWFkZXJcbiAgICAgICAgY29uc3QgY29uc3VtZXM6IHN0cmluZ1tdID0gW1xuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IGh0dHBDb250ZW50VHlwZVNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQ29udGVudFR5cGUoY29uc3VtZXMpO1xuICAgICAgICBpZiAoaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0NvbnRlbnQtVHlwZScsIGh0dHBDb250ZW50VHlwZVNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxBcGlSZXNwb25zZU9iamVjdGJvb2xlYW4+KGAke3RoaXMuYmFzZVBhdGh9L3YyL2FwaS9jYW1wYWlnbnMvY2xvbmUvdmFsaWRhdGUvJHtlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGlkKSl9YCxcbiAgICAgICAgICAgIGR0byxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRoaXMuY29uZmlndXJhdGlvbi53aXRoQ3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogaGVhZGVycyxcbiAgICAgICAgICAgICAgICBvYnNlcnZlOiBvYnNlcnZlLFxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiByZXBvcnRQcm9ncmVzc1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpUmVzcG9uc2VPYmplY3RCdWRnZXRTdGF0c0RUTy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL21vZGVsL2FwaVJlc3BvbnNlT2JqZWN0QnVkZ2V0U3RhdHNEVE8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQXBpIERvY3VtZW50YXRpb25cbiAqIEFwaSBEb2N1bWVudGF0aW9uXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqL1xuaW1wb3J0IHsgQnVkZ2V0U3RhdHNEVE8gfSBmcm9tICcuL2J1ZGdldFN0YXRzRFRPJztcblxuXG5leHBvcnQgaW50ZXJmYWNlIEFwaVJlc3BvbnNlT2JqZWN0QnVkZ2V0U3RhdHNEVE8geyBcbiAgICBlcnJvcj86IEVycm9yO1xuICAgIHJlc3BJZD86IHN0cmluZztcbiAgICByZXNwT2JqZWN0PzogQnVkZ2V0U3RhdHNEVE87XG59XG4iXX0=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Api Documentation
|
|
3
|
+
* Api Documentation
|
|
4
|
+
*
|
|
5
|
+
* OpenAPI spec version: 1.0
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
* NOTE: This class is auto generated by the swagger code generator program.
|
|
9
|
+
* https://github.com/swagger-api/swagger-codegen.git
|
|
10
|
+
* Do not edit the class manually.
|
|
11
|
+
*/
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVkZ2V0U3RhdHNEVE8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9tb2RlbC9idWRnZXRTdGF0c0RUTy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7OztHQVVHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBcGkgRG9jdW1lbnRhdGlvblxuICogQXBpIERvY3VtZW50YXRpb25cbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICovXG5cblxuZXhwb3J0IGludGVyZmFjZSBCdWRnZXRTdGF0c0RUTyB7IFxuICAgIGNhbXBhaWduSWQ/OiBudW1iZXI7XG4gICAgc3RyYXRlZ3lJZD86IG51bWJlcjtcbiAgICB0b3RhbEFkdkJ1ZGdldFNwZW50QWR2Q3VycmVuY3k/OiBudW1iZXI7XG4gICAgdG90YWxBZHZCdWRnZXRTcGVudFVzZD86IG51bWJlcjtcbiAgICB0b3RhbE1lZGlhQnVkZ2V0U3BlbnRBZHZDdXJyZW5jeT86IG51bWJlcjtcbiAgICB0b3RhbE1lZGlhQnVkZ2V0U3BlbnRVc2Q/OiBudW1iZXI7XG59XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtcGFpZ25EVE8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9tb2RlbC9jYW1wYWlnbkRUTy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBcGkgRG9jdW1lbnRhdGlvblxuICogQXBpIERvY3VtZW50YXRpb25cbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICovXG5pbXBvcnQgeyBCYXNlTW9kZWwgfSBmcm9tICcuL2Jhc2VNb2RlbCc7XG5cblxuZXhwb3J0IGludGVyZmFjZSBDYW1wYWlnbkRUTyB7IFxuICAgIGFjdGl2ZT86IGJvb2xlYW47XG4gICAgYWR2ZXJ0aXNlcklkPzogbnVtYmVyO1xuICAgIGF0dHJpYnV0aW9uUmF0aW8/OiBudW1iZXI7XG4gICAgYnVja2V0VW5pdHM/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtcGFpZ25EVE8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9tb2RlbC9jYW1wYWlnbkRUTy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBcGkgRG9jdW1lbnRhdGlvblxuICogQXBpIERvY3VtZW50YXRpb25cbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICovXG5pbXBvcnQgeyBCYXNlTW9kZWwgfSBmcm9tICcuL2Jhc2VNb2RlbCc7XG5cblxuZXhwb3J0IGludGVyZmFjZSBDYW1wYWlnbkRUTyB7IFxuICAgIGFjdGl2ZT86IGJvb2xlYW47XG4gICAgYWR2ZXJ0aXNlcklkPzogbnVtYmVyO1xuICAgIGF0dHJpYnV0aW9uUmF0aW8/OiBudW1iZXI7XG4gICAgYnVja2V0VW5pdHM/OiBzdHJpbmc7XG4gICAgYnVkZ2V0PzogbnVtYmVyO1xuICAgIGJ1ZGdldFNwZW50PzogbnVtYmVyO1xuICAgIGNhbXBhaWduRGVsdGFNZWRpYUJ1ZGdldD86IG51bWJlcjtcbiAgICBjb29saW5nUGVyaW9kPzogbnVtYmVyO1xuICAgIGNwYVRhcmdldD86IG51bWJlcjtcbiAgICBjcGlUYXJnZXQ/OiBudW1iZXI7XG4gICAgY3JlYXRlZEJ5PzogbnVtYmVyO1xuICAgIGNyZWF0aW9uVGltZT86IG51bWJlcjtcbiAgICBjdXJyZW5jeT86IEJhc2VNb2RlbDtcbiAgICBjdXJyZW5jeUNvZGU/OiBzdHJpbmc7XG4gICAgZGFpbHlBZHZTcGVuZEJ1ZGdldD86IG51bWJlcjtcbiAgICBkYWlseUJ1ZGdldD86IG51bWJlcjtcbiAgICBkYWlseURlbGl2ZXJ5Q2FwPzogbnVtYmVyO1xuICAgIGRhaWx5VXNlckZjYXA/OiBudW1iZXI7XG4gICAgZGF5c0R1cmF0aW9uPzogbnVtYmVyO1xuICAgIGRheXNFbGFwc2VkPzogbnVtYmVyO1xuICAgIGVuZFRpbWU/OiBudW1iZXI7XG4gICAgZmNhcD86IG51bWJlcjtcbiAgICBmbG93UmF0ZT86IG51bWJlcjtcbiAgICBpZD86IG51bWJlcjtcbiAgICBpbmNyZW1lbnRhbGl0eVRlc3Q/OiBib29sZWFuO1xuICAgIGlzQXJjaGl2ZWQ/OiBib29sZWFuO1xuICAgIGl2c0Rpc3RyaWJ1dGlvbj86IG51bWJlcjtcbiAgICBsaWNlbnNlZT86IEJhc2VNb2RlbDtcbiAgICBsaWNlbnNlZUlkPzogbnVtYmVyO1xuICAgIGxpZmV0aW1lQnVkZ2V0PzogbnVtYmVyO1xuICAgIGxpZmV0aW1lRGVsaXZlcnlDYXA/OiBudW1iZXI7XG4gICAgbGlmZXRpbWVVc2VyRmNhcD86IG51bWJlcjtcbiAgICBtb2RpZmllZEJ5PzogbnVtYmVyO1xuICAgIG1vZGlmaWVkVGltZT86IG51bWJlcjtcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIG9iamVjdGl2ZT86IHN0cmluZztcbiAgICBwYWNpbmdUeXBlPzogQmFzZU1vZGVsO1xuICAgIHBpeGVsPzogQmFzZU1vZGVsO1xuICAgIHBsYWNlYm8/OiBib29sZWFuO1xuICAgIHBsYXRmb3JtTWFyZ2luPzogbnVtYmVyO1xuICAgIHByaWNpbmdJZD86IG51bWJlcjtcbiAgICByZWdpb24/OiBCYXNlTW9kZWw7XG4gICAgcmV0YXJnZXRpbmc/OiBib29sZWFuO1xuICAgIHJvaVRhcmdldD86IG51bWJlcjtcbiAgICBza2FkVGFyZ2V0PzogYm9vbGVhbjtcbiAgICBzdGFydFRpbWU/OiBudW1iZXI7XG4gICAgdXNlckZjYXBEdXJhdGlvbj86IG51bWJlcjtcbn1cbiJdfQ==
|
package/esm2020/model/models.mjs
CHANGED
|
@@ -66,6 +66,7 @@ export * from './apiResponseObjectAudienceDTO';
|
|
|
66
66
|
export * from './apiResponseObjectBaseModel';
|
|
67
67
|
export * from './apiResponseObjectBidToConversionDTO';
|
|
68
68
|
export * from './apiResponseObjectBidToConversionFilterMap';
|
|
69
|
+
export * from './apiResponseObjectBudgetStatsDTO';
|
|
69
70
|
export * from './apiResponseObjectBulkEditCreativeSetsResponse';
|
|
70
71
|
export * from './apiResponseObjectBulkEditStrategiesResponse';
|
|
71
72
|
export * from './apiResponseObjectBulkstrategiesUpdateResponse';
|
|
@@ -172,6 +173,7 @@ export * from './bigDecimalEditField';
|
|
|
172
173
|
export * from './booleanEditField';
|
|
173
174
|
export * from './budgetCapStrategyDTO';
|
|
174
175
|
export * from './budgetCheckStrategy';
|
|
176
|
+
export * from './budgetStatsDTO';
|
|
175
177
|
export * from './bulkEditCreativeSetsDTO';
|
|
176
178
|
export * from './bulkEditCreativeSetsListDTO';
|
|
177
179
|
export * from './bulkEditCreativeSetsResponse';
|
|
@@ -392,4 +394,4 @@ export * from './weatherESDTO';
|
|
|
392
394
|
export * from './whitelabelingEntity';
|
|
393
395
|
export * from './widgetPerformanceMetrics';
|
|
394
396
|
export * from './zipCode';
|
|
395
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbW9kZWwvbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsd0JBQXdCLENBQUM7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YyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FCVGVzdERUTyc7XG5leHBvcnQgKiBmcm9tICcuL2FiYW5kb25lZFNlc3Npb25Vc2VyVGFyZ2V0aW5nJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aXZpdHlMb2cnO1xuZXhwb3J0ICogZnJvbSAnLi9hY3Rpdml0eUxvZ3NDcmVhdGl2ZVNldHNCdWxrVXBkYXRlRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aXZpdHlMb2dzU3RyYXRlZ3lCdWxrVXBkYXRlRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYWRCcmVhayc7XG5leHBvcnQgKiBmcm9tICcuL2FkUG9kJztcbmV4cG9ydCAqIGZyb20gJy4vYWRvRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYWR2ZXJ0aXNlcic7XG5leHBvcnQgKiBmcm9tICcuL2FkdmVydGlzZXJDb2hvcnREVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9hZHZlcnRpc2VyQ29ob3J0UmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hZHZlcnRpc2VyQ29ob3J0UmVzcG9uc2VMaXN0JztcbmV4cG9ydCAqIGZyb20gJy4vYWR2ZXJ0aXNlckN1cnJlbmN5RGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL2FkdmVydGlzZXJEeW5hbWljRGV0YWlscyc7XG5leHBvcnQgKiBmcm9tICcuL2FkdmVydGlzZXJEeW5hbWljVmlkZW9Db25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9hZHZlcnRpc2VyTGF5b3V0VmFyaWFibGVzJztcbmV4cG9ydCAqIGZyb20gJy4vYWR2ZXJ0aXNlclBvam8nO1xuZXhwb3J0ICogZnJvbSAnLi9hZHZlcnRpc2VyU2V0dGluZ3MnO1xuZXhwb3J0ICogZnJvbSAnLi9hZ2VHcm91cCc7XG5leHBvcnQgKiBmcm9tICcuL2FwaUxpc3RSZXNwb25zZUFCVGVzdERUTyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaUxpc3RSZXNwb25zZUFjdGl2aXR5TG9nJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpTGlzdFJlc3BvbnNlQWN0aXZpdHlMb2dzQ3JlYXRpdmVTZXRzQnVsa1VwZGF0ZURUTyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaUxpc3RSZXNwb25zZUFjdGl2aXR5TG9nc1N0cmF0ZWd5QnVsa1VwZGF0ZURUTyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaUxpc3RSZXNwb25zZUF1ZGllbmNlUGVyZm9ybWFuY2VEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlMaXN0UmVzcG9uc2VCYXNlTW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlMaXN0UmVzcG9uc2VDYXRhbG9nRmVlZCc7XG5leHBvcnQgKiBmcm9tICcuL2FwaUxpc3RSZXNwb25zZUNsaWNrRGVzdGluYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlMaXN0UmVzcG9uc2VDcmVhdGl2ZUNvbXBhY3REVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlMaXN0UmVzcG9uc2VDcmVhdGl2ZURUTyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaUxpc3RSZXNwb25zZUNyZWF0aXZlUGVyZm9ybWFuY2VMaXN0JztcbmV4cG9ydCAqIGZyb20gJy4vYXBpTGlzdFJlc3BvbnNlQ3JlYXRpdmVTZXREYXNoYm9hcmRNZXRyaWMnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlMaXN0UmVzcG9uc2VDcmVhdGl2ZVNldFBlcmZvcm1hbmNlTGlzdCc7XG5leHBvcnQgKiBmcm9tICcuL2FwaUxpc3RSZXNwb25zZUNyZWF0aXZlVGVtcGxhdGVEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlMaXN0UmVzcG9uc2VIb3RzdGFyTmF0aXZlRmlsZVJlcXVlc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlMaXN0UmVzcG9uc2VNYWNybyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaUxpc3RSZXNwb25zZVBpeGVsJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpTGlzdFJlc3BvbnNlUmVwb3J0aW5nU2NoZWR1bGVyUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlMaXN0UmVzcG9uc2VSZXBvcnRpbmdTY2hlZHVsZXJVc2VyUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlMaXN0UmVzcG9uc2VTaXplV2l0aFByZXZpZXcnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlMaXN0UmVzcG9uc2VTdHJhdGVneVJ1bGVSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwaUxpc3RSZXNwb25zZVN0cmF0ZWd5VGVtcGxhdGVSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwaUxpc3RSZXNwb25zZVZhcmlhYmxlc01hcHBpbmdEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdEFCVGVzdERUTyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0QWR2ZXJ0aXNlckNvaG9ydFJlc3BvbnNlTGlzdCc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0QWR2ZXJ0aXNlckN1cnJlbmN5RGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0QWR2ZXJ0aXNlckR5bmFtaWNEZXRhaWxzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RBZHZlcnRpc2VyRHluYW1pY1ZpZGVvQ29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RBZHZlcnRpc2VyUG9qbyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0QWR2ZXJ0aXNlclNldHRpbmdzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RBcGlMaXN0UmVzcG9uc2VBY3Rpdml0eUxvZ3NDcmVhdGl2ZVNldHNCdWxrVXBkYXRlRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RBcGlMaXN0UmVzcG9uc2VBY3Rpdml0eUxvZ3NTdHJhdGVneUJ1bGtVcGRhdGVEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdEFwaUxpc3RSZXNwb25zZUF1ZGllbmNlUGVyZm9ybWFuY2VEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdEFwaUxpc3RSZXNwb25zZUNhdGFsb2dGZWVkJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RBcGlMaXN0UmVzcG9uc2VDbGlja0Rlc3RpbmF0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RBcGlMaXN0UmVzcG9uc2VDcmVhdGl2ZUNvbXBhY3REVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdEFwaUxpc3RSZXNwb25zZUNyZWF0aXZlRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RBcGlMaXN0UmVzcG9uc2VDcmVhdGl2ZVBlcmZvcm1hbmNlTGlzdCc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0QXBpTGlzdFJlc3BvbnNlQ3JlYXRpdmVTZXREYXNoYm9hcmRNZXRyaWMnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdEFwaUxpc3RSZXNwb25zZUNyZWF0aXZlU2V0UGVyZm9ybWFuY2VMaXN0JztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RBcGlMaXN0UmVzcG9uc2VDcmVhdGl2ZVRlbXBsYXRlRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RBcGlMaXN0UmVzcG9uc2VQaXhlbCc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0QXBpTGlzdFJlc3BvbnNlVmFyaWFibGVzTWFwcGluZ0RUTyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0QXJyYXlMaXN0Q29tYmluZWRBdWRpZW5jZUFuYWx5c2lzUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdEF1ZGllbmNlQWNjZXNzRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RBdWRpZW5jZURUTyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0QmFzZU1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RCaWRUb0NvbnZlcnNpb25EVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdEJpZFRvQ29udmVyc2lvbkZpbHRlck1hcCc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0QnVsa0VkaXRDcmVhdGl2ZVNldHNSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0QnVsa0VkaXRTdHJhdGVnaWVzUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdEJ1bGtzdHJhdGVnaWVzVXBkYXRlUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdENhbXBhaWduRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RDYW1wYWlnbkRUT0xpc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdENhdGFsb2dGZWVkJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RDaGFydERhc2hib2FyZFJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RDbGlja0Rlc3RpbmF0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RDbGlja0Rlc3RpbmF0aW9uQXV0b21hdGlvblVybHMnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdENvaG9ydENhbXBhaWduU3RyYXRlZ3lSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0Q3JlYXRpdmVEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdENyZWF0aXZlUGVyZm9ybWFuY2VEYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RDcmVhdGl2ZVByZXZpZXdEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdENyZWF0aXZlU2V0RGV0YWlscyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0Q3JlYXRpdmVTZXRSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0Q3JlYXRpdmVUZW1wbGF0ZXNNZXRhZGF0YURUTyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0RGFzaGJvYXJkTWV0cmljcyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0RGFzaGJvYXJkUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdERpY3Rpb25hcnlSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0RG1wQXVkaWVuY2VEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdER1cGxpY2F0ZUNyZWF0aXZlU2V0UmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdEVSZXNwb25zZW9iamVjdCc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0RWxpZ2libGVVc2Vyc1Jlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RGaWxlRG93bmxvYWRSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0R2VvTGlzdERUTyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0SW5jcmVtZW50YWxpdHlUZXN0Q3JlYXRlRm9ybUF1ZGllbmNlUmVzcG9uc2VPYmplY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdEluY3JlbWVudGFsaXR5VGVzdERldGFpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdEluY3JlbWVudGFsaXR5VGVzdFJlcG9ydENhbGN1bGF0aW9uRGV0YWlscyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0SW5jcmVtZW50YWxpdHlUZXN0UmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdExpc3RBcHBTZXR0aW5nc0RUTyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0TGlzdEF1ZGllbmNlRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RMaXN0QXVkaXREZXRhaWxzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RMaXN0QXVkaXRNYXJrZXInO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdExpc3RCYWNrZmlsbEF1ZGllbmNlUXVlcnlUZW1wbGF0ZURUTyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0TGlzdEJhc2VNb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0TGlzdEJ1bGtzdHJhdGVnaWVzVmFsaWRhdGlvblJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RMaXN0Q2FtcGFpZ25EVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdExpc3RDcmVhdGl2ZUZpbGVzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RMaXN0RHluYW1pY1ZpZGVvVGVtcGxhdGUnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdExpc3RJbmNyZW1lbnRhbGl0eVRlc3REZXRhaWxzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RMaXN0TWVudUNydWJSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0TGlzdFN0cmF0ZWd5JztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RMaXN0U3RyYXRlZ3lDcmVhdGl2ZVNldHNDbG9uZURhdGFSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0TGlzdFRlbXBsYXRlVGhlbWVEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdExpc3RUZW1wbGF0ZVZhcmlhYmxlc0RUTyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0TGlzdFVzZXJQcmVmZXJlbmNlRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RNYXBpbnRSZXNwb25zZU1lc3NhZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdE1hcGxvbmdSZXNwb25zZU1lc3NhZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdE1lbnVDcnViUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdE1ldGFSdWxlc0R0byc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0T3B0aW1pemF0aW9uUnVsZVJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RQYXJlbnRCYXNlZE9iamVjdCc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0UGl4ZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdFJlcG9ydFJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RSZXBvcnRpbmdSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0UmVwb3J0aW5nU2NoZWR1bGVyUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdFJlc3BvbnNlTWVzc2FnZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0U2l0ZUxpc3REVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdFNrYWRUYXJnZXRQcml2aWxlZ2VzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RTbGljZXhDaGFydFJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RTbGljZXhMaXN0UmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdFN0cmF0ZWd5QXVkaWVuY2VJbmNUZXN0TWFwJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RTdHJhdGVneUNyZWF0aXZlQXNzb2NpYXRpb25SZXNwb25zZURUTyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0U3RyYXRlZ3lEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdFN0cmF0ZWd5T3B0UmVjb21tZW5kYXRpb25SZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0U3RyYXRlZ3lPcHRpbWl6YXRpb25EYXRhUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdFN0cmF0ZWd5UXVpY2tFZGl0RFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RTdHJhdGVneVJ1bGVSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0VGFnJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RUYXJnZXRpbmdPYmplY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdFRlbXBsYXRlVGhlbWVEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdFZvaWQnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdFdoaXRlbGFiZWxpbmdFbnRpdHknO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdFdpZGdldFBlcmZvcm1hbmNlTWV0cmljcyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0Ym9vbGVhbic7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0bG9uZyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0c3RyaW5nJztcbmV4cG9ydCAqIGZyb20gJy4vYXBwU2V0dGluZ3NEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9hcHBTZXR0aW5nc1Byb3BlcnR5RFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYXVjdGlvblR5cGVFZGl0RmllbGQnO1xuZXhwb3J0ICogZnJvbSAnLi9hdWRpZW5jZUFjY2Vzc0RUTyc7XG5leHBvcnQgKiBmcm9tICcuL2F1ZGllbmNlQW5hbHlzaXNSZXF1ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vYXVkaWVuY2VCYWNrRmlsbGVkU3RhdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9hdWRpZW5jZUJhY2tmaWxsUXVlcnlUZW1wbGF0ZVJlcXVlc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9hdWRpZW5jZUJhY2tmaWxsUmVxdWVzdCc7XG5leHBvcnQgKiBmcm9tICcuL2F1ZGllbmNlRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYXVkaWVuY2VFU0RUTyc7XG5leHBvcnQgKiBmcm9tICcuL2F1ZGllbmNlUGVyZm9ybWFuY2VEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9hdWRpZW5jZVN0ckRldmljZURUTyc7XG5leHBvcnQgKiBmcm9tICcuL2F1ZGllbmNlU3RyRWRpdEZpZWxkJztcbmV4cG9ydCAqIGZyb20gJy4vYXVkaXRDaGFuZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hdWRpdERldGFpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9hdWRpdE1hcmtlcic7XG5leHBvcnQgKiBmcm9tICcuL2JJZ0ludGVnZXJFZGl0RmlsZWQnO1xuZXhwb3J0ICogZnJvbSAnLi9iYWNrZmlsbEF1ZGllbmNlUXVlcnlUZW1wbGF0ZURUTyc7XG5leHBvcnQgKiBmcm9tICcuL2Jhbm5lckFkU3VwcERpbWVuc2lvbnNEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNlTW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNlTW9kZWxFZGl0RmllbGQnO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNlTW9kZWxXaXRoQ3JlYXRpdmVTZXRUeXBlJztcbmV4cG9ydCAqIGZyb20gJy4vYmlkVG9Db252ZXJzaW9uRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYmlkVG9Db252ZXJzaW9uRmlsdGVyRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYmlkVG9Db252ZXJzaW9uRmlsdGVyTWFwJztcbmV4cG9ydCAqIGZyb20gJy4vYmlnRGVjaW1hbEVkaXRGaWVsZCc7XG5leHBvcnQgKiBmcm9tICcuL2Jvb2xlYW5FZGl0RmllbGQnO1xuZXhwb3J0ICogZnJvbSAnLi9idWRnZXRDYXBTdHJhdGVneURUTyc7XG5leHBvcnQgKiBmcm9tICcuL2J1ZGdldENoZWNrU3RyYXRlZ3knO1xuZXhwb3J0ICogZnJvbSAnLi9idWxrRWRpdENyZWF0aXZlU2V0c0RUTyc7XG5leHBvcnQgKiBmcm9tICcuL2J1bGtFZGl0Q3JlYXRpdmVTZXRzTGlzdERUTyc7XG5leHBvcnQgKiBmcm9tICcuL2J1bGtFZGl0Q3JlYXRpdmVTZXRzUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9idWxrRWRpdFN0cmF0ZWdpZXNEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9idWxrRWRpdFN0cmF0ZWdpZXNSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2J1bGtFZGl0U3RyYXRlZ3lMaXN0RFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYnVsa3N0cmF0ZWdpZXNSZXF1ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vYnVsa3N0cmF0ZWdpZXNVcGRhdGVSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2J1bGtzdHJhdGVnaWVzVmFsaWRhdGlvblJlcXVlc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9idWxrc3RyYXRlZ2llc1ZhbGlkYXRpb25SZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2NTU1RoZW1lRW50aXR5JztcbmV4cG9ydCAqIGZyb20gJy4vY1RWVGFyZ2V0aW5nJztcbmV4cG9ydCAqIGZyb20gJy4vY2FtcGFpZ25EVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9jYW1wYWlnbkRUT0xpc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9jYW1wYWlnbkVTRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vY2F0YWxvZ0ZlZWQnO1xuZXhwb3J0ICogZnJvbSAnLi9jaGFydERhc2hib2FyZFJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vY2xpY2tEZXN0aW5hdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2NsaWNrRGVzdGluYXRpb25BdXRvbWF0aW9uVXJscyc7XG5leHBvcnQgKiBmcm9tICcuL2NvaG9ydENhbXBhaWduU3RyYXRlZ3lETyc7XG5leHBvcnQgKiBmcm9tICcuL2NvaG9ydENhbXBhaWduU3RyYXRlZ3lSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvaG9ydERhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21iaW5lZEF1ZGllbmNlQW5hbHlzaXNSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRlbnRHZW5yZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRlbnRMYW5ndWFnZSc7XG5leHBvcnQgKiBmcm9tICcuL2NyZWF0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRpdmVDb21wYWN0RFRPJztcbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRpdmVEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGl2ZURldGFpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGl2ZUZpbGVGb3JTZXQnO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGl2ZUZpbGVzJztcbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRpdmVIdG1sRmlsZUZvclNldCc7XG5leHBvcnQgKiBmcm9tICcuL2NyZWF0aXZlSHRtbE1vY2t1cERUTyc7XG5leHBvcnQgKiBmcm9tICcuL2NyZWF0aXZlTGlzdEVkaXRGaWVsZCc7XG5leHBvcnQgKiBmcm9tICcuL2NyZWF0aXZlTW9ja1Vwc0RUTyc7XG5leHBvcnQgKiBmcm9tICcuL2NyZWF0aXZlUGVyZm9ybWFuY2VEYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRpdmVQZXJmb3JtYW5jZUxpc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGl2ZVByZXZpZXdEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGl2ZVNldERhc2hib2FyZE1ldHJpYyc7XG5leHBvcnQgKiBmcm9tICcuL2NyZWF0aXZlU2V0RGV0YWlscyc7XG5leHBvcnQgKiBmcm9tICcuL2NyZWF0aXZlU2V0TGlzdEVkaXRGaWVsZCc7XG5leHBvcnQgKiBmcm9tICcuL2NyZWF0aXZlU2V0UGVyZm9ybWFuY2VMaXN0JztcbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRpdmVTZXRSZXF1ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRpdmVTZXRSZXNjaGVkdWxlUmVxdWVzdCc7XG5leHBvcnQgKiBmcm9tICcuL2NyZWF0aXZlU2V0UmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGl2ZVN0cmF0ZWd5QXNzb2NpYXRpb25TdGF0dXMnO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGl2ZVRlbXBsYXRlRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRpdmVUZW1wbGF0ZXNNZXRhZGF0YURUTyc7XG5leHBvcnQgKiBmcm9tICcuL2NyZWF0aXZlVGhpcmRQYXJ0eUFkVGFnJztcbmV4cG9ydCAqIGZyb20gJy4vY3VtdWxhdGl2ZUNvaG9ydERhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9jdXJyZW5jeU1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vY3VzdG9tZXJSZXBvcnRpbmdEYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vY3VzdG9tZXJSZXBvcnRpbmdEYXRhTGlzdFJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vY3VzdG9tZXJSZXBvcnRpbmdSZXF1ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vY3VzdG9tZXJSZXBvcnRpbmdSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2Rhc2hib2FyZERhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXNoYm9hcmRGaWx0ZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vZGFzaGJvYXJkTWV0cmljcyc7XG5leHBvcnQgKiBmcm9tICcuL2Rhc2hib2FyZFJlcXVlc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXNoYm9hcmRSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2RheSc7XG5leHBvcnQgKiBmcm9tICcuL2RheVBhcnQnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXlQYXJ0RWRpdEZpZWxkJztcbmV4cG9ydCAqIGZyb20gJy4vZGNvQXR0cmlidXRlc0RUTyc7XG5leHBvcnQgKiBmcm9tICcuL2RlYWxDYXRlZ29yeURUTyc7XG5leHBvcnQgKiBmcm9tICcuL2RlYWxDYXRlZ29yeUVkaXRGaWVsZCc7XG5leHBvcnQgKiBmcm9tICcuL2RlYWxFU0RUTyc7XG5leHBvcnQgKiBmcm9tICcuL2RldmljZVRhcmdldE1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vZGljdGlvbmFyeVJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vZG1wQXVkaWVuY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9kbXBBdWRpZW5jZUNyaXRlcmlhJztcbmV4cG9ydCAqIGZyb20gJy4vZG1wQXVkaWVuY2VEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9kdXBsaWNhdGVDYW1wYWlnblN0cmF0ZWd5UmVxdWVzdERUTyc7XG5leHBvcnQgKiBmcm9tICcuL2R1cGxpY2F0ZUNyZWF0aXZlU2V0UmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9kdXBsaWNhdGVDcmVhdGl2ZVNldHNSZXF1ZXN0RFRPJztcbmV4cG9ydCAqIGZyb20gJy4vZHVyYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9kdXJhdGlvbk1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vZHVyYXRpb25TdHJNb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2R5bmFtaWNWaWRlb0NvbmZpZ0RUTyc7XG5leHBvcnQgKiBmcm9tICcuL2R5bmFtaWNWaWRlb0RUTyc7XG5leHBvcnQgKiBmcm9tICcuL2R5bmFtaWNWaWRlb1RlbXBsYXRlJztcbmV4cG9ydCAqIGZyb20gJy4vZVJlc3BvbnNlb2JqZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vZWxpZ2libGVVc2Vyc1JlcXVlc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9lbGlnaWJsZVVzZXJzUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9lbmRDYXJkcyc7XG5leHBvcnQgKiBmcm9tICcuL2V4dGVuZGVkQmFzZU1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vZXh0ZW5kZWRUYXJnZXRpbmdPYmplY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9mYWlsZWREVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9mYWlsZWRTdHJhdGVneURUTyc7XG5leHBvcnQgKiBmcm9tICcuL2ZhaWxlZFN0cmF0ZWd5RmllbGRzRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vZmNhcERldGFpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9mY2FwRWRpdEZpZWxkJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsZURvd25sb2FkUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9maWx0ZXJNb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2dlb0ZlbmNlRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vZ2VvTGlzdERUTyc7XG5leHBvcnQgKiBmcm9tICcuL2dlb0xpc3RSZXF1ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vaG90c3RhckZpbGVSZXF1ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vaG90c3Rhck5hdGl2ZUZpbGVSZXF1ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vaHlicmlkQWRNYXBwaW5nJztcbmV4cG9ydCAqIGZyb20gJy4vaVBCYXNlZEJhY2tGaWxsJztcbmV4cG9ydCAqIGZyb20gJy4vaW5jcmVtZW50YWxpdHlSZXBvcnREVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9pbmNyZW1lbnRhbGl0eVJlcG9ydFJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW5jcmVtZW50YWxpdHlSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2luY3JlbWVudGFsaXR5VGVzdENyZWF0ZUZvcm1BdWRpZW5jZVJlc3BvbnNlT2JqZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vaW5jcmVtZW50YWxpdHlUZXN0RFRPJztcbmV4cG9ydCAqIGZyb20gJy4vaW5jcmVtZW50YWxpdHlUZXN0RGV0YWlscyc7XG5leHBvcnQgKiBmcm9tICcuL2luY3JlbWVudGFsaXR5VGVzdFJlcG9ydENhbGN1bGF0aW9uRGV0YWlscyc7XG5leHBvcnQgKiBmcm9tICcuL2luY3JlbWVudGFsaXR5VGVzdFJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZWdlckVkaXRGaWVsZCc7XG5leHBvcnQgKiBmcm9tICcuL2pvYlJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vbG9va0FsaWtlQXVkaWVuY2VDb25maWdEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9tYWNybyc7XG5leHBvcnQgKiBmcm9tICcuL21hcGludFJlc3BvbnNlTWVzc2FnZSc7XG5leHBvcnQgKiBmcm9tICcuL21hcGxvbmdSZXNwb25zZU1lc3NhZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXBzdHJpbmdsb25nJztcbmV4cG9ydCAqIGZyb20gJy4vbWVudUNydWJSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL21ldGFSdWxlRHRvJztcbmV4cG9ydCAqIGZyb20gJy4vbWV0YVJ1bGVzRHRvJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxFcnJvcic7XG5leHBvcnQgKiBmcm9tICcuL25hbWVBbmRUaXRsZU1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbmF0aXZlQXNzZXRQb2pvJztcbmV4cG9ydCAqIGZyb20gJy4vbm90aWZpY2F0aW9uTGlzdFJlc3BvbnNlTm90aWZpY2F0aW9uUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9ub3RpZmljYXRpb25SZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL29uRGF5Q29ob3J0RGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL29wdGltaXphdGlvblJ1bGVBdWRpdExvZ0RUTyc7XG5leHBvcnQgKiBmcm9tICcuL29wdGltaXphdGlvblJ1bGVBdWRpdExvZ0RUT0xpc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9vcHRpbWl6YXRpb25SdWxlRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vb3B0aW1pemF0aW9uUnVsZVJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vb3NUYXJnZXRpbmcnO1xuZXhwb3J0ICogZnJvbSAnLi9wYXJlbnRCYXNlZE9iamVjdCc7XG5leHBvcnQgKiBmcm9tICcuL3BpeGVsJztcbmV4cG9ydCAqIGZyb20gJy4vcGl4ZWxEYXRhRmlsZURUTyc7XG5leHBvcnQgKiBmcm9tICcuL3BpeGVsRGF0YVNjaGVkdWxlRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vcGl4ZWxSZW1vdGVDb25maWdEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9wbGF0Zm9ybUF1ZGllbmNlRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vclRCQWdncmVnYXRvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9yVEJBZ2dyZWdhdG9yc0VkaXRGaWVsZCc7XG5leHBvcnQgKiBmcm9tICcuL3JUQlNpdGVzJztcbmV4cG9ydCAqIGZyb20gJy4vclRCU2l0ZXNFZGl0RmllbGQnO1xuZXhwb3J0ICogZnJvbSAnLi9yZW1vdGVGaWxlRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vcmVwb3J0UHJvcGVydHknO1xuZXhwb3J0ICogZnJvbSAnLi9yZXBvcnRSZXF1ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vcmVwb3J0UmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXBvcnRpbmdSZXF1ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vcmVwb3J0aW5nUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXBvcnRpbmdTY2hlZHVsZXJSZXF1ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vcmVwb3J0aW5nU2NoZWR1bGVyUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXBvcnRpbmdTY2hlZHVsZXJVc2VyUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXNwb25zZU1lc3NhZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9ydWxlQ29tcG9uZW50RFRPJztcbmV4cG9ydCAqIGZyb20gJy4vcnVsZURUTyc7XG5leHBvcnQgKiBmcm9tICcuL3J1bGVPcGVyYXRvckR0byc7XG5leHBvcnQgKiBmcm9tICcuL3J1bGVWYWx1ZUR0byc7XG5leHBvcnQgKiBmcm9tICcuL3NjaGVkdWxlclJlcXVlc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWFyY2hSZXF1ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vc2l0ZUxpc3REVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9zaXRlTGlzdFJlcXVlc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9zaXRlTW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zaXplJztcbmV4cG9ydCAqIGZyb20gJy4vc2l6ZVdpdGhQcmV2aWV3JztcbmV4cG9ydCAqIGZyb20gJy4vc2thZFRhcmdldFByaXZpbGVnZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zbGljZXhDaGFydFJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2xpY2V4RGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL3NsaWNleEdyaWREYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vc2xpY2V4TGlzdFJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2xpY2V4UmVxdWVzdCc7XG5leHBvcnQgKiBmcm9tICcuL3NsaWNleFJlcXVlc3RFeHRlbmRlZCc7XG5leHBvcnQgKiBmcm9tICcuL3NvcnRNb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3N0YXR1c0Jhc2VPYmplY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9zdHJhdGVneSc7XG5leHBvcnQgKiBmcm9tICcuL3N0cmF0ZWd5QXVkaWVuY2VJbmNUZXN0TWFwJztcbmV4cG9ydCAqIGZyb20gJy4vc3RyYXRlZ3lDcmVhdGl2ZUFzc29jaWF0aW9uUmVxdWVzdERUTyc7XG5leHBvcnQgKiBmcm9tICcuL3N0cmF0ZWd5Q3JlYXRpdmVBc3NvY2lhdGlvblJlc3BvbnNlRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vc3RyYXRlZ3lDcmVhdGl2ZVNldHNDbG9uZURhdGFSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0cmF0ZWd5RFRPJztcbmV4cG9ydCAqIGZyb20gJy4vc3RyYXRlZ3lJbmxpbmVEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9zdHJhdGVneUxpc3RFZGl0RmllbGQnO1xuZXhwb3J0ICogZnJvbSAnLi9zdHJhdGVneU9wdEJsb2NrVGFyZ2V0aW5nUmVxJztcbmV4cG9ydCAqIGZyb20gJy4vc3RyYXRlZ3lPcHRSZWNvbW1lbmRhdGlvblJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RyYXRlZ3lPcHRpbWl6YXRpb25EYXRhUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zdHJhdGVneVF1aWNrRWRpdERUTyc7XG5leHBvcnQgKiBmcm9tICcuL3N0cmF0ZWd5UnVsZVJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RyYXRlZ3lUYXJnZXR0aW5nUGVyZm9ybWFuY2VEYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vc3RyYXRlZ3lUZW1wbGF0ZURUTyc7XG5leHBvcnQgKiBmcm9tICcuL3N0cmF0ZWd5VGVtcGxhdGVSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0cmF0ZWd5VXBkYXRlUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zdHJhdGVneVdpdGhDcmVhdGl2ZVNldHNEQU8nO1xuZXhwb3J0ICogZnJvbSAnLi9zdHJpbmdFZGl0RmllbGQnO1xuZXhwb3J0ICogZnJvbSAnLi90YWcnO1xuZXhwb3J0ICogZnJvbSAnLi90YXJnZXRBcHBDYXRlZ29yaWVzJztcbmV4cG9ydCAqIGZyb20gJy4vdGFyZ2V0QnJvd3NlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi90YXJnZXREZXZpY2VUeXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3RhcmdldEdlb0RUTyc7XG5leHBvcnQgKiBmcm9tICcuL3RhcmdldEdlb0VkaXRGaWVsZCc7XG5leHBvcnQgKiBmcm9tICcuL3RhcmdldE1vYmlsZURldmljZUJyYW5kcyc7XG5leHBvcnQgKiBmcm9tICcuL3RhcmdldE1vYmlsZURldmljZU1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL3RhcmdldE1vYmlsZURldmljZXMnO1xuZXhwb3J0ICogZnJvbSAnLi90YXJnZXRPYmplY3QnO1xuZXhwb3J0ICogZnJvbSAnLi90YXJnZXRPcGVyYXRpbmdTeXN0ZW0nO1xuZXhwb3J0ICogZnJvbSAnLi90YXJnZXRPcGVyYXRpbmdTeXN0ZW1FZGl0RmllbGQnO1xuZXhwb3J0ICogZnJvbSAnLi90YXJnZXRpbmdPYmplY3QnO1xuZXhwb3J0ICogZnJvbSAnLi90ZW1wZXJhdHVyZVRhcmdldGluZ0RUTyc7XG5leHBvcnQgKiBmcm9tICcuL3RlbXBsYXRlVGhlbWVEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi90ZW1wbGF0ZVZhcmlhYmxlc0RUTyc7XG5leHBvcnQgKiBmcm9tICcuL3RpbWVab25lRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vdG90YWxVbmlxdWVVc2VyUmVxdWVzdCc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXJQcmVmZXJlbmNlQ2F0ZWdvcnknO1xuZXhwb3J0ICogZnJvbSAnLi91c2VyUHJlZmVyZW5jZURUTyc7XG5leHBvcnQgKiBmcm9tICcuL3ZhcmlhYmxlc01hcHBpbmdEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi92YXN0Q3JlYXRpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi92aWRlb0FkVGFnVmVyaWZ5UmVxdWVzdCc7XG5leHBvcnQgKiBmcm9tICcuL3ZpZGVvQXR0cmlidXRlcyc7XG5leHBvcnQgKiBmcm9tICcuL3ZpZGVvUHJvcGVydGllcyc7XG5leHBvcnQgKiBmcm9tICcuL3ZpZGVvUmV3YXJkZWRUeXBlVGFyZ2V0aW5nJztcbmV4cG9ydCAqIGZyb20gJy4vdmlkZW9UYXJnZXRpbmcnO1xuZXhwb3J0ICogZnJvbSAnLi93ZWF0aGVyRVNEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi93aGl0ZWxhYmVsaW5nRW50aXR5JztcbmV4cG9ydCAqIGZyb20gJy4vd2lkZ2V0UGVyZm9ybWFuY2VNZXRyaWNzJztcbmV4cG9ydCAqIGZyb20gJy4vemlwQ29kZSc7XG4iXX0=
|
|
397
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbW9kZWwvbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsd0JBQXdCLENBQUM7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Yyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hQlRlc3REVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9hYmFuZG9uZWRTZXNzaW9uVXNlclRhcmdldGluZyc7XG5leHBvcnQgKiBmcm9tICcuL2FjdGl2aXR5TG9nJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aXZpdHlMb2dzQ3JlYXRpdmVTZXRzQnVsa1VwZGF0ZURUTyc7XG5leHBvcnQgKiBmcm9tICcuL2FjdGl2aXR5TG9nc1N0cmF0ZWd5QnVsa1VwZGF0ZURUTyc7XG5leHBvcnQgKiBmcm9tICcuL2FkQnJlYWsnO1xuZXhwb3J0ICogZnJvbSAnLi9hZFBvZCc7XG5leHBvcnQgKiBmcm9tICcuL2Fkb0RUTyc7XG5leHBvcnQgKiBmcm9tICcuL2FkdmVydGlzZXInO1xuZXhwb3J0ICogZnJvbSAnLi9hZHZlcnRpc2VyQ29ob3J0RFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYWR2ZXJ0aXNlckNvaG9ydFJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vYWR2ZXJ0aXNlckNvaG9ydFJlc3BvbnNlTGlzdCc7XG5leHBvcnQgKiBmcm9tICcuL2FkdmVydGlzZXJDdXJyZW5jeURhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9hZHZlcnRpc2VyRHluYW1pY0RldGFpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9hZHZlcnRpc2VyRHluYW1pY1ZpZGVvQ29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vYWR2ZXJ0aXNlckxheW91dFZhcmlhYmxlcyc7XG5leHBvcnQgKiBmcm9tICcuL2FkdmVydGlzZXJQb2pvJztcbmV4cG9ydCAqIGZyb20gJy4vYWR2ZXJ0aXNlclNldHRpbmdzJztcbmV4cG9ydCAqIGZyb20gJy4vYWdlR3JvdXAnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlMaXN0UmVzcG9uc2VBQlRlc3REVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlMaXN0UmVzcG9uc2VBY3Rpdml0eUxvZyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaUxpc3RSZXNwb25zZUFjdGl2aXR5TG9nc0NyZWF0aXZlU2V0c0J1bGtVcGRhdGVEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlMaXN0UmVzcG9uc2VBY3Rpdml0eUxvZ3NTdHJhdGVneUJ1bGtVcGRhdGVEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlMaXN0UmVzcG9uc2VBdWRpZW5jZVBlcmZvcm1hbmNlRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpTGlzdFJlc3BvbnNlQmFzZU1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpTGlzdFJlc3BvbnNlQ2F0YWxvZ0ZlZWQnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlMaXN0UmVzcG9uc2VDbGlja0Rlc3RpbmF0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpTGlzdFJlc3BvbnNlQ3JlYXRpdmVDb21wYWN0RFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpTGlzdFJlc3BvbnNlQ3JlYXRpdmVEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlMaXN0UmVzcG9uc2VDcmVhdGl2ZVBlcmZvcm1hbmNlTGlzdCc7XG5leHBvcnQgKiBmcm9tICcuL2FwaUxpc3RSZXNwb25zZUNyZWF0aXZlU2V0RGFzaGJvYXJkTWV0cmljJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpTGlzdFJlc3BvbnNlQ3JlYXRpdmVTZXRQZXJmb3JtYW5jZUxpc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlMaXN0UmVzcG9uc2VDcmVhdGl2ZVRlbXBsYXRlRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpTGlzdFJlc3BvbnNlSG90c3Rhck5hdGl2ZUZpbGVSZXF1ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vYXBpTGlzdFJlc3BvbnNlTWFjcm8nO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlMaXN0UmVzcG9uc2VQaXhlbCc7XG5leHBvcnQgKiBmcm9tICcuL2FwaUxpc3RSZXNwb25zZVJlcG9ydGluZ1NjaGVkdWxlclJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpTGlzdFJlc3BvbnNlUmVwb3J0aW5nU2NoZWR1bGVyVXNlclJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpTGlzdFJlc3BvbnNlU2l6ZVdpdGhQcmV2aWV3JztcbmV4cG9ydCAqIGZyb20gJy4vYXBpTGlzdFJlc3BvbnNlU3RyYXRlZ3lSdWxlUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlMaXN0UmVzcG9uc2VTdHJhdGVneVRlbXBsYXRlUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlMaXN0UmVzcG9uc2VWYXJpYWJsZXNNYXBwaW5nRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RBQlRlc3REVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdEFkdmVydGlzZXJDb2hvcnRSZXNwb25zZUxpc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdEFkdmVydGlzZXJDdXJyZW5jeURhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdEFkdmVydGlzZXJEeW5hbWljRGV0YWlscyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0QWR2ZXJ0aXNlckR5bmFtaWNWaWRlb0NvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0QWR2ZXJ0aXNlclBvam8nO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdEFkdmVydGlzZXJTZXR0aW5ncyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0QXBpTGlzdFJlc3BvbnNlQWN0aXZpdHlMb2dzQ3JlYXRpdmVTZXRzQnVsa1VwZGF0ZURUTyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0QXBpTGlzdFJlc3BvbnNlQWN0aXZpdHlMb2dzU3RyYXRlZ3lCdWxrVXBkYXRlRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RBcGlMaXN0UmVzcG9uc2VBdWRpZW5jZVBlcmZvcm1hbmNlRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RBcGlMaXN0UmVzcG9uc2VDYXRhbG9nRmVlZCc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0QXBpTGlzdFJlc3BvbnNlQ2xpY2tEZXN0aW5hdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0QXBpTGlzdFJlc3BvbnNlQ3JlYXRpdmVDb21wYWN0RFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RBcGlMaXN0UmVzcG9uc2VDcmVhdGl2ZURUTyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0QXBpTGlzdFJlc3BvbnNlQ3JlYXRpdmVQZXJmb3JtYW5jZUxpc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdEFwaUxpc3RSZXNwb25zZUNyZWF0aXZlU2V0RGFzaGJvYXJkTWV0cmljJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RBcGlMaXN0UmVzcG9uc2VDcmVhdGl2ZVNldFBlcmZvcm1hbmNlTGlzdCc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0QXBpTGlzdFJlc3BvbnNlQ3JlYXRpdmVUZW1wbGF0ZURUTyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0QXBpTGlzdFJlc3BvbnNlUGl4ZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdEFwaUxpc3RSZXNwb25zZVZhcmlhYmxlc01hcHBpbmdEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdEFycmF5TGlzdENvbWJpbmVkQXVkaWVuY2VBbmFseXNpc1Jlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RBdWRpZW5jZUFjY2Vzc0RUTyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0QXVkaWVuY2VEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdEJhc2VNb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0QmlkVG9Db252ZXJzaW9uRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RCaWRUb0NvbnZlcnNpb25GaWx0ZXJNYXAnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdEJ1ZGdldFN0YXRzRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RCdWxrRWRpdENyZWF0aXZlU2V0c1Jlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RCdWxrRWRpdFN0cmF0ZWdpZXNSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0QnVsa3N0cmF0ZWdpZXNVcGRhdGVSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0Q2FtcGFpZ25EVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdENhbXBhaWduRFRPTGlzdCc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0Q2F0YWxvZ0ZlZWQnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdENoYXJ0RGFzaGJvYXJkUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdENsaWNrRGVzdGluYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdENsaWNrRGVzdGluYXRpb25BdXRvbWF0aW9uVXJscyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0Q29ob3J0Q2FtcGFpZ25TdHJhdGVneVJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RDcmVhdGl2ZURUTyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0Q3JlYXRpdmVQZXJmb3JtYW5jZURhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdENyZWF0aXZlUHJldmlld0RUTyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0Q3JlYXRpdmVTZXREZXRhaWxzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RDcmVhdGl2ZVNldFJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RDcmVhdGl2ZVRlbXBsYXRlc01ldGFkYXRhRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3REYXNoYm9hcmRNZXRyaWNzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3REYXNoYm9hcmRSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0RGljdGlvbmFyeVJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3REbXBBdWRpZW5jZURUTyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0RHVwbGljYXRlQ3JlYXRpdmVTZXRSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0RVJlc3BvbnNlb2JqZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RFbGlnaWJsZVVzZXJzUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdEZpbGVEb3dubG9hZFJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RHZW9MaXN0RFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RJbmNyZW1lbnRhbGl0eVRlc3RDcmVhdGVGb3JtQXVkaWVuY2VSZXNwb25zZU9iamVjdCc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0SW5jcmVtZW50YWxpdHlUZXN0RGV0YWlscyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0SW5jcmVtZW50YWxpdHlUZXN0UmVwb3J0Q2FsY3VsYXRpb25EZXRhaWxzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RJbmNyZW1lbnRhbGl0eVRlc3RSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0TGlzdEFwcFNldHRpbmdzRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RMaXN0QXVkaWVuY2VEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdExpc3RBdWRpdERldGFpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdExpc3RBdWRpdE1hcmtlcic7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0TGlzdEJhY2tmaWxsQXVkaWVuY2VRdWVyeVRlbXBsYXRlRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RMaXN0QmFzZU1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RMaXN0QnVsa3N0cmF0ZWdpZXNWYWxpZGF0aW9uUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdExpc3RDYW1wYWlnbkRUTyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0TGlzdENyZWF0aXZlRmlsZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdExpc3REeW5hbWljVmlkZW9UZW1wbGF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0TGlzdEluY3JlbWVudGFsaXR5VGVzdERldGFpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdExpc3RNZW51Q3J1YlJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RMaXN0U3RyYXRlZ3knO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdExpc3RTdHJhdGVneUNyZWF0aXZlU2V0c0Nsb25lRGF0YVJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RMaXN0VGVtcGxhdGVUaGVtZURUTyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0TGlzdFRlbXBsYXRlVmFyaWFibGVzRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RMaXN0VXNlclByZWZlcmVuY2VEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdE1hcGludFJlc3BvbnNlTWVzc2FnZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0TWFwbG9uZ1Jlc3BvbnNlTWVzc2FnZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0TWVudUNydWJSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0TWV0YVJ1bGVzRHRvJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RPcHRpbWl6YXRpb25SdWxlUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdFBhcmVudEJhc2VkT2JqZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RQaXhlbCc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0UmVwb3J0UmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdFJlcG9ydGluZ1Jlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RSZXBvcnRpbmdTY2hlZHVsZXJSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0UmVzcG9uc2VNZXNzYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RTaXRlTGlzdERUTyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0U2thZFRhcmdldFByaXZpbGVnZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdFNsaWNleENoYXJ0UmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdFNsaWNleExpc3RSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0U3RyYXRlZ3lBdWRpZW5jZUluY1Rlc3RNYXAnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdFN0cmF0ZWd5Q3JlYXRpdmVBc3NvY2lhdGlvblJlc3BvbnNlRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RTdHJhdGVneURUTyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0U3RyYXRlZ3lPcHRSZWNvbW1lbmRhdGlvblJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RTdHJhdGVneU9wdGltaXphdGlvbkRhdGFSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0U3RyYXRlZ3lRdWlja0VkaXREVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdFN0cmF0ZWd5UnVsZVJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RUYWcnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGlSZXNwb25zZU9iamVjdFRhcmdldGluZ09iamVjdCc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0VGVtcGxhdGVUaGVtZURUTyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0Vm9pZCc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0V2hpdGVsYWJlbGluZ0VudGl0eSc7XG5leHBvcnQgKiBmcm9tICcuL2FwaVJlc3BvbnNlT2JqZWN0V2lkZ2V0UGVyZm9ybWFuY2VNZXRyaWNzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3Rib29sZWFuJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3Rsb25nJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpUmVzcG9uc2VPYmplY3RzdHJpbmcnO1xuZXhwb3J0ICogZnJvbSAnLi9hcHBTZXR0aW5nc0RUTyc7XG5leHBvcnQgKiBmcm9tICcuL2FwcFNldHRpbmdzUHJvcGVydHlEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9hdWN0aW9uVHlwZUVkaXRGaWVsZCc7XG5leHBvcnQgKiBmcm9tICcuL2F1ZGllbmNlQWNjZXNzRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYXVkaWVuY2VBbmFseXNpc1JlcXVlc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9hdWRpZW5jZUJhY2tGaWxsZWRTdGF0cyc7XG5leHBvcnQgKiBmcm9tICcuL2F1ZGllbmNlQmFja2ZpbGxRdWVyeVRlbXBsYXRlUmVxdWVzdCc7XG5leHBvcnQgKiBmcm9tICcuL2F1ZGllbmNlQmFja2ZpbGxSZXF1ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vYXVkaWVuY2VEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9hdWRpZW5jZUVTRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYXVkaWVuY2VQZXJmb3JtYW5jZURUTyc7XG5leHBvcnQgKiBmcm9tICcuL2F1ZGllbmNlU3RyRGV2aWNlRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYXVkaWVuY2VTdHJFZGl0RmllbGQnO1xuZXhwb3J0ICogZnJvbSAnLi9hdWRpdENoYW5nZSc7XG5leHBvcnQgKiBmcm9tICcuL2F1ZGl0RGV0YWlscyc7XG5leHBvcnQgKiBmcm9tICcuL2F1ZGl0TWFya2VyJztcbmV4cG9ydCAqIGZyb20gJy4vYklnSW50ZWdlckVkaXRGaWxlZCc7XG5leHBvcnQgKiBmcm9tICcuL2JhY2tmaWxsQXVkaWVuY2VRdWVyeVRlbXBsYXRlRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYmFubmVyQWRTdXBwRGltZW5zaW9uc0RUTyc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2VNb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2VNb2RlbEVkaXRGaWVsZCc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2VNb2RlbFdpdGhDcmVhdGl2ZVNldFR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9iaWRUb0NvbnZlcnNpb25EVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9iaWRUb0NvbnZlcnNpb25GaWx0ZXJEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9iaWRUb0NvbnZlcnNpb25GaWx0ZXJNYXAnO1xuZXhwb3J0ICogZnJvbSAnLi9iaWdEZWNpbWFsRWRpdEZpZWxkJztcbmV4cG9ydCAqIGZyb20gJy4vYm9vbGVhbkVkaXRGaWVsZCc7XG5leHBvcnQgKiBmcm9tICcuL2J1ZGdldENhcFN0cmF0ZWd5RFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYnVkZ2V0Q2hlY2tTdHJhdGVneSc7XG5leHBvcnQgKiBmcm9tICcuL2J1ZGdldFN0YXRzRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYnVsa0VkaXRDcmVhdGl2ZVNldHNEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9idWxrRWRpdENyZWF0aXZlU2V0c0xpc3REVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9idWxrRWRpdENyZWF0aXZlU2V0c1Jlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vYnVsa0VkaXRTdHJhdGVnaWVzRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vYnVsa0VkaXRTdHJhdGVnaWVzUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9idWxrRWRpdFN0cmF0ZWd5TGlzdERUTyc7XG5leHBvcnQgKiBmcm9tICcuL2J1bGtzdHJhdGVnaWVzUmVxdWVzdCc7XG5leHBvcnQgKiBmcm9tICcuL2J1bGtzdHJhdGVnaWVzVXBkYXRlUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9idWxrc3RyYXRlZ2llc1ZhbGlkYXRpb25SZXF1ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vYnVsa3N0cmF0ZWdpZXNWYWxpZGF0aW9uUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jU1NUaGVtZUVudGl0eSc7XG5leHBvcnQgKiBmcm9tICcuL2NUVlRhcmdldGluZyc7XG5leHBvcnQgKiBmcm9tICcuL2NhbXBhaWduRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vY2FtcGFpZ25EVE9MaXN0JztcbmV4cG9ydCAqIGZyb20gJy4vY2FtcGFpZ25FU0RUTyc7XG5leHBvcnQgKiBmcm9tICcuL2NhdGFsb2dGZWVkJztcbmV4cG9ydCAqIGZyb20gJy4vY2hhcnREYXNoYm9hcmRSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2NsaWNrRGVzdGluYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9jbGlja0Rlc3RpbmF0aW9uQXV0b21hdGlvblVybHMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb2hvcnRDYW1wYWlnblN0cmF0ZWd5RE8nO1xuZXhwb3J0ICogZnJvbSAnLi9jb2hvcnRDYW1wYWlnblN0cmF0ZWd5UmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jb2hvcnREYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vY29tYmluZWRBdWRpZW5jZUFuYWx5c2lzUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZW50R2VucmUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZW50TGFuZ3VhZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2NyZWF0aXZlQ29tcGFjdERUTyc7XG5leHBvcnQgKiBmcm9tICcuL2NyZWF0aXZlRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRpdmVEZXRhaWxzJztcbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRpdmVGaWxlRm9yU2V0JztcbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRpdmVGaWxlcyc7XG5leHBvcnQgKiBmcm9tICcuL2NyZWF0aXZlSHRtbEZpbGVGb3JTZXQnO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGl2ZUh0bWxNb2NrdXBEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGl2ZUxpc3RFZGl0RmllbGQnO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGl2ZU1vY2tVcHNEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGl2ZVBlcmZvcm1hbmNlRGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL2NyZWF0aXZlUGVyZm9ybWFuY2VMaXN0JztcbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRpdmVQcmV2aWV3RFRPJztcbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRpdmVTZXREYXNoYm9hcmRNZXRyaWMnO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGl2ZVNldERldGFpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGl2ZVNldExpc3RFZGl0RmllbGQnO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGl2ZVNldFBlcmZvcm1hbmNlTGlzdCc7XG5leHBvcnQgKiBmcm9tICcuL2NyZWF0aXZlU2V0UmVxdWVzdCc7XG5leHBvcnQgKiBmcm9tICcuL2NyZWF0aXZlU2V0UmVzY2hlZHVsZVJlcXVlc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGl2ZVNldFJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRpdmVTdHJhdGVneUFzc29jaWF0aW9uU3RhdHVzJztcbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRpdmVUZW1wbGF0ZURUTyc7XG5leHBvcnQgKiBmcm9tICcuL2NyZWF0aXZlVGVtcGxhdGVzTWV0YWRhdGFEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGl2ZVRoaXJkUGFydHlBZFRhZyc7XG5leHBvcnQgKiBmcm9tICcuL2N1bXVsYXRpdmVDb2hvcnREYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vY3VycmVuY3lNb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2N1c3RvbWVyUmVwb3J0aW5nRGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL2N1c3RvbWVyUmVwb3J0aW5nRGF0YUxpc3RSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2N1c3RvbWVyUmVwb3J0aW5nUmVxdWVzdCc7XG5leHBvcnQgKiBmcm9tICcuL2N1c3RvbWVyUmVwb3J0aW5nUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXNoYm9hcmREYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vZGFzaGJvYXJkRmlsdGVycyc7XG5leHBvcnQgKiBmcm9tICcuL2Rhc2hib2FyZE1ldHJpY3MnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXNoYm9hcmRSZXF1ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vZGFzaGJvYXJkUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXknO1xuZXhwb3J0ICogZnJvbSAnLi9kYXlQYXJ0JztcbmV4cG9ydCAqIGZyb20gJy4vZGF5UGFydEVkaXRGaWVsZCc7XG5leHBvcnQgKiBmcm9tICcuL2Rjb0F0dHJpYnV0ZXNEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9kZWFsQ2F0ZWdvcnlEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9kZWFsQ2F0ZWdvcnlFZGl0RmllbGQnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWFsRVNEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9kZXZpY2VUYXJnZXRNb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2RpY3Rpb25hcnlSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2RtcEF1ZGllbmNlJztcbmV4cG9ydCAqIGZyb20gJy4vZG1wQXVkaWVuY2VDcml0ZXJpYSc7XG5leHBvcnQgKiBmcm9tICcuL2RtcEF1ZGllbmNlRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vZHVwbGljYXRlQ2FtcGFpZ25TdHJhdGVneVJlcXVlc3REVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9kdXBsaWNhdGVDcmVhdGl2ZVNldFJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vZHVwbGljYXRlQ3JlYXRpdmVTZXRzUmVxdWVzdERUTyc7XG5leHBvcnQgKiBmcm9tICcuL2R1cmF0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vZHVyYXRpb25Nb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2R1cmF0aW9uU3RyTW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9keW5hbWljVmlkZW9Db25maWdEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9keW5hbWljVmlkZW9EVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9keW5hbWljVmlkZW9UZW1wbGF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL2VSZXNwb25zZW9iamVjdCc7XG5leHBvcnQgKiBmcm9tICcuL2VsaWdpYmxlVXNlcnNSZXF1ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vZWxpZ2libGVVc2Vyc1Jlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vZW5kQ2FyZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9leHRlbmRlZEJhc2VNb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2V4dGVuZGVkVGFyZ2V0aW5nT2JqZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vZmFpbGVkRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vZmFpbGVkU3RyYXRlZ3lEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9mYWlsZWRTdHJhdGVneUZpZWxkc0RUTyc7XG5leHBvcnQgKiBmcm9tICcuL2ZjYXBEZXRhaWxzJztcbmV4cG9ydCAqIGZyb20gJy4vZmNhcEVkaXRGaWVsZCc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbGVEb3dubG9hZFJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsdGVyTW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9nZW9GZW5jZURUTyc7XG5leHBvcnQgKiBmcm9tICcuL2dlb0xpc3REVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9nZW9MaXN0UmVxdWVzdCc7XG5leHBvcnQgKiBmcm9tICcuL2hvdHN0YXJGaWxlUmVxdWVzdCc7XG5leHBvcnQgKiBmcm9tICcuL2hvdHN0YXJOYXRpdmVGaWxlUmVxdWVzdCc7XG5leHBvcnQgKiBmcm9tICcuL2h5YnJpZEFkTWFwcGluZyc7XG5leHBvcnQgKiBmcm9tICcuL2lQQmFzZWRCYWNrRmlsbCc7XG5leHBvcnQgKiBmcm9tICcuL2luY3JlbWVudGFsaXR5UmVwb3J0RFRPJztcbmV4cG9ydCAqIGZyb20gJy4vaW5jcmVtZW50YWxpdHlSZXBvcnRSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2luY3JlbWVudGFsaXR5UmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbmNyZW1lbnRhbGl0eVRlc3RDcmVhdGVGb3JtQXVkaWVuY2VSZXNwb25zZU9iamVjdCc7XG5leHBvcnQgKiBmcm9tICcuL2luY3JlbWVudGFsaXR5VGVzdERUTyc7XG5leHBvcnQgKiBmcm9tICcuL2luY3JlbWVudGFsaXR5VGVzdERldGFpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9pbmNyZW1lbnRhbGl0eVRlc3RSZXBvcnRDYWxjdWxhdGlvbkRldGFpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9pbmNyZW1lbnRhbGl0eVRlc3RSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVnZXJFZGl0RmllbGQnO1xuZXhwb3J0ICogZnJvbSAnLi9qb2JSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL2xvb2tBbGlrZUF1ZGllbmNlQ29uZmlnRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vbWFjcm8nO1xuZXhwb3J0ICogZnJvbSAnLi9tYXBpbnRSZXNwb25zZU1lc3NhZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXBsb25nUmVzcG9uc2VNZXNzYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vbWFwc3RyaW5nbG9uZyc7XG5leHBvcnQgKiBmcm9tICcuL21lbnVDcnViUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9tZXRhUnVsZUR0byc7XG5leHBvcnQgKiBmcm9tICcuL21ldGFSdWxlc0R0byc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVsRXJyb3InO1xuZXhwb3J0ICogZnJvbSAnLi9uYW1lQW5kVGl0bGVNb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL25hdGl2ZUFzc2V0UG9qbyc7XG5leHBvcnQgKiBmcm9tICcuL25vdGlmaWNhdGlvbkxpc3RSZXNwb25zZU5vdGlmaWNhdGlvblJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vbm90aWZpY2F0aW9uUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9vbkRheUNvaG9ydERhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9vcHRpbWl6YXRpb25SdWxlQXVkaXRMb2dEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9vcHRpbWl6YXRpb25SdWxlQXVkaXRMb2dEVE9MaXN0JztcbmV4cG9ydCAqIGZyb20gJy4vb3B0aW1pemF0aW9uUnVsZURUTyc7XG5leHBvcnQgKiBmcm9tICcuL29wdGltaXphdGlvblJ1bGVSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL29zVGFyZ2V0aW5nJztcbmV4cG9ydCAqIGZyb20gJy4vcGFyZW50QmFzZWRPYmplY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9waXhlbCc7XG5leHBvcnQgKiBmcm9tICcuL3BpeGVsRGF0YUZpbGVEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9waXhlbERhdGFTY2hlZHVsZURUTyc7XG5leHBvcnQgKiBmcm9tICcuL3BpeGVsUmVtb3RlQ29uZmlnRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vcGxhdGZvcm1BdWRpZW5jZURUTyc7XG5leHBvcnQgKiBmcm9tICcuL3JUQkFnZ3JlZ2F0b3JzJztcbmV4cG9ydCAqIGZyb20gJy4vclRCQWdncmVnYXRvcnNFZGl0RmllbGQnO1xuZXhwb3J0ICogZnJvbSAnLi9yVEJTaXRlcyc7XG5leHBvcnQgKiBmcm9tICcuL3JUQlNpdGVzRWRpdEZpZWxkJztcbmV4cG9ydCAqIGZyb20gJy4vcmVtb3RlRmlsZURUTyc7XG5leHBvcnQgKiBmcm9tICcuL3JlcG9ydFByb3BlcnR5JztcbmV4cG9ydCAqIGZyb20gJy4vcmVwb3J0UmVxdWVzdCc7XG5leHBvcnQgKiBmcm9tICcuL3JlcG9ydFJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVwb3J0aW5nUmVxdWVzdCc7XG5leHBvcnQgKiBmcm9tICcuL3JlcG9ydGluZ1Jlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVwb3J0aW5nU2NoZWR1bGVyUmVxdWVzdCc7XG5leHBvcnQgKiBmcm9tICcuL3JlcG9ydGluZ1NjaGVkdWxlclJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVwb3J0aW5nU2NoZWR1bGVyVXNlclJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzcG9uc2VNZXNzYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vcnVsZUNvbXBvbmVudERUTyc7XG5leHBvcnQgKiBmcm9tICcuL3J1bGVEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9ydWxlT3BlcmF0b3JEdG8nO1xuZXhwb3J0ICogZnJvbSAnLi9ydWxlVmFsdWVEdG8nO1xuZXhwb3J0ICogZnJvbSAnLi9zY2hlZHVsZXJSZXF1ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoUmVxdWVzdCc7XG5leHBvcnQgKiBmcm9tICcuL3NpdGVMaXN0RFRPJztcbmV4cG9ydCAqIGZyb20gJy4vc2l0ZUxpc3RSZXF1ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vc2l0ZU1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vc2l6ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NpemVXaXRoUHJldmlldyc7XG5leHBvcnQgKiBmcm9tICcuL3NrYWRUYXJnZXRQcml2aWxlZ2VzJztcbmV4cG9ydCAqIGZyb20gJy4vc2xpY2V4Q2hhcnRSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL3NsaWNleERhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9zbGljZXhHcmlkRGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL3NsaWNleExpc3RSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL3NsaWNleFJlcXVlc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9zbGljZXhSZXF1ZXN0RXh0ZW5kZWQnO1xuZXhwb3J0ICogZnJvbSAnLi9zb3J0TW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zdGF0dXNCYXNlT2JqZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vc3RyYXRlZ3knO1xuZXhwb3J0ICogZnJvbSAnLi9zdHJhdGVneUF1ZGllbmNlSW5jVGVzdE1hcCc7XG5leHBvcnQgKiBmcm9tICcuL3N0cmF0ZWd5Q3JlYXRpdmVBc3NvY2lhdGlvblJlcXVlc3REVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9zdHJhdGVneUNyZWF0aXZlQXNzb2NpYXRpb25SZXNwb25zZURUTyc7XG5leHBvcnQgKiBmcm9tICcuL3N0cmF0ZWd5Q3JlYXRpdmVTZXRzQ2xvbmVEYXRhUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zdHJhdGVneURUTyc7XG5leHBvcnQgKiBmcm9tICcuL3N0cmF0ZWd5SW5saW5lRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vc3RyYXRlZ3lMaXN0RWRpdEZpZWxkJztcbmV4cG9ydCAqIGZyb20gJy4vc3RyYXRlZ3lPcHRCbG9ja1RhcmdldGluZ1JlcSc7XG5leHBvcnQgKiBmcm9tICcuL3N0cmF0ZWd5T3B0UmVjb21tZW5kYXRpb25SZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0cmF0ZWd5T3B0aW1pemF0aW9uRGF0YVJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RyYXRlZ3lRdWlja0VkaXREVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9zdHJhdGVneVJ1bGVSZXNwb25zZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0cmF0ZWd5VGFyZ2V0dGluZ1BlcmZvcm1hbmNlRGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL3N0cmF0ZWd5VGVtcGxhdGVEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi9zdHJhdGVneVRlbXBsYXRlUmVzcG9uc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zdHJhdGVneVVwZGF0ZVJlc3BvbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RyYXRlZ3lXaXRoQ3JlYXRpdmVTZXRzREFPJztcbmV4cG9ydCAqIGZyb20gJy4vc3RyaW5nRWRpdEZpZWxkJztcbmV4cG9ydCAqIGZyb20gJy4vdGFnJztcbmV4cG9ydCAqIGZyb20gJy4vdGFyZ2V0QXBwQ2F0ZWdvcmllcyc7XG5leHBvcnQgKiBmcm9tICcuL3RhcmdldEJyb3dzZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vdGFyZ2V0RGV2aWNlVHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi90YXJnZXRHZW9EVE8nO1xuZXhwb3J0ICogZnJvbSAnLi90YXJnZXRHZW9FZGl0RmllbGQnO1xuZXhwb3J0ICogZnJvbSAnLi90YXJnZXRNb2JpbGVEZXZpY2VCcmFuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi90YXJnZXRNb2JpbGVEZXZpY2VNb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi90YXJnZXRNb2JpbGVEZXZpY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vdGFyZ2V0T2JqZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vdGFyZ2V0T3BlcmF0aW5nU3lzdGVtJztcbmV4cG9ydCAqIGZyb20gJy4vdGFyZ2V0T3BlcmF0aW5nU3lzdGVtRWRpdEZpZWxkJztcbmV4cG9ydCAqIGZyb20gJy4vdGFyZ2V0aW5nT2JqZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vdGVtcGVyYXR1cmVUYXJnZXRpbmdEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi90ZW1wbGF0ZVRoZW1lRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vdGVtcGxhdGVWYXJpYWJsZXNEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi90aW1lWm9uZURUTyc7XG5leHBvcnQgKiBmcm9tICcuL3RvdGFsVW5pcXVlVXNlclJlcXVlc3QnO1xuZXhwb3J0ICogZnJvbSAnLi91c2VyUHJlZmVyZW5jZUNhdGVnb3J5JztcbmV4cG9ydCAqIGZyb20gJy4vdXNlclByZWZlcmVuY2VEVE8nO1xuZXhwb3J0ICogZnJvbSAnLi92YXJpYWJsZXNNYXBwaW5nRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vdmFzdENyZWF0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vdmlkZW9BZFRhZ1ZlcmlmeVJlcXVlc3QnO1xuZXhwb3J0ICogZnJvbSAnLi92aWRlb0F0dHJpYnV0ZXMnO1xuZXhwb3J0ICogZnJvbSAnLi92aWRlb1Byb3BlcnRpZXMnO1xuZXhwb3J0ICogZnJvbSAnLi92aWRlb1Jld2FyZGVkVHlwZVRhcmdldGluZyc7XG5leHBvcnQgKiBmcm9tICcuL3ZpZGVvVGFyZ2V0aW5nJztcbmV4cG9ydCAqIGZyb20gJy4vd2VhdGhlckVTRFRPJztcbmV4cG9ydCAqIGZyb20gJy4vd2hpdGVsYWJlbGluZ0VudGl0eSc7XG5leHBvcnQgKiBmcm9tICcuL3dpZGdldFBlcmZvcm1hbmNlTWV0cmljcyc7XG5leHBvcnQgKiBmcm9tICcuL3ppcENvZGUnO1xuIl19
|