@ondewo/csi-client-angular 5.1.0 → 5.2.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.
Files changed (63) hide show
  1. package/api/ondewo/csi/conversation.pb.d.ts +4 -1
  2. package/fesm2022/ondewo-csi-client-angular.mjs +56 -53
  3. package/fesm2022/ondewo-csi-client-angular.mjs.map +1 -1
  4. package/package.json +1 -3
  5. package/esm2022/api/google/api/annotations.pb.mjs +0 -2
  6. package/esm2022/api/google/api/http.pb.mjs +0 -524
  7. package/esm2022/api/google/rpc/status.pb.mjs +0 -138
  8. package/esm2022/api/google/type/latlng.pb.mjs +0 -119
  9. package/esm2022/api/ondewo/csi/conversation.pb.mjs +0 -2070
  10. package/esm2022/api/ondewo/csi/conversation.pbconf.mjs +0 -13
  11. package/esm2022/api/ondewo/csi/conversation.pbsc.mjs +0 -315
  12. package/esm2022/api/ondewo/nlu/agent.pb.mjs +0 -11502
  13. package/esm2022/api/ondewo/nlu/agent.pbconf.mjs +0 -13
  14. package/esm2022/api/ondewo/nlu/agent.pbsc.mjs +0 -1246
  15. package/esm2022/api/ondewo/nlu/aiservices.pb.mjs +0 -5313
  16. package/esm2022/api/ondewo/nlu/aiservices.pbconf.mjs +0 -13
  17. package/esm2022/api/ondewo/nlu/aiservices.pbsc.mjs +0 -374
  18. package/esm2022/api/ondewo/nlu/ccai-project.pb.mjs +0 -2691
  19. package/esm2022/api/ondewo/nlu/ccai-project.pbconf.mjs +0 -13
  20. package/esm2022/api/ondewo/nlu/ccai-project.pbsc.mjs +0 -224
  21. package/esm2022/api/ondewo/nlu/common.pb.mjs +0 -1963
  22. package/esm2022/api/ondewo/nlu/context.pb.mjs +0 -1380
  23. package/esm2022/api/ondewo/nlu/context.pbconf.mjs +0 -13
  24. package/esm2022/api/ondewo/nlu/context.pbsc.mjs +0 -225
  25. package/esm2022/api/ondewo/nlu/entity-type.pb.mjs +0 -3909
  26. package/esm2022/api/ondewo/nlu/entity-type.pbconf.mjs +0 -13
  27. package/esm2022/api/ondewo/nlu/entity-type.pbsc.mjs +0 -526
  28. package/esm2022/api/ondewo/nlu/intent.pb.mjs +0 -11252
  29. package/esm2022/api/ondewo/nlu/intent.pbconf.mjs +0 -13
  30. package/esm2022/api/ondewo/nlu/intent.pbsc.mjs +0 -856
  31. package/esm2022/api/ondewo/nlu/operation-metadata.pb.mjs +0 -487
  32. package/esm2022/api/ondewo/nlu/operations.pb.mjs +0 -1003
  33. package/esm2022/api/ondewo/nlu/operations.pbconf.mjs +0 -13
  34. package/esm2022/api/ondewo/nlu/operations.pbsc.mjs +0 -165
  35. package/esm2022/api/ondewo/nlu/project-role.pb.mjs +0 -1061
  36. package/esm2022/api/ondewo/nlu/project-role.pbconf.mjs +0 -13
  37. package/esm2022/api/ondewo/nlu/project-role.pbsc.mjs +0 -195
  38. package/esm2022/api/ondewo/nlu/project-statistics.pb.mjs +0 -460
  39. package/esm2022/api/ondewo/nlu/project-statistics.pbconf.mjs +0 -13
  40. package/esm2022/api/ondewo/nlu/project-statistics.pbsc.mjs +0 -285
  41. package/esm2022/api/ondewo/nlu/server-statistics.pb.mjs +0 -103
  42. package/esm2022/api/ondewo/nlu/server-statistics.pbconf.mjs +0 -13
  43. package/esm2022/api/ondewo/nlu/server-statistics.pbsc.mjs +0 -136
  44. package/esm2022/api/ondewo/nlu/session.pb.mjs +0 -13750
  45. package/esm2022/api/ondewo/nlu/session.pbconf.mjs +0 -13
  46. package/esm2022/api/ondewo/nlu/session.pbsc.mjs +0 -1246
  47. package/esm2022/api/ondewo/nlu/user.pb.mjs +0 -3865
  48. package/esm2022/api/ondewo/nlu/user.pbconf.mjs +0 -13
  49. package/esm2022/api/ondewo/nlu/user.pbsc.mjs +0 -706
  50. package/esm2022/api/ondewo/nlu/utility.pb.mjs +0 -3302
  51. package/esm2022/api/ondewo/nlu/utility.pbconf.mjs +0 -13
  52. package/esm2022/api/ondewo/nlu/utility.pbsc.mjs +0 -284
  53. package/esm2022/api/ondewo/nlu/webhook.pb.mjs +0 -1596
  54. package/esm2022/api/ondewo/nlu/webhook.pbconf.mjs +0 -13
  55. package/esm2022/api/ondewo/nlu/webhook.pbsc.mjs +0 -225
  56. package/esm2022/api/ondewo/s2t/speech-to-text.pb.mjs +0 -8350
  57. package/esm2022/api/ondewo/s2t/speech-to-text.pbconf.mjs +0 -13
  58. package/esm2022/api/ondewo/s2t/speech-to-text.pbsc.mjs +0 -495
  59. package/esm2022/api/ondewo/t2s/text-to-speech.pb.mjs +0 -7974
  60. package/esm2022/api/ondewo/t2s/text-to-speech.pbconf.mjs +0 -13
  61. package/esm2022/api/ondewo/t2s/text-to-speech.pbsc.mjs +0 -525
  62. package/esm2022/ondewo-csi-client-angular.mjs +0 -5
  63. package/esm2022/public-api.mjs +0 -58
@@ -1,706 +0,0 @@
1
- /* tslint:disable */
2
- /* eslint-disable */
3
- // @ts-nocheck
4
- //
5
- // THIS IS A GENERATED FILE
6
- // DO NOT MODIFY IT! YOUR CHANGES WILL BE LOST
7
- import { Inject, Injectable, Optional } from '@angular/core';
8
- import { GrpcCallType, GrpcMetadata } from '@ngx-grpc/common';
9
- import { GRPC_CLIENT_FACTORY, takeMessages, throwStatusErrors } from '@ngx-grpc/core';
10
- import * as thisProto from './user.pb';
11
- import * as googleProtobuf003 from '@ngx-grpc/well-known-types';
12
- import * as ondewoNlu007 from '../../ondewo/nlu/common.pb';
13
- import { GRPC_USERS_CLIENT_SETTINGS } from './user.pbconf';
14
- import * as i0 from "@angular/core";
15
- import * as i1 from "@ngx-grpc/core";
16
- /**
17
- * Service client implementation for ondewo.nlu.Users
18
- */
19
- export class UsersClient {
20
- constructor(settings, clientFactory, handler) {
21
- this.handler = handler;
22
- /**
23
- * Raw RPC implementation for each service client method.
24
- * The raw methods provide more control on the incoming data and events. E.g. they can be useful to read status `OK` metadata.
25
- * Attention: these methods do not throw errors when non-zero status codes are received.
26
- */
27
- this.$raw = {
28
- /**
29
- * Unary call: /ondewo.nlu.Users/CreateUser
30
- *
31
- * @param requestMessage Request message
32
- * @param requestMetadata Request metadata
33
- * @returns Observable<GrpcEvent<thisProto.User>>
34
- */
35
- createUser: (requestData, requestMetadata = new GrpcMetadata()) => {
36
- return this.handler.handle({
37
- type: GrpcCallType.unary,
38
- client: this.client,
39
- path: '/ondewo.nlu.Users/CreateUser',
40
- requestData,
41
- requestMetadata,
42
- requestClass: thisProto.CreateUserRequest,
43
- responseClass: thisProto.User
44
- });
45
- },
46
- /**
47
- * Unary call: /ondewo.nlu.Users/GetUser
48
- *
49
- * @param requestMessage Request message
50
- * @param requestMetadata Request metadata
51
- * @returns Observable<GrpcEvent<thisProto.User>>
52
- */
53
- getUser: (requestData, requestMetadata = new GrpcMetadata()) => {
54
- return this.handler.handle({
55
- type: GrpcCallType.unary,
56
- client: this.client,
57
- path: '/ondewo.nlu.Users/GetUser',
58
- requestData,
59
- requestMetadata,
60
- requestClass: thisProto.GetUserRequest,
61
- responseClass: thisProto.User
62
- });
63
- },
64
- /**
65
- * Unary call: /ondewo.nlu.Users/GetUserInfo
66
- *
67
- * @param requestMessage Request message
68
- * @param requestMetadata Request metadata
69
- * @returns Observable<GrpcEvent<thisProto.UserInfo>>
70
- */
71
- getUserInfo: (requestData, requestMetadata = new GrpcMetadata()) => {
72
- return this.handler.handle({
73
- type: GrpcCallType.unary,
74
- client: this.client,
75
- path: '/ondewo.nlu.Users/GetUserInfo',
76
- requestData,
77
- requestMetadata,
78
- requestClass: thisProto.GetUserRequest,
79
- responseClass: thisProto.UserInfo
80
- });
81
- },
82
- /**
83
- * Unary call: /ondewo.nlu.Users/DeleteUser
84
- *
85
- * @param requestMessage Request message
86
- * @param requestMetadata Request metadata
87
- * @returns Observable<GrpcEvent<googleProtobuf003.Empty>>
88
- */
89
- deleteUser: (requestData, requestMetadata = new GrpcMetadata()) => {
90
- return this.handler.handle({
91
- type: GrpcCallType.unary,
92
- client: this.client,
93
- path: '/ondewo.nlu.Users/DeleteUser',
94
- requestData,
95
- requestMetadata,
96
- requestClass: thisProto.GetUserRequest,
97
- responseClass: googleProtobuf003.Empty
98
- });
99
- },
100
- /**
101
- * Unary call: /ondewo.nlu.Users/UpdateUser
102
- *
103
- * @param requestMessage Request message
104
- * @param requestMetadata Request metadata
105
- * @returns Observable<GrpcEvent<thisProto.User>>
106
- */
107
- updateUser: (requestData, requestMetadata = new GrpcMetadata()) => {
108
- return this.handler.handle({
109
- type: GrpcCallType.unary,
110
- client: this.client,
111
- path: '/ondewo.nlu.Users/UpdateUser',
112
- requestData,
113
- requestMetadata,
114
- requestClass: thisProto.UpdateUserRequest,
115
- responseClass: thisProto.User
116
- });
117
- },
118
- /**
119
- * Unary call: /ondewo.nlu.Users/ListUsers
120
- *
121
- * @param requestMessage Request message
122
- * @param requestMetadata Request metadata
123
- * @returns Observable<GrpcEvent<thisProto.ListUsersResponse>>
124
- */
125
- listUsers: (requestData, requestMetadata = new GrpcMetadata()) => {
126
- return this.handler.handle({
127
- type: GrpcCallType.unary,
128
- client: this.client,
129
- path: '/ondewo.nlu.Users/ListUsers',
130
- requestData,
131
- requestMetadata,
132
- requestClass: thisProto.ListUsersRequest,
133
- responseClass: thisProto.ListUsersResponse
134
- });
135
- },
136
- /**
137
- * Unary call: /ondewo.nlu.Users/ListUserInfos
138
- *
139
- * @param requestMessage Request message
140
- * @param requestMetadata Request metadata
141
- * @returns Observable<GrpcEvent<thisProto.ListUserInfosResponse>>
142
- */
143
- listUserInfos: (requestData, requestMetadata = new GrpcMetadata()) => {
144
- return this.handler.handle({
145
- type: GrpcCallType.unary,
146
- client: this.client,
147
- path: '/ondewo.nlu.Users/ListUserInfos',
148
- requestData,
149
- requestMetadata,
150
- requestClass: thisProto.ListUsersRequest,
151
- responseClass: thisProto.ListUserInfosResponse
152
- });
153
- },
154
- /**
155
- * Unary call: /ondewo.nlu.Users/CreateServerRole
156
- *
157
- * @param requestMessage Request message
158
- * @param requestMetadata Request metadata
159
- * @returns Observable<GrpcEvent<thisProto.ServerRole>>
160
- */
161
- createServerRole: (requestData, requestMetadata = new GrpcMetadata()) => {
162
- return this.handler.handle({
163
- type: GrpcCallType.unary,
164
- client: this.client,
165
- path: '/ondewo.nlu.Users/CreateServerRole',
166
- requestData,
167
- requestMetadata,
168
- requestClass: thisProto.CreateServerRoleRequest,
169
- responseClass: thisProto.ServerRole
170
- });
171
- },
172
- /**
173
- * Unary call: /ondewo.nlu.Users/GetServerRole
174
- *
175
- * @param requestMessage Request message
176
- * @param requestMetadata Request metadata
177
- * @returns Observable<GrpcEvent<thisProto.ServerRole>>
178
- */
179
- getServerRole: (requestData, requestMetadata = new GrpcMetadata()) => {
180
- return this.handler.handle({
181
- type: GrpcCallType.unary,
182
- client: this.client,
183
- path: '/ondewo.nlu.Users/GetServerRole',
184
- requestData,
185
- requestMetadata,
186
- requestClass: thisProto.GetServerRoleRequest,
187
- responseClass: thisProto.ServerRole
188
- });
189
- },
190
- /**
191
- * Unary call: /ondewo.nlu.Users/DeleteServerRole
192
- *
193
- * @param requestMessage Request message
194
- * @param requestMetadata Request metadata
195
- * @returns Observable<GrpcEvent<googleProtobuf003.Empty>>
196
- */
197
- deleteServerRole: (requestData, requestMetadata = new GrpcMetadata()) => {
198
- return this.handler.handle({
199
- type: GrpcCallType.unary,
200
- client: this.client,
201
- path: '/ondewo.nlu.Users/DeleteServerRole',
202
- requestData,
203
- requestMetadata,
204
- requestClass: thisProto.DeleteServerRoleRequest,
205
- responseClass: googleProtobuf003.Empty
206
- });
207
- },
208
- /**
209
- * Unary call: /ondewo.nlu.Users/UpdateServerRole
210
- *
211
- * @param requestMessage Request message
212
- * @param requestMetadata Request metadata
213
- * @returns Observable<GrpcEvent<thisProto.ServerRole>>
214
- */
215
- updateServerRole: (requestData, requestMetadata = new GrpcMetadata()) => {
216
- return this.handler.handle({
217
- type: GrpcCallType.unary,
218
- client: this.client,
219
- path: '/ondewo.nlu.Users/UpdateServerRole',
220
- requestData,
221
- requestMetadata,
222
- requestClass: thisProto.UpdateServerRoleRequest,
223
- responseClass: thisProto.ServerRole
224
- });
225
- },
226
- /**
227
- * Unary call: /ondewo.nlu.Users/ListServerRoles
228
- *
229
- * @param requestMessage Request message
230
- * @param requestMetadata Request metadata
231
- * @returns Observable<GrpcEvent<thisProto.ListServerRolesResponse>>
232
- */
233
- listServerRoles: (requestData, requestMetadata = new GrpcMetadata()) => {
234
- return this.handler.handle({
235
- type: GrpcCallType.unary,
236
- client: this.client,
237
- path: '/ondewo.nlu.Users/ListServerRoles',
238
- requestData,
239
- requestMetadata,
240
- requestClass: thisProto.ListServerRolesRequest,
241
- responseClass: thisProto.ListServerRolesResponse
242
- });
243
- },
244
- /**
245
- * Unary call: /ondewo.nlu.Users/ListServerPermissions
246
- *
247
- * @param requestMessage Request message
248
- * @param requestMetadata Request metadata
249
- * @returns Observable<GrpcEvent<thisProto.ListServerPermissionsResponse>>
250
- */
251
- listServerPermissions: (requestData, requestMetadata = new GrpcMetadata()) => {
252
- return this.handler.handle({
253
- type: GrpcCallType.unary,
254
- client: this.client,
255
- path: '/ondewo.nlu.Users/ListServerPermissions',
256
- requestData,
257
- requestMetadata,
258
- requestClass: thisProto.ListServerPermissionsRequest,
259
- responseClass: thisProto.ListServerPermissionsResponse
260
- });
261
- },
262
- /**
263
- * Unary call: /ondewo.nlu.Users/Login
264
- *
265
- * @param requestMessage Request message
266
- * @param requestMetadata Request metadata
267
- * @returns Observable<GrpcEvent<thisProto.LoginResponse>>
268
- */
269
- login: (requestData, requestMetadata = new GrpcMetadata()) => {
270
- return this.handler.handle({
271
- type: GrpcCallType.unary,
272
- client: this.client,
273
- path: '/ondewo.nlu.Users/Login',
274
- requestData,
275
- requestMetadata,
276
- requestClass: thisProto.LoginRequest,
277
- responseClass: thisProto.LoginResponse
278
- });
279
- },
280
- /**
281
- * Unary call: /ondewo.nlu.Users/CheckLogin
282
- *
283
- * @param requestMessage Request message
284
- * @param requestMetadata Request metadata
285
- * @returns Observable<GrpcEvent<googleProtobuf003.Empty>>
286
- */
287
- checkLogin: (requestData, requestMetadata = new GrpcMetadata()) => {
288
- return this.handler.handle({
289
- type: GrpcCallType.unary,
290
- client: this.client,
291
- path: '/ondewo.nlu.Users/CheckLogin',
292
- requestData,
293
- requestMetadata,
294
- requestClass: googleProtobuf003.Empty,
295
- responseClass: googleProtobuf003.Empty
296
- });
297
- },
298
- /**
299
- * Unary call: /ondewo.nlu.Users/ListNotifications
300
- *
301
- * @param requestMessage Request message
302
- * @param requestMetadata Request metadata
303
- * @returns Observable<GrpcEvent<ondewoNlu007.ListNotificationsResponse>>
304
- */
305
- listNotifications: (requestData, requestMetadata = new GrpcMetadata()) => {
306
- return this.handler.handle({
307
- type: GrpcCallType.unary,
308
- client: this.client,
309
- path: '/ondewo.nlu.Users/ListNotifications',
310
- requestData,
311
- requestMetadata,
312
- requestClass: ondewoNlu007.ListNotificationsRequest,
313
- responseClass: ondewoNlu007.ListNotificationsResponse
314
- });
315
- },
316
- /**
317
- * Unary call: /ondewo.nlu.Users/SetNotificationsFlaggedStatus
318
- *
319
- * @param requestMessage Request message
320
- * @param requestMetadata Request metadata
321
- * @returns Observable<GrpcEvent<ondewoNlu007.ListNotificationsResponse>>
322
- */
323
- setNotificationsFlaggedStatus: (requestData, requestMetadata = new GrpcMetadata()) => {
324
- return this.handler.handle({
325
- type: GrpcCallType.unary,
326
- client: this.client,
327
- path: '/ondewo.nlu.Users/SetNotificationsFlaggedStatus',
328
- requestData,
329
- requestMetadata,
330
- requestClass: ondewoNlu007.SetNotificationsFlaggedStatusRequest,
331
- responseClass: ondewoNlu007.ListNotificationsResponse
332
- });
333
- },
334
- /**
335
- * Unary call: /ondewo.nlu.Users/SetNotificationsReadStatus
336
- *
337
- * @param requestMessage Request message
338
- * @param requestMetadata Request metadata
339
- * @returns Observable<GrpcEvent<ondewoNlu007.ListNotificationsResponse>>
340
- */
341
- setNotificationsReadStatus: (requestData, requestMetadata = new GrpcMetadata()) => {
342
- return this.handler.handle({
343
- type: GrpcCallType.unary,
344
- client: this.client,
345
- path: '/ondewo.nlu.Users/SetNotificationsReadStatus',
346
- requestData,
347
- requestMetadata,
348
- requestClass: ondewoNlu007.SetNotificationsReadStatusRequest,
349
- responseClass: ondewoNlu007.ListNotificationsResponse
350
- });
351
- },
352
- /**
353
- * Unary call: /ondewo.nlu.Users/GetUserPreferences
354
- *
355
- * @param requestMessage Request message
356
- * @param requestMetadata Request metadata
357
- * @returns Observable<GrpcEvent<thisProto.GetUserPreferencesResponse>>
358
- */
359
- getUserPreferences: (requestData, requestMetadata = new GrpcMetadata()) => {
360
- return this.handler.handle({
361
- type: GrpcCallType.unary,
362
- client: this.client,
363
- path: '/ondewo.nlu.Users/GetUserPreferences',
364
- requestData,
365
- requestMetadata,
366
- requestClass: thisProto.GetUserPreferencesRequest,
367
- responseClass: thisProto.GetUserPreferencesResponse
368
- });
369
- },
370
- /**
371
- * Unary call: /ondewo.nlu.Users/SetUserPreferences
372
- *
373
- * @param requestMessage Request message
374
- * @param requestMetadata Request metadata
375
- * @returns Observable<GrpcEvent<thisProto.SetUserPreferencesResponse>>
376
- */
377
- setUserPreferences: (requestData, requestMetadata = new GrpcMetadata()) => {
378
- return this.handler.handle({
379
- type: GrpcCallType.unary,
380
- client: this.client,
381
- path: '/ondewo.nlu.Users/SetUserPreferences',
382
- requestData,
383
- requestMetadata,
384
- requestClass: thisProto.SetUserPreferencesRequest,
385
- responseClass: thisProto.SetUserPreferencesResponse
386
- });
387
- },
388
- /**
389
- * Unary call: /ondewo.nlu.Users/DeleteUserPreferences
390
- *
391
- * @param requestMessage Request message
392
- * @param requestMetadata Request metadata
393
- * @returns Observable<GrpcEvent<thisProto.DeleteUserPreferencesResponse>>
394
- */
395
- deleteUserPreferences: (requestData, requestMetadata = new GrpcMetadata()) => {
396
- return this.handler.handle({
397
- type: GrpcCallType.unary,
398
- client: this.client,
399
- path: '/ondewo.nlu.Users/DeleteUserPreferences',
400
- requestData,
401
- requestMetadata,
402
- requestClass: thisProto.DeleteUserPreferencesRequest,
403
- responseClass: thisProto.DeleteUserPreferencesResponse
404
- });
405
- },
406
- /**
407
- * Unary call: /ondewo.nlu.Users/DeleteAllUserPreferences
408
- *
409
- * @param requestMessage Request message
410
- * @param requestMetadata Request metadata
411
- * @returns Observable<GrpcEvent<thisProto.DeleteUserPreferencesResponse>>
412
- */
413
- deleteAllUserPreferences: (requestData, requestMetadata = new GrpcMetadata()) => {
414
- return this.handler.handle({
415
- type: GrpcCallType.unary,
416
- client: this.client,
417
- path: '/ondewo.nlu.Users/DeleteAllUserPreferences',
418
- requestData,
419
- requestMetadata,
420
- requestClass: thisProto.DeleteAllUserPreferencesRequest,
421
- responseClass: thisProto.DeleteUserPreferencesResponse
422
- });
423
- }
424
- };
425
- this.client = clientFactory.createClient('ondewo.nlu.Users', settings);
426
- }
427
- /**
428
- * Unary call @/ondewo.nlu.Users/CreateUser
429
- *
430
- * @param requestMessage Request message
431
- * @param requestMetadata Request metadata
432
- * @returns Observable<thisProto.User>
433
- */
434
- createUser(requestData, requestMetadata = new GrpcMetadata()) {
435
- return this.$raw
436
- .createUser(requestData, requestMetadata)
437
- .pipe(throwStatusErrors(), takeMessages());
438
- }
439
- /**
440
- * Unary call @/ondewo.nlu.Users/GetUser
441
- *
442
- * @param requestMessage Request message
443
- * @param requestMetadata Request metadata
444
- * @returns Observable<thisProto.User>
445
- */
446
- getUser(requestData, requestMetadata = new GrpcMetadata()) {
447
- return this.$raw
448
- .getUser(requestData, requestMetadata)
449
- .pipe(throwStatusErrors(), takeMessages());
450
- }
451
- /**
452
- * Unary call @/ondewo.nlu.Users/GetUserInfo
453
- *
454
- * @param requestMessage Request message
455
- * @param requestMetadata Request metadata
456
- * @returns Observable<thisProto.UserInfo>
457
- */
458
- getUserInfo(requestData, requestMetadata = new GrpcMetadata()) {
459
- return this.$raw
460
- .getUserInfo(requestData, requestMetadata)
461
- .pipe(throwStatusErrors(), takeMessages());
462
- }
463
- /**
464
- * Unary call @/ondewo.nlu.Users/DeleteUser
465
- *
466
- * @param requestMessage Request message
467
- * @param requestMetadata Request metadata
468
- * @returns Observable<googleProtobuf003.Empty>
469
- */
470
- deleteUser(requestData, requestMetadata = new GrpcMetadata()) {
471
- return this.$raw
472
- .deleteUser(requestData, requestMetadata)
473
- .pipe(throwStatusErrors(), takeMessages());
474
- }
475
- /**
476
- * Unary call @/ondewo.nlu.Users/UpdateUser
477
- *
478
- * @param requestMessage Request message
479
- * @param requestMetadata Request metadata
480
- * @returns Observable<thisProto.User>
481
- */
482
- updateUser(requestData, requestMetadata = new GrpcMetadata()) {
483
- return this.$raw
484
- .updateUser(requestData, requestMetadata)
485
- .pipe(throwStatusErrors(), takeMessages());
486
- }
487
- /**
488
- * Unary call @/ondewo.nlu.Users/ListUsers
489
- *
490
- * @param requestMessage Request message
491
- * @param requestMetadata Request metadata
492
- * @returns Observable<thisProto.ListUsersResponse>
493
- */
494
- listUsers(requestData, requestMetadata = new GrpcMetadata()) {
495
- return this.$raw
496
- .listUsers(requestData, requestMetadata)
497
- .pipe(throwStatusErrors(), takeMessages());
498
- }
499
- /**
500
- * Unary call @/ondewo.nlu.Users/ListUserInfos
501
- *
502
- * @param requestMessage Request message
503
- * @param requestMetadata Request metadata
504
- * @returns Observable<thisProto.ListUserInfosResponse>
505
- */
506
- listUserInfos(requestData, requestMetadata = new GrpcMetadata()) {
507
- return this.$raw
508
- .listUserInfos(requestData, requestMetadata)
509
- .pipe(throwStatusErrors(), takeMessages());
510
- }
511
- /**
512
- * Unary call @/ondewo.nlu.Users/CreateServerRole
513
- *
514
- * @param requestMessage Request message
515
- * @param requestMetadata Request metadata
516
- * @returns Observable<thisProto.ServerRole>
517
- */
518
- createServerRole(requestData, requestMetadata = new GrpcMetadata()) {
519
- return this.$raw
520
- .createServerRole(requestData, requestMetadata)
521
- .pipe(throwStatusErrors(), takeMessages());
522
- }
523
- /**
524
- * Unary call @/ondewo.nlu.Users/GetServerRole
525
- *
526
- * @param requestMessage Request message
527
- * @param requestMetadata Request metadata
528
- * @returns Observable<thisProto.ServerRole>
529
- */
530
- getServerRole(requestData, requestMetadata = new GrpcMetadata()) {
531
- return this.$raw
532
- .getServerRole(requestData, requestMetadata)
533
- .pipe(throwStatusErrors(), takeMessages());
534
- }
535
- /**
536
- * Unary call @/ondewo.nlu.Users/DeleteServerRole
537
- *
538
- * @param requestMessage Request message
539
- * @param requestMetadata Request metadata
540
- * @returns Observable<googleProtobuf003.Empty>
541
- */
542
- deleteServerRole(requestData, requestMetadata = new GrpcMetadata()) {
543
- return this.$raw
544
- .deleteServerRole(requestData, requestMetadata)
545
- .pipe(throwStatusErrors(), takeMessages());
546
- }
547
- /**
548
- * Unary call @/ondewo.nlu.Users/UpdateServerRole
549
- *
550
- * @param requestMessage Request message
551
- * @param requestMetadata Request metadata
552
- * @returns Observable<thisProto.ServerRole>
553
- */
554
- updateServerRole(requestData, requestMetadata = new GrpcMetadata()) {
555
- return this.$raw
556
- .updateServerRole(requestData, requestMetadata)
557
- .pipe(throwStatusErrors(), takeMessages());
558
- }
559
- /**
560
- * Unary call @/ondewo.nlu.Users/ListServerRoles
561
- *
562
- * @param requestMessage Request message
563
- * @param requestMetadata Request metadata
564
- * @returns Observable<thisProto.ListServerRolesResponse>
565
- */
566
- listServerRoles(requestData, requestMetadata = new GrpcMetadata()) {
567
- return this.$raw
568
- .listServerRoles(requestData, requestMetadata)
569
- .pipe(throwStatusErrors(), takeMessages());
570
- }
571
- /**
572
- * Unary call @/ondewo.nlu.Users/ListServerPermissions
573
- *
574
- * @param requestMessage Request message
575
- * @param requestMetadata Request metadata
576
- * @returns Observable<thisProto.ListServerPermissionsResponse>
577
- */
578
- listServerPermissions(requestData, requestMetadata = new GrpcMetadata()) {
579
- return this.$raw
580
- .listServerPermissions(requestData, requestMetadata)
581
- .pipe(throwStatusErrors(), takeMessages());
582
- }
583
- /**
584
- * Unary call @/ondewo.nlu.Users/Login
585
- *
586
- * @param requestMessage Request message
587
- * @param requestMetadata Request metadata
588
- * @returns Observable<thisProto.LoginResponse>
589
- */
590
- login(requestData, requestMetadata = new GrpcMetadata()) {
591
- return this.$raw
592
- .login(requestData, requestMetadata)
593
- .pipe(throwStatusErrors(), takeMessages());
594
- }
595
- /**
596
- * Unary call @/ondewo.nlu.Users/CheckLogin
597
- *
598
- * @param requestMessage Request message
599
- * @param requestMetadata Request metadata
600
- * @returns Observable<googleProtobuf003.Empty>
601
- */
602
- checkLogin(requestData, requestMetadata = new GrpcMetadata()) {
603
- return this.$raw
604
- .checkLogin(requestData, requestMetadata)
605
- .pipe(throwStatusErrors(), takeMessages());
606
- }
607
- /**
608
- * Unary call @/ondewo.nlu.Users/ListNotifications
609
- *
610
- * @param requestMessage Request message
611
- * @param requestMetadata Request metadata
612
- * @returns Observable<ondewoNlu007.ListNotificationsResponse>
613
- */
614
- listNotifications(requestData, requestMetadata = new GrpcMetadata()) {
615
- return this.$raw
616
- .listNotifications(requestData, requestMetadata)
617
- .pipe(throwStatusErrors(), takeMessages());
618
- }
619
- /**
620
- * Unary call @/ondewo.nlu.Users/SetNotificationsFlaggedStatus
621
- *
622
- * @param requestMessage Request message
623
- * @param requestMetadata Request metadata
624
- * @returns Observable<ondewoNlu007.ListNotificationsResponse>
625
- */
626
- setNotificationsFlaggedStatus(requestData, requestMetadata = new GrpcMetadata()) {
627
- return this.$raw
628
- .setNotificationsFlaggedStatus(requestData, requestMetadata)
629
- .pipe(throwStatusErrors(), takeMessages());
630
- }
631
- /**
632
- * Unary call @/ondewo.nlu.Users/SetNotificationsReadStatus
633
- *
634
- * @param requestMessage Request message
635
- * @param requestMetadata Request metadata
636
- * @returns Observable<ondewoNlu007.ListNotificationsResponse>
637
- */
638
- setNotificationsReadStatus(requestData, requestMetadata = new GrpcMetadata()) {
639
- return this.$raw
640
- .setNotificationsReadStatus(requestData, requestMetadata)
641
- .pipe(throwStatusErrors(), takeMessages());
642
- }
643
- /**
644
- * Unary call @/ondewo.nlu.Users/GetUserPreferences
645
- *
646
- * @param requestMessage Request message
647
- * @param requestMetadata Request metadata
648
- * @returns Observable<thisProto.GetUserPreferencesResponse>
649
- */
650
- getUserPreferences(requestData, requestMetadata = new GrpcMetadata()) {
651
- return this.$raw
652
- .getUserPreferences(requestData, requestMetadata)
653
- .pipe(throwStatusErrors(), takeMessages());
654
- }
655
- /**
656
- * Unary call @/ondewo.nlu.Users/SetUserPreferences
657
- *
658
- * @param requestMessage Request message
659
- * @param requestMetadata Request metadata
660
- * @returns Observable<thisProto.SetUserPreferencesResponse>
661
- */
662
- setUserPreferences(requestData, requestMetadata = new GrpcMetadata()) {
663
- return this.$raw
664
- .setUserPreferences(requestData, requestMetadata)
665
- .pipe(throwStatusErrors(), takeMessages());
666
- }
667
- /**
668
- * Unary call @/ondewo.nlu.Users/DeleteUserPreferences
669
- *
670
- * @param requestMessage Request message
671
- * @param requestMetadata Request metadata
672
- * @returns Observable<thisProto.DeleteUserPreferencesResponse>
673
- */
674
- deleteUserPreferences(requestData, requestMetadata = new GrpcMetadata()) {
675
- return this.$raw
676
- .deleteUserPreferences(requestData, requestMetadata)
677
- .pipe(throwStatusErrors(), takeMessages());
678
- }
679
- /**
680
- * Unary call @/ondewo.nlu.Users/DeleteAllUserPreferences
681
- *
682
- * @param requestMessage Request message
683
- * @param requestMetadata Request metadata
684
- * @returns Observable<thisProto.DeleteUserPreferencesResponse>
685
- */
686
- deleteAllUserPreferences(requestData, requestMetadata = new GrpcMetadata()) {
687
- return this.$raw
688
- .deleteAllUserPreferences(requestData, requestMetadata)
689
- .pipe(throwStatusErrors(), takeMessages());
690
- }
691
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: UsersClient, deps: [{ token: GRPC_USERS_CLIENT_SETTINGS, optional: true }, { token: GRPC_CLIENT_FACTORY }, { token: i1.GrpcHandler }], target: i0.ɵɵFactoryTarget.Injectable }); }
692
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: UsersClient, providedIn: 'any' }); }
693
- }
694
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: UsersClient, decorators: [{
695
- type: Injectable,
696
- args: [{ providedIn: 'any' }]
697
- }], ctorParameters: () => [{ type: undefined, decorators: [{
698
- type: Optional
699
- }, {
700
- type: Inject,
701
- args: [GRPC_USERS_CLIENT_SETTINGS]
702
- }] }, { type: undefined, decorators: [{
703
- type: Inject,
704
- args: [GRPC_CLIENT_FACTORY]
705
- }] }, { type: i1.GrpcHandler }] });
706
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5wYnNjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vYXBpL29uZGV3by9ubHUvdXNlci5wYnNjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9CQUFvQjtBQUNwQixvQkFBb0I7QUFDcEIsY0FBYztBQUNkLEVBQUU7QUFDRiwyQkFBMkI7QUFDM0IsOENBQThDO0FBQzlDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsWUFBWSxFQUlaLFlBQVksRUFDYixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFDTCxtQkFBbUIsRUFFbkIsWUFBWSxFQUNaLGlCQUFpQixFQUNsQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sS0FBSyxTQUFTLE1BQU0sV0FBVyxDQUFDO0FBSXZDLE9BQU8sS0FBSyxpQkFBaUIsTUFBTSw0QkFBNEIsQ0FBQztBQUloRSxPQUFPLEtBQUssWUFBWSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBQzNEOztHQUVHO0FBRUgsTUFBTSxPQUFPLFdBQVc7SUF5ZHRCLFlBQ2tELFFBQWEsRUFDaEMsYUFBcUMsRUFDMUQsT0FBb0I7UUFBcEIsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQXpkOUI7Ozs7V0FJRztRQUNILFNBQUksR0FBRztZQUNMOzs7Ozs7ZUFNRztZQUNILFVBQVUsRUFBRSxDQUNWLFdBQXdDLEVBQ3hDLGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBRSxFQUNHLEVBQUU7Z0JBQ3pDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7b0JBQ3pCLElBQUksRUFBRSxZQUFZLENBQUMsS0FBSztvQkFDeEIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO29CQUNuQixJQUFJLEVBQUUsOEJBQThCO29CQUNwQyxXQUFXO29C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Qy9DLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxrQkFBa0IsQ0FDaEIsV0FBZ0QsRUFDaEQsZUFBZSxHQUFHLElBQUksWUFBWSxFQUFFO1FBRXBDLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsZUFBZSxDQUFDO2FBQ2hELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILHFCQUFxQixDQUNuQixXQUFtRCxFQUNuRCxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUU7UUFFcEMsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxlQUFlLENBQUM7YUFDbkQsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsd0JBQXdCLENBQ3RCLFdBQXNELEVBQ3RELGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBRTtRQUVwQyxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2Isd0JBQXdCLENBQUMsV0FBVyxFQUFFLGVBQWUsQ0FBQzthQUN0RCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7K0dBL3pCVSxXQUFXLGtCQTBkQSwwQkFBMEIsNkJBQ3RDLG1CQUFtQjttSEEzZGxCLFdBQVcsY0FERSxLQUFLOzs0RkFDbEIsV0FBVztrQkFEdkIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUU7OzBCQTJkNUIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQywwQkFBMEI7OzBCQUM3QyxNQUFNOzJCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlICovXG4vKiBlc2xpbnQtZGlzYWJsZSAqL1xuLy8gQHRzLW5vY2hlY2tcbi8vXG4vLyBUSElTIElTIEEgR0VORVJBVEVEIEZJTEVcbi8vIERPIE5PVCBNT0RJRlkgSVQhIFlPVVIgQ0hBTkdFUyBXSUxMIEJFIExPU1RcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEdycGNDYWxsVHlwZSxcbiAgR3JwY0NsaWVudCxcbiAgR3JwY0NsaWVudEZhY3RvcnksXG4gIEdycGNFdmVudCxcbiAgR3JwY01ldGFkYXRhXG59IGZyb20gJ0BuZ3gtZ3JwYy9jb21tb24nO1xuaW1wb3J0IHtcbiAgR1JQQ19DTElFTlRfRkFDVE9SWSxcbiAgR3JwY0hhbmRsZXIsXG4gIHRha2VNZXNzYWdlcyxcbiAgdGhyb3dTdGF0dXNFcnJvcnNcbn0gZnJvbSAnQG5neC1ncnBjL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0ICogYXMgdGhpc1Byb3RvIGZyb20gJy4vdXNlci5wYic7XG5pbXBvcnQgKiBhcyBnb29nbGVBcGkwMDAgZnJvbSAnLi4vLi4vZ29vZ2xlL2FwaS9odHRwLnBiJztcbmltcG9ydCAqIGFzIGdvb2dsZVByb3RvYnVmMDAxIGZyb20gJ0BuZ3gtZ3JwYy93ZWxsLWtub3duLXR5cGVzJztcbmltcG9ydCAqIGFzIGdvb2dsZUFwaTAwMiBmcm9tICcuLi8uLi9nb29nbGUvYXBpL2Fubm90YXRpb25zLnBiJztcbmltcG9ydCAqIGFzIGdvb2dsZVByb3RvYnVmMDAzIGZyb20gJ0BuZ3gtZ3JwYy93ZWxsLWtub3duLXR5cGVzJztcbmltcG9ydCAqIGFzIGdvb2dsZVByb3RvYnVmMDA0IGZyb20gJ0BuZ3gtZ3JwYy93ZWxsLWtub3duLXR5cGVzJztcbmltcG9ydCAqIGFzIGdvb2dsZVByb3RvYnVmMDA1IGZyb20gJ0BuZ3gtZ3JwYy93ZWxsLWtub3duLXR5cGVzJztcbmltcG9ydCAqIGFzIG9uZGV3b05sdTAwNiBmcm9tICcuLi8uLi9vbmRld28vbmx1L3Byb2plY3Qtcm9sZS5wYic7XG5pbXBvcnQgKiBhcyBvbmRld29ObHUwMDcgZnJvbSAnLi4vLi4vb25kZXdvL25sdS9jb21tb24ucGInO1xuaW1wb3J0IHsgR1JQQ19VU0VSU19DTElFTlRfU0VUVElOR1MgfSBmcm9tICcuL3VzZXIucGJjb25mJztcbi8qKlxuICogU2VydmljZSBjbGllbnQgaW1wbGVtZW50YXRpb24gZm9yIG9uZGV3by5ubHUuVXNlcnNcbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAnYW55JyB9KVxuZXhwb3J0IGNsYXNzIFVzZXJzQ2xpZW50IHtcbiAgcHJpdmF0ZSBjbGllbnQ6IEdycGNDbGllbnQ8YW55PjtcblxuICAvKipcbiAgICogUmF3IFJQQyBpbXBsZW1lbnRhdGlvbiBmb3IgZWFjaCBzZXJ2aWNlIGNsaWVudCBtZXRob2QuXG4gICAqIFRoZSByYXcgbWV0aG9kcyBwcm92aWRlIG1vcmUgY29udHJvbCBvbiB0aGUgaW5jb21pbmcgZGF0YSBhbmQgZXZlbnRzLiBFLmcuIHRoZXkgY2FuIGJlIHVzZWZ1bCB0byByZWFkIHN0YXR1cyBgT0tgIG1ldGFkYXRhLlxuICAgKiBBdHRlbnRpb246IHRoZXNlIG1ldGhvZHMgZG8gbm90IHRocm93IGVycm9ycyB3aGVuIG5vbi16ZXJvIHN0YXR1cyBjb2RlcyBhcmUgcmVjZWl2ZWQuXG4gICAqL1xuICAkcmF3ID0ge1xuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9vbmRld28ubmx1LlVzZXJzL0NyZWF0ZVVzZXJcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uVXNlcj4+XG4gICAgICovXG4gICAgY3JlYXRlVXNlcjogKFxuICAgICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5DcmVhdGVVc2VyUmVxdWVzdCxcbiAgICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICAgICk6IE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5Vc2VyPj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLm5sdS5Vc2Vycy9DcmVhdGVVc2VyJyxcbiAgICAgICAgcmVxdWVzdERhdGEsXG4gICAgICAgIHJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgcmVxdWVzdENsYXNzOiB0aGlzUHJvdG8uQ3JlYXRlVXNlclJlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IHRoaXNQcm90by5Vc2VyXG4gICAgICB9KTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9vbmRld28ubmx1LlVzZXJzL0dldFVzZXJcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uVXNlcj4+XG4gICAgICovXG4gICAgZ2V0VXNlcjogKFxuICAgICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5HZXRVc2VyUmVxdWVzdCxcbiAgICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICAgICk6IE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5Vc2VyPj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLm5sdS5Vc2Vycy9HZXRVc2VyJyxcbiAgICAgICAgcmVxdWVzdERhdGEsXG4gICAgICAgIHJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgcmVxdWVzdENsYXNzOiB0aGlzUHJvdG8uR2V0VXNlclJlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IHRoaXNQcm90by5Vc2VyXG4gICAgICB9KTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9vbmRld28ubmx1LlVzZXJzL0dldFVzZXJJbmZvXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLlVzZXJJbmZvPj5cbiAgICAgKi9cbiAgICBnZXRVc2VySW5mbzogKFxuICAgICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5HZXRVc2VyUmVxdWVzdCxcbiAgICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICAgICk6IE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5Vc2VySW5mbz4+ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZXIuaGFuZGxlKHtcbiAgICAgICAgdHlwZTogR3JwY0NhbGxUeXBlLnVuYXJ5LFxuICAgICAgICBjbGllbnQ6IHRoaXMuY2xpZW50LFxuICAgICAgICBwYXRoOiAnL29uZGV3by5ubHUuVXNlcnMvR2V0VXNlckluZm8nLFxuICAgICAgICByZXF1ZXN0RGF0YSxcbiAgICAgICAgcmVxdWVzdE1ldGFkYXRhLFxuICAgICAgICByZXF1ZXN0Q2xhc3M6IHRoaXNQcm90by5HZXRVc2VyUmVxdWVzdCxcbiAgICAgICAgcmVzcG9uc2VDbGFzczogdGhpc1Byb3RvLlVzZXJJbmZvXG4gICAgICB9KTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9vbmRld28ubmx1LlVzZXJzL0RlbGV0ZVVzZXJcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDxnb29nbGVQcm90b2J1ZjAwMy5FbXB0eT4+XG4gICAgICovXG4gICAgZGVsZXRlVXNlcjogKFxuICAgICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5HZXRVc2VyUmVxdWVzdCxcbiAgICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICAgICk6IE9ic2VydmFibGU8R3JwY0V2ZW50PGdvb2dsZVByb3RvYnVmMDAzLkVtcHR5Pj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLm5sdS5Vc2Vycy9EZWxldGVVc2VyJyxcbiAgICAgICAgcmVxdWVzdERhdGEsXG4gICAgICAgIHJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgcmVxdWVzdENsYXNzOiB0aGlzUHJvdG8uR2V0VXNlclJlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IGdvb2dsZVByb3RvYnVmMDAzLkVtcHR5XG4gICAgICB9KTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9vbmRld28ubmx1LlVzZXJzL1VwZGF0ZVVzZXJcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uVXNlcj4+XG4gICAgICovXG4gICAgdXBkYXRlVXNlcjogKFxuICAgICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5VcGRhdGVVc2VyUmVxdWVzdCxcbiAgICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICAgICk6IE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5Vc2VyPj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLm5sdS5Vc2Vycy9VcGRhdGVVc2VyJyxcbiAgICAgICAgcmVxdWVzdERhdGEsXG4gICAgICAgIHJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgcmVxdWVzdENsYXNzOiB0aGlzUHJvdG8uVXBkYXRlVXNlclJlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IHRoaXNQcm90by5Vc2VyXG4gICAgICB9KTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9vbmRld28ubmx1LlVzZXJzL0xpc3RVc2Vyc1xuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5MaXN0VXNlcnNSZXNwb25zZT4+XG4gICAgICovXG4gICAgbGlzdFVzZXJzOiAoXG4gICAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkxpc3RVc2Vyc1JlcXVlc3QsXG4gICAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgICApOiBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uTGlzdFVzZXJzUmVzcG9uc2U+PiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVyLmhhbmRsZSh7XG4gICAgICAgIHR5cGU6IEdycGNDYWxsVHlwZS51bmFyeSxcbiAgICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgICAgcGF0aDogJy9vbmRld28ubmx1LlVzZXJzL0xpc3RVc2VycycsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogdGhpc1Byb3RvLkxpc3RVc2Vyc1JlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IHRoaXNQcm90by5MaXN0VXNlcnNSZXNwb25zZVxuICAgICAgfSk7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBVbmFyeSBjYWxsOiAvb25kZXdvLm5sdS5Vc2Vycy9MaXN0VXNlckluZm9zXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLkxpc3RVc2VySW5mb3NSZXNwb25zZT4+XG4gICAgICovXG4gICAgbGlzdFVzZXJJbmZvczogKFxuICAgICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5MaXN0VXNlcnNSZXF1ZXN0LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLkxpc3RVc2VySW5mb3NSZXNwb25zZT4+ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZXIuaGFuZGxlKHtcbiAgICAgICAgdHlwZTogR3JwY0NhbGxUeXBlLnVuYXJ5LFxuICAgICAgICBjbGllbnQ6IHRoaXMuY2xpZW50LFxuICAgICAgICBwYXRoOiAnL29uZGV3by5ubHUuVXNlcnMvTGlzdFVzZXJJbmZvcycsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogdGhpc1Byb3RvLkxpc3RVc2Vyc1JlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IHRoaXNQcm90by5MaXN0VXNlckluZm9zUmVzcG9uc2VcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL29uZGV3by5ubHUuVXNlcnMvQ3JlYXRlU2VydmVyUm9sZVxuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5TZXJ2ZXJSb2xlPj5cbiAgICAgKi9cbiAgICBjcmVhdGVTZXJ2ZXJSb2xlOiAoXG4gICAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkNyZWF0ZVNlcnZlclJvbGVSZXF1ZXN0LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLlNlcnZlclJvbGU+PiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVyLmhhbmRsZSh7XG4gICAgICAgIHR5cGU6IEdycGNDYWxsVHlwZS51bmFyeSxcbiAgICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgICAgcGF0aDogJy9vbmRld28ubmx1LlVzZXJzL0NyZWF0ZVNlcnZlclJvbGUnLFxuICAgICAgICByZXF1ZXN0RGF0YSxcbiAgICAgICAgcmVxdWVzdE1ldGFkYXRhLFxuICAgICAgICByZXF1ZXN0Q2xhc3M6IHRoaXNQcm90by5DcmVhdGVTZXJ2ZXJSb2xlUmVxdWVzdCxcbiAgICAgICAgcmVzcG9uc2VDbGFzczogdGhpc1Byb3RvLlNlcnZlclJvbGVcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL29uZGV3by5ubHUuVXNlcnMvR2V0U2VydmVyUm9sZVxuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5TZXJ2ZXJSb2xlPj5cbiAgICAgKi9cbiAgICBnZXRTZXJ2ZXJSb2xlOiAoXG4gICAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkdldFNlcnZlclJvbGVSZXF1ZXN0LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLlNlcnZlclJvbGU+PiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVyLmhhbmRsZSh7XG4gICAgICAgIHR5cGU6IEdycGNDYWxsVHlwZS51bmFyeSxcbiAgICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgICAgcGF0aDogJy9vbmRld28ubmx1LlVzZXJzL0dldFNlcnZlclJvbGUnLFxuICAgICAgICByZXF1ZXN0RGF0YSxcbiAgICAgICAgcmVxdWVzdE1ldGFkYXRhLFxuICAgICAgICByZXF1ZXN0Q2xhc3M6IHRoaXNQcm90by5HZXRTZXJ2ZXJSb2xlUmVxdWVzdCxcbiAgICAgICAgcmVzcG9uc2VDbGFzczogdGhpc1Byb3RvLlNlcnZlclJvbGVcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL29uZGV3by5ubHUuVXNlcnMvRGVsZXRlU2VydmVyUm9sZVxuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8R3JwY0V2ZW50PGdvb2dsZVByb3RvYnVmMDAzLkVtcHR5Pj5cbiAgICAgKi9cbiAgICBkZWxldGVTZXJ2ZXJSb2xlOiAoXG4gICAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkRlbGV0ZVNlcnZlclJvbGVSZXF1ZXN0LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8Z29vZ2xlUHJvdG9idWYwMDMuRW1wdHk+PiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVyLmhhbmRsZSh7XG4gICAgICAgIHR5cGU6IEdycGNDYWxsVHlwZS51bmFyeSxcbiAgICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgICAgcGF0aDogJy9vbmRld28ubmx1LlVzZXJzL0RlbGV0ZVNlcnZlclJvbGUnLFxuICAgICAgICByZXF1ZXN0RGF0YSxcbiAgICAgICAgcmVxdWVzdE1ldGFkYXRhLFxuICAgICAgICByZXF1ZXN0Q2xhc3M6IHRoaXNQcm90by5EZWxldGVTZXJ2ZXJSb2xlUmVxdWVzdCxcbiAgICAgICAgcmVzcG9uc2VDbGFzczogZ29vZ2xlUHJvdG9idWYwMDMuRW1wdHlcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL29uZGV3by5ubHUuVXNlcnMvVXBkYXRlU2VydmVyUm9sZVxuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5TZXJ2ZXJSb2xlPj5cbiAgICAgKi9cbiAgICB1cGRhdGVTZXJ2ZXJSb2xlOiAoXG4gICAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLlVwZGF0ZVNlcnZlclJvbGVSZXF1ZXN0LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLlNlcnZlclJvbGU+PiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVyLmhhbmRsZSh7XG4gICAgICAgIHR5cGU6IEdycGNDYWxsVHlwZS51bmFyeSxcbiAgICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgICAgcGF0aDogJy9vbmRld28ubmx1LlVzZXJzL1VwZGF0ZVNlcnZlclJvbGUnLFxuICAgICAgICByZXF1ZXN0RGF0YSxcbiAgICAgICAgcmVxdWVzdE1ldGFkYXRhLFxuICAgICAgICByZXF1ZXN0Q2xhc3M6IHRoaXNQcm90by5VcGRhdGVTZXJ2ZXJSb2xlUmVxdWVzdCxcbiAgICAgICAgcmVzcG9uc2VDbGFzczogdGhpc1Byb3RvLlNlcnZlclJvbGVcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL29uZGV3by5ubHUuVXNlcnMvTGlzdFNlcnZlclJvbGVzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLkxpc3RTZXJ2ZXJSb2xlc1Jlc3BvbnNlPj5cbiAgICAgKi9cbiAgICBsaXN0U2VydmVyUm9sZXM6IChcbiAgICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uTGlzdFNlcnZlclJvbGVzUmVxdWVzdCxcbiAgICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICAgICk6IE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5MaXN0U2VydmVyUm9sZXNSZXNwb25zZT4+ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZXIuaGFuZGxlKHtcbiAgICAgICAgdHlwZTogR3JwY0NhbGxUeXBlLnVuYXJ5LFxuICAgICAgICBjbGllbnQ6IHRoaXMuY2xpZW50LFxuICAgICAgICBwYXRoOiAnL29uZGV3by5ubHUuVXNlcnMvTGlzdFNlcnZlclJvbGVzJyxcbiAgICAgICAgcmVxdWVzdERhdGEsXG4gICAgICAgIHJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgcmVxdWVzdENsYXNzOiB0aGlzUHJvdG8uTGlzdFNlcnZlclJvbGVzUmVxdWVzdCxcbiAgICAgICAgcmVzcG9uc2VDbGFzczogdGhpc1Byb3RvLkxpc3RTZXJ2ZXJSb2xlc1Jlc3BvbnNlXG4gICAgICB9KTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9vbmRld28ubmx1LlVzZXJzL0xpc3RTZXJ2ZXJQZXJtaXNzaW9uc1xuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5MaXN0U2VydmVyUGVybWlzc2lvbnNSZXNwb25zZT4+XG4gICAgICovXG4gICAgbGlzdFNlcnZlclBlcm1pc3Npb25zOiAoXG4gICAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkxpc3RTZXJ2ZXJQZXJtaXNzaW9uc1JlcXVlc3QsXG4gICAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgICApOiBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uTGlzdFNlcnZlclBlcm1pc3Npb25zUmVzcG9uc2U+PiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVyLmhhbmRsZSh7XG4gICAgICAgIHR5cGU6IEdycGNDYWxsVHlwZS51bmFyeSxcbiAgICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgICAgcGF0aDogJy9vbmRld28ubmx1LlVzZXJzL0xpc3RTZXJ2ZXJQZXJtaXNzaW9ucycsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogdGhpc1Byb3RvLkxpc3RTZXJ2ZXJQZXJtaXNzaW9uc1JlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IHRoaXNQcm90by5MaXN0U2VydmVyUGVybWlzc2lvbnNSZXNwb25zZVxuICAgICAgfSk7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBVbmFyeSBjYWxsOiAvb25kZXdvLm5sdS5Vc2Vycy9Mb2dpblxuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5Mb2dpblJlc3BvbnNlPj5cbiAgICAgKi9cbiAgICBsb2dpbjogKFxuICAgICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5Mb2dpblJlcXVlc3QsXG4gICAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgICApOiBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uTG9naW5SZXNwb25zZT4+ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZXIuaGFuZGxlKHtcbiAgICAgICAgdHlwZTogR3JwY0NhbGxUeXBlLnVuYXJ5LFxuICAgICAgICBjbGllbnQ6IHRoaXMuY2xpZW50LFxuICAgICAgICBwYXRoOiAnL29uZGV3by5ubHUuVXNlcnMvTG9naW4nLFxuICAgICAgICByZXF1ZXN0RGF0YSxcbiAgICAgICAgcmVxdWVzdE1ldGFkYXRhLFxuICAgICAgICByZXF1ZXN0Q2xhc3M6IHRoaXNQcm90by5Mb2dpblJlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IHRoaXNQcm90by5Mb2dpblJlc3BvbnNlXG4gICAgICB9KTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9vbmRld28ubmx1LlVzZXJzL0NoZWNrTG9naW5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDxnb29nbGVQcm90b2J1ZjAwMy5FbXB0eT4+XG4gICAgICovXG4gICAgY2hlY2tMb2dpbjogKFxuICAgICAgcmVxdWVzdERhdGE6IGdvb2dsZVByb3RvYnVmMDAzLkVtcHR5LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8Z29vZ2xlUHJvdG9idWYwMDMuRW1wdHk+PiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVyLmhhbmRsZSh7XG4gICAgICAgIHR5cGU6IEdycGNDYWxsVHlwZS51bmFyeSxcbiAgICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgICAgcGF0aDogJy9vbmRld28ubmx1LlVzZXJzL0NoZWNrTG9naW4nLFxuICAgICAgICByZXF1ZXN0RGF0YSxcbiAgICAgICAgcmVxdWVzdE1ldGFkYXRhLFxuICAgICAgICByZXF1ZXN0Q2xhc3M6IGdvb2dsZVByb3RvYnVmMDAzLkVtcHR5LFxuICAgICAgICByZXNwb25zZUNsYXNzOiBnb29nbGVQcm90b2J1ZjAwMy5FbXB0eVxuICAgICAgfSk7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBVbmFyeSBjYWxsOiAvb25kZXdvLm5sdS5Vc2Vycy9MaXN0Tm90aWZpY2F0aW9uc1xuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8R3JwY0V2ZW50PG9uZGV3b05sdTAwNy5MaXN0Tm90aWZpY2F0aW9uc1Jlc3BvbnNlPj5cbiAgICAgKi9cbiAgICBsaXN0Tm90aWZpY2F0aW9uczogKFxuICAgICAgcmVxdWVzdERhdGE6IG9uZGV3b05sdTAwNy5MaXN0Tm90aWZpY2F0aW9uc1JlcXVlc3QsXG4gICAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgICApOiBPYnNlcnZhYmxlPEdycGNFdmVudDxvbmRld29ObHUwMDcuTGlzdE5vdGlmaWNhdGlvbnNSZXNwb25zZT4+ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZXIuaGFuZGxlKHtcbiAgICAgICAgdHlwZTogR3JwY0NhbGxUeXBlLnVuYXJ5LFxuICAgICAgICBjbGllbnQ6IHRoaXMuY2xpZW50LFxuICAgICAgICBwYXRoOiAnL29uZGV3by5ubHUuVXNlcnMvTGlzdE5vdGlmaWNhdGlvbnMnLFxuICAgICAgICByZXF1ZXN0RGF0YSxcbiAgICAgICAgcmVxdWVzdE1ldGFkYXRhLFxuICAgICAgICByZXF1ZXN0Q2xhc3M6IG9uZGV3b05sdTAwNy5MaXN0Tm90aWZpY2F0aW9uc1JlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IG9uZGV3b05sdTAwNy5MaXN0Tm90aWZpY2F0aW9uc1Jlc3BvbnNlXG4gICAgICB9KTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9vbmRld28ubmx1LlVzZXJzL1NldE5vdGlmaWNhdGlvbnNGbGFnZ2VkU3RhdHVzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8b25kZXdvTmx1MDA3Lkxpc3ROb3RpZmljYXRpb25zUmVzcG9uc2U+PlxuICAgICAqL1xuICAgIHNldE5vdGlmaWNhdGlvbnNGbGFnZ2VkU3RhdHVzOiAoXG4gICAgICByZXF1ZXN0RGF0YTogb25kZXdvTmx1MDA3LlNldE5vdGlmaWNhdGlvbnNGbGFnZ2VkU3RhdHVzUmVxdWVzdCxcbiAgICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICAgICk6IE9ic2VydmFibGU8R3JwY0V2ZW50PG9uZGV3b05sdTAwNy5MaXN0Tm90aWZpY2F0aW9uc1Jlc3BvbnNlPj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLm5sdS5Vc2Vycy9TZXROb3RpZmljYXRpb25zRmxhZ2dlZFN0YXR1cycsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogb25kZXdvTmx1MDA3LlNldE5vdGlmaWNhdGlvbnNGbGFnZ2VkU3RhdHVzUmVxdWVzdCxcbiAgICAgICAgcmVzcG9uc2VDbGFzczogb25kZXdvTmx1MDA3Lkxpc3ROb3RpZmljYXRpb25zUmVzcG9uc2VcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL29uZGV3by5ubHUuVXNlcnMvU2V0Tm90aWZpY2F0aW9uc1JlYWRTdGF0dXNcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDxvbmRld29ObHUwMDcuTGlzdE5vdGlmaWNhdGlvbnNSZXNwb25zZT4+XG4gICAgICovXG4gICAgc2V0Tm90aWZpY2F0aW9uc1JlYWRTdGF0dXM6IChcbiAgICAgIHJlcXVlc3REYXRhOiBvbmRld29ObHUwMDcuU2V0Tm90aWZpY2F0aW9uc1JlYWRTdGF0dXNSZXF1ZXN0LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8b25kZXdvTmx1MDA3Lkxpc3ROb3RpZmljYXRpb25zUmVzcG9uc2U+PiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVyLmhhbmRsZSh7XG4gICAgICAgIHR5cGU6IEdycGNDYWxsVHlwZS51bmFyeSxcbiAgICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgICAgcGF0aDogJy9vbmRld28ubmx1LlVzZXJzL1NldE5vdGlmaWNhdGlvbnNSZWFkU3RhdHVzJyxcbiAgICAgICAgcmVxdWVzdERhdGEsXG4gICAgICAgIHJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgcmVxdWVzdENsYXNzOiBvbmRld29ObHUwMDcuU2V0Tm90aWZpY2F0aW9uc1JlYWRTdGF0dXNSZXF1ZXN0LFxuICAgICAgICByZXNwb25zZUNsYXNzOiBvbmRld29ObHUwMDcuTGlzdE5vdGlmaWNhdGlvbnNSZXNwb25zZVxuICAgICAgfSk7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBVbmFyeSBjYWxsOiAvb25kZXdvLm5sdS5Vc2Vycy9HZXRVc2VyUHJlZmVyZW5jZXNcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uR2V0VXNlclByZWZlcmVuY2VzUmVzcG9uc2U+PlxuICAgICAqL1xuICAgIGdldFVzZXJQcmVmZXJlbmNlczogKFxuICAgICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5HZXRVc2VyUHJlZmVyZW5jZXNSZXF1ZXN0LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLkdldFVzZXJQcmVmZXJlbmNlc1Jlc3BvbnNlPj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLm5sdS5Vc2Vycy9HZXRVc2VyUHJlZmVyZW5jZXMnLFxuICAgICAgICByZXF1ZXN0RGF0YSxcbiAgICAgICAgcmVxdWVzdE1ldGFkYXRhLFxuICAgICAgICByZXF1ZXN0Q2xhc3M6IHRoaXNQcm90by5HZXRVc2VyUHJlZmVyZW5jZXNSZXF1ZXN0LFxuICAgICAgICByZXNwb25zZUNsYXNzOiB0aGlzUHJvdG8uR2V0VXNlclByZWZlcmVuY2VzUmVzcG9uc2VcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL29uZGV3by5ubHUuVXNlcnMvU2V0VXNlclByZWZlcmVuY2VzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLlNldFVzZXJQcmVmZXJlbmNlc1Jlc3BvbnNlPj5cbiAgICAgKi9cbiAgICBzZXRVc2VyUHJlZmVyZW5jZXM6IChcbiAgICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uU2V0VXNlclByZWZlcmVuY2VzUmVxdWVzdCxcbiAgICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICAgICk6IE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5TZXRVc2VyUHJlZmVyZW5jZXNSZXNwb25zZT4+ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZXIuaGFuZGxlKHtcbiAgICAgICAgdHlwZTogR3JwY0NhbGxUeXBlLnVuYXJ5LFxuICAgICAgICBjbGllbnQ6IHRoaXMuY2xpZW50LFxuICAgICAgICBwYXRoOiAnL29uZGV3by5ubHUuVXNlcnMvU2V0VXNlclByZWZlcmVuY2VzJyxcbiAgICAgICAgcmVxdWVzdERhdGEsXG4gICAgICAgIHJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgcmVxdWVzdENsYXNzOiB0aGlzUHJvdG8uU2V0VXNlclByZWZlcmVuY2VzUmVxdWVzdCxcbiAgICAgICAgcmVzcG9uc2VDbGFzczogdGhpc1Byb3RvLlNldFVzZXJQcmVmZXJlbmNlc1Jlc3BvbnNlXG4gICAgICB9KTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9vbmRld28ubmx1LlVzZXJzL0RlbGV0ZVVzZXJQcmVmZXJlbmNlc1xuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5EZWxldGVVc2VyUHJlZmVyZW5jZXNSZXNwb25zZT4+XG4gICAgICovXG4gICAgZGVsZXRlVXNlclByZWZlcmVuY2VzOiAoXG4gICAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkRlbGV0ZVVzZXJQcmVmZXJlbmNlc1JlcXVlc3QsXG4gICAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgICApOiBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uRGVsZXRlVXNlclByZWZlcmVuY2VzUmVzcG9uc2U+PiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVyLmhhbmRsZSh7XG4gICAgICAgIHR5cGU6IEdycGNDYWxsVHlwZS51bmFyeSxcbiAgICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgICAgcGF0aDogJy9vbmRld28ubmx1LlVzZXJzL0RlbGV0ZVVzZXJQcmVmZXJlbmNlcycsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogdGhpc1Byb3RvLkRlbGV0ZVVzZXJQcmVmZXJlbmNlc1JlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IHRoaXNQcm90by5EZWxldGVVc2VyUHJlZmVyZW5jZXNSZXNwb25zZVxuICAgICAgfSk7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBVbmFyeSBjYWxsOiAvb25kZXdvLm5sdS5Vc2Vycy9EZWxldGVBbGxVc2VyUHJlZmVyZW5jZXNcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uRGVsZXRlVXNlclByZWZlcmVuY2VzUmVzcG9uc2U+PlxuICAgICAqL1xuICAgIGRlbGV0ZUFsbFVzZXJQcmVmZXJlbmNlczogKFxuICAgICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5EZWxldGVBbGxVc2VyUHJlZmVyZW5jZXNSZXF1ZXN0LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLkRlbGV0ZVVzZXJQcmVmZXJlbmNlc1Jlc3BvbnNlPj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLm5sdS5Vc2Vycy9EZWxldGVBbGxVc2VyUHJlZmVyZW5jZXMnLFxuICAgICAgICByZXF1ZXN0RGF0YSxcbiAgICAgICAgcmVxdWVzdE1ldGFkYXRhLFxuICAgICAgICByZXF1ZXN0Q2xhc3M6IHRoaXNQcm90by5EZWxldGVBbGxVc2VyUHJlZmVyZW5jZXNSZXF1ZXN0LFxuICAgICAgICByZXNwb25zZUNsYXNzOiB0aGlzUHJvdG8uRGVsZXRlVXNlclByZWZlcmVuY2VzUmVzcG9uc2VcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEdSUENfVVNFUlNfQ0xJRU5UX1NFVFRJTkdTKSBzZXR0aW5nczogYW55LFxuICAgIEBJbmplY3QoR1JQQ19DTElFTlRfRkFDVE9SWSkgY2xpZW50RmFjdG9yeTogR3JwY0NsaWVudEZhY3Rvcnk8YW55PixcbiAgICBwcml2YXRlIGhhbmRsZXI6IEdycGNIYW5kbGVyXG4gICkge1xuICAgIHRoaXMuY2xpZW50ID0gY2xpZW50RmFjdG9yeS5jcmVhdGVDbGllbnQoJ29uZGV3by5ubHUuVXNlcnMnLCBzZXR0aW5ncyk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL29uZGV3by5ubHUuVXNlcnMvQ3JlYXRlVXNlclxuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPHRoaXNQcm90by5Vc2VyPlxuICAgKi9cbiAgY3JlYXRlVXNlcihcbiAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkNyZWF0ZVVzZXJSZXF1ZXN0LFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPHRoaXNQcm90by5Vc2VyPiB7XG4gICAgcmV0dXJuIHRoaXMuJHJhd1xuICAgICAgLmNyZWF0ZVVzZXIocmVxdWVzdERhdGEsIHJlcXVlc3RNZXRhZGF0YSlcbiAgICAgIC5waXBlKHRocm93U3RhdHVzRXJyb3JzKCksIHRha2VNZXNzYWdlcygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbmFyeSBjYWxsIEAvb25kZXdvLm5sdS5Vc2Vycy9HZXRVc2VyXG4gICAqXG4gICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8dGhpc1Byb3RvLlVzZXI+XG4gICAqL1xuICBnZXRVc2VyKFxuICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uR2V0VXNlclJlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8dGhpc1Byb3RvLlVzZXI+IHtcbiAgICByZXR1cm4gdGhpcy4kcmF3XG4gICAgICAuZ2V0VXNlcihyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28ubmx1LlVzZXJzL0dldFVzZXJJbmZvXG4gICAqXG4gICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8dGhpc1Byb3RvLlVzZXJJbmZvPlxuICAgKi9cbiAgZ2V0VXNlckluZm8oXG4gICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5HZXRVc2VyUmVxdWVzdCxcbiAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgKTogT2JzZXJ2YWJsZTx0aGlzUHJvdG8uVXNlckluZm8+IHtcbiAgICByZXR1cm4gdGhpcy4kcmF3XG4gICAgICAuZ2V0VXNlckluZm8ocmVxdWVzdERhdGEsIHJlcXVlc3RNZXRhZGF0YSlcbiAgICAgIC5waXBlKHRocm93U3RhdHVzRXJyb3JzKCksIHRha2VNZXNzYWdlcygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbmFyeSBjYWxsIEAvb25kZXdvLm5sdS5Vc2Vycy9EZWxldGVVc2VyXG4gICAqXG4gICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8Z29vZ2xlUHJvdG9idWYwMDMuRW1wdHk+XG4gICAqL1xuICBkZWxldGVVc2VyKFxuICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uR2V0VXNlclJlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8Z29vZ2xlUHJvdG9idWYwMDMuRW1wdHk+IHtcbiAgICByZXR1cm4gdGhpcy4kcmF3XG4gICAgICAuZGVsZXRlVXNlcihyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28ubmx1LlVzZXJzL1VwZGF0ZVVzZXJcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTx0aGlzUHJvdG8uVXNlcj5cbiAgICovXG4gIHVwZGF0ZVVzZXIoXG4gICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5VcGRhdGVVc2VyUmVxdWVzdCxcbiAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgKTogT2JzZXJ2YWJsZTx0aGlzUHJvdG8uVXNlcj4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC51cGRhdGVVc2VyKHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL29uZGV3by5ubHUuVXNlcnMvTGlzdFVzZXJzXG4gICAqXG4gICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8dGhpc1Byb3RvLkxpc3RVc2Vyc1Jlc3BvbnNlPlxuICAgKi9cbiAgbGlzdFVzZXJzKFxuICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uTGlzdFVzZXJzUmVxdWVzdCxcbiAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgKTogT2JzZXJ2YWJsZTx0aGlzUHJvdG8uTGlzdFVzZXJzUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy4kcmF3XG4gICAgICAubGlzdFVzZXJzKHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL29uZGV3by5ubHUuVXNlcnMvTGlzdFVzZXJJbmZvc1xuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPHRoaXNQcm90by5MaXN0VXNlckluZm9zUmVzcG9uc2U+XG4gICAqL1xuICBsaXN0VXNlckluZm9zKFxuICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uTGlzdFVzZXJzUmVxdWVzdCxcbiAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgKTogT2JzZXJ2YWJsZTx0aGlzUHJvdG8uTGlzdFVzZXJJbmZvc1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuJHJhd1xuICAgICAgLmxpc3RVc2VySW5mb3MocmVxdWVzdERhdGEsIHJlcXVlc3RNZXRhZGF0YSlcbiAgICAgIC5waXBlKHRocm93U3RhdHVzRXJyb3JzKCksIHRha2VNZXNzYWdlcygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbmFyeSBjYWxsIEAvb25kZXdvLm5sdS5Vc2Vycy9DcmVhdGVTZXJ2ZXJSb2xlXG4gICAqXG4gICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8dGhpc1Byb3RvLlNlcnZlclJvbGU+XG4gICAqL1xuICBjcmVhdGVTZXJ2ZXJSb2xlKFxuICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uQ3JlYXRlU2VydmVyUm9sZVJlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8dGhpc1Byb3RvLlNlcnZlclJvbGU+IHtcbiAgICByZXR1cm4gdGhpcy4kcmF3XG4gICAgICAuY3JlYXRlU2VydmVyUm9sZShyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28ubmx1LlVzZXJzL0dldFNlcnZlclJvbGVcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTx0aGlzUHJvdG8uU2VydmVyUm9sZT5cbiAgICovXG4gIGdldFNlcnZlclJvbGUoXG4gICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5HZXRTZXJ2ZXJSb2xlUmVxdWVzdCxcbiAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgKTogT2JzZXJ2YWJsZTx0aGlzUHJvdG8uU2VydmVyUm9sZT4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC5nZXRTZXJ2ZXJSb2xlKHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL29uZGV3by5ubHUuVXNlcnMvRGVsZXRlU2VydmVyUm9sZVxuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPGdvb2dsZVByb3RvYnVmMDAzLkVtcHR5PlxuICAgKi9cbiAgZGVsZXRlU2VydmVyUm9sZShcbiAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkRlbGV0ZVNlcnZlclJvbGVSZXF1ZXN0LFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPGdvb2dsZVByb3RvYnVmMDAzLkVtcHR5PiB7XG4gICAgcmV0dXJuIHRoaXMuJHJhd1xuICAgICAgLmRlbGV0ZVNlcnZlclJvbGUocmVxdWVzdERhdGEsIHJlcXVlc3RNZXRhZGF0YSlcbiAgICAgIC5waXBlKHRocm93U3RhdHVzRXJyb3JzKCksIHRha2VNZXNzYWdlcygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbmFyeSBjYWxsIEAvb25kZXdvLm5sdS5Vc2Vycy9VcGRhdGVTZXJ2ZXJSb2xlXG4gICAqXG4gICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8dGhpc1Byb3RvLlNlcnZlclJvbGU+XG4gICAqL1xuICB1cGRhdGVTZXJ2ZXJSb2xlKFxuICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uVXBkYXRlU2VydmVyUm9sZVJlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8dGhpc1Byb3RvLlNlcnZlclJvbGU+IHtcbiAgICByZXR1cm4gdGhpcy4kcmF3XG4gICAgICAudXBkYXRlU2VydmVyUm9sZShyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28ubmx1LlVzZXJzL0xpc3RTZXJ2ZXJSb2xlc1xuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPHRoaXNQcm90by5MaXN0U2VydmVyUm9sZXNSZXNwb25zZT5cbiAgICovXG4gIGxpc3RTZXJ2ZXJSb2xlcyhcbiAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkxpc3RTZXJ2ZXJSb2xlc1JlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8dGhpc1Byb3RvLkxpc3RTZXJ2ZXJSb2xlc1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuJHJhd1xuICAgICAgLmxpc3RTZXJ2ZXJSb2xlcyhyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28ubmx1LlVzZXJzL0xpc3RTZXJ2ZXJQZXJtaXNzaW9uc1xuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPHRoaXNQcm90by5MaXN0U2VydmVyUGVybWlzc2lvbnNSZXNwb25zZT5cbiAgICovXG4gIGxpc3RTZXJ2ZXJQZXJtaXNzaW9ucyhcbiAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkxpc3RTZXJ2ZXJQZXJtaXNzaW9uc1JlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8dGhpc1Byb3RvLkxpc3RTZXJ2ZXJQZXJtaXNzaW9uc1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuJHJhd1xuICAgICAgLmxpc3RTZXJ2ZXJQZXJtaXNzaW9ucyhyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28ubmx1LlVzZXJzL0xvZ2luXG4gICAqXG4gICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8dGhpc1Byb3RvLkxvZ2luUmVzcG9uc2U+XG4gICAqL1xuICBsb2dpbihcbiAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkxvZ2luUmVxdWVzdCxcbiAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgKTogT2JzZXJ2YWJsZTx0aGlzUHJvdG8uTG9naW5SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC5sb2dpbihyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28ubmx1LlVzZXJzL0NoZWNrTG9naW5cbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxnb29nbGVQcm90b2J1ZjAwMy5FbXB0eT5cbiAgICovXG4gIGNoZWNrTG9naW4oXG4gICAgcmVxdWVzdERhdGE6IGdvb2dsZVByb3RvYnVmMDAzLkVtcHR5LFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPGdvb2dsZVByb3RvYnVmMDAzLkVtcHR5PiB7XG4gICAgcmV0dXJuIHRoaXMuJHJhd1xuICAgICAgLmNoZWNrTG9naW4ocmVxdWVzdERhdGEsIHJlcXVlc3RNZXRhZGF0YSlcbiAgICAgIC5waXBlKHRocm93U3RhdHVzRXJyb3JzKCksIHRha2VNZXNzYWdlcygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbmFyeSBjYWxsIEAvb25kZXdvLm5sdS5Vc2Vycy9MaXN0Tm90aWZpY2F0aW9uc1xuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPG9uZGV3b05sdTAwNy5MaXN0Tm90aWZpY2F0aW9uc1Jlc3BvbnNlPlxuICAgKi9cbiAgbGlzdE5vdGlmaWNhdGlvbnMoXG4gICAgcmVxdWVzdERhdGE6IG9uZGV3b05sdTAwNy5MaXN0Tm90aWZpY2F0aW9uc1JlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8b25kZXdvTmx1MDA3Lkxpc3ROb3RpZmljYXRpb25zUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy4kcmF3XG4gICAgICAubGlzdE5vdGlmaWNhdGlvbnMocmVxdWVzdERhdGEsIHJlcXVlc3RNZXRhZGF0YSlcbiAgICAgIC5waXBlKHRocm93U3RhdHVzRXJyb3JzKCksIHRha2VNZXNzYWdlcygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbmFyeSBjYWxsIEAvb25kZXdvLm5sdS5Vc2Vycy9TZXROb3RpZmljYXRpb25zRmxhZ2dlZFN0YXR1c1xuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPG9uZGV3b05sdTAwNy5MaXN0Tm90aWZpY2F0aW9uc1Jlc3BvbnNlPlxuICAgKi9cbiAgc2V0Tm90aWZpY2F0aW9uc0ZsYWdnZWRTdGF0dXMoXG4gICAgcmVxdWVzdERhdGE6IG9uZGV3b05sdTAwNy5TZXROb3RpZmljYXRpb25zRmxhZ2dlZFN0YXR1c1JlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8b25kZXdvTmx1MDA3Lkxpc3ROb3RpZmljYXRpb25zUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy4kcmF3XG4gICAgICAuc2V0Tm90aWZpY2F0aW9uc0ZsYWdnZWRTdGF0dXMocmVxdWVzdERhdGEsIHJlcXVlc3RNZXRhZGF0YSlcbiAgICAgIC5waXBlKHRocm93U3RhdHVzRXJyb3JzKCksIHRha2VNZXNzYWdlcygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbmFyeSBjYWxsIEAvb25kZXdvLm5sdS5Vc2Vycy9TZXROb3RpZmljYXRpb25zUmVhZFN0YXR1c1xuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPG9uZGV3b05sdTAwNy5MaXN0Tm90aWZpY2F0aW9uc1Jlc3BvbnNlPlxuICAgKi9cbiAgc2V0Tm90aWZpY2F0aW9uc1JlYWRTdGF0dXMoXG4gICAgcmVxdWVzdERhdGE6IG9uZGV3b05sdTAwNy5TZXROb3RpZmljYXRpb25zUmVhZFN0YXR1c1JlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8b25kZXdvTmx1MDA3Lkxpc3ROb3RpZmljYXRpb25zUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy4kcmF3XG4gICAgICAuc2V0Tm90aWZpY2F0aW9uc1JlYWRTdGF0dXMocmVxdWVzdERhdGEsIHJlcXVlc3RNZXRhZGF0YSlcbiAgICAgIC5waXBlKHRocm93U3RhdHVzRXJyb3JzKCksIHRha2VNZXNzYWdlcygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbmFyeSBjYWxsIEAvb25kZXdvLm5sdS5Vc2Vycy9HZXRVc2VyUHJlZmVyZW5jZXNcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTx0aGlzUHJvdG8uR2V0VXNlclByZWZlcmVuY2VzUmVzcG9uc2U+XG4gICAqL1xuICBnZXRVc2VyUHJlZmVyZW5jZXMoXG4gICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5HZXRVc2VyUHJlZmVyZW5jZXNSZXF1ZXN0LFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPHRoaXNQcm90by5HZXRVc2VyUHJlZmVyZW5jZXNSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC5nZXRVc2VyUHJlZmVyZW5jZXMocmVxdWVzdERhdGEsIHJlcXVlc3RNZXRhZGF0YSlcbiAgICAgIC5waXBlKHRocm93U3RhdHVzRXJyb3JzKCksIHRha2VNZXNzYWdlcygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbmFyeSBjYWxsIEAvb25kZXdvLm5sdS5Vc2Vycy9TZXRVc2VyUHJlZmVyZW5jZXNcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTx0aGlzUHJvdG8uU2V0VXNlclByZWZlcmVuY2VzUmVzcG9uc2U+XG4gICAqL1xuICBzZXRVc2VyUHJlZmVyZW5jZXMoXG4gICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5TZXRVc2VyUHJlZmVyZW5jZXNSZXF1ZXN0LFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPHRoaXNQcm90by5TZXRVc2VyUHJlZmVyZW5jZXNSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC5zZXRVc2VyUHJlZmVyZW5jZXMocmVxdWVzdERhdGEsIHJlcXVlc3RNZXRhZGF0YSlcbiAgICAgIC5waXBlKHRocm93U3RhdHVzRXJyb3JzKCksIHRha2VNZXNzYWdlcygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbmFyeSBjYWxsIEAvb25kZXdvLm5sdS5Vc2Vycy9EZWxldGVVc2VyUHJlZmVyZW5jZXNcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTx0aGlzUHJvdG8uRGVsZXRlVXNlclByZWZlcmVuY2VzUmVzcG9uc2U+XG4gICAqL1xuICBkZWxldGVVc2VyUHJlZmVyZW5jZXMoXG4gICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5EZWxldGVVc2VyUHJlZmVyZW5jZXNSZXF1ZXN0LFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPHRoaXNQcm90by5EZWxldGVVc2VyUHJlZmVyZW5jZXNSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC5kZWxldGVVc2VyUHJlZmVyZW5jZXMocmVxdWVzdERhdGEsIHJlcXVlc3RNZXRhZGF0YSlcbiAgICAgIC5waXBlKHRocm93U3RhdHVzRXJyb3JzKCksIHRha2VNZXNzYWdlcygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbmFyeSBjYWxsIEAvb25kZXdvLm5sdS5Vc2Vycy9EZWxldGVBbGxVc2VyUHJlZmVyZW5jZXNcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTx0aGlzUHJvdG8uRGVsZXRlVXNlclByZWZlcmVuY2VzUmVzcG9uc2U+XG4gICAqL1xuICBkZWxldGVBbGxVc2VyUHJlZmVyZW5jZXMoXG4gICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5EZWxldGVBbGxVc2VyUHJlZmVyZW5jZXNSZXF1ZXN0LFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPHRoaXNQcm90by5EZWxldGVVc2VyUHJlZmVyZW5jZXNSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC5kZWxldGVBbGxVc2VyUHJlZmVyZW5jZXMocmVxdWVzdERhdGEsIHJlcXVlc3RNZXRhZGF0YSlcbiAgICAgIC5waXBlKHRocm93U3RhdHVzRXJyb3JzKCksIHRha2VNZXNzYWdlcygpKTtcbiAgfVxufVxuIl19