@cloudbase/oauth 2.5.45-beta.0 → 2.5.46-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { GetVerificationRequest, GetVerificationResponse, UserProfile, UserInfo, SignInRequest, SignUpRequest, VerifyRequest, VerifyResponse, GenProviderRedirectUriRequest, GenProviderRedirectUriResponse, GrantProviderTokenRequest, GrantProviderTokenResponse, PatchProviderTokenRequest, PatchProviderTokenResponse, SignInWithProviderRequest, BindWithProviderRequest, TransByProviderRequest, GrantTokenRequest, UserProfileProvider, UnbindProviderRequest, CheckPasswordrRequest, BindPhoneRequest, BindEmailRequest, SetPasswordRequest, ChangeBindedProviderRequest, ChangeBindedProviderResponse, UpdatePasswordRequest, SudoResponse, SudoRequest, GetCustomSignTicketFn, QueryUserProfileRequest, QueryUserProfileResponse, ResetPasswordRequest, DeviceAuthorizeRequest, DeviceAuthorizeResponse, CheckUsernameRequest, CheckIfUserExistRequest, CheckIfUserExistResponse, WithSudoRequest, PublicKey, EncryptParams, ProviderSubType } from './models';
1
+ import { GetVerificationRequest, GetVerificationResponse, UserProfile, UserInfo, SignInRequest, SignUpRequest, VerifyRequest, VerifyResponse, GenProviderRedirectUriRequest, GenProviderRedirectUriResponse, GrantProviderTokenRequest, GrantProviderTokenResponse, PatchProviderTokenRequest, PatchProviderTokenResponse, SignInWithProviderRequest, BindWithProviderRequest, TransByProviderRequest, GrantTokenRequest, UserProfileProvider, UnbindProviderRequest, CheckPasswordrRequest, BindPhoneRequest, BindEmailRequest, SetPasswordRequest, ChangeBindedProviderRequest, ChangeBindedProviderResponse, UpdatePasswordRequest, SudoResponse, SudoRequest, GetCustomSignTicketFn, QueryUserProfileRequest, QueryUserProfileResponse, ResetPasswordRequest, DeviceAuthorizeRequest, DeviceAuthorizeResponse, CheckUsernameRequest, CheckIfUserExistRequest, CheckIfUserExistResponse, WithSudoRequest, PublicKey, EncryptParams, ProviderSubType, GetMiniProgramQrCodeRequest, GetMiniProgramQrCodeStatusRequest, GetMiniProgramQrCodeResponse, GetMiniProgramQrCodeStatusResponse, ModifyUserBasicInfoRequest } from './models';
2
2
  import { SimpleStorage, RequestFunction } from '../oauth2client/interface';
3
3
  import { OAuth2Client } from '../oauth2client/oauth2client';
4
4
  import { Credentials } from '../oauth2client/models';
@@ -34,6 +34,7 @@ export declare class Auth {
34
34
  grantProviderToken(params: GrantProviderTokenRequest): Promise<GrantProviderTokenResponse>;
35
35
  patchProviderToken(params: PatchProviderTokenRequest): Promise<PatchProviderTokenResponse>;
36
36
  signInWithProvider(params: SignInWithProviderRequest): Promise<Credentials>;
37
+ signInWithWechat(params?: any): Promise<Credentials>;
37
38
  bindWithProvider(params: BindWithProviderRequest): Promise<void>;
38
39
  getUserProfile(params: {
39
40
  version?: string;
@@ -60,6 +61,7 @@ export declare class Auth {
60
61
  getCurUserVerification(params: GetVerificationRequest): Promise<GetVerificationResponse>;
61
62
  changeBindedProvider(params: ChangeBindedProviderRequest): Promise<ChangeBindedProviderResponse>;
62
63
  setUserProfile(params: UserProfile): Promise<UserProfile>;
64
+ updateUserBasicInfo(params: ModifyUserBasicInfoRequest): Promise<void>;
63
65
  queryUserProfile(params: QueryUserProfileRequest): Promise<QueryUserProfileResponse>;
64
66
  setCustomSignFunc(getTickFn: GetCustomSignTicketFn): void;
65
67
  signInWithCustomTicket(params?: {
@@ -92,4 +94,6 @@ export declare class Auth {
92
94
  captcha_token: string;
93
95
  expires_in: number;
94
96
  }>;
97
+ getMiniProgramCode(params: GetMiniProgramQrCodeRequest): Promise<GetMiniProgramQrCodeResponse>;
98
+ checkMiniProgramCode(params: GetMiniProgramQrCodeStatusRequest): Promise<GetMiniProgramQrCodeStatusResponse>;
95
99
  }
@@ -295,6 +295,26 @@ var Auth = (function () {
295
295
  });
296
296
  });
297
297
  };
298
+ Auth.prototype.signInWithWechat = function (params) {
299
+ if (params === void 0) { params = {}; }
300
+ return __awaiter(this, void 0, void 0, function () {
301
+ var credentials;
302
+ return __generator(this, function (_a) {
303
+ switch (_a.label) {
304
+ case 0: return [4, this.config.request(consts_1.ApiUrls.AUTH_SIGN_IN_WITH_WECHAT_URL, {
305
+ method: 'POST',
306
+ body: params,
307
+ })];
308
+ case 1:
309
+ credentials = _a.sent();
310
+ return [4, this.config.credentialsClient.setCredentials(credentials)];
311
+ case 2:
312
+ _a.sent();
313
+ return [2, Promise.resolve(credentials)];
314
+ }
315
+ });
316
+ });
317
+ };
298
318
  Auth.prototype.bindWithProvider = function (params) {
299
319
  return __awaiter(this, void 0, void 0, function () {
300
320
  return __generator(this, function (_a) {
@@ -550,6 +570,17 @@ var Auth = (function () {
550
570
  });
551
571
  });
552
572
  };
573
+ Auth.prototype.updateUserBasicInfo = function (params) {
574
+ return __awaiter(this, void 0, void 0, function () {
575
+ return __generator(this, function (_a) {
576
+ return [2, this.config.request(consts_1.ApiUrls.USER_BASIC_EDIT_URL, {
577
+ method: 'POST',
578
+ withCredentials: true,
579
+ body: params,
580
+ })];
581
+ });
582
+ });
583
+ };
553
584
  Auth.prototype.queryUserProfile = function (params) {
554
585
  return __awaiter(this, void 0, void 0, function () {
555
586
  var searchParams;
@@ -739,7 +770,27 @@ var Auth = (function () {
739
770
  });
740
771
  });
741
772
  };
773
+ Auth.prototype.getMiniProgramCode = function (params) {
774
+ return __awaiter(this, void 0, void 0, function () {
775
+ return __generator(this, function (_a) {
776
+ return [2, this.config.request(consts_1.ApiUrls.GET_MINIPROGRAM_QRCODE, {
777
+ method: 'POST',
778
+ body: params,
779
+ })];
780
+ });
781
+ });
782
+ };
783
+ Auth.prototype.checkMiniProgramCode = function (params) {
784
+ return __awaiter(this, void 0, void 0, function () {
785
+ return __generator(this, function (_a) {
786
+ return [2, this.config.request(consts_1.ApiUrls.GET_MINIPROGRAM_QRCODE_STATUS, {
787
+ method: 'POST',
788
+ body: params,
789
+ })];
790
+ });
791
+ });
792
+ };
742
793
  return Auth;
743
794
  }());
744
795
  exports.Auth = Auth;
745
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdXRoL2FwaXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVaLG1DQUE2QztBQThDN0MsNkRBQTJFO0FBRTNFLDhDQUE0RDtBQUM1RCxrQ0FBb0M7QUFDcEMsNENBQWlEO0FBZ0JqRDtJQWtCRSxjQUFZLElBQWlCO1FBQ3JCLElBQUEsT0FBTyxHQUFLLElBQUksUUFBVCxDQUFTO1FBQ3RCLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQTtRQUN6QyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ2pCLElBQU0sV0FBVyxHQUFHO2dCQUNsQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ3pCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO2FBQ3RCLENBQUE7WUFDRCxZQUFZLEdBQUcsSUFBSSwyQkFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1NBQzdDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLElBQU0sV0FBVyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFBO1lBQzNELElBQU0sT0FBTyxHQUFHLElBQUksaUJBQU8sWUFDekIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQ3BCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxJQUNsQixJQUFJLENBQUMsY0FBYyxFQUN0QixDQUFBO1lBQ0YsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1NBQ3hDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRztZQUNaLFNBQVMsRUFBRSxJQUFJLENBQUMs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QU0sRUFBRSxNQUFNO3dCQUNkLElBQUksRUFBRTs0QkFDSixXQUFXLEVBQUUsTUFBTTt5QkFDcEI7cUJBQ0YsQ0FBQyxFQUFBOzs7S0FDSDtJQU1ZLGdDQUFpQixHQUE5QixVQUErQixFQUE4QztZQUE1QyxLQUFLLFdBQUEsRUFBRSxHQUFHLFNBQUE7OztnQkFDekMsV0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBZ0QsZ0JBQU8sQ0FBQyx1QkFBdUIsRUFBRTt3QkFDekcsTUFBTSxFQUFFLE1BQU07d0JBQ2QsSUFBSSxFQUFFLEVBQUUsS0FBSyxPQUFBLEVBQUUsR0FBRyxLQUFBLEVBQUU7d0JBQ3BCLGVBQWUsRUFBRSxLQUFLO3FCQUN2QixDQUFDLEVBQUE7OztLQUNIO0lBRVksZ0NBQWlCLEdBQTlCLFVBQStCLEVBQW1DO1lBQWpDLEtBQUssV0FBQSxFQUFFLG9CQUF3QixFQUF4QixZQUFZLG1CQUFHLFNBQVMsS0FBQTs7O2dCQUM5RCxXQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFnRCxnQkFBTyxDQUFDLGdCQUFnQixFQUFFO3dCQUNsRyxNQUFNLEVBQUUsTUFBTTt3QkFDZCxJQUFJLEVBQUUsRUFBRSxLQUFLLE9BQUEsRUFBRSxZQUFZLGNBQUEsRUFBRTt3QkFDN0IsZUFBZSxFQUFFLEtBQUs7cUJBQ3ZCLENBQUMsRUFBQTs7O0tBQ0g7SUFDSCxXQUFDO0FBQUQsQ0FBQyxBQXhxQkQsSUF3cUJDO0FBeHFCWSxvQkFBSSIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0J1xuXG5pbXBvcnQgeyBBcGlVcmxzLCBBcGlVcmxzVjIgfSBmcm9tICcuL2NvbnN0cydcbmltcG9ydCB7XG4gIEdldFZlcmlmaWNhdGlvblJlcXVlc3QsXG4gIEdldFZlcmlmaWNhdGlvblJlc3BvbnNlLFxuICBVc2VyUHJvZmlsZSxcbiAgVXNlckluZm8sXG4gIFNpZ25JblJlcXVlc3QsXG4gIFNpZ25VcFJlcXVlc3QsXG4gIFZlcmlmeVJlcXVlc3QsXG4gIFZlcmlmeVJlc3BvbnNlLFxuICBHZW5Qcm92aWRlclJlZGlyZWN0VXJpUmVxdWVzdCxcbiAgR2VuUHJvdmlkZXJSZWRpcmVjdFVyaVJlc3BvbnNlLFxuICBHcmFudFByb3ZpZGVyVG9rZW5SZXF1ZXN0LFxuICBHcmFudFByb3ZpZGVyVG9rZW5SZXNwb25zZSxcbiAgUGF0Y2hQcm92aWRlclRva2VuUmVxdWVzdCxcbiAgUGF0Y2hQcm92aWRlclRva2VuUmVzcG9uc2UsXG4gIFNpZ25JbldpdGhQcm92aWRlclJlcXVlc3QsXG4gIEJpbmRXaXRoUHJvdmlkZXJSZXF1ZXN0LFxuICBUcmFuc0J5UHJvdmlkZXJSZXF1ZXN0LFxuICBHcmFudFRva2VuUmVxdWVzdCxcbiAgVXNlclByb2ZpbGVQcm92aWRlcixcbiAgVW5iaW5kUHJvdmlkZXJSZXF1ZXN0LFxuICBDaGVja1Bhc3N3b3JkclJlcXVlc3QsXG4gIEJpbmRQaG9uZVJlcXVlc3QsXG4gIEJpbmRFbWFpbFJlcXVlc3QsXG4gIFNldFBhc3N3b3JkUmVxdWVzdCxcbiAgQ2hhbmdlQmluZGVkUHJvdmlkZXJSZXF1ZXN0LFxuICBDaGFuZ2VCaW5kZWRQcm92aWRlclJlc3BvbnNlLFxuICBVcGRhdGVQYXNzd29yZFJlcXVlc3QsXG4gIFN1ZG9SZXNwb25zZSxcbiAgU3Vkb1JlcXVlc3QsXG4gIEdldEN1c3RvbVNpZ25UaWNrZXRGbixcbiAgUXVlcnlVc2VyUHJvZmlsZVJlcXVlc3QsXG4gIFF1ZXJ5VXNlclByb2ZpbGVSZXNwb25zZSxcbiAgUmVzZXRQYXNzd29yZFJlcXVlc3QsXG4gIERldmljZUF1dGhvcml6ZVJlcXVlc3QsXG4gIERldmljZUF1dGhvcml6ZVJlc3BvbnNlLFxuICBDaGVja1VzZXJuYW1lUmVxdWVzdCxcbiAgQ2hlY2tJZlVzZXJFeGlzdFJlcXVlc3QsXG4gIENoZWNrSWZVc2VyRXhpc3RSZXNwb25zZSxcbiAgV2l0aFN1ZG9SZXF1ZXN0LFxuICBQdWJsaWNLZXksXG4gIEVuY3J5cHRQYXJhbXMsXG4gIFByb3ZpZGVyU3ViVHlwZSxcbn0gZnJvbSAnLi9tb2RlbHMnXG5pbXBvcnQgeyBTaW1wbGVTdG9yYWdlLCBSZXF1ZXN0RnVuY3Rpb24gfSBmcm9tICcuLi9vYXV0aDJjbGllbnQvaW50ZXJmYWNlJ1xuaW1wb3J0IHsgT0F1dGgyQ2xpZW50LCBkZWZhdWx0U3RvcmFnZSB9IGZyb20gJy4uL29hdXRoMmNsaWVudC9vYXV0aDJjbGllbnQnXG5pbXBvcnQgeyBDcmVkZW50aWFscyB9IGZyb20gJy4uL29hdXRoMmNsaWVudC9tb2RlbHMnXG5pbXBvcnQgeyBDYXB0Y2hhLCBDYXB0Y2hhT3B0aW9ucyB9IGZyb20gJy4uL2NhcHRjaGEvY2FwdGNoYSdcbmltcG9ydCB7IGRlZXBDbG9uZSB9IGZyb20gJy4uL3V0aWxzJ1xuaW1wb3J0IHsgZ2V0RW5jcnlwdEluZm8gfSBmcm9tICcuLi91dGlscy9lbmNyeXB0J1xuXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhPcHRpb25zIHtcbiAgYXBpT3JpZ2luOiBzdHJpbmdcbiAgY2xpZW50SWQ6IHN0cmluZ1xuICBjcmVkZW50aWFsc0NsaWVudD86IE9BdXRoMkNsaWVudFxuICByZXF1ZXN0PzogUmVxdWVzdEZ1bmN0aW9uXG4gIGJhc2VSZXF1ZXN0PzogUmVxdWVzdEZ1bmN0aW9uXG4gIHN0b3JhZ2U/OiBTaW1wbGVTdG9yYWdlXG4gIGFub255bW91c1NpZ25JbkZ1bmM/OiAoQ3JlZGVudGlhbHMpID0+IFByb21pc2U8Q3JlZGVudGlhbHMgfCB2b2lkPlxuICBjYXB0Y2hhT3B0aW9ucz86IFBhcnRpYWw8Q2FwdGNoYU9wdGlvbnM+XG59XG5cbi8qKlxuICogQXV0aFxuICovXG5leHBvcnQgY2xhc3MgQXV0aCB7XG4gIHByaXZhdGUgc3RhdGljIHBhcnNlUGFyYW1zVG9TZWFyY2gocGFyYW1zOiBhbnkpOiBzdHJpbmcge1xuICAgIE9iamVjdC5rZXlzKHBhcmFtcykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBpZiAoIXBhcmFtc1trZXldKSB7XG4gICAgICAgIGRlbGV0ZSBwYXJhbXNba2V5XVxuICAgICAgfVxuICAgIH0pXG4gICAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhwYXJhbXMgYXMgYW55KVxuICAgIHJldHVybiBzZWFyY2hQYXJhbXMudG9TdHJpbmcoKVxuICB9XG5cbiAgcHJpdmF0ZSBjb25maWc6IEF1dGhPcHRpb25zXG4gIHByaXZhdGUgZ2V0Q3VzdG9tU2lnblRpY2tldEZuPzogR2V0Q3VzdG9tU2lnblRpY2tldEZuXG5cbiAgLyoqXG4gICAqIGNvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSB7QXV0aE9wdGlvbnN9IG9wdHNcbiAgICovXG4gIGNvbnN0cnVjdG9yKG9wdHM6IEF1dGhPcHRpb25zKSB7XG4gICAgbGV0IHsgcmVxdWVzdCB9ID0gb3B0c1xuICAgIGxldCBvQXV0aDJDbGllbnQgPSBvcHRzLmNyZWRlbnRpYWxzQ2xpZW50XG4gICAgaWYgKCFvQXV0aDJDbGllbnQpIHtcbiAgICAgIGNvbnN0IGluaXRPcHRpb25zID0ge1xuICAgICAgICBhcGlPcmlnaW46IG9wdHMuYXBpT3JpZ2luLFxuICAgICAgICBjbGllbnRJZDogb3B0cy5jbGllbnRJZCxcbiAgICAgICAgc3RvcmFnZTogb3B0cy5zdG9yYWdlLFxuICAgICAgfVxuICAgICAgb0F1dGgyQ2xpZW50ID0gbmV3IE9BdXRoMkNsaWVudChpbml0T3B0aW9ucylcbiAgICB9XG4gICAgaWYgKCFyZXF1ZXN0KSB7XG4gICAgICBjb25zdCBiYXNlUmVxdWVzdCA9IG9BdXRoMkNsaWVudC5yZXF1ZXN0LmJpbmQob0F1dGgyQ2xpZW50KVxuICAgICAgY29uc3QgY2FwdGNoYSA9IG5ldyBDYXB0Y2hhKHtcbiAgICAgICAgY2xpZW50SWQ6IG9wdHMuY2xpZW50SWQsXG4gICAgICAgIHJlcXVlc3Q6IGJhc2VSZXF1ZXN0LFxuICAgICAgICBzdG9yYWdlOiBvcHRzLnN0b3JhZ2UsXG4gICAgICAgIC4uLm9wdHMuY2FwdGNoYU9wdGlvbnMsXG4gICAgICB9KVxuICAgICAgcmVxdWVzdCA9IGNhcHRjaGEucmVxdWVzdC5iaW5kKGNhcHRjaGEpXG4gICAgfVxuICAgIHRoaXMuY29uZmlnID0ge1xuICAgICAgYXBpT3JpZ2luOiBvcHRzLmFwaU9yaWdpbixcbiAgICAgIGNsaWVudElkOiBvcHRzLmNsaWVudElkLFxuICAgICAgcmVxdWVzdCxcbiAgICAgIGNyZWRlbnRpYWxzQ2xpZW50OiBvQXV0aDJDbGllbnQsXG4gICAgICBzdG9yYWdlOiBvcHRzLnN0b3JhZ2UgfHwgZGVmYXVsdFN0b3JhZ2UsXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIOagueaNrueJiOacrOagh+ivhu+8jOWkhOeQhuW+heivt+axgueahHVybOWSjHBhcmFtc1xuICAgKiBAcGFyYW0gcGFyYW1zXG4gICAqIEBwYXJhbSBrZXlcbiAgICogQHJldHVybnNcbiAgICovXG4gIHB1YmxpYyBnZXRQYXJhbXNCeVZlcnNpb24ocGFyYW1zOiBhbnksIGtleTogc3RyaW5nKSB7XG4gICAgY29uc3QgcGFyYW1zVGVtcCA9IGRlZXBDbG9uZShwYXJhbXMpXG4gICAgY29uc3QgdXJsID0geyB2MjogQXBpVXJsc1YyIH1bcGFyYW1zVGVtcD8udmVyc2lvbl0/LltrZXldIHx8IEFwaVVybHNba2V5XVxuXG4gICAgaWYgKHBhcmFtc1RlbXApIHtcbiAgICAgIGRlbGV0ZSBwYXJhbXNUZW1wLnZlcnNpb25cbiAgICB9XG5cbiAgICByZXR1cm4geyBwYXJhbXM6IHBhcmFtc1RlbXAsIHVybCB9XG4gIH1cblxuICAvKipcbiAgICogU2lnbiBpbi5cbiAgICogQHBhcmFtIHtTaWduSW5SZXF1ZXN0fSBwYXJhbXMgQSBTaWduSW5SZXF1ZXN0IE9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxDcmVkZW50aWFscz59IEEgUHJvbWlzZTxDcmVkZW50aWFscz4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNpZ25JbihwYXJhbXM6IFNpZ25JblJlcXVlc3QpOiBQcm9taXNlPENyZWRlbnRpYWxzPiB7XG4gICAgY29uc3QgdmVyc2lvbiA9IHBhcmFtcy52ZXJzaW9uIHx8ICd2MSdcbiAgICBjb25zdCByZXMgPSB0aGlzLmdldFBhcmFtc0J5VmVyc2lvbihwYXJhbXMsICdBVVRIX1NJR05fSU5fVVJMJylcbiAgICBpZiAocmVzLnBhcmFtcy5xdWVyeSkge1xuICAgICAgZGVsZXRlIHJlcy5wYXJhbXMucXVlcnlcbiAgICB9XG5cbiAgICBjb25zdCBib2R5ID0gYXdhaXQgdGhpcy5nZXRFbmNyeXB0UGFyYW1zKHJlcy5wYXJhbXMpXG4gICAgY29uc3QgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5jb25maWcucmVxdWVzdDxDcmVkZW50aWFscz4ocmVzLnVybCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5LFxuICAgIH0pXG4gICAgYXdhaXQgdGhpcy5jb25maWcuY3JlZGVudGlhbHNDbGllbnQuc2V0Q3JlZGVudGlhbHMoe1xuICAgICAgLi4uY3JlZGVudGlhbHMsXG4gICAgICB2ZXJzaW9uLFxuICAgIH0pXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShjcmVkZW50aWFscylcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduIGluIEFub255bW91c2x5XG4gICAqIEByZXR1cm4ge1Byb21pc2U8Q3JlZGVudGlhbHM+fSBBIFByb21pc2U8Q3JlZGVudGlhbHM+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzaWduSW5Bbm9ueW1vdXNseShkYXRhOiB7XG4gICAgcHJvdmlkZXJfdG9rZW4/OiBzdHJpbmdcbiAgfSA9IHt9LCk6IFByb21pc2U8Q3JlZGVudGlhbHM+IHtcbiAgICBjb25zdCBjcmVkZW50aWFsczogQ3JlZGVudGlhbHMgPSBhd2FpdCB0aGlzLmNvbmZpZy5yZXF1ZXN0PENyZWRlbnRpYWxzPihBcGlVcmxzLkFVVEhfU0lHTl9JTl9BTk9OWU1PVVNMWV9VUkwsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keTogZGF0YSxcbiAgICB9KVxuICAgIGF3YWl0IHRoaXMuY29uZmlnLmNyZWRlbnRpYWxzQ2xpZW50LnNldENyZWRlbnRpYWxzKGNyZWRlbnRpYWxzKVxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoY3JlZGVudGlhbHMpXG4gIH1cblxuICAvKipcbiAgICogU2lnbiB1cC5cbiAgICogQHBhcmFtIHtTaWduVXBSZXF1ZXN0fSBwYXJhbXMgQSBTaWduVXBSZXF1ZXN0IE9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxDcmVkZW50aWFscz59IEEgUHJvbWlzZTxDcmVkZW50aWFscz4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNpZ25VcChwYXJhbXM6IFNpZ25VcFJlcXVlc3QpOiBQcm9taXNlPENyZWRlbnRpYWxzPiB7XG4gICAgY29uc3QgZGF0YTogQ3JlZGVudGlhbHMgPSBhd2FpdCB0aGlzLmNvbmZpZy5yZXF1ZXN0PENyZWRlbnRpYWxzPihBcGlVcmxzLkFVVEhfU0lHTl9VUF9VUkwsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keTogcGFyYW1zLFxuICAgIH0pXG4gICAgYXdhaXQgdGhpcy5jb25maWcuY3JlZGVudGlhbHNDbGllbnQuc2V0Q3JlZGVudGlhbHMoZGF0YSlcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGRhdGEpXG4gIH1cblxuICAvKipcbiAgICogU2lnbiBvdXQuXG4gICAqIEByZXR1cm4ge09iamVjdH0gQSBQcm9taXNlPHZvaWQ+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzaWduT3V0KCk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgYWNjZXNzVG9rZW46IHN0cmluZyA9IGF3YWl0IHRoaXMuY29uZmlnLmNyZWRlbnRpYWxzQ2xpZW50LmdldEFjY2Vzc1Rva2VuKClcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5jb25maWcucmVxdWVzdChBcGlVcmxzLkFVVEhfUkVWT0tFX1VSTCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiB7XG4gICAgICAgIHRva2VuOiBhY2Nlc3NUb2tlbixcbiAgICAgIH0sXG4gICAgfSlcbiAgICBhd2FpdCB0aGlzLmNvbmZpZy5jcmVkZW50aWFsc0NsaWVudC5zZXRDcmVkZW50aWFscygpXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShkYXRhKVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgdmVyaWZpY2F0aW9uLlxuICAgKiBAcGFyYW0ge0dldFZlcmlmaWNhdGlvblJlcXVlc3R9IHBhcmFtcyBBIEdldFZlcmlmaWNhdGlvblJlcXVlc3QgT2JqZWN0LlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPEdldFZlcmlmaWNhdGlvblJlc3BvbnNlPn0gQSBQcm9taXNlPEdldFZlcmlmaWNhdGlvblJlc3BvbnNlPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0VmVyaWZpY2F0aW9uKHBhcmFtczogR2V0VmVyaWZpY2F0aW9uUmVxdWVzdCk6IFByb21pc2U8R2V0VmVyaWZpY2F0aW9uUmVzcG9uc2U+IHtcbiAgICBsZXQgd2l0aENyZWRlbnRpYWxzID0gZmFsc2VcbiAgICAvLyDlj5HpgIHnn63kv6Hml7bvvIzlpoLmnpzml7bnu5nlvZPliY3nlKjmiLflj5HvvIzliJnpnIDopoHluKbkuIrpibTmnYPkv6Hmga9cbiAgICBpZiAocGFyYW1zLnRhcmdldCA9PT0gJ0NVUl9VU0VSJykge1xuICAgICAgd2l0aENyZWRlbnRpYWxzID0gdHJ1ZVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBoYXNMb2dpbiA9IGF3YWl0IHRoaXMuaGFzTG9naW5TdGF0ZSgpXG4gICAgICBpZiAoaGFzTG9naW4pIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzID0gdHJ1ZVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxHZXRWZXJpZmljYXRpb25SZXNwb25zZT4oQXBpVXJscy5WRVJJRklDQVRJT05fVVJMLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICAgIHdpdGhDYXB0Y2hhOiB0cnVlLFxuICAgICAgd2l0aENyZWRlbnRpYWxzLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogIFZlcmlmeSB0aGUgY29kZVxuICAgKiBAcGFyYW0ge1ZlcmlmeVJlcXVlc3R9IHBhcmFtcyBBIFZlcmlmeVJlcXVlc3QgT2JqZWN0LlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFZlcmlmeVJlc3BvbnNlPn0gQSBQcm9taXNlPFZlcmlmeVJlc3BvbnNlPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgdmVyaWZ5KHBhcmFtczogVmVyaWZ5UmVxdWVzdCk6IFByb21pc2U8VmVyaWZ5UmVzcG9uc2U+IHtcbiAgICBjb25zdCByZXMgPSB0aGlzLmdldFBhcmFtc0J5VmVyc2lvbihwYXJhbXMsICdWRVJJRllfVVJMJylcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5jb25maWcucmVxdWVzdDxWZXJpZnlSZXNwb25zZT4ocmVzLnVybCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiByZXMucGFyYW1zLFxuICAgIH0pXG5cbiAgICBpZiAocGFyYW1zPy52ZXJzaW9uID09PSAndjInKSB7XG4gICAgICBhd2FpdCB0aGlzLmNvbmZpZy5jcmVkZW50aWFsc0NsaWVudC5zZXRDcmVkZW50aWFscyh7XG4gICAgICAgIC4uLmRhdGEsXG4gICAgICAgIHZlcnNpb246ICd2MicsXG4gICAgICB9KVxuICAgIH1cblxuICAgIHJldHVybiBkYXRhXG4gIH1cblxuICAvKipcbiAgICogR2VuIHByb3ZpZGVyIHJlZGlyZWN0IHVyaS5cbiAgICogQHBhcmFtIHtHZW5Qcm92aWRlclJlZGlyZWN0VXJpUmVxdWVzdH0gcGFyYW1zIEEgR2VuUHJvdmlkZXJSZWRpcmVjdFVyaVJlcXVlc3Qgb2JqZWN0LlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPEdlblByb3ZpZGVyUmVkaXJlY3RVcmlSZXNwb25zZT59IEEgUHJvbWlzZTxHZW5Qcm92aWRlclJlZGlyZWN0VXJpUmVzcG9uc2U+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZW5Qcm92aWRlclJlZGlyZWN0VXJpKHBhcmFtczogR2VuUHJvdmlkZXJSZWRpcmVjdFVyaVJlcXVlc3QpOiBQcm9taXNlPEdlblByb3ZpZGVyUmVkaXJlY3RVcmlSZXNwb25zZT4ge1xuICAgIGxldCB1cmwgPSBgJHtBcGlVcmxzLlBST1ZJREVSX1VSSV9VUkx9P2NsaWVudF9pZD0ke3RoaXMuY29uZmlnLmNsaWVudElkfSZwcm92aWRlcl9pZD0ke1xuICAgICAgcGFyYW1zLnByb3ZpZGVyX2lkXG4gICAgfSZyZWRpcmVjdF91cmk9JHtlbmNvZGVVUklDb21wb25lbnQocGFyYW1zLnByb3ZpZGVyX3JlZGlyZWN0X3VyaSl9JnN0YXRlPSR7cGFyYW1zLnN0YXRlfWBcbiAgICBjb25zdCB7IG90aGVyX3BhcmFtczogb3RoZXJQYXJhbXMgfSA9IHBhcmFtc1xuICAgIGlmIChvdGhlclBhcmFtcykge1xuICAgICAgaWYgKHR5cGVvZiBvdGhlclBhcmFtcy5zaWduX291dF91cmkgPT09ICdzdHJpbmcnICYmIG90aGVyUGFyYW1zLnNpZ25fb3V0X3VyaS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHVybCArPSBgJm90aGVyX3BhcmFtc1tzaWduX291dF91cmldPSR7b3RoZXJQYXJhbXMuc2lnbl9vdXRfdXJpfWBcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8R2VuUHJvdmlkZXJSZWRpcmVjdFVyaVJlc3BvbnNlPih1cmwsIHtcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCBwcm92aWRlciB0b2tlbi5cbiAgICogQHBhcmFtIHtHcmFudFByb3ZpZGVyVG9rZW5SZXF1ZXN0fSBwYXJhbXMgQSBHcmFudFByb3ZpZGVyVG9rZW5SZXF1ZXN0IG9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxHcmFudFByb3ZpZGVyVG9rZW5SZXNwb25zZT59IEEgUHJvbWlzZTxHcmFudFByb3ZpZGVyVG9rZW5SZXNwb25zZT4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdyYW50UHJvdmlkZXJUb2tlbihwYXJhbXM6IEdyYW50UHJvdmlkZXJUb2tlblJlcXVlc3QpOiBQcm9taXNlPEdyYW50UHJvdmlkZXJUb2tlblJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8R3JhbnRQcm92aWRlclRva2VuUmVzcG9uc2U+KEFwaVVybHMuUFJPVklERVJfVE9LRU5fVVJMLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50IHByb3ZpZGVyIHRva2VuLlxuICAgKiBAcGFyYW0ge1BhdGNoUHJvdmlkZXJUb2tlblJlcXVlc3R9IHBhcmFtcyBBIFBhdGNoUHJvdmlkZXJUb2tlblJlcXVlc3Qgb2JqZWN0LlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFBhdGNoUHJvdmlkZXJUb2tlblJlc3BvbnNlPn0gQSBQcm9taXNlPFBhdGNoUHJvdmlkZXJUb2tlblJlc3BvbnNlPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcGF0Y2hQcm92aWRlclRva2VuKHBhcmFtczogUGF0Y2hQcm92aWRlclRva2VuUmVxdWVzdCk6IFByb21pc2U8UGF0Y2hQcm92aWRlclRva2VuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxQYXRjaFByb3ZpZGVyVG9rZW5SZXNwb25zZT4oQXBpVXJscy5QUk9WSURFUl9UT0tFTl9VUkwsIHtcbiAgICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFNpZ25pbiB3aXRoIHByb3ZpZGVyIHJlcXVlc3QuXG4gICAqIEBwYXJhbSB7U2lnbkluV2l0aFByb3ZpZGVyUmVxdWVzdH0gcGFyYW1zIEEgU2lnbkluV2l0aFByb3ZpZGVyUmVxdWVzdCBvYmplY3QuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8Q3JlZGVudGlhbHM+fSBBIFByb21pc2U8Q3JlZGVudGlhbHM+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzaWduSW5XaXRoUHJvdmlkZXIocGFyYW1zOiBTaWduSW5XaXRoUHJvdmlkZXJSZXF1ZXN0KTogUHJvbWlzZTxDcmVkZW50aWFscz4ge1xuICAgIGNvbnN0IHJlcyA9IHRoaXMuZ2V0UGFyYW1zQnlWZXJzaW9uKHBhcmFtcywgJ0FVVEhfU0lHTl9JTl9XSVRIX1BST1ZJREVSX1VSTCcpXG4gICAgY29uc3QgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5jb25maWcucmVxdWVzdDxDcmVkZW50aWFscz4ocmVzLnVybCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiByZXMucGFyYW1zLFxuICAgIH0pXG4gICAgYXdhaXQgdGhpcy5jb25maWcuY3JlZGVudGlhbHNDbGllbnQuc2V0Q3JlZGVudGlhbHMoe1xuICAgICAgLi4uY3JlZGVudGlhbHMsXG4gICAgICB2ZXJzaW9uOiBwYXJhbXM/LnZlcnNpb24gfHwgJ3YxJyxcbiAgICB9KVxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoY3JlZGVudGlhbHMpXG4gIH1cblxuICAvKipcbiAgICogQmluZCB3aXRoIHByb3ZpZGVyXG4gICAqIEBwYXJhbSB7QmluZFdpdGhQcm92aWRlclJlcXVlc3R9IHBhcmFtcyBBIEJpbmRXaXRoUHJvdmlkZXJSZXF1ZXN0IG9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn0gQSBQcm9taXNlPGFueT4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGJpbmRXaXRoUHJvdmlkZXIocGFyYW1zOiBCaW5kV2l0aFByb3ZpZGVyUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PGFueT4oQXBpVXJscy5QUk9WSURFUl9CSU5EX1VSTCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHVzZXIgcHJvZmlsZS5cbiAgICogQHJldHVybiB7UHJvbWlzZTxVc2VyUHJvZmlsZT59IEEgUHJvbWlzZTxVc2VyUHJvZmlsZT4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFVzZXJQcm9maWxlKHBhcmFtczogeyB2ZXJzaW9uPzogc3RyaW5nIH0pOiBQcm9taXNlPFVzZXJQcm9maWxlPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VXNlckluZm8ocGFyYW1zKVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgdXNlciBpbmZvLlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFVzZXJJbmZvPn0gQSBQcm9taXNlPFVzZXJQcm9maWxlPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0VXNlckluZm8ocGFyYW1zOiB7IHZlcnNpb24/OiBzdHJpbmc7IHF1ZXJ5Pzogc3RyaW5nIH0gPSB7fSk6IFByb21pc2U8VXNlckluZm8+IHtcbiAgICBjb25zdCByZXMgPSB0aGlzLmdldFBhcmFtc0J5VmVyc2lvbihwYXJhbXMsICdVU0VSX01FX1VSTCcpXG5cbiAgICBpZiAocmVzLnBhcmFtcz8ucXVlcnkpIHtcbiAgICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMocmVzLnBhcmFtcy5xdWVyeSBhcyBhbnkpXG4gICAgICByZXMudXJsICs9IGA/JHtzZWFyY2hQYXJhbXMudG9TdHJpbmcoKX1gXG4gICAgfVxuXG4gICAgY29uc3QgdXNlckluZm8gPSBhd2FpdCB0aGlzLmNvbmZpZy5yZXF1ZXN0PFVzZXJJbmZvPihyZXMudXJsLCB7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pXG5cbiAgICBpZiAodXNlckluZm8uc3ViKSB7XG4gICAgICB1c2VySW5mby51aWQgPSB1c2VySW5mby5zdWJcbiAgICB9XG5cbiAgICByZXR1cm4gdXNlckluZm9cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHVzZXIgaW5mbyBieSB3ZWRhIHBsdWdpbi5cbiAgICogQHJldHVybiB7UHJvbWlzZTxhbnk+fSBBIFByb21pc2U8YW55PiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0V2VkYVVzZXJJbmZvKCk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgdXNlckluZm8gPSBhd2FpdCB0aGlzLmNvbmZpZy5yZXF1ZXN0PGFueT4oQXBpVXJscy5XRURBX1VTRVJfVVJMLCB7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pXG4gICAgcmV0dXJuIHVzZXJJbmZvXG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIG1lXG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICovXG4gIHB1YmxpYyBhc3luYyBkZWxldGVNZShwYXJhbXM6IFdpdGhTdWRvUmVxdWVzdCk6IFByb21pc2U8VXNlclByb2ZpbGU+IHtcbiAgICBjb25zdCByZXMgPSB0aGlzLmdldFBhcmFtc0J5VmVyc2lvbihwYXJhbXMsICdVU0VSX01FX1VSTCcpXG4gICAgY29uc3QgdXJsID0gYCR7cmVzLnVybH0/JHtBdXRoLnBhcnNlUGFyYW1zVG9TZWFyY2gocmVzLnBhcmFtcyl9YFxuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PFVzZXJQcm9maWxlPih1cmwsIHtcbiAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBoYXNMb2dpblN0YXRlIGNoZWNrIGlmIGhhcyBsb2dpbiBzdGF0ZVxuICAgKiBAcmV0dXJuIHtQcm9taXNlPGJvb2xlYW4+fSBBIFByb21pc2U8Ym9vbGVhbj4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGhhc0xvZ2luU3RhdGUoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuY29uZmlnLmNyZWRlbnRpYWxzQ2xpZW50LmdldEFjY2Vzc1Rva2VuKClcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBoYXNMb2dpblN0YXRlU3luYygpOiBDcmVkZW50aWFscyB8IG51bGwge1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gdGhpcy5jb25maWcuY3JlZGVudGlhbHNDbGllbnQuZ2V0Q3JlZGVudGlhbHNTeW5jKClcbiAgICByZXR1cm4gY3JlZGVudGlhbHNcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRMb2dpblN0YXRlKCk6IFByb21pc2U8Q3JlZGVudGlhbHMgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmNyZWRlbnRpYWxzQ2xpZW50LmdldENyZWRlbnRpYWxzQXN5bmMoKVxuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zIGJ5IHByb3ZpZGVyLlxuICAgKiBAcGFyYW0ge1RyYW5zQnlQcm92aWRlclJlcXVlc3R9IHBhcmFtcyBBIFRyYW5zQnlQcm92aWRlclJlcXVlc3Qgb2JqZWN0LlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPENyZWRlbnRpYWxzPn0gQSBQcm9taXNlPENyZWRlbnRpYWxzPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgdHJhbnNCeVByb3ZpZGVyKHBhcmFtczogVHJhbnNCeVByb3ZpZGVyUmVxdWVzdCk6IFByb21pc2U8Q3JlZGVudGlhbHM+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxDcmVkZW50aWFscz4oQXBpVXJscy5VU0VSX1RSQU5TX0JZX1BST1ZJREVSX1VSTCwge1xuICAgICAgbWV0aG9kOiAnUEFUQ0gnLFxuICAgICAgYm9keTogcGFyYW1zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgdG9rZW4uXG4gICAqIEBwYXJhbSB7R3JhbnRUb2tlblJlcXVlc3R9IHBhcmFtcyBBIEdyYW50VG9rZW5SZXF1ZXN0IG9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxDcmVkZW50aWFscz59IEEgUHJvbWlzZTxDcmVkZW50aWFscz4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdyYW50VG9rZW4ocGFyYW1zOiBHcmFudFRva2VuUmVxdWVzdCk6IFByb21pc2U8Q3JlZGVudGlhbHM+IHtcbiAgICBjb25zdCByZXMgPSB0aGlzLmdldFBhcmFtc0J5VmVyc2lvbihwYXJhbXMsICdBVVRIX1RPS0VOX1VSTCcpXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8Q3JlZGVudGlhbHM+KHJlcy51cmwsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keTogcmVzLnBhcmFtcyxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcHJvdmlkZSBsaXN0LlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFVzZXJQcm9maWxlUHJvdmlkZXI+fSBBIFByb21pc2U8VXNlclByb2ZpbGVQcm92aWRlcj4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFByb3ZpZGVycygpOiBQcm9taXNlPFVzZXJQcm9maWxlUHJvdmlkZXI+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxVc2VyUHJvZmlsZVByb3ZpZGVyPihBcGlVcmxzLlBST1ZJREVSX0xJU1QsIHtcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiB1bmJpbmQgcHJvdmlkZXIuXG4gICAqIEBwYXJhbSB7VW5iaW5kUHJvdmlkZXJSZXF1ZXN0fSBwYXJhbXNcbiAgICogQHJldHVybiB7UHJvbWlzZTxhbnk+fVxuICAgKi9cbiAgcHVibGljIGFzeW5jIHVuYmluZFByb3ZpZGVyKHBhcmFtczogVW5iaW5kUHJvdmlkZXJSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8YW55PihgJHtBcGlVcmxzLlBST1ZJREVSX1VOQklORF9VUkx9LyR7cGFyYW1zLnByb3ZpZGVyX2lkfWAsIHtcbiAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBjaGVjayBQYXNzd29yZC5cbiAgICogQHBhcmFtIHtDaGVja1Bhc3N3b3JkclJlcXVlc3R9IHBhcmFtc1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPGFueT59XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2hlY2tQYXNzd29yZChwYXJhbXM6IENoZWNrUGFzc3dvcmRyUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PGFueT4oYCR7QXBpVXJscy5DSEVDS19QV0RfVVJMfWAsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgYm9keTogcGFyYW1zLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogY2hlY2sgUGFzc3dvcmQuXG4gICAqIEBwYXJhbSB7Q2hlY2tQYXNzd29yZHJSZXF1ZXN0fSBwYXJhbXNcbiAgICogQHJldHVybiB7UHJvbWlzZTxhbnk+fVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGJpbmRQaG9uZShwYXJhbXM6IEJpbmRQaG9uZVJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxhbnk+KGAke0FwaVVybHMuQklORF9DT05UQUNUX1VSTH1gLCB7XG4gICAgICBtZXRob2Q6ICdQQVRDSCcsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBjaGVjayBQYXNzd29yZC5cbiAgICogQHBhcmFtIHtDaGVja1Bhc3N3b3JkclJlcXVlc3R9IHBhcmFtc1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPGFueT59XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgYmluZEVtYWlsKHBhcmFtczogQmluZEVtYWlsUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PGFueT4oYCR7QXBpVXJscy5CSU5EX0NPTlRBQ1RfVVJMfWAsIHtcbiAgICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCBQYXNzd29yZC5cbiAgICogQHBhcmFtIHtTZXRQYXNzd29yZHJSZXF1ZXN0fSBwYXJhbXNcbiAgICogQHJldHVybiB7UHJvbWlzZTxhbnk+fVxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNldFBhc3N3b3JkKHBhcmFtczogU2V0UGFzc3dvcmRSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8YW55PihgJHtBcGlVcmxzLkFVVEhfU0VUX1BBU1NXT1JEfWAsIHtcbiAgICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIHVwZGF0ZVBhc3N3b3JkQnlPbGQg5L2/55So5pen5a+G56CB5L+u5pS55a+G56CB77yM5aaC5p6c5bey57uP57uR5a6a5omL5py65Y+377yM6K+35YWI77yac3Vkb++8jOWGjeS/ruaUueWvhueggVxuICAgKiBAcGFyYW0ge1NldFBhc3N3b3JkclJlcXVlc3R9IHBhcmFtc1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPGFueT59XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgdXBkYXRlUGFzc3dvcmRCeU9sZChwYXJhbXM6IFVwZGF0ZVBhc3N3b3JkUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHN1ZG9Ub2tlbiA9IGF3YWl0IHRoaXMuc3Vkbyh7IHBhc3N3b3JkOiBwYXJhbXMub2xkX3Bhc3N3b3JkIH0pXG4gICAgcmV0dXJuIHRoaXMuc2V0UGFzc3dvcmQoe1xuICAgICAgc3Vkb190b2tlbjogc3Vkb1Rva2VuLnN1ZG9fdG9rZW4sXG4gICAgICBuZXdfcGFzc3dvcmQ6IHBhcmFtcy5uZXdfcGFzc3dvcmQsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBzdWRvXG4gICAqIEBwYXJhbSB7c3Vkb30gcGFyYW1zXG4gICAqIEByZXR1cm4ge1Byb21pc2U8YW55Pn1cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzdWRvKHBhcmFtczogU3Vkb1JlcXVlc3QpOiBQcm9taXNlPFN1ZG9SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PFN1ZG9SZXNwb25zZT4oYCR7QXBpVXJscy5TVURPX1VSTH1gLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY3VycmVudCB1c2VyIHZlcmlmaWNhdGlvbi5cbiAgICogQHBhcmFtIHtHZXRWZXJpZmljYXRpb25SZXF1ZXN0fSBwYXJhbXMgQSBHZXRWZXJpZmljYXRpb25SZXF1ZXN0IE9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxHZXRWZXJpZmljYXRpb25SZXNwb25zZT59IEEgUHJvbWlzZTxHZXRWZXJpZmljYXRpb25SZXNwb25zZT4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEN1clVzZXJWZXJpZmljYXRpb24ocGFyYW1zOiBHZXRWZXJpZmljYXRpb25SZXF1ZXN0KTogUHJvbWlzZTxHZXRWZXJpZmljYXRpb25SZXNwb25zZT4ge1xuICAgIHBhcmFtcy50YXJnZXQgPSAnQ1VSX1VTRVInXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8R2V0VmVyaWZpY2F0aW9uUmVzcG9uc2U+KEFwaVVybHMuVkVSSUZJQ0FUSU9OX1VSTCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB3aXRoQ2FwdGNoYTogdHJ1ZSxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIGNoYW5nZSBiaW5kZWQgcHJvdmlkZXIuXG4gICAqIEBwYXJhbSB7R2V0VmVyaWZpY2F0aW9uUmVxdWVzdH0gcGFyYW1zIEEgR2V0VmVyaWZpY2F0aW9uUmVxdWVzdCBPYmplY3QuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8R2V0VmVyaWZpY2F0aW9uUmVzcG9uc2U+fSBBIFByb21pc2U8R2V0VmVyaWZpY2F0aW9uUmVzcG9uc2U+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBjaGFuZ2VCaW5kZWRQcm92aWRlcihwYXJhbXM6IENoYW5nZUJpbmRlZFByb3ZpZGVyUmVxdWVzdCk6IFByb21pc2U8Q2hhbmdlQmluZGVkUHJvdmlkZXJSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PENoYW5nZUJpbmRlZFByb3ZpZGVyUmVzcG9uc2U+KGAke0FwaVVybHMuUFJPVklERVJfTElTVH0vJHtwYXJhbXMucHJvdmlkZXJfaWR9L3RyYW5zYCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiB7XG4gICAgICAgIHByb3ZpZGVyX3RyYW5zX3Rva2VuOiBwYXJhbXMudHJhbnNfdG9rZW4sXG4gICAgICB9LFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogUGF0Y2ggdGhlIHVzZXIgcHJvZmlsZS5cbiAgICogQHBhcmFtIHtVc2VyUHJvZmlsZX0gcGFyYW1zIEEgVXNlclByb2ZpbGUgT2JqZWN0LlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFVzZXJQcm9maWxlPn0gQSBQcm9taXNlPFVzZXJQcm9maWxlPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2V0VXNlclByb2ZpbGUocGFyYW1zOiBVc2VyUHJvZmlsZSk6IFByb21pc2U8VXNlclByb2ZpbGU+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxVc2VyUHJvZmlsZT4oQXBpVXJscy5VU0VSX1BSSUZJTEVfVVJMLCB7XG4gICAgICBtZXRob2Q6ICdQQVRDSCcsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXRjaCB0aGUgdXNlciBwcm9maWxlLlxuICAgKiBAcGFyYW0ge1F1ZXJ5VXNlclByb2ZpbGVSZXF9IGFwcGVuZGVkX3BhcmFtcyBBIFF1ZXJ5VXNlclByb2ZpbGVSZXEgT2JqZWN0LlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFVzZXJQcm9maWxlPn0gQSBQcm9taXNlPFVzZXJQcm9maWxlPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcXVlcnlVc2VyUHJvZmlsZShwYXJhbXM6IFF1ZXJ5VXNlclByb2ZpbGVSZXF1ZXN0KTogUHJvbWlzZTxRdWVyeVVzZXJQcm9maWxlUmVzcG9uc2U+IHtcbiAgICAvLyBsZXQgdXJsID0gbmV3IFVSTChBcGlVcmxzLlVTRVJfUVVFUllfVVJMKTtcbiAgICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHBhcmFtcyBhcyBhbnkpXG4gICAgLy8gdXJsLnNlYXJjaCA9IHNlYXJjaFBhcmFtcy50b1N0cmluZygpO1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PFF1ZXJ5VXNlclByb2ZpbGVSZXNwb25zZT4oYCR7QXBpVXJscy5VU0VSX1FVRVJZX1VSTH0/JHtzZWFyY2hQYXJhbXMudG9TdHJpbmcoKX1gLCB7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogc2V0Q3VzdG9tU2lnbkZ1bmMgc2V0IHRoZSBnZXQgdGlja2V0IGZ1bmN0aW9uXG4gICAqIEBwYXJhbSBnZXRUaWNrRm5cbiAgICovXG4gIHB1YmxpYyBzZXRDdXN0b21TaWduRnVuYyhnZXRUaWNrRm46IEdldEN1c3RvbVNpZ25UaWNrZXRGbikge1xuICAgIHRoaXMuZ2V0Q3VzdG9tU2lnblRpY2tldEZuID0gZ2V0VGlja0ZuXG4gIH1cblxuICAvKipcbiAgICogU2lnbkluV2l0aEN1c3RvbVRpY2tldCBjdXN0b20gc2lnbkluXG4gICAqIEBjb25zdHJ1Y3RvclxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNpZ25JbldpdGhDdXN0b21UaWNrZXQocGFyYW1zPzogeyB2ZXJzaW9uPzogc3RyaW5nIH0pOiBQcm9taXNlPENyZWRlbnRpYWxzPiB7XG4gICAgY29uc3QgY3VzdG9tVGlja2V0ID0gYXdhaXQgdGhpcy5nZXRDdXN0b21TaWduVGlja2V0Rm4oKVxuICAgIHJldHVybiB0aGlzLnNpZ25JbldpdGhQcm92aWRlcih7XG4gICAgICAuLi5wYXJhbXMsXG4gICAgICBwcm92aWRlcl9pZDogJ2N1c3RvbScsXG4gICAgICBwcm92aWRlcl90b2tlbjogY3VzdG9tVGlja2V0LFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgcGFzc3dvcmRcbiAgICogQHBhcmFtIHtSZXNldFBhc3N3b3JkUmVxdWVzdH0gcGFyYW1zXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKiBAbWVtYmVyb2YgQXV0aFxuICAgKi9cbiAgcHVibGljIGFzeW5jIHJlc2V0UGFzc3dvcmQocGFyYW1zOiBSZXNldFBhc3N3b3JkUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0KEFwaVVybHMuQVVUSF9SRVNFVF9QQVNTV09SRCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgICAvLyB3aXRoQ3JlZGVudGlhbHM6IHRydWVcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIGRldmljZSBhdXRob3JpemF0aW9uXG4gICAqIEBwYXJhbSB7RGV2aWNlQXV0aG9yaXplUmVxdWVzdH0gcGFyYW1zXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPERldmljZUF1dGhvcml6ZVJlc3BvbnNlPn1cbiAgICogQG1lbWJlcm9mIEF1dGhcbiAgICovXG4gIHB1YmxpYyBhc3luYyBkZXZpY2VBdXRob3JpemUocGFyYW1zOiBEZXZpY2VBdXRob3JpemVSZXF1ZXN0KTogUHJvbWlzZTxEZXZpY2VBdXRob3JpemVSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0KEFwaVVybHMuQVVUSF9HRVRfREVWSUNFX0NPREUsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keTogcGFyYW1zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY2hlY2tVc2VybmFtZShwYXJhbXM6IENoZWNrVXNlcm5hbWVSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3QoQXBpVXJscy5DSEVDS19VU0VSTkFNRSwge1xuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGNoZWNrSWZVc2VyRXhpc3QocGFyYW1zOiBDaGVja0lmVXNlckV4aXN0UmVxdWVzdCk6IFByb21pc2U8Q2hlY2tJZlVzZXJFeGlzdFJlc3BvbnNlPiB7XG4gICAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhwYXJhbXMgYXMgYW55KVxuXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8Q2hlY2tJZlVzZXJFeGlzdFJlc3BvbnNlPihgJHtBcGlVcmxzLkNIRUNLX0lGX1VTRVJfRVhJU1R9PyR7c2VhcmNoUGFyYW1zLnRvU3RyaW5nKCl9YCwge1xuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICB9KVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGxvZ2luU2NvcGUoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcuY3JlZGVudGlhbHNDbGllbnQuZ2V0U2NvcGUoKVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGxvZ2luR3JvdXBzKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcuY3JlZGVudGlhbHNDbGllbnQuZ2V0R3JvdXBzKClcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyByZWZyZXNoVG9rZW5Gb3JjZShwYXJhbXM6IHsgdmVyc2lvbj86IHN0cmluZyB9KSB7XG4gICAgY29uc3QgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5jb25maWcuY3JlZGVudGlhbHNDbGllbnQuZ2V0Q3JlZGVudGlhbHMoKVxuICAgIHJldHVybiBhd2FpdCB0aGlzLmNvbmZpZy5jcmVkZW50aWFsc0NsaWVudC5yZWZyZXNoVG9rZW4oe1xuICAgICAgLi4uY3JlZGVudGlhbHMsXG4gICAgICB2ZXJzaW9uOiBwYXJhbXM/LnZlcnNpb24gfHwgJ3YxJyxcbiAgICB9KVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldENyZWRlbnRpYWxzKCkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5jcmVkZW50aWFsc0NsaWVudC5nZXRDcmVkZW50aWFscygpXG4gIH1cblxuICAvKipcbiAgICogZ2V0IHB1YmxpYyBrZXkgZm9yIHJlcXVlc3QgcGFyYW1zIGVuY3J5cHRpb25cbiAgICogQHJldHVybnNcbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRQdWJsaWNLZXkoKTogUHJvbWlzZTxQdWJsaWNLZXk+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxQdWJsaWNLZXk+KEFwaVVybHNWMi5BVVRIX1BVQkxJQ19LRVksIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keToge30sXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBlbmNyeXB0IHJlcXVlc3QgcGFyYW1zXG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICogQHJldHVybnNcbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRFbmNyeXB0UGFyYW1zKHBhcmFtczogUmVjb3JkPGFueSwgYW55Pik6IFByb21pc2U8RW5jcnlwdFBhcmFtcz4ge1xuICAgIGNvbnN0IHBheWxvYWQgPSBkZWVwQ2xvbmUocGFyYW1zKVxuXG4gICAgaWYgKCFwYXlsb2FkLmlzRW5jcnlwdCkge1xuICAgICAgcmV0dXJuIHBhcmFtc1xuICAgIH1cblxuICAgIGxldCBwdWJsaWNLZXkgPSAnJ1xuICAgIGxldCBwdWJsaWNfa2V5X3RodW1icHJpbnQgPSAnJ1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuZ2V0UHVibGljS2V5KClcbiAgICAgIHB1YmxpY0tleSA9IHJlcy5wdWJsaWNfa2V5XG4gICAgICBwdWJsaWNfa2V5X3RodW1icHJpbnQgPSByZXMucHVibGljX2tleV90aHVtYnByaW50XG4gICAgfSBjYXRjaCAoZXJyb3IpIHt9XG5cbiAgICBpZiAoIXB1YmxpY0tleSB8fCAhcHVibGljX2tleV90aHVtYnByaW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3B1YmxpY19rZXkgb3IgcHVibGljX2tleV90aHVtYnByaW50IGlzIGVtcHR5JylcbiAgICB9XG5cbiAgICBkZWxldGUgcGF5bG9hZC5pc0VuY3J5cHRcblxuICAgIHJldHVybiB7XG4gICAgICBwYXJhbXM6IGdldEVuY3J5cHRJbmZvKHsgcHVibGljS2V5LCBwYXlsb2FkIH0pLFxuICAgICAgcHVibGljX2tleV90aHVtYnByaW50LFxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgcHJvdmlkZXIgc3ViIHR5cGVcbiAgICogQHJldHVybnNcbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRQcm92aWRlclN1YlR5cGUoKTogUHJvbWlzZTxQcm92aWRlclN1YlR5cGU+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxQcm92aWRlclN1YlR5cGU+KEFwaVVybHMuR0VUX1BST1ZJREVSX1RZUEUsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keToge1xuICAgICAgICBwcm92aWRlcl9pZDogJ3dlZGEnLFxuICAgICAgfSxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIGdldCBwcm92aWRlciBzdWIgdHlwZVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHVibGljIGFzeW5jIHZlcmlmeUNhcHRjaGFEYXRhKHsgdG9rZW4sIGtleSB9OiB7IHRva2VuOiBzdHJpbmc7IGtleTogc3RyaW5nIH0pIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDx7IGNhcHRjaGFfdG9rZW46IHN0cmluZzsgZXhwaXJlc19pbjogbnVtYmVyIH0+KEFwaVVybHMuVkVSSUZZX0NBUFRDSEFfREFUQV9VUkwsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keTogeyB0b2tlbiwga2V5IH0sXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IGZhbHNlLFxuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY3JlYXRlQ2FwdGNoYURhdGEoeyBzdGF0ZSwgcmVkaXJlY3RfdXJpID0gdW5kZWZpbmVkIH0pIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDx7IGNhcHRjaGFfdG9rZW46IHN0cmluZzsgZXhwaXJlc19pbjogbnVtYmVyIH0+KEFwaVVybHMuQ0FQVENIQV9EQVRBX1VSTCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiB7IHN0YXRlLCByZWRpcmVjdF91cmkgfSxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogZmFsc2UsXG4gICAgfSlcbiAgfVxufVxuIl19
796
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdXRoL2FwaXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVaLG1DQUE2QztBQW1EN0MsNkRBQTJFO0FBRTNFLDhDQUE0RDtBQUM1RCxrQ0FBb0M7QUFDcEMsNENBQWlEO0FBZ0JqRDtJQWtCRSxjQUFZLElBQWlCO1FBQ3JCLElBQUEsT0FBTyxHQUFLLElBQUksUUFBVCxDQUFTO1FBQ3RCLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQTtRQUN6QyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ2pCLElBQU0sV0FBVyxHQUFHO2dCQUNsQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ3pCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO2FBQ3RCLENBQUE7WUFDRCxZQUFZLEdBQUcsSUFBSSwyQkFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1NBQzdDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLElBQU0sV0FBVyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFBO1lBQzNELElBQU0sT0FBTyxHQUFHLElBQUksaUJBQU8sWUFDekIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQ3BCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxJQUNsQixJQUFJLENBQUMsY0FBYyxFQUN0QixDQUFBO1lBQ0YsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1NBQ3hDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRztZQUNaLFNBQVMsRUFBRSxJQUFJLENBQUMs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LFdBQUEsRUFBRSxvQkFBd0IsRUFBeEIsWUFBWSxtQkFBRyxTQUFTLEtBQUE7OztnQkFDOUQsV0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBZ0QsZ0JBQU8sQ0FBQyxnQkFBZ0IsRUFBRTt3QkFDbEcsTUFBTSxFQUFFLE1BQU07d0JBQ2QsSUFBSSxFQUFFLEVBQUUsS0FBSyxPQUFBLEVBQUUsWUFBWSxjQUFBLEVBQUU7d0JBQzdCLGVBQWUsRUFBRSxLQUFLO3FCQUN2QixDQUFDLEVBQUE7OztLQUNIO0lBTVksaUNBQWtCLEdBQS9CLFVBQWdDLE1BQW1DOzs7Z0JBQ2pFLFdBQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQStCLGdCQUFPLENBQUMsc0JBQXNCLEVBQUU7d0JBQ3ZGLE1BQU0sRUFBRSxNQUFNO3dCQUNkLElBQUksRUFBRSxNQUFNO3FCQUNiLENBQUMsRUFBQTs7O0tBQ0g7SUFNWSxtQ0FBb0IsR0FBakMsVUFBa0MsTUFBeUM7OztnQkFDekUsV0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBcUMsZ0JBQU8sQ0FBQyw2QkFBNkIsRUFBRTt3QkFDcEcsTUFBTSxFQUFFLE1BQU07d0JBQ2QsSUFBSSxFQUFFLE1BQU07cUJBQ2IsQ0FBQyxFQUFBOzs7S0FDSDtJQUNILFdBQUM7QUFBRCxDQUFDLEFBdnRCRCxJQXV0QkM7QUF2dEJZLG9CQUFJIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnXG5cbmltcG9ydCB7IEFwaVVybHMsIEFwaVVybHNWMiB9IGZyb20gJy4vY29uc3RzJ1xuaW1wb3J0IHtcbiAgR2V0VmVyaWZpY2F0aW9uUmVxdWVzdCxcbiAgR2V0VmVyaWZpY2F0aW9uUmVzcG9uc2UsXG4gIFVzZXJQcm9maWxlLFxuICBVc2VySW5mbyxcbiAgU2lnbkluUmVxdWVzdCxcbiAgU2lnblVwUmVxdWVzdCxcbiAgVmVyaWZ5UmVxdWVzdCxcbiAgVmVyaWZ5UmVzcG9uc2UsXG4gIEdlblByb3ZpZGVyUmVkaXJlY3RVcmlSZXF1ZXN0LFxuICBHZW5Qcm92aWRlclJlZGlyZWN0VXJpUmVzcG9uc2UsXG4gIEdyYW50UHJvdmlkZXJUb2tlblJlcXVlc3QsXG4gIEdyYW50UHJvdmlkZXJUb2tlblJlc3BvbnNlLFxuICBQYXRjaFByb3ZpZGVyVG9rZW5SZXF1ZXN0LFxuICBQYXRjaFByb3ZpZGVyVG9rZW5SZXNwb25zZSxcbiAgU2lnbkluV2l0aFByb3ZpZGVyUmVxdWVzdCxcbiAgQmluZFdpdGhQcm92aWRlclJlcXVlc3QsXG4gIFRyYW5zQnlQcm92aWRlclJlcXVlc3QsXG4gIEdyYW50VG9rZW5SZXF1ZXN0LFxuICBVc2VyUHJvZmlsZVByb3ZpZGVyLFxuICBVbmJpbmRQcm92aWRlclJlcXVlc3QsXG4gIENoZWNrUGFzc3dvcmRyUmVxdWVzdCxcbiAgQmluZFBob25lUmVxdWVzdCxcbiAgQmluZEVtYWlsUmVxdWVzdCxcbiAgU2V0UGFzc3dvcmRSZXF1ZXN0LFxuICBDaGFuZ2VCaW5kZWRQcm92aWRlclJlcXVlc3QsXG4gIENoYW5nZUJpbmRlZFByb3ZpZGVyUmVzcG9uc2UsXG4gIFVwZGF0ZVBhc3N3b3JkUmVxdWVzdCxcbiAgU3Vkb1Jlc3BvbnNlLFxuICBTdWRvUmVxdWVzdCxcbiAgR2V0Q3VzdG9tU2lnblRpY2tldEZuLFxuICBRdWVyeVVzZXJQcm9maWxlUmVxdWVzdCxcbiAgUXVlcnlVc2VyUHJvZmlsZVJlc3BvbnNlLFxuICBSZXNldFBhc3N3b3JkUmVxdWVzdCxcbiAgRGV2aWNlQXV0aG9yaXplUmVxdWVzdCxcbiAgRGV2aWNlQXV0aG9yaXplUmVzcG9uc2UsXG4gIENoZWNrVXNlcm5hbWVSZXF1ZXN0LFxuICBDaGVja0lmVXNlckV4aXN0UmVxdWVzdCxcbiAgQ2hlY2tJZlVzZXJFeGlzdFJlc3BvbnNlLFxuICBXaXRoU3Vkb1JlcXVlc3QsXG4gIFB1YmxpY0tleSxcbiAgRW5jcnlwdFBhcmFtcyxcbiAgUHJvdmlkZXJTdWJUeXBlLFxuICBHZXRNaW5pUHJvZ3JhbVFyQ29kZVJlcXVlc3QsXG4gIEdldE1pbmlQcm9ncmFtUXJDb2RlU3RhdHVzUmVxdWVzdCxcbiAgR2V0TWluaVByb2dyYW1RckNvZGVSZXNwb25zZSxcbiAgR2V0TWluaVByb2dyYW1RckNvZGVTdGF0dXNSZXNwb25zZSxcbiAgTW9kaWZ5VXNlckJhc2ljSW5mb1JlcXVlc3QsXG59IGZyb20gJy4vbW9kZWxzJ1xuaW1wb3J0IHsgU2ltcGxlU3RvcmFnZSwgUmVxdWVzdEZ1bmN0aW9uIH0gZnJvbSAnLi4vb2F1dGgyY2xpZW50L2ludGVyZmFjZSdcbmltcG9ydCB7IE9BdXRoMkNsaWVudCwgZGVmYXVsdFN0b3JhZ2UgfSBmcm9tICcuLi9vYXV0aDJjbGllbnQvb2F1dGgyY2xpZW50J1xuaW1wb3J0IHsgQ3JlZGVudGlhbHMgfSBmcm9tICcuLi9vYXV0aDJjbGllbnQvbW9kZWxzJ1xuaW1wb3J0IHsgQ2FwdGNoYSwgQ2FwdGNoYU9wdGlvbnMgfSBmcm9tICcuLi9jYXB0Y2hhL2NhcHRjaGEnXG5pbXBvcnQgeyBkZWVwQ2xvbmUgfSBmcm9tICcuLi91dGlscydcbmltcG9ydCB7IGdldEVuY3J5cHRJbmZvIH0gZnJvbSAnLi4vdXRpbHMvZW5jcnlwdCdcblxuZXhwb3J0IGludGVyZmFjZSBBdXRoT3B0aW9ucyB7XG4gIGFwaU9yaWdpbjogc3RyaW5nXG4gIGNsaWVudElkOiBzdHJpbmdcbiAgY3JlZGVudGlhbHNDbGllbnQ/OiBPQXV0aDJDbGllbnRcbiAgcmVxdWVzdD86IFJlcXVlc3RGdW5jdGlvblxuICBiYXNlUmVxdWVzdD86IFJlcXVlc3RGdW5jdGlvblxuICBzdG9yYWdlPzogU2ltcGxlU3RvcmFnZVxuICBhbm9ueW1vdXNTaWduSW5GdW5jPzogKENyZWRlbnRpYWxzKSA9PiBQcm9taXNlPENyZWRlbnRpYWxzIHwgdm9pZD5cbiAgY2FwdGNoYU9wdGlvbnM/OiBQYXJ0aWFsPENhcHRjaGFPcHRpb25zPlxufVxuXG4vKipcbiAqIEF1dGhcbiAqL1xuZXhwb3J0IGNsYXNzIEF1dGgge1xuICBwcml2YXRlIHN0YXRpYyBwYXJzZVBhcmFtc1RvU2VhcmNoKHBhcmFtczogYW55KTogc3RyaW5nIHtcbiAgICBPYmplY3Qua2V5cyhwYXJhbXMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgaWYgKCFwYXJhbXNba2V5XSkge1xuICAgICAgICBkZWxldGUgcGFyYW1zW2tleV1cbiAgICAgIH1cbiAgICB9KVxuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMocGFyYW1zIGFzIGFueSlcbiAgICByZXR1cm4gc2VhcmNoUGFyYW1zLnRvU3RyaW5nKClcbiAgfVxuXG4gIHByaXZhdGUgY29uZmlnOiBBdXRoT3B0aW9uc1xuICBwcml2YXRlIGdldEN1c3RvbVNpZ25UaWNrZXRGbj86IEdldEN1c3RvbVNpZ25UaWNrZXRGblxuXG4gIC8qKlxuICAgKiBjb25zdHJ1Y3RvclxuICAgKiBAcGFyYW0ge0F1dGhPcHRpb25zfSBvcHRzXG4gICAqL1xuICBjb25zdHJ1Y3RvcihvcHRzOiBBdXRoT3B0aW9ucykge1xuICAgIGxldCB7IHJlcXVlc3QgfSA9IG9wdHNcbiAgICBsZXQgb0F1dGgyQ2xpZW50ID0gb3B0cy5jcmVkZW50aWFsc0NsaWVudFxuICAgIGlmICghb0F1dGgyQ2xpZW50KSB7XG4gICAgICBjb25zdCBpbml0T3B0aW9ucyA9IHtcbiAgICAgICAgYXBpT3JpZ2luOiBvcHRzLmFwaU9yaWdpbixcbiAgICAgICAgY2xpZW50SWQ6IG9wdHMuY2xpZW50SWQsXG4gICAgICAgIHN0b3JhZ2U6IG9wdHMuc3RvcmFnZSxcbiAgICAgIH1cbiAgICAgIG9BdXRoMkNsaWVudCA9IG5ldyBPQXV0aDJDbGllbnQoaW5pdE9wdGlvbnMpXG4gICAgfVxuICAgIGlmICghcmVxdWVzdCkge1xuICAgICAgY29uc3QgYmFzZVJlcXVlc3QgPSBvQXV0aDJDbGllbnQucmVxdWVzdC5iaW5kKG9BdXRoMkNsaWVudClcbiAgICAgIGNvbnN0IGNhcHRjaGEgPSBuZXcgQ2FwdGNoYSh7XG4gICAgICAgIGNsaWVudElkOiBvcHRzLmNsaWVudElkLFxuICAgICAgICByZXF1ZXN0OiBiYXNlUmVxdWVzdCxcbiAgICAgICAgc3RvcmFnZTogb3B0cy5zdG9yYWdlLFxuICAgICAgICAuLi5vcHRzLmNhcHRjaGFPcHRpb25zLFxuICAgICAgfSlcbiAgICAgIHJlcXVlc3QgPSBjYXB0Y2hhLnJlcXVlc3QuYmluZChjYXB0Y2hhKVxuICAgIH1cbiAgICB0aGlzLmNvbmZpZyA9IHtcbiAgICAgIGFwaU9yaWdpbjogb3B0cy5hcGlPcmlnaW4sXG4gICAgICBjbGllbnRJZDogb3B0cy5jbGllbnRJZCxcbiAgICAgIHJlcXVlc3QsXG4gICAgICBjcmVkZW50aWFsc0NsaWVudDogb0F1dGgyQ2xpZW50LFxuICAgICAgc3RvcmFnZTogb3B0cy5zdG9yYWdlIHx8IGRlZmF1bHRTdG9yYWdlLFxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiDmoLnmja7niYjmnKzmoIfor4bvvIzlpITnkIblvoXor7fmsYLnmoR1cmzlkoxwYXJhbXNcbiAgICogQHBhcmFtIHBhcmFtc1xuICAgKiBAcGFyYW0ga2V5XG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwdWJsaWMgZ2V0UGFyYW1zQnlWZXJzaW9uKHBhcmFtczogYW55LCBrZXk6IHN0cmluZykge1xuICAgIGNvbnN0IHBhcmFtc1RlbXAgPSBkZWVwQ2xvbmUocGFyYW1zKVxuICAgIGNvbnN0IHVybCA9IHsgdjI6IEFwaVVybHNWMiB9W3BhcmFtc1RlbXA/LnZlcnNpb25dPy5ba2V5XSB8fCBBcGlVcmxzW2tleV1cblxuICAgIGlmIChwYXJhbXNUZW1wKSB7XG4gICAgICBkZWxldGUgcGFyYW1zVGVtcC52ZXJzaW9uXG4gICAgfVxuXG4gICAgcmV0dXJuIHsgcGFyYW1zOiBwYXJhbXNUZW1wLCB1cmwgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNpZ24gaW4uXG4gICAqIEBwYXJhbSB7U2lnbkluUmVxdWVzdH0gcGFyYW1zIEEgU2lnbkluUmVxdWVzdCBPYmplY3QuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8Q3JlZGVudGlhbHM+fSBBIFByb21pc2U8Q3JlZGVudGlhbHM+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzaWduSW4ocGFyYW1zOiBTaWduSW5SZXF1ZXN0KTogUHJvbWlzZTxDcmVkZW50aWFscz4ge1xuICAgIGNvbnN0IHZlcnNpb24gPSBwYXJhbXMudmVyc2lvbiB8fCAndjEnXG4gICAgY29uc3QgcmVzID0gdGhpcy5nZXRQYXJhbXNCeVZlcnNpb24ocGFyYW1zLCAnQVVUSF9TSUdOX0lOX1VSTCcpXG4gICAgaWYgKHJlcy5wYXJhbXMucXVlcnkpIHtcbiAgICAgIGRlbGV0ZSByZXMucGFyYW1zLnF1ZXJ5XG4gICAgfVxuXG4gICAgY29uc3QgYm9keSA9IGF3YWl0IHRoaXMuZ2V0RW5jcnlwdFBhcmFtcyhyZXMucGFyYW1zKVxuICAgIGNvbnN0IGNyZWRlbnRpYWxzOiBDcmVkZW50aWFscyA9IGF3YWl0IHRoaXMuY29uZmlnLnJlcXVlc3Q8Q3JlZGVudGlhbHM+KHJlcy51cmwsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keSxcbiAgICB9KVxuICAgIGF3YWl0IHRoaXMuY29uZmlnLmNyZWRlbnRpYWxzQ2xpZW50LnNldENyZWRlbnRpYWxzKHtcbiAgICAgIC4uLmNyZWRlbnRpYWxzLFxuICAgICAgdmVyc2lvbixcbiAgICB9KVxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoY3JlZGVudGlhbHMpXG4gIH1cblxuICAvKipcbiAgICogU2lnbiBpbiBBbm9ueW1vdXNseVxuICAgKiBAcmV0dXJuIHtQcm9taXNlPENyZWRlbnRpYWxzPn0gQSBQcm9taXNlPENyZWRlbnRpYWxzPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2lnbkluQW5vbnltb3VzbHkoZGF0YToge1xuICAgIHByb3ZpZGVyX3Rva2VuPzogc3RyaW5nXG4gIH0gPSB7fSwpOiBQcm9taXNlPENyZWRlbnRpYWxzPiB7XG4gICAgY29uc3QgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5jb25maWcucmVxdWVzdDxDcmVkZW50aWFscz4oQXBpVXJscy5BVVRIX1NJR05fSU5fQU5PTllNT1VTTFlfVVJMLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IGRhdGEsXG4gICAgfSlcbiAgICBhd2FpdCB0aGlzLmNvbmZpZy5jcmVkZW50aWFsc0NsaWVudC5zZXRDcmVkZW50aWFscyhjcmVkZW50aWFscylcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGNyZWRlbnRpYWxzKVxuICB9XG5cbiAgLyoqXG4gICAqIFNpZ24gdXAuXG4gICAqIEBwYXJhbSB7U2lnblVwUmVxdWVzdH0gcGFyYW1zIEEgU2lnblVwUmVxdWVzdCBPYmplY3QuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8Q3JlZGVudGlhbHM+fSBBIFByb21pc2U8Q3JlZGVudGlhbHM+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzaWduVXAocGFyYW1zOiBTaWduVXBSZXF1ZXN0KTogUHJvbWlzZTxDcmVkZW50aWFscz4ge1xuICAgIGNvbnN0IGRhdGE6IENyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5jb25maWcucmVxdWVzdDxDcmVkZW50aWFscz4oQXBpVXJscy5BVVRIX1NJR05fVVBfVVJMLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICB9KVxuICAgIGF3YWl0IHRoaXMuY29uZmlnLmNyZWRlbnRpYWxzQ2xpZW50LnNldENyZWRlbnRpYWxzKGRhdGEpXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShkYXRhKVxuICB9XG5cbiAgLyoqXG4gICAqIFNpZ24gb3V0LlxuICAgKiBAcmV0dXJuIHtPYmplY3R9IEEgUHJvbWlzZTx2b2lkPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2lnbk91dCgpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IGFjY2Vzc1Rva2VuOiBzdHJpbmcgPSBhd2FpdCB0aGlzLmNvbmZpZy5jcmVkZW50aWFsc0NsaWVudC5nZXRBY2Nlc3NUb2tlbigpXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuY29uZmlnLnJlcXVlc3QoQXBpVXJscy5BVVRIX1JFVk9LRV9VUkwsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keToge1xuICAgICAgICB0b2tlbjogYWNjZXNzVG9rZW4sXG4gICAgICB9LFxuICAgIH0pXG4gICAgYXdhaXQgdGhpcy5jb25maWcuY3JlZGVudGlhbHNDbGllbnQuc2V0Q3JlZGVudGlhbHMoKVxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZGF0YSlcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHZlcmlmaWNhdGlvbi5cbiAgICogQHBhcmFtIHtHZXRWZXJpZmljYXRpb25SZXF1ZXN0fSBwYXJhbXMgQSBHZXRWZXJpZmljYXRpb25SZXF1ZXN0IE9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxHZXRWZXJpZmljYXRpb25SZXNwb25zZT59IEEgUHJvbWlzZTxHZXRWZXJpZmljYXRpb25SZXNwb25zZT4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFZlcmlmaWNhdGlvbihwYXJhbXM6IEdldFZlcmlmaWNhdGlvblJlcXVlc3QpOiBQcm9taXNlPEdldFZlcmlmaWNhdGlvblJlc3BvbnNlPiB7XG4gICAgbGV0IHdpdGhDcmVkZW50aWFscyA9IGZhbHNlXG4gICAgLy8g5Y+R6YCB55+t5L+h5pe277yM5aaC5p6c5pe257uZ5b2T5YmN55So5oi35Y+R77yM5YiZ6ZyA6KaB5bim5LiK6Ym05p2D5L+h5oGvXG4gICAgaWYgKHBhcmFtcy50YXJnZXQgPT09ICdDVVJfVVNFUicpIHtcbiAgICAgIHdpdGhDcmVkZW50aWFscyA9IHRydWVcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaGFzTG9naW4gPSBhd2FpdCB0aGlzLmhhc0xvZ2luU3RhdGUoKVxuICAgICAgaWYgKGhhc0xvZ2luKSB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFscyA9IHRydWVcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8R2V0VmVyaWZpY2F0aW9uUmVzcG9uc2U+KEFwaVVybHMuVkVSSUZJQ0FUSU9OX1VSTCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgICB3aXRoQ2FwdGNoYTogdHJ1ZSxcbiAgICAgIHdpdGhDcmVkZW50aWFscyxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqICBWZXJpZnkgdGhlIGNvZGVcbiAgICogQHBhcmFtIHtWZXJpZnlSZXF1ZXN0fSBwYXJhbXMgQSBWZXJpZnlSZXF1ZXN0IE9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxWZXJpZnlSZXNwb25zZT59IEEgUHJvbWlzZTxWZXJpZnlSZXNwb25zZT4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHZlcmlmeShwYXJhbXM6IFZlcmlmeVJlcXVlc3QpOiBQcm9taXNlPFZlcmlmeVJlc3BvbnNlPiB7XG4gICAgY29uc3QgcmVzID0gdGhpcy5nZXRQYXJhbXNCeVZlcnNpb24ocGFyYW1zLCAnVkVSSUZZX1VSTCcpXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuY29uZmlnLnJlcXVlc3Q8VmVyaWZ5UmVzcG9uc2U+KHJlcy51cmwsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keTogcmVzLnBhcmFtcyxcbiAgICB9KVxuXG4gICAgaWYgKHBhcmFtcz8udmVyc2lvbiA9PT0gJ3YyJykge1xuICAgICAgYXdhaXQgdGhpcy5jb25maWcuY3JlZGVudGlhbHNDbGllbnQuc2V0Q3JlZGVudGlhbHMoe1xuICAgICAgICAuLi5kYXRhLFxuICAgICAgICB2ZXJzaW9uOiAndjInLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gZGF0YVxuICB9XG5cbiAgLyoqXG4gICAqIEdlbiBwcm92aWRlciByZWRpcmVjdCB1cmkuXG4gICAqIEBwYXJhbSB7R2VuUHJvdmlkZXJSZWRpcmVjdFVyaVJlcXVlc3R9IHBhcmFtcyBBIEdlblByb3ZpZGVyUmVkaXJlY3RVcmlSZXF1ZXN0IG9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxHZW5Qcm92aWRlclJlZGlyZWN0VXJpUmVzcG9uc2U+fSBBIFByb21pc2U8R2VuUHJvdmlkZXJSZWRpcmVjdFVyaVJlc3BvbnNlPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2VuUHJvdmlkZXJSZWRpcmVjdFVyaShwYXJhbXM6IEdlblByb3ZpZGVyUmVkaXJlY3RVcmlSZXF1ZXN0KTogUHJvbWlzZTxHZW5Qcm92aWRlclJlZGlyZWN0VXJpUmVzcG9uc2U+IHtcbiAgICBsZXQgdXJsID0gYCR7QXBpVXJscy5QUk9WSURFUl9VUklfVVJMfT9jbGllbnRfaWQ9JHt0aGlzLmNvbmZpZy5jbGllbnRJZH0mcHJvdmlkZXJfaWQ9JHtcbiAgICAgIHBhcmFtcy5wcm92aWRlcl9pZFxuICAgIH0mcmVkaXJlY3RfdXJpPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHBhcmFtcy5wcm92aWRlcl9yZWRpcmVjdF91cmkpfSZzdGF0ZT0ke3BhcmFtcy5zdGF0ZX1gXG4gICAgY29uc3QgeyBvdGhlcl9wYXJhbXM6IG90aGVyUGFyYW1zIH0gPSBwYXJhbXNcbiAgICBpZiAob3RoZXJQYXJhbXMpIHtcbiAgICAgIGlmICh0eXBlb2Ygb3RoZXJQYXJhbXMuc2lnbl9vdXRfdXJpID09PSAnc3RyaW5nJyAmJiBvdGhlclBhcmFtcy5zaWduX291dF91cmkubGVuZ3RoID4gMCkge1xuICAgICAgICB1cmwgKz0gYCZvdGhlcl9wYXJhbXNbc2lnbl9vdXRfdXJpXT0ke290aGVyUGFyYW1zLnNpZ25fb3V0X3VyaX1gXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PEdlblByb3ZpZGVyUmVkaXJlY3RVcmlSZXNwb25zZT4odXJsLCB7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgcHJvdmlkZXIgdG9rZW4uXG4gICAqIEBwYXJhbSB7R3JhbnRQcm92aWRlclRva2VuUmVxdWVzdH0gcGFyYW1zIEEgR3JhbnRQcm92aWRlclRva2VuUmVxdWVzdCBvYmplY3QuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8R3JhbnRQcm92aWRlclRva2VuUmVzcG9uc2U+fSBBIFByb21pc2U8R3JhbnRQcm92aWRlclRva2VuUmVzcG9uc2U+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBncmFudFByb3ZpZGVyVG9rZW4ocGFyYW1zOiBHcmFudFByb3ZpZGVyVG9rZW5SZXF1ZXN0KTogUHJvbWlzZTxHcmFudFByb3ZpZGVyVG9rZW5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PEdyYW50UHJvdmlkZXJUb2tlblJlc3BvbnNlPihBcGlVcmxzLlBST1ZJREVSX1RPS0VOX1VSTCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCBwcm92aWRlciB0b2tlbi5cbiAgICogQHBhcmFtIHtQYXRjaFByb3ZpZGVyVG9rZW5SZXF1ZXN0fSBwYXJhbXMgQSBQYXRjaFByb3ZpZGVyVG9rZW5SZXF1ZXN0IG9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxQYXRjaFByb3ZpZGVyVG9rZW5SZXNwb25zZT59IEEgUHJvbWlzZTxQYXRjaFByb3ZpZGVyVG9rZW5SZXNwb25zZT4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHBhdGNoUHJvdmlkZXJUb2tlbihwYXJhbXM6IFBhdGNoUHJvdmlkZXJUb2tlblJlcXVlc3QpOiBQcm9taXNlPFBhdGNoUHJvdmlkZXJUb2tlblJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8UGF0Y2hQcm92aWRlclRva2VuUmVzcG9uc2U+KEFwaVVybHMuUFJPVklERVJfVE9LRU5fVVJMLCB7XG4gICAgICBtZXRob2Q6ICdQQVRDSCcsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduaW4gd2l0aCBwcm92aWRlciByZXF1ZXN0LlxuICAgKiBAcGFyYW0ge1NpZ25JbldpdGhQcm92aWRlclJlcXVlc3R9IHBhcmFtcyBBIFNpZ25JbldpdGhQcm92aWRlclJlcXVlc3Qgb2JqZWN0LlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPENyZWRlbnRpYWxzPn0gQSBQcm9taXNlPENyZWRlbnRpYWxzPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2lnbkluV2l0aFByb3ZpZGVyKHBhcmFtczogU2lnbkluV2l0aFByb3ZpZGVyUmVxdWVzdCk6IFByb21pc2U8Q3JlZGVudGlhbHM+IHtcbiAgICBjb25zdCByZXMgPSB0aGlzLmdldFBhcmFtc0J5VmVyc2lvbihwYXJhbXMsICdBVVRIX1NJR05fSU5fV0lUSF9QUk9WSURFUl9VUkwnKVxuICAgIGNvbnN0IGNyZWRlbnRpYWxzOiBDcmVkZW50aWFscyA9IGF3YWl0IHRoaXMuY29uZmlnLnJlcXVlc3Q8Q3JlZGVudGlhbHM+KHJlcy51cmwsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keTogcmVzLnBhcmFtcyxcbiAgICB9KVxuICAgIGF3YWl0IHRoaXMuY29uZmlnLmNyZWRlbnRpYWxzQ2xpZW50LnNldENyZWRlbnRpYWxzKHtcbiAgICAgIC4uLmNyZWRlbnRpYWxzLFxuICAgICAgdmVyc2lvbjogcGFyYW1zPy52ZXJzaW9uIHx8ICd2MScsXG4gICAgfSlcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGNyZWRlbnRpYWxzKVxuICB9XG5cbiAgLyoqXG4gICAqIHNpZ24gaW4gd2l0aCB3ZWNoYXQgaWRlbmRpZnlcbiAgICog6ZyA6KaB57uT5ZCIIGh0dHAgb3ZlcmNhbGxGdW5jdGlvbiDkvb/nlKhcbiAgICovXG4gIHB1YmxpYyBhc3luYyBzaWduSW5XaXRoV2VjaGF0KHBhcmFtczogYW55ID0ge30pOiBQcm9taXNlPENyZWRlbnRpYWxzPiB7XG4gICAgY29uc3QgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5jb25maWcucmVxdWVzdDxDcmVkZW50aWFscz4oQXBpVXJscy5BVVRIX1NJR05fSU5fV0lUSF9XRUNIQVRfVVJMLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICB9KVxuICAgIGF3YWl0IHRoaXMuY29uZmlnLmNyZWRlbnRpYWxzQ2xpZW50LnNldENyZWRlbnRpYWxzKGNyZWRlbnRpYWxzKVxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoY3JlZGVudGlhbHMpXG4gIH1cblxuICAvKipcbiAgICogQmluZCB3aXRoIHByb3ZpZGVyXG4gICAqIEBwYXJhbSB7QmluZFdpdGhQcm92aWRlclJlcXVlc3R9IHBhcmFtcyBBIEJpbmRXaXRoUHJvdmlkZXJSZXF1ZXN0IG9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn0gQSBQcm9taXNlPGFueT4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGJpbmRXaXRoUHJvdmlkZXIocGFyYW1zOiBCaW5kV2l0aFByb3ZpZGVyUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PGFueT4oQXBpVXJscy5QUk9WSURFUl9CSU5EX1VSTCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHVzZXIgcHJvZmlsZS5cbiAgICogQHJldHVybiB7UHJvbWlzZTxVc2VyUHJvZmlsZT59IEEgUHJvbWlzZTxVc2VyUHJvZmlsZT4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFVzZXJQcm9maWxlKHBhcmFtczogeyB2ZXJzaW9uPzogc3RyaW5nIH0pOiBQcm9taXNlPFVzZXJQcm9maWxlPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VXNlckluZm8ocGFyYW1zKVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgdXNlciBpbmZvLlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFVzZXJJbmZvPn0gQSBQcm9taXNlPFVzZXJQcm9maWxlPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0VXNlckluZm8ocGFyYW1zOiB7IHZlcnNpb24/OiBzdHJpbmc7IHF1ZXJ5Pzogc3RyaW5nIH0gPSB7fSk6IFByb21pc2U8VXNlckluZm8+IHtcbiAgICBjb25zdCByZXMgPSB0aGlzLmdldFBhcmFtc0J5VmVyc2lvbihwYXJhbXMsICdVU0VSX01FX1VSTCcpXG5cbiAgICBpZiAocmVzLnBhcmFtcz8ucXVlcnkpIHtcbiAgICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMocmVzLnBhcmFtcy5xdWVyeSBhcyBhbnkpXG4gICAgICByZXMudXJsICs9IGA/JHtzZWFyY2hQYXJhbXMudG9TdHJpbmcoKX1gXG4gICAgfVxuXG4gICAgY29uc3QgdXNlckluZm8gPSBhd2FpdCB0aGlzLmNvbmZpZy5yZXF1ZXN0PFVzZXJJbmZvPihyZXMudXJsLCB7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pXG5cbiAgICBpZiAodXNlckluZm8uc3ViKSB7XG4gICAgICB1c2VySW5mby51aWQgPSB1c2VySW5mby5zdWJcbiAgICB9XG5cbiAgICByZXR1cm4gdXNlckluZm9cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHVzZXIgaW5mbyBieSB3ZWRhIHBsdWdpbi5cbiAgICogQHJldHVybiB7UHJvbWlzZTxhbnk+fSBBIFByb21pc2U8YW55PiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0V2VkYVVzZXJJbmZvKCk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgdXNlckluZm8gPSBhd2FpdCB0aGlzLmNvbmZpZy5yZXF1ZXN0PGFueT4oQXBpVXJscy5XRURBX1VTRVJfVVJMLCB7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pXG4gICAgcmV0dXJuIHVzZXJJbmZvXG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIG1lXG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICovXG4gIHB1YmxpYyBhc3luYyBkZWxldGVNZShwYXJhbXM6IFdpdGhTdWRvUmVxdWVzdCk6IFByb21pc2U8VXNlclByb2ZpbGU+IHtcbiAgICBjb25zdCByZXMgPSB0aGlzLmdldFBhcmFtc0J5VmVyc2lvbihwYXJhbXMsICdVU0VSX01FX1VSTCcpXG4gICAgY29uc3QgdXJsID0gYCR7cmVzLnVybH0/JHtBdXRoLnBhcnNlUGFyYW1zVG9TZWFyY2gocmVzLnBhcmFtcyl9YFxuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PFVzZXJQcm9maWxlPih1cmwsIHtcbiAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBoYXNMb2dpblN0YXRlIGNoZWNrIGlmIGhhcyBsb2dpbiBzdGF0ZVxuICAgKiBAcmV0dXJuIHtQcm9taXNlPGJvb2xlYW4+fSBBIFByb21pc2U8Ym9vbGVhbj4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGhhc0xvZ2luU3RhdGUoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuY29uZmlnLmNyZWRlbnRpYWxzQ2xpZW50LmdldEFjY2Vzc1Rva2VuKClcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBoYXNMb2dpblN0YXRlU3luYygpOiBDcmVkZW50aWFscyB8IG51bGwge1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gdGhpcy5jb25maWcuY3JlZGVudGlhbHNDbGllbnQuZ2V0Q3JlZGVudGlhbHNTeW5jKClcbiAgICByZXR1cm4gY3JlZGVudGlhbHNcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRMb2dpblN0YXRlKCk6IFByb21pc2U8Q3JlZGVudGlhbHMgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmNyZWRlbnRpYWxzQ2xpZW50LmdldENyZWRlbnRpYWxzQXN5bmMoKVxuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zIGJ5IHByb3ZpZGVyLlxuICAgKiBAcGFyYW0ge1RyYW5zQnlQcm92aWRlclJlcXVlc3R9IHBhcmFtcyBBIFRyYW5zQnlQcm92aWRlclJlcXVlc3Qgb2JqZWN0LlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPENyZWRlbnRpYWxzPn0gQSBQcm9taXNlPENyZWRlbnRpYWxzPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgdHJhbnNCeVByb3ZpZGVyKHBhcmFtczogVHJhbnNCeVByb3ZpZGVyUmVxdWVzdCk6IFByb21pc2U8Q3JlZGVudGlhbHM+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxDcmVkZW50aWFscz4oQXBpVXJscy5VU0VSX1RSQU5TX0JZX1BST1ZJREVSX1VSTCwge1xuICAgICAgbWV0aG9kOiAnUEFUQ0gnLFxuICAgICAgYm9keTogcGFyYW1zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgdG9rZW4uXG4gICAqIEBwYXJhbSB7R3JhbnRUb2tlblJlcXVlc3R9IHBhcmFtcyBBIEdyYW50VG9rZW5SZXF1ZXN0IG9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxDcmVkZW50aWFscz59IEEgUHJvbWlzZTxDcmVkZW50aWFscz4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdyYW50VG9rZW4ocGFyYW1zOiBHcmFudFRva2VuUmVxdWVzdCk6IFByb21pc2U8Q3JlZGVudGlhbHM+IHtcbiAgICBjb25zdCByZXMgPSB0aGlzLmdldFBhcmFtc0J5VmVyc2lvbihwYXJhbXMsICdBVVRIX1RPS0VOX1VSTCcpXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8Q3JlZGVudGlhbHM+KHJlcy51cmwsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keTogcmVzLnBhcmFtcyxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcHJvdmlkZSBsaXN0LlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFVzZXJQcm9maWxlUHJvdmlkZXI+fSBBIFByb21pc2U8VXNlclByb2ZpbGVQcm92aWRlcj4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFByb3ZpZGVycygpOiBQcm9taXNlPFVzZXJQcm9maWxlUHJvdmlkZXI+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxVc2VyUHJvZmlsZVByb3ZpZGVyPihBcGlVcmxzLlBST1ZJREVSX0xJU1QsIHtcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiB1bmJpbmQgcHJvdmlkZXIuXG4gICAqIEBwYXJhbSB7VW5iaW5kUHJvdmlkZXJSZXF1ZXN0fSBwYXJhbXNcbiAgICogQHJldHVybiB7UHJvbWlzZTxhbnk+fVxuICAgKi9cbiAgcHVibGljIGFzeW5jIHVuYmluZFByb3ZpZGVyKHBhcmFtczogVW5iaW5kUHJvdmlkZXJSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8YW55PihgJHtBcGlVcmxzLlBST1ZJREVSX1VOQklORF9VUkx9LyR7cGFyYW1zLnByb3ZpZGVyX2lkfWAsIHtcbiAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBjaGVjayBQYXNzd29yZC5cbiAgICogQHBhcmFtIHtDaGVja1Bhc3N3b3JkclJlcXVlc3R9IHBhcmFtc1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPGFueT59XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2hlY2tQYXNzd29yZChwYXJhbXM6IENoZWNrUGFzc3dvcmRyUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PGFueT4oYCR7QXBpVXJscy5DSEVDS19QV0RfVVJMfWAsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgYm9keTogcGFyYW1zLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogY2hlY2sgUGFzc3dvcmQuXG4gICAqIEBwYXJhbSB7Q2hlY2tQYXNzd29yZHJSZXF1ZXN0fSBwYXJhbXNcbiAgICogQHJldHVybiB7UHJvbWlzZTxhbnk+fVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGJpbmRQaG9uZShwYXJhbXM6IEJpbmRQaG9uZVJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxhbnk+KGAke0FwaVVybHMuQklORF9DT05UQUNUX1VSTH1gLCB7XG4gICAgICBtZXRob2Q6ICdQQVRDSCcsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBjaGVjayBQYXNzd29yZC5cbiAgICogQHBhcmFtIHtDaGVja1Bhc3N3b3JkclJlcXVlc3R9IHBhcmFtc1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPGFueT59XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgYmluZEVtYWlsKHBhcmFtczogQmluZEVtYWlsUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PGFueT4oYCR7QXBpVXJscy5CSU5EX0NPTlRBQ1RfVVJMfWAsIHtcbiAgICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCBQYXNzd29yZC5cbiAgICogQHBhcmFtIHtTZXRQYXNzd29yZHJSZXF1ZXN0fSBwYXJhbXNcbiAgICogQHJldHVybiB7UHJvbWlzZTxhbnk+fVxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNldFBhc3N3b3JkKHBhcmFtczogU2V0UGFzc3dvcmRSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8YW55PihgJHtBcGlVcmxzLkFVVEhfU0VUX1BBU1NXT1JEfWAsIHtcbiAgICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIHVwZGF0ZVBhc3N3b3JkQnlPbGQg5L2/55So5pen5a+G56CB5L+u5pS55a+G56CB77yM5aaC5p6c5bey57uP57uR5a6a5omL5py65Y+377yM6K+35YWI77yac3Vkb++8jOWGjeS/ruaUueWvhueggVxuICAgKiBAcGFyYW0ge1NldFBhc3N3b3JkclJlcXVlc3R9IHBhcmFtc1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPGFueT59XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgdXBkYXRlUGFzc3dvcmRCeU9sZChwYXJhbXM6IFVwZGF0ZVBhc3N3b3JkUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHN1ZG9Ub2tlbiA9IGF3YWl0IHRoaXMuc3Vkbyh7IHBhc3N3b3JkOiBwYXJhbXMub2xkX3Bhc3N3b3JkIH0pXG4gICAgcmV0dXJuIHRoaXMuc2V0UGFzc3dvcmQoe1xuICAgICAgc3Vkb190b2tlbjogc3Vkb1Rva2VuLnN1ZG9fdG9rZW4sXG4gICAgICBuZXdfcGFzc3dvcmQ6IHBhcmFtcy5uZXdfcGFzc3dvcmQsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBzdWRvXG4gICAqIEBwYXJhbSB7c3Vkb30gcGFyYW1zXG4gICAqIEByZXR1cm4ge1Byb21pc2U8YW55Pn1cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzdWRvKHBhcmFtczogU3Vkb1JlcXVlc3QpOiBQcm9taXNlPFN1ZG9SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PFN1ZG9SZXNwb25zZT4oYCR7QXBpVXJscy5TVURPX1VSTH1gLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY3VycmVudCB1c2VyIHZlcmlmaWNhdGlvbi5cbiAgICogQHBhcmFtIHtHZXRWZXJpZmljYXRpb25SZXF1ZXN0fSBwYXJhbXMgQSBHZXRWZXJpZmljYXRpb25SZXF1ZXN0IE9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxHZXRWZXJpZmljYXRpb25SZXNwb25zZT59IEEgUHJvbWlzZTxHZXRWZXJpZmljYXRpb25SZXNwb25zZT4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEN1clVzZXJWZXJpZmljYXRpb24ocGFyYW1zOiBHZXRWZXJpZmljYXRpb25SZXF1ZXN0KTogUHJvbWlzZTxHZXRWZXJpZmljYXRpb25SZXNwb25zZT4ge1xuICAgIHBhcmFtcy50YXJnZXQgPSAnQ1VSX1VTRVInXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8R2V0VmVyaWZpY2F0aW9uUmVzcG9uc2U+KEFwaVVybHMuVkVSSUZJQ0FUSU9OX1VSTCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB3aXRoQ2FwdGNoYTogdHJ1ZSxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIGNoYW5nZSBiaW5kZWQgcHJvdmlkZXIuXG4gICAqIEBwYXJhbSB7R2V0VmVyaWZpY2F0aW9uUmVxdWVzdH0gcGFyYW1zIEEgR2V0VmVyaWZpY2F0aW9uUmVxdWVzdCBPYmplY3QuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8R2V0VmVyaWZpY2F0aW9uUmVzcG9uc2U+fSBBIFByb21pc2U8R2V0VmVyaWZpY2F0aW9uUmVzcG9uc2U+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBjaGFuZ2VCaW5kZWRQcm92aWRlcihwYXJhbXM6IENoYW5nZUJpbmRlZFByb3ZpZGVyUmVxdWVzdCk6IFByb21pc2U8Q2hhbmdlQmluZGVkUHJvdmlkZXJSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PENoYW5nZUJpbmRlZFByb3ZpZGVyUmVzcG9uc2U+KGAke0FwaVVybHMuUFJPVklERVJfTElTVH0vJHtwYXJhbXMucHJvdmlkZXJfaWR9L3RyYW5zYCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiB7XG4gICAgICAgIHByb3ZpZGVyX3RyYW5zX3Rva2VuOiBwYXJhbXMudHJhbnNfdG9rZW4sXG4gICAgICB9LFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogUGF0Y2ggdGhlIHVzZXIgcHJvZmlsZS5cbiAgICogQHBhcmFtIHtVc2VyUHJvZmlsZX0gcGFyYW1zIEEgVXNlclByb2ZpbGUgT2JqZWN0LlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFVzZXJQcm9maWxlPn0gQSBQcm9taXNlPFVzZXJQcm9maWxlPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2V0VXNlclByb2ZpbGUocGFyYW1zOiBVc2VyUHJvZmlsZSk6IFByb21pc2U8VXNlclByb2ZpbGU+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxVc2VyUHJvZmlsZT4oQXBpVXJscy5VU0VSX1BSSUZJTEVfVVJMLCB7XG4gICAgICBtZXRob2Q6ICdQQVRDSCcsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgdXNlciBiYXNpYyBpbmZvXG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgdXBkYXRlVXNlckJhc2ljSW5mbyhwYXJhbXM6IE1vZGlmeVVzZXJCYXNpY0luZm9SZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3QoQXBpVXJscy5VU0VSX0JBU0lDX0VESVRfVVJMLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFBhdGNoIHRoZSB1c2VyIHByb2ZpbGUuXG4gICAqIEBwYXJhbSB7UXVlcnlVc2VyUHJvZmlsZVJlcX0gYXBwZW5kZWRfcGFyYW1zIEEgUXVlcnlVc2VyUHJvZmlsZVJlcSBPYmplY3QuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8VXNlclByb2ZpbGU+fSBBIFByb21pc2U8VXNlclByb2ZpbGU+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBxdWVyeVVzZXJQcm9maWxlKHBhcmFtczogUXVlcnlVc2VyUHJvZmlsZVJlcXVlc3QpOiBQcm9taXNlPFF1ZXJ5VXNlclByb2ZpbGVSZXNwb25zZT4ge1xuICAgIC8vIGxldCB1cmwgPSBuZXcgVVJMKEFwaVVybHMuVVNFUl9RVUVSWV9VUkwpO1xuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMocGFyYW1zIGFzIGFueSlcbiAgICAvLyB1cmwuc2VhcmNoID0gc2VhcmNoUGFyYW1zLnRvU3RyaW5nKCk7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8UXVlcnlVc2VyUHJvZmlsZVJlc3BvbnNlPihgJHtBcGlVcmxzLlVTRVJfUVVFUllfVVJMfT8ke3NlYXJjaFBhcmFtcy50b1N0cmluZygpfWAsIHtcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBzZXRDdXN0b21TaWduRnVuYyBzZXQgdGhlIGdldCB0aWNrZXQgZnVuY3Rpb25cbiAgICogQHBhcmFtIGdldFRpY2tGblxuICAgKi9cbiAgcHVibGljIHNldEN1c3RvbVNpZ25GdW5jKGdldFRpY2tGbjogR2V0Q3VzdG9tU2lnblRpY2tldEZuKSB7XG4gICAgdGhpcy5nZXRDdXN0b21TaWduVGlja2V0Rm4gPSBnZXRUaWNrRm5cbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduSW5XaXRoQ3VzdG9tVGlja2V0IGN1c3RvbSBzaWduSW5cbiAgICogQGNvbnN0cnVjdG9yXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2lnbkluV2l0aEN1c3RvbVRpY2tldChwYXJhbXM/OiB7IHZlcnNpb24/OiBzdHJpbmcgfSk6IFByb21pc2U8Q3JlZGVudGlhbHM+IHtcbiAgICBjb25zdCBjdXN0b21UaWNrZXQgPSBhd2FpdCB0aGlzLmdldEN1c3RvbVNpZ25UaWNrZXRGbigpXG4gICAgcmV0dXJuIHRoaXMuc2lnbkluV2l0aFByb3ZpZGVyKHtcbiAgICAgIC4uLnBhcmFtcyxcbiAgICAgIHByb3ZpZGVyX2lkOiAnY3VzdG9tJyxcbiAgICAgIHByb3ZpZGVyX3Rva2VuOiBjdXN0b21UaWNrZXQsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCBwYXNzd29yZFxuICAgKiBAcGFyYW0ge1Jlc2V0UGFzc3dvcmRSZXF1ZXN0fSBwYXJhbXNcbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gICAqIEBtZW1iZXJvZiBBdXRoXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVzZXRQYXNzd29yZChwYXJhbXM6IFJlc2V0UGFzc3dvcmRSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3QoQXBpVXJscy5BVVRIX1JFU0VUX1BBU1NXT1JELCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICAgIC8vIHdpdGhDcmVkZW50aWFsczogdHJ1ZVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogZGV2aWNlIGF1dGhvcml6YXRpb25cbiAgICogQHBhcmFtIHtEZXZpY2VBdXRob3JpemVSZXF1ZXN0fSBwYXJhbXNcbiAgICogQHJldHVybnMge1Byb21pc2U8RGV2aWNlQXV0aG9yaXplUmVzcG9uc2U+fVxuICAgKiBAbWVtYmVyb2YgQXV0aFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGRldmljZUF1dGhvcml6ZShwYXJhbXM6IERldmljZUF1dGhvcml6ZVJlcXVlc3QpOiBQcm9taXNlPERldmljZUF1dGhvcml6ZVJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3QoQXBpVXJscy5BVVRIX0dFVF9ERVZJQ0VfQ09ERSwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSlcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjaGVja1VzZXJuYW1lKHBhcmFtczogQ2hlY2tVc2VybmFtZVJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdChBcGlVcmxzLkNIRUNLX1VTRVJOQU1FLCB7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgYm9keTogcGFyYW1zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY2hlY2tJZlVzZXJFeGlzdChwYXJhbXM6IENoZWNrSWZVc2VyRXhpc3RSZXF1ZXN0KTogUHJvbWlzZTxDaGVja0lmVXNlckV4aXN0UmVzcG9uc2U+IHtcbiAgICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHBhcmFtcyBhcyBhbnkpXG5cbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxDaGVja0lmVXNlckV4aXN0UmVzcG9uc2U+KGAke0FwaVVybHMuQ0hFQ0tfSUZfVVNFUl9FWElTVH0/JHtzZWFyY2hQYXJhbXMudG9TdHJpbmcoKX1gLCB7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbG9naW5TY29wZSgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5jcmVkZW50aWFsc0NsaWVudC5nZXRTY29wZSgpXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbG9naW5Hcm91cHMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5jcmVkZW50aWFsc0NsaWVudC5nZXRHcm91cHMoKVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHJlZnJlc2hUb2tlbkZvcmNlKHBhcmFtczogeyB2ZXJzaW9uPzogc3RyaW5nIH0pIHtcbiAgICBjb25zdCBjcmVkZW50aWFsczogQ3JlZGVudGlhbHMgPSBhd2FpdCB0aGlzLmNvbmZpZy5jcmVkZW50aWFsc0NsaWVudC5nZXRDcmVkZW50aWFscygpXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY29uZmlnLmNyZWRlbnRpYWxzQ2xpZW50LnJlZnJlc2hUb2tlbih7XG4gICAgICAuLi5jcmVkZW50aWFscyxcbiAgICAgIHZlcnNpb246IHBhcmFtcz8udmVyc2lvbiB8fCAndjEnLFxuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0Q3JlZGVudGlhbHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmNyZWRlbnRpYWxzQ2xpZW50LmdldENyZWRlbnRpYWxzKClcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgcHVibGljIGtleSBmb3IgcmVxdWVzdCBwYXJhbXMgZW5jcnlwdGlvblxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFB1YmxpY0tleSgpOiBQcm9taXNlPFB1YmxpY0tleT4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PFB1YmxpY0tleT4oQXBpVXJsc1YyLkFVVEhfUFVCTElDX0tFWSwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiB7fSxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIGVuY3J5cHQgcmVxdWVzdCBwYXJhbXNcbiAgICogQHBhcmFtIHBhcmFtc1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEVuY3J5cHRQYXJhbXMocGFyYW1zOiBSZWNvcmQ8YW55LCBhbnk+KTogUHJvbWlzZTxFbmNyeXB0UGFyYW1zPiB7XG4gICAgY29uc3QgcGF5bG9hZCA9IGRlZXBDbG9uZShwYXJhbXMpXG5cbiAgICBpZiAoIXBheWxvYWQuaXNFbmNyeXB0KSB7XG4gICAgICByZXR1cm4gcGFyYW1zXG4gICAgfVxuXG4gICAgbGV0IHB1YmxpY0tleSA9ICcnXG4gICAgbGV0IHB1YmxpY19rZXlfdGh1bWJwcmludCA9ICcnXG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5nZXRQdWJsaWNLZXkoKVxuICAgICAgcHVibGljS2V5ID0gcmVzLnB1YmxpY19rZXlcbiAgICAgIHB1YmxpY19rZXlfdGh1bWJwcmludCA9IHJlcy5wdWJsaWNfa2V5X3RodW1icHJpbnRcbiAgICB9IGNhdGNoIChlcnJvcikge31cblxuICAgIGlmICghcHVibGljS2V5IHx8ICFwdWJsaWNfa2V5X3RodW1icHJpbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigncHVibGljX2tleSBvciBwdWJsaWNfa2V5X3RodW1icHJpbnQgaXMgZW1wdHknKVxuICAgIH1cblxuICAgIGRlbGV0ZSBwYXlsb2FkLmlzRW5jcnlwdFxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHBhcmFtczogZ2V0RW5jcnlwdEluZm8oeyBwdWJsaWNLZXksIHBheWxvYWQgfSksXG4gICAgICBwdWJsaWNfa2V5X3RodW1icHJpbnQsXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIGdldCBwcm92aWRlciBzdWIgdHlwZVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFByb3ZpZGVyU3ViVHlwZSgpOiBQcm9taXNlPFByb3ZpZGVyU3ViVHlwZT4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PFByb3ZpZGVyU3ViVHlwZT4oQXBpVXJscy5HRVRfUFJPVklERVJfVFlQRSwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiB7XG4gICAgICAgIHByb3ZpZGVyX2lkOiAnd2VkYScsXG4gICAgICB9LFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogZ2V0IHByb3ZpZGVyIHN1YiB0eXBlXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgdmVyaWZ5Q2FwdGNoYURhdGEoeyB0b2tlbiwga2V5IH06IHsgdG9rZW46IHN0cmluZzsga2V5OiBzdHJpbmcgfSkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PHsgY2FwdGNoYV90b2tlbjogc3RyaW5nOyBleHBpcmVzX2luOiBudW1iZXIgfT4oQXBpVXJscy5WRVJJRllfQ0FQVENIQV9EQVRBX1VSTCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiB7IHRva2VuLCBrZXkgfSxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogZmFsc2UsXG4gICAgfSlcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVDYXB0Y2hhRGF0YSh7IHN0YXRlLCByZWRpcmVjdF91cmkgPSB1bmRlZmluZWQgfSkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PHsgY2FwdGNoYV90b2tlbjogc3RyaW5nOyBleHBpcmVzX2luOiBudW1iZXIgfT4oQXBpVXJscy5DQVBUQ0hBX0RBVEFfVVJMLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IHsgc3RhdGUsIHJlZGlyZWN0X3VyaSB9LFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiBmYWxzZSxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIG1pbmktcHJvZ3JhbSBzY2FuIGNvZGVcbiAgICogQHJldHVybnNcbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRNaW5pUHJvZ3JhbUNvZGUocGFyYW1zOiBHZXRNaW5pUHJvZ3JhbVFyQ29kZVJlcXVlc3QpOiBQcm9taXNlPEdldE1pbmlQcm9ncmFtUXJDb2RlUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxHZXRNaW5pUHJvZ3JhbVFyQ29kZVJlc3BvbnNlPihBcGlVcmxzLkdFVF9NSU5JUFJPR1JBTV9RUkNPREUsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keTogcGFyYW1zLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogbWluaS1wcm9ncmFtIHNjYW4gY29kZSBzdGF0dXNcbiAgICogQHJldHVybnNcbiAgICovXG4gIHB1YmxpYyBhc3luYyBjaGVja01pbmlQcm9ncmFtQ29kZShwYXJhbXM6IEdldE1pbmlQcm9ncmFtUXJDb2RlU3RhdHVzUmVxdWVzdCwpOiBQcm9taXNlPEdldE1pbmlQcm9ncmFtUXJDb2RlU3RhdHVzUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxHZXRNaW5pUHJvZ3JhbVFyQ29kZVN0YXR1c1Jlc3BvbnNlPihBcGlVcmxzLkdFVF9NSU5JUFJPR1JBTV9RUkNPREVfU1RBVFVTLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICB9KVxuICB9XG59XG4iXX0=
@@ -2,6 +2,7 @@ export declare enum ApiUrls {
2
2
  AUTH_SIGN_IN_URL = "/auth/v1/signin",
3
3
  AUTH_SIGN_IN_ANONYMOUSLY_URL = "/auth/v1/signin/anonymously",
4
4
  AUTH_SIGN_IN_WITH_PROVIDER_URL = "/auth/v1/signin/with/provider",
5
+ AUTH_SIGN_IN_WITH_WECHAT_URL = "/auth/v1/signin/wechat/noauth",
5
6
  AUTH_SIGN_UP_URL = "/auth/v1/signup",
6
7
  AUTH_TOKEN_URL = "/auth/v1/token",
7
8
  AUTH_REVOKE_URL = "/auth/v1/revoke",
@@ -12,6 +13,7 @@ export declare enum ApiUrls {
12
13
  WEDA_USER_URL = "/auth/v1/plugin/weda/userinfo",
13
14
  USER_QUERY_URL = "/auth/v1/user/query",
14
15
  USER_PRIFILE_URL = "/auth/v1/user/profile",
16
+ USER_BASIC_EDIT_URL = "/auth/v1/user/basic/edit",
15
17
  USER_TRANS_BY_PROVIDER_URL = "/auth/v1/user/trans/by/provider",
16
18
  VERIFICATION_URL = "/auth/v1/verification",
17
19
  VERIFY_URL = "/auth/v1/verification/verify",
@@ -28,7 +30,9 @@ export declare enum ApiUrls {
28
30
  AUTH_GET_DEVICE_CODE = "/auth/v1/device/code",
29
31
  CHECK_USERNAME = "/auth/v1/checkUsername",
30
32
  CHECK_IF_USER_EXIST = "/auth/v1/checkIfUserExist",
31
- GET_PROVIDER_TYPE = "/auth/v1/mgr/provider/providerSubType"
33
+ GET_PROVIDER_TYPE = "/auth/v1/mgr/provider/providerSubType",
34
+ GET_MINIPROGRAM_QRCODE = "/auth/v1/qrcode/generate",
35
+ GET_MINIPROGRAM_QRCODE_STATUS = "/auth/v1/qrcode/get/status"
32
36
  }
33
37
  export declare enum ApiUrlsV2 {
34
38
  AUTH_SIGN_IN_URL = "/auth/v2/signin/username",
@@ -6,6 +6,7 @@ var ApiUrls;
6
6
  ApiUrls["AUTH_SIGN_IN_URL"] = "/auth/v1/signin";
7
7
  ApiUrls["AUTH_SIGN_IN_ANONYMOUSLY_URL"] = "/auth/v1/signin/anonymously";
8
8
  ApiUrls["AUTH_SIGN_IN_WITH_PROVIDER_URL"] = "/auth/v1/signin/with/provider";
9
+ ApiUrls["AUTH_SIGN_IN_WITH_WECHAT_URL"] = "/auth/v1/signin/wechat/noauth";
9
10
  ApiUrls["AUTH_SIGN_UP_URL"] = "/auth/v1/signup";
10
11
  ApiUrls["AUTH_TOKEN_URL"] = "/auth/v1/token";
11
12
  ApiUrls["AUTH_REVOKE_URL"] = "/auth/v1/revoke";
@@ -16,6 +17,7 @@ var ApiUrls;
16
17
  ApiUrls["WEDA_USER_URL"] = "/auth/v1/plugin/weda/userinfo";
17
18
  ApiUrls["USER_QUERY_URL"] = "/auth/v1/user/query";
18
19
  ApiUrls["USER_PRIFILE_URL"] = "/auth/v1/user/profile";
20
+ ApiUrls["USER_BASIC_EDIT_URL"] = "/auth/v1/user/basic/edit";
19
21
  ApiUrls["USER_TRANS_BY_PROVIDER_URL"] = "/auth/v1/user/trans/by/provider";
20
22
  ApiUrls["VERIFICATION_URL"] = "/auth/v1/verification";
21
23
  ApiUrls["VERIFY_URL"] = "/auth/v1/verification/verify";
@@ -33,6 +35,8 @@ var ApiUrls;
33
35
  ApiUrls["CHECK_USERNAME"] = "/auth/v1/checkUsername";
34
36
  ApiUrls["CHECK_IF_USER_EXIST"] = "/auth/v1/checkIfUserExist";
35
37
  ApiUrls["GET_PROVIDER_TYPE"] = "/auth/v1/mgr/provider/providerSubType";
38
+ ApiUrls["GET_MINIPROGRAM_QRCODE"] = "/auth/v1/qrcode/generate";
39
+ ApiUrls["GET_MINIPROGRAM_QRCODE_STATUS"] = "/auth/v1/qrcode/get/status";
36
40
  })(ApiUrls = exports.ApiUrls || (exports.ApiUrls = {}));
37
41
  var ApiUrlsV2;
38
42
  (function (ApiUrlsV2) {
@@ -72,4 +76,4 @@ var ErrorType;
72
76
  ErrorType["USER_PENDING"] = "user_pending";
73
77
  ErrorType["USER_BLOCKED"] = "user_blocked";
74
78
  })(ErrorType = exports.ErrorType || (exports.ErrorType = {}));
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F1dGgvY29uc3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQVksT0FnQ1g7QUFoQ0QsV0FBWSxPQUFPO0lBQ2pCLCtDQUFvQyxDQUFBO0lBQ3BDLHVFQUE0RCxDQUFBO0lBQzVELDJFQUFnRSxDQUFBO0lBQ2hFLCtDQUFvQyxDQUFBO0lBQ3BDLDRDQUFpQyxDQUFBO0lBQ2pDLDhDQUFtQyxDQUFBO0lBQ25DLDREQUFpRCxDQUFBO0lBQ2pELHlEQUE4QyxDQUFBO0lBQzlDLHFEQUEwQyxDQUFBO0lBQzFDLDJDQUFnQyxDQUFBO0lBQ2hDLDBEQUErQyxDQUFBO0lBQy9DLGlEQUFzQyxDQUFBO0lBQ3RDLHFEQUEwQyxDQUFBO0lBQzFDLHlFQUE4RCxDQUFBO0lBQzlELHFEQUEwQyxDQUFBO0lBQzFDLHNEQUEyQyxDQUFBO0lBQzNDLHFEQUEwQyxDQUFBO0lBQzFDLG1FQUF3RCxDQUFBO0lBQ3hELG9EQUF5QyxDQUFBO0lBRXpDLG1EQUF3QyxDQUFBO0lBQ3hDLHlEQUE4QyxDQUFBO0lBQzlDLCtDQUFvQyxDQUFBO0lBQ3BDLDBDQUErQixDQUFBO0lBQy9CLHFEQUEwQyxDQUFBO0lBQzFDLHVEQUE0QyxDQUFBO0lBQzVDLGlEQUFzQyxDQUFBO0lBQ3RDLHdEQUE2QyxDQUFBO0lBQzdDLG9EQUF5QyxDQUFBO0lBQ3pDLDREQUFpRCxDQUFBO0lBQ2pELHNFQUEyRCxDQUFBO0FBQzdELENBQUMsRUFoQ1csT0FBTyxHQUFQLGVBQU8sS0FBUCxlQUFPLFFBZ0NsQjtBQUVELElBQVksU0FPWDtBQVBELFdBQVksU0FBUztJQUNuQiwwREFBNkMsQ0FBQTtJQUM3Qyw4Q0FBaUMsQ0FBQTtJQUNqQyw2Q0FBZ0MsQ0FBQTtJQUNoQyw0REFBK0MsQ0FBQTtJQUMvQyw2RUFBZ0UsQ0FBQTtJQUNoRSwyREFBOEMsQ0FBQTtBQUNoRCxDQUFDLEVBUFcsU0FBUyxHQUFULGlCQUFTLEtBQVQsaUJBQVMsUUFPcEI7QUFFRCxJQUFZLGtCQU1YO0FBTkQsV0FBWSxrQkFBa0I7SUFDNUIsMkNBQXFCLENBQUE7SUFDckIseUNBQW1CLENBQUE7SUFDbkIsdURBQWlDLENBQUE7SUFDakMsbUVBQTZDLENBQUE7SUFDN0MsaUVBQTJDLENBQUE7QUFDN0MsQ0FBQyxFQU5XLGtCQUFrQixHQUFsQiwwQkFBa0IsS0FBbEIsMEJBQWtCLFFBTTdCO0FBRUQsSUFBWSxTQW9CWDtBQXBCRCxXQUFZLFNBQVM7SUFDbkIsa0RBQXFDLENBQUE7SUFDckMsb0RBQXVDLENBQUE7SUFDdkMsb0NBQXVCLENBQUE7SUFDdkIsOENBQWlDLENBQUE7SUFDakMsb0RBQXVDLENBQUE7SUFDdkMsZ0NBQW1CLENBQUE7SUFDbkIsMENBQTZCLENBQUE7SUFDN0IsNENBQStCLENBQUE7SUFDL0Isa0NBQXFCLENBQUE7SUFDckIsd0NBQTJCLENBQUE7SUFDM0Isb0NBQXVCLENBQUE7SUFFdkIsa0RBQXFDLENBQUE7SUFDckMsZ0RBQW1DLENBQUE7SUFDbkMsa0RBQXFDLENBQUE7SUFDckMsa0RBQXFDLENBQUE7SUFDckMsOENBQWlDLENBQUE7SUFDakMsMENBQTZCLENBQUE7SUFDN0IsMENBQTZCLENBQUE7QUFDL0IsQ0FBQyxFQXBCVyxTQUFTLEdBQVQsaUJBQVMsS0FBVCxpQkFBUyxRQW9CcEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBBcGlVcmxzIHtcbiAgQVVUSF9TSUdOX0lOX1VSTCA9ICcvYXV0aC92MS9zaWduaW4nLFxuICBBVVRIX1NJR05fSU5fQU5PTllNT1VTTFlfVVJMID0gJy9hdXRoL3YxL3NpZ25pbi9hbm9ueW1vdXNseScsXG4gIEFVVEhfU0lHTl9JTl9XSVRIX1BST1ZJREVSX1VSTCA9ICcvYXV0aC92MS9zaWduaW4vd2l0aC9wcm92aWRlcicsXG4gIEFVVEhfU0lHTl9VUF9VUkwgPSAnL2F1dGgvdjEvc2lnbnVwJyxcbiAgQVVUSF9UT0tFTl9VUkwgPSAnL2F1dGgvdjEvdG9rZW4nLFxuICBBVVRIX1JFVk9LRV9VUkwgPSAnL2F1dGgvdjEvcmV2b2tlJyxcbiAgUFJPVklERVJfQklORF9VUkwgPSAnL2F1dGgvdjEvdXNlci9wcm92aWRlci9iaW5kJyxcbiAgUFJPVklERVJfVE9LRU5fVVJMID0gJy9hdXRoL3YxL3Byb3ZpZGVyL3Rva2VuJyxcbiAgUFJPVklERVJfVVJJX1VSTCA9ICcvYXV0aC92MS9wcm92aWRlci91cmknLFxuICBVU0VSX01FX1VSTCA9ICcvYXV0aC92MS91c2VyL21lJyxcbiAgV0VEQV9VU0VSX1VSTCA9ICcvYXV0aC92MS9wbHVnaW4vd2VkYS91c2VyaW5mbycsXG4gIFVTRVJfUVVFUllfVVJMID0gJy9hdXRoL3YxL3VzZXIvcXVlcnknLFxuICBVU0VSX1BSSUZJTEVfVVJMID0gJy9hdXRoL3YxL3VzZXIvcHJvZmlsZScsXG4gIFVTRVJfVFJBTlNfQllfUFJPVklERVJfVVJMID0gJy9hdXRoL3YxL3VzZXIvdHJhbnMvYnkvcHJvdmlkZXInLFxuICBWRVJJRklDQVRJT05fVVJMID0gJy9hdXRoL3YxL3ZlcmlmaWNhdGlvbicsXG4gIFZFUklGWV9VUkwgPSAnL2F1dGgvdjEvdmVyaWZpY2F0aW9uL3ZlcmlmeScsXG4gIENBUFRDSEFfREFUQV9VUkwgPSAnL2F1dGgvdjEvY2FwdGNoYS9kYXRhJyxcbiAgVkVSSUZZX0NBUFRDSEFfREFUQV9VUkwgPSAnL2F1dGgvdjEvY2FwdGNoYS9kYXRhL3ZlcmlmeScsXG4gIEdFVF9DQVBUQ0hBX1VSTCA9ICcvYXV0aC92MS9jYXB0Y2hhL2luaXQnLFxuXG4gIFBST1ZJREVSX0xJU1QgPSAnL2F1dGgvdjEvdXNlci9wcm92aWRlcicsXG4gIFBST1ZJREVSX1VOQklORF9VUkwgPSAnL2F1dGgvdjEvdXNlci9wcm92aWRlcicsXG4gIENIRUNLX1BXRF9VUkwgPSAnL2F1dGgvdjEvdXNlci9zdWRvJyxcbiAgU1VET19VUkwgPSAnL2F1dGgvdjEvdXNlci9zdWRvJyxcbiAgQklORF9DT05UQUNUX1VSTCA9ICcvYXV0aC92MS91c2VyL2NvbnRhY3QnLFxuICBBVVRIX1NFVF9QQVNTV09SRCA9ICcvYXV0aC92MS91c2VyL3Bhc3N3b3JkJyxcbiAgQVVUSF9SRVNFVF9QQVNTV09SRCA9ICcvYXV0aC92MS9yZXNldCcsXG4gIEFVVEhfR0VUX0RFVklDRV9DT0RFID0gJy9hdXRoL3YxL2RldmljZS9jb2RlJyxcbiAgQ0hFQ0tfVVNFUk5BTUUgPSAnL2F1dGgvdjEvY2hlY2tVc2VybmFtZScsXG4gIENIRUNLX0lGX1VTRVJfRVhJU1QgPSAnL2F1dGgvdjEvY2hlY2tJZlVzZXJFeGlzdCcsXG4gIEdFVF9QUk9WSURFUl9UWVBFID0gJy9hdXRoL3YxL21nci9wcm92aWRlci9wcm92aWRlclN1YlR5cGUnLFxufVxuXG5leHBvcnQgZW51bSBBcGlVcmxzVjIge1xuICBBVVRIX1NJR05fSU5fVVJMID0gJy9hdXRoL3YyL3NpZ25pbi91c2VybmFtZScsXG4gIEFVVEhfVE9LRU5fVVJMID0gJy9hdXRoL3YyL3Rva2VuJyxcbiAgVVNFUl9NRV9VUkwgPSAnL2F1dGgvdjIvdXNlci9tZScsXG4gIFZFUklGWV9VUkwgPSAnL2F1dGgvdjIvc2lnbmluL3ZlcmlmaWNhdGlvbmNvZGUnLFxuICBBVVRIX1NJR05fSU5fV0lUSF9QUk9WSURFUl9VUkwgPSAnL2F1dGgvdjIvc2lnbmluL3dpdGgvcHJvdmlkZXInLFxuICBBVVRIX1BVQkxJQ19LRVkgPSAnL2F1dGgvdjIvc2lnbmluL3B1YmxpY2hrZXknLFxufVxuXG5leHBvcnQgZW51bSBWZXJpZmljYXRpb25Vc2FnZXMge1xuICBSRUdJU1RFUiA9ICdSRUdJU1RFUicsXG4gIFNJR05fSU4gPSAnU0lHTl9JTicsXG4gIFBBU1NXT1JEX1JFU0VUID0gJ1BBU1NXT1JEX1JFU0VUJyxcbiAgRU1BSUxfQUREUkVTU19DSEFOR0UgPSAnRU1BSUxfQUREUkVTU19DSEFOR0UnLFxuICBQSE9ORV9OVU1CRVJfQ0hBTkdFID0gJ1BIT05FX05VTUJFUl9DSEFOR0UnLFxufVxuXG5leHBvcnQgZW51bSBFcnJvclR5cGUge1xuICBJTlZBTElEX0FSR1VNRU5UID0gJ2ludmFsaWRfYXJndW1lbnQnLFxuICBERUFETElORV9FWENFRURFRCA9ICdkZWFkbGluZV9leGNlZWRlZCcsXG4gIE5PVF9GT1VORCA9ICdub3RfZm91bmQnLFxuICBBTFJFQURZX0VYSVNUUyA9ICdhbHJlYWR5X2V4aXN0cycsXG4gIFBFUk1JU1NJT05fREVOSUVEID0gJ3Blcm1pc3Npb25fZGVuaWVkJyxcbiAgQUJPUlRFRCA9ICdhYm9ydGVkJyxcbiAgT1VUX09GX1JBTkdFID0gJ291dF9vZl9yYW5nZScsXG4gIFVOSU1QTEVNRU5URUQgPSAndW5pbXBsZW1lbnRlZCcsXG4gIElOVEVSTkFMID0gJ2ludGVybmFsJyxcbiAgVU5BVkFJTEFCTEUgPSAndW5hdmFpbGFibGUnLFxuICBEQVRBX0xPU1MgPSAnZGF0YV9sb3NzJyxcbiAgLy8gQ29tbW9uRXJyb3JcbiAgQ0FQVENIQV9SRVFVSVJFRCA9ICdjYXB0Y2hhX3JlcXVpcmVkJyxcbiAgQ0FQVENIQV9JTlZBTElEID0gJ2NhcHRjaGFfaW52YWxpZCcsXG4gIElOVkFMSURfUEFTU1dPUkQgPSAnaW52YWxpZF9wYXNzd29yZCcsXG4gIFBBU1NXT1JEX05PVF9TRVQgPSAncGFzc3dvcmRfbm90X3NldCcsXG4gIElOVkFMSURfU1RBVFVTID0gJ2ludmFsaWRfc3RhdHVzJyxcbiAgVVNFUl9QRU5ESU5HID0gJ3VzZXJfcGVuZGluZycsXG4gIFVTRVJfQkxPQ0tFRCA9ICd1c2VyX2Jsb2NrZWQnLFxufVxuIl19
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F1dGgvY29uc3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQVksT0FxQ1g7QUFyQ0QsV0FBWSxPQUFPO0lBQ2pCLCtDQUFvQyxDQUFBO0lBQ3BDLHVFQUE0RCxDQUFBO0lBQzVELDJFQUFnRSxDQUFBO0lBQ2hFLHlFQUE4RCxDQUFBO0lBQzlELCtDQUFvQyxDQUFBO0lBQ3BDLDRDQUFpQyxDQUFBO0lBQ2pDLDhDQUFtQyxDQUFBO0lBQ25DLDREQUFpRCxDQUFBO0lBQ2pELHlEQUE4QyxDQUFBO0lBQzlDLHFEQUEwQyxDQUFBO0lBQzFDLDJDQUFnQyxDQUFBO0lBQ2hDLDBEQUErQyxDQUFBO0lBQy9DLGlEQUFzQyxDQUFBO0lBQ3RDLHFEQUEwQyxDQUFBO0lBQzFDLDJEQUFnRCxDQUFBO0lBQ2hELHlFQUE4RCxDQUFBO0lBQzlELHFEQUEwQyxDQUFBO0lBQzFDLHNEQUEyQyxDQUFBO0lBQzNDLHFEQUEwQyxDQUFBO0lBQzFDLG1FQUF3RCxDQUFBO0lBQ3hELG9EQUF5QyxDQUFBO0lBRXpDLG1EQUF3QyxDQUFBO0lBQ3hDLHlEQUE4QyxDQUFBO0lBQzlDLCtDQUFvQyxDQUFBO0lBQ3BDLDBDQUErQixDQUFBO0lBQy9CLHFEQUEwQyxDQUFBO0lBQzFDLHVEQUE0QyxDQUFBO0lBQzVDLGlEQUFzQyxDQUFBO0lBQ3RDLHdEQUE2QyxDQUFBO0lBQzdDLG9EQUF5QyxDQUFBO0lBQ3pDLDREQUFpRCxDQUFBO0lBQ2pELHNFQUEyRCxDQUFBO0lBRTNELDhEQUFtRCxDQUFBO0lBQ25ELHVFQUE0RCxDQUFBO0FBQzlELENBQUMsRUFyQ1csT0FBTyxHQUFQLGVBQU8sS0FBUCxlQUFPLFFBcUNsQjtBQUVELElBQVksU0FPWDtBQVBELFdBQVksU0FBUztJQUNuQiwwREFBNkMsQ0FBQTtJQUM3Qyw4Q0FBaUMsQ0FBQTtJQUNqQyw2Q0FBZ0MsQ0FBQTtJQUNoQyw0REFBK0MsQ0FBQTtJQUMvQyw2RUFBZ0UsQ0FBQTtJQUNoRSwyREFBOEMsQ0FBQTtBQUNoRCxDQUFDLEVBUFcsU0FBUyxHQUFULGlCQUFTLEtBQVQsaUJBQVMsUUFPcEI7QUFFRCxJQUFZLGtCQU1YO0FBTkQsV0FBWSxrQkFBa0I7SUFDNUIsMkNBQXFCLENBQUE7SUFDckIseUNBQW1CLENBQUE7SUFDbkIsdURBQWlDLENBQUE7SUFDakMsbUVBQTZDLENBQUE7SUFDN0MsaUVBQTJDLENBQUE7QUFDN0MsQ0FBQyxFQU5XLGtCQUFrQixHQUFsQiwwQkFBa0IsS0FBbEIsMEJBQWtCLFFBTTdCO0FBRUQsSUFBWSxTQW9CWDtBQXBCRCxXQUFZLFNBQVM7SUFDbkIsa0RBQXFDLENBQUE7SUFDckMsb0RBQXVDLENBQUE7SUFDdkMsb0NBQXVCLENBQUE7SUFDdkIsOENBQWlDLENBQUE7SUFDakMsb0RBQXVDLENBQUE7SUFDdkMsZ0NBQW1CLENBQUE7SUFDbkIsMENBQTZCLENBQUE7SUFDN0IsNENBQStCLENBQUE7SUFDL0Isa0NBQXFCLENBQUE7SUFDckIsd0NBQTJCLENBQUE7SUFDM0Isb0NBQXVCLENBQUE7SUFFdkIsa0RBQXFDLENBQUE7SUFDckMsZ0RBQW1DLENBQUE7SUFDbkMsa0RBQXFDLENBQUE7SUFDckMsa0RBQXFDLENBQUE7SUFDckMsOENBQWlDLENBQUE7SUFDakMsMENBQTZCLENBQUE7SUFDN0IsMENBQTZCLENBQUE7QUFDL0IsQ0FBQyxFQXBCVyxTQUFTLEdBQVQsaUJBQVMsS0FBVCxpQkFBUyxRQW9CcEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBBcGlVcmxzIHtcbiAgQVVUSF9TSUdOX0lOX1VSTCA9ICcvYXV0aC92MS9zaWduaW4nLFxuICBBVVRIX1NJR05fSU5fQU5PTllNT1VTTFlfVVJMID0gJy9hdXRoL3YxL3NpZ25pbi9hbm9ueW1vdXNseScsXG4gIEFVVEhfU0lHTl9JTl9XSVRIX1BST1ZJREVSX1VSTCA9ICcvYXV0aC92MS9zaWduaW4vd2l0aC9wcm92aWRlcicsXG4gIEFVVEhfU0lHTl9JTl9XSVRIX1dFQ0hBVF9VUkwgPSAnL2F1dGgvdjEvc2lnbmluL3dlY2hhdC9ub2F1dGgnLFxuICBBVVRIX1NJR05fVVBfVVJMID0gJy9hdXRoL3YxL3NpZ251cCcsXG4gIEFVVEhfVE9LRU5fVVJMID0gJy9hdXRoL3YxL3Rva2VuJyxcbiAgQVVUSF9SRVZPS0VfVVJMID0gJy9hdXRoL3YxL3Jldm9rZScsXG4gIFBST1ZJREVSX0JJTkRfVVJMID0gJy9hdXRoL3YxL3VzZXIvcHJvdmlkZXIvYmluZCcsXG4gIFBST1ZJREVSX1RPS0VOX1VSTCA9ICcvYXV0aC92MS9wcm92aWRlci90b2tlbicsXG4gIFBST1ZJREVSX1VSSV9VUkwgPSAnL2F1dGgvdjEvcHJvdmlkZXIvdXJpJyxcbiAgVVNFUl9NRV9VUkwgPSAnL2F1dGgvdjEvdXNlci9tZScsXG4gIFdFREFfVVNFUl9VUkwgPSAnL2F1dGgvdjEvcGx1Z2luL3dlZGEvdXNlcmluZm8nLFxuICBVU0VSX1FVRVJZX1VSTCA9ICcvYXV0aC92MS91c2VyL3F1ZXJ5JyxcbiAgVVNFUl9QUklGSUxFX1VSTCA9ICcvYXV0aC92MS91c2VyL3Byb2ZpbGUnLFxuICBVU0VSX0JBU0lDX0VESVRfVVJMID0gJy9hdXRoL3YxL3VzZXIvYmFzaWMvZWRpdCcsXG4gIFVTRVJfVFJBTlNfQllfUFJPVklERVJfVVJMID0gJy9hdXRoL3YxL3VzZXIvdHJhbnMvYnkvcHJvdmlkZXInLFxuICBWRVJJRklDQVRJT05fVVJMID0gJy9hdXRoL3YxL3ZlcmlmaWNhdGlvbicsXG4gIFZFUklGWV9VUkwgPSAnL2F1dGgvdjEvdmVyaWZpY2F0aW9uL3ZlcmlmeScsXG4gIENBUFRDSEFfREFUQV9VUkwgPSAnL2F1dGgvdjEvY2FwdGNoYS9kYXRhJyxcbiAgVkVSSUZZX0NBUFRDSEFfREFUQV9VUkwgPSAnL2F1dGgvdjEvY2FwdGNoYS9kYXRhL3ZlcmlmeScsXG4gIEdFVF9DQVBUQ0hBX1VSTCA9ICcvYXV0aC92MS9jYXB0Y2hhL2luaXQnLFxuXG4gIFBST1ZJREVSX0xJU1QgPSAnL2F1dGgvdjEvdXNlci9wcm92aWRlcicsXG4gIFBST1ZJREVSX1VOQklORF9VUkwgPSAnL2F1dGgvdjEvdXNlci9wcm92aWRlcicsXG4gIENIRUNLX1BXRF9VUkwgPSAnL2F1dGgvdjEvdXNlci9zdWRvJyxcbiAgU1VET19VUkwgPSAnL2F1dGgvdjEvdXNlci9zdWRvJyxcbiAgQklORF9DT05UQUNUX1VSTCA9ICcvYXV0aC92MS91c2VyL2NvbnRhY3QnLFxuICBBVVRIX1NFVF9QQVNTV09SRCA9ICcvYXV0aC92MS91c2VyL3Bhc3N3b3JkJyxcbiAgQVVUSF9SRVNFVF9QQVNTV09SRCA9ICcvYXV0aC92MS9yZXNldCcsXG4gIEFVVEhfR0VUX0RFVklDRV9DT0RFID0gJy9hdXRoL3YxL2RldmljZS9jb2RlJyxcbiAgQ0hFQ0tfVVNFUk5BTUUgPSAnL2F1dGgvdjEvY2hlY2tVc2VybmFtZScsXG4gIENIRUNLX0lGX1VTRVJfRVhJU1QgPSAnL2F1dGgvdjEvY2hlY2tJZlVzZXJFeGlzdCcsXG4gIEdFVF9QUk9WSURFUl9UWVBFID0gJy9hdXRoL3YxL21nci9wcm92aWRlci9wcm92aWRlclN1YlR5cGUnLFxuXG4gIEdFVF9NSU5JUFJPR1JBTV9RUkNPREUgPSAnL2F1dGgvdjEvcXJjb2RlL2dlbmVyYXRlJyxcbiAgR0VUX01JTklQUk9HUkFNX1FSQ09ERV9TVEFUVVMgPSAnL2F1dGgvdjEvcXJjb2RlL2dldC9zdGF0dXMnLFxufVxuXG5leHBvcnQgZW51bSBBcGlVcmxzVjIge1xuICBBVVRIX1NJR05fSU5fVVJMID0gJy9hdXRoL3YyL3NpZ25pbi91c2VybmFtZScsXG4gIEFVVEhfVE9LRU5fVVJMID0gJy9hdXRoL3YyL3Rva2VuJyxcbiAgVVNFUl9NRV9VUkwgPSAnL2F1dGgvdjIvdXNlci9tZScsXG4gIFZFUklGWV9VUkwgPSAnL2F1dGgvdjIvc2lnbmluL3ZlcmlmaWNhdGlvbmNvZGUnLFxuICBBVVRIX1NJR05fSU5fV0lUSF9QUk9WSURFUl9VUkwgPSAnL2F1dGgvdjIvc2lnbmluL3dpdGgvcHJvdmlkZXInLFxuICBBVVRIX1BVQkxJQ19LRVkgPSAnL2F1dGgvdjIvc2lnbmluL3B1YmxpY2hrZXknLFxufVxuXG5leHBvcnQgZW51bSBWZXJpZmljYXRpb25Vc2FnZXMge1xuICBSRUdJU1RFUiA9ICdSRUdJU1RFUicsXG4gIFNJR05fSU4gPSAnU0lHTl9JTicsXG4gIFBBU1NXT1JEX1JFU0VUID0gJ1BBU1NXT1JEX1JFU0VUJyxcbiAgRU1BSUxfQUREUkVTU19DSEFOR0UgPSAnRU1BSUxfQUREUkVTU19DSEFOR0UnLFxuICBQSE9ORV9OVU1CRVJfQ0hBTkdFID0gJ1BIT05FX05VTUJFUl9DSEFOR0UnLFxufVxuXG5leHBvcnQgZW51bSBFcnJvclR5cGUge1xuICBJTlZBTElEX0FSR1VNRU5UID0gJ2ludmFsaWRfYXJndW1lbnQnLFxuICBERUFETElORV9FWENFRURFRCA9ICdkZWFkbGluZV9leGNlZWRlZCcsXG4gIE5PVF9GT1VORCA9ICdub3RfZm91bmQnLFxuICBBTFJFQURZX0VYSVNUUyA9ICdhbHJlYWR5X2V4aXN0cycsXG4gIFBFUk1JU1NJT05fREVOSUVEID0gJ3Blcm1pc3Npb25fZGVuaWVkJyxcbiAgQUJPUlRFRCA9ICdhYm9ydGVkJyxcbiAgT1VUX09GX1JBTkdFID0gJ291dF9vZl9yYW5nZScsXG4gIFVOSU1QTEVNRU5URUQgPSAndW5pbXBsZW1lbnRlZCcsXG4gIElOVEVSTkFMID0gJ2ludGVybmFsJyxcbiAgVU5BVkFJTEFCTEUgPSAndW5hdmFpbGFibGUnLFxuICBEQVRBX0xPU1MgPSAnZGF0YV9sb3NzJyxcbiAgLy8gQ29tbW9uRXJyb3JcbiAgQ0FQVENIQV9SRVFVSVJFRCA9ICdjYXB0Y2hhX3JlcXVpcmVkJyxcbiAgQ0FQVENIQV9JTlZBTElEID0gJ2NhcHRjaGFfaW52YWxpZCcsXG4gIElOVkFMSURfUEFTU1dPUkQgPSAnaW52YWxpZF9wYXNzd29yZCcsXG4gIFBBU1NXT1JEX05PVF9TRVQgPSAncGFzc3dvcmRfbm90X3NldCcsXG4gIElOVkFMSURfU1RBVFVTID0gJ2ludmFsaWRfc3RhdHVzJyxcbiAgVVNFUl9QRU5ESU5HID0gJ3VzZXJfcGVuZGluZycsXG4gIFVTRVJfQkxPQ0tFRCA9ICd1c2VyX2Jsb2NrZWQnLFxufVxuIl19
@@ -375,4 +375,30 @@ export interface ProviderSubType {
375
375
  id: string;
376
376
  provider_sub_type: 'NO_AUTH_LOGIN' | '';
377
377
  }
378
+ export interface GetMiniProgramQrCodeRequest {
379
+ envId: string;
380
+ wxAppId: string;
381
+ }
382
+ export interface GetMiniProgramQrCodeResponse {
383
+ qr_code: string;
384
+ qr_code_id: string;
385
+ expires_in: number;
386
+ }
387
+ export interface GetMiniProgramQrCodeStatusRequest {
388
+ qrCodeId: string;
389
+ envId: string;
390
+ wxAppId: string;
391
+ }
392
+ export interface GetMiniProgramQrCodeStatusResponse {
393
+ status: string;
394
+ provider_token: string;
395
+ expires_in: number;
396
+ }
397
+ export interface ModifyUserBasicInfoRequest {
398
+ user_id: string;
399
+ nickname: string;
400
+ username: string;
401
+ description: string;
402
+ avatar_url: string;
403
+ }
378
404
  export {};
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F1dGgvbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbnRlcmZhY2UgQmFzZVJlcXVlc3Qge1xuICBjbGllbnRfaWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIEdldEN1c3RvbVNpZ25UaWNrZXRGbiA9ICgpID0+IFByb21pc2U8c3RyaW5nPjtcblxuZXhwb3J0IGludGVyZmFjZSBTaWduSW5SZXF1ZXN0IGV4dGVuZHMgQmFzZVJlcXVlc3QsIEVuY3J5cHRQYXJhbXMgIHtcbiAgdXNlcm5hbWU/OiBzdHJpbmc7XG4gIHBhc3N3b3JkPzogc3RyaW5nO1xuICB2ZXJpZmljYXRpb25fdG9rZW4/OiBzdHJpbmc7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbkluV2l0aFByb3ZpZGVyUmVxdWVzdCBleHRlbmRzIEJhc2VSZXF1ZXN0IHtcbiAgcHJvdmlkZXJfdG9rZW46IHN0cmluZztcbiAgdmVyc2lvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWduVXBSZXF1ZXN0IGV4dGVuZHMgQmFzZVJlcXVlc3Qge1xuICBwaG9uZV9udW1iZXI/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuXG4gIHZlcmlmaWNhdGlvbl9jb2RlPzogc3RyaW5nO1xuICB2ZXJpZmljYXRpb25fdG9rZW4/OiBzdHJpbmc7XG4gIHByb3ZpZGVyX3Rva2VuPzogc3RyaW5nO1xuXG4gIHBhc3N3b3JkPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICBnZW5kZXI/OiBzdHJpbmc7XG4gIHBpY3R1cmU/OiBzdHJpbmc7XG4gIGxvY2FsZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRWZXJpZmljYXRpb25SZXF1ZXN0IGV4dGVuZHMgQmFzZVJlcXVlc3Qge1xuICBwaG9uZV9udW1iZXI/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICB0YXJnZXQ/OiBzdHJpbmcgfCAnQU5ZJztcbiAgdXNhZ2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0VmVyaWZpY2F0aW9uUmVzcG9uc2Uge1xuICB2ZXJpZmljYXRpb25faWQ/OiBzdHJpbmc7XG4gIGlzX3VzZXI/OiBib29sZWFuIHwgZmFsc2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZ5UmVzcG9uc2Uge1xuICB2ZXJpZmljYXRpb25fdG9rZW4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZ5UmVxdWVzdCBleHRlbmRzIEJhc2VSZXF1ZXN0IHtcbiAgdmVyaWZpY2F0aW9uX2NvZGU6IHN0cmluZztcbiAgdmVyaWZpY2F0aW9uX2lkPzogc3RyaW5nO1xuICB2ZXJpZmljYXRpb25fdG9rZW4/OiBzdHJpbmc7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlkZXJCaW5kUmVxdWVzdCB7XG4gIHByb3ZpZGVyX3Rva2VuOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JhbnRQcm92aWRlclRva2VuUmVxdWVzdCBleHRlbmRzIEJhc2VSZXF1ZXN0IHtcbiAgcHJvdmlkZXJfaWQ6IHN0cmluZztcbiAgcHJvdmlkZXJfcmVkaXJlY3RfdXJpPzogc3RyaW5nO1xuICBwcm92aWRlcl9jb2RlPzogc3RyaW5nO1xuICBwcm92aWRlcl9hY2Nlc3NfdG9rZW4/OiBzdHJpbmc7XG4gIHByb3ZpZGVyX2lkX3Rva2VuPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyYW50UHJvdmlkZXJUb2tlblJlc3BvbnNlIHtcbiAgcHJvdmlkZXJfdG9rZW46IHN0cmluZztcbiAgZXhwaXJlc19pbjogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhdGNoUHJvdmlkZXJUb2tlblJlcXVlc3QgZXh0ZW5kcyBCYXNlUmVxdWVzdCB7XG4gIHByb3ZpZGVyX2lkPzogc3RyaW5nO1xuICBwcm92aWRlcl90b2tlbjogc3RyaW5nO1xuICBwcm92aWRlcl9wYXJhbXM6IHtcbiAgICBlbmNyeXB0ZWREYXRhPzogc3RyaW5nO1xuICAgIGl2Pzogc3RyaW5nO1xuICAgIGNvZGU/OiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF0Y2hQcm92aWRlclRva2VuUmVzcG9uc2Uge1xuICBwcm92aWRlcl90b2tlbjogc3RyaW5nO1xuICBleHBpcmVzX2luOiBudW1iZXI7XG4gIHByb3ZpZGVyX3Byb2ZpbGU6IFByb3ZpZGVyUHJvZmlsZTtcbn1cblxuLy8gZXhwb3J0IGludGVyZmFjZSBHZW5Qcm92aWRlclJlZGlyZWN0VXJpUmVxdWVzdCB7XG4vLyAgIHByb3ZpZGVyX2lkOiBzdHJpbmc7XG4vLyAgIHByb3ZpZGVyX3JlZGlyZWN0X3VyaTogc3RyaW5nO1xuLy8gICBzdGF0ZTogc3RyaW5nO1xuLy8gICBvdGhlcl9wYXJhbXM/OiB7XG4vLyAgICAgc2lnbl9vdXRfdXJpPzogc3RyaW5nO1xuLy8gICB9O1xuLy8gfVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlblByb3ZpZGVyUmVkaXJlY3RVcmlSZXNwb25zZSB7XG4gIHVyaTogc3RyaW5nO1xuICBzaWdub3V0X3VyaT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCaW5kV2l0aFByb3ZpZGVyUmVxdWVzdCBleHRlbmRzIEJhc2VSZXF1ZXN0IHtcbiAgcHJvdmlkZXJfdG9rZW46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCaW5kV2l0aFByb3ZpZGVyUmVxdWVzdCB7XG4gIHByb3ZpZGVyX3Rva2VuOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclByb2ZpbGVQcm92aWRlciB7XG4gIGlkPzogc3RyaW5nO1xuICBwcm92aWRlcl91c2VyX2lkPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJQcm9maWxlIHtcbiAgbmFtZT86IHN0cmluZztcbiAgcGljdHVyZT86IHN0cmluZztcbiAgdXNlcm5hbWU/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICBlbWFpbF92ZXJpZmllZD86IGJvb2xlYW47XG4gIHBob25lX251bWJlcj86IHN0cmluZztcbiAgcHJvdmlkZXJzPzogW1VzZXJQcm9maWxlUHJvdmlkZXJdO1xuICBnZW5kZXI/OiBzdHJpbmc7XG4gIGJpcnRoZGF0ZT86IHN0cmluZztcbiAgem9uZWluZm8/OiBzdHJpbmc7XG4gIGxvY2FsZT86IHN0cmluZztcbiAgY3JlYXRlZF9mcm9tPzogc3RyaW5nO1xuICBzdWI/OiBzdHJpbmdcbiAgdWlkPzogc3RyaW5nXG4gIGFkZHJlc3M/OiB7XG4gICAgZm9ybWF0dGVkPzogc3RyaW5nLFxuICAgIHN0cmVldF9hZGRyZXNzPzogc3RyaW5nLFxuICAgIGxvY2FsaXR5Pzogc3RyaW5nLFxuICAgIHJlZ2lvbj86IHN0cmluZyxcbiAgICBwb3N0YWxfY29kZT86IHN0cmluZyxcbiAgICBjb3VudHJ5Pzogc3RyaW5nXG4gIH1cbiAgbmlja05hbWU/OiBzdHJpbmcgLy8gVE9ETzpcbiAgcHJvdmluY2U/OiBzdHJpbmcgLy8gVE9ETzpcbiAgY291bnRyeT86IHN0cmluZyAvLyBUT0RPOlxuICBjaXR5Pzogc3RyaW5nIC8vIFRPRE86XG59XG5cbmV4cG9ydCB0eXBlIFVzZXJJbmZvID0gVXNlclByb2ZpbGU7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlkZXJQcm9maWxlIHtcbiAgcHJvdmlkZXJfaWQ6IHN0cmluZztcbiAgcGhvbmVfbnVtYmVyPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zQnlQcm92aWRlclJlcXVlc3Qge1xuICBwcm92aWRlcl90b2tlbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyYW50VG9rZW5SZXF1ZXN0IGV4dGVuZHMgQmFzZVJlcXVlc3Qge1xuICBjbGllbnRfc2VjcmV0Pzogc3RyaW5nO1xuICBjb2RlPzogc3RyaW5nO1xuICBncmFudF90eXBlPzogc3RyaW5nO1xuICByZWRpcmVjdF91cmk/OiBzdHJpbmc7XG4gIG5vbmNlPzogc3RyaW5nO1xuICByZWZyZXNoX3Rva2VuPzogc3RyaW5nO1xuICBzY29wZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVbmJpbmRQcm92aWRlclJlcXVlc3QgZXh0ZW5kcyBCYXNlUmVxdWVzdCB7XG4gIHByb3ZpZGVyX2lkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlY2tQYXNzd29yZHJSZXF1ZXN0IGV4dGVuZHMgQmFzZVJlcXVlc3Qge1xuICBwYXNzd29yZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJpbmRQaG9uZVJlcXVlc3QgZXh0ZW5kcyBCYXNlUmVxdWVzdCB7XG4gIHBob25lX251bWJlcjogc3RyaW5nO1xuICBzdWRvX3Rva2VuOiBzdHJpbmc7XG4gIHZlcmlmaWNhdGlvbl90b2tlbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNldFBhc3N3b3JkUmVxdWVzdCBleHRlbmRzIEJhc2VSZXF1ZXN0IHtcbiAgbmV3X3Bhc3N3b3JkOiBzdHJpbmc7XG4gIHN1ZG9fdG9rZW46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VCaW5kZWRQcm92aWRlclJlcXVlc3QgZXh0ZW5kcyBCYXNlUmVxdWVzdCB7XG4gIHRyYW5zX3Rva2VuOiBzdHJpbmc7XG4gIHByb3ZpZGVyX2lkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIENoYW5nZUJpbmRlZFByb3ZpZGVyUmVzcG9uc2UgPSBCYXNlUmVxdWVzdFxuXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5VXNlclByb2ZpbGVSZXEgZXh0ZW5kcyBCYXNlUmVxdWVzdCB7XG4gIGFwcGVuZGVkX3BhcmFtczogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25JbldpdGhQcm92aWRlclJlcXVlc3Qge1xuICBwcm92aWRlcl90b2tlbjogc3RyaW5nO1xuICBwcm92aWRlcl9pZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWduVXBSZXF1ZXN0IHtcbiAgcGhvbmVfbnVtYmVyPzogc3RyaW5nO1xuICBlbWFpbD86IHN0cmluZztcblxuICB2ZXJpZmljYXRpb25fY29kZT86IHN0cmluZztcbiAgdmVyaWZpY2F0aW9uX3Rva2VuPzogc3RyaW5nO1xuICBwcm92aWRlcl90b2tlbj86IHN0cmluZztcblxuICBwYXNzd29yZD86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgZ2VuZGVyPzogc3RyaW5nO1xuICBwaWN0dXJlPzogc3RyaW5nO1xuICBsb2NhbGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0VmVyaWZpY2F0aW9uUmVxdWVzdCB7XG4gIHBob25lX251bWJlcj86IHN0cmluZztcbiAgZW1haWw/OiBzdHJpbmc7XG4gIC8vIOWPr+mAiSBBTlnvvIxVU0VS77yMTk9UX1VTRVIsIENVUl9VU0VSO1xuICB0YXJnZXQ/OiBzdHJpbmcgfCAnQU5ZJztcbiAgdXNhZ2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0VmVyaWZpY2F0aW9uUmVzcG9uc2Uge1xuICB2ZXJpZmljYXRpb25faWQ/OiBzdHJpbmc7XG4gIGlzX3VzZXI/OiBib29sZWFuIHwgZmFsc2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZ5UmVzcG9uc2Uge1xuICB2ZXJpZmljYXRpb25fdG9rZW4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZ5UmVxdWVzdCB7XG4gIHZlcmlmaWNhdGlvbl9jb2RlOiBzdHJpbmc7XG4gIHZlcmlmaWNhdGlvbl9pZD86IHN0cmluZztcbiAgdmVyaWZpY2F0aW9uX3Rva2VuPzogc3RyaW5nO1xuICB2ZXJzaW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVyQmluZFJlcXVlc3Qge1xuICBwcm92aWRlcl90b2tlbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyYW50UHJvdmlkZXJUb2tlblJlcXVlc3Qge1xuICBwcm92aWRlcl9pZDogc3RyaW5nO1xuICBwcm92aWRlcl9yZWRpcmVjdF91cmk/OiBzdHJpbmc7XG4gIHByb3ZpZGVyX2NvZGU/OiBzdHJpbmc7XG4gIHByb3ZpZGVyX2FjY2Vzc190b2tlbj86IHN0cmluZztcbiAgcHJvdmlkZXJfaWRfdG9rZW4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JhbnRQcm92aWRlclRva2VuUmVzcG9uc2Uge1xuICBwcm92aWRlcl90b2tlbjogc3RyaW5nO1xuICBleHBpcmVzX2luOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF0Y2hQcm92aWRlclRva2VuUmVxdWVzdCB7XG4gIHByb3ZpZGVyX3Rva2VuOiBzdHJpbmc7XG4gIHByb3ZpZGVyX2lkPzogc3RyaW5nO1xuICBwcm92aWRlcl9wYXJhbXM6IHtcbiAgICBlbmNyeXB0ZWREYXRhPzogc3RyaW5nO1xuICAgIGl2Pzogc3RyaW5nO1xuICAgIGNvZGU/OiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF0Y2hQcm92aWRlclRva2VuUmVzcG9uc2Uge1xuICBwcm92aWRlcl90b2tlbjogc3RyaW5nO1xuICBleHBpcmVzX2luOiBudW1iZXI7XG4gIHByb3ZpZGVyX3Byb2ZpbGU6IFByb3ZpZGVyUHJvZmlsZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW5Qcm92aWRlclJlZGlyZWN0VXJpUmVxdWVzdCB7XG4gIHByb3ZpZGVyX2lkOiBzdHJpbmc7XG4gIHByb3ZpZGVyX3JlZGlyZWN0X3VyaTogc3RyaW5nO1xuICBzdGF0ZTogc3RyaW5nO1xuICBvdGhlcl9wYXJhbXM/OiB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nXG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VuUHJvdmlkZXJSZWRpcmVjdFVyaVJlc3BvbnNlIHtcbiAgdXJpOiBzdHJpbmc7XG4gIHNpZ25vdXRfdXJpPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJpbmRXaXRoUHJvdmlkZXJSZXF1ZXN0IHtcbiAgcHJvdmlkZXJfdG9rZW46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCaW5kV2l0aFByb3ZpZGVyUmVxdWVzdCB7XG4gIHByb3ZpZGVyX3Rva2VuOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclByb2ZpbGVQcm92aWRlciB7XG4gIGlkPzogc3RyaW5nO1xuICBwcm92aWRlcl91c2VyX2lkPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJQcm9maWxlIHtcbiAgbmFtZT86IHN0cmluZztcbiAgcGljdHVyZT86IHN0cmluZztcbiAgdXNlcm5hbWU/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICBlbWFpbF92ZXJpZmllZD86IGJvb2xlYW47XG4gIHBob25lX251bWJlcj86IHN0cmluZztcbiAgcHJvdmlkZXJzPzogW1VzZXJQcm9maWxlUHJvdmlkZXJdO1xuICBnZW5kZXI/OiBzdHJpbmc7XG4gIGJpcnRoZGF0ZT86IHN0cmluZztcbiAgem9uZWluZm8/OiBzdHJpbmc7XG4gIGxvY2FsZT86IHN0cmluZztcbiAgY3JlYXRlZF9mcm9tPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVyUHJvZmlsZSB7XG4gIHByb3ZpZGVyX2lkOiBzdHJpbmc7XG4gIHBob25lX251bWJlcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc0J5UHJvdmlkZXJSZXF1ZXN0IHtcbiAgcHJvdmlkZXJfdG9rZW46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHcmFudFRva2VuUmVxdWVzdCB7XG4gIGNsaWVudF9zZWNyZXQ/OiBzdHJpbmc7XG4gIGNvZGU/OiBzdHJpbmc7XG4gIGdyYW50X3R5cGU/OiBzdHJpbmc7XG4gIHJlZGlyZWN0X3VyaT86IHN0cmluZztcbiAgbm9uY2U/OiBzdHJpbmc7XG4gIHJlZnJlc2hfdG9rZW4/OiBzdHJpbmc7XG4gIHNjb3BlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVuYmluZFByb3ZpZGVyUmVxdWVzdCB7XG4gIHByb3ZpZGVyX2lkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlY2tQYXNzd29yZHJSZXF1ZXN0IHtcbiAgcGFzc3dvcmQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCaW5kUGhvbmVSZXF1ZXN0IHtcbiAgcGhvbmVfbnVtYmVyOiBzdHJpbmc7XG4gIHN1ZG9fdG9rZW46IHN0cmluZztcbiAgdmVyaWZpY2F0aW9uX3Rva2VuOiBzdHJpbmc7XG4gIGNvbmZsaWN0X3Jlc29sdXRpb246IHN0cmluZ1xuICAvLyAxLiBERUZBVUxUIDAsIOm7mOiupOaPkOekuueUqOaIt+aJi+acuuWPt+W3suiiq+e7keWumlxuICAvLyAyLiBERUxFVEVfQUNDT1VOVF9UUkFOU0ZFUiAxLCDmoIforrDljp/otKblj7flt7Looqvms6jplIDvvIzlubblsIbmiYvmnLrmjaLnu5Hnu5noh6rlt7FcbiAgLy8gMy4gVFJBTlNGRVIgMiwg5LuF5o2i57uR5omL5py65Y+377yM5LiN5rOo6ZSA5Y6f5pyJ6LSm5Y+377yI5o2i57uR5ZCO5Y6f6LSm5Y+35peg5rOV55m75b2V5pe277yM5YiZ6Ieq5Yqo5rOo6ZSA5Y6f6LSm5Y+377yJXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmluZEVtYWlsUmVxdWVzdCB7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIHN1ZG9fdG9rZW46IHN0cmluZztcbiAgdmVyaWZpY2F0aW9uX3Rva2VuOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2V0UGFzc3dvcmRSZXF1ZXN0IHtcbiAgbmV3X3Bhc3N3b3JkOiBzdHJpbmc7XG4gIHN1ZG9fdG9rZW46IHN0cmluZztcbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIFNldFBhc3N3b3JkUmVxdWVzdCB7XG4gIG5ld19wYXNzd29yZDogc3RyaW5nO1xuICBzdWRvX3Rva2VuOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlUGFzc3dvcmRSZXF1ZXN0IHtcbiAgb2xkX3Bhc3N3b3JkOiBzdHJpbmc7XG4gIG5ld19wYXNzd29yZDogc3RyaW5nO1xufVxuXG4vLyBwYXNzd29yZCDlkowgdmVyaWZpY2F0aW9uX3Rva2VuIOiAjOmAieS4gO+8jOWmguaenOe7keWumuS6huaJi+acuuWPt++8jOWImeW/hemhu+S9v+eUqHZlcmlmaWNhdGlvbl90b2tlbiDov5vooYxzdWRvXG5leHBvcnQgaW50ZXJmYWNlIFN1ZG9SZXF1ZXN0IHtcbiAgcGFzc3dvcmQ/OiBzdHJpbmc7XG4gIHZlcmlmaWNhdGlvbl90b2tlbj86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1ZG9SZXNwb25zZSB7XG4gIHN1ZG9fdG9rZW4/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXaXRoU3Vkb1JlcXVlc3Qge1xuICBzdWRvX3Rva2VuOiBzdHJpbmc7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG59XG5cblxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VCb3VuZFByb3ZpZGVyUmVxdWVzdCB7XG4gIHRyYW5zX3Rva2VuOiBzdHJpbmc7XG4gIHByb3ZpZGVyX2lkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlQm91bmRQcm92aWRlclJlc3BvbnNlIHtcbiAgY2xpZW50X2lkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlVc2VyUHJvZmlsZVJlcXVlc3Qge1xuICBpZD86IFtzdHJpbmddO1xuICB1c2VybmFtZT86IHN0cmluZztcbiAgZW1haWw/OiBzdHJpbmc7XG4gIHBob25lX251bWJlcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBRdWVyeVVzZXJQcm9maWxlUmVzcG9uc2Uge1xuICB0b3RhbDogc3RyaW5nO1xuICBkYXRhOiBTaW1wbGVVc2VyUHJvZmlsZVtdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzZXRQYXNzd29yZFJlcXVlc3QgZXh0ZW5kcyBCYXNlUmVxdWVzdCB7XG4gIGVtYWlsOiBzdHJpbmdcbiAgcGhvbmVfbnVtYmVyOiBzdHJpbmdcbiAgbmV3X3Bhc3N3b3JkOiBzdHJpbmdcbiAgdmVyaWZpY2F0aW9uX3Rva2VuOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZXZpY2VBdXRob3JpemVSZXF1ZXN0IGV4dGVuZHMgQmFzZVJlcXVlc3Qge1xuICBzY29wZT86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERldmljZUF1dGhvcml6ZVJlc3BvbnNlIHtcbiAgZGV2aWNlX2NvZGU6IHN0cmluZ1xuICB1c2VyX2NvZGU6IHN0cmluZ1xuICBleHBpcmVzX2luOiBudW1iZXJcbiAgaW50ZXJ2YWw6IG51bWJlclxuICB2ZXJpZmljYXRpb25fdXJsOiBzdHJpbmdcbiAgdmVyaWZpY2F0aW9uX3VyaV9jb21wbGV0ZTogc3RyaW5nXG59XG5cbi8vIOeugOWMlueJiOeUqOaIt+S/oeaBr1xuZXhwb3J0IGludGVyZmFjZSBTaW1wbGVVc2VyUHJvZmlsZSB7XG4gIHN1Yjogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHBpY3R1cmU/OiBzdHJpbmc7XG4gIGdlbmRlcj86IHN0cmluZztcbiAgbG9jYWxlPzogc3RyaW5nO1xuICBlbWFpbD86IHN0cmluZztcbiAgcGhvbmVfbnVtYmVyPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoZWNrVXNlcm5hbWVSZXF1ZXN0IHtcbiAgdXNlcm5hbWU6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoZWNrSWZVc2VyRXhpc3RSZXF1ZXN0IHtcbiAgdXNlcm5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGVja0lmVXNlckV4aXN0UmVzcG9uc2Uge1xuICBleGlzdDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdWJsaWNLZXkge1xuICBwdWJsaWNfa2V5OiBzdHJpbmc7IC8vIOWKoOWvhueahOWFrOmSpVxuICBwdWJsaWNfa2V5X3RodW1icHJpbnQ6IHN0cmluZzsgLy8g5Yqg5a+G55qE5YWs6ZKl5oyH57q5XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW5jcnlwdFBhcmFtcyB7XG4gIGlzRW5jcnlwdD86IGJvb2xlYW47IC8vIOaYr+WQpumcgOimgeWKoOWvhlxuICBwdWJsaWNfa2V5X3RodW1icHJpbnQ/OiBzdHJpbmc7IC8vIOWKoOWvhueahOWFrOmSpeaMh+e6uVxuICBwYXJhbXM/OiBzdHJpbmc7IC8vIOWKoOWvhueahOaVsOaNrlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVyU3ViVHlwZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHByb3ZpZGVyX3N1Yl90eXBlOiAnTk9fQVVUSF9MT0dJTicgfCAnJzsgLy8gTk9fQVVUSF9MT0dJTi3lhY3lr4bnmbvlvZVcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F1dGgvbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbnRlcmZhY2UgQmFzZVJlcXVlc3Qge1xuICBjbGllbnRfaWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIEdldEN1c3RvbVNpZ25UaWNrZXRGbiA9ICgpID0+IFByb21pc2U8c3RyaW5nPjtcblxuZXhwb3J0IGludGVyZmFjZSBTaWduSW5SZXF1ZXN0IGV4dGVuZHMgQmFzZVJlcXVlc3QsIEVuY3J5cHRQYXJhbXMgIHtcbiAgdXNlcm5hbWU/OiBzdHJpbmc7XG4gIHBhc3N3b3JkPzogc3RyaW5nO1xuICB2ZXJpZmljYXRpb25fdG9rZW4/OiBzdHJpbmc7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbkluV2l0aFByb3ZpZGVyUmVxdWVzdCBleHRlbmRzIEJhc2VSZXF1ZXN0IHtcbiAgcHJvdmlkZXJfdG9rZW46IHN0cmluZztcbiAgdmVyc2lvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWduVXBSZXF1ZXN0IGV4dGVuZHMgQmFzZVJlcXVlc3Qge1xuICBwaG9uZV9udW1iZXI/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuXG4gIHZlcmlmaWNhdGlvbl9jb2RlPzogc3RyaW5nO1xuICB2ZXJpZmljYXRpb25fdG9rZW4/OiBzdHJpbmc7XG4gIHByb3ZpZGVyX3Rva2VuPzogc3RyaW5nO1xuXG4gIHBhc3N3b3JkPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICBnZW5kZXI/OiBzdHJpbmc7XG4gIHBpY3R1cmU/OiBzdHJpbmc7XG4gIGxvY2FsZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRWZXJpZmljYXRpb25SZXF1ZXN0IGV4dGVuZHMgQmFzZVJlcXVlc3Qge1xuICBwaG9uZV9udW1iZXI/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICB0YXJnZXQ/OiBzdHJpbmcgfCAnQU5ZJztcbiAgdXNhZ2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0VmVyaWZpY2F0aW9uUmVzcG9uc2Uge1xuICB2ZXJpZmljYXRpb25faWQ/OiBzdHJpbmc7XG4gIGlzX3VzZXI/OiBib29sZWFuIHwgZmFsc2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZ5UmVzcG9uc2Uge1xuICB2ZXJpZmljYXRpb25fdG9rZW4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZ5UmVxdWVzdCBleHRlbmRzIEJhc2VSZXF1ZXN0IHtcbiAgdmVyaWZpY2F0aW9uX2NvZGU6IHN0cmluZztcbiAgdmVyaWZpY2F0aW9uX2lkPzogc3RyaW5nO1xuICB2ZXJpZmljYXRpb25fdG9rZW4/OiBzdHJpbmc7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlkZXJCaW5kUmVxdWVzdCB7XG4gIHByb3ZpZGVyX3Rva2VuOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JhbnRQcm92aWRlclRva2VuUmVxdWVzdCBleHRlbmRzIEJhc2VSZXF1ZXN0IHtcbiAgcHJvdmlkZXJfaWQ6IHN0cmluZztcbiAgcHJvdmlkZXJfcmVkaXJlY3RfdXJpPzogc3RyaW5nO1xuICBwcm92aWRlcl9jb2RlPzogc3RyaW5nO1xuICBwcm92aWRlcl9hY2Nlc3NfdG9rZW4/OiBzdHJpbmc7XG4gIHByb3ZpZGVyX2lkX3Rva2VuPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyYW50UHJvdmlkZXJUb2tlblJlc3BvbnNlIHtcbiAgcHJvdmlkZXJfdG9rZW46IHN0cmluZztcbiAgZXhwaXJlc19pbjogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhdGNoUHJvdmlkZXJUb2tlblJlcXVlc3QgZXh0ZW5kcyBCYXNlUmVxdWVzdCB7XG4gIHByb3ZpZGVyX2lkPzogc3RyaW5nO1xuICBwcm92aWRlcl90b2tlbjogc3RyaW5nO1xuICBwcm92aWRlcl9wYXJhbXM6IHtcbiAgICBlbmNyeXB0ZWREYXRhPzogc3RyaW5nO1xuICAgIGl2Pzogc3RyaW5nO1xuICAgIGNvZGU/OiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF0Y2hQcm92aWRlclRva2VuUmVzcG9uc2Uge1xuICBwcm92aWRlcl90b2tlbjogc3RyaW5nO1xuICBleHBpcmVzX2luOiBudW1iZXI7XG4gIHByb3ZpZGVyX3Byb2ZpbGU6IFByb3ZpZGVyUHJvZmlsZTtcbn1cblxuLy8gZXhwb3J0IGludGVyZmFjZSBHZW5Qcm92aWRlclJlZGlyZWN0VXJpUmVxdWVzdCB7XG4vLyAgIHByb3ZpZGVyX2lkOiBzdHJpbmc7XG4vLyAgIHByb3ZpZGVyX3JlZGlyZWN0X3VyaTogc3RyaW5nO1xuLy8gICBzdGF0ZTogc3RyaW5nO1xuLy8gICBvdGhlcl9wYXJhbXM/OiB7XG4vLyAgICAgc2lnbl9vdXRfdXJpPzogc3RyaW5nO1xuLy8gICB9O1xuLy8gfVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlblByb3ZpZGVyUmVkaXJlY3RVcmlSZXNwb25zZSB7XG4gIHVyaTogc3RyaW5nO1xuICBzaWdub3V0X3VyaT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCaW5kV2l0aFByb3ZpZGVyUmVxdWVzdCBleHRlbmRzIEJhc2VSZXF1ZXN0IHtcbiAgcHJvdmlkZXJfdG9rZW46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCaW5kV2l0aFByb3ZpZGVyUmVxdWVzdCB7XG4gIHByb3ZpZGVyX3Rva2VuOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclByb2ZpbGVQcm92aWRlciB7XG4gIGlkPzogc3RyaW5nO1xuICBwcm92aWRlcl91c2VyX2lkPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJQcm9maWxlIHtcbiAgbmFtZT86IHN0cmluZztcbiAgcGljdHVyZT86IHN0cmluZztcbiAgdXNlcm5hbWU/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICBlbWFpbF92ZXJpZmllZD86IGJvb2xlYW47XG4gIHBob25lX251bWJlcj86IHN0cmluZztcbiAgcHJvdmlkZXJzPzogW1VzZXJQcm9maWxlUHJvdmlkZXJdO1xuICBnZW5kZXI/OiBzdHJpbmc7XG4gIGJpcnRoZGF0ZT86IHN0cmluZztcbiAgem9uZWluZm8/OiBzdHJpbmc7XG4gIGxvY2FsZT86IHN0cmluZztcbiAgY3JlYXRlZF9mcm9tPzogc3RyaW5nO1xuICBzdWI/OiBzdHJpbmdcbiAgdWlkPzogc3RyaW5nXG4gIGFkZHJlc3M/OiB7XG4gICAgZm9ybWF0dGVkPzogc3RyaW5nLFxuICAgIHN0cmVldF9hZGRyZXNzPzogc3RyaW5nLFxuICAgIGxvY2FsaXR5Pzogc3RyaW5nLFxuICAgIHJlZ2lvbj86IHN0cmluZyxcbiAgICBwb3N0YWxfY29kZT86IHN0cmluZyxcbiAgICBjb3VudHJ5Pzogc3RyaW5nXG4gIH1cbiAgbmlja05hbWU/OiBzdHJpbmcgLy8gVE9ETzpcbiAgcHJvdmluY2U/OiBzdHJpbmcgLy8gVE9ETzpcbiAgY291bnRyeT86IHN0cmluZyAvLyBUT0RPOlxuICBjaXR5Pzogc3RyaW5nIC8vIFRPRE86XG59XG5cbmV4cG9ydCB0eXBlIFVzZXJJbmZvID0gVXNlclByb2ZpbGU7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlkZXJQcm9maWxlIHtcbiAgcHJvdmlkZXJfaWQ6IHN0cmluZztcbiAgcGhvbmVfbnVtYmVyPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zQnlQcm92aWRlclJlcXVlc3Qge1xuICBwcm92aWRlcl90b2tlbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyYW50VG9rZW5SZXF1ZXN0IGV4dGVuZHMgQmFzZVJlcXVlc3Qge1xuICBjbGllbnRfc2VjcmV0Pzogc3RyaW5nO1xuICBjb2RlPzogc3RyaW5nO1xuICBncmFudF90eXBlPzogc3RyaW5nO1xuICByZWRpcmVjdF91cmk/OiBzdHJpbmc7XG4gIG5vbmNlPzogc3RyaW5nO1xuICByZWZyZXNoX3Rva2VuPzogc3RyaW5nO1xuICBzY29wZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVbmJpbmRQcm92aWRlclJlcXVlc3QgZXh0ZW5kcyBCYXNlUmVxdWVzdCB7XG4gIHByb3ZpZGVyX2lkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlY2tQYXNzd29yZHJSZXF1ZXN0IGV4dGVuZHMgQmFzZVJlcXVlc3Qge1xuICBwYXNzd29yZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJpbmRQaG9uZVJlcXVlc3QgZXh0ZW5kcyBCYXNlUmVxdWVzdCB7XG4gIHBob25lX251bWJlcjogc3RyaW5nO1xuICBzdWRvX3Rva2VuOiBzdHJpbmc7XG4gIHZlcmlmaWNhdGlvbl90b2tlbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNldFBhc3N3b3JkUmVxdWVzdCBleHRlbmRzIEJhc2VSZXF1ZXN0IHtcbiAgbmV3X3Bhc3N3b3JkOiBzdHJpbmc7XG4gIHN1ZG9fdG9rZW46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VCaW5kZWRQcm92aWRlclJlcXVlc3QgZXh0ZW5kcyBCYXNlUmVxdWVzdCB7XG4gIHRyYW5zX3Rva2VuOiBzdHJpbmc7XG4gIHByb3ZpZGVyX2lkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIENoYW5nZUJpbmRlZFByb3ZpZGVyUmVzcG9uc2UgPSBCYXNlUmVxdWVzdFxuXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5VXNlclByb2ZpbGVSZXEgZXh0ZW5kcyBCYXNlUmVxdWVzdCB7XG4gIGFwcGVuZGVkX3BhcmFtczogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25JbldpdGhQcm92aWRlclJlcXVlc3Qge1xuICBwcm92aWRlcl90b2tlbjogc3RyaW5nO1xuICBwcm92aWRlcl9pZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWduVXBSZXF1ZXN0IHtcbiAgcGhvbmVfbnVtYmVyPzogc3RyaW5nO1xuICBlbWFpbD86IHN0cmluZztcblxuICB2ZXJpZmljYXRpb25fY29kZT86IHN0cmluZztcbiAgdmVyaWZpY2F0aW9uX3Rva2VuPzogc3RyaW5nO1xuICBwcm92aWRlcl90b2tlbj86IHN0cmluZztcblxuICBwYXNzd29yZD86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgZ2VuZGVyPzogc3RyaW5nO1xuICBwaWN0dXJlPzogc3RyaW5nO1xuICBsb2NhbGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0VmVyaWZpY2F0aW9uUmVxdWVzdCB7XG4gIHBob25lX251bWJlcj86IHN0cmluZztcbiAgZW1haWw/OiBzdHJpbmc7XG4gIC8vIOWPr+mAiSBBTlnvvIxVU0VS77yMTk9UX1VTRVIsIENVUl9VU0VSO1xuICB0YXJnZXQ/OiBzdHJpbmcgfCAnQU5ZJztcbiAgdXNhZ2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0VmVyaWZpY2F0aW9uUmVzcG9uc2Uge1xuICB2ZXJpZmljYXRpb25faWQ/OiBzdHJpbmc7XG4gIGlzX3VzZXI/OiBib29sZWFuIHwgZmFsc2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZ5UmVzcG9uc2Uge1xuICB2ZXJpZmljYXRpb25fdG9rZW4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZ5UmVxdWVzdCB7XG4gIHZlcmlmaWNhdGlvbl9jb2RlOiBzdHJpbmc7XG4gIHZlcmlmaWNhdGlvbl9pZD86IHN0cmluZztcbiAgdmVyaWZpY2F0aW9uX3Rva2VuPzogc3RyaW5nO1xuICB2ZXJzaW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVyQmluZFJlcXVlc3Qge1xuICBwcm92aWRlcl90b2tlbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyYW50UHJvdmlkZXJUb2tlblJlcXVlc3Qge1xuICBwcm92aWRlcl9pZDogc3RyaW5nO1xuICBwcm92aWRlcl9yZWRpcmVjdF91cmk/OiBzdHJpbmc7XG4gIHByb3ZpZGVyX2NvZGU/OiBzdHJpbmc7XG4gIHByb3ZpZGVyX2FjY2Vzc190b2tlbj86IHN0cmluZztcbiAgcHJvdmlkZXJfaWRfdG9rZW4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JhbnRQcm92aWRlclRva2VuUmVzcG9uc2Uge1xuICBwcm92aWRlcl90b2tlbjogc3RyaW5nO1xuICBleHBpcmVzX2luOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF0Y2hQcm92aWRlclRva2VuUmVxdWVzdCB7XG4gIHByb3ZpZGVyX3Rva2VuOiBzdHJpbmc7XG4gIHByb3ZpZGVyX2lkPzogc3RyaW5nO1xuICBwcm92aWRlcl9wYXJhbXM6IHtcbiAgICBlbmNyeXB0ZWREYXRhPzogc3RyaW5nO1xuICAgIGl2Pzogc3RyaW5nO1xuICAgIGNvZGU/OiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF0Y2hQcm92aWRlclRva2VuUmVzcG9uc2Uge1xuICBwcm92aWRlcl90b2tlbjogc3RyaW5nO1xuICBleHBpcmVzX2luOiBudW1iZXI7XG4gIHByb3ZpZGVyX3Byb2ZpbGU6IFByb3ZpZGVyUHJvZmlsZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW5Qcm92aWRlclJlZGlyZWN0VXJpUmVxdWVzdCB7XG4gIHByb3ZpZGVyX2lkOiBzdHJpbmc7XG4gIHByb3ZpZGVyX3JlZGlyZWN0X3VyaTogc3RyaW5nO1xuICBzdGF0ZTogc3RyaW5nO1xuICBvdGhlcl9wYXJhbXM/OiB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nXG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VuUHJvdmlkZXJSZWRpcmVjdFVyaVJlc3BvbnNlIHtcbiAgdXJpOiBzdHJpbmc7XG4gIHNpZ25vdXRfdXJpPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJpbmRXaXRoUHJvdmlkZXJSZXF1ZXN0IHtcbiAgcHJvdmlkZXJfdG9rZW46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCaW5kV2l0aFByb3ZpZGVyUmVxdWVzdCB7XG4gIHByb3ZpZGVyX3Rva2VuOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclByb2ZpbGVQcm92aWRlciB7XG4gIGlkPzogc3RyaW5nO1xuICBwcm92aWRlcl91c2VyX2lkPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJQcm9maWxlIHtcbiAgbmFtZT86IHN0cmluZztcbiAgcGljdHVyZT86IHN0cmluZztcbiAgdXNlcm5hbWU/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICBlbWFpbF92ZXJpZmllZD86IGJvb2xlYW47XG4gIHBob25lX251bWJlcj86IHN0cmluZztcbiAgcHJvdmlkZXJzPzogW1VzZXJQcm9maWxlUHJvdmlkZXJdO1xuICBnZW5kZXI/OiBzdHJpbmc7XG4gIGJpcnRoZGF0ZT86IHN0cmluZztcbiAgem9uZWluZm8/OiBzdHJpbmc7XG4gIGxvY2FsZT86IHN0cmluZztcbiAgY3JlYXRlZF9mcm9tPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVyUHJvZmlsZSB7XG4gIHByb3ZpZGVyX2lkOiBzdHJpbmc7XG4gIHBob25lX251bWJlcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc0J5UHJvdmlkZXJSZXF1ZXN0IHtcbiAgcHJvdmlkZXJfdG9rZW46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHcmFudFRva2VuUmVxdWVzdCB7XG4gIGNsaWVudF9zZWNyZXQ/OiBzdHJpbmc7XG4gIGNvZGU/OiBzdHJpbmc7XG4gIGdyYW50X3R5cGU/OiBzdHJpbmc7XG4gIHJlZGlyZWN0X3VyaT86IHN0cmluZztcbiAgbm9uY2U/OiBzdHJpbmc7XG4gIHJlZnJlc2hfdG9rZW4/OiBzdHJpbmc7XG4gIHNjb3BlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVuYmluZFByb3ZpZGVyUmVxdWVzdCB7XG4gIHByb3ZpZGVyX2lkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlY2tQYXNzd29yZHJSZXF1ZXN0IHtcbiAgcGFzc3dvcmQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCaW5kUGhvbmVSZXF1ZXN0IHtcbiAgcGhvbmVfbnVtYmVyOiBzdHJpbmc7XG4gIHN1ZG9fdG9rZW46IHN0cmluZztcbiAgdmVyaWZpY2F0aW9uX3Rva2VuOiBzdHJpbmc7XG4gIGNvbmZsaWN0X3Jlc29sdXRpb246IHN0cmluZ1xuICAvLyAxLiBERUZBVUxUIDAsIOm7mOiupOaPkOekuueUqOaIt+aJi+acuuWPt+W3suiiq+e7keWumlxuICAvLyAyLiBERUxFVEVfQUNDT1VOVF9UUkFOU0ZFUiAxLCDmoIforrDljp/otKblj7flt7Looqvms6jplIDvvIzlubblsIbmiYvmnLrmjaLnu5Hnu5noh6rlt7FcbiAgLy8gMy4gVFJBTlNGRVIgMiwg5LuF5o2i57uR5omL5py65Y+377yM5LiN5rOo6ZSA5Y6f5pyJ6LSm5Y+377yI5o2i57uR5ZCO5Y6f6LSm5Y+35peg5rOV55m75b2V5pe277yM5YiZ6Ieq5Yqo5rOo6ZSA5Y6f6LSm5Y+377yJXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmluZEVtYWlsUmVxdWVzdCB7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIHN1ZG9fdG9rZW46IHN0cmluZztcbiAgdmVyaWZpY2F0aW9uX3Rva2VuOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2V0UGFzc3dvcmRSZXF1ZXN0IHtcbiAgbmV3X3Bhc3N3b3JkOiBzdHJpbmc7XG4gIHN1ZG9fdG9rZW46IHN0cmluZztcbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIFNldFBhc3N3b3JkUmVxdWVzdCB7XG4gIG5ld19wYXNzd29yZDogc3RyaW5nO1xuICBzdWRvX3Rva2VuOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlUGFzc3dvcmRSZXF1ZXN0IHtcbiAgb2xkX3Bhc3N3b3JkOiBzdHJpbmc7XG4gIG5ld19wYXNzd29yZDogc3RyaW5nO1xufVxuXG4vLyBwYXNzd29yZCDlkowgdmVyaWZpY2F0aW9uX3Rva2VuIOiAjOmAieS4gO+8jOWmguaenOe7keWumuS6huaJi+acuuWPt++8jOWImeW/hemhu+S9v+eUqHZlcmlmaWNhdGlvbl90b2tlbiDov5vooYxzdWRvXG5leHBvcnQgaW50ZXJmYWNlIFN1ZG9SZXF1ZXN0IHtcbiAgcGFzc3dvcmQ/OiBzdHJpbmc7XG4gIHZlcmlmaWNhdGlvbl90b2tlbj86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1ZG9SZXNwb25zZSB7XG4gIHN1ZG9fdG9rZW4/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXaXRoU3Vkb1JlcXVlc3Qge1xuICBzdWRvX3Rva2VuOiBzdHJpbmc7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG59XG5cblxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VCb3VuZFByb3ZpZGVyUmVxdWVzdCB7XG4gIHRyYW5zX3Rva2VuOiBzdHJpbmc7XG4gIHByb3ZpZGVyX2lkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlQm91bmRQcm92aWRlclJlc3BvbnNlIHtcbiAgY2xpZW50X2lkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlVc2VyUHJvZmlsZVJlcXVlc3Qge1xuICBpZD86IFtzdHJpbmddO1xuICB1c2VybmFtZT86IHN0cmluZztcbiAgZW1haWw/OiBzdHJpbmc7XG4gIHBob25lX251bWJlcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBRdWVyeVVzZXJQcm9maWxlUmVzcG9uc2Uge1xuICB0b3RhbDogc3RyaW5nO1xuICBkYXRhOiBTaW1wbGVVc2VyUHJvZmlsZVtdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzZXRQYXNzd29yZFJlcXVlc3QgZXh0ZW5kcyBCYXNlUmVxdWVzdCB7XG4gIGVtYWlsOiBzdHJpbmdcbiAgcGhvbmVfbnVtYmVyOiBzdHJpbmdcbiAgbmV3X3Bhc3N3b3JkOiBzdHJpbmdcbiAgdmVyaWZpY2F0aW9uX3Rva2VuOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZXZpY2VBdXRob3JpemVSZXF1ZXN0IGV4dGVuZHMgQmFzZVJlcXVlc3Qge1xuICBzY29wZT86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERldmljZUF1dGhvcml6ZVJlc3BvbnNlIHtcbiAgZGV2aWNlX2NvZGU6IHN0cmluZ1xuICB1c2VyX2NvZGU6IHN0cmluZ1xuICBleHBpcmVzX2luOiBudW1iZXJcbiAgaW50ZXJ2YWw6IG51bWJlclxuICB2ZXJpZmljYXRpb25fdXJsOiBzdHJpbmdcbiAgdmVyaWZpY2F0aW9uX3VyaV9jb21wbGV0ZTogc3RyaW5nXG59XG5cbi8vIOeugOWMlueJiOeUqOaIt+S/oeaBr1xuZXhwb3J0IGludGVyZmFjZSBTaW1wbGVVc2VyUHJvZmlsZSB7XG4gIHN1Yjogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHBpY3R1cmU/OiBzdHJpbmc7XG4gIGdlbmRlcj86IHN0cmluZztcbiAgbG9jYWxlPzogc3RyaW5nO1xuICBlbWFpbD86IHN0cmluZztcbiAgcGhvbmVfbnVtYmVyPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoZWNrVXNlcm5hbWVSZXF1ZXN0IHtcbiAgdXNlcm5hbWU6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoZWNrSWZVc2VyRXhpc3RSZXF1ZXN0IHtcbiAgdXNlcm5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGVja0lmVXNlckV4aXN0UmVzcG9uc2Uge1xuICBleGlzdDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdWJsaWNLZXkge1xuICBwdWJsaWNfa2V5OiBzdHJpbmc7IC8vIOWKoOWvhueahOWFrOmSpVxuICBwdWJsaWNfa2V5X3RodW1icHJpbnQ6IHN0cmluZzsgLy8g5Yqg5a+G55qE5YWs6ZKl5oyH57q5XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW5jcnlwdFBhcmFtcyB7XG4gIGlzRW5jcnlwdD86IGJvb2xlYW47IC8vIOaYr+WQpumcgOimgeWKoOWvhlxuICBwdWJsaWNfa2V5X3RodW1icHJpbnQ/OiBzdHJpbmc7IC8vIOWKoOWvhueahOWFrOmSpeaMh+e6uVxuICBwYXJhbXM/OiBzdHJpbmc7IC8vIOWKoOWvhueahOaVsOaNrlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVyU3ViVHlwZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHByb3ZpZGVyX3N1Yl90eXBlOiAnTk9fQVVUSF9MT0dJTicgfCAnJzsgLy8gTk9fQVVUSF9MT0dJTi3lhY3lr4bnmbvlvZVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRNaW5pUHJvZ3JhbVFyQ29kZVJlcXVlc3Qge1xuICBlbnZJZDogc3RyaW5nO1xuICB3eEFwcElkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TWluaVByb2dyYW1RckNvZGVSZXNwb25zZSB7XG4gIHFyX2NvZGU6IHN0cmluZztcbiAgcXJfY29kZV9pZDogc3RyaW5nO1xuICBleHBpcmVzX2luOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TWluaVByb2dyYW1RckNvZGVTdGF0dXNSZXF1ZXN0IHtcbiAgcXJDb2RlSWQ6IHN0cmluZztcbiAgZW52SWQ6IHN0cmluZztcbiAgd3hBcHBJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldE1pbmlQcm9ncmFtUXJDb2RlU3RhdHVzUmVzcG9uc2Uge1xuICBzdGF0dXM6IHN0cmluZztcbiAgcHJvdmlkZXJfdG9rZW46IHN0cmluZztcbiAgZXhwaXJlc19pbjogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vZGlmeVVzZXJCYXNpY0luZm9SZXF1ZXN0IHtcbiAgdXNlcl9pZDogc3RyaW5nO1xuICBuaWNrbmFtZTogc3RyaW5nO1xuICB1c2VybmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBhdmF0YXJfdXJsOiBzdHJpbmc7XG59XG4iXX0=
@@ -1,4 +1,4 @@
1
- import { GetVerificationRequest, GetVerificationResponse, UserProfile, UserInfo, SignInRequest, SignUpRequest, VerifyRequest, VerifyResponse, GenProviderRedirectUriRequest, GenProviderRedirectUriResponse, GrantProviderTokenRequest, GrantProviderTokenResponse, PatchProviderTokenRequest, PatchProviderTokenResponse, SignInWithProviderRequest, BindWithProviderRequest, TransByProviderRequest, GrantTokenRequest, UserProfileProvider, UnbindProviderRequest, CheckPasswordrRequest, BindPhoneRequest, BindEmailRequest, SetPasswordRequest, ChangeBindedProviderRequest, ChangeBindedProviderResponse, UpdatePasswordRequest, SudoResponse, SudoRequest, GetCustomSignTicketFn, QueryUserProfileRequest, QueryUserProfileResponse, ResetPasswordRequest, DeviceAuthorizeRequest, DeviceAuthorizeResponse, CheckUsernameRequest, CheckIfUserExistRequest, CheckIfUserExistResponse, WithSudoRequest, PublicKey, EncryptParams, ProviderSubType } from './models';
1
+ import { GetVerificationRequest, GetVerificationResponse, UserProfile, UserInfo, SignInRequest, SignUpRequest, VerifyRequest, VerifyResponse, GenProviderRedirectUriRequest, GenProviderRedirectUriResponse, GrantProviderTokenRequest, GrantProviderTokenResponse, PatchProviderTokenRequest, PatchProviderTokenResponse, SignInWithProviderRequest, BindWithProviderRequest, TransByProviderRequest, GrantTokenRequest, UserProfileProvider, UnbindProviderRequest, CheckPasswordrRequest, BindPhoneRequest, BindEmailRequest, SetPasswordRequest, ChangeBindedProviderRequest, ChangeBindedProviderResponse, UpdatePasswordRequest, SudoResponse, SudoRequest, GetCustomSignTicketFn, QueryUserProfileRequest, QueryUserProfileResponse, ResetPasswordRequest, DeviceAuthorizeRequest, DeviceAuthorizeResponse, CheckUsernameRequest, CheckIfUserExistRequest, CheckIfUserExistResponse, WithSudoRequest, PublicKey, EncryptParams, ProviderSubType, GetMiniProgramQrCodeRequest, GetMiniProgramQrCodeStatusRequest, GetMiniProgramQrCodeResponse, GetMiniProgramQrCodeStatusResponse, ModifyUserBasicInfoRequest } from './models';
2
2
  import { SimpleStorage, RequestFunction } from '../oauth2client/interface';
3
3
  import { OAuth2Client } from '../oauth2client/oauth2client';
4
4
  import { Credentials } from '../oauth2client/models';
@@ -34,6 +34,7 @@ export declare class Auth {
34
34
  grantProviderToken(params: GrantProviderTokenRequest): Promise<GrantProviderTokenResponse>;
35
35
  patchProviderToken(params: PatchProviderTokenRequest): Promise<PatchProviderTokenResponse>;
36
36
  signInWithProvider(params: SignInWithProviderRequest): Promise<Credentials>;
37
+ signInWithWechat(params?: any): Promise<Credentials>;
37
38
  bindWithProvider(params: BindWithProviderRequest): Promise<void>;
38
39
  getUserProfile(params: {
39
40
  version?: string;
@@ -60,6 +61,7 @@ export declare class Auth {
60
61
  getCurUserVerification(params: GetVerificationRequest): Promise<GetVerificationResponse>;
61
62
  changeBindedProvider(params: ChangeBindedProviderRequest): Promise<ChangeBindedProviderResponse>;
62
63
  setUserProfile(params: UserProfile): Promise<UserProfile>;
64
+ updateUserBasicInfo(params: ModifyUserBasicInfoRequest): Promise<void>;
63
65
  queryUserProfile(params: QueryUserProfileRequest): Promise<QueryUserProfileResponse>;
64
66
  setCustomSignFunc(getTickFn: GetCustomSignTicketFn): void;
65
67
  signInWithCustomTicket(params?: {
@@ -92,4 +94,6 @@ export declare class Auth {
92
94
  captcha_token: string;
93
95
  expires_in: number;
94
96
  }>;
97
+ getMiniProgramCode(params: GetMiniProgramQrCodeRequest): Promise<GetMiniProgramQrCodeResponse>;
98
+ checkMiniProgramCode(params: GetMiniProgramQrCodeStatusRequest): Promise<GetMiniProgramQrCodeStatusResponse>;
95
99
  }
@@ -293,6 +293,26 @@ var Auth = (function () {
293
293
  });
294
294
  });
295
295
  };
296
+ Auth.prototype.signInWithWechat = function (params) {
297
+ if (params === void 0) { params = {}; }
298
+ return __awaiter(this, void 0, void 0, function () {
299
+ var credentials;
300
+ return __generator(this, function (_a) {
301
+ switch (_a.label) {
302
+ case 0: return [4, this.config.request(ApiUrls.AUTH_SIGN_IN_WITH_WECHAT_URL, {
303
+ method: 'POST',
304
+ body: params,
305
+ })];
306
+ case 1:
307
+ credentials = _a.sent();
308
+ return [4, this.config.credentialsClient.setCredentials(credentials)];
309
+ case 2:
310
+ _a.sent();
311
+ return [2, Promise.resolve(credentials)];
312
+ }
313
+ });
314
+ });
315
+ };
296
316
  Auth.prototype.bindWithProvider = function (params) {
297
317
  return __awaiter(this, void 0, void 0, function () {
298
318
  return __generator(this, function (_a) {
@@ -548,6 +568,17 @@ var Auth = (function () {
548
568
  });
549
569
  });
550
570
  };
571
+ Auth.prototype.updateUserBasicInfo = function (params) {
572
+ return __awaiter(this, void 0, void 0, function () {
573
+ return __generator(this, function (_a) {
574
+ return [2, this.config.request(ApiUrls.USER_BASIC_EDIT_URL, {
575
+ method: 'POST',
576
+ withCredentials: true,
577
+ body: params,
578
+ })];
579
+ });
580
+ });
581
+ };
551
582
  Auth.prototype.queryUserProfile = function (params) {
552
583
  return __awaiter(this, void 0, void 0, function () {
553
584
  var searchParams;
@@ -737,7 +768,27 @@ var Auth = (function () {
737
768
  });
738
769
  });
739
770
  };
771
+ Auth.prototype.getMiniProgramCode = function (params) {
772
+ return __awaiter(this, void 0, void 0, function () {
773
+ return __generator(this, function (_a) {
774
+ return [2, this.config.request(ApiUrls.GET_MINIPROGRAM_QRCODE, {
775
+ method: 'POST',
776
+ body: params,
777
+ })];
778
+ });
779
+ });
780
+ };
781
+ Auth.prototype.checkMiniProgramCode = function (params) {
782
+ return __awaiter(this, void 0, void 0, function () {
783
+ return __generator(this, function (_a) {
784
+ return [2, this.config.request(ApiUrls.GET_MINIPROGRAM_QRCODE_STATUS, {
785
+ method: 'POST',
786
+ body: params,
787
+ })];
788
+ });
789
+ });
790
+ };
740
791
  return Auth;
741
792
  }());
742
793
  export { Auth };
743
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdXRoL2FwaXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFWixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQThDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUUzRSxPQUFPLEVBQUUsT0FBTyxFQUFrQixNQUFNLG9CQUFvQixDQUFBO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDcEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBZ0JqRDtJQWtCRSxjQUFZLElBQWlCO1FBQ3JCLElBQUEsT0FBTyxHQUFLLElBQUksUUFBVCxDQUFTO1FBQ3RCLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQTtRQUN6QyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ2pCLElBQU0sV0FBVyxHQUFHO2dCQUNsQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ3pCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO2FBQ3RCLENBQUE7WUFDRCxZQUFZLEdBQUcsSUFBSSxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUE7U0FDN0M7UUFDRCxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osSUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7WUFDM0QsSUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLFlBQ3pCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUN2QixPQUFPLEVBQUUsV0FBVyxFQUNwQixPQUFPLEVBQUUs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QTs2QkFDdEIsRUFBQTs7OztLQUNGO0lBTVksaUNBQWtCLEdBQS9COzs7Z0JBQ0UsV0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBa0IsT0FBTyxDQUFDLGlCQUFpQixFQUFFO3dCQUNyRSxNQUFNLEVBQUUsTUFBTTt3QkFDZCxJQUFJLEVBQUU7NEJBQ0osV0FBVyxFQUFFLE1BQU07eUJBQ3BCO3FCQUNGLENBQUMsRUFBQTs7O0tBQ0g7SUFNWSxnQ0FBaUIsR0FBOUIsVUFBK0IsRUFBOEM7WUFBNUMsS0FBSyxXQUFBLEVBQUUsR0FBRyxTQUFBOzs7Z0JBQ3pDLFdBQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQWdELE9BQU8sQ0FBQyx1QkFBdUIsRUFBRTt3QkFDekcsTUFBTSxFQUFFLE1BQU07d0JBQ2QsSUFBSSxFQUFFLEVBQUUsS0FBSyxPQUFBLEVBQUUsR0FBRyxLQUFBLEVBQUU7d0JBQ3BCLGVBQWUsRUFBRSxLQUFLO3FCQUN2QixDQUFDLEVBQUE7OztLQUNIO0lBRVksZ0NBQWlCLEdBQTlCLFVBQStCLEVBQW1DO1lBQWpDLEtBQUssV0FBQSxFQUFFLG9CQUF3QixFQUF4QixZQUFZLG1CQUFHLFNBQVMsS0FBQTs7O2dCQUM5RCxXQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFnRCxPQUFPLENBQUMsZ0JBQWdCLEVBQUU7d0JBQ2xHLE1BQU0sRUFBRSxNQUFNO3dCQUNkLElBQUksRUFBRSxFQUFFLEtBQUssT0FBQSxFQUFFLFlBQVksY0FBQSxFQUFFO3dCQUM3QixlQUFlLEVBQUUsS0FBSztxQkFDdkIsQ0FBQyxFQUFBOzs7S0FDSDtJQUNILFdBQUM7QUFBRCxDQUFDLEFBeHFCRCxJQXdxQkMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCdcblxuaW1wb3J0IHsgQXBpVXJscywgQXBpVXJsc1YyIH0gZnJvbSAnLi9jb25zdHMnXG5pbXBvcnQge1xuICBHZXRWZXJpZmljYXRpb25SZXF1ZXN0LFxuICBHZXRWZXJpZmljYXRpb25SZXNwb25zZSxcbiAgVXNlclByb2ZpbGUsXG4gIFVzZXJJbmZvLFxuICBTaWduSW5SZXF1ZXN0LFxuICBTaWduVXBSZXF1ZXN0LFxuICBWZXJpZnlSZXF1ZXN0LFxuICBWZXJpZnlSZXNwb25zZSxcbiAgR2VuUHJvdmlkZXJSZWRpcmVjdFVyaVJlcXVlc3QsXG4gIEdlblByb3ZpZGVyUmVkaXJlY3RVcmlSZXNwb25zZSxcbiAgR3JhbnRQcm92aWRlclRva2VuUmVxdWVzdCxcbiAgR3JhbnRQcm92aWRlclRva2VuUmVzcG9uc2UsXG4gIFBhdGNoUHJvdmlkZXJUb2tlblJlcXVlc3QsXG4gIFBhdGNoUHJvdmlkZXJUb2tlblJlc3BvbnNlLFxuICBTaWduSW5XaXRoUHJvdmlkZXJSZXF1ZXN0LFxuICBCaW5kV2l0aFByb3ZpZGVyUmVxdWVzdCxcbiAgVHJhbnNCeVByb3ZpZGVyUmVxdWVzdCxcbiAgR3JhbnRUb2tlblJlcXVlc3QsXG4gIFVzZXJQcm9maWxlUHJvdmlkZXIsXG4gIFVuYmluZFByb3ZpZGVyUmVxdWVzdCxcbiAgQ2hlY2tQYXNzd29yZHJSZXF1ZXN0LFxuICBCaW5kUGhvbmVSZXF1ZXN0LFxuICBCaW5kRW1haWxSZXF1ZXN0LFxuICBTZXRQYXNzd29yZFJlcXVlc3QsXG4gIENoYW5nZUJpbmRlZFByb3ZpZGVyUmVxdWVzdCxcbiAgQ2hhbmdlQmluZGVkUHJvdmlkZXJSZXNwb25zZSxcbiAgVXBkYXRlUGFzc3dvcmRSZXF1ZXN0LFxuICBTdWRvUmVzcG9uc2UsXG4gIFN1ZG9SZXF1ZXN0LFxuICBHZXRDdXN0b21TaWduVGlja2V0Rm4sXG4gIFF1ZXJ5VXNlclByb2ZpbGVSZXF1ZXN0LFxuICBRdWVyeVVzZXJQcm9maWxlUmVzcG9uc2UsXG4gIFJlc2V0UGFzc3dvcmRSZXF1ZXN0LFxuICBEZXZpY2VBdXRob3JpemVSZXF1ZXN0LFxuICBEZXZpY2VBdXRob3JpemVSZXNwb25zZSxcbiAgQ2hlY2tVc2VybmFtZVJlcXVlc3QsXG4gIENoZWNrSWZVc2VyRXhpc3RSZXF1ZXN0LFxuICBDaGVja0lmVXNlckV4aXN0UmVzcG9uc2UsXG4gIFdpdGhTdWRvUmVxdWVzdCxcbiAgUHVibGljS2V5LFxuICBFbmNyeXB0UGFyYW1zLFxuICBQcm92aWRlclN1YlR5cGUsXG59IGZyb20gJy4vbW9kZWxzJ1xuaW1wb3J0IHsgU2ltcGxlU3RvcmFnZSwgUmVxdWVzdEZ1bmN0aW9uIH0gZnJvbSAnLi4vb2F1dGgyY2xpZW50L2ludGVyZmFjZSdcbmltcG9ydCB7IE9BdXRoMkNsaWVudCwgZGVmYXVsdFN0b3JhZ2UgfSBmcm9tICcuLi9vYXV0aDJjbGllbnQvb2F1dGgyY2xpZW50J1xuaW1wb3J0IHsgQ3JlZGVudGlhbHMgfSBmcm9tICcuLi9vYXV0aDJjbGllbnQvbW9kZWxzJ1xuaW1wb3J0IHsgQ2FwdGNoYSwgQ2FwdGNoYU9wdGlvbnMgfSBmcm9tICcuLi9jYXB0Y2hhL2NhcHRjaGEnXG5pbXBvcnQgeyBkZWVwQ2xvbmUgfSBmcm9tICcuLi91dGlscydcbmltcG9ydCB7IGdldEVuY3J5cHRJbmZvIH0gZnJvbSAnLi4vdXRpbHMvZW5jcnlwdCdcblxuZXhwb3J0IGludGVyZmFjZSBBdXRoT3B0aW9ucyB7XG4gIGFwaU9yaWdpbjogc3RyaW5nXG4gIGNsaWVudElkOiBzdHJpbmdcbiAgY3JlZGVudGlhbHNDbGllbnQ/OiBPQXV0aDJDbGllbnRcbiAgcmVxdWVzdD86IFJlcXVlc3RGdW5jdGlvblxuICBiYXNlUmVxdWVzdD86IFJlcXVlc3RGdW5jdGlvblxuICBzdG9yYWdlPzogU2ltcGxlU3RvcmFnZVxuICBhbm9ueW1vdXNTaWduSW5GdW5jPzogKENyZWRlbnRpYWxzKSA9PiBQcm9taXNlPENyZWRlbnRpYWxzIHwgdm9pZD5cbiAgY2FwdGNoYU9wdGlvbnM/OiBQYXJ0aWFsPENhcHRjaGFPcHRpb25zPlxufVxuXG4vKipcbiAqIEF1dGhcbiAqL1xuZXhwb3J0IGNsYXNzIEF1dGgge1xuICBwcml2YXRlIHN0YXRpYyBwYXJzZVBhcmFtc1RvU2VhcmNoKHBhcmFtczogYW55KTogc3RyaW5nIHtcbiAgICBPYmplY3Qua2V5cyhwYXJhbXMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgaWYgKCFwYXJhbXNba2V5XSkge1xuICAgICAgICBkZWxldGUgcGFyYW1zW2tleV1cbiAgICAgIH1cbiAgICB9KVxuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMocGFyYW1zIGFzIGFueSlcbiAgICByZXR1cm4gc2VhcmNoUGFyYW1zLnRvU3RyaW5nKClcbiAgfVxuXG4gIHByaXZhdGUgY29uZmlnOiBBdXRoT3B0aW9uc1xuICBwcml2YXRlIGdldEN1c3RvbVNpZ25UaWNrZXRGbj86IEdldEN1c3RvbVNpZ25UaWNrZXRGblxuXG4gIC8qKlxuICAgKiBjb25zdHJ1Y3RvclxuICAgKiBAcGFyYW0ge0F1dGhPcHRpb25zfSBvcHRzXG4gICAqL1xuICBjb25zdHJ1Y3RvcihvcHRzOiBBdXRoT3B0aW9ucykge1xuICAgIGxldCB7IHJlcXVlc3QgfSA9IG9wdHNcbiAgICBsZXQgb0F1dGgyQ2xpZW50ID0gb3B0cy5jcmVkZW50aWFsc0NsaWVudFxuICAgIGlmICghb0F1dGgyQ2xpZW50KSB7XG4gICAgICBjb25zdCBpbml0T3B0aW9ucyA9IHtcbiAgICAgICAgYXBpT3JpZ2luOiBvcHRzLmFwaU9yaWdpbixcbiAgICAgICAgY2xpZW50SWQ6IG9wdHMuY2xpZW50SWQsXG4gICAgICAgIHN0b3JhZ2U6IG9wdHMuc3RvcmFnZSxcbiAgICAgIH1cbiAgICAgIG9BdXRoMkNsaWVudCA9IG5ldyBPQXV0aDJDbGllbnQoaW5pdE9wdGlvbnMpXG4gICAgfVxuICAgIGlmICghcmVxdWVzdCkge1xuICAgICAgY29uc3QgYmFzZVJlcXVlc3QgPSBvQXV0aDJDbGllbnQucmVxdWVzdC5iaW5kKG9BdXRoMkNsaWVudClcbiAgICAgIGNvbnN0IGNhcHRjaGEgPSBuZXcgQ2FwdGNoYSh7XG4gICAgICAgIGNsaWVudElkOiBvcHRzLmNsaWVudElkLFxuICAgICAgICByZXF1ZXN0OiBiYXNlUmVxdWVzdCxcbiAgICAgICAgc3RvcmFnZTogb3B0cy5zdG9yYWdlLFxuICAgICAgICAuLi5vcHRzLmNhcHRjaGFPcHRpb25zLFxuICAgICAgfSlcbiAgICAgIHJlcXVlc3QgPSBjYXB0Y2hhLnJlcXVlc3QuYmluZChjYXB0Y2hhKVxuICAgIH1cbiAgICB0aGlzLmNvbmZpZyA9IHtcbiAgICAgIGFwaU9yaWdpbjogb3B0cy5hcGlPcmlnaW4sXG4gICAgICBjbGllbnRJZDogb3B0cy5jbGllbnRJZCxcbiAgICAgIHJlcXVlc3QsXG4gICAgICBjcmVkZW50aWFsc0NsaWVudDogb0F1dGgyQ2xpZW50LFxuICAgICAgc3RvcmFnZTogb3B0cy5zdG9yYWdlIHx8IGRlZmF1bHRTdG9yYWdlLFxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiDmoLnmja7niYjmnKzmoIfor4bvvIzlpITnkIblvoXor7fmsYLnmoR1cmzlkoxwYXJhbXNcbiAgICogQHBhcmFtIHBhcmFtc1xuICAgKiBAcGFyYW0ga2V5XG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwdWJsaWMgZ2V0UGFyYW1zQnlWZXJzaW9uKHBhcmFtczogYW55LCBrZXk6IHN0cmluZykge1xuICAgIGNvbnN0IHBhcmFtc1RlbXAgPSBkZWVwQ2xvbmUocGFyYW1zKVxuICAgIGNvbnN0IHVybCA9IHsgdjI6IEFwaVVybHNWMiB9W3BhcmFtc1RlbXA/LnZlcnNpb25dPy5ba2V5XSB8fCBBcGlVcmxzW2tleV1cblxuICAgIGlmIChwYXJhbXNUZW1wKSB7XG4gICAgICBkZWxldGUgcGFyYW1zVGVtcC52ZXJzaW9uXG4gICAgfVxuXG4gICAgcmV0dXJuIHsgcGFyYW1zOiBwYXJhbXNUZW1wLCB1cmwgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNpZ24gaW4uXG4gICAqIEBwYXJhbSB7U2lnbkluUmVxdWVzdH0gcGFyYW1zIEEgU2lnbkluUmVxdWVzdCBPYmplY3QuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8Q3JlZGVudGlhbHM+fSBBIFByb21pc2U8Q3JlZGVudGlhbHM+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzaWduSW4ocGFyYW1zOiBTaWduSW5SZXF1ZXN0KTogUHJvbWlzZTxDcmVkZW50aWFscz4ge1xuICAgIGNvbnN0IHZlcnNpb24gPSBwYXJhbXMudmVyc2lvbiB8fCAndjEnXG4gICAgY29uc3QgcmVzID0gdGhpcy5nZXRQYXJhbXNCeVZlcnNpb24ocGFyYW1zLCAnQVVUSF9TSUdOX0lOX1VSTCcpXG4gICAgaWYgKHJlcy5wYXJhbXMucXVlcnkpIHtcbiAgICAgIGRlbGV0ZSByZXMucGFyYW1zLnF1ZXJ5XG4gICAgfVxuXG4gICAgY29uc3QgYm9keSA9IGF3YWl0IHRoaXMuZ2V0RW5jcnlwdFBhcmFtcyhyZXMucGFyYW1zKVxuICAgIGNvbnN0IGNyZWRlbnRpYWxzOiBDcmVkZW50aWFscyA9IGF3YWl0IHRoaXMuY29uZmlnLnJlcXVlc3Q8Q3JlZGVudGlhbHM+KHJlcy51cmwsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keSxcbiAgICB9KVxuICAgIGF3YWl0IHRoaXMuY29uZmlnLmNyZWRlbnRpYWxzQ2xpZW50LnNldENyZWRlbnRpYWxzKHtcbiAgICAgIC4uLmNyZWRlbnRpYWxzLFxuICAgICAgdmVyc2lvbixcbiAgICB9KVxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoY3JlZGVudGlhbHMpXG4gIH1cblxuICAvKipcbiAgICogU2lnbiBpbiBBbm9ueW1vdXNseVxuICAgKiBAcmV0dXJuIHtQcm9taXNlPENyZWRlbnRpYWxzPn0gQSBQcm9taXNlPENyZWRlbnRpYWxzPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2lnbkluQW5vbnltb3VzbHkoZGF0YToge1xuICAgIHByb3ZpZGVyX3Rva2VuPzogc3RyaW5nXG4gIH0gPSB7fSwpOiBQcm9taXNlPENyZWRlbnRpYWxzPiB7XG4gICAgY29uc3QgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5jb25maWcucmVxdWVzdDxDcmVkZW50aWFscz4oQXBpVXJscy5BVVRIX1NJR05fSU5fQU5PTllNT1VTTFlfVVJMLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IGRhdGEsXG4gICAgfSlcbiAgICBhd2FpdCB0aGlzLmNvbmZpZy5jcmVkZW50aWFsc0NsaWVudC5zZXRDcmVkZW50aWFscyhjcmVkZW50aWFscylcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGNyZWRlbnRpYWxzKVxuICB9XG5cbiAgLyoqXG4gICAqIFNpZ24gdXAuXG4gICAqIEBwYXJhbSB7U2lnblVwUmVxdWVzdH0gcGFyYW1zIEEgU2lnblVwUmVxdWVzdCBPYmplY3QuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8Q3JlZGVudGlhbHM+fSBBIFByb21pc2U8Q3JlZGVudGlhbHM+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzaWduVXAocGFyYW1zOiBTaWduVXBSZXF1ZXN0KTogUHJvbWlzZTxDcmVkZW50aWFscz4ge1xuICAgIGNvbnN0IGRhdGE6IENyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5jb25maWcucmVxdWVzdDxDcmVkZW50aWFscz4oQXBpVXJscy5BVVRIX1NJR05fVVBfVVJMLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICB9KVxuICAgIGF3YWl0IHRoaXMuY29uZmlnLmNyZWRlbnRpYWxzQ2xpZW50LnNldENyZWRlbnRpYWxzKGRhdGEpXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShkYXRhKVxuICB9XG5cbiAgLyoqXG4gICAqIFNpZ24gb3V0LlxuICAgKiBAcmV0dXJuIHtPYmplY3R9IEEgUHJvbWlzZTx2b2lkPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2lnbk91dCgpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IGFjY2Vzc1Rva2VuOiBzdHJpbmcgPSBhd2FpdCB0aGlzLmNvbmZpZy5jcmVkZW50aWFsc0NsaWVudC5nZXRBY2Nlc3NUb2tlbigpXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuY29uZmlnLnJlcXVlc3QoQXBpVXJscy5BVVRIX1JFVk9LRV9VUkwsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keToge1xuICAgICAgICB0b2tlbjogYWNjZXNzVG9rZW4sXG4gICAgICB9LFxuICAgIH0pXG4gICAgYXdhaXQgdGhpcy5jb25maWcuY3JlZGVudGlhbHNDbGllbnQuc2V0Q3JlZGVudGlhbHMoKVxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZGF0YSlcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHZlcmlmaWNhdGlvbi5cbiAgICogQHBhcmFtIHtHZXRWZXJpZmljYXRpb25SZXF1ZXN0fSBwYXJhbXMgQSBHZXRWZXJpZmljYXRpb25SZXF1ZXN0IE9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxHZXRWZXJpZmljYXRpb25SZXNwb25zZT59IEEgUHJvbWlzZTxHZXRWZXJpZmljYXRpb25SZXNwb25zZT4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFZlcmlmaWNhdGlvbihwYXJhbXM6IEdldFZlcmlmaWNhdGlvblJlcXVlc3QpOiBQcm9taXNlPEdldFZlcmlmaWNhdGlvblJlc3BvbnNlPiB7XG4gICAgbGV0IHdpdGhDcmVkZW50aWFscyA9IGZhbHNlXG4gICAgLy8g5Y+R6YCB55+t5L+h5pe277yM5aaC5p6c5pe257uZ5b2T5YmN55So5oi35Y+R77yM5YiZ6ZyA6KaB5bim5LiK6Ym05p2D5L+h5oGvXG4gICAgaWYgKHBhcmFtcy50YXJnZXQgPT09ICdDVVJfVVNFUicpIHtcbiAgICAgIHdpdGhDcmVkZW50aWFscyA9IHRydWVcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaGFzTG9naW4gPSBhd2FpdCB0aGlzLmhhc0xvZ2luU3RhdGUoKVxuICAgICAgaWYgKGhhc0xvZ2luKSB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFscyA9IHRydWVcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8R2V0VmVyaWZpY2F0aW9uUmVzcG9uc2U+KEFwaVVybHMuVkVSSUZJQ0FUSU9OX1VSTCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgICB3aXRoQ2FwdGNoYTogdHJ1ZSxcbiAgICAgIHdpdGhDcmVkZW50aWFscyxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqICBWZXJpZnkgdGhlIGNvZGVcbiAgICogQHBhcmFtIHtWZXJpZnlSZXF1ZXN0fSBwYXJhbXMgQSBWZXJpZnlSZXF1ZXN0IE9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxWZXJpZnlSZXNwb25zZT59IEEgUHJvbWlzZTxWZXJpZnlSZXNwb25zZT4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHZlcmlmeShwYXJhbXM6IFZlcmlmeVJlcXVlc3QpOiBQcm9taXNlPFZlcmlmeVJlc3BvbnNlPiB7XG4gICAgY29uc3QgcmVzID0gdGhpcy5nZXRQYXJhbXNCeVZlcnNpb24ocGFyYW1zLCAnVkVSSUZZX1VSTCcpXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuY29uZmlnLnJlcXVlc3Q8VmVyaWZ5UmVzcG9uc2U+KHJlcy51cmwsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keTogcmVzLnBhcmFtcyxcbiAgICB9KVxuXG4gICAgaWYgKHBhcmFtcz8udmVyc2lvbiA9PT0gJ3YyJykge1xuICAgICAgYXdhaXQgdGhpcy5jb25maWcuY3JlZGVudGlhbHNDbGllbnQuc2V0Q3JlZGVudGlhbHMoe1xuICAgICAgICAuLi5kYXRhLFxuICAgICAgICB2ZXJzaW9uOiAndjInLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gZGF0YVxuICB9XG5cbiAgLyoqXG4gICAqIEdlbiBwcm92aWRlciByZWRpcmVjdCB1cmkuXG4gICAqIEBwYXJhbSB7R2VuUHJvdmlkZXJSZWRpcmVjdFVyaVJlcXVlc3R9IHBhcmFtcyBBIEdlblByb3ZpZGVyUmVkaXJlY3RVcmlSZXF1ZXN0IG9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxHZW5Qcm92aWRlclJlZGlyZWN0VXJpUmVzcG9uc2U+fSBBIFByb21pc2U8R2VuUHJvdmlkZXJSZWRpcmVjdFVyaVJlc3BvbnNlPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2VuUHJvdmlkZXJSZWRpcmVjdFVyaShwYXJhbXM6IEdlblByb3ZpZGVyUmVkaXJlY3RVcmlSZXF1ZXN0KTogUHJvbWlzZTxHZW5Qcm92aWRlclJlZGlyZWN0VXJpUmVzcG9uc2U+IHtcbiAgICBsZXQgdXJsID0gYCR7QXBpVXJscy5QUk9WSURFUl9VUklfVVJMfT9jbGllbnRfaWQ9JHt0aGlzLmNvbmZpZy5jbGllbnRJZH0mcHJvdmlkZXJfaWQ9JHtcbiAgICAgIHBhcmFtcy5wcm92aWRlcl9pZFxuICAgIH0mcmVkaXJlY3RfdXJpPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHBhcmFtcy5wcm92aWRlcl9yZWRpcmVjdF91cmkpfSZzdGF0ZT0ke3BhcmFtcy5zdGF0ZX1gXG4gICAgY29uc3QgeyBvdGhlcl9wYXJhbXM6IG90aGVyUGFyYW1zIH0gPSBwYXJhbXNcbiAgICBpZiAob3RoZXJQYXJhbXMpIHtcbiAgICAgIGlmICh0eXBlb2Ygb3RoZXJQYXJhbXMuc2lnbl9vdXRfdXJpID09PSAnc3RyaW5nJyAmJiBvdGhlclBhcmFtcy5zaWduX291dF91cmkubGVuZ3RoID4gMCkge1xuICAgICAgICB1cmwgKz0gYCZvdGhlcl9wYXJhbXNbc2lnbl9vdXRfdXJpXT0ke290aGVyUGFyYW1zLnNpZ25fb3V0X3VyaX1gXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PEdlblByb3ZpZGVyUmVkaXJlY3RVcmlSZXNwb25zZT4odXJsLCB7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgcHJvdmlkZXIgdG9rZW4uXG4gICAqIEBwYXJhbSB7R3JhbnRQcm92aWRlclRva2VuUmVxdWVzdH0gcGFyYW1zIEEgR3JhbnRQcm92aWRlclRva2VuUmVxdWVzdCBvYmplY3QuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8R3JhbnRQcm92aWRlclRva2VuUmVzcG9uc2U+fSBBIFByb21pc2U8R3JhbnRQcm92aWRlclRva2VuUmVzcG9uc2U+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBncmFudFByb3ZpZGVyVG9rZW4ocGFyYW1zOiBHcmFudFByb3ZpZGVyVG9rZW5SZXF1ZXN0KTogUHJvbWlzZTxHcmFudFByb3ZpZGVyVG9rZW5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PEdyYW50UHJvdmlkZXJUb2tlblJlc3BvbnNlPihBcGlVcmxzLlBST1ZJREVSX1RPS0VOX1VSTCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCBwcm92aWRlciB0b2tlbi5cbiAgICogQHBhcmFtIHtQYXRjaFByb3ZpZGVyVG9rZW5SZXF1ZXN0fSBwYXJhbXMgQSBQYXRjaFByb3ZpZGVyVG9rZW5SZXF1ZXN0IG9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxQYXRjaFByb3ZpZGVyVG9rZW5SZXNwb25zZT59IEEgUHJvbWlzZTxQYXRjaFByb3ZpZGVyVG9rZW5SZXNwb25zZT4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHBhdGNoUHJvdmlkZXJUb2tlbihwYXJhbXM6IFBhdGNoUHJvdmlkZXJUb2tlblJlcXVlc3QpOiBQcm9taXNlPFBhdGNoUHJvdmlkZXJUb2tlblJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8UGF0Y2hQcm92aWRlclRva2VuUmVzcG9uc2U+KEFwaVVybHMuUFJPVklERVJfVE9LRU5fVVJMLCB7XG4gICAgICBtZXRob2Q6ICdQQVRDSCcsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduaW4gd2l0aCBwcm92aWRlciByZXF1ZXN0LlxuICAgKiBAcGFyYW0ge1NpZ25JbldpdGhQcm92aWRlclJlcXVlc3R9IHBhcmFtcyBBIFNpZ25JbldpdGhQcm92aWRlclJlcXVlc3Qgb2JqZWN0LlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPENyZWRlbnRpYWxzPn0gQSBQcm9taXNlPENyZWRlbnRpYWxzPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2lnbkluV2l0aFByb3ZpZGVyKHBhcmFtczogU2lnbkluV2l0aFByb3ZpZGVyUmVxdWVzdCk6IFByb21pc2U8Q3JlZGVudGlhbHM+IHtcbiAgICBjb25zdCByZXMgPSB0aGlzLmdldFBhcmFtc0J5VmVyc2lvbihwYXJhbXMsICdBVVRIX1NJR05fSU5fV0lUSF9QUk9WSURFUl9VUkwnKVxuICAgIGNvbnN0IGNyZWRlbnRpYWxzOiBDcmVkZW50aWFscyA9IGF3YWl0IHRoaXMuY29uZmlnLnJlcXVlc3Q8Q3JlZGVudGlhbHM+KHJlcy51cmwsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keTogcmVzLnBhcmFtcyxcbiAgICB9KVxuICAgIGF3YWl0IHRoaXMuY29uZmlnLmNyZWRlbnRpYWxzQ2xpZW50LnNldENyZWRlbnRpYWxzKHtcbiAgICAgIC4uLmNyZWRlbnRpYWxzLFxuICAgICAgdmVyc2lvbjogcGFyYW1zPy52ZXJzaW9uIHx8ICd2MScsXG4gICAgfSlcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGNyZWRlbnRpYWxzKVxuICB9XG5cbiAgLyoqXG4gICAqIEJpbmQgd2l0aCBwcm92aWRlclxuICAgKiBAcGFyYW0ge0JpbmRXaXRoUHJvdmlkZXJSZXF1ZXN0fSBwYXJhbXMgQSBCaW5kV2l0aFByb3ZpZGVyUmVxdWVzdCBvYmplY3QuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IEEgUHJvbWlzZTxhbnk+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBiaW5kV2l0aFByb3ZpZGVyKHBhcmFtczogQmluZFdpdGhQcm92aWRlclJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxhbnk+KEFwaVVybHMuUFJPVklERVJfQklORF9VUkwsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keTogcGFyYW1zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB1c2VyIHByb2ZpbGUuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8VXNlclByb2ZpbGU+fSBBIFByb21pc2U8VXNlclByb2ZpbGU+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRVc2VyUHJvZmlsZShwYXJhbXM6IHsgdmVyc2lvbj86IHN0cmluZyB9KTogUHJvbWlzZTxVc2VyUHJvZmlsZT4ge1xuICAgIHJldHVybiB0aGlzLmdldFVzZXJJbmZvKHBhcmFtcylcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHVzZXIgaW5mby5cbiAgICogQHJldHVybiB7UHJvbWlzZTxVc2VySW5mbz59IEEgUHJvbWlzZTxVc2VyUHJvZmlsZT4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFVzZXJJbmZvKHBhcmFtczogeyB2ZXJzaW9uPzogc3RyaW5nOyBxdWVyeT86IHN0cmluZyB9ID0ge30pOiBQcm9taXNlPFVzZXJJbmZvPiB7XG4gICAgY29uc3QgcmVzID0gdGhpcy5nZXRQYXJhbXNCeVZlcnNpb24ocGFyYW1zLCAnVVNFUl9NRV9VUkwnKVxuXG4gICAgaWYgKHJlcy5wYXJhbXM/LnF1ZXJ5KSB7XG4gICAgICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHJlcy5wYXJhbXMucXVlcnkgYXMgYW55KVxuICAgICAgcmVzLnVybCArPSBgPyR7c2VhcmNoUGFyYW1zLnRvU3RyaW5nKCl9YFxuICAgIH1cblxuICAgIGNvbnN0IHVzZXJJbmZvID0gYXdhaXQgdGhpcy5jb25maWcucmVxdWVzdDxVc2VySW5mbz4ocmVzLnVybCwge1xuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KVxuXG4gICAgaWYgKHVzZXJJbmZvLnN1Yikge1xuICAgICAgdXNlckluZm8udWlkID0gdXNlckluZm8uc3ViXG4gICAgfVxuXG4gICAgcmV0dXJuIHVzZXJJbmZvXG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB1c2VyIGluZm8gYnkgd2VkYSBwbHVnaW4uXG4gICAqIEByZXR1cm4ge1Byb21pc2U8YW55Pn0gQSBQcm9taXNlPGFueT4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFdlZGFVc2VySW5mbygpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHVzZXJJbmZvID0gYXdhaXQgdGhpcy5jb25maWcucmVxdWVzdDxhbnk+KEFwaVVybHMuV0VEQV9VU0VSX1VSTCwge1xuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KVxuICAgIHJldHVybiB1c2VySW5mb1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBtZVxuICAgKiBAcGFyYW0gcGFyYW1zXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZGVsZXRlTWUocGFyYW1zOiBXaXRoU3Vkb1JlcXVlc3QpOiBQcm9taXNlPFVzZXJQcm9maWxlPiB7XG4gICAgY29uc3QgcmVzID0gdGhpcy5nZXRQYXJhbXNCeVZlcnNpb24ocGFyYW1zLCAnVVNFUl9NRV9VUkwnKVxuICAgIGNvbnN0IHVybCA9IGAke3Jlcy51cmx9PyR7QXV0aC5wYXJzZVBhcmFtc1RvU2VhcmNoKHJlcy5wYXJhbXMpfWBcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxVc2VyUHJvZmlsZT4odXJsLCB7XG4gICAgICBtZXRob2Q6ICdERUxFVEUnLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogaGFzTG9naW5TdGF0ZSBjaGVjayBpZiBoYXMgbG9naW4gc3RhdGVcbiAgICogQHJldHVybiB7UHJvbWlzZTxib29sZWFuPn0gQSBQcm9taXNlPGJvb2xlYW4+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBoYXNMb2dpblN0YXRlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmNvbmZpZy5jcmVkZW50aWFsc0NsaWVudC5nZXRBY2Nlc3NUb2tlbigpXG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaGFzTG9naW5TdGF0ZVN5bmMoKTogQ3JlZGVudGlhbHMgfCBudWxsIHtcbiAgICBjb25zdCBjcmVkZW50aWFscyA9IHRoaXMuY29uZmlnLmNyZWRlbnRpYWxzQ2xpZW50LmdldENyZWRlbnRpYWxzU3luYygpXG4gICAgcmV0dXJuIGNyZWRlbnRpYWxzXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0TG9naW5TdGF0ZSgpOiBQcm9taXNlPENyZWRlbnRpYWxzIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5jcmVkZW50aWFsc0NsaWVudC5nZXRDcmVkZW50aWFsc0FzeW5jKClcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFucyBieSBwcm92aWRlci5cbiAgICogQHBhcmFtIHtUcmFuc0J5UHJvdmlkZXJSZXF1ZXN0fSBwYXJhbXMgQSBUcmFuc0J5UHJvdmlkZXJSZXF1ZXN0IG9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxDcmVkZW50aWFscz59IEEgUHJvbWlzZTxDcmVkZW50aWFscz4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHRyYW5zQnlQcm92aWRlcihwYXJhbXM6IFRyYW5zQnlQcm92aWRlclJlcXVlc3QpOiBQcm9taXNlPENyZWRlbnRpYWxzPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8Q3JlZGVudGlhbHM+KEFwaVVybHMuVVNFUl9UUkFOU19CWV9QUk9WSURFUl9VUkwsIHtcbiAgICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50IHRva2VuLlxuICAgKiBAcGFyYW0ge0dyYW50VG9rZW5SZXF1ZXN0fSBwYXJhbXMgQSBHcmFudFRva2VuUmVxdWVzdCBvYmplY3QuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8Q3JlZGVudGlhbHM+fSBBIFByb21pc2U8Q3JlZGVudGlhbHM+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBncmFudFRva2VuKHBhcmFtczogR3JhbnRUb2tlblJlcXVlc3QpOiBQcm9taXNlPENyZWRlbnRpYWxzPiB7XG4gICAgY29uc3QgcmVzID0gdGhpcy5nZXRQYXJhbXNCeVZlcnNpb24ocGFyYW1zLCAnQVVUSF9UT0tFTl9VUkwnKVxuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PENyZWRlbnRpYWxzPihyZXMudXJsLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IHJlcy5wYXJhbXMsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHByb3ZpZGUgbGlzdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxVc2VyUHJvZmlsZVByb3ZpZGVyPn0gQSBQcm9taXNlPFVzZXJQcm9maWxlUHJvdmlkZXI+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRQcm92aWRlcnMoKTogUHJvbWlzZTxVc2VyUHJvZmlsZVByb3ZpZGVyPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8VXNlclByb2ZpbGVQcm92aWRlcj4oQXBpVXJscy5QUk9WSURFUl9MSVNULCB7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogdW5iaW5kIHByb3ZpZGVyLlxuICAgKiBAcGFyYW0ge1VuYmluZFByb3ZpZGVyUmVxdWVzdH0gcGFyYW1zXG4gICAqIEByZXR1cm4ge1Byb21pc2U8YW55Pn1cbiAgICovXG4gIHB1YmxpYyBhc3luYyB1bmJpbmRQcm92aWRlcihwYXJhbXM6IFVuYmluZFByb3ZpZGVyUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PGFueT4oYCR7QXBpVXJscy5QUk9WSURFUl9VTkJJTkRfVVJMfS8ke3BhcmFtcy5wcm92aWRlcl9pZH1gLCB7XG4gICAgICBtZXRob2Q6ICdERUxFVEUnLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogY2hlY2sgUGFzc3dvcmQuXG4gICAqIEBwYXJhbSB7Q2hlY2tQYXNzd29yZHJSZXF1ZXN0fSBwYXJhbXNcbiAgICogQHJldHVybiB7UHJvbWlzZTxhbnk+fVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNoZWNrUGFzc3dvcmQocGFyYW1zOiBDaGVja1Bhc3N3b3JkclJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxhbnk+KGAke0FwaVVybHMuQ0hFQ0tfUFdEX1VSTH1gLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIGNoZWNrIFBhc3N3b3JkLlxuICAgKiBAcGFyYW0ge0NoZWNrUGFzc3dvcmRyUmVxdWVzdH0gcGFyYW1zXG4gICAqIEByZXR1cm4ge1Byb21pc2U8YW55Pn1cbiAgICovXG4gIHB1YmxpYyBhc3luYyBiaW5kUGhvbmUocGFyYW1zOiBCaW5kUGhvbmVSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8YW55PihgJHtBcGlVcmxzLkJJTkRfQ09OVEFDVF9VUkx9YCwge1xuICAgICAgbWV0aG9kOiAnUEFUQ0gnLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgYm9keTogcGFyYW1zLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogY2hlY2sgUGFzc3dvcmQuXG4gICAqIEBwYXJhbSB7Q2hlY2tQYXNzd29yZHJSZXF1ZXN0fSBwYXJhbXNcbiAgICogQHJldHVybiB7UHJvbWlzZTxhbnk+fVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGJpbmRFbWFpbChwYXJhbXM6IEJpbmRFbWFpbFJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxhbnk+KGAke0FwaVVybHMuQklORF9DT05UQUNUX1VSTH1gLCB7XG4gICAgICBtZXRob2Q6ICdQQVRDSCcsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgUGFzc3dvcmQuXG4gICAqIEBwYXJhbSB7U2V0UGFzc3dvcmRyUmVxdWVzdH0gcGFyYW1zXG4gICAqIEByZXR1cm4ge1Byb21pc2U8YW55Pn1cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzZXRQYXNzd29yZChwYXJhbXM6IFNldFBhc3N3b3JkUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PGFueT4oYCR7QXBpVXJscy5BVVRIX1NFVF9QQVNTV09SRH1gLCB7XG4gICAgICBtZXRob2Q6ICdQQVRDSCcsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiB1cGRhdGVQYXNzd29yZEJ5T2xkIOS9v+eUqOaXp+WvhueggeS/ruaUueWvhuegge+8jOWmguaenOW3sue7j+e7keWumuaJi+acuuWPt++8jOivt+WFiO+8mnN1ZG/vvIzlho3kv67mlLnlr4bnoIFcbiAgICogQHBhcmFtIHtTZXRQYXNzd29yZHJSZXF1ZXN0fSBwYXJhbXNcbiAgICogQHJldHVybiB7UHJvbWlzZTxhbnk+fVxuICAgKi9cbiAgcHVibGljIGFzeW5jIHVwZGF0ZVBhc3N3b3JkQnlPbGQocGFyYW1zOiBVcGRhdGVQYXNzd29yZFJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBzdWRvVG9rZW4gPSBhd2FpdCB0aGlzLnN1ZG8oeyBwYXNzd29yZDogcGFyYW1zLm9sZF9wYXNzd29yZCB9KVxuICAgIHJldHVybiB0aGlzLnNldFBhc3N3b3JkKHtcbiAgICAgIHN1ZG9fdG9rZW46IHN1ZG9Ub2tlbi5zdWRvX3Rva2VuLFxuICAgICAgbmV3X3Bhc3N3b3JkOiBwYXJhbXMubmV3X3Bhc3N3b3JkLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogc3Vkb1xuICAgKiBAcGFyYW0ge3N1ZG99IHBhcmFtc1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPGFueT59XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc3VkbyhwYXJhbXM6IFN1ZG9SZXF1ZXN0KTogUHJvbWlzZTxTdWRvUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxTdWRvUmVzcG9uc2U+KGAke0FwaVVybHMuU1VET19VUkx9YCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGN1cnJlbnQgdXNlciB2ZXJpZmljYXRpb24uXG4gICAqIEBwYXJhbSB7R2V0VmVyaWZpY2F0aW9uUmVxdWVzdH0gcGFyYW1zIEEgR2V0VmVyaWZpY2F0aW9uUmVxdWVzdCBPYmplY3QuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8R2V0VmVyaWZpY2F0aW9uUmVzcG9uc2U+fSBBIFByb21pc2U8R2V0VmVyaWZpY2F0aW9uUmVzcG9uc2U+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRDdXJVc2VyVmVyaWZpY2F0aW9uKHBhcmFtczogR2V0VmVyaWZpY2F0aW9uUmVxdWVzdCk6IFByb21pc2U8R2V0VmVyaWZpY2F0aW9uUmVzcG9uc2U+IHtcbiAgICBwYXJhbXMudGFyZ2V0ID0gJ0NVUl9VU0VSJ1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PEdldFZlcmlmaWNhdGlvblJlc3BvbnNlPihBcGlVcmxzLlZFUklGSUNBVElPTl9VUkwsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keTogcGFyYW1zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgd2l0aENhcHRjaGE6IHRydWUsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBjaGFuZ2UgYmluZGVkIHByb3ZpZGVyLlxuICAgKiBAcGFyYW0ge0dldFZlcmlmaWNhdGlvblJlcXVlc3R9IHBhcmFtcyBBIEdldFZlcmlmaWNhdGlvblJlcXVlc3QgT2JqZWN0LlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPEdldFZlcmlmaWNhdGlvblJlc3BvbnNlPn0gQSBQcm9taXNlPEdldFZlcmlmaWNhdGlvblJlc3BvbnNlPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2hhbmdlQmluZGVkUHJvdmlkZXIocGFyYW1zOiBDaGFuZ2VCaW5kZWRQcm92aWRlclJlcXVlc3QpOiBQcm9taXNlPENoYW5nZUJpbmRlZFByb3ZpZGVyUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxDaGFuZ2VCaW5kZWRQcm92aWRlclJlc3BvbnNlPihgJHtBcGlVcmxzLlBST1ZJREVSX0xJU1R9LyR7cGFyYW1zLnByb3ZpZGVyX2lkfS90cmFuc2AsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keToge1xuICAgICAgICBwcm92aWRlcl90cmFuc190b2tlbjogcGFyYW1zLnRyYW5zX3Rva2VuLFxuICAgICAgfSxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFBhdGNoIHRoZSB1c2VyIHByb2ZpbGUuXG4gICAqIEBwYXJhbSB7VXNlclByb2ZpbGV9IHBhcmFtcyBBIFVzZXJQcm9maWxlIE9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxVc2VyUHJvZmlsZT59IEEgUHJvbWlzZTxVc2VyUHJvZmlsZT4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNldFVzZXJQcm9maWxlKHBhcmFtczogVXNlclByb2ZpbGUpOiBQcm9taXNlPFVzZXJQcm9maWxlPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8VXNlclByb2ZpbGU+KEFwaVVybHMuVVNFUl9QUklGSUxFX1VSTCwge1xuICAgICAgbWV0aG9kOiAnUEFUQ0gnLFxuICAgICAgYm9keTogcGFyYW1zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogUGF0Y2ggdGhlIHVzZXIgcHJvZmlsZS5cbiAgICogQHBhcmFtIHtRdWVyeVVzZXJQcm9maWxlUmVxfSBhcHBlbmRlZF9wYXJhbXMgQSBRdWVyeVVzZXJQcm9maWxlUmVxIE9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxVc2VyUHJvZmlsZT59IEEgUHJvbWlzZTxVc2VyUHJvZmlsZT4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHF1ZXJ5VXNlclByb2ZpbGUocGFyYW1zOiBRdWVyeVVzZXJQcm9maWxlUmVxdWVzdCk6IFByb21pc2U8UXVlcnlVc2VyUHJvZmlsZVJlc3BvbnNlPiB7XG4gICAgLy8gbGV0IHVybCA9IG5ldyBVUkwoQXBpVXJscy5VU0VSX1FVRVJZX1VSTCk7XG4gICAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhwYXJhbXMgYXMgYW55KVxuICAgIC8vIHVybC5zZWFyY2ggPSBzZWFyY2hQYXJhbXMudG9TdHJpbmcoKTtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxRdWVyeVVzZXJQcm9maWxlUmVzcG9uc2U+KGAke0FwaVVybHMuVVNFUl9RVUVSWV9VUkx9PyR7c2VhcmNoUGFyYW1zLnRvU3RyaW5nKCl9YCwge1xuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIHNldEN1c3RvbVNpZ25GdW5jIHNldCB0aGUgZ2V0IHRpY2tldCBmdW5jdGlvblxuICAgKiBAcGFyYW0gZ2V0VGlja0ZuXG4gICAqL1xuICBwdWJsaWMgc2V0Q3VzdG9tU2lnbkZ1bmMoZ2V0VGlja0ZuOiBHZXRDdXN0b21TaWduVGlja2V0Rm4pIHtcbiAgICB0aGlzLmdldEN1c3RvbVNpZ25UaWNrZXRGbiA9IGdldFRpY2tGblxuICB9XG5cbiAgLyoqXG4gICAqIFNpZ25JbldpdGhDdXN0b21UaWNrZXQgY3VzdG9tIHNpZ25JblxuICAgKiBAY29uc3RydWN0b3JcbiAgICovXG4gIHB1YmxpYyBhc3luYyBzaWduSW5XaXRoQ3VzdG9tVGlja2V0KHBhcmFtcz86IHsgdmVyc2lvbj86IHN0cmluZyB9KTogUHJvbWlzZTxDcmVkZW50aWFscz4ge1xuICAgIGNvbnN0IGN1c3RvbVRpY2tldCA9IGF3YWl0IHRoaXMuZ2V0Q3VzdG9tU2lnblRpY2tldEZuKClcbiAgICByZXR1cm4gdGhpcy5zaWduSW5XaXRoUHJvdmlkZXIoe1xuICAgICAgLi4ucGFyYW1zLFxuICAgICAgcHJvdmlkZXJfaWQ6ICdjdXN0b20nLFxuICAgICAgcHJvdmlkZXJfdG9rZW46IGN1c3RvbVRpY2tldCxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IHBhc3N3b3JkXG4gICAqIEBwYXJhbSB7UmVzZXRQYXNzd29yZFJlcXVlc3R9IHBhcmFtc1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICogQG1lbWJlcm9mIEF1dGhcbiAgICovXG4gIHB1YmxpYyBhc3luYyByZXNldFBhc3N3b3JkKHBhcmFtczogUmVzZXRQYXNzd29yZFJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdChBcGlVcmxzLkFVVEhfUkVTRVRfUEFTU1dPUkQsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keTogcGFyYW1zLFxuICAgICAgLy8gd2l0aENyZWRlbnRpYWxzOiB0cnVlXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBkZXZpY2UgYXV0aG9yaXphdGlvblxuICAgKiBAcGFyYW0ge0RldmljZUF1dGhvcml6ZVJlcXVlc3R9IHBhcmFtc1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxEZXZpY2VBdXRob3JpemVSZXNwb25zZT59XG4gICAqIEBtZW1iZXJvZiBBdXRoXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZGV2aWNlQXV0aG9yaXplKHBhcmFtczogRGV2aWNlQXV0aG9yaXplUmVxdWVzdCk6IFByb21pc2U8RGV2aWNlQXV0aG9yaXplUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdChBcGlVcmxzLkFVVEhfR0VUX0RFVklDRV9DT0RFLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICB9KVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGNoZWNrVXNlcm5hbWUocGFyYW1zOiBDaGVja1VzZXJuYW1lUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0KEFwaVVybHMuQ0hFQ0tfVVNFUk5BTUUsIHtcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSlcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjaGVja0lmVXNlckV4aXN0KHBhcmFtczogQ2hlY2tJZlVzZXJFeGlzdFJlcXVlc3QpOiBQcm9taXNlPENoZWNrSWZVc2VyRXhpc3RSZXNwb25zZT4ge1xuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMocGFyYW1zIGFzIGFueSlcblxuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PENoZWNrSWZVc2VyRXhpc3RSZXNwb25zZT4oYCR7QXBpVXJscy5DSEVDS19JRl9VU0VSX0VYSVNUfT8ke3NlYXJjaFBhcmFtcy50b1N0cmluZygpfWAsIHtcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgfSlcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBsb2dpblNjb3BlKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmNyZWRlbnRpYWxzQ2xpZW50LmdldFNjb3BlKClcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBsb2dpbkdyb3VwcygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmNyZWRlbnRpYWxzQ2xpZW50LmdldEdyb3VwcygpXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVmcmVzaFRva2VuRm9yY2UocGFyYW1zOiB7IHZlcnNpb24/OiBzdHJpbmcgfSkge1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzOiBDcmVkZW50aWFscyA9IGF3YWl0IHRoaXMuY29uZmlnLmNyZWRlbnRpYWxzQ2xpZW50LmdldENyZWRlbnRpYWxzKClcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5jb25maWcuY3JlZGVudGlhbHNDbGllbnQucmVmcmVzaFRva2VuKHtcbiAgICAgIC4uLmNyZWRlbnRpYWxzLFxuICAgICAgdmVyc2lvbjogcGFyYW1zPy52ZXJzaW9uIHx8ICd2MScsXG4gICAgfSlcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRDcmVkZW50aWFscygpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcuY3JlZGVudGlhbHNDbGllbnQuZ2V0Q3JlZGVudGlhbHMoKVxuICB9XG5cbiAgLyoqXG4gICAqIGdldCBwdWJsaWMga2V5IGZvciByZXF1ZXN0IHBhcmFtcyBlbmNyeXB0aW9uXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0UHVibGljS2V5KCk6IFByb21pc2U8UHVibGljS2V5PiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8UHVibGljS2V5PihBcGlVcmxzVjIuQVVUSF9QVUJMSUNfS0VZLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IHt9LFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogZW5jcnlwdCByZXF1ZXN0IHBhcmFtc1xuICAgKiBAcGFyYW0gcGFyYW1zXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0RW5jcnlwdFBhcmFtcyhwYXJhbXM6IFJlY29yZDxhbnksIGFueT4pOiBQcm9taXNlPEVuY3J5cHRQYXJhbXM+IHtcbiAgICBjb25zdCBwYXlsb2FkID0gZGVlcENsb25lKHBhcmFtcylcblxuICAgIGlmICghcGF5bG9hZC5pc0VuY3J5cHQpIHtcbiAgICAgIHJldHVybiBwYXJhbXNcbiAgICB9XG5cbiAgICBsZXQgcHVibGljS2V5ID0gJydcbiAgICBsZXQgcHVibGljX2tleV90aHVtYnByaW50ID0gJydcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmdldFB1YmxpY0tleSgpXG4gICAgICBwdWJsaWNLZXkgPSByZXMucHVibGljX2tleVxuICAgICAgcHVibGljX2tleV90aHVtYnByaW50ID0gcmVzLnB1YmxpY19rZXlfdGh1bWJwcmludFxuICAgIH0gY2F0Y2ggKGVycm9yKSB7fVxuXG4gICAgaWYgKCFwdWJsaWNLZXkgfHwgIXB1YmxpY19rZXlfdGh1bWJwcmludCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdwdWJsaWNfa2V5IG9yIHB1YmxpY19rZXlfdGh1bWJwcmludCBpcyBlbXB0eScpXG4gICAgfVxuXG4gICAgZGVsZXRlIHBheWxvYWQuaXNFbmNyeXB0XG5cbiAgICByZXR1cm4ge1xuICAgICAgcGFyYW1zOiBnZXRFbmNyeXB0SW5mbyh7IHB1YmxpY0tleSwgcGF5bG9hZCB9KSxcbiAgICAgIHB1YmxpY19rZXlfdGh1bWJwcmludCxcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogZ2V0IHByb3ZpZGVyIHN1YiB0eXBlXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0UHJvdmlkZXJTdWJUeXBlKCk6IFByb21pc2U8UHJvdmlkZXJTdWJUeXBlPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8UHJvdmlkZXJTdWJUeXBlPihBcGlVcmxzLkdFVF9QUk9WSURFUl9UWVBFLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IHtcbiAgICAgICAgcHJvdmlkZXJfaWQ6ICd3ZWRhJyxcbiAgICAgIH0sXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgcHJvdmlkZXIgc3ViIHR5cGVcbiAgICogQHJldHVybnNcbiAgICovXG4gIHB1YmxpYyBhc3luYyB2ZXJpZnlDYXB0Y2hhRGF0YSh7IHRva2VuLCBrZXkgfTogeyB0b2tlbjogc3RyaW5nOyBrZXk6IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8eyBjYXB0Y2hhX3Rva2VuOiBzdHJpbmc7IGV4cGlyZXNfaW46IG51bWJlciB9PihBcGlVcmxzLlZFUklGWV9DQVBUQ0hBX0RBVEFfVVJMLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IHsgdG9rZW4sIGtleSB9LFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiBmYWxzZSxcbiAgICB9KVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGNyZWF0ZUNhcHRjaGFEYXRhKHsgc3RhdGUsIHJlZGlyZWN0X3VyaSA9IHVuZGVmaW5lZCB9KSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8eyBjYXB0Y2hhX3Rva2VuOiBzdHJpbmc7IGV4cGlyZXNfaW46IG51bWJlciB9PihBcGlVcmxzLkNBUFRDSEFfREFUQV9VUkwsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keTogeyBzdGF0ZSwgcmVkaXJlY3RfdXJpIH0sXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IGZhbHNlLFxuICAgIH0pXG4gIH1cbn1cbiJdfQ==
794
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdXRoL2FwaXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFWixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQW1EN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUUzRSxPQUFPLEVBQUUsT0FBTyxFQUFrQixNQUFNLG9CQUFvQixDQUFBO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDcEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBZ0JqRDtJQWtCRSxjQUFZLElBQWlCO1FBQ3JCLElBQUEsT0FBTyxHQUFLLElBQUksUUFBVCxDQUFTO1FBQ3RCLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQTtRQUN6QyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ2pCLElBQU0sV0FBVyxHQUFHO2dCQUNsQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ3pCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO2FBQ3RCLENBQUE7WUFDRCxZQUFZLEdBQUcsSUFBSSxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUE7U0FDN0M7UUFDRCxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osSUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7WUFDM0QsSUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLFlBQ3pCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUN2QixPQUFPLEVBQUUsV0FBVyxFQUNwQixPQUFPLEVBQUUs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LE9BQUEsRUFBRSxHQUFHLEtBQUEsRUFBRTt3QkFDcEIsZUFBZSxFQUFFLEtBQUs7cUJBQ3ZCLENBQUMsRUFBQTs7O0tBQ0g7SUFFWSxnQ0FBaUIsR0FBOUIsVUFBK0IsRUFBbUM7WUFBakMsS0FBSyxXQUFBLEVBQUUsb0JBQXdCLEVBQXhCLFlBQVksbUJBQUcsU0FBUyxLQUFBOzs7Z0JBQzlELFdBQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQWdELE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRTt3QkFDbEcsTUFBTSxFQUFFLE1BQU07d0JBQ2QsSUFBSSxFQUFFLEVBQUUsS0FBSyxPQUFBLEVBQUUsWUFBWSxjQUFBLEVBQUU7d0JBQzdCLGVBQWUsRUFBRSxLQUFLO3FCQUN2QixDQUFDLEVBQUE7OztLQUNIO0lBTVksaUNBQWtCLEdBQS9CLFVBQWdDLE1BQW1DOzs7Z0JBQ2pFLFdBQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQStCLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRTt3QkFDdkYsTUFBTSxFQUFFLE1BQU07d0JBQ2QsSUFBSSxFQUFFLE1BQU07cUJBQ2IsQ0FBQyxFQUFBOzs7S0FDSDtJQU1ZLG1DQUFvQixHQUFqQyxVQUFrQyxNQUF5Qzs7O2dCQUN6RSxXQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFxQyxPQUFPLENBQUMsNkJBQTZCLEVBQUU7d0JBQ3BHLE1BQU0sRUFBRSxNQUFNO3dCQUNkLElBQUksRUFBRSxNQUFNO3FCQUNiLENBQUMsRUFBQTs7O0tBQ0g7SUFDSCxXQUFDO0FBQUQsQ0FBQyxBQXZ0QkQsSUF1dEJDIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnXG5cbmltcG9ydCB7IEFwaVVybHMsIEFwaVVybHNWMiB9IGZyb20gJy4vY29uc3RzJ1xuaW1wb3J0IHtcbiAgR2V0VmVyaWZpY2F0aW9uUmVxdWVzdCxcbiAgR2V0VmVyaWZpY2F0aW9uUmVzcG9uc2UsXG4gIFVzZXJQcm9maWxlLFxuICBVc2VySW5mbyxcbiAgU2lnbkluUmVxdWVzdCxcbiAgU2lnblVwUmVxdWVzdCxcbiAgVmVyaWZ5UmVxdWVzdCxcbiAgVmVyaWZ5UmVzcG9uc2UsXG4gIEdlblByb3ZpZGVyUmVkaXJlY3RVcmlSZXF1ZXN0LFxuICBHZW5Qcm92aWRlclJlZGlyZWN0VXJpUmVzcG9uc2UsXG4gIEdyYW50UHJvdmlkZXJUb2tlblJlcXVlc3QsXG4gIEdyYW50UHJvdmlkZXJUb2tlblJlc3BvbnNlLFxuICBQYXRjaFByb3ZpZGVyVG9rZW5SZXF1ZXN0LFxuICBQYXRjaFByb3ZpZGVyVG9rZW5SZXNwb25zZSxcbiAgU2lnbkluV2l0aFByb3ZpZGVyUmVxdWVzdCxcbiAgQmluZFdpdGhQcm92aWRlclJlcXVlc3QsXG4gIFRyYW5zQnlQcm92aWRlclJlcXVlc3QsXG4gIEdyYW50VG9rZW5SZXF1ZXN0LFxuICBVc2VyUHJvZmlsZVByb3ZpZGVyLFxuICBVbmJpbmRQcm92aWRlclJlcXVlc3QsXG4gIENoZWNrUGFzc3dvcmRyUmVxdWVzdCxcbiAgQmluZFBob25lUmVxdWVzdCxcbiAgQmluZEVtYWlsUmVxdWVzdCxcbiAgU2V0UGFzc3dvcmRSZXF1ZXN0LFxuICBDaGFuZ2VCaW5kZWRQcm92aWRlclJlcXVlc3QsXG4gIENoYW5nZUJpbmRlZFByb3ZpZGVyUmVzcG9uc2UsXG4gIFVwZGF0ZVBhc3N3b3JkUmVxdWVzdCxcbiAgU3Vkb1Jlc3BvbnNlLFxuICBTdWRvUmVxdWVzdCxcbiAgR2V0Q3VzdG9tU2lnblRpY2tldEZuLFxuICBRdWVyeVVzZXJQcm9maWxlUmVxdWVzdCxcbiAgUXVlcnlVc2VyUHJvZmlsZVJlc3BvbnNlLFxuICBSZXNldFBhc3N3b3JkUmVxdWVzdCxcbiAgRGV2aWNlQXV0aG9yaXplUmVxdWVzdCxcbiAgRGV2aWNlQXV0aG9yaXplUmVzcG9uc2UsXG4gIENoZWNrVXNlcm5hbWVSZXF1ZXN0LFxuICBDaGVja0lmVXNlckV4aXN0UmVxdWVzdCxcbiAgQ2hlY2tJZlVzZXJFeGlzdFJlc3BvbnNlLFxuICBXaXRoU3Vkb1JlcXVlc3QsXG4gIFB1YmxpY0tleSxcbiAgRW5jcnlwdFBhcmFtcyxcbiAgUHJvdmlkZXJTdWJUeXBlLFxuICBHZXRNaW5pUHJvZ3JhbVFyQ29kZVJlcXVlc3QsXG4gIEdldE1pbmlQcm9ncmFtUXJDb2RlU3RhdHVzUmVxdWVzdCxcbiAgR2V0TWluaVByb2dyYW1RckNvZGVSZXNwb25zZSxcbiAgR2V0TWluaVByb2dyYW1RckNvZGVTdGF0dXNSZXNwb25zZSxcbiAgTW9kaWZ5VXNlckJhc2ljSW5mb1JlcXVlc3QsXG59IGZyb20gJy4vbW9kZWxzJ1xuaW1wb3J0IHsgU2ltcGxlU3RvcmFnZSwgUmVxdWVzdEZ1bmN0aW9uIH0gZnJvbSAnLi4vb2F1dGgyY2xpZW50L2ludGVyZmFjZSdcbmltcG9ydCB7IE9BdXRoMkNsaWVudCwgZGVmYXVsdFN0b3JhZ2UgfSBmcm9tICcuLi9vYXV0aDJjbGllbnQvb2F1dGgyY2xpZW50J1xuaW1wb3J0IHsgQ3JlZGVudGlhbHMgfSBmcm9tICcuLi9vYXV0aDJjbGllbnQvbW9kZWxzJ1xuaW1wb3J0IHsgQ2FwdGNoYSwgQ2FwdGNoYU9wdGlvbnMgfSBmcm9tICcuLi9jYXB0Y2hhL2NhcHRjaGEnXG5pbXBvcnQgeyBkZWVwQ2xvbmUgfSBmcm9tICcuLi91dGlscydcbmltcG9ydCB7IGdldEVuY3J5cHRJbmZvIH0gZnJvbSAnLi4vdXRpbHMvZW5jcnlwdCdcblxuZXhwb3J0IGludGVyZmFjZSBBdXRoT3B0aW9ucyB7XG4gIGFwaU9yaWdpbjogc3RyaW5nXG4gIGNsaWVudElkOiBzdHJpbmdcbiAgY3JlZGVudGlhbHNDbGllbnQ/OiBPQXV0aDJDbGllbnRcbiAgcmVxdWVzdD86IFJlcXVlc3RGdW5jdGlvblxuICBiYXNlUmVxdWVzdD86IFJlcXVlc3RGdW5jdGlvblxuICBzdG9yYWdlPzogU2ltcGxlU3RvcmFnZVxuICBhbm9ueW1vdXNTaWduSW5GdW5jPzogKENyZWRlbnRpYWxzKSA9PiBQcm9taXNlPENyZWRlbnRpYWxzIHwgdm9pZD5cbiAgY2FwdGNoYU9wdGlvbnM/OiBQYXJ0aWFsPENhcHRjaGFPcHRpb25zPlxufVxuXG4vKipcbiAqIEF1dGhcbiAqL1xuZXhwb3J0IGNsYXNzIEF1dGgge1xuICBwcml2YXRlIHN0YXRpYyBwYXJzZVBhcmFtc1RvU2VhcmNoKHBhcmFtczogYW55KTogc3RyaW5nIHtcbiAgICBPYmplY3Qua2V5cyhwYXJhbXMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgaWYgKCFwYXJhbXNba2V5XSkge1xuICAgICAgICBkZWxldGUgcGFyYW1zW2tleV1cbiAgICAgIH1cbiAgICB9KVxuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMocGFyYW1zIGFzIGFueSlcbiAgICByZXR1cm4gc2VhcmNoUGFyYW1zLnRvU3RyaW5nKClcbiAgfVxuXG4gIHByaXZhdGUgY29uZmlnOiBBdXRoT3B0aW9uc1xuICBwcml2YXRlIGdldEN1c3RvbVNpZ25UaWNrZXRGbj86IEdldEN1c3RvbVNpZ25UaWNrZXRGblxuXG4gIC8qKlxuICAgKiBjb25zdHJ1Y3RvclxuICAgKiBAcGFyYW0ge0F1dGhPcHRpb25zfSBvcHRzXG4gICAqL1xuICBjb25zdHJ1Y3RvcihvcHRzOiBBdXRoT3B0aW9ucykge1xuICAgIGxldCB7IHJlcXVlc3QgfSA9IG9wdHNcbiAgICBsZXQgb0F1dGgyQ2xpZW50ID0gb3B0cy5jcmVkZW50aWFsc0NsaWVudFxuICAgIGlmICghb0F1dGgyQ2xpZW50KSB7XG4gICAgICBjb25zdCBpbml0T3B0aW9ucyA9IHtcbiAgICAgICAgYXBpT3JpZ2luOiBvcHRzLmFwaU9yaWdpbixcbiAgICAgICAgY2xpZW50SWQ6IG9wdHMuY2xpZW50SWQsXG4gICAgICAgIHN0b3JhZ2U6IG9wdHMuc3RvcmFnZSxcbiAgICAgIH1cbiAgICAgIG9BdXRoMkNsaWVudCA9IG5ldyBPQXV0aDJDbGllbnQoaW5pdE9wdGlvbnMpXG4gICAgfVxuICAgIGlmICghcmVxdWVzdCkge1xuICAgICAgY29uc3QgYmFzZVJlcXVlc3QgPSBvQXV0aDJDbGllbnQucmVxdWVzdC5iaW5kKG9BdXRoMkNsaWVudClcbiAgICAgIGNvbnN0IGNhcHRjaGEgPSBuZXcgQ2FwdGNoYSh7XG4gICAgICAgIGNsaWVudElkOiBvcHRzLmNsaWVudElkLFxuICAgICAgICByZXF1ZXN0OiBiYXNlUmVxdWVzdCxcbiAgICAgICAgc3RvcmFnZTogb3B0cy5zdG9yYWdlLFxuICAgICAgICAuLi5vcHRzLmNhcHRjaGFPcHRpb25zLFxuICAgICAgfSlcbiAgICAgIHJlcXVlc3QgPSBjYXB0Y2hhLnJlcXVlc3QuYmluZChjYXB0Y2hhKVxuICAgIH1cbiAgICB0aGlzLmNvbmZpZyA9IHtcbiAgICAgIGFwaU9yaWdpbjogb3B0cy5hcGlPcmlnaW4sXG4gICAgICBjbGllbnRJZDogb3B0cy5jbGllbnRJZCxcbiAgICAgIHJlcXVlc3QsXG4gICAgICBjcmVkZW50aWFsc0NsaWVudDogb0F1dGgyQ2xpZW50LFxuICAgICAgc3RvcmFnZTogb3B0cy5zdG9yYWdlIHx8IGRlZmF1bHRTdG9yYWdlLFxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiDmoLnmja7niYjmnKzmoIfor4bvvIzlpITnkIblvoXor7fmsYLnmoR1cmzlkoxwYXJhbXNcbiAgICogQHBhcmFtIHBhcmFtc1xuICAgKiBAcGFyYW0ga2V5XG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwdWJsaWMgZ2V0UGFyYW1zQnlWZXJzaW9uKHBhcmFtczogYW55LCBrZXk6IHN0cmluZykge1xuICAgIGNvbnN0IHBhcmFtc1RlbXAgPSBkZWVwQ2xvbmUocGFyYW1zKVxuICAgIGNvbnN0IHVybCA9IHsgdjI6IEFwaVVybHNWMiB9W3BhcmFtc1RlbXA/LnZlcnNpb25dPy5ba2V5XSB8fCBBcGlVcmxzW2tleV1cblxuICAgIGlmIChwYXJhbXNUZW1wKSB7XG4gICAgICBkZWxldGUgcGFyYW1zVGVtcC52ZXJzaW9uXG4gICAgfVxuXG4gICAgcmV0dXJuIHsgcGFyYW1zOiBwYXJhbXNUZW1wLCB1cmwgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNpZ24gaW4uXG4gICAqIEBwYXJhbSB7U2lnbkluUmVxdWVzdH0gcGFyYW1zIEEgU2lnbkluUmVxdWVzdCBPYmplY3QuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8Q3JlZGVudGlhbHM+fSBBIFByb21pc2U8Q3JlZGVudGlhbHM+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzaWduSW4ocGFyYW1zOiBTaWduSW5SZXF1ZXN0KTogUHJvbWlzZTxDcmVkZW50aWFscz4ge1xuICAgIGNvbnN0IHZlcnNpb24gPSBwYXJhbXMudmVyc2lvbiB8fCAndjEnXG4gICAgY29uc3QgcmVzID0gdGhpcy5nZXRQYXJhbXNCeVZlcnNpb24ocGFyYW1zLCAnQVVUSF9TSUdOX0lOX1VSTCcpXG4gICAgaWYgKHJlcy5wYXJhbXMucXVlcnkpIHtcbiAgICAgIGRlbGV0ZSByZXMucGFyYW1zLnF1ZXJ5XG4gICAgfVxuXG4gICAgY29uc3QgYm9keSA9IGF3YWl0IHRoaXMuZ2V0RW5jcnlwdFBhcmFtcyhyZXMucGFyYW1zKVxuICAgIGNvbnN0IGNyZWRlbnRpYWxzOiBDcmVkZW50aWFscyA9IGF3YWl0IHRoaXMuY29uZmlnLnJlcXVlc3Q8Q3JlZGVudGlhbHM+KHJlcy51cmwsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keSxcbiAgICB9KVxuICAgIGF3YWl0IHRoaXMuY29uZmlnLmNyZWRlbnRpYWxzQ2xpZW50LnNldENyZWRlbnRpYWxzKHtcbiAgICAgIC4uLmNyZWRlbnRpYWxzLFxuICAgICAgdmVyc2lvbixcbiAgICB9KVxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoY3JlZGVudGlhbHMpXG4gIH1cblxuICAvKipcbiAgICogU2lnbiBpbiBBbm9ueW1vdXNseVxuICAgKiBAcmV0dXJuIHtQcm9taXNlPENyZWRlbnRpYWxzPn0gQSBQcm9taXNlPENyZWRlbnRpYWxzPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2lnbkluQW5vbnltb3VzbHkoZGF0YToge1xuICAgIHByb3ZpZGVyX3Rva2VuPzogc3RyaW5nXG4gIH0gPSB7fSwpOiBQcm9taXNlPENyZWRlbnRpYWxzPiB7XG4gICAgY29uc3QgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5jb25maWcucmVxdWVzdDxDcmVkZW50aWFscz4oQXBpVXJscy5BVVRIX1NJR05fSU5fQU5PTllNT1VTTFlfVVJMLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IGRhdGEsXG4gICAgfSlcbiAgICBhd2FpdCB0aGlzLmNvbmZpZy5jcmVkZW50aWFsc0NsaWVudC5zZXRDcmVkZW50aWFscyhjcmVkZW50aWFscylcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGNyZWRlbnRpYWxzKVxuICB9XG5cbiAgLyoqXG4gICAqIFNpZ24gdXAuXG4gICAqIEBwYXJhbSB7U2lnblVwUmVxdWVzdH0gcGFyYW1zIEEgU2lnblVwUmVxdWVzdCBPYmplY3QuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8Q3JlZGVudGlhbHM+fSBBIFByb21pc2U8Q3JlZGVudGlhbHM+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzaWduVXAocGFyYW1zOiBTaWduVXBSZXF1ZXN0KTogUHJvbWlzZTxDcmVkZW50aWFscz4ge1xuICAgIGNvbnN0IGRhdGE6IENyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5jb25maWcucmVxdWVzdDxDcmVkZW50aWFscz4oQXBpVXJscy5BVVRIX1NJR05fVVBfVVJMLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICB9KVxuICAgIGF3YWl0IHRoaXMuY29uZmlnLmNyZWRlbnRpYWxzQ2xpZW50LnNldENyZWRlbnRpYWxzKGRhdGEpXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShkYXRhKVxuICB9XG5cbiAgLyoqXG4gICAqIFNpZ24gb3V0LlxuICAgKiBAcmV0dXJuIHtPYmplY3R9IEEgUHJvbWlzZTx2b2lkPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2lnbk91dCgpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IGFjY2Vzc1Rva2VuOiBzdHJpbmcgPSBhd2FpdCB0aGlzLmNvbmZpZy5jcmVkZW50aWFsc0NsaWVudC5nZXRBY2Nlc3NUb2tlbigpXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuY29uZmlnLnJlcXVlc3QoQXBpVXJscy5BVVRIX1JFVk9LRV9VUkwsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keToge1xuICAgICAgICB0b2tlbjogYWNjZXNzVG9rZW4sXG4gICAgICB9LFxuICAgIH0pXG4gICAgYXdhaXQgdGhpcy5jb25maWcuY3JlZGVudGlhbHNDbGllbnQuc2V0Q3JlZGVudGlhbHMoKVxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZGF0YSlcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHZlcmlmaWNhdGlvbi5cbiAgICogQHBhcmFtIHtHZXRWZXJpZmljYXRpb25SZXF1ZXN0fSBwYXJhbXMgQSBHZXRWZXJpZmljYXRpb25SZXF1ZXN0IE9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxHZXRWZXJpZmljYXRpb25SZXNwb25zZT59IEEgUHJvbWlzZTxHZXRWZXJpZmljYXRpb25SZXNwb25zZT4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFZlcmlmaWNhdGlvbihwYXJhbXM6IEdldFZlcmlmaWNhdGlvblJlcXVlc3QpOiBQcm9taXNlPEdldFZlcmlmaWNhdGlvblJlc3BvbnNlPiB7XG4gICAgbGV0IHdpdGhDcmVkZW50aWFscyA9IGZhbHNlXG4gICAgLy8g5Y+R6YCB55+t5L+h5pe277yM5aaC5p6c5pe257uZ5b2T5YmN55So5oi35Y+R77yM5YiZ6ZyA6KaB5bim5LiK6Ym05p2D5L+h5oGvXG4gICAgaWYgKHBhcmFtcy50YXJnZXQgPT09ICdDVVJfVVNFUicpIHtcbiAgICAgIHdpdGhDcmVkZW50aWFscyA9IHRydWVcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaGFzTG9naW4gPSBhd2FpdCB0aGlzLmhhc0xvZ2luU3RhdGUoKVxuICAgICAgaWYgKGhhc0xvZ2luKSB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFscyA9IHRydWVcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8R2V0VmVyaWZpY2F0aW9uUmVzcG9uc2U+KEFwaVVybHMuVkVSSUZJQ0FUSU9OX1VSTCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgICB3aXRoQ2FwdGNoYTogdHJ1ZSxcbiAgICAgIHdpdGhDcmVkZW50aWFscyxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqICBWZXJpZnkgdGhlIGNvZGVcbiAgICogQHBhcmFtIHtWZXJpZnlSZXF1ZXN0fSBwYXJhbXMgQSBWZXJpZnlSZXF1ZXN0IE9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxWZXJpZnlSZXNwb25zZT59IEEgUHJvbWlzZTxWZXJpZnlSZXNwb25zZT4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHZlcmlmeShwYXJhbXM6IFZlcmlmeVJlcXVlc3QpOiBQcm9taXNlPFZlcmlmeVJlc3BvbnNlPiB7XG4gICAgY29uc3QgcmVzID0gdGhpcy5nZXRQYXJhbXNCeVZlcnNpb24ocGFyYW1zLCAnVkVSSUZZX1VSTCcpXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuY29uZmlnLnJlcXVlc3Q8VmVyaWZ5UmVzcG9uc2U+KHJlcy51cmwsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keTogcmVzLnBhcmFtcyxcbiAgICB9KVxuXG4gICAgaWYgKHBhcmFtcz8udmVyc2lvbiA9PT0gJ3YyJykge1xuICAgICAgYXdhaXQgdGhpcy5jb25maWcuY3JlZGVudGlhbHNDbGllbnQuc2V0Q3JlZGVudGlhbHMoe1xuICAgICAgICAuLi5kYXRhLFxuICAgICAgICB2ZXJzaW9uOiAndjInLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gZGF0YVxuICB9XG5cbiAgLyoqXG4gICAqIEdlbiBwcm92aWRlciByZWRpcmVjdCB1cmkuXG4gICAqIEBwYXJhbSB7R2VuUHJvdmlkZXJSZWRpcmVjdFVyaVJlcXVlc3R9IHBhcmFtcyBBIEdlblByb3ZpZGVyUmVkaXJlY3RVcmlSZXF1ZXN0IG9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxHZW5Qcm92aWRlclJlZGlyZWN0VXJpUmVzcG9uc2U+fSBBIFByb21pc2U8R2VuUHJvdmlkZXJSZWRpcmVjdFVyaVJlc3BvbnNlPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2VuUHJvdmlkZXJSZWRpcmVjdFVyaShwYXJhbXM6IEdlblByb3ZpZGVyUmVkaXJlY3RVcmlSZXF1ZXN0KTogUHJvbWlzZTxHZW5Qcm92aWRlclJlZGlyZWN0VXJpUmVzcG9uc2U+IHtcbiAgICBsZXQgdXJsID0gYCR7QXBpVXJscy5QUk9WSURFUl9VUklfVVJMfT9jbGllbnRfaWQ9JHt0aGlzLmNvbmZpZy5jbGllbnRJZH0mcHJvdmlkZXJfaWQ9JHtcbiAgICAgIHBhcmFtcy5wcm92aWRlcl9pZFxuICAgIH0mcmVkaXJlY3RfdXJpPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHBhcmFtcy5wcm92aWRlcl9yZWRpcmVjdF91cmkpfSZzdGF0ZT0ke3BhcmFtcy5zdGF0ZX1gXG4gICAgY29uc3QgeyBvdGhlcl9wYXJhbXM6IG90aGVyUGFyYW1zIH0gPSBwYXJhbXNcbiAgICBpZiAob3RoZXJQYXJhbXMpIHtcbiAgICAgIGlmICh0eXBlb2Ygb3RoZXJQYXJhbXMuc2lnbl9vdXRfdXJpID09PSAnc3RyaW5nJyAmJiBvdGhlclBhcmFtcy5zaWduX291dF91cmkubGVuZ3RoID4gMCkge1xuICAgICAgICB1cmwgKz0gYCZvdGhlcl9wYXJhbXNbc2lnbl9vdXRfdXJpXT0ke290aGVyUGFyYW1zLnNpZ25fb3V0X3VyaX1gXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PEdlblByb3ZpZGVyUmVkaXJlY3RVcmlSZXNwb25zZT4odXJsLCB7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgcHJvdmlkZXIgdG9rZW4uXG4gICAqIEBwYXJhbSB7R3JhbnRQcm92aWRlclRva2VuUmVxdWVzdH0gcGFyYW1zIEEgR3JhbnRQcm92aWRlclRva2VuUmVxdWVzdCBvYmplY3QuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8R3JhbnRQcm92aWRlclRva2VuUmVzcG9uc2U+fSBBIFByb21pc2U8R3JhbnRQcm92aWRlclRva2VuUmVzcG9uc2U+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBncmFudFByb3ZpZGVyVG9rZW4ocGFyYW1zOiBHcmFudFByb3ZpZGVyVG9rZW5SZXF1ZXN0KTogUHJvbWlzZTxHcmFudFByb3ZpZGVyVG9rZW5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PEdyYW50UHJvdmlkZXJUb2tlblJlc3BvbnNlPihBcGlVcmxzLlBST1ZJREVSX1RPS0VOX1VSTCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCBwcm92aWRlciB0b2tlbi5cbiAgICogQHBhcmFtIHtQYXRjaFByb3ZpZGVyVG9rZW5SZXF1ZXN0fSBwYXJhbXMgQSBQYXRjaFByb3ZpZGVyVG9rZW5SZXF1ZXN0IG9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxQYXRjaFByb3ZpZGVyVG9rZW5SZXNwb25zZT59IEEgUHJvbWlzZTxQYXRjaFByb3ZpZGVyVG9rZW5SZXNwb25zZT4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHBhdGNoUHJvdmlkZXJUb2tlbihwYXJhbXM6IFBhdGNoUHJvdmlkZXJUb2tlblJlcXVlc3QpOiBQcm9taXNlPFBhdGNoUHJvdmlkZXJUb2tlblJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8UGF0Y2hQcm92aWRlclRva2VuUmVzcG9uc2U+KEFwaVVybHMuUFJPVklERVJfVE9LRU5fVVJMLCB7XG4gICAgICBtZXRob2Q6ICdQQVRDSCcsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduaW4gd2l0aCBwcm92aWRlciByZXF1ZXN0LlxuICAgKiBAcGFyYW0ge1NpZ25JbldpdGhQcm92aWRlclJlcXVlc3R9IHBhcmFtcyBBIFNpZ25JbldpdGhQcm92aWRlclJlcXVlc3Qgb2JqZWN0LlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPENyZWRlbnRpYWxzPn0gQSBQcm9taXNlPENyZWRlbnRpYWxzPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2lnbkluV2l0aFByb3ZpZGVyKHBhcmFtczogU2lnbkluV2l0aFByb3ZpZGVyUmVxdWVzdCk6IFByb21pc2U8Q3JlZGVudGlhbHM+IHtcbiAgICBjb25zdCByZXMgPSB0aGlzLmdldFBhcmFtc0J5VmVyc2lvbihwYXJhbXMsICdBVVRIX1NJR05fSU5fV0lUSF9QUk9WSURFUl9VUkwnKVxuICAgIGNvbnN0IGNyZWRlbnRpYWxzOiBDcmVkZW50aWFscyA9IGF3YWl0IHRoaXMuY29uZmlnLnJlcXVlc3Q8Q3JlZGVudGlhbHM+KHJlcy51cmwsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keTogcmVzLnBhcmFtcyxcbiAgICB9KVxuICAgIGF3YWl0IHRoaXMuY29uZmlnLmNyZWRlbnRpYWxzQ2xpZW50LnNldENyZWRlbnRpYWxzKHtcbiAgICAgIC4uLmNyZWRlbnRpYWxzLFxuICAgICAgdmVyc2lvbjogcGFyYW1zPy52ZXJzaW9uIHx8ICd2MScsXG4gICAgfSlcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGNyZWRlbnRpYWxzKVxuICB9XG5cbiAgLyoqXG4gICAqIHNpZ24gaW4gd2l0aCB3ZWNoYXQgaWRlbmRpZnlcbiAgICog6ZyA6KaB57uT5ZCIIGh0dHAgb3ZlcmNhbGxGdW5jdGlvbiDkvb/nlKhcbiAgICovXG4gIHB1YmxpYyBhc3luYyBzaWduSW5XaXRoV2VjaGF0KHBhcmFtczogYW55ID0ge30pOiBQcm9taXNlPENyZWRlbnRpYWxzPiB7XG4gICAgY29uc3QgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5jb25maWcucmVxdWVzdDxDcmVkZW50aWFscz4oQXBpVXJscy5BVVRIX1NJR05fSU5fV0lUSF9XRUNIQVRfVVJMLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICB9KVxuICAgIGF3YWl0IHRoaXMuY29uZmlnLmNyZWRlbnRpYWxzQ2xpZW50LnNldENyZWRlbnRpYWxzKGNyZWRlbnRpYWxzKVxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoY3JlZGVudGlhbHMpXG4gIH1cblxuICAvKipcbiAgICogQmluZCB3aXRoIHByb3ZpZGVyXG4gICAqIEBwYXJhbSB7QmluZFdpdGhQcm92aWRlclJlcXVlc3R9IHBhcmFtcyBBIEJpbmRXaXRoUHJvdmlkZXJSZXF1ZXN0IG9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn0gQSBQcm9taXNlPGFueT4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGJpbmRXaXRoUHJvdmlkZXIocGFyYW1zOiBCaW5kV2l0aFByb3ZpZGVyUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PGFueT4oQXBpVXJscy5QUk9WSURFUl9CSU5EX1VSTCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHVzZXIgcHJvZmlsZS5cbiAgICogQHJldHVybiB7UHJvbWlzZTxVc2VyUHJvZmlsZT59IEEgUHJvbWlzZTxVc2VyUHJvZmlsZT4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFVzZXJQcm9maWxlKHBhcmFtczogeyB2ZXJzaW9uPzogc3RyaW5nIH0pOiBQcm9taXNlPFVzZXJQcm9maWxlPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VXNlckluZm8ocGFyYW1zKVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgdXNlciBpbmZvLlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFVzZXJJbmZvPn0gQSBQcm9taXNlPFVzZXJQcm9maWxlPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0VXNlckluZm8ocGFyYW1zOiB7IHZlcnNpb24/OiBzdHJpbmc7IHF1ZXJ5Pzogc3RyaW5nIH0gPSB7fSk6IFByb21pc2U8VXNlckluZm8+IHtcbiAgICBjb25zdCByZXMgPSB0aGlzLmdldFBhcmFtc0J5VmVyc2lvbihwYXJhbXMsICdVU0VSX01FX1VSTCcpXG5cbiAgICBpZiAocmVzLnBhcmFtcz8ucXVlcnkpIHtcbiAgICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMocmVzLnBhcmFtcy5xdWVyeSBhcyBhbnkpXG4gICAgICByZXMudXJsICs9IGA/JHtzZWFyY2hQYXJhbXMudG9TdHJpbmcoKX1gXG4gICAgfVxuXG4gICAgY29uc3QgdXNlckluZm8gPSBhd2FpdCB0aGlzLmNvbmZpZy5yZXF1ZXN0PFVzZXJJbmZvPihyZXMudXJsLCB7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pXG5cbiAgICBpZiAodXNlckluZm8uc3ViKSB7XG4gICAgICB1c2VySW5mby51aWQgPSB1c2VySW5mby5zdWJcbiAgICB9XG5cbiAgICByZXR1cm4gdXNlckluZm9cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHVzZXIgaW5mbyBieSB3ZWRhIHBsdWdpbi5cbiAgICogQHJldHVybiB7UHJvbWlzZTxhbnk+fSBBIFByb21pc2U8YW55PiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0V2VkYVVzZXJJbmZvKCk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgdXNlckluZm8gPSBhd2FpdCB0aGlzLmNvbmZpZy5yZXF1ZXN0PGFueT4oQXBpVXJscy5XRURBX1VTRVJfVVJMLCB7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pXG4gICAgcmV0dXJuIHVzZXJJbmZvXG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIG1lXG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICovXG4gIHB1YmxpYyBhc3luYyBkZWxldGVNZShwYXJhbXM6IFdpdGhTdWRvUmVxdWVzdCk6IFByb21pc2U8VXNlclByb2ZpbGU+IHtcbiAgICBjb25zdCByZXMgPSB0aGlzLmdldFBhcmFtc0J5VmVyc2lvbihwYXJhbXMsICdVU0VSX01FX1VSTCcpXG4gICAgY29uc3QgdXJsID0gYCR7cmVzLnVybH0/JHtBdXRoLnBhcnNlUGFyYW1zVG9TZWFyY2gocmVzLnBhcmFtcyl9YFxuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PFVzZXJQcm9maWxlPih1cmwsIHtcbiAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBoYXNMb2dpblN0YXRlIGNoZWNrIGlmIGhhcyBsb2dpbiBzdGF0ZVxuICAgKiBAcmV0dXJuIHtQcm9taXNlPGJvb2xlYW4+fSBBIFByb21pc2U8Ym9vbGVhbj4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGhhc0xvZ2luU3RhdGUoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuY29uZmlnLmNyZWRlbnRpYWxzQ2xpZW50LmdldEFjY2Vzc1Rva2VuKClcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBoYXNMb2dpblN0YXRlU3luYygpOiBDcmVkZW50aWFscyB8IG51bGwge1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gdGhpcy5jb25maWcuY3JlZGVudGlhbHNDbGllbnQuZ2V0Q3JlZGVudGlhbHNTeW5jKClcbiAgICByZXR1cm4gY3JlZGVudGlhbHNcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRMb2dpblN0YXRlKCk6IFByb21pc2U8Q3JlZGVudGlhbHMgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmNyZWRlbnRpYWxzQ2xpZW50LmdldENyZWRlbnRpYWxzQXN5bmMoKVxuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zIGJ5IHByb3ZpZGVyLlxuICAgKiBAcGFyYW0ge1RyYW5zQnlQcm92aWRlclJlcXVlc3R9IHBhcmFtcyBBIFRyYW5zQnlQcm92aWRlclJlcXVlc3Qgb2JqZWN0LlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPENyZWRlbnRpYWxzPn0gQSBQcm9taXNlPENyZWRlbnRpYWxzPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgdHJhbnNCeVByb3ZpZGVyKHBhcmFtczogVHJhbnNCeVByb3ZpZGVyUmVxdWVzdCk6IFByb21pc2U8Q3JlZGVudGlhbHM+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxDcmVkZW50aWFscz4oQXBpVXJscy5VU0VSX1RSQU5TX0JZX1BST1ZJREVSX1VSTCwge1xuICAgICAgbWV0aG9kOiAnUEFUQ0gnLFxuICAgICAgYm9keTogcGFyYW1zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgdG9rZW4uXG4gICAqIEBwYXJhbSB7R3JhbnRUb2tlblJlcXVlc3R9IHBhcmFtcyBBIEdyYW50VG9rZW5SZXF1ZXN0IG9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxDcmVkZW50aWFscz59IEEgUHJvbWlzZTxDcmVkZW50aWFscz4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdyYW50VG9rZW4ocGFyYW1zOiBHcmFudFRva2VuUmVxdWVzdCk6IFByb21pc2U8Q3JlZGVudGlhbHM+IHtcbiAgICBjb25zdCByZXMgPSB0aGlzLmdldFBhcmFtc0J5VmVyc2lvbihwYXJhbXMsICdBVVRIX1RPS0VOX1VSTCcpXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8Q3JlZGVudGlhbHM+KHJlcy51cmwsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keTogcmVzLnBhcmFtcyxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcHJvdmlkZSBsaXN0LlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFVzZXJQcm9maWxlUHJvdmlkZXI+fSBBIFByb21pc2U8VXNlclByb2ZpbGVQcm92aWRlcj4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFByb3ZpZGVycygpOiBQcm9taXNlPFVzZXJQcm9maWxlUHJvdmlkZXI+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxVc2VyUHJvZmlsZVByb3ZpZGVyPihBcGlVcmxzLlBST1ZJREVSX0xJU1QsIHtcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiB1bmJpbmQgcHJvdmlkZXIuXG4gICAqIEBwYXJhbSB7VW5iaW5kUHJvdmlkZXJSZXF1ZXN0fSBwYXJhbXNcbiAgICogQHJldHVybiB7UHJvbWlzZTxhbnk+fVxuICAgKi9cbiAgcHVibGljIGFzeW5jIHVuYmluZFByb3ZpZGVyKHBhcmFtczogVW5iaW5kUHJvdmlkZXJSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8YW55PihgJHtBcGlVcmxzLlBST1ZJREVSX1VOQklORF9VUkx9LyR7cGFyYW1zLnByb3ZpZGVyX2lkfWAsIHtcbiAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBjaGVjayBQYXNzd29yZC5cbiAgICogQHBhcmFtIHtDaGVja1Bhc3N3b3JkclJlcXVlc3R9IHBhcmFtc1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPGFueT59XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2hlY2tQYXNzd29yZChwYXJhbXM6IENoZWNrUGFzc3dvcmRyUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PGFueT4oYCR7QXBpVXJscy5DSEVDS19QV0RfVVJMfWAsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgYm9keTogcGFyYW1zLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogY2hlY2sgUGFzc3dvcmQuXG4gICAqIEBwYXJhbSB7Q2hlY2tQYXNzd29yZHJSZXF1ZXN0fSBwYXJhbXNcbiAgICogQHJldHVybiB7UHJvbWlzZTxhbnk+fVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGJpbmRQaG9uZShwYXJhbXM6IEJpbmRQaG9uZVJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxhbnk+KGAke0FwaVVybHMuQklORF9DT05UQUNUX1VSTH1gLCB7XG4gICAgICBtZXRob2Q6ICdQQVRDSCcsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBjaGVjayBQYXNzd29yZC5cbiAgICogQHBhcmFtIHtDaGVja1Bhc3N3b3JkclJlcXVlc3R9IHBhcmFtc1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPGFueT59XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgYmluZEVtYWlsKHBhcmFtczogQmluZEVtYWlsUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PGFueT4oYCR7QXBpVXJscy5CSU5EX0NPTlRBQ1RfVVJMfWAsIHtcbiAgICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCBQYXNzd29yZC5cbiAgICogQHBhcmFtIHtTZXRQYXNzd29yZHJSZXF1ZXN0fSBwYXJhbXNcbiAgICogQHJldHVybiB7UHJvbWlzZTxhbnk+fVxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNldFBhc3N3b3JkKHBhcmFtczogU2V0UGFzc3dvcmRSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8YW55PihgJHtBcGlVcmxzLkFVVEhfU0VUX1BBU1NXT1JEfWAsIHtcbiAgICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIHVwZGF0ZVBhc3N3b3JkQnlPbGQg5L2/55So5pen5a+G56CB5L+u5pS55a+G56CB77yM5aaC5p6c5bey57uP57uR5a6a5omL5py65Y+377yM6K+35YWI77yac3Vkb++8jOWGjeS/ruaUueWvhueggVxuICAgKiBAcGFyYW0ge1NldFBhc3N3b3JkclJlcXVlc3R9IHBhcmFtc1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPGFueT59XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgdXBkYXRlUGFzc3dvcmRCeU9sZChwYXJhbXM6IFVwZGF0ZVBhc3N3b3JkUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHN1ZG9Ub2tlbiA9IGF3YWl0IHRoaXMuc3Vkbyh7IHBhc3N3b3JkOiBwYXJhbXMub2xkX3Bhc3N3b3JkIH0pXG4gICAgcmV0dXJuIHRoaXMuc2V0UGFzc3dvcmQoe1xuICAgICAgc3Vkb190b2tlbjogc3Vkb1Rva2VuLnN1ZG9fdG9rZW4sXG4gICAgICBuZXdfcGFzc3dvcmQ6IHBhcmFtcy5uZXdfcGFzc3dvcmQsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBzdWRvXG4gICAqIEBwYXJhbSB7c3Vkb30gcGFyYW1zXG4gICAqIEByZXR1cm4ge1Byb21pc2U8YW55Pn1cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzdWRvKHBhcmFtczogU3Vkb1JlcXVlc3QpOiBQcm9taXNlPFN1ZG9SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PFN1ZG9SZXNwb25zZT4oYCR7QXBpVXJscy5TVURPX1VSTH1gLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY3VycmVudCB1c2VyIHZlcmlmaWNhdGlvbi5cbiAgICogQHBhcmFtIHtHZXRWZXJpZmljYXRpb25SZXF1ZXN0fSBwYXJhbXMgQSBHZXRWZXJpZmljYXRpb25SZXF1ZXN0IE9iamVjdC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxHZXRWZXJpZmljYXRpb25SZXNwb25zZT59IEEgUHJvbWlzZTxHZXRWZXJpZmljYXRpb25SZXNwb25zZT4gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEN1clVzZXJWZXJpZmljYXRpb24ocGFyYW1zOiBHZXRWZXJpZmljYXRpb25SZXF1ZXN0KTogUHJvbWlzZTxHZXRWZXJpZmljYXRpb25SZXNwb25zZT4ge1xuICAgIHBhcmFtcy50YXJnZXQgPSAnQ1VSX1VTRVInXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8R2V0VmVyaWZpY2F0aW9uUmVzcG9uc2U+KEFwaVVybHMuVkVSSUZJQ0FUSU9OX1VSTCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICB3aXRoQ2FwdGNoYTogdHJ1ZSxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIGNoYW5nZSBiaW5kZWQgcHJvdmlkZXIuXG4gICAqIEBwYXJhbSB7R2V0VmVyaWZpY2F0aW9uUmVxdWVzdH0gcGFyYW1zIEEgR2V0VmVyaWZpY2F0aW9uUmVxdWVzdCBPYmplY3QuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8R2V0VmVyaWZpY2F0aW9uUmVzcG9uc2U+fSBBIFByb21pc2U8R2V0VmVyaWZpY2F0aW9uUmVzcG9uc2U+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBjaGFuZ2VCaW5kZWRQcm92aWRlcihwYXJhbXM6IENoYW5nZUJpbmRlZFByb3ZpZGVyUmVxdWVzdCk6IFByb21pc2U8Q2hhbmdlQmluZGVkUHJvdmlkZXJSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PENoYW5nZUJpbmRlZFByb3ZpZGVyUmVzcG9uc2U+KGAke0FwaVVybHMuUFJPVklERVJfTElTVH0vJHtwYXJhbXMucHJvdmlkZXJfaWR9L3RyYW5zYCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiB7XG4gICAgICAgIHByb3ZpZGVyX3RyYW5zX3Rva2VuOiBwYXJhbXMudHJhbnNfdG9rZW4sXG4gICAgICB9LFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogUGF0Y2ggdGhlIHVzZXIgcHJvZmlsZS5cbiAgICogQHBhcmFtIHtVc2VyUHJvZmlsZX0gcGFyYW1zIEEgVXNlclByb2ZpbGUgT2JqZWN0LlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFVzZXJQcm9maWxlPn0gQSBQcm9taXNlPFVzZXJQcm9maWxlPiBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2V0VXNlclByb2ZpbGUocGFyYW1zOiBVc2VyUHJvZmlsZSk6IFByb21pc2U8VXNlclByb2ZpbGU+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxVc2VyUHJvZmlsZT4oQXBpVXJscy5VU0VSX1BSSUZJTEVfVVJMLCB7XG4gICAgICBtZXRob2Q6ICdQQVRDSCcsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgdXNlciBiYXNpYyBpbmZvXG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgdXBkYXRlVXNlckJhc2ljSW5mbyhwYXJhbXM6IE1vZGlmeVVzZXJCYXNpY0luZm9SZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3QoQXBpVXJscy5VU0VSX0JBU0lDX0VESVRfVVJMLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFBhdGNoIHRoZSB1c2VyIHByb2ZpbGUuXG4gICAqIEBwYXJhbSB7UXVlcnlVc2VyUHJvZmlsZVJlcX0gYXBwZW5kZWRfcGFyYW1zIEEgUXVlcnlVc2VyUHJvZmlsZVJlcSBPYmplY3QuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8VXNlclByb2ZpbGU+fSBBIFByb21pc2U8VXNlclByb2ZpbGU+IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBxdWVyeVVzZXJQcm9maWxlKHBhcmFtczogUXVlcnlVc2VyUHJvZmlsZVJlcXVlc3QpOiBQcm9taXNlPFF1ZXJ5VXNlclByb2ZpbGVSZXNwb25zZT4ge1xuICAgIC8vIGxldCB1cmwgPSBuZXcgVVJMKEFwaVVybHMuVVNFUl9RVUVSWV9VUkwpO1xuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMocGFyYW1zIGFzIGFueSlcbiAgICAvLyB1cmwuc2VhcmNoID0gc2VhcmNoUGFyYW1zLnRvU3RyaW5nKCk7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3Q8UXVlcnlVc2VyUHJvZmlsZVJlc3BvbnNlPihgJHtBcGlVcmxzLlVTRVJfUVVFUllfVVJMfT8ke3NlYXJjaFBhcmFtcy50b1N0cmluZygpfWAsIHtcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBzZXRDdXN0b21TaWduRnVuYyBzZXQgdGhlIGdldCB0aWNrZXQgZnVuY3Rpb25cbiAgICogQHBhcmFtIGdldFRpY2tGblxuICAgKi9cbiAgcHVibGljIHNldEN1c3RvbVNpZ25GdW5jKGdldFRpY2tGbjogR2V0Q3VzdG9tU2lnblRpY2tldEZuKSB7XG4gICAgdGhpcy5nZXRDdXN0b21TaWduVGlja2V0Rm4gPSBnZXRUaWNrRm5cbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduSW5XaXRoQ3VzdG9tVGlja2V0IGN1c3RvbSBzaWduSW5cbiAgICogQGNvbnN0cnVjdG9yXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2lnbkluV2l0aEN1c3RvbVRpY2tldChwYXJhbXM/OiB7IHZlcnNpb24/OiBzdHJpbmcgfSk6IFByb21pc2U8Q3JlZGVudGlhbHM+IHtcbiAgICBjb25zdCBjdXN0b21UaWNrZXQgPSBhd2FpdCB0aGlzLmdldEN1c3RvbVNpZ25UaWNrZXRGbigpXG4gICAgcmV0dXJuIHRoaXMuc2lnbkluV2l0aFByb3ZpZGVyKHtcbiAgICAgIC4uLnBhcmFtcyxcbiAgICAgIHByb3ZpZGVyX2lkOiAnY3VzdG9tJyxcbiAgICAgIHByb3ZpZGVyX3Rva2VuOiBjdXN0b21UaWNrZXQsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCBwYXNzd29yZFxuICAgKiBAcGFyYW0ge1Jlc2V0UGFzc3dvcmRSZXF1ZXN0fSBwYXJhbXNcbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gICAqIEBtZW1iZXJvZiBBdXRoXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVzZXRQYXNzd29yZChwYXJhbXM6IFJlc2V0UGFzc3dvcmRSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3QoQXBpVXJscy5BVVRIX1JFU0VUX1BBU1NXT1JELCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICAgIC8vIHdpdGhDcmVkZW50aWFsczogdHJ1ZVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogZGV2aWNlIGF1dGhvcml6YXRpb25cbiAgICogQHBhcmFtIHtEZXZpY2VBdXRob3JpemVSZXF1ZXN0fSBwYXJhbXNcbiAgICogQHJldHVybnMge1Byb21pc2U8RGV2aWNlQXV0aG9yaXplUmVzcG9uc2U+fVxuICAgKiBAbWVtYmVyb2YgQXV0aFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGRldmljZUF1dGhvcml6ZShwYXJhbXM6IERldmljZUF1dGhvcml6ZVJlcXVlc3QpOiBQcm9taXNlPERldmljZUF1dGhvcml6ZVJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnJlcXVlc3QoQXBpVXJscy5BVVRIX0dFVF9ERVZJQ0VfQ09ERSwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiBwYXJhbXMsXG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgfSlcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjaGVja1VzZXJuYW1lKHBhcmFtczogQ2hlY2tVc2VybmFtZVJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdChBcGlVcmxzLkNIRUNLX1VTRVJOQU1FLCB7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgYm9keTogcGFyYW1zLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY2hlY2tJZlVzZXJFeGlzdChwYXJhbXM6IENoZWNrSWZVc2VyRXhpc3RSZXF1ZXN0KTogUHJvbWlzZTxDaGVja0lmVXNlckV4aXN0UmVzcG9uc2U+IHtcbiAgICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHBhcmFtcyBhcyBhbnkpXG5cbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxDaGVja0lmVXNlckV4aXN0UmVzcG9uc2U+KGAke0FwaVVybHMuQ0hFQ0tfSUZfVVNFUl9FWElTVH0/JHtzZWFyY2hQYXJhbXMudG9TdHJpbmcoKX1gLCB7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbG9naW5TY29wZSgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5jcmVkZW50aWFsc0NsaWVudC5nZXRTY29wZSgpXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbG9naW5Hcm91cHMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5jcmVkZW50aWFsc0NsaWVudC5nZXRHcm91cHMoKVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHJlZnJlc2hUb2tlbkZvcmNlKHBhcmFtczogeyB2ZXJzaW9uPzogc3RyaW5nIH0pIHtcbiAgICBjb25zdCBjcmVkZW50aWFsczogQ3JlZGVudGlhbHMgPSBhd2FpdCB0aGlzLmNvbmZpZy5jcmVkZW50aWFsc0NsaWVudC5nZXRDcmVkZW50aWFscygpXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY29uZmlnLmNyZWRlbnRpYWxzQ2xpZW50LnJlZnJlc2hUb2tlbih7XG4gICAgICAuLi5jcmVkZW50aWFscyxcbiAgICAgIHZlcnNpb246IHBhcmFtcz8udmVyc2lvbiB8fCAndjEnLFxuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0Q3JlZGVudGlhbHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmNyZWRlbnRpYWxzQ2xpZW50LmdldENyZWRlbnRpYWxzKClcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgcHVibGljIGtleSBmb3IgcmVxdWVzdCBwYXJhbXMgZW5jcnlwdGlvblxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFB1YmxpY0tleSgpOiBQcm9taXNlPFB1YmxpY0tleT4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PFB1YmxpY0tleT4oQXBpVXJsc1YyLkFVVEhfUFVCTElDX0tFWSwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiB7fSxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIGVuY3J5cHQgcmVxdWVzdCBwYXJhbXNcbiAgICogQHBhcmFtIHBhcmFtc1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEVuY3J5cHRQYXJhbXMocGFyYW1zOiBSZWNvcmQ8YW55LCBhbnk+KTogUHJvbWlzZTxFbmNyeXB0UGFyYW1zPiB7XG4gICAgY29uc3QgcGF5bG9hZCA9IGRlZXBDbG9uZShwYXJhbXMpXG5cbiAgICBpZiAoIXBheWxvYWQuaXNFbmNyeXB0KSB7XG4gICAgICByZXR1cm4gcGFyYW1zXG4gICAgfVxuXG4gICAgbGV0IHB1YmxpY0tleSA9ICcnXG4gICAgbGV0IHB1YmxpY19rZXlfdGh1bWJwcmludCA9ICcnXG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5nZXRQdWJsaWNLZXkoKVxuICAgICAgcHVibGljS2V5ID0gcmVzLnB1YmxpY19rZXlcbiAgICAgIHB1YmxpY19rZXlfdGh1bWJwcmludCA9IHJlcy5wdWJsaWNfa2V5X3RodW1icHJpbnRcbiAgICB9IGNhdGNoIChlcnJvcikge31cblxuICAgIGlmICghcHVibGljS2V5IHx8ICFwdWJsaWNfa2V5X3RodW1icHJpbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigncHVibGljX2tleSBvciBwdWJsaWNfa2V5X3RodW1icHJpbnQgaXMgZW1wdHknKVxuICAgIH1cblxuICAgIGRlbGV0ZSBwYXlsb2FkLmlzRW5jcnlwdFxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHBhcmFtczogZ2V0RW5jcnlwdEluZm8oeyBwdWJsaWNLZXksIHBheWxvYWQgfSksXG4gICAgICBwdWJsaWNfa2V5X3RodW1icHJpbnQsXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIGdldCBwcm92aWRlciBzdWIgdHlwZVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFByb3ZpZGVyU3ViVHlwZSgpOiBQcm9taXNlPFByb3ZpZGVyU3ViVHlwZT4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PFByb3ZpZGVyU3ViVHlwZT4oQXBpVXJscy5HRVRfUFJPVklERVJfVFlQRSwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiB7XG4gICAgICAgIHByb3ZpZGVyX2lkOiAnd2VkYScsXG4gICAgICB9LFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogZ2V0IHByb3ZpZGVyIHN1YiB0eXBlXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgdmVyaWZ5Q2FwdGNoYURhdGEoeyB0b2tlbiwga2V5IH06IHsgdG9rZW46IHN0cmluZzsga2V5OiBzdHJpbmcgfSkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PHsgY2FwdGNoYV90b2tlbjogc3RyaW5nOyBleHBpcmVzX2luOiBudW1iZXIgfT4oQXBpVXJscy5WRVJJRllfQ0FQVENIQV9EQVRBX1VSTCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiB7IHRva2VuLCBrZXkgfSxcbiAgICAgIHdpdGhDcmVkZW50aWFsczogZmFsc2UsXG4gICAgfSlcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVDYXB0Y2hhRGF0YSh7IHN0YXRlLCByZWRpcmVjdF91cmkgPSB1bmRlZmluZWQgfSkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5yZXF1ZXN0PHsgY2FwdGNoYV90b2tlbjogc3RyaW5nOyBleHBpcmVzX2luOiBudW1iZXIgfT4oQXBpVXJscy5DQVBUQ0hBX0RBVEFfVVJMLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IHsgc3RhdGUsIHJlZGlyZWN0X3VyaSB9LFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiBmYWxzZSxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIG1pbmktcHJvZ3JhbSBzY2FuIGNvZGVcbiAgICogQHJldHVybnNcbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRNaW5pUHJvZ3JhbUNvZGUocGFyYW1zOiBHZXRNaW5pUHJvZ3JhbVFyQ29kZVJlcXVlc3QpOiBQcm9taXNlPEdldE1pbmlQcm9ncmFtUXJDb2RlUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxHZXRNaW5pUHJvZ3JhbVFyQ29kZVJlc3BvbnNlPihBcGlVcmxzLkdFVF9NSU5JUFJPR1JBTV9RUkNPREUsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keTogcGFyYW1zLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogbWluaS1wcm9ncmFtIHNjYW4gY29kZSBzdGF0dXNcbiAgICogQHJldHVybnNcbiAgICovXG4gIHB1YmxpYyBhc3luYyBjaGVja01pbmlQcm9ncmFtQ29kZShwYXJhbXM6IEdldE1pbmlQcm9ncmFtUXJDb2RlU3RhdHVzUmVxdWVzdCwpOiBQcm9taXNlPEdldE1pbmlQcm9ncmFtUXJDb2RlU3RhdHVzUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucmVxdWVzdDxHZXRNaW5pUHJvZ3JhbVFyQ29kZVN0YXR1c1Jlc3BvbnNlPihBcGlVcmxzLkdFVF9NSU5JUFJPR1JBTV9RUkNPREVfU1RBVFVTLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICB9KVxuICB9XG59XG4iXX0=
@@ -2,6 +2,7 @@ export declare enum ApiUrls {
2
2
  AUTH_SIGN_IN_URL = "/auth/v1/signin",
3
3
  AUTH_SIGN_IN_ANONYMOUSLY_URL = "/auth/v1/signin/anonymously",
4
4
  AUTH_SIGN_IN_WITH_PROVIDER_URL = "/auth/v1/signin/with/provider",
5
+ AUTH_SIGN_IN_WITH_WECHAT_URL = "/auth/v1/signin/wechat/noauth",
5
6
  AUTH_SIGN_UP_URL = "/auth/v1/signup",
6
7
  AUTH_TOKEN_URL = "/auth/v1/token",
7
8
  AUTH_REVOKE_URL = "/auth/v1/revoke",
@@ -12,6 +13,7 @@ export declare enum ApiUrls {
12
13
  WEDA_USER_URL = "/auth/v1/plugin/weda/userinfo",
13
14
  USER_QUERY_URL = "/auth/v1/user/query",
14
15
  USER_PRIFILE_URL = "/auth/v1/user/profile",
16
+ USER_BASIC_EDIT_URL = "/auth/v1/user/basic/edit",
15
17
  USER_TRANS_BY_PROVIDER_URL = "/auth/v1/user/trans/by/provider",
16
18
  VERIFICATION_URL = "/auth/v1/verification",
17
19
  VERIFY_URL = "/auth/v1/verification/verify",
@@ -28,7 +30,9 @@ export declare enum ApiUrls {
28
30
  AUTH_GET_DEVICE_CODE = "/auth/v1/device/code",
29
31
  CHECK_USERNAME = "/auth/v1/checkUsername",
30
32
  CHECK_IF_USER_EXIST = "/auth/v1/checkIfUserExist",
31
- GET_PROVIDER_TYPE = "/auth/v1/mgr/provider/providerSubType"
33
+ GET_PROVIDER_TYPE = "/auth/v1/mgr/provider/providerSubType",
34
+ GET_MINIPROGRAM_QRCODE = "/auth/v1/qrcode/generate",
35
+ GET_MINIPROGRAM_QRCODE_STATUS = "/auth/v1/qrcode/get/status"
32
36
  }
33
37
  export declare enum ApiUrlsV2 {
34
38
  AUTH_SIGN_IN_URL = "/auth/v2/signin/username",
@@ -3,6 +3,7 @@ export var ApiUrls;
3
3
  ApiUrls["AUTH_SIGN_IN_URL"] = "/auth/v1/signin";
4
4
  ApiUrls["AUTH_SIGN_IN_ANONYMOUSLY_URL"] = "/auth/v1/signin/anonymously";
5
5
  ApiUrls["AUTH_SIGN_IN_WITH_PROVIDER_URL"] = "/auth/v1/signin/with/provider";
6
+ ApiUrls["AUTH_SIGN_IN_WITH_WECHAT_URL"] = "/auth/v1/signin/wechat/noauth";
6
7
  ApiUrls["AUTH_SIGN_UP_URL"] = "/auth/v1/signup";
7
8
  ApiUrls["AUTH_TOKEN_URL"] = "/auth/v1/token";
8
9
  ApiUrls["AUTH_REVOKE_URL"] = "/auth/v1/revoke";
@@ -13,6 +14,7 @@ export var ApiUrls;
13
14
  ApiUrls["WEDA_USER_URL"] = "/auth/v1/plugin/weda/userinfo";
14
15
  ApiUrls["USER_QUERY_URL"] = "/auth/v1/user/query";
15
16
  ApiUrls["USER_PRIFILE_URL"] = "/auth/v1/user/profile";
17
+ ApiUrls["USER_BASIC_EDIT_URL"] = "/auth/v1/user/basic/edit";
16
18
  ApiUrls["USER_TRANS_BY_PROVIDER_URL"] = "/auth/v1/user/trans/by/provider";
17
19
  ApiUrls["VERIFICATION_URL"] = "/auth/v1/verification";
18
20
  ApiUrls["VERIFY_URL"] = "/auth/v1/verification/verify";
@@ -30,6 +32,8 @@ export var ApiUrls;
30
32
  ApiUrls["CHECK_USERNAME"] = "/auth/v1/checkUsername";
31
33
  ApiUrls["CHECK_IF_USER_EXIST"] = "/auth/v1/checkIfUserExist";
32
34
  ApiUrls["GET_PROVIDER_TYPE"] = "/auth/v1/mgr/provider/providerSubType";
35
+ ApiUrls["GET_MINIPROGRAM_QRCODE"] = "/auth/v1/qrcode/generate";
36
+ ApiUrls["GET_MINIPROGRAM_QRCODE_STATUS"] = "/auth/v1/qrcode/get/status";
33
37
  })(ApiUrls || (ApiUrls = {}));
34
38
  export var ApiUrlsV2;
35
39
  (function (ApiUrlsV2) {
@@ -69,4 +73,4 @@ export var ErrorType;
69
73
  ErrorType["USER_PENDING"] = "user_pending";
70
74
  ErrorType["USER_BLOCKED"] = "user_blocked";
71
75
  })(ErrorType || (ErrorType = {}));
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F1dGgvY29uc3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLE9BZ0NYO0FBaENELFdBQVksT0FBTztJQUNqQiwrQ0FBb0MsQ0FBQTtJQUNwQyx1RUFBNEQsQ0FBQTtJQUM1RCwyRUFBZ0UsQ0FBQTtJQUNoRSwrQ0FBb0MsQ0FBQTtJQUNwQyw0Q0FBaUMsQ0FBQTtJQUNqQyw4Q0FBbUMsQ0FBQTtJQUNuQyw0REFBaUQsQ0FBQTtJQUNqRCx5REFBOEMsQ0FBQTtJQUM5QyxxREFBMEMsQ0FBQTtJQUMxQywyQ0FBZ0MsQ0FBQTtJQUNoQywwREFBK0MsQ0FBQTtJQUMvQyxpREFBc0MsQ0FBQTtJQUN0QyxxREFBMEMsQ0FBQTtJQUMxQyx5RUFBOEQsQ0FBQTtJQUM5RCxxREFBMEMsQ0FBQTtJQUMxQyxzREFBMkMsQ0FBQTtJQUMzQyxxREFBMEMsQ0FBQTtJQUMxQyxtRUFBd0QsQ0FBQTtJQUN4RCxvREFBeUMsQ0FBQTtJQUV6QyxtREFBd0MsQ0FBQTtJQUN4Qyx5REFBOEMsQ0FBQTtJQUM5QywrQ0FBb0MsQ0FBQTtJQUNwQywwQ0FBK0IsQ0FBQTtJQUMvQixxREFBMEMsQ0FBQTtJQUMxQyx1REFBNEMsQ0FBQTtJQUM1QyxpREFBc0MsQ0FBQTtJQUN0Qyx3REFBNkMsQ0FBQTtJQUM3QyxvREFBeUMsQ0FBQTtJQUN6Qyw0REFBaUQsQ0FBQTtJQUNqRCxzRUFBMkQsQ0FBQTtBQUM3RCxDQUFDLEVBaENXLE9BQU8sS0FBUCxPQUFPLFFBZ0NsQjtBQUVELE1BQU0sQ0FBTixJQUFZLFNBT1g7QUFQRCxXQUFZLFNBQVM7SUFDbkIsMERBQTZDLENBQUE7SUFDN0MsOENBQWlDLENBQUE7SUFDakMsNkNBQWdDLENBQUE7SUFDaEMsNERBQStDLENBQUE7SUFDL0MsNkVBQWdFLENBQUE7SUFDaEUsMkRBQThDLENBQUE7QUFDaEQsQ0FBQyxFQVBXLFNBQVMsS0FBVCxTQUFTLFFBT3BCO0FBRUQsTUFBTSxDQUFOLElBQVksa0JBTVg7QUFORCxXQUFZLGtCQUFrQjtJQUM1QiwyQ0FBcUIsQ0FBQTtJQUNyQix5Q0FBbUIsQ0FBQTtJQUNuQix1REFBaUMsQ0FBQTtJQUNqQyxtRUFBNkMsQ0FBQTtJQUM3QyxpRUFBMkMsQ0FBQTtBQUM3QyxDQUFDLEVBTlcsa0JBQWtCLEtBQWxCLGtCQUFrQixRQU03QjtBQUVELE1BQU0sQ0FBTixJQUFZLFNBb0JYO0FBcEJELFdBQVksU0FBUztJQUNuQixrREFBcUMsQ0FBQTtJQUNyQyxvREFBdUMsQ0FBQTtJQUN2QyxvQ0FBdUIsQ0FBQTtJQUN2Qiw4Q0FBaUMsQ0FBQTtJQUNqQyxvREFBdUMsQ0FBQTtJQUN2QyxnQ0FBbUIsQ0FBQTtJQUNuQiwwQ0FBNkIsQ0FBQTtJQUM3Qiw0Q0FBK0IsQ0FBQTtJQUMvQixrQ0FBcUIsQ0FBQTtJQUNyQix3Q0FBMkIsQ0FBQTtJQUMzQixvQ0FBdUIsQ0FBQTtJQUV2QixrREFBcUMsQ0FBQTtJQUNyQyxnREFBbUMsQ0FBQTtJQUNuQyxrREFBcUMsQ0FBQTtJQUNyQyxrREFBcUMsQ0FBQTtJQUNyQyw4Q0FBaUMsQ0FBQTtJQUNqQywwQ0FBNkIsQ0FBQTtJQUM3QiwwQ0FBNkIsQ0FBQTtBQUMvQixDQUFDLEVBcEJXLFNBQVMsS0FBVCxTQUFTLFFBb0JwQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEFwaVVybHMge1xuICBBVVRIX1NJR05fSU5fVVJMID0gJy9hdXRoL3YxL3NpZ25pbicsXG4gIEFVVEhfU0lHTl9JTl9BTk9OWU1PVVNMWV9VUkwgPSAnL2F1dGgvdjEvc2lnbmluL2Fub255bW91c2x5JyxcbiAgQVVUSF9TSUdOX0lOX1dJVEhfUFJPVklERVJfVVJMID0gJy9hdXRoL3YxL3NpZ25pbi93aXRoL3Byb3ZpZGVyJyxcbiAgQVVUSF9TSUdOX1VQX1VSTCA9ICcvYXV0aC92MS9zaWdudXAnLFxuICBBVVRIX1RPS0VOX1VSTCA9ICcvYXV0aC92MS90b2tlbicsXG4gIEFVVEhfUkVWT0tFX1VSTCA9ICcvYXV0aC92MS9yZXZva2UnLFxuICBQUk9WSURFUl9CSU5EX1VSTCA9ICcvYXV0aC92MS91c2VyL3Byb3ZpZGVyL2JpbmQnLFxuICBQUk9WSURFUl9UT0tFTl9VUkwgPSAnL2F1dGgvdjEvcHJvdmlkZXIvdG9rZW4nLFxuICBQUk9WSURFUl9VUklfVVJMID0gJy9hdXRoL3YxL3Byb3ZpZGVyL3VyaScsXG4gIFVTRVJfTUVfVVJMID0gJy9hdXRoL3YxL3VzZXIvbWUnLFxuICBXRURBX1VTRVJfVVJMID0gJy9hdXRoL3YxL3BsdWdpbi93ZWRhL3VzZXJpbmZvJyxcbiAgVVNFUl9RVUVSWV9VUkwgPSAnL2F1dGgvdjEvdXNlci9xdWVyeScsXG4gIFVTRVJfUFJJRklMRV9VUkwgPSAnL2F1dGgvdjEvdXNlci9wcm9maWxlJyxcbiAgVVNFUl9UUkFOU19CWV9QUk9WSURFUl9VUkwgPSAnL2F1dGgvdjEvdXNlci90cmFucy9ieS9wcm92aWRlcicsXG4gIFZFUklGSUNBVElPTl9VUkwgPSAnL2F1dGgvdjEvdmVyaWZpY2F0aW9uJyxcbiAgVkVSSUZZX1VSTCA9ICcvYXV0aC92MS92ZXJpZmljYXRpb24vdmVyaWZ5JyxcbiAgQ0FQVENIQV9EQVRBX1VSTCA9ICcvYXV0aC92MS9jYXB0Y2hhL2RhdGEnLFxuICBWRVJJRllfQ0FQVENIQV9EQVRBX1VSTCA9ICcvYXV0aC92MS9jYXB0Y2hhL2RhdGEvdmVyaWZ5JyxcbiAgR0VUX0NBUFRDSEFfVVJMID0gJy9hdXRoL3YxL2NhcHRjaGEvaW5pdCcsXG5cbiAgUFJPVklERVJfTElTVCA9ICcvYXV0aC92MS91c2VyL3Byb3ZpZGVyJyxcbiAgUFJPVklERVJfVU5CSU5EX1VSTCA9ICcvYXV0aC92MS91c2VyL3Byb3ZpZGVyJyxcbiAgQ0hFQ0tfUFdEX1VSTCA9ICcvYXV0aC92MS91c2VyL3N1ZG8nLFxuICBTVURPX1VSTCA9ICcvYXV0aC92MS91c2VyL3N1ZG8nLFxuICBCSU5EX0NPTlRBQ1RfVVJMID0gJy9hdXRoL3YxL3VzZXIvY29udGFjdCcsXG4gIEFVVEhfU0VUX1BBU1NXT1JEID0gJy9hdXRoL3YxL3VzZXIvcGFzc3dvcmQnLFxuICBBVVRIX1JFU0VUX1BBU1NXT1JEID0gJy9hdXRoL3YxL3Jlc2V0JyxcbiAgQVVUSF9HRVRfREVWSUNFX0NPREUgPSAnL2F1dGgvdjEvZGV2aWNlL2NvZGUnLFxuICBDSEVDS19VU0VSTkFNRSA9ICcvYXV0aC92MS9jaGVja1VzZXJuYW1lJyxcbiAgQ0hFQ0tfSUZfVVNFUl9FWElTVCA9ICcvYXV0aC92MS9jaGVja0lmVXNlckV4aXN0JyxcbiAgR0VUX1BST1ZJREVSX1RZUEUgPSAnL2F1dGgvdjEvbWdyL3Byb3ZpZGVyL3Byb3ZpZGVyU3ViVHlwZScsXG59XG5cbmV4cG9ydCBlbnVtIEFwaVVybHNWMiB7XG4gIEFVVEhfU0lHTl9JTl9VUkwgPSAnL2F1dGgvdjIvc2lnbmluL3VzZXJuYW1lJyxcbiAgQVVUSF9UT0tFTl9VUkwgPSAnL2F1dGgvdjIvdG9rZW4nLFxuICBVU0VSX01FX1VSTCA9ICcvYXV0aC92Mi91c2VyL21lJyxcbiAgVkVSSUZZX1VSTCA9ICcvYXV0aC92Mi9zaWduaW4vdmVyaWZpY2F0aW9uY29kZScsXG4gIEFVVEhfU0lHTl9JTl9XSVRIX1BST1ZJREVSX1VSTCA9ICcvYXV0aC92Mi9zaWduaW4vd2l0aC9wcm92aWRlcicsXG4gIEFVVEhfUFVCTElDX0tFWSA9ICcvYXV0aC92Mi9zaWduaW4vcHVibGljaGtleScsXG59XG5cbmV4cG9ydCBlbnVtIFZlcmlmaWNhdGlvblVzYWdlcyB7XG4gIFJFR0lTVEVSID0gJ1JFR0lTVEVSJyxcbiAgU0lHTl9JTiA9ICdTSUdOX0lOJyxcbiAgUEFTU1dPUkRfUkVTRVQgPSAnUEFTU1dPUkRfUkVTRVQnLFxuICBFTUFJTF9BRERSRVNTX0NIQU5HRSA9ICdFTUFJTF9BRERSRVNTX0NIQU5HRScsXG4gIFBIT05FX05VTUJFUl9DSEFOR0UgPSAnUEhPTkVfTlVNQkVSX0NIQU5HRScsXG59XG5cbmV4cG9ydCBlbnVtIEVycm9yVHlwZSB7XG4gIElOVkFMSURfQVJHVU1FTlQgPSAnaW52YWxpZF9hcmd1bWVudCcsXG4gIERFQURMSU5FX0VYQ0VFREVEID0gJ2RlYWRsaW5lX2V4Y2VlZGVkJyxcbiAgTk9UX0ZPVU5EID0gJ25vdF9mb3VuZCcsXG4gIEFMUkVBRFlfRVhJU1RTID0gJ2FscmVhZHlfZXhpc3RzJyxcbiAgUEVSTUlTU0lPTl9ERU5JRUQgPSAncGVybWlzc2lvbl9kZW5pZWQnLFxuICBBQk9SVEVEID0gJ2Fib3J0ZWQnLFxuICBPVVRfT0ZfUkFOR0UgPSAnb3V0X29mX3JhbmdlJyxcbiAgVU5JTVBMRU1FTlRFRCA9ICd1bmltcGxlbWVudGVkJyxcbiAgSU5URVJOQUwgPSAnaW50ZXJuYWwnLFxuICBVTkFWQUlMQUJMRSA9ICd1bmF2YWlsYWJsZScsXG4gIERBVEFfTE9TUyA9ICdkYXRhX2xvc3MnLFxuICAvLyBDb21tb25FcnJvclxuICBDQVBUQ0hBX1JFUVVJUkVEID0gJ2NhcHRjaGFfcmVxdWlyZWQnLFxuICBDQVBUQ0hBX0lOVkFMSUQgPSAnY2FwdGNoYV9pbnZhbGlkJyxcbiAgSU5WQUxJRF9QQVNTV09SRCA9ICdpbnZhbGlkX3Bhc3N3b3JkJyxcbiAgUEFTU1dPUkRfTk9UX1NFVCA9ICdwYXNzd29yZF9ub3Rfc2V0JyxcbiAgSU5WQUxJRF9TVEFUVVMgPSAnaW52YWxpZF9zdGF0dXMnLFxuICBVU0VSX1BFTkRJTkcgPSAndXNlcl9wZW5kaW5nJyxcbiAgVVNFUl9CTE9DS0VEID0gJ3VzZXJfYmxvY2tlZCcsXG59XG4iXX0=
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F1dGgvY29uc3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLE9BcUNYO0FBckNELFdBQVksT0FBTztJQUNqQiwrQ0FBb0MsQ0FBQTtJQUNwQyx1RUFBNEQsQ0FBQTtJQUM1RCwyRUFBZ0UsQ0FBQTtJQUNoRSx5RUFBOEQsQ0FBQTtJQUM5RCwrQ0FBb0MsQ0FBQTtJQUNwQyw0Q0FBaUMsQ0FBQTtJQUNqQyw4Q0FBbUMsQ0FBQTtJQUNuQyw0REFBaUQsQ0FBQTtJQUNqRCx5REFBOEMsQ0FBQTtJQUM5QyxxREFBMEMsQ0FBQTtJQUMxQywyQ0FBZ0MsQ0FBQTtJQUNoQywwREFBK0MsQ0FBQTtJQUMvQyxpREFBc0MsQ0FBQTtJQUN0QyxxREFBMEMsQ0FBQTtJQUMxQywyREFBZ0QsQ0FBQTtJQUNoRCx5RUFBOEQsQ0FBQTtJQUM5RCxxREFBMEMsQ0FBQTtJQUMxQyxzREFBMkMsQ0FBQTtJQUMzQyxxREFBMEMsQ0FBQTtJQUMxQyxtRUFBd0QsQ0FBQTtJQUN4RCxvREFBeUMsQ0FBQTtJQUV6QyxtREFBd0MsQ0FBQTtJQUN4Qyx5REFBOEMsQ0FBQTtJQUM5QywrQ0FBb0MsQ0FBQTtJQUNwQywwQ0FBK0IsQ0FBQTtJQUMvQixxREFBMEMsQ0FBQTtJQUMxQyx1REFBNEMsQ0FBQTtJQUM1QyxpREFBc0MsQ0FBQTtJQUN0Qyx3REFBNkMsQ0FBQTtJQUM3QyxvREFBeUMsQ0FBQTtJQUN6Qyw0REFBaUQsQ0FBQTtJQUNqRCxzRUFBMkQsQ0FBQTtJQUUzRCw4REFBbUQsQ0FBQTtJQUNuRCx1RUFBNEQsQ0FBQTtBQUM5RCxDQUFDLEVBckNXLE9BQU8sS0FBUCxPQUFPLFFBcUNsQjtBQUVELE1BQU0sQ0FBTixJQUFZLFNBT1g7QUFQRCxXQUFZLFNBQVM7SUFDbkIsMERBQTZDLENBQUE7SUFDN0MsOENBQWlDLENBQUE7SUFDakMsNkNBQWdDLENBQUE7SUFDaEMsNERBQStDLENBQUE7SUFDL0MsNkVBQWdFLENBQUE7SUFDaEUsMkRBQThDLENBQUE7QUFDaEQsQ0FBQyxFQVBXLFNBQVMsS0FBVCxTQUFTLFFBT3BCO0FBRUQsTUFBTSxDQUFOLElBQVksa0JBTVg7QUFORCxXQUFZLGtCQUFrQjtJQUM1QiwyQ0FBcUIsQ0FBQTtJQUNyQix5Q0FBbUIsQ0FBQTtJQUNuQix1REFBaUMsQ0FBQTtJQUNqQyxtRUFBNkMsQ0FBQTtJQUM3QyxpRUFBMkMsQ0FBQTtBQUM3QyxDQUFDLEVBTlcsa0JBQWtCLEtBQWxCLGtCQUFrQixRQU03QjtBQUVELE1BQU0sQ0FBTixJQUFZLFNBb0JYO0FBcEJELFdBQVksU0FBUztJQUNuQixrREFBcUMsQ0FBQTtJQUNyQyxvREFBdUMsQ0FBQTtJQUN2QyxvQ0FBdUIsQ0FBQTtJQUN2Qiw4Q0FBaUMsQ0FBQTtJQUNqQyxvREFBdUMsQ0FBQTtJQUN2QyxnQ0FBbUIsQ0FBQTtJQUNuQiwwQ0FBNkIsQ0FBQTtJQUM3Qiw0Q0FBK0IsQ0FBQTtJQUMvQixrQ0FBcUIsQ0FBQTtJQUNyQix3Q0FBMkIsQ0FBQTtJQUMzQixvQ0FBdUIsQ0FBQTtJQUV2QixrREFBcUMsQ0FBQTtJQUNyQyxnREFBbUMsQ0FBQTtJQUNuQyxrREFBcUMsQ0FBQTtJQUNyQyxrREFBcUMsQ0FBQTtJQUNyQyw4Q0FBaUMsQ0FBQTtJQUNqQywwQ0FBNkIsQ0FBQTtJQUM3QiwwQ0FBNkIsQ0FBQTtBQUMvQixDQUFDLEVBcEJXLFNBQVMsS0FBVCxTQUFTLFFBb0JwQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEFwaVVybHMge1xuICBBVVRIX1NJR05fSU5fVVJMID0gJy9hdXRoL3YxL3NpZ25pbicsXG4gIEFVVEhfU0lHTl9JTl9BTk9OWU1PVVNMWV9VUkwgPSAnL2F1dGgvdjEvc2lnbmluL2Fub255bW91c2x5JyxcbiAgQVVUSF9TSUdOX0lOX1dJVEhfUFJPVklERVJfVVJMID0gJy9hdXRoL3YxL3NpZ25pbi93aXRoL3Byb3ZpZGVyJyxcbiAgQVVUSF9TSUdOX0lOX1dJVEhfV0VDSEFUX1VSTCA9ICcvYXV0aC92MS9zaWduaW4vd2VjaGF0L25vYXV0aCcsXG4gIEFVVEhfU0lHTl9VUF9VUkwgPSAnL2F1dGgvdjEvc2lnbnVwJyxcbiAgQVVUSF9UT0tFTl9VUkwgPSAnL2F1dGgvdjEvdG9rZW4nLFxuICBBVVRIX1JFVk9LRV9VUkwgPSAnL2F1dGgvdjEvcmV2b2tlJyxcbiAgUFJPVklERVJfQklORF9VUkwgPSAnL2F1dGgvdjEvdXNlci9wcm92aWRlci9iaW5kJyxcbiAgUFJPVklERVJfVE9LRU5fVVJMID0gJy9hdXRoL3YxL3Byb3ZpZGVyL3Rva2VuJyxcbiAgUFJPVklERVJfVVJJX1VSTCA9ICcvYXV0aC92MS9wcm92aWRlci91cmknLFxuICBVU0VSX01FX1VSTCA9ICcvYXV0aC92MS91c2VyL21lJyxcbiAgV0VEQV9VU0VSX1VSTCA9ICcvYXV0aC92MS9wbHVnaW4vd2VkYS91c2VyaW5mbycsXG4gIFVTRVJfUVVFUllfVVJMID0gJy9hdXRoL3YxL3VzZXIvcXVlcnknLFxuICBVU0VSX1BSSUZJTEVfVVJMID0gJy9hdXRoL3YxL3VzZXIvcHJvZmlsZScsXG4gIFVTRVJfQkFTSUNfRURJVF9VUkwgPSAnL2F1dGgvdjEvdXNlci9iYXNpYy9lZGl0JyxcbiAgVVNFUl9UUkFOU19CWV9QUk9WSURFUl9VUkwgPSAnL2F1dGgvdjEvdXNlci90cmFucy9ieS9wcm92aWRlcicsXG4gIFZFUklGSUNBVElPTl9VUkwgPSAnL2F1dGgvdjEvdmVyaWZpY2F0aW9uJyxcbiAgVkVSSUZZX1VSTCA9ICcvYXV0aC92MS92ZXJpZmljYXRpb24vdmVyaWZ5JyxcbiAgQ0FQVENIQV9EQVRBX1VSTCA9ICcvYXV0aC92MS9jYXB0Y2hhL2RhdGEnLFxuICBWRVJJRllfQ0FQVENIQV9EQVRBX1VSTCA9ICcvYXV0aC92MS9jYXB0Y2hhL2RhdGEvdmVyaWZ5JyxcbiAgR0VUX0NBUFRDSEFfVVJMID0gJy9hdXRoL3YxL2NhcHRjaGEvaW5pdCcsXG5cbiAgUFJPVklERVJfTElTVCA9ICcvYXV0aC92MS91c2VyL3Byb3ZpZGVyJyxcbiAgUFJPVklERVJfVU5CSU5EX1VSTCA9ICcvYXV0aC92MS91c2VyL3Byb3ZpZGVyJyxcbiAgQ0hFQ0tfUFdEX1VSTCA9ICcvYXV0aC92MS91c2VyL3N1ZG8nLFxuICBTVURPX1VSTCA9ICcvYXV0aC92MS91c2VyL3N1ZG8nLFxuICBCSU5EX0NPTlRBQ1RfVVJMID0gJy9hdXRoL3YxL3VzZXIvY29udGFjdCcsXG4gIEFVVEhfU0VUX1BBU1NXT1JEID0gJy9hdXRoL3YxL3VzZXIvcGFzc3dvcmQnLFxuICBBVVRIX1JFU0VUX1BBU1NXT1JEID0gJy9hdXRoL3YxL3Jlc2V0JyxcbiAgQVVUSF9HRVRfREVWSUNFX0NPREUgPSAnL2F1dGgvdjEvZGV2aWNlL2NvZGUnLFxuICBDSEVDS19VU0VSTkFNRSA9ICcvYXV0aC92MS9jaGVja1VzZXJuYW1lJyxcbiAgQ0hFQ0tfSUZfVVNFUl9FWElTVCA9ICcvYXV0aC92MS9jaGVja0lmVXNlckV4aXN0JyxcbiAgR0VUX1BST1ZJREVSX1RZUEUgPSAnL2F1dGgvdjEvbWdyL3Byb3ZpZGVyL3Byb3ZpZGVyU3ViVHlwZScsXG5cbiAgR0VUX01JTklQUk9HUkFNX1FSQ09ERSA9ICcvYXV0aC92MS9xcmNvZGUvZ2VuZXJhdGUnLFxuICBHRVRfTUlOSVBST0dSQU1fUVJDT0RFX1NUQVRVUyA9ICcvYXV0aC92MS9xcmNvZGUvZ2V0L3N0YXR1cycsXG59XG5cbmV4cG9ydCBlbnVtIEFwaVVybHNWMiB7XG4gIEFVVEhfU0lHTl9JTl9VUkwgPSAnL2F1dGgvdjIvc2lnbmluL3VzZXJuYW1lJyxcbiAgQVVUSF9UT0tFTl9VUkwgPSAnL2F1dGgvdjIvdG9rZW4nLFxuICBVU0VSX01FX1VSTCA9ICcvYXV0aC92Mi91c2VyL21lJyxcbiAgVkVSSUZZX1VSTCA9ICcvYXV0aC92Mi9zaWduaW4vdmVyaWZpY2F0aW9uY29kZScsXG4gIEFVVEhfU0lHTl9JTl9XSVRIX1BST1ZJREVSX1VSTCA9ICcvYXV0aC92Mi9zaWduaW4vd2l0aC9wcm92aWRlcicsXG4gIEFVVEhfUFVCTElDX0tFWSA9ICcvYXV0aC92Mi9zaWduaW4vcHVibGljaGtleScsXG59XG5cbmV4cG9ydCBlbnVtIFZlcmlmaWNhdGlvblVzYWdlcyB7XG4gIFJFR0lTVEVSID0gJ1JFR0lTVEVSJyxcbiAgU0lHTl9JTiA9ICdTSUdOX0lOJyxcbiAgUEFTU1dPUkRfUkVTRVQgPSAnUEFTU1dPUkRfUkVTRVQnLFxuICBFTUFJTF9BRERSRVNTX0NIQU5HRSA9ICdFTUFJTF9BRERSRVNTX0NIQU5HRScsXG4gIFBIT05FX05VTUJFUl9DSEFOR0UgPSAnUEhPTkVfTlVNQkVSX0NIQU5HRScsXG59XG5cbmV4cG9ydCBlbnVtIEVycm9yVHlwZSB7XG4gIElOVkFMSURfQVJHVU1FTlQgPSAnaW52YWxpZF9hcmd1bWVudCcsXG4gIERFQURMSU5FX0VYQ0VFREVEID0gJ2RlYWRsaW5lX2V4Y2VlZGVkJyxcbiAgTk9UX0ZPVU5EID0gJ25vdF9mb3VuZCcsXG4gIEFMUkVBRFlfRVhJU1RTID0gJ2FscmVhZHlfZXhpc3RzJyxcbiAgUEVSTUlTU0lPTl9ERU5JRUQgPSAncGVybWlzc2lvbl9kZW5pZWQnLFxuICBBQk9SVEVEID0gJ2Fib3J0ZWQnLFxuICBPVVRfT0ZfUkFOR0UgPSAnb3V0X29mX3JhbmdlJyxcbiAgVU5JTVBMRU1FTlRFRCA9ICd1bmltcGxlbWVudGVkJyxcbiAgSU5URVJOQUwgPSAnaW50ZXJuYWwnLFxuICBVTkFWQUlMQUJMRSA9ICd1bmF2YWlsYWJsZScsXG4gIERBVEFfTE9TUyA9ICdkYXRhX2xvc3MnLFxuICAvLyBDb21tb25FcnJvclxuICBDQVBUQ0hBX1JFUVVJUkVEID0gJ2NhcHRjaGFfcmVxdWlyZWQnLFxuICBDQVBUQ0hBX0lOVkFMSUQgPSAnY2FwdGNoYV9pbnZhbGlkJyxcbiAgSU5WQUxJRF9QQVNTV09SRCA9ICdpbnZhbGlkX3Bhc3N3b3JkJyxcbiAgUEFTU1dPUkRfTk9UX1NFVCA9ICdwYXNzd29yZF9ub3Rfc2V0JyxcbiAgSU5WQUxJRF9TVEFUVVMgPSAnaW52YWxpZF9zdGF0dXMnLFxuICBVU0VSX1BFTkRJTkcgPSAndXNlcl9wZW5kaW5nJyxcbiAgVVNFUl9CTE9DS0VEID0gJ3VzZXJfYmxvY2tlZCcsXG59XG4iXX0=
@@ -375,4 +375,30 @@ export interface ProviderSubType {
375
375
  id: string;
376
376
  provider_sub_type: 'NO_AUTH_LOGIN' | '';
377
377
  }
378
+ export interface GetMiniProgramQrCodeRequest {
379
+ envId: string;
380
+ wxAppId: string;
381
+ }
382
+ export interface GetMiniProgramQrCodeResponse {
383
+ qr_code: string;
384
+ qr_code_id: string;
385
+ expires_in: number;
386
+ }
387
+ export interface GetMiniProgramQrCodeStatusRequest {
388
+ qrCodeId: string;
389
+ envId: string;
390
+ wxAppId: string;
391
+ }
392
+ export interface GetMiniProgramQrCodeStatusResponse {
393
+ status: string;
394
+ provider_token: string;
395
+ expires_in: number;
396
+ }
397
+ export interface ModifyUserBasicInfoRequest {
398
+ user_id: string;
399
+ nickname: string;
400
+ username: string;
401
+ description: string;
402
+ avatar_url: string;
403
+ }
378
404
  export {};
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F1dGgvbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbnRlcmZhY2UgQmFzZVJlcXVlc3Qge1xuICBjbGllbnRfaWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIEdldEN1c3RvbVNpZ25UaWNrZXRGbiA9ICgpID0+IFByb21pc2U8c3RyaW5nPjtcblxuZXhwb3J0IGludGVyZmFjZSBTaWduSW5SZXF1ZXN0IGV4dGVuZHMgQmFzZVJlcXVlc3QsIEVuY3J5cHRQYXJhbXMgIHtcbiAgdXNlcm5hbWU/OiBzdHJpbmc7XG4gIHBhc3N3b3JkPzogc3RyaW5nO1xuICB2ZXJpZmljYXRpb25fdG9rZW4/OiBzdHJpbmc7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbkluV2l0aFByb3ZpZGVyUmVxdWVzdCBleHRlbmRzIEJhc2VSZXF1ZXN0IHtcbiAgcHJvdmlkZXJfdG9rZW46IHN0cmluZztcbiAgdmVyc2lvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWduVXBSZXF1ZXN0IGV4dGVuZHMgQmFzZVJlcXVlc3Qge1xuICBwaG9uZV9udW1iZXI/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuXG4gIHZlcmlmaWNhdGlvbl9jb2RlPzogc3RyaW5nO1xuICB2ZXJpZmljYXRpb25fdG9rZW4/OiBzdHJpbmc7XG4gIHByb3ZpZGVyX3Rva2VuPzogc3RyaW5nO1xuXG4gIHBhc3N3b3JkPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICBnZW5kZXI/OiBzdHJpbmc7XG4gIHBpY3R1cmU/OiBzdHJpbmc7XG4gIGxvY2FsZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRWZXJpZmljYXRpb25SZXF1ZXN0IGV4dGVuZHMgQmFzZVJlcXVlc3Qge1xuICBwaG9uZV9udW1iZXI/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICB0YXJnZXQ/OiBzdHJpbmcgfCAnQU5ZJztcbiAgdXNhZ2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0VmVyaWZpY2F0aW9uUmVzcG9uc2Uge1xuICB2ZXJpZmljYXRpb25faWQ/OiBzdHJpbmc7XG4gIGlzX3VzZXI/OiBib29sZWFuIHwgZmFsc2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZ5UmVzcG9uc2Uge1xuICB2ZXJpZmljYXRpb25fdG9rZW4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZ5UmVxdWVzdCBleHRlbmRzIEJhc2VSZXF1ZXN0IHtcbiAgdmVyaWZpY2F0aW9uX2NvZGU6IHN0cmluZztcbiAgdmVyaWZpY2F0aW9uX2lkPzogc3RyaW5nO1xuICB2ZXJpZmljYXRpb25fdG9rZW4/OiBzdHJpbmc7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlkZXJCaW5kUmVxdWVzdCB7XG4gIHByb3ZpZGVyX3Rva2VuOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JhbnRQcm92aWRlclRva2VuUmVxdWVzdCBleHRlbmRzIEJhc2VSZXF1ZXN0IHtcbiAgcHJvdmlkZXJfaWQ6IHN0cmluZztcbiAgcHJvdmlkZXJfcmVkaXJlY3RfdXJpPzogc3RyaW5nO1xuICBwcm92aWRlcl9jb2RlPzogc3RyaW5nO1xuICBwcm92aWRlcl9hY2Nlc3NfdG9rZW4/OiBzdHJpbmc7XG4gIHByb3ZpZGVyX2lkX3Rva2VuPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyYW50UHJvdmlkZXJUb2tlblJlc3BvbnNlIHtcbiAgcHJvdmlkZXJfdG9rZW46IHN0cmluZztcbiAgZXhwaXJlc19pbjogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhdGNoUHJvdmlkZXJUb2tlblJlcXVlc3QgZXh0ZW5kcyBCYXNlUmVxdWVzdCB7XG4gIHByb3ZpZGVyX2lkPzogc3RyaW5nO1xuICBwcm92aWRlcl90b2tlbjogc3RyaW5nO1xuICBwcm92aWRlcl9wYXJhbXM6IHtcbiAgICBlbmNyeXB0ZWREYXRhPzogc3RyaW5nO1xuICAgIGl2Pzogc3RyaW5nO1xuICAgIGNvZGU/OiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF0Y2hQcm92aWRlclRva2VuUmVzcG9uc2Uge1xuICBwcm92aWRlcl90b2tlbjogc3RyaW5nO1xuICBleHBpcmVzX2luOiBudW1iZXI7XG4gIHByb3ZpZGVyX3Byb2ZpbGU6IFByb3ZpZGVyUHJvZmlsZTtcbn1cblxuLy8gZXhwb3J0IGludGVyZmFjZSBHZW5Qcm92aWRlclJlZGlyZWN0VXJpUmVxdWVzdCB7XG4vLyAgIHByb3ZpZGVyX2lkOiBzdHJpbmc7XG4vLyAgIHByb3ZpZGVyX3JlZGlyZWN0X3VyaTogc3RyaW5nO1xuLy8gICBzdGF0ZTogc3RyaW5nO1xuLy8gICBvdGhlcl9wYXJhbXM/OiB7XG4vLyAgICAgc2lnbl9vdXRfdXJpPzogc3RyaW5nO1xuLy8gICB9O1xuLy8gfVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlblByb3ZpZGVyUmVkaXJlY3RVcmlSZXNwb25zZSB7XG4gIHVyaTogc3RyaW5nO1xuICBzaWdub3V0X3VyaT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCaW5kV2l0aFByb3ZpZGVyUmVxdWVzdCBleHRlbmRzIEJhc2VSZXF1ZXN0IHtcbiAgcHJvdmlkZXJfdG9rZW46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCaW5kV2l0aFByb3ZpZGVyUmVxdWVzdCB7XG4gIHByb3ZpZGVyX3Rva2VuOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclByb2ZpbGVQcm92aWRlciB7XG4gIGlkPzogc3RyaW5nO1xuICBwcm92aWRlcl91c2VyX2lkPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJQcm9maWxlIHtcbiAgbmFtZT86IHN0cmluZztcbiAgcGljdHVyZT86IHN0cmluZztcbiAgdXNlcm5hbWU/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICBlbWFpbF92ZXJpZmllZD86IGJvb2xlYW47XG4gIHBob25lX251bWJlcj86IHN0cmluZztcbiAgcHJvdmlkZXJzPzogW1VzZXJQcm9maWxlUHJvdmlkZXJdO1xuICBnZW5kZXI/OiBzdHJpbmc7XG4gIGJpcnRoZGF0ZT86IHN0cmluZztcbiAgem9uZWluZm8/OiBzdHJpbmc7XG4gIGxvY2FsZT86IHN0cmluZztcbiAgY3JlYXRlZF9mcm9tPzogc3RyaW5nO1xuICBzdWI/OiBzdHJpbmdcbiAgdWlkPzogc3RyaW5nXG4gIGFkZHJlc3M/OiB7XG4gICAgZm9ybWF0dGVkPzogc3RyaW5nLFxuICAgIHN0cmVldF9hZGRyZXNzPzogc3RyaW5nLFxuICAgIGxvY2FsaXR5Pzogc3RyaW5nLFxuICAgIHJlZ2lvbj86IHN0cmluZyxcbiAgICBwb3N0YWxfY29kZT86IHN0cmluZyxcbiAgICBjb3VudHJ5Pzogc3RyaW5nXG4gIH1cbiAgbmlja05hbWU/OiBzdHJpbmcgLy8gVE9ETzpcbiAgcHJvdmluY2U/OiBzdHJpbmcgLy8gVE9ETzpcbiAgY291bnRyeT86IHN0cmluZyAvLyBUT0RPOlxuICBjaXR5Pzogc3RyaW5nIC8vIFRPRE86XG59XG5cbmV4cG9ydCB0eXBlIFVzZXJJbmZvID0gVXNlclByb2ZpbGU7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlkZXJQcm9maWxlIHtcbiAgcHJvdmlkZXJfaWQ6IHN0cmluZztcbiAgcGhvbmVfbnVtYmVyPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zQnlQcm92aWRlclJlcXVlc3Qge1xuICBwcm92aWRlcl90b2tlbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyYW50VG9rZW5SZXF1ZXN0IGV4dGVuZHMgQmFzZVJlcXVlc3Qge1xuICBjbGllbnRfc2VjcmV0Pzogc3RyaW5nO1xuICBjb2RlPzogc3RyaW5nO1xuICBncmFudF90eXBlPzogc3RyaW5nO1xuICByZWRpcmVjdF91cmk/OiBzdHJpbmc7XG4gIG5vbmNlPzogc3RyaW5nO1xuICByZWZyZXNoX3Rva2VuPzogc3RyaW5nO1xuICBzY29wZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVbmJpbmRQcm92aWRlclJlcXVlc3QgZXh0ZW5kcyBCYXNlUmVxdWVzdCB7XG4gIHByb3ZpZGVyX2lkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlY2tQYXNzd29yZHJSZXF1ZXN0IGV4dGVuZHMgQmFzZVJlcXVlc3Qge1xuICBwYXNzd29yZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJpbmRQaG9uZVJlcXVlc3QgZXh0ZW5kcyBCYXNlUmVxdWVzdCB7XG4gIHBob25lX251bWJlcjogc3RyaW5nO1xuICBzdWRvX3Rva2VuOiBzdHJpbmc7XG4gIHZlcmlmaWNhdGlvbl90b2tlbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNldFBhc3N3b3JkUmVxdWVzdCBleHRlbmRzIEJhc2VSZXF1ZXN0IHtcbiAgbmV3X3Bhc3N3b3JkOiBzdHJpbmc7XG4gIHN1ZG9fdG9rZW46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VCaW5kZWRQcm92aWRlclJlcXVlc3QgZXh0ZW5kcyBCYXNlUmVxdWVzdCB7XG4gIHRyYW5zX3Rva2VuOiBzdHJpbmc7XG4gIHByb3ZpZGVyX2lkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIENoYW5nZUJpbmRlZFByb3ZpZGVyUmVzcG9uc2UgPSBCYXNlUmVxdWVzdFxuXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5VXNlclByb2ZpbGVSZXEgZXh0ZW5kcyBCYXNlUmVxdWVzdCB7XG4gIGFwcGVuZGVkX3BhcmFtczogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25JbldpdGhQcm92aWRlclJlcXVlc3Qge1xuICBwcm92aWRlcl90b2tlbjogc3RyaW5nO1xuICBwcm92aWRlcl9pZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWduVXBSZXF1ZXN0IHtcbiAgcGhvbmVfbnVtYmVyPzogc3RyaW5nO1xuICBlbWFpbD86IHN0cmluZztcblxuICB2ZXJpZmljYXRpb25fY29kZT86IHN0cmluZztcbiAgdmVyaWZpY2F0aW9uX3Rva2VuPzogc3RyaW5nO1xuICBwcm92aWRlcl90b2tlbj86IHN0cmluZztcblxuICBwYXNzd29yZD86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgZ2VuZGVyPzogc3RyaW5nO1xuICBwaWN0dXJlPzogc3RyaW5nO1xuICBsb2NhbGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0VmVyaWZpY2F0aW9uUmVxdWVzdCB7XG4gIHBob25lX251bWJlcj86IHN0cmluZztcbiAgZW1haWw/OiBzdHJpbmc7XG4gIC8vIOWPr+mAiSBBTlnvvIxVU0VS77yMTk9UX1VTRVIsIENVUl9VU0VSO1xuICB0YXJnZXQ/OiBzdHJpbmcgfCAnQU5ZJztcbiAgdXNhZ2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0VmVyaWZpY2F0aW9uUmVzcG9uc2Uge1xuICB2ZXJpZmljYXRpb25faWQ/OiBzdHJpbmc7XG4gIGlzX3VzZXI/OiBib29sZWFuIHwgZmFsc2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZ5UmVzcG9uc2Uge1xuICB2ZXJpZmljYXRpb25fdG9rZW4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZ5UmVxdWVzdCB7XG4gIHZlcmlmaWNhdGlvbl9jb2RlOiBzdHJpbmc7XG4gIHZlcmlmaWNhdGlvbl9pZD86IHN0cmluZztcbiAgdmVyaWZpY2F0aW9uX3Rva2VuPzogc3RyaW5nO1xuICB2ZXJzaW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVyQmluZFJlcXVlc3Qge1xuICBwcm92aWRlcl90b2tlbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyYW50UHJvdmlkZXJUb2tlblJlcXVlc3Qge1xuICBwcm92aWRlcl9pZDogc3RyaW5nO1xuICBwcm92aWRlcl9yZWRpcmVjdF91cmk/OiBzdHJpbmc7XG4gIHByb3ZpZGVyX2NvZGU/OiBzdHJpbmc7XG4gIHByb3ZpZGVyX2FjY2Vzc190b2tlbj86IHN0cmluZztcbiAgcHJvdmlkZXJfaWRfdG9rZW4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JhbnRQcm92aWRlclRva2VuUmVzcG9uc2Uge1xuICBwcm92aWRlcl90b2tlbjogc3RyaW5nO1xuICBleHBpcmVzX2luOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF0Y2hQcm92aWRlclRva2VuUmVxdWVzdCB7XG4gIHByb3ZpZGVyX3Rva2VuOiBzdHJpbmc7XG4gIHByb3ZpZGVyX2lkPzogc3RyaW5nO1xuICBwcm92aWRlcl9wYXJhbXM6IHtcbiAgICBlbmNyeXB0ZWREYXRhPzogc3RyaW5nO1xuICAgIGl2Pzogc3RyaW5nO1xuICAgIGNvZGU/OiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF0Y2hQcm92aWRlclRva2VuUmVzcG9uc2Uge1xuICBwcm92aWRlcl90b2tlbjogc3RyaW5nO1xuICBleHBpcmVzX2luOiBudW1iZXI7XG4gIHByb3ZpZGVyX3Byb2ZpbGU6IFByb3ZpZGVyUHJvZmlsZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW5Qcm92aWRlclJlZGlyZWN0VXJpUmVxdWVzdCB7XG4gIHByb3ZpZGVyX2lkOiBzdHJpbmc7XG4gIHByb3ZpZGVyX3JlZGlyZWN0X3VyaTogc3RyaW5nO1xuICBzdGF0ZTogc3RyaW5nO1xuICBvdGhlcl9wYXJhbXM/OiB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nXG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VuUHJvdmlkZXJSZWRpcmVjdFVyaVJlc3BvbnNlIHtcbiAgdXJpOiBzdHJpbmc7XG4gIHNpZ25vdXRfdXJpPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJpbmRXaXRoUHJvdmlkZXJSZXF1ZXN0IHtcbiAgcHJvdmlkZXJfdG9rZW46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCaW5kV2l0aFByb3ZpZGVyUmVxdWVzdCB7XG4gIHByb3ZpZGVyX3Rva2VuOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclByb2ZpbGVQcm92aWRlciB7XG4gIGlkPzogc3RyaW5nO1xuICBwcm92aWRlcl91c2VyX2lkPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJQcm9maWxlIHtcbiAgbmFtZT86IHN0cmluZztcbiAgcGljdHVyZT86IHN0cmluZztcbiAgdXNlcm5hbWU/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICBlbWFpbF92ZXJpZmllZD86IGJvb2xlYW47XG4gIHBob25lX251bWJlcj86IHN0cmluZztcbiAgcHJvdmlkZXJzPzogW1VzZXJQcm9maWxlUHJvdmlkZXJdO1xuICBnZW5kZXI/OiBzdHJpbmc7XG4gIGJpcnRoZGF0ZT86IHN0cmluZztcbiAgem9uZWluZm8/OiBzdHJpbmc7XG4gIGxvY2FsZT86IHN0cmluZztcbiAgY3JlYXRlZF9mcm9tPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVyUHJvZmlsZSB7XG4gIHByb3ZpZGVyX2lkOiBzdHJpbmc7XG4gIHBob25lX251bWJlcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc0J5UHJvdmlkZXJSZXF1ZXN0IHtcbiAgcHJvdmlkZXJfdG9rZW46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHcmFudFRva2VuUmVxdWVzdCB7XG4gIGNsaWVudF9zZWNyZXQ/OiBzdHJpbmc7XG4gIGNvZGU/OiBzdHJpbmc7XG4gIGdyYW50X3R5cGU/OiBzdHJpbmc7XG4gIHJlZGlyZWN0X3VyaT86IHN0cmluZztcbiAgbm9uY2U/OiBzdHJpbmc7XG4gIHJlZnJlc2hfdG9rZW4/OiBzdHJpbmc7XG4gIHNjb3BlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVuYmluZFByb3ZpZGVyUmVxdWVzdCB7XG4gIHByb3ZpZGVyX2lkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlY2tQYXNzd29yZHJSZXF1ZXN0IHtcbiAgcGFzc3dvcmQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCaW5kUGhvbmVSZXF1ZXN0IHtcbiAgcGhvbmVfbnVtYmVyOiBzdHJpbmc7XG4gIHN1ZG9fdG9rZW46IHN0cmluZztcbiAgdmVyaWZpY2F0aW9uX3Rva2VuOiBzdHJpbmc7XG4gIGNvbmZsaWN0X3Jlc29sdXRpb246IHN0cmluZ1xuICAvLyAxLiBERUZBVUxUIDAsIOm7mOiupOaPkOekuueUqOaIt+aJi+acuuWPt+W3suiiq+e7keWumlxuICAvLyAyLiBERUxFVEVfQUNDT1VOVF9UUkFOU0ZFUiAxLCDmoIforrDljp/otKblj7flt7Looqvms6jplIDvvIzlubblsIbmiYvmnLrmjaLnu5Hnu5noh6rlt7FcbiAgLy8gMy4gVFJBTlNGRVIgMiwg5LuF5o2i57uR5omL5py65Y+377yM5LiN5rOo6ZSA5Y6f5pyJ6LSm5Y+377yI5o2i57uR5ZCO5Y6f6LSm5Y+35peg5rOV55m75b2V5pe277yM5YiZ6Ieq5Yqo5rOo6ZSA5Y6f6LSm5Y+377yJXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmluZEVtYWlsUmVxdWVzdCB7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIHN1ZG9fdG9rZW46IHN0cmluZztcbiAgdmVyaWZpY2F0aW9uX3Rva2VuOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2V0UGFzc3dvcmRSZXF1ZXN0IHtcbiAgbmV3X3Bhc3N3b3JkOiBzdHJpbmc7XG4gIHN1ZG9fdG9rZW46IHN0cmluZztcbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIFNldFBhc3N3b3JkUmVxdWVzdCB7XG4gIG5ld19wYXNzd29yZDogc3RyaW5nO1xuICBzdWRvX3Rva2VuOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlUGFzc3dvcmRSZXF1ZXN0IHtcbiAgb2xkX3Bhc3N3b3JkOiBzdHJpbmc7XG4gIG5ld19wYXNzd29yZDogc3RyaW5nO1xufVxuXG4vLyBwYXNzd29yZCDlkowgdmVyaWZpY2F0aW9uX3Rva2VuIOiAjOmAieS4gO+8jOWmguaenOe7keWumuS6huaJi+acuuWPt++8jOWImeW/hemhu+S9v+eUqHZlcmlmaWNhdGlvbl90b2tlbiDov5vooYxzdWRvXG5leHBvcnQgaW50ZXJmYWNlIFN1ZG9SZXF1ZXN0IHtcbiAgcGFzc3dvcmQ/OiBzdHJpbmc7XG4gIHZlcmlmaWNhdGlvbl90b2tlbj86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1ZG9SZXNwb25zZSB7XG4gIHN1ZG9fdG9rZW4/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXaXRoU3Vkb1JlcXVlc3Qge1xuICBzdWRvX3Rva2VuOiBzdHJpbmc7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG59XG5cblxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VCb3VuZFByb3ZpZGVyUmVxdWVzdCB7XG4gIHRyYW5zX3Rva2VuOiBzdHJpbmc7XG4gIHByb3ZpZGVyX2lkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlQm91bmRQcm92aWRlclJlc3BvbnNlIHtcbiAgY2xpZW50X2lkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlVc2VyUHJvZmlsZVJlcXVlc3Qge1xuICBpZD86IFtzdHJpbmddO1xuICB1c2VybmFtZT86IHN0cmluZztcbiAgZW1haWw/OiBzdHJpbmc7XG4gIHBob25lX251bWJlcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBRdWVyeVVzZXJQcm9maWxlUmVzcG9uc2Uge1xuICB0b3RhbDogc3RyaW5nO1xuICBkYXRhOiBTaW1wbGVVc2VyUHJvZmlsZVtdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzZXRQYXNzd29yZFJlcXVlc3QgZXh0ZW5kcyBCYXNlUmVxdWVzdCB7XG4gIGVtYWlsOiBzdHJpbmdcbiAgcGhvbmVfbnVtYmVyOiBzdHJpbmdcbiAgbmV3X3Bhc3N3b3JkOiBzdHJpbmdcbiAgdmVyaWZpY2F0aW9uX3Rva2VuOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZXZpY2VBdXRob3JpemVSZXF1ZXN0IGV4dGVuZHMgQmFzZVJlcXVlc3Qge1xuICBzY29wZT86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERldmljZUF1dGhvcml6ZVJlc3BvbnNlIHtcbiAgZGV2aWNlX2NvZGU6IHN0cmluZ1xuICB1c2VyX2NvZGU6IHN0cmluZ1xuICBleHBpcmVzX2luOiBudW1iZXJcbiAgaW50ZXJ2YWw6IG51bWJlclxuICB2ZXJpZmljYXRpb25fdXJsOiBzdHJpbmdcbiAgdmVyaWZpY2F0aW9uX3VyaV9jb21wbGV0ZTogc3RyaW5nXG59XG5cbi8vIOeugOWMlueJiOeUqOaIt+S/oeaBr1xuZXhwb3J0IGludGVyZmFjZSBTaW1wbGVVc2VyUHJvZmlsZSB7XG4gIHN1Yjogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHBpY3R1cmU/OiBzdHJpbmc7XG4gIGdlbmRlcj86IHN0cmluZztcbiAgbG9jYWxlPzogc3RyaW5nO1xuICBlbWFpbD86IHN0cmluZztcbiAgcGhvbmVfbnVtYmVyPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoZWNrVXNlcm5hbWVSZXF1ZXN0IHtcbiAgdXNlcm5hbWU6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoZWNrSWZVc2VyRXhpc3RSZXF1ZXN0IHtcbiAgdXNlcm5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGVja0lmVXNlckV4aXN0UmVzcG9uc2Uge1xuICBleGlzdDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdWJsaWNLZXkge1xuICBwdWJsaWNfa2V5OiBzdHJpbmc7IC8vIOWKoOWvhueahOWFrOmSpVxuICBwdWJsaWNfa2V5X3RodW1icHJpbnQ6IHN0cmluZzsgLy8g5Yqg5a+G55qE5YWs6ZKl5oyH57q5XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW5jcnlwdFBhcmFtcyB7XG4gIGlzRW5jcnlwdD86IGJvb2xlYW47IC8vIOaYr+WQpumcgOimgeWKoOWvhlxuICBwdWJsaWNfa2V5X3RodW1icHJpbnQ/OiBzdHJpbmc7IC8vIOWKoOWvhueahOWFrOmSpeaMh+e6uVxuICBwYXJhbXM/OiBzdHJpbmc7IC8vIOWKoOWvhueahOaVsOaNrlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVyU3ViVHlwZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHByb3ZpZGVyX3N1Yl90eXBlOiAnTk9fQVVUSF9MT0dJTicgfCAnJzsgLy8gTk9fQVVUSF9MT0dJTi3lhY3lr4bnmbvlvZVcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F1dGgvbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbnRlcmZhY2UgQmFzZVJlcXVlc3Qge1xuICBjbGllbnRfaWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIEdldEN1c3RvbVNpZ25UaWNrZXRGbiA9ICgpID0+IFByb21pc2U8c3RyaW5nPjtcblxuZXhwb3J0IGludGVyZmFjZSBTaWduSW5SZXF1ZXN0IGV4dGVuZHMgQmFzZVJlcXVlc3QsIEVuY3J5cHRQYXJhbXMgIHtcbiAgdXNlcm5hbWU/OiBzdHJpbmc7XG4gIHBhc3N3b3JkPzogc3RyaW5nO1xuICB2ZXJpZmljYXRpb25fdG9rZW4/OiBzdHJpbmc7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbkluV2l0aFByb3ZpZGVyUmVxdWVzdCBleHRlbmRzIEJhc2VSZXF1ZXN0IHtcbiAgcHJvdmlkZXJfdG9rZW46IHN0cmluZztcbiAgdmVyc2lvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWduVXBSZXF1ZXN0IGV4dGVuZHMgQmFzZVJlcXVlc3Qge1xuICBwaG9uZV9udW1iZXI/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuXG4gIHZlcmlmaWNhdGlvbl9jb2RlPzogc3RyaW5nO1xuICB2ZXJpZmljYXRpb25fdG9rZW4/OiBzdHJpbmc7XG4gIHByb3ZpZGVyX3Rva2VuPzogc3RyaW5nO1xuXG4gIHBhc3N3b3JkPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICBnZW5kZXI/OiBzdHJpbmc7XG4gIHBpY3R1cmU/OiBzdHJpbmc7XG4gIGxvY2FsZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRWZXJpZmljYXRpb25SZXF1ZXN0IGV4dGVuZHMgQmFzZVJlcXVlc3Qge1xuICBwaG9uZV9udW1iZXI/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICB0YXJnZXQ/OiBzdHJpbmcgfCAnQU5ZJztcbiAgdXNhZ2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0VmVyaWZpY2F0aW9uUmVzcG9uc2Uge1xuICB2ZXJpZmljYXRpb25faWQ/OiBzdHJpbmc7XG4gIGlzX3VzZXI/OiBib29sZWFuIHwgZmFsc2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZ5UmVzcG9uc2Uge1xuICB2ZXJpZmljYXRpb25fdG9rZW4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZ5UmVxdWVzdCBleHRlbmRzIEJhc2VSZXF1ZXN0IHtcbiAgdmVyaWZpY2F0aW9uX2NvZGU6IHN0cmluZztcbiAgdmVyaWZpY2F0aW9uX2lkPzogc3RyaW5nO1xuICB2ZXJpZmljYXRpb25fdG9rZW4/OiBzdHJpbmc7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlkZXJCaW5kUmVxdWVzdCB7XG4gIHByb3ZpZGVyX3Rva2VuOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JhbnRQcm92aWRlclRva2VuUmVxdWVzdCBleHRlbmRzIEJhc2VSZXF1ZXN0IHtcbiAgcHJvdmlkZXJfaWQ6IHN0cmluZztcbiAgcHJvdmlkZXJfcmVkaXJlY3RfdXJpPzogc3RyaW5nO1xuICBwcm92aWRlcl9jb2RlPzogc3RyaW5nO1xuICBwcm92aWRlcl9hY2Nlc3NfdG9rZW4/OiBzdHJpbmc7XG4gIHByb3ZpZGVyX2lkX3Rva2VuPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyYW50UHJvdmlkZXJUb2tlblJlc3BvbnNlIHtcbiAgcHJvdmlkZXJfdG9rZW46IHN0cmluZztcbiAgZXhwaXJlc19pbjogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhdGNoUHJvdmlkZXJUb2tlblJlcXVlc3QgZXh0ZW5kcyBCYXNlUmVxdWVzdCB7XG4gIHByb3ZpZGVyX2lkPzogc3RyaW5nO1xuICBwcm92aWRlcl90b2tlbjogc3RyaW5nO1xuICBwcm92aWRlcl9wYXJhbXM6IHtcbiAgICBlbmNyeXB0ZWREYXRhPzogc3RyaW5nO1xuICAgIGl2Pzogc3RyaW5nO1xuICAgIGNvZGU/OiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF0Y2hQcm92aWRlclRva2VuUmVzcG9uc2Uge1xuICBwcm92aWRlcl90b2tlbjogc3RyaW5nO1xuICBleHBpcmVzX2luOiBudW1iZXI7XG4gIHByb3ZpZGVyX3Byb2ZpbGU6IFByb3ZpZGVyUHJvZmlsZTtcbn1cblxuLy8gZXhwb3J0IGludGVyZmFjZSBHZW5Qcm92aWRlclJlZGlyZWN0VXJpUmVxdWVzdCB7XG4vLyAgIHByb3ZpZGVyX2lkOiBzdHJpbmc7XG4vLyAgIHByb3ZpZGVyX3JlZGlyZWN0X3VyaTogc3RyaW5nO1xuLy8gICBzdGF0ZTogc3RyaW5nO1xuLy8gICBvdGhlcl9wYXJhbXM/OiB7XG4vLyAgICAgc2lnbl9vdXRfdXJpPzogc3RyaW5nO1xuLy8gICB9O1xuLy8gfVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlblByb3ZpZGVyUmVkaXJlY3RVcmlSZXNwb25zZSB7XG4gIHVyaTogc3RyaW5nO1xuICBzaWdub3V0X3VyaT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCaW5kV2l0aFByb3ZpZGVyUmVxdWVzdCBleHRlbmRzIEJhc2VSZXF1ZXN0IHtcbiAgcHJvdmlkZXJfdG9rZW46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCaW5kV2l0aFByb3ZpZGVyUmVxdWVzdCB7XG4gIHByb3ZpZGVyX3Rva2VuOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclByb2ZpbGVQcm92aWRlciB7XG4gIGlkPzogc3RyaW5nO1xuICBwcm92aWRlcl91c2VyX2lkPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJQcm9maWxlIHtcbiAgbmFtZT86IHN0cmluZztcbiAgcGljdHVyZT86IHN0cmluZztcbiAgdXNlcm5hbWU/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICBlbWFpbF92ZXJpZmllZD86IGJvb2xlYW47XG4gIHBob25lX251bWJlcj86IHN0cmluZztcbiAgcHJvdmlkZXJzPzogW1VzZXJQcm9maWxlUHJvdmlkZXJdO1xuICBnZW5kZXI/OiBzdHJpbmc7XG4gIGJpcnRoZGF0ZT86IHN0cmluZztcbiAgem9uZWluZm8/OiBzdHJpbmc7XG4gIGxvY2FsZT86IHN0cmluZztcbiAgY3JlYXRlZF9mcm9tPzogc3RyaW5nO1xuICBzdWI/OiBzdHJpbmdcbiAgdWlkPzogc3RyaW5nXG4gIGFkZHJlc3M/OiB7XG4gICAgZm9ybWF0dGVkPzogc3RyaW5nLFxuICAgIHN0cmVldF9hZGRyZXNzPzogc3RyaW5nLFxuICAgIGxvY2FsaXR5Pzogc3RyaW5nLFxuICAgIHJlZ2lvbj86IHN0cmluZyxcbiAgICBwb3N0YWxfY29kZT86IHN0cmluZyxcbiAgICBjb3VudHJ5Pzogc3RyaW5nXG4gIH1cbiAgbmlja05hbWU/OiBzdHJpbmcgLy8gVE9ETzpcbiAgcHJvdmluY2U/OiBzdHJpbmcgLy8gVE9ETzpcbiAgY291bnRyeT86IHN0cmluZyAvLyBUT0RPOlxuICBjaXR5Pzogc3RyaW5nIC8vIFRPRE86XG59XG5cbmV4cG9ydCB0eXBlIFVzZXJJbmZvID0gVXNlclByb2ZpbGU7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlkZXJQcm9maWxlIHtcbiAgcHJvdmlkZXJfaWQ6IHN0cmluZztcbiAgcGhvbmVfbnVtYmVyPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zQnlQcm92aWRlclJlcXVlc3Qge1xuICBwcm92aWRlcl90b2tlbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyYW50VG9rZW5SZXF1ZXN0IGV4dGVuZHMgQmFzZVJlcXVlc3Qge1xuICBjbGllbnRfc2VjcmV0Pzogc3RyaW5nO1xuICBjb2RlPzogc3RyaW5nO1xuICBncmFudF90eXBlPzogc3RyaW5nO1xuICByZWRpcmVjdF91cmk/OiBzdHJpbmc7XG4gIG5vbmNlPzogc3RyaW5nO1xuICByZWZyZXNoX3Rva2VuPzogc3RyaW5nO1xuICBzY29wZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVbmJpbmRQcm92aWRlclJlcXVlc3QgZXh0ZW5kcyBCYXNlUmVxdWVzdCB7XG4gIHByb3ZpZGVyX2lkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlY2tQYXNzd29yZHJSZXF1ZXN0IGV4dGVuZHMgQmFzZVJlcXVlc3Qge1xuICBwYXNzd29yZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJpbmRQaG9uZVJlcXVlc3QgZXh0ZW5kcyBCYXNlUmVxdWVzdCB7XG4gIHBob25lX251bWJlcjogc3RyaW5nO1xuICBzdWRvX3Rva2VuOiBzdHJpbmc7XG4gIHZlcmlmaWNhdGlvbl90b2tlbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNldFBhc3N3b3JkUmVxdWVzdCBleHRlbmRzIEJhc2VSZXF1ZXN0IHtcbiAgbmV3X3Bhc3N3b3JkOiBzdHJpbmc7XG4gIHN1ZG9fdG9rZW46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VCaW5kZWRQcm92aWRlclJlcXVlc3QgZXh0ZW5kcyBCYXNlUmVxdWVzdCB7XG4gIHRyYW5zX3Rva2VuOiBzdHJpbmc7XG4gIHByb3ZpZGVyX2lkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIENoYW5nZUJpbmRlZFByb3ZpZGVyUmVzcG9uc2UgPSBCYXNlUmVxdWVzdFxuXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5VXNlclByb2ZpbGVSZXEgZXh0ZW5kcyBCYXNlUmVxdWVzdCB7XG4gIGFwcGVuZGVkX3BhcmFtczogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25JbldpdGhQcm92aWRlclJlcXVlc3Qge1xuICBwcm92aWRlcl90b2tlbjogc3RyaW5nO1xuICBwcm92aWRlcl9pZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWduVXBSZXF1ZXN0IHtcbiAgcGhvbmVfbnVtYmVyPzogc3RyaW5nO1xuICBlbWFpbD86IHN0cmluZztcblxuICB2ZXJpZmljYXRpb25fY29kZT86IHN0cmluZztcbiAgdmVyaWZpY2F0aW9uX3Rva2VuPzogc3RyaW5nO1xuICBwcm92aWRlcl90b2tlbj86IHN0cmluZztcblxuICBwYXNzd29yZD86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgZ2VuZGVyPzogc3RyaW5nO1xuICBwaWN0dXJlPzogc3RyaW5nO1xuICBsb2NhbGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0VmVyaWZpY2F0aW9uUmVxdWVzdCB7XG4gIHBob25lX251bWJlcj86IHN0cmluZztcbiAgZW1haWw/OiBzdHJpbmc7XG4gIC8vIOWPr+mAiSBBTlnvvIxVU0VS77yMTk9UX1VTRVIsIENVUl9VU0VSO1xuICB0YXJnZXQ/OiBzdHJpbmcgfCAnQU5ZJztcbiAgdXNhZ2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0VmVyaWZpY2F0aW9uUmVzcG9uc2Uge1xuICB2ZXJpZmljYXRpb25faWQ/OiBzdHJpbmc7XG4gIGlzX3VzZXI/OiBib29sZWFuIHwgZmFsc2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZ5UmVzcG9uc2Uge1xuICB2ZXJpZmljYXRpb25fdG9rZW4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZ5UmVxdWVzdCB7XG4gIHZlcmlmaWNhdGlvbl9jb2RlOiBzdHJpbmc7XG4gIHZlcmlmaWNhdGlvbl9pZD86IHN0cmluZztcbiAgdmVyaWZpY2F0aW9uX3Rva2VuPzogc3RyaW5nO1xuICB2ZXJzaW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVyQmluZFJlcXVlc3Qge1xuICBwcm92aWRlcl90b2tlbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyYW50UHJvdmlkZXJUb2tlblJlcXVlc3Qge1xuICBwcm92aWRlcl9pZDogc3RyaW5nO1xuICBwcm92aWRlcl9yZWRpcmVjdF91cmk/OiBzdHJpbmc7XG4gIHByb3ZpZGVyX2NvZGU/OiBzdHJpbmc7XG4gIHByb3ZpZGVyX2FjY2Vzc190b2tlbj86IHN0cmluZztcbiAgcHJvdmlkZXJfaWRfdG9rZW4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JhbnRQcm92aWRlclRva2VuUmVzcG9uc2Uge1xuICBwcm92aWRlcl90b2tlbjogc3RyaW5nO1xuICBleHBpcmVzX2luOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF0Y2hQcm92aWRlclRva2VuUmVxdWVzdCB7XG4gIHByb3ZpZGVyX3Rva2VuOiBzdHJpbmc7XG4gIHByb3ZpZGVyX2lkPzogc3RyaW5nO1xuICBwcm92aWRlcl9wYXJhbXM6IHtcbiAgICBlbmNyeXB0ZWREYXRhPzogc3RyaW5nO1xuICAgIGl2Pzogc3RyaW5nO1xuICAgIGNvZGU/OiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF0Y2hQcm92aWRlclRva2VuUmVzcG9uc2Uge1xuICBwcm92aWRlcl90b2tlbjogc3RyaW5nO1xuICBleHBpcmVzX2luOiBudW1iZXI7XG4gIHByb3ZpZGVyX3Byb2ZpbGU6IFByb3ZpZGVyUHJvZmlsZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW5Qcm92aWRlclJlZGlyZWN0VXJpUmVxdWVzdCB7XG4gIHByb3ZpZGVyX2lkOiBzdHJpbmc7XG4gIHByb3ZpZGVyX3JlZGlyZWN0X3VyaTogc3RyaW5nO1xuICBzdGF0ZTogc3RyaW5nO1xuICBvdGhlcl9wYXJhbXM/OiB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nXG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VuUHJvdmlkZXJSZWRpcmVjdFVyaVJlc3BvbnNlIHtcbiAgdXJpOiBzdHJpbmc7XG4gIHNpZ25vdXRfdXJpPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJpbmRXaXRoUHJvdmlkZXJSZXF1ZXN0IHtcbiAgcHJvdmlkZXJfdG9rZW46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCaW5kV2l0aFByb3ZpZGVyUmVxdWVzdCB7XG4gIHByb3ZpZGVyX3Rva2VuOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclByb2ZpbGVQcm92aWRlciB7XG4gIGlkPzogc3RyaW5nO1xuICBwcm92aWRlcl91c2VyX2lkPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJQcm9maWxlIHtcbiAgbmFtZT86IHN0cmluZztcbiAgcGljdHVyZT86IHN0cmluZztcbiAgdXNlcm5hbWU/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICBlbWFpbF92ZXJpZmllZD86IGJvb2xlYW47XG4gIHBob25lX251bWJlcj86IHN0cmluZztcbiAgcHJvdmlkZXJzPzogW1VzZXJQcm9maWxlUHJvdmlkZXJdO1xuICBnZW5kZXI/OiBzdHJpbmc7XG4gIGJpcnRoZGF0ZT86IHN0cmluZztcbiAgem9uZWluZm8/OiBzdHJpbmc7XG4gIGxvY2FsZT86IHN0cmluZztcbiAgY3JlYXRlZF9mcm9tPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVyUHJvZmlsZSB7XG4gIHByb3ZpZGVyX2lkOiBzdHJpbmc7XG4gIHBob25lX251bWJlcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc0J5UHJvdmlkZXJSZXF1ZXN0IHtcbiAgcHJvdmlkZXJfdG9rZW46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHcmFudFRva2VuUmVxdWVzdCB7XG4gIGNsaWVudF9zZWNyZXQ/OiBzdHJpbmc7XG4gIGNvZGU/OiBzdHJpbmc7XG4gIGdyYW50X3R5cGU/OiBzdHJpbmc7XG4gIHJlZGlyZWN0X3VyaT86IHN0cmluZztcbiAgbm9uY2U/OiBzdHJpbmc7XG4gIHJlZnJlc2hfdG9rZW4/OiBzdHJpbmc7XG4gIHNjb3BlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVuYmluZFByb3ZpZGVyUmVxdWVzdCB7XG4gIHByb3ZpZGVyX2lkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlY2tQYXNzd29yZHJSZXF1ZXN0IHtcbiAgcGFzc3dvcmQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCaW5kUGhvbmVSZXF1ZXN0IHtcbiAgcGhvbmVfbnVtYmVyOiBzdHJpbmc7XG4gIHN1ZG9fdG9rZW46IHN0cmluZztcbiAgdmVyaWZpY2F0aW9uX3Rva2VuOiBzdHJpbmc7XG4gIGNvbmZsaWN0X3Jlc29sdXRpb246IHN0cmluZ1xuICAvLyAxLiBERUZBVUxUIDAsIOm7mOiupOaPkOekuueUqOaIt+aJi+acuuWPt+W3suiiq+e7keWumlxuICAvLyAyLiBERUxFVEVfQUNDT1VOVF9UUkFOU0ZFUiAxLCDmoIforrDljp/otKblj7flt7Looqvms6jplIDvvIzlubblsIbmiYvmnLrmjaLnu5Hnu5noh6rlt7FcbiAgLy8gMy4gVFJBTlNGRVIgMiwg5LuF5o2i57uR5omL5py65Y+377yM5LiN5rOo6ZSA5Y6f5pyJ6LSm5Y+377yI5o2i57uR5ZCO5Y6f6LSm5Y+35peg5rOV55m75b2V5pe277yM5YiZ6Ieq5Yqo5rOo6ZSA5Y6f6LSm5Y+377yJXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmluZEVtYWlsUmVxdWVzdCB7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIHN1ZG9fdG9rZW46IHN0cmluZztcbiAgdmVyaWZpY2F0aW9uX3Rva2VuOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2V0UGFzc3dvcmRSZXF1ZXN0IHtcbiAgbmV3X3Bhc3N3b3JkOiBzdHJpbmc7XG4gIHN1ZG9fdG9rZW46IHN0cmluZztcbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIFNldFBhc3N3b3JkUmVxdWVzdCB7XG4gIG5ld19wYXNzd29yZDogc3RyaW5nO1xuICBzdWRvX3Rva2VuOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlUGFzc3dvcmRSZXF1ZXN0IHtcbiAgb2xkX3Bhc3N3b3JkOiBzdHJpbmc7XG4gIG5ld19wYXNzd29yZDogc3RyaW5nO1xufVxuXG4vLyBwYXNzd29yZCDlkowgdmVyaWZpY2F0aW9uX3Rva2VuIOiAjOmAieS4gO+8jOWmguaenOe7keWumuS6huaJi+acuuWPt++8jOWImeW/hemhu+S9v+eUqHZlcmlmaWNhdGlvbl90b2tlbiDov5vooYxzdWRvXG5leHBvcnQgaW50ZXJmYWNlIFN1ZG9SZXF1ZXN0IHtcbiAgcGFzc3dvcmQ/OiBzdHJpbmc7XG4gIHZlcmlmaWNhdGlvbl90b2tlbj86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1ZG9SZXNwb25zZSB7XG4gIHN1ZG9fdG9rZW4/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXaXRoU3Vkb1JlcXVlc3Qge1xuICBzdWRvX3Rva2VuOiBzdHJpbmc7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG59XG5cblxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VCb3VuZFByb3ZpZGVyUmVxdWVzdCB7XG4gIHRyYW5zX3Rva2VuOiBzdHJpbmc7XG4gIHByb3ZpZGVyX2lkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlQm91bmRQcm92aWRlclJlc3BvbnNlIHtcbiAgY2xpZW50X2lkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlVc2VyUHJvZmlsZVJlcXVlc3Qge1xuICBpZD86IFtzdHJpbmddO1xuICB1c2VybmFtZT86IHN0cmluZztcbiAgZW1haWw/OiBzdHJpbmc7XG4gIHBob25lX251bWJlcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBRdWVyeVVzZXJQcm9maWxlUmVzcG9uc2Uge1xuICB0b3RhbDogc3RyaW5nO1xuICBkYXRhOiBTaW1wbGVVc2VyUHJvZmlsZVtdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzZXRQYXNzd29yZFJlcXVlc3QgZXh0ZW5kcyBCYXNlUmVxdWVzdCB7XG4gIGVtYWlsOiBzdHJpbmdcbiAgcGhvbmVfbnVtYmVyOiBzdHJpbmdcbiAgbmV3X3Bhc3N3b3JkOiBzdHJpbmdcbiAgdmVyaWZpY2F0aW9uX3Rva2VuOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZXZpY2VBdXRob3JpemVSZXF1ZXN0IGV4dGVuZHMgQmFzZVJlcXVlc3Qge1xuICBzY29wZT86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERldmljZUF1dGhvcml6ZVJlc3BvbnNlIHtcbiAgZGV2aWNlX2NvZGU6IHN0cmluZ1xuICB1c2VyX2NvZGU6IHN0cmluZ1xuICBleHBpcmVzX2luOiBudW1iZXJcbiAgaW50ZXJ2YWw6IG51bWJlclxuICB2ZXJpZmljYXRpb25fdXJsOiBzdHJpbmdcbiAgdmVyaWZpY2F0aW9uX3VyaV9jb21wbGV0ZTogc3RyaW5nXG59XG5cbi8vIOeugOWMlueJiOeUqOaIt+S/oeaBr1xuZXhwb3J0IGludGVyZmFjZSBTaW1wbGVVc2VyUHJvZmlsZSB7XG4gIHN1Yjogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHBpY3R1cmU/OiBzdHJpbmc7XG4gIGdlbmRlcj86IHN0cmluZztcbiAgbG9jYWxlPzogc3RyaW5nO1xuICBlbWFpbD86IHN0cmluZztcbiAgcGhvbmVfbnVtYmVyPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoZWNrVXNlcm5hbWVSZXF1ZXN0IHtcbiAgdXNlcm5hbWU6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoZWNrSWZVc2VyRXhpc3RSZXF1ZXN0IHtcbiAgdXNlcm5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGVja0lmVXNlckV4aXN0UmVzcG9uc2Uge1xuICBleGlzdDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdWJsaWNLZXkge1xuICBwdWJsaWNfa2V5OiBzdHJpbmc7IC8vIOWKoOWvhueahOWFrOmSpVxuICBwdWJsaWNfa2V5X3RodW1icHJpbnQ6IHN0cmluZzsgLy8g5Yqg5a+G55qE5YWs6ZKl5oyH57q5XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW5jcnlwdFBhcmFtcyB7XG4gIGlzRW5jcnlwdD86IGJvb2xlYW47IC8vIOaYr+WQpumcgOimgeWKoOWvhlxuICBwdWJsaWNfa2V5X3RodW1icHJpbnQ/OiBzdHJpbmc7IC8vIOWKoOWvhueahOWFrOmSpeaMh+e6uVxuICBwYXJhbXM/OiBzdHJpbmc7IC8vIOWKoOWvhueahOaVsOaNrlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVyU3ViVHlwZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHByb3ZpZGVyX3N1Yl90eXBlOiAnTk9fQVVUSF9MT0dJTicgfCAnJzsgLy8gTk9fQVVUSF9MT0dJTi3lhY3lr4bnmbvlvZVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRNaW5pUHJvZ3JhbVFyQ29kZVJlcXVlc3Qge1xuICBlbnZJZDogc3RyaW5nO1xuICB3eEFwcElkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TWluaVByb2dyYW1RckNvZGVSZXNwb25zZSB7XG4gIHFyX2NvZGU6IHN0cmluZztcbiAgcXJfY29kZV9pZDogc3RyaW5nO1xuICBleHBpcmVzX2luOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TWluaVByb2dyYW1RckNvZGVTdGF0dXNSZXF1ZXN0IHtcbiAgcXJDb2RlSWQ6IHN0cmluZztcbiAgZW52SWQ6IHN0cmluZztcbiAgd3hBcHBJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldE1pbmlQcm9ncmFtUXJDb2RlU3RhdHVzUmVzcG9uc2Uge1xuICBzdGF0dXM6IHN0cmluZztcbiAgcHJvdmlkZXJfdG9rZW46IHN0cmluZztcbiAgZXhwaXJlc19pbjogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vZGlmeVVzZXJCYXNpY0luZm9SZXF1ZXN0IHtcbiAgdXNlcl9pZDogc3RyaW5nO1xuICBuaWNrbmFtZTogc3RyaW5nO1xuICB1c2VybmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBhdmF0YXJfdXJsOiBzdHJpbmc7XG59XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudbase/oauth",
3
- "version": "2.5.45-beta.0",
3
+ "version": "2.5.46-beta.0",
4
4
  "description": "cloudbase javascript sdk auth componets",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -21,5 +21,5 @@
21
21
  "encryptlong": "^3.1.4"
22
22
  },
23
23
  "license": "Apache-2.0",
24
- "gitHead": "f2b28053711399565573e6aa80f13c2a4a29d36d"
24
+ "gitHead": "b90d74de0cdcc63ba408acbafc7a7c386f582291"
25
25
  }
package/src/auth/apis.ts CHANGED
@@ -44,6 +44,11 @@ import {
44
44
  PublicKey,
45
45
  EncryptParams,
46
46
  ProviderSubType,
47
+ GetMiniProgramQrCodeRequest,
48
+ GetMiniProgramQrCodeStatusRequest,
49
+ GetMiniProgramQrCodeResponse,
50
+ GetMiniProgramQrCodeStatusResponse,
51
+ ModifyUserBasicInfoRequest,
47
52
  } from './models'
48
53
  import { SimpleStorage, RequestFunction } from '../oauth2client/interface'
49
54
  import { OAuth2Client, defaultStorage } from '../oauth2client/oauth2client'
@@ -308,6 +313,19 @@ export class Auth {
308
313
  return Promise.resolve(credentials)
309
314
  }
310
315
 
316
+ /**
317
+ * sign in with wechat idendify
318
+ * 需要结合 http overcallFunction 使用
319
+ */
320
+ public async signInWithWechat(params: any = {}): Promise<Credentials> {
321
+ const credentials: Credentials = await this.config.request<Credentials>(ApiUrls.AUTH_SIGN_IN_WITH_WECHAT_URL, {
322
+ method: 'POST',
323
+ body: params,
324
+ })
325
+ await this.config.credentialsClient.setCredentials(credentials)
326
+ return Promise.resolve(credentials)
327
+ }
328
+
311
329
  /**
312
330
  * Bind with provider
313
331
  * @param {BindWithProviderRequest} params A BindWithProviderRequest object.
@@ -570,6 +588,18 @@ export class Auth {
570
588
  })
571
589
  }
572
590
 
591
+ /**
592
+ * Update user basic info
593
+ * @return {Promise<void>}
594
+ */
595
+ public async updateUserBasicInfo(params: ModifyUserBasicInfoRequest): Promise<void> {
596
+ return this.config.request(ApiUrls.USER_BASIC_EDIT_URL, {
597
+ method: 'POST',
598
+ withCredentials: true,
599
+ body: params,
600
+ })
601
+ }
602
+
573
603
  /**
574
604
  * Patch the user profile.
575
605
  * @param {QueryUserProfileReq} appended_params A QueryUserProfileReq Object.
@@ -746,4 +776,26 @@ export class Auth {
746
776
  withCredentials: false,
747
777
  })
748
778
  }
779
+
780
+ /**
781
+ * mini-program scan code
782
+ * @returns
783
+ */
784
+ public async getMiniProgramCode(params: GetMiniProgramQrCodeRequest): Promise<GetMiniProgramQrCodeResponse> {
785
+ return this.config.request<GetMiniProgramQrCodeResponse>(ApiUrls.GET_MINIPROGRAM_QRCODE, {
786
+ method: 'POST',
787
+ body: params,
788
+ })
789
+ }
790
+
791
+ /**
792
+ * mini-program scan code status
793
+ * @returns
794
+ */
795
+ public async checkMiniProgramCode(params: GetMiniProgramQrCodeStatusRequest,): Promise<GetMiniProgramQrCodeStatusResponse> {
796
+ return this.config.request<GetMiniProgramQrCodeStatusResponse>(ApiUrls.GET_MINIPROGRAM_QRCODE_STATUS, {
797
+ method: 'POST',
798
+ body: params,
799
+ })
800
+ }
749
801
  }
@@ -2,6 +2,7 @@ export enum ApiUrls {
2
2
  AUTH_SIGN_IN_URL = '/auth/v1/signin',
3
3
  AUTH_SIGN_IN_ANONYMOUSLY_URL = '/auth/v1/signin/anonymously',
4
4
  AUTH_SIGN_IN_WITH_PROVIDER_URL = '/auth/v1/signin/with/provider',
5
+ AUTH_SIGN_IN_WITH_WECHAT_URL = '/auth/v1/signin/wechat/noauth',
5
6
  AUTH_SIGN_UP_URL = '/auth/v1/signup',
6
7
  AUTH_TOKEN_URL = '/auth/v1/token',
7
8
  AUTH_REVOKE_URL = '/auth/v1/revoke',
@@ -12,6 +13,7 @@ export enum ApiUrls {
12
13
  WEDA_USER_URL = '/auth/v1/plugin/weda/userinfo',
13
14
  USER_QUERY_URL = '/auth/v1/user/query',
14
15
  USER_PRIFILE_URL = '/auth/v1/user/profile',
16
+ USER_BASIC_EDIT_URL = '/auth/v1/user/basic/edit',
15
17
  USER_TRANS_BY_PROVIDER_URL = '/auth/v1/user/trans/by/provider',
16
18
  VERIFICATION_URL = '/auth/v1/verification',
17
19
  VERIFY_URL = '/auth/v1/verification/verify',
@@ -30,6 +32,9 @@ export enum ApiUrls {
30
32
  CHECK_USERNAME = '/auth/v1/checkUsername',
31
33
  CHECK_IF_USER_EXIST = '/auth/v1/checkIfUserExist',
32
34
  GET_PROVIDER_TYPE = '/auth/v1/mgr/provider/providerSubType',
35
+
36
+ GET_MINIPROGRAM_QRCODE = '/auth/v1/qrcode/generate',
37
+ GET_MINIPROGRAM_QRCODE_STATUS = '/auth/v1/qrcode/get/status',
33
38
  }
34
39
 
35
40
  export enum ApiUrlsV2 {
@@ -469,3 +469,34 @@ export interface ProviderSubType {
469
469
  id: string;
470
470
  provider_sub_type: 'NO_AUTH_LOGIN' | ''; // NO_AUTH_LOGIN-免密登录
471
471
  }
472
+
473
+ export interface GetMiniProgramQrCodeRequest {
474
+ envId: string;
475
+ wxAppId: string;
476
+ }
477
+
478
+ export interface GetMiniProgramQrCodeResponse {
479
+ qr_code: string;
480
+ qr_code_id: string;
481
+ expires_in: number;
482
+ }
483
+
484
+ export interface GetMiniProgramQrCodeStatusRequest {
485
+ qrCodeId: string;
486
+ envId: string;
487
+ wxAppId: string;
488
+ }
489
+
490
+ export interface GetMiniProgramQrCodeStatusResponse {
491
+ status: string;
492
+ provider_token: string;
493
+ expires_in: number;
494
+ }
495
+
496
+ export interface ModifyUserBasicInfoRequest {
497
+ user_id: string;
498
+ nickname: string;
499
+ username: string;
500
+ description: string;
501
+ avatar_url: string;
502
+ }