@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,13 +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 { InjectionToken } from '@angular/core';
8
- /**
9
- * Specific GrpcClientSettings for Speech2Text.
10
- * Use it only if your default settings are not set or the service requires other settings.
11
- */
12
- export const GRPC_SPEECH2_TEXT_CLIENT_SETTINGS = new InjectionToken('GRPC_SPEECH2_TEXT_CLIENT_SETTINGS');
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlZWNoLXRvLXRleHQucGJjb25mLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vYXBpL29uZGV3by9zMnQvc3BlZWNoLXRvLXRleHQucGJjb25mLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9CQUFvQjtBQUNwQixvQkFBb0I7QUFDcEIsY0FBYztBQUNkLEVBQUU7QUFDRiwyQkFBMkI7QUFDM0IsOENBQThDO0FBQzlDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0M7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUNBQWlDLEdBQUcsSUFBSSxjQUFjLENBQ2pFLG1DQUFtQyxDQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGUgKi9cbi8qIGVzbGludC1kaXNhYmxlICovXG4vLyBAdHMtbm9jaGVja1xuLy9cbi8vIFRISVMgSVMgQSBHRU5FUkFURUQgRklMRVxuLy8gRE8gTk9UIE1PRElGWSBJVCEgWU9VUiBDSEFOR0VTIFdJTEwgQkUgTE9TVFxuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBTcGVjaWZpYyBHcnBjQ2xpZW50U2V0dGluZ3MgZm9yIFNwZWVjaDJUZXh0LlxuICogVXNlIGl0IG9ubHkgaWYgeW91ciBkZWZhdWx0IHNldHRpbmdzIGFyZSBub3Qgc2V0IG9yIHRoZSBzZXJ2aWNlIHJlcXVpcmVzIG90aGVyIHNldHRpbmdzLlxuICovXG5leHBvcnQgY29uc3QgR1JQQ19TUEVFQ0gyX1RFWFRfQ0xJRU5UX1NFVFRJTkdTID0gbmV3IEluamVjdGlvblRva2VuPGFueT4oXG4gICdHUlBDX1NQRUVDSDJfVEVYVF9DTElFTlRfU0VUVElOR1MnXG4pO1xuIl19
@@ -1,495 +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 './speech-to-text.pb';
11
- import * as googleProtobuf000 from '@ngx-grpc/well-known-types';
12
- import { GRPC_SPEECH2_TEXT_CLIENT_SETTINGS } from './speech-to-text.pbconf';
13
- import * as i0 from "@angular/core";
14
- import * as i1 from "@ngx-grpc/core";
15
- /**
16
- * Service client implementation for ondewo.s2t.Speech2Text
17
- */
18
- export class Speech2TextClient {
19
- constructor(settings, clientFactory, handler) {
20
- this.handler = handler;
21
- /**
22
- * Raw RPC implementation for each service client method.
23
- * The raw methods provide more control on the incoming data and events. E.g. they can be useful to read status `OK` metadata.
24
- * Attention: these methods do not throw errors when non-zero status codes are received.
25
- */
26
- this.$raw = {
27
- /**
28
- * Unary call: /ondewo.s2t.Speech2Text/TranscribeFile
29
- *
30
- * @param requestMessage Request message
31
- * @param requestMetadata Request metadata
32
- * @returns Observable<GrpcEvent<thisProto.TranscribeFileResponse>>
33
- */
34
- transcribeFile: (requestData, requestMetadata = new GrpcMetadata()) => {
35
- return this.handler.handle({
36
- type: GrpcCallType.unary,
37
- client: this.client,
38
- path: '/ondewo.s2t.Speech2Text/TranscribeFile',
39
- requestData,
40
- requestMetadata,
41
- requestClass: thisProto.TranscribeFileRequest,
42
- responseClass: thisProto.TranscribeFileResponse
43
- });
44
- },
45
- /**
46
- * Bidirectional streaming: /ondewo.s2t.Speech2Text/TranscribeStream
47
- *
48
- * @param requestMessage Request message
49
- * @param requestMetadata Request metadata
50
- * @returns Observable<GrpcEvent<thisProto.TranscribeStreamResponse>>
51
- */
52
- transcribeStream: (requestData, requestMetadata = new GrpcMetadata()) => {
53
- return this.handler.handle({
54
- type: GrpcCallType.bidiStream,
55
- client: this.client,
56
- path: '/ondewo.s2t.Speech2Text/TranscribeStream',
57
- requestData,
58
- requestMetadata,
59
- requestClass: thisProto.TranscribeStreamRequest,
60
- responseClass: thisProto.TranscribeStreamResponse
61
- });
62
- },
63
- /**
64
- * Unary call: /ondewo.s2t.Speech2Text/GetS2tPipeline
65
- *
66
- * @param requestMessage Request message
67
- * @param requestMetadata Request metadata
68
- * @returns Observable<GrpcEvent<thisProto.Speech2TextConfig>>
69
- */
70
- getS2tPipeline: (requestData, requestMetadata = new GrpcMetadata()) => {
71
- return this.handler.handle({
72
- type: GrpcCallType.unary,
73
- client: this.client,
74
- path: '/ondewo.s2t.Speech2Text/GetS2tPipeline',
75
- requestData,
76
- requestMetadata,
77
- requestClass: thisProto.S2tPipelineId,
78
- responseClass: thisProto.Speech2TextConfig
79
- });
80
- },
81
- /**
82
- * Unary call: /ondewo.s2t.Speech2Text/CreateS2tPipeline
83
- *
84
- * @param requestMessage Request message
85
- * @param requestMetadata Request metadata
86
- * @returns Observable<GrpcEvent<thisProto.S2tPipelineId>>
87
- */
88
- createS2tPipeline: (requestData, requestMetadata = new GrpcMetadata()) => {
89
- return this.handler.handle({
90
- type: GrpcCallType.unary,
91
- client: this.client,
92
- path: '/ondewo.s2t.Speech2Text/CreateS2tPipeline',
93
- requestData,
94
- requestMetadata,
95
- requestClass: thisProto.Speech2TextConfig,
96
- responseClass: thisProto.S2tPipelineId
97
- });
98
- },
99
- /**
100
- * Unary call: /ondewo.s2t.Speech2Text/DeleteS2tPipeline
101
- *
102
- * @param requestMessage Request message
103
- * @param requestMetadata Request metadata
104
- * @returns Observable<GrpcEvent<googleProtobuf000.Empty>>
105
- */
106
- deleteS2tPipeline: (requestData, requestMetadata = new GrpcMetadata()) => {
107
- return this.handler.handle({
108
- type: GrpcCallType.unary,
109
- client: this.client,
110
- path: '/ondewo.s2t.Speech2Text/DeleteS2tPipeline',
111
- requestData,
112
- requestMetadata,
113
- requestClass: thisProto.S2tPipelineId,
114
- responseClass: googleProtobuf000.Empty
115
- });
116
- },
117
- /**
118
- * Unary call: /ondewo.s2t.Speech2Text/UpdateS2tPipeline
119
- *
120
- * @param requestMessage Request message
121
- * @param requestMetadata Request metadata
122
- * @returns Observable<GrpcEvent<googleProtobuf000.Empty>>
123
- */
124
- updateS2tPipeline: (requestData, requestMetadata = new GrpcMetadata()) => {
125
- return this.handler.handle({
126
- type: GrpcCallType.unary,
127
- client: this.client,
128
- path: '/ondewo.s2t.Speech2Text/UpdateS2tPipeline',
129
- requestData,
130
- requestMetadata,
131
- requestClass: thisProto.Speech2TextConfig,
132
- responseClass: googleProtobuf000.Empty
133
- });
134
- },
135
- /**
136
- * Unary call: /ondewo.s2t.Speech2Text/ListS2tPipelines
137
- *
138
- * @param requestMessage Request message
139
- * @param requestMetadata Request metadata
140
- * @returns Observable<GrpcEvent<thisProto.ListS2tPipelinesResponse>>
141
- */
142
- listS2tPipelines: (requestData, requestMetadata = new GrpcMetadata()) => {
143
- return this.handler.handle({
144
- type: GrpcCallType.unary,
145
- client: this.client,
146
- path: '/ondewo.s2t.Speech2Text/ListS2tPipelines',
147
- requestData,
148
- requestMetadata,
149
- requestClass: thisProto.ListS2tPipelinesRequest,
150
- responseClass: thisProto.ListS2tPipelinesResponse
151
- });
152
- },
153
- /**
154
- * Unary call: /ondewo.s2t.Speech2Text/ListS2tLanguages
155
- *
156
- * @param requestMessage Request message
157
- * @param requestMetadata Request metadata
158
- * @returns Observable<GrpcEvent<thisProto.ListS2tLanguagesResponse>>
159
- */
160
- listS2tLanguages: (requestData, requestMetadata = new GrpcMetadata()) => {
161
- return this.handler.handle({
162
- type: GrpcCallType.unary,
163
- client: this.client,
164
- path: '/ondewo.s2t.Speech2Text/ListS2tLanguages',
165
- requestData,
166
- requestMetadata,
167
- requestClass: thisProto.ListS2tLanguagesRequest,
168
- responseClass: thisProto.ListS2tLanguagesResponse
169
- });
170
- },
171
- /**
172
- * Unary call: /ondewo.s2t.Speech2Text/ListS2tDomains
173
- *
174
- * @param requestMessage Request message
175
- * @param requestMetadata Request metadata
176
- * @returns Observable<GrpcEvent<thisProto.ListS2tDomainsResponse>>
177
- */
178
- listS2tDomains: (requestData, requestMetadata = new GrpcMetadata()) => {
179
- return this.handler.handle({
180
- type: GrpcCallType.unary,
181
- client: this.client,
182
- path: '/ondewo.s2t.Speech2Text/ListS2tDomains',
183
- requestData,
184
- requestMetadata,
185
- requestClass: thisProto.ListS2tDomainsRequest,
186
- responseClass: thisProto.ListS2tDomainsResponse
187
- });
188
- },
189
- /**
190
- * Unary call: /ondewo.s2t.Speech2Text/GetServiceInfo
191
- *
192
- * @param requestMessage Request message
193
- * @param requestMetadata Request metadata
194
- * @returns Observable<GrpcEvent<thisProto.S2TGetServiceInfoResponse>>
195
- */
196
- getServiceInfo: (requestData, requestMetadata = new GrpcMetadata()) => {
197
- return this.handler.handle({
198
- type: GrpcCallType.unary,
199
- client: this.client,
200
- path: '/ondewo.s2t.Speech2Text/GetServiceInfo',
201
- requestData,
202
- requestMetadata,
203
- requestClass: googleProtobuf000.Empty,
204
- responseClass: thisProto.S2TGetServiceInfoResponse
205
- });
206
- },
207
- /**
208
- * Unary call: /ondewo.s2t.Speech2Text/ListS2tLanguageModels
209
- *
210
- * @param requestMessage Request message
211
- * @param requestMetadata Request metadata
212
- * @returns Observable<GrpcEvent<thisProto.ListS2tLanguageModelsResponse>>
213
- */
214
- listS2tLanguageModels: (requestData, requestMetadata = new GrpcMetadata()) => {
215
- return this.handler.handle({
216
- type: GrpcCallType.unary,
217
- client: this.client,
218
- path: '/ondewo.s2t.Speech2Text/ListS2tLanguageModels',
219
- requestData,
220
- requestMetadata,
221
- requestClass: thisProto.ListS2tLanguageModelsRequest,
222
- responseClass: thisProto.ListS2tLanguageModelsResponse
223
- });
224
- },
225
- /**
226
- * Unary call: /ondewo.s2t.Speech2Text/CreateUserLanguageModel
227
- *
228
- * @param requestMessage Request message
229
- * @param requestMetadata Request metadata
230
- * @returns Observable<GrpcEvent<googleProtobuf000.Empty>>
231
- */
232
- createUserLanguageModel: (requestData, requestMetadata = new GrpcMetadata()) => {
233
- return this.handler.handle({
234
- type: GrpcCallType.unary,
235
- client: this.client,
236
- path: '/ondewo.s2t.Speech2Text/CreateUserLanguageModel',
237
- requestData,
238
- requestMetadata,
239
- requestClass: thisProto.CreateUserLanguageModelRequest,
240
- responseClass: googleProtobuf000.Empty
241
- });
242
- },
243
- /**
244
- * Unary call: /ondewo.s2t.Speech2Text/DeleteUserLanguageModel
245
- *
246
- * @param requestMessage Request message
247
- * @param requestMetadata Request metadata
248
- * @returns Observable<GrpcEvent<googleProtobuf000.Empty>>
249
- */
250
- deleteUserLanguageModel: (requestData, requestMetadata = new GrpcMetadata()) => {
251
- return this.handler.handle({
252
- type: GrpcCallType.unary,
253
- client: this.client,
254
- path: '/ondewo.s2t.Speech2Text/DeleteUserLanguageModel',
255
- requestData,
256
- requestMetadata,
257
- requestClass: thisProto.DeleteUserLanguageModelRequest,
258
- responseClass: googleProtobuf000.Empty
259
- });
260
- },
261
- /**
262
- * Unary call: /ondewo.s2t.Speech2Text/AddDataToUserLanguageModel
263
- *
264
- * @param requestMessage Request message
265
- * @param requestMetadata Request metadata
266
- * @returns Observable<GrpcEvent<googleProtobuf000.Empty>>
267
- */
268
- addDataToUserLanguageModel: (requestData, requestMetadata = new GrpcMetadata()) => {
269
- return this.handler.handle({
270
- type: GrpcCallType.unary,
271
- client: this.client,
272
- path: '/ondewo.s2t.Speech2Text/AddDataToUserLanguageModel',
273
- requestData,
274
- requestMetadata,
275
- requestClass: thisProto.AddDataToUserLanguageModelRequest,
276
- responseClass: googleProtobuf000.Empty
277
- });
278
- },
279
- /**
280
- * Unary call: /ondewo.s2t.Speech2Text/TrainUserLanguageModel
281
- *
282
- * @param requestMessage Request message
283
- * @param requestMetadata Request metadata
284
- * @returns Observable<GrpcEvent<googleProtobuf000.Empty>>
285
- */
286
- trainUserLanguageModel: (requestData, requestMetadata = new GrpcMetadata()) => {
287
- return this.handler.handle({
288
- type: GrpcCallType.unary,
289
- client: this.client,
290
- path: '/ondewo.s2t.Speech2Text/TrainUserLanguageModel',
291
- requestData,
292
- requestMetadata,
293
- requestClass: thisProto.TrainUserLanguageModelRequest,
294
- responseClass: googleProtobuf000.Empty
295
- });
296
- }
297
- };
298
- this.client = clientFactory.createClient('ondewo.s2t.Speech2Text', settings);
299
- }
300
- /**
301
- * Unary call @/ondewo.s2t.Speech2Text/TranscribeFile
302
- *
303
- * @param requestMessage Request message
304
- * @param requestMetadata Request metadata
305
- * @returns Observable<thisProto.TranscribeFileResponse>
306
- */
307
- transcribeFile(requestData, requestMetadata = new GrpcMetadata()) {
308
- return this.$raw
309
- .transcribeFile(requestData, requestMetadata)
310
- .pipe(throwStatusErrors(), takeMessages());
311
- }
312
- /**
313
- * Bidirectional streaming @/ondewo.s2t.Speech2Text/TranscribeStream
314
- *
315
- * @param requestMessage Request message
316
- * @param requestMetadata Request metadata
317
- * @returns Observable<thisProto.TranscribeStreamResponse>
318
- */
319
- transcribeStream(requestData, requestMetadata = new GrpcMetadata()) {
320
- return this.$raw
321
- .transcribeStream(requestData, requestMetadata)
322
- .pipe(throwStatusErrors(), takeMessages());
323
- }
324
- /**
325
- * Unary call @/ondewo.s2t.Speech2Text/GetS2tPipeline
326
- *
327
- * @param requestMessage Request message
328
- * @param requestMetadata Request metadata
329
- * @returns Observable<thisProto.Speech2TextConfig>
330
- */
331
- getS2tPipeline(requestData, requestMetadata = new GrpcMetadata()) {
332
- return this.$raw
333
- .getS2tPipeline(requestData, requestMetadata)
334
- .pipe(throwStatusErrors(), takeMessages());
335
- }
336
- /**
337
- * Unary call @/ondewo.s2t.Speech2Text/CreateS2tPipeline
338
- *
339
- * @param requestMessage Request message
340
- * @param requestMetadata Request metadata
341
- * @returns Observable<thisProto.S2tPipelineId>
342
- */
343
- createS2tPipeline(requestData, requestMetadata = new GrpcMetadata()) {
344
- return this.$raw
345
- .createS2tPipeline(requestData, requestMetadata)
346
- .pipe(throwStatusErrors(), takeMessages());
347
- }
348
- /**
349
- * Unary call @/ondewo.s2t.Speech2Text/DeleteS2tPipeline
350
- *
351
- * @param requestMessage Request message
352
- * @param requestMetadata Request metadata
353
- * @returns Observable<googleProtobuf000.Empty>
354
- */
355
- deleteS2tPipeline(requestData, requestMetadata = new GrpcMetadata()) {
356
- return this.$raw
357
- .deleteS2tPipeline(requestData, requestMetadata)
358
- .pipe(throwStatusErrors(), takeMessages());
359
- }
360
- /**
361
- * Unary call @/ondewo.s2t.Speech2Text/UpdateS2tPipeline
362
- *
363
- * @param requestMessage Request message
364
- * @param requestMetadata Request metadata
365
- * @returns Observable<googleProtobuf000.Empty>
366
- */
367
- updateS2tPipeline(requestData, requestMetadata = new GrpcMetadata()) {
368
- return this.$raw
369
- .updateS2tPipeline(requestData, requestMetadata)
370
- .pipe(throwStatusErrors(), takeMessages());
371
- }
372
- /**
373
- * Unary call @/ondewo.s2t.Speech2Text/ListS2tPipelines
374
- *
375
- * @param requestMessage Request message
376
- * @param requestMetadata Request metadata
377
- * @returns Observable<thisProto.ListS2tPipelinesResponse>
378
- */
379
- listS2tPipelines(requestData, requestMetadata = new GrpcMetadata()) {
380
- return this.$raw
381
- .listS2tPipelines(requestData, requestMetadata)
382
- .pipe(throwStatusErrors(), takeMessages());
383
- }
384
- /**
385
- * Unary call @/ondewo.s2t.Speech2Text/ListS2tLanguages
386
- *
387
- * @param requestMessage Request message
388
- * @param requestMetadata Request metadata
389
- * @returns Observable<thisProto.ListS2tLanguagesResponse>
390
- */
391
- listS2tLanguages(requestData, requestMetadata = new GrpcMetadata()) {
392
- return this.$raw
393
- .listS2tLanguages(requestData, requestMetadata)
394
- .pipe(throwStatusErrors(), takeMessages());
395
- }
396
- /**
397
- * Unary call @/ondewo.s2t.Speech2Text/ListS2tDomains
398
- *
399
- * @param requestMessage Request message
400
- * @param requestMetadata Request metadata
401
- * @returns Observable<thisProto.ListS2tDomainsResponse>
402
- */
403
- listS2tDomains(requestData, requestMetadata = new GrpcMetadata()) {
404
- return this.$raw
405
- .listS2tDomains(requestData, requestMetadata)
406
- .pipe(throwStatusErrors(), takeMessages());
407
- }
408
- /**
409
- * Unary call @/ondewo.s2t.Speech2Text/GetServiceInfo
410
- *
411
- * @param requestMessage Request message
412
- * @param requestMetadata Request metadata
413
- * @returns Observable<thisProto.S2TGetServiceInfoResponse>
414
- */
415
- getServiceInfo(requestData, requestMetadata = new GrpcMetadata()) {
416
- return this.$raw
417
- .getServiceInfo(requestData, requestMetadata)
418
- .pipe(throwStatusErrors(), takeMessages());
419
- }
420
- /**
421
- * Unary call @/ondewo.s2t.Speech2Text/ListS2tLanguageModels
422
- *
423
- * @param requestMessage Request message
424
- * @param requestMetadata Request metadata
425
- * @returns Observable<thisProto.ListS2tLanguageModelsResponse>
426
- */
427
- listS2tLanguageModels(requestData, requestMetadata = new GrpcMetadata()) {
428
- return this.$raw
429
- .listS2tLanguageModels(requestData, requestMetadata)
430
- .pipe(throwStatusErrors(), takeMessages());
431
- }
432
- /**
433
- * Unary call @/ondewo.s2t.Speech2Text/CreateUserLanguageModel
434
- *
435
- * @param requestMessage Request message
436
- * @param requestMetadata Request metadata
437
- * @returns Observable<googleProtobuf000.Empty>
438
- */
439
- createUserLanguageModel(requestData, requestMetadata = new GrpcMetadata()) {
440
- return this.$raw
441
- .createUserLanguageModel(requestData, requestMetadata)
442
- .pipe(throwStatusErrors(), takeMessages());
443
- }
444
- /**
445
- * Unary call @/ondewo.s2t.Speech2Text/DeleteUserLanguageModel
446
- *
447
- * @param requestMessage Request message
448
- * @param requestMetadata Request metadata
449
- * @returns Observable<googleProtobuf000.Empty>
450
- */
451
- deleteUserLanguageModel(requestData, requestMetadata = new GrpcMetadata()) {
452
- return this.$raw
453
- .deleteUserLanguageModel(requestData, requestMetadata)
454
- .pipe(throwStatusErrors(), takeMessages());
455
- }
456
- /**
457
- * Unary call @/ondewo.s2t.Speech2Text/AddDataToUserLanguageModel
458
- *
459
- * @param requestMessage Request message
460
- * @param requestMetadata Request metadata
461
- * @returns Observable<googleProtobuf000.Empty>
462
- */
463
- addDataToUserLanguageModel(requestData, requestMetadata = new GrpcMetadata()) {
464
- return this.$raw
465
- .addDataToUserLanguageModel(requestData, requestMetadata)
466
- .pipe(throwStatusErrors(), takeMessages());
467
- }
468
- /**
469
- * Unary call @/ondewo.s2t.Speech2Text/TrainUserLanguageModel
470
- *
471
- * @param requestMessage Request message
472
- * @param requestMetadata Request metadata
473
- * @returns Observable<googleProtobuf000.Empty>
474
- */
475
- trainUserLanguageModel(requestData, requestMetadata = new GrpcMetadata()) {
476
- return this.$raw
477
- .trainUserLanguageModel(requestData, requestMetadata)
478
- .pipe(throwStatusErrors(), takeMessages());
479
- }
480
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: Speech2TextClient, deps: [{ token: GRPC_SPEECH2_TEXT_CLIENT_SETTINGS, optional: true }, { token: GRPC_CLIENT_FACTORY }, { token: i1.GrpcHandler }], target: i0.ɵɵFactoryTarget.Injectable }); }
481
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: Speech2TextClient, providedIn: 'any' }); }
482
- }
483
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: Speech2TextClient, decorators: [{
484
- type: Injectable,
485
- args: [{ providedIn: 'any' }]
486
- }], ctorParameters: () => [{ type: undefined, decorators: [{
487
- type: Optional
488
- }, {
489
- type: Inject,
490
- args: [GRPC_SPEECH2_TEXT_CLIENT_SETTINGS]
491
- }] }, { type: undefined, decorators: [{
492
- type: Inject,
493
- args: [GRPC_CLIENT_FACTORY]
494
- }] }, { type: i1.GrpcHandler }] });
495
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlZWNoLXRvLXRleHQucGJzYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2FwaS9vbmRld28vczJ0L3NwZWVjaC10by10ZXh0LnBic2MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUNwQixjQUFjO0FBQ2QsRUFBRTtBQUNGLDJCQUEyQjtBQUMzQiw4Q0FBOEM7QUFDOUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFDTCxZQUFZLEVBSVosWUFBWSxFQUNiLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUNMLG1CQUFtQixFQUVuQixZQUFZLEVBQ1osaUJBQWlCLEVBQ2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxLQUFLLFNBQVMsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEtBQUssaUJBQWlCLE1BQU0sNEJBQTRCLENBQUM7QUFFaEUsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQUM1RTs7R0FFRztBQUVILE1BQU0sT0FBTyxpQkFBaUI7SUFzVTVCLFlBQ3lELFFBQWEsRUFDdkMsYUFBcUMsRUFDMUQsT0FBb0I7UUFBcEIsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQXRVOUI7Ozs7V0FJRztRQUNILFNBQUksR0FBRztZQUNMOzs7Ozs7ZUFNRztZQUNILGNBQWMsRUFBRSxDQUNkLFdBQTRDLEVBQzVDLGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBRSxFQUNxQixFQUFFO2dCQUMzRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO29CQUN6QixJQUFJLEVBQUUsWUFBWSxDQUFDLEtBQUs7b0JBQ3hCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtvQkFDbkIsSUFBSSxFQUFFLHdDQUF3QztvQkFDOUMsV0FBVztvQkFDWCxlQUFlO29CQUNmLFlBQVksRUFBRSxTQUFTLENBQUMscUJBQXFCO29CQUM3QyxhQUFhLEVBQUUsU0FBUyxDQUFDLHNCQUFzQjtpQkFDaEQsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNEOzs7Ozs7ZUFNRztZQUNILGdCQUFnQixFQUFFLENBQ2hCLFdBQTBELEVBQzFELGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBRSxFQUN1QixFQUFFO2dCQUM3RCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO29CQUN6QixJQUFJLEVBQUUsWUFBWSxDQUFDLFVBQVU7b0JBQzdCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtvQkFDbkIsSUFBSSxFQUFFLDBDQUEwQztvQkFDaEQsV0FBVztvQkFDWCxlQUFlO29CQUNmLFlBQVksRUFBRSxTQUFTLENBQUMsdUJBQXVCO29CQUMvQyxhQUFhLEVBQUUsU0FBUyxDQUFDLHdCQUF3QjtpQkFDbEQsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNEOzs7Ozs7ZUFNRztZQUNILGNBQWMsRUFBRSxDQUNkLFdBQW9DLEVBQ3BDLGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBRSxFQUNnQixFQUFFO2dCQUN0RCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO29CQUN6QixJQUFJLEVBQUUsWUFBWSxDQUFDLEtBQUs7b0JBQ3hCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtvQkFDbkIsSUFBSSxFQUFFLHdDQUF3QztvQkFDOUMsV0FBVztvQkFDWCxlQUFlO29CQUNmLFlBQVksRUFBRSxTQUFTLENBQUMsYUFBYTtvQkFDckMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxpQkFBaUI7aUJBQzNDLENBQUMsQ0FBQztZQUNMLENBQUM7WUFDRDs7Ozs7O2VBTUc7WUFDSCxpQkFBaUIsRUFBRSxDQUNqQixXQUF3QyxFQUN4QyxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUUsRUFDWSxFQUFFO2dCQUNsRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO29CQUN6QixJQUFJLEVBQUUsWUFBWSxDQUFDLEtBQUs7b0JBQ3hCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtvQkFDbkIsSUFBSSxFQUFFLDJDQUEyQztvQkFDakQsV0FBVztvQkFDWCxlQUFlO29CQUNmLFlBQVksRUFBRSxTQUFTLENBQUMsaUJBQWlCO29CQUN6QyxhQUFhLEVBQUUsU0FBUyxDQUFDLGFBQWE7aUJBQ3ZDLENBQUMsQ0FBQztZQUNMLENBQUM7WUFDRDs7Ozs7O2VBTUc7WUFDSCxpQkFBaUIsRUFBRSxDQUNqQixXQUFvQyxFQUNwQyxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUUsRUFDWSxFQUFFO2dCQUNsRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO29CQUN6QixJQUFJLEVBQUUsWUFBWSxDQUFDLEtBQUs7b0JBQ3hCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtvQkFDbkIsSUFBSSxFQUFFLDJDQUEyQztvQkFDakQsV0FBVztvQkFDWCxlQUFlO29CQUNmLFlBQVksRUFBRSxTQUFTLENBQUMsYUFBYTtvQkFDckMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLEtBQUs7aUJBQ3ZDLENBQUMsQ0FBQztZQUNMLENBQUM7WUFDRDs7Ozs7O2VBTUc7WUFDSCxpQkFBaUIsRUFBRSxDQUNqQixXQUF3QyxFQUN4QyxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUUsRUFDWSxFQUFFO2dCQUNsRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO29CQUN6QixJQUFJLEVBQUUsWUFBWSxDQUFDLEtBQUs7b0JBQ3hCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtvQkFDbkIsSUFBSSxFQUFFLDJDQUEyQztvQkFDakQsV0FBVztvQkFDWCxlQUFlO29CQUNmLFlBQVksRUFBRSxTQUFTLENBQUMsaUJBQWlCO29CQUN6QyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsS0FBSztpQkFDdkMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNEOzs7Ozs7ZUFNRztZQUNILGdCQUFnQixFQUFFLENBQ2hCLFdBQThDLEVBQzlDLGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBRSxFQUN1QixFQUFFO2dCQUM3RCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO29CQUN6QixJQUFJLEVBQUUsWUFBWSxDQUFDLEtBQUs7b0JBQ3hCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtvQkFDbkIsSUFBSSxFQUFFLDBDQUEwQztvQkFDaEQsV0FBVztvQkFDWCxlQUFlO29CQUNmLFlBQVksRUFBRSxTQUFTLENBQUMsdUJBQXVCO29CQUMvQyxhQUFhLEVBQUUsU0FBUyxDQUFDLHdCQUF3QjtpQkFDbEQsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNEOzs7Ozs7ZUFNRztZQUNILGdCQUFnQixFQUFFLENBQ2hCLFdBQThDLEVBQzlDLGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBRSxFQUN1QixFQUFFO2dCQUM3RCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO29CQUN6QixJQUFJLEVBQUUsWUFBWSxDQUFDLEtBQUs7b0JBQ3hCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtvQkFDbkIsSUFBSSxFQUFFLDBDQUEwQztvQkFDaEQsV0FBVztvQkFDWCxlQUFlO29CQUNmLFlBQVksRUFBRSxTQUFTLENBQUMsdUJBQXVCO29CQUMvQyxhQUFhLEVBQUUsU0FBUyxDQUFDLHdCQUF3QjtpQkFDbEQsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNEOzs7Ozs7ZUFNRztZQUNILGNBQWMsRUFBRSxDQUNkLFdBQTRDLEVBQzVDLGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBRSxFQUNxQixFQUFFO2dCQUMzRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO29CQUN6QixJQUFJLEVBQUUsWUFBWSxDQUFDLEtBQUs7b0JBQ3hCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtvQkFDbkIsSUFBSSxFQUFFLHdDQUF3QztvQkFDOUMsV0FBVztvQkFDWCxlQUFlO29CQUNmLFlBQVksRUFBRSxTQUFTLENBQUMscUJBQXFCO29CQUM3QyxhQUFhLEVBQUUsU0FBUyxDQUFDLHNCQUFzQjtpQkFDaEQsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNEOzs7Ozs7ZUFNRztZQUNILGNBQWMsRUFBRSxDQUNkLFdBQW9DLEVBQ3BDLGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBRSxFQUN3QixFQUFFO2dCQUM5RCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO29CQUN6QixJQUFJLEVBQUUsWUFBWSxDQUFDLEtBQUs7b0JBQ3hCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtvQkFDbkIsSUFBSSxFQUFFLHdDQUF3QztvQkFDOUMsV0FBVztvQkFDWCxlQUFlO29CQUNmLFlBQVksRUFBRSxpQkFBaUIsQ0FBQyxLQUFLO29CQUNyQyxhQUFhLEVBQUUsU0FBUyxDQUFDLHlCQUF5QjtpQkFDbkQsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNEOzs7Ozs7ZUFNRztZQUNILHFCQUFxQixFQUFFLENBQ3JCLFdBQW1ELEVBQ25ELGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBRSxFQUM0QixFQUFFO2dCQUNsRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO29CQUN6QixJQUFJLEVBQUUsWUFBWSxDQUFDLEtBQUs7b0JBQ3hCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtvQkFDbkIsSUFBSSxFQUFFLCtDQUErQztvQkFDckQsV0FBVztvQkFDWCxlQUFlO29CQUNmLFlBQVksRUFBRSxTQUFTLENBQUMsNEJBQTRCO29CQUNwRCxhQUFhLEVBQUUsU0FBUyxDQUFDLDZCQUE2QjtpQkFDdkQsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNEOzs7Ozs7ZUFNRztZQUNILHVCQUF1QixFQUFFLENBQ3ZCLFdBQXFELEVBQ3JELGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBRSxFQUNZLEVBQUU7Z0JBQ2xELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7b0JBQ3pCLElBQUksRUFBRSxZQUFZLENBQUMsS0FBSztvQkFDeEIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO29CQUNuQixJQUFJLEVBQUUsaURBQWlEO29CQUN2RCxXQUFXO29CQUNYLGVBQWU7b0JBQ2YsWUFBWSxFQUFFLFNBQVMsQ0FBQyw4QkFBOEI7b0JBQ3RELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxLQUFLO2lCQUN2QyxDQUFDLENBQUM7WUFDTCxDQUFDO1lBQ0Q7Ozs7OztlQU1HO1lBQ0gsdUJBQXVCLEVBQUUsQ0FDdkIsV0FBcUQsRUFDckQsZUFBZSxHQUFHLElBQUksWUFBWSxFQUFFLEVBQ1ksRUFBRTtnQkFDbEQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztvQkFDekIsSUFBSSxFQUFFLFlBQVksQ0FBQyxLQUFLO29CQUN4QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07b0JBQ25CLElBQUksRUFBRSxpREFBaUQ7b0JBQ3ZELFdBQVc7b0JBQ1gsZUFBZTtvQkFDZixZQUFZLEVBQUUsU0FBUyxDQUFDLDhCQUE4QjtvQkFDdEQsYUFBYSxFQUFFLGlCQUFpQixDQUFDLEtBQUs7aUJBQ3ZDLENBQUMsQ0FBQztZQUNMLENBQUM7WUFDRDs7Ozs7O2VBTUc7WUFDSCwwQkFBMEIsRUFBRSxDQUMxQixXQUF3RCxFQUN4RCxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUUsRUFDWSxFQUFFO2dCQUNsRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO29CQUN6QixJQUFJLEVBQUUsWUFBWSxDQUFDLEtBQUs7b0JBQ3hCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtvQkFDbkIsSUFBSSxFQUFFLG9EQUFvRDtvQkFDMUQsV0FBVztvQkFDWCxlQUFlO29CQUNmLFlBQVksRUFBRSxTQUFTLENBQUMsaUNBQWlDO29CQUN6RCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsS0FBSztpQkFDdkMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNEOzs7Ozs7ZUFNRztZQUNILHNCQUFzQixFQUFFLENBQ3RCLFdBQW9ELEVBQ3BELGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBRSxFQUNZLEVBQUU7Z0JBQ2xELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7b0JBQ3pCLElBQUksRUFBRSxZQUFZLENBQUMsS0FBSztvQkFDeEIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO29CQUNuQixJQUFJLEVBQUUsZ0RBQWdEO29CQUN0RCxXQUFXO29CQUNYLGVBQWU7b0JBQ2YsWUFBWSxFQUFFLFNBQVMsQ0FBQyw2QkFBNkI7b0JBQ3JELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxLQUFLO2lCQUN2QyxDQUFDLENBQUM7WUFDTCxDQUFDO1NBQ0YsQ0FBQztRQU9BLElBQUksQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDLFlBQVksQ0FDdEMsd0JBQXdCLEVBQ3hCLFFBQVEsQ0FDVCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILGNBQWMsQ0FDWixXQUE0QyxFQUM1QyxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUU7UUFFcEMsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLGNBQWMsQ0FBQyxXQUFXLEVBQUUsZUFBZSxDQUFDO2FBQzVDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILGdCQUFnQixDQUNkLFdBQTBELEVBQzFELGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBRTtRQUVwQyxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLGVBQWUsQ0FBQzthQUM5QyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxjQUFjLENBQ1osV0FBb0MsRUFDcEMsZUFBZSxHQUFHLElBQUksWUFBWSxFQUFFO1FBRXBDLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixjQUFjLENBQUMsV0FBVyxFQUFFLGVBQWUsQ0FBQzthQUM1QyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxpQkFBaUIsQ0FDZixXQUF3QyxFQUN4QyxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUU7UUFFcEMsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxlQUFlLENBQUM7YUFDL0MsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsaUJBQWlCLENBQ2YsV0FBb0MsRUFDcEMsZUFBZSxHQUFHLElBQUksWUFBWSxFQUFFO1FBRXBDLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsZUFBZSxDQUFDO2FBQy9DLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILGlCQUFpQixDQUNmLFdBQXdDLEVBQ3hDLGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBRTtRQUVwQyxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsaUJBQWlCLENBQUMsV0FBVyxFQUFFLGVBQWUsQ0FBQzthQUMvQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxnQkFBZ0IsQ0FDZCxXQUE4QyxFQUM5QyxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUU7UUFFcEMsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxlQUFlLENBQUM7YUFDOUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsZ0JBQWdCLENBQ2QsV0FBOEMsRUFDOUMsZUFBZSxHQUFHLElBQUksWUFBWSxFQUFFO1FBRXBDLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsZUFBZSxDQUFDO2FBQzlDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILGNBQWMsQ0FDWixXQUE0QyxFQUM1QyxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUU7UUFFcEMsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLGNBQWMsQ0FBQyxXQUFXLEVBQUUsZUFBZSxDQUFDO2FBQzVDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILGNBQWMsQ0FDWixXQUFvQyxFQUNwQyxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUU7UUFFcEMsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLGNBQWMsQ0FBQyxXQUFXLEVBQUUsZUFBZSxDQUFDO2FBQzVDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILHFCQUFxQixDQUNuQixXQUFtRCxFQUNuRCxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUU7UUFFcEMsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxlQUFlLENBQUM7YUFDbkQsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsdUJBQXVCLENBQ3JCLFdBQXFELEVBQ3JELGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBRTtRQUVwQyxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsdUJBQXVCLENBQUMsV0FBVyxFQUFFLGVBQWUsQ0FBQzthQUNyRCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCx1QkFBdUIsQ0FDckIsV0FBcUQsRUFDckQsZUFBZSxHQUFHLElBQUksWUFBWSxFQUFFO1FBRXBDLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYix1QkFBdUIsQ0FBQyxXQUFXLEVBQUUsZUFBZSxDQUFDO2FBQ3JELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILDBCQUEwQixDQUN4QixXQUF3RCxFQUN4RCxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUU7UUFFcEMsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLDBCQUEwQixDQUFDLFdBQVcsRUFBRSxlQUFlLENBQUM7YUFDeEQsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsc0JBQXNCLENBQ3BCLFdBQW9ELEVBQ3BELGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBRTtRQUVwQyxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2Isc0JBQXNCLENBQUMsV0FBVyxFQUFFLGVBQWUsQ0FBQzthQUNwRCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7K0dBL2pCVSxpQkFBaUIsa0JBdVVOLGlDQUFpQyw2QkFDN0MsbUJBQW1CO21IQXhVbEIsaUJBQWlCLGNBREosS0FBSzs7NEZBQ2xCLGlCQUFpQjtrQkFEN0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUU7OzBCQXdVNUIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxpQ0FBaUM7OzBCQUNwRCxNQUFNOzJCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlICovXG4vKiBlc2xpbnQtZGlzYWJsZSAqL1xuLy8gQHRzLW5vY2hlY2tcbi8vXG4vLyBUSElTIElTIEEgR0VORVJBVEVEIEZJTEVcbi8vIERPIE5PVCBNT0RJRlkgSVQhIFlPVVIgQ0hBTkdFUyBXSUxMIEJFIExPU1RcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEdycGNDYWxsVHlwZSxcbiAgR3JwY0NsaWVudCxcbiAgR3JwY0NsaWVudEZhY3RvcnksXG4gIEdycGNFdmVudCxcbiAgR3JwY01ldGFkYXRhXG59IGZyb20gJ0BuZ3gtZ3JwYy9jb21tb24nO1xuaW1wb3J0IHtcbiAgR1JQQ19DTElFTlRfRkFDVE9SWSxcbiAgR3JwY0hhbmRsZXIsXG4gIHRha2VNZXNzYWdlcyxcbiAgdGhyb3dTdGF0dXNFcnJvcnNcbn0gZnJvbSAnQG5neC1ncnBjL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0ICogYXMgdGhpc1Byb3RvIGZyb20gJy4vc3BlZWNoLXRvLXRleHQucGInO1xuaW1wb3J0ICogYXMgZ29vZ2xlUHJvdG9idWYwMDAgZnJvbSAnQG5neC1ncnBjL3dlbGwta25vd24tdHlwZXMnO1xuaW1wb3J0ICogYXMgZ29vZ2xlUHJvdG9idWYwMDEgZnJvbSAnQG5neC1ncnBjL3dlbGwta25vd24tdHlwZXMnO1xuaW1wb3J0IHsgR1JQQ19TUEVFQ0gyX1RFWFRfQ0xJRU5UX1NFVFRJTkdTIH0gZnJvbSAnLi9zcGVlY2gtdG8tdGV4dC5wYmNvbmYnO1xuLyoqXG4gKiBTZXJ2aWNlIGNsaWVudCBpbXBsZW1lbnRhdGlvbiBmb3Igb25kZXdvLnMydC5TcGVlY2gyVGV4dFxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdhbnknIH0pXG5leHBvcnQgY2xhc3MgU3BlZWNoMlRleHRDbGllbnQge1xuICBwcml2YXRlIGNsaWVudDogR3JwY0NsaWVudDxhbnk+O1xuXG4gIC8qKlxuICAgKiBSYXcgUlBDIGltcGxlbWVudGF0aW9uIGZvciBlYWNoIHNlcnZpY2UgY2xpZW50IG1ldGhvZC5cbiAgICogVGhlIHJhdyBtZXRob2RzIHByb3ZpZGUgbW9yZSBjb250cm9sIG9uIHRoZSBpbmNvbWluZyBkYXRhIGFuZCBldmVudHMuIEUuZy4gdGhleSBjYW4gYmUgdXNlZnVsIHRvIHJlYWQgc3RhdHVzIGBPS2AgbWV0YWRhdGEuXG4gICAqIEF0dGVudGlvbjogdGhlc2UgbWV0aG9kcyBkbyBub3QgdGhyb3cgZXJyb3JzIHdoZW4gbm9uLXplcm8gc3RhdHVzIGNvZGVzIGFyZSByZWNlaXZlZC5cbiAgICovXG4gICRyYXcgPSB7XG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL29uZGV3by5zMnQuU3BlZWNoMlRleHQvVHJhbnNjcmliZUZpbGVcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uVHJhbnNjcmliZUZpbGVSZXNwb25zZT4+XG4gICAgICovXG4gICAgdHJhbnNjcmliZUZpbGU6IChcbiAgICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uVHJhbnNjcmliZUZpbGVSZXF1ZXN0LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLlRyYW5zY3JpYmVGaWxlUmVzcG9uc2U+PiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVyLmhhbmRsZSh7XG4gICAgICAgIHR5cGU6IEdycGNDYWxsVHlwZS51bmFyeSxcbiAgICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgICAgcGF0aDogJy9vbmRld28uczJ0LlNwZWVjaDJUZXh0L1RyYW5zY3JpYmVGaWxlJyxcbiAgICAgICAgcmVxdWVzdERhdGEsXG4gICAgICAgIHJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgcmVxdWVzdENsYXNzOiB0aGlzUHJvdG8uVHJhbnNjcmliZUZpbGVSZXF1ZXN0LFxuICAgICAgICByZXNwb25zZUNsYXNzOiB0aGlzUHJvdG8uVHJhbnNjcmliZUZpbGVSZXNwb25zZVxuICAgICAgfSk7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBCaWRpcmVjdGlvbmFsIHN0cmVhbWluZzogL29uZGV3by5zMnQuU3BlZWNoMlRleHQvVHJhbnNjcmliZVN0cmVhbVxuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5UcmFuc2NyaWJlU3RyZWFtUmVzcG9uc2U+PlxuICAgICAqL1xuICAgIHRyYW5zY3JpYmVTdHJlYW06IChcbiAgICAgIHJlcXVlc3REYXRhOiBPYnNlcnZhYmxlPHRoaXNQcm90by5UcmFuc2NyaWJlU3RyZWFtUmVxdWVzdD4sXG4gICAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgICApOiBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uVHJhbnNjcmliZVN0cmVhbVJlc3BvbnNlPj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUuYmlkaVN0cmVhbSxcbiAgICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgICAgcGF0aDogJy9vbmRld28uczJ0LlNwZWVjaDJUZXh0L1RyYW5zY3JpYmVTdHJlYW0nLFxuICAgICAgICByZXF1ZXN0RGF0YSxcbiAgICAgICAgcmVxdWVzdE1ldGFkYXRhLFxuICAgICAgICByZXF1ZXN0Q2xhc3M6IHRoaXNQcm90by5UcmFuc2NyaWJlU3RyZWFtUmVxdWVzdCxcbiAgICAgICAgcmVzcG9uc2VDbGFzczogdGhpc1Byb3RvLlRyYW5zY3JpYmVTdHJlYW1SZXNwb25zZVxuICAgICAgfSk7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBVbmFyeSBjYWxsOiAvb25kZXdvLnMydC5TcGVlY2gyVGV4dC9HZXRTMnRQaXBlbGluZVxuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5TcGVlY2gyVGV4dENvbmZpZz4+XG4gICAgICovXG4gICAgZ2V0UzJ0UGlwZWxpbmU6IChcbiAgICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uUzJ0UGlwZWxpbmVJZCxcbiAgICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICAgICk6IE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5TcGVlY2gyVGV4dENvbmZpZz4+ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZXIuaGFuZGxlKHtcbiAgICAgICAgdHlwZTogR3JwY0NhbGxUeXBlLnVuYXJ5LFxuICAgICAgICBjbGllbnQ6IHRoaXMuY2xpZW50LFxuICAgICAgICBwYXRoOiAnL29uZGV3by5zMnQuU3BlZWNoMlRleHQvR2V0UzJ0UGlwZWxpbmUnLFxuICAgICAgICByZXF1ZXN0RGF0YSxcbiAgICAgICAgcmVxdWVzdE1ldGFkYXRhLFxuICAgICAgICByZXF1ZXN0Q2xhc3M6IHRoaXNQcm90by5TMnRQaXBlbGluZUlkLFxuICAgICAgICByZXNwb25zZUNsYXNzOiB0aGlzUHJvdG8uU3BlZWNoMlRleHRDb25maWdcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL29uZGV3by5zMnQuU3BlZWNoMlRleHQvQ3JlYXRlUzJ0UGlwZWxpbmVcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uUzJ0UGlwZWxpbmVJZD4+XG4gICAgICovXG4gICAgY3JlYXRlUzJ0UGlwZWxpbmU6IChcbiAgICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uU3BlZWNoMlRleHRDb25maWcsXG4gICAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgICApOiBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uUzJ0UGlwZWxpbmVJZD4+ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZXIuaGFuZGxlKHtcbiAgICAgICAgdHlwZTogR3JwY0NhbGxUeXBlLnVuYXJ5LFxuICAgICAgICBjbGllbnQ6IHRoaXMuY2xpZW50LFxuICAgICAgICBwYXRoOiAnL29uZGV3by5zMnQuU3BlZWNoMlRleHQvQ3JlYXRlUzJ0UGlwZWxpbmUnLFxuICAgICAgICByZXF1ZXN0RGF0YSxcbiAgICAgICAgcmVxdWVzdE1ldGFkYXRhLFxuICAgICAgICByZXF1ZXN0Q2xhc3M6IHRoaXNQcm90by5TcGVlY2gyVGV4dENvbmZpZyxcbiAgICAgICAgcmVzcG9uc2VDbGFzczogdGhpc1Byb3RvLlMydFBpcGVsaW5lSWRcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL29uZGV3by5zMnQuU3BlZWNoMlRleHQvRGVsZXRlUzJ0UGlwZWxpbmVcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDxnb29nbGVQcm90b2J1ZjAwMC5FbXB0eT4+XG4gICAgICovXG4gICAgZGVsZXRlUzJ0UGlwZWxpbmU6IChcbiAgICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uUzJ0UGlwZWxpbmVJZCxcbiAgICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICAgICk6IE9ic2VydmFibGU8R3JwY0V2ZW50PGdvb2dsZVByb3RvYnVmMDAwLkVtcHR5Pj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLnMydC5TcGVlY2gyVGV4dC9EZWxldGVTMnRQaXBlbGluZScsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogdGhpc1Byb3RvLlMydFBpcGVsaW5lSWQsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IGdvb2dsZVByb3RvYnVmMDAwLkVtcHR5XG4gICAgICB9KTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9vbmRld28uczJ0LlNwZWVjaDJUZXh0L1VwZGF0ZVMydFBpcGVsaW5lXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8Z29vZ2xlUHJvdG9idWYwMDAuRW1wdHk+PlxuICAgICAqL1xuICAgIHVwZGF0ZVMydFBpcGVsaW5lOiAoXG4gICAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLlNwZWVjaDJUZXh0Q29uZmlnLFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8Z29vZ2xlUHJvdG9idWYwMDAuRW1wdHk+PiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVyLmhhbmRsZSh7XG4gICAgICAgIHR5cGU6IEdycGNDYWxsVHlwZS51bmFyeSxcbiAgICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgICAgcGF0aDogJy9vbmRld28uczJ0LlNwZWVjaDJUZXh0L1VwZGF0ZVMydFBpcGVsaW5lJyxcbiAgICAgICAgcmVxdWVzdERhdGEsXG4gICAgICAgIHJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgcmVxdWVzdENsYXNzOiB0aGlzUHJvdG8uU3BlZWNoMlRleHRDb25maWcsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IGdvb2dsZVByb3RvYnVmMDAwLkVtcHR5XG4gICAgICB9KTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9vbmRld28uczJ0LlNwZWVjaDJUZXh0L0xpc3RTMnRQaXBlbGluZXNcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uTGlzdFMydFBpcGVsaW5lc1Jlc3BvbnNlPj5cbiAgICAgKi9cbiAgICBsaXN0UzJ0UGlwZWxpbmVzOiAoXG4gICAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkxpc3RTMnRQaXBlbGluZXNSZXF1ZXN0LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLkxpc3RTMnRQaXBlbGluZXNSZXNwb25zZT4+ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZXIuaGFuZGxlKHtcbiAgICAgICAgdHlwZTogR3JwY0NhbGxUeXBlLnVuYXJ5LFxuICAgICAgICBjbGllbnQ6IHRoaXMuY2xpZW50LFxuICAgICAgICBwYXRoOiAnL29uZGV3by5zMnQuU3BlZWNoMlRleHQvTGlzdFMydFBpcGVsaW5lcycsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogdGhpc1Byb3RvLkxpc3RTMnRQaXBlbGluZXNSZXF1ZXN0LFxuICAgICAgICByZXNwb25zZUNsYXNzOiB0aGlzUHJvdG8uTGlzdFMydFBpcGVsaW5lc1Jlc3BvbnNlXG4gICAgICB9KTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9vbmRld28uczJ0LlNwZWVjaDJUZXh0L0xpc3RTMnRMYW5ndWFnZXNcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uTGlzdFMydExhbmd1YWdlc1Jlc3BvbnNlPj5cbiAgICAgKi9cbiAgICBsaXN0UzJ0TGFuZ3VhZ2VzOiAoXG4gICAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkxpc3RTMnRMYW5ndWFnZXNSZXF1ZXN0LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLkxpc3RTMnRMYW5ndWFnZXNSZXNwb25zZT4+ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZXIuaGFuZGxlKHtcbiAgICAgICAgdHlwZTogR3JwY0NhbGxUeXBlLnVuYXJ5LFxuICAgICAgICBjbGllbnQ6IHRoaXMuY2xpZW50LFxuICAgICAgICBwYXRoOiAnL29uZGV3by5zMnQuU3BlZWNoMlRleHQvTGlzdFMydExhbmd1YWdlcycsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogdGhpc1Byb3RvLkxpc3RTMnRMYW5ndWFnZXNSZXF1ZXN0LFxuICAgICAgICByZXNwb25zZUNsYXNzOiB0aGlzUHJvdG8uTGlzdFMydExhbmd1YWdlc1Jlc3BvbnNlXG4gICAgICB9KTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9vbmRld28uczJ0LlNwZWVjaDJUZXh0L0xpc3RTMnREb21haW5zXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8dGhpc1Byb3RvLkxpc3RTMnREb21haW5zUmVzcG9uc2U+PlxuICAgICAqL1xuICAgIGxpc3RTMnREb21haW5zOiAoXG4gICAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkxpc3RTMnREb21haW5zUmVxdWVzdCxcbiAgICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICAgICk6IE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5MaXN0UzJ0RG9tYWluc1Jlc3BvbnNlPj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLnMydC5TcGVlY2gyVGV4dC9MaXN0UzJ0RG9tYWlucycsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogdGhpc1Byb3RvLkxpc3RTMnREb21haW5zUmVxdWVzdCxcbiAgICAgICAgcmVzcG9uc2VDbGFzczogdGhpc1Byb3RvLkxpc3RTMnREb21haW5zUmVzcG9uc2VcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL29uZGV3by5zMnQuU3BlZWNoMlRleHQvR2V0U2VydmljZUluZm9cbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uUzJUR2V0U2VydmljZUluZm9SZXNwb25zZT4+XG4gICAgICovXG4gICAgZ2V0U2VydmljZUluZm86IChcbiAgICAgIHJlcXVlc3REYXRhOiBnb29nbGVQcm90b2J1ZjAwMC5FbXB0eSxcbiAgICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICAgICk6IE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5TMlRHZXRTZXJ2aWNlSW5mb1Jlc3BvbnNlPj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLnMydC5TcGVlY2gyVGV4dC9HZXRTZXJ2aWNlSW5mbycsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogZ29vZ2xlUHJvdG9idWYwMDAuRW1wdHksXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IHRoaXNQcm90by5TMlRHZXRTZXJ2aWNlSW5mb1Jlc3BvbnNlXG4gICAgICB9KTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9vbmRld28uczJ0LlNwZWVjaDJUZXh0L0xpc3RTMnRMYW5ndWFnZU1vZGVsc1xuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8R3JwY0V2ZW50PHRoaXNQcm90by5MaXN0UzJ0TGFuZ3VhZ2VNb2RlbHNSZXNwb25zZT4+XG4gICAgICovXG4gICAgbGlzdFMydExhbmd1YWdlTW9kZWxzOiAoXG4gICAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkxpc3RTMnRMYW5ndWFnZU1vZGVsc1JlcXVlc3QsXG4gICAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgICApOiBPYnNlcnZhYmxlPEdycGNFdmVudDx0aGlzUHJvdG8uTGlzdFMydExhbmd1YWdlTW9kZWxzUmVzcG9uc2U+PiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVyLmhhbmRsZSh7XG4gICAgICAgIHR5cGU6IEdycGNDYWxsVHlwZS51bmFyeSxcbiAgICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgICAgcGF0aDogJy9vbmRld28uczJ0LlNwZWVjaDJUZXh0L0xpc3RTMnRMYW5ndWFnZU1vZGVscycsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogdGhpc1Byb3RvLkxpc3RTMnRMYW5ndWFnZU1vZGVsc1JlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IHRoaXNQcm90by5MaXN0UzJ0TGFuZ3VhZ2VNb2RlbHNSZXNwb25zZVxuICAgICAgfSk7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBVbmFyeSBjYWxsOiAvb25kZXdvLnMydC5TcGVlY2gyVGV4dC9DcmVhdGVVc2VyTGFuZ3VhZ2VNb2RlbFxuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8R3JwY0V2ZW50PGdvb2dsZVByb3RvYnVmMDAwLkVtcHR5Pj5cbiAgICAgKi9cbiAgICBjcmVhdGVVc2VyTGFuZ3VhZ2VNb2RlbDogKFxuICAgICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5DcmVhdGVVc2VyTGFuZ3VhZ2VNb2RlbFJlcXVlc3QsXG4gICAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgICApOiBPYnNlcnZhYmxlPEdycGNFdmVudDxnb29nbGVQcm90b2J1ZjAwMC5FbXB0eT4+ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZXIuaGFuZGxlKHtcbiAgICAgICAgdHlwZTogR3JwY0NhbGxUeXBlLnVuYXJ5LFxuICAgICAgICBjbGllbnQ6IHRoaXMuY2xpZW50LFxuICAgICAgICBwYXRoOiAnL29uZGV3by5zMnQuU3BlZWNoMlRleHQvQ3JlYXRlVXNlckxhbmd1YWdlTW9kZWwnLFxuICAgICAgICByZXF1ZXN0RGF0YSxcbiAgICAgICAgcmVxdWVzdE1ldGFkYXRhLFxuICAgICAgICByZXF1ZXN0Q2xhc3M6IHRoaXNQcm90by5DcmVhdGVVc2VyTGFuZ3VhZ2VNb2RlbFJlcXVlc3QsXG4gICAgICAgIHJlc3BvbnNlQ2xhc3M6IGdvb2dsZVByb3RvYnVmMDAwLkVtcHR5XG4gICAgICB9KTtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFVuYXJ5IGNhbGw6IC9vbmRld28uczJ0LlNwZWVjaDJUZXh0L0RlbGV0ZVVzZXJMYW5ndWFnZU1vZGVsXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8Z29vZ2xlUHJvdG9idWYwMDAuRW1wdHk+PlxuICAgICAqL1xuICAgIGRlbGV0ZVVzZXJMYW5ndWFnZU1vZGVsOiAoXG4gICAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkRlbGV0ZVVzZXJMYW5ndWFnZU1vZGVsUmVxdWVzdCxcbiAgICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICAgICk6IE9ic2VydmFibGU8R3JwY0V2ZW50PGdvb2dsZVByb3RvYnVmMDAwLkVtcHR5Pj4gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlci5oYW5kbGUoe1xuICAgICAgICB0eXBlOiBHcnBjQ2FsbFR5cGUudW5hcnksXG4gICAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICAgIHBhdGg6ICcvb25kZXdvLnMydC5TcGVlY2gyVGV4dC9EZWxldGVVc2VyTGFuZ3VhZ2VNb2RlbCcsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogdGhpc1Byb3RvLkRlbGV0ZVVzZXJMYW5ndWFnZU1vZGVsUmVxdWVzdCxcbiAgICAgICAgcmVzcG9uc2VDbGFzczogZ29vZ2xlUHJvdG9idWYwMDAuRW1wdHlcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogVW5hcnkgY2FsbDogL29uZGV3by5zMnQuU3BlZWNoMlRleHQvQWRkRGF0YVRvVXNlckxhbmd1YWdlTW9kZWxcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEdycGNFdmVudDxnb29nbGVQcm90b2J1ZjAwMC5FbXB0eT4+XG4gICAgICovXG4gICAgYWRkRGF0YVRvVXNlckxhbmd1YWdlTW9kZWw6IChcbiAgICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uQWRkRGF0YVRvVXNlckxhbmd1YWdlTW9kZWxSZXF1ZXN0LFxuICAgICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICAgKTogT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8Z29vZ2xlUHJvdG9idWYwMDAuRW1wdHk+PiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVyLmhhbmRsZSh7XG4gICAgICAgIHR5cGU6IEdycGNDYWxsVHlwZS51bmFyeSxcbiAgICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgICAgcGF0aDogJy9vbmRld28uczJ0LlNwZWVjaDJUZXh0L0FkZERhdGFUb1VzZXJMYW5ndWFnZU1vZGVsJyxcbiAgICAgICAgcmVxdWVzdERhdGEsXG4gICAgICAgIHJlcXVlc3RNZXRhZGF0YSxcbiAgICAgICAgcmVxdWVzdENsYXNzOiB0aGlzUHJvdG8uQWRkRGF0YVRvVXNlckxhbmd1YWdlTW9kZWxSZXF1ZXN0LFxuICAgICAgICByZXNwb25zZUNsYXNzOiBnb29nbGVQcm90b2J1ZjAwMC5FbXB0eVxuICAgICAgfSk7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBVbmFyeSBjYWxsOiAvb25kZXdvLnMydC5TcGVlY2gyVGV4dC9UcmFpblVzZXJMYW5ndWFnZU1vZGVsXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxHcnBjRXZlbnQ8Z29vZ2xlUHJvdG9idWYwMDAuRW1wdHk+PlxuICAgICAqL1xuICAgIHRyYWluVXNlckxhbmd1YWdlTW9kZWw6IChcbiAgICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uVHJhaW5Vc2VyTGFuZ3VhZ2VNb2RlbFJlcXVlc3QsXG4gICAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgICApOiBPYnNlcnZhYmxlPEdycGNFdmVudDxnb29nbGVQcm90b2J1ZjAwMC5FbXB0eT4+ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZXIuaGFuZGxlKHtcbiAgICAgICAgdHlwZTogR3JwY0NhbGxUeXBlLnVuYXJ5LFxuICAgICAgICBjbGllbnQ6IHRoaXMuY2xpZW50LFxuICAgICAgICBwYXRoOiAnL29uZGV3by5zMnQuU3BlZWNoMlRleHQvVHJhaW5Vc2VyTGFuZ3VhZ2VNb2RlbCcsXG4gICAgICAgIHJlcXVlc3REYXRhLFxuICAgICAgICByZXF1ZXN0TWV0YWRhdGEsXG4gICAgICAgIHJlcXVlc3RDbGFzczogdGhpc1Byb3RvLlRyYWluVXNlckxhbmd1YWdlTW9kZWxSZXF1ZXN0LFxuICAgICAgICByZXNwb25zZUNsYXNzOiBnb29nbGVQcm90b2J1ZjAwMC5FbXB0eVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoR1JQQ19TUEVFQ0gyX1RFWFRfQ0xJRU5UX1NFVFRJTkdTKSBzZXR0aW5nczogYW55LFxuICAgIEBJbmplY3QoR1JQQ19DTElFTlRfRkFDVE9SWSkgY2xpZW50RmFjdG9yeTogR3JwY0NsaWVudEZhY3Rvcnk8YW55PixcbiAgICBwcml2YXRlIGhhbmRsZXI6IEdycGNIYW5kbGVyXG4gICkge1xuICAgIHRoaXMuY2xpZW50ID0gY2xpZW50RmFjdG9yeS5jcmVhdGVDbGllbnQoXG4gICAgICAnb25kZXdvLnMydC5TcGVlY2gyVGV4dCcsXG4gICAgICBzZXR0aW5nc1xuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL29uZGV3by5zMnQuU3BlZWNoMlRleHQvVHJhbnNjcmliZUZpbGVcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTx0aGlzUHJvdG8uVHJhbnNjcmliZUZpbGVSZXNwb25zZT5cbiAgICovXG4gIHRyYW5zY3JpYmVGaWxlKFxuICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uVHJhbnNjcmliZUZpbGVSZXF1ZXN0LFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPHRoaXNQcm90by5UcmFuc2NyaWJlRmlsZVJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuJHJhd1xuICAgICAgLnRyYW5zY3JpYmVGaWxlKHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogQmlkaXJlY3Rpb25hbCBzdHJlYW1pbmcgQC9vbmRld28uczJ0LlNwZWVjaDJUZXh0L1RyYW5zY3JpYmVTdHJlYW1cbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTx0aGlzUHJvdG8uVHJhbnNjcmliZVN0cmVhbVJlc3BvbnNlPlxuICAgKi9cbiAgdHJhbnNjcmliZVN0cmVhbShcbiAgICByZXF1ZXN0RGF0YTogT2JzZXJ2YWJsZTx0aGlzUHJvdG8uVHJhbnNjcmliZVN0cmVhbVJlcXVlc3Q+LFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPHRoaXNQcm90by5UcmFuc2NyaWJlU3RyZWFtUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy4kcmF3XG4gICAgICAudHJhbnNjcmliZVN0cmVhbShyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28uczJ0LlNwZWVjaDJUZXh0L0dldFMydFBpcGVsaW5lXG4gICAqXG4gICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8dGhpc1Byb3RvLlNwZWVjaDJUZXh0Q29uZmlnPlxuICAgKi9cbiAgZ2V0UzJ0UGlwZWxpbmUoXG4gICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5TMnRQaXBlbGluZUlkLFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPHRoaXNQcm90by5TcGVlY2gyVGV4dENvbmZpZz4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC5nZXRTMnRQaXBlbGluZShyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28uczJ0LlNwZWVjaDJUZXh0L0NyZWF0ZVMydFBpcGVsaW5lXG4gICAqXG4gICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8dGhpc1Byb3RvLlMydFBpcGVsaW5lSWQ+XG4gICAqL1xuICBjcmVhdGVTMnRQaXBlbGluZShcbiAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLlNwZWVjaDJUZXh0Q29uZmlnLFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPHRoaXNQcm90by5TMnRQaXBlbGluZUlkPiB7XG4gICAgcmV0dXJuIHRoaXMuJHJhd1xuICAgICAgLmNyZWF0ZVMydFBpcGVsaW5lKHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL29uZGV3by5zMnQuU3BlZWNoMlRleHQvRGVsZXRlUzJ0UGlwZWxpbmVcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxnb29nbGVQcm90b2J1ZjAwMC5FbXB0eT5cbiAgICovXG4gIGRlbGV0ZVMydFBpcGVsaW5lKFxuICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uUzJ0UGlwZWxpbmVJZCxcbiAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgKTogT2JzZXJ2YWJsZTxnb29nbGVQcm90b2J1ZjAwMC5FbXB0eT4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC5kZWxldGVTMnRQaXBlbGluZShyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28uczJ0LlNwZWVjaDJUZXh0L1VwZGF0ZVMydFBpcGVsaW5lXG4gICAqXG4gICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8Z29vZ2xlUHJvdG9idWYwMDAuRW1wdHk+XG4gICAqL1xuICB1cGRhdGVTMnRQaXBlbGluZShcbiAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLlNwZWVjaDJUZXh0Q29uZmlnLFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPGdvb2dsZVByb3RvYnVmMDAwLkVtcHR5PiB7XG4gICAgcmV0dXJuIHRoaXMuJHJhd1xuICAgICAgLnVwZGF0ZVMydFBpcGVsaW5lKHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL29uZGV3by5zMnQuU3BlZWNoMlRleHQvTGlzdFMydFBpcGVsaW5lc1xuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPHRoaXNQcm90by5MaXN0UzJ0UGlwZWxpbmVzUmVzcG9uc2U+XG4gICAqL1xuICBsaXN0UzJ0UGlwZWxpbmVzKFxuICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uTGlzdFMydFBpcGVsaW5lc1JlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8dGhpc1Byb3RvLkxpc3RTMnRQaXBlbGluZXNSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC5saXN0UzJ0UGlwZWxpbmVzKHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL29uZGV3by5zMnQuU3BlZWNoMlRleHQvTGlzdFMydExhbmd1YWdlc1xuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPHRoaXNQcm90by5MaXN0UzJ0TGFuZ3VhZ2VzUmVzcG9uc2U+XG4gICAqL1xuICBsaXN0UzJ0TGFuZ3VhZ2VzKFxuICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uTGlzdFMydExhbmd1YWdlc1JlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8dGhpc1Byb3RvLkxpc3RTMnRMYW5ndWFnZXNSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC5saXN0UzJ0TGFuZ3VhZ2VzKHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL29uZGV3by5zMnQuU3BlZWNoMlRleHQvTGlzdFMydERvbWFpbnNcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTx0aGlzUHJvdG8uTGlzdFMydERvbWFpbnNSZXNwb25zZT5cbiAgICovXG4gIGxpc3RTMnREb21haW5zKFxuICAgIHJlcXVlc3REYXRhOiB0aGlzUHJvdG8uTGlzdFMydERvbWFpbnNSZXF1ZXN0LFxuICAgIHJlcXVlc3RNZXRhZGF0YSA9IG5ldyBHcnBjTWV0YWRhdGEoKVxuICApOiBPYnNlcnZhYmxlPHRoaXNQcm90by5MaXN0UzJ0RG9tYWluc1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuJHJhd1xuICAgICAgLmxpc3RTMnREb21haW5zKHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5hcnkgY2FsbCBAL29uZGV3by5zMnQuU3BlZWNoMlRleHQvR2V0U2VydmljZUluZm9cbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTx0aGlzUHJvdG8uUzJUR2V0U2VydmljZUluZm9SZXNwb25zZT5cbiAgICovXG4gIGdldFNlcnZpY2VJbmZvKFxuICAgIHJlcXVlc3REYXRhOiBnb29nbGVQcm90b2J1ZjAwMC5FbXB0eSxcbiAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgKTogT2JzZXJ2YWJsZTx0aGlzUHJvdG8uUzJUR2V0U2VydmljZUluZm9SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC5nZXRTZXJ2aWNlSW5mbyhyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28uczJ0LlNwZWVjaDJUZXh0L0xpc3RTMnRMYW5ndWFnZU1vZGVsc1xuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdE1lc3NhZ2UgUmVxdWVzdCBtZXNzYWdlXG4gICAqIEBwYXJhbSByZXF1ZXN0TWV0YWRhdGEgUmVxdWVzdCBtZXRhZGF0YVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPHRoaXNQcm90by5MaXN0UzJ0TGFuZ3VhZ2VNb2RlbHNSZXNwb25zZT5cbiAgICovXG4gIGxpc3RTMnRMYW5ndWFnZU1vZGVscyhcbiAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkxpc3RTMnRMYW5ndWFnZU1vZGVsc1JlcXVlc3QsXG4gICAgcmVxdWVzdE1ldGFkYXRhID0gbmV3IEdycGNNZXRhZGF0YSgpXG4gICk6IE9ic2VydmFibGU8dGhpc1Byb3RvLkxpc3RTMnRMYW5ndWFnZU1vZGVsc1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuJHJhd1xuICAgICAgLmxpc3RTMnRMYW5ndWFnZU1vZGVscyhyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28uczJ0LlNwZWVjaDJUZXh0L0NyZWF0ZVVzZXJMYW5ndWFnZU1vZGVsXG4gICAqXG4gICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8Z29vZ2xlUHJvdG9idWYwMDAuRW1wdHk+XG4gICAqL1xuICBjcmVhdGVVc2VyTGFuZ3VhZ2VNb2RlbChcbiAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkNyZWF0ZVVzZXJMYW5ndWFnZU1vZGVsUmVxdWVzdCxcbiAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgKTogT2JzZXJ2YWJsZTxnb29nbGVQcm90b2J1ZjAwMC5FbXB0eT4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC5jcmVhdGVVc2VyTGFuZ3VhZ2VNb2RlbChyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28uczJ0LlNwZWVjaDJUZXh0L0RlbGV0ZVVzZXJMYW5ndWFnZU1vZGVsXG4gICAqXG4gICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8Z29vZ2xlUHJvdG9idWYwMDAuRW1wdHk+XG4gICAqL1xuICBkZWxldGVVc2VyTGFuZ3VhZ2VNb2RlbChcbiAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkRlbGV0ZVVzZXJMYW5ndWFnZU1vZGVsUmVxdWVzdCxcbiAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgKTogT2JzZXJ2YWJsZTxnb29nbGVQcm90b2J1ZjAwMC5FbXB0eT4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC5kZWxldGVVc2VyTGFuZ3VhZ2VNb2RlbChyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28uczJ0LlNwZWVjaDJUZXh0L0FkZERhdGFUb1VzZXJMYW5ndWFnZU1vZGVsXG4gICAqXG4gICAqIEBwYXJhbSByZXF1ZXN0TWVzc2FnZSBSZXF1ZXN0IG1lc3NhZ2VcbiAgICogQHBhcmFtIHJlcXVlc3RNZXRhZGF0YSBSZXF1ZXN0IG1ldGFkYXRhXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8Z29vZ2xlUHJvdG9idWYwMDAuRW1wdHk+XG4gICAqL1xuICBhZGREYXRhVG9Vc2VyTGFuZ3VhZ2VNb2RlbChcbiAgICByZXF1ZXN0RGF0YTogdGhpc1Byb3RvLkFkZERhdGFUb1VzZXJMYW5ndWFnZU1vZGVsUmVxdWVzdCxcbiAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgKTogT2JzZXJ2YWJsZTxnb29nbGVQcm90b2J1ZjAwMC5FbXB0eT4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC5hZGREYXRhVG9Vc2VyTGFuZ3VhZ2VNb2RlbChyZXF1ZXN0RGF0YSwgcmVxdWVzdE1ldGFkYXRhKVxuICAgICAgLnBpcGUodGhyb3dTdGF0dXNFcnJvcnMoKSwgdGFrZU1lc3NhZ2VzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuYXJ5IGNhbGwgQC9vbmRld28uczJ0LlNwZWVjaDJUZXh0L1RyYWluVXNlckxhbmd1YWdlTW9kZWxcbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3RNZXNzYWdlIFJlcXVlc3QgbWVzc2FnZVxuICAgKiBAcGFyYW0gcmVxdWVzdE1ldGFkYXRhIFJlcXVlc3QgbWV0YWRhdGFcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxnb29nbGVQcm90b2J1ZjAwMC5FbXB0eT5cbiAgICovXG4gIHRyYWluVXNlckxhbmd1YWdlTW9kZWwoXG4gICAgcmVxdWVzdERhdGE6IHRoaXNQcm90by5UcmFpblVzZXJMYW5ndWFnZU1vZGVsUmVxdWVzdCxcbiAgICByZXF1ZXN0TWV0YWRhdGEgPSBuZXcgR3JwY01ldGFkYXRhKClcbiAgKTogT2JzZXJ2YWJsZTxnb29nbGVQcm90b2J1ZjAwMC5FbXB0eT4ge1xuICAgIHJldHVybiB0aGlzLiRyYXdcbiAgICAgIC50cmFpblVzZXJMYW5ndWFnZU1vZGVsKHJlcXVlc3REYXRhLCByZXF1ZXN0TWV0YWRhdGEpXG4gICAgICAucGlwZSh0aHJvd1N0YXR1c0Vycm9ycygpLCB0YWtlTWVzc2FnZXMoKSk7XG4gIH1cbn1cbiJdfQ==