dcl-npc-toolkit 1.2.2-20240115125339.commit-cf7e18d → 1.2.2-20240201172751.commit-94c3031

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/ui.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import ReactEcs, { UiEntity } from '@dcl/sdk/react-ecs';
2
- import { buttonClick, displayButton, displayDialog, displayFirstButtonContainer, displayImage, displayPortrait, displaySecondButtonContainer, displaySkipable, getButtonText, getFontSize, getImage, getImageAtlasMapping, getLeftClickTheme, getPortrait, getSkipableTheme, getText, getTextColor, getTextPosition, getTheme, handleDialogClick, imageHeight, imageWidth, portraitHeight, portraitWidth, positionImageX, positionImageY, positionPortaitX, positionPortaitY, realHeight, realWidth, skipDialogs } from './dialog';
2
+ import { buttonClick, displayButton, displayDialog, displayFirstButtonContainer, displayImage, displayPortrait, displaySecondButtonContainer, displaySkipable, getButtonText, getbuttonSize, getFontSize, getButtonFontSize, getImage, getImageAtlasMapping, getLeftClickTheme, getPortrait, getSkipableTheme, getText, getTextColor, getTextPosition, getTheme, handleDialogClick, imageHeight, imageWidth, portraitHeight, portraitWidth, positionImageX, positionImageY, positionPortaitX, positionPortaitY, realHeight, realWidth, skipDialogs, getWindowHeight } from './dialog';
3
3
  import { sourcesComponentsCoordinates } from './uiResources';
4
4
  import { activeNPC } from './npc';
5
5
  export let lightTheme = 'https://decentraland.org/images/ui/light-atlas-v3.png';
@@ -45,11 +45,31 @@ export let darkButtonSection = {
45
45
  atlasHeight: sourcesComponentsCoordinates.atlasHeight,
46
46
  atlasWidth: sourcesComponentsCoordinates.atlasWidth
47
47
  };
48
+ export let darkButtonCorner = {
49
+ ...sourcesComponentsCoordinates.buttons.buttonFCorner,
50
+ atlasHeight: sourcesComponentsCoordinates.atlasHeight,
51
+ atlasWidth: sourcesComponentsCoordinates.atlasWidth
52
+ };
53
+ export let darkButtonEdge = {
54
+ ...sourcesComponentsCoordinates.buttons.buttonFEdge,
55
+ atlasHeight: sourcesComponentsCoordinates.atlasHeight,
56
+ atlasWidth: sourcesComponentsCoordinates.atlasWidth
57
+ };
48
58
  export let redButtonSection = {
49
59
  ...sourcesComponentsCoordinates.buttons.buttonE,
50
60
  atlasHeight: sourcesComponentsCoordinates.atlasHeight,
51
61
  atlasWidth: sourcesComponentsCoordinates.atlasWidth
52
62
  };
63
+ export let redButtonCorner = {
64
+ ...sourcesComponentsCoordinates.buttons.buttonECorner,
65
+ atlasHeight: sourcesComponentsCoordinates.atlasHeight,
66
+ atlasWidth: sourcesComponentsCoordinates.atlasWidth
67
+ };
68
+ export let redButtonEdge = {
69
+ ...sourcesComponentsCoordinates.buttons.buttonEEdge,
70
+ atlasHeight: sourcesComponentsCoordinates.atlasHeight,
71
+ atlasWidth: sourcesComponentsCoordinates.atlasWidth
72
+ };
53
73
  let modalScale = 1;
54
74
  let modelFontSizeScale = 1;
55
75
  let modalTextWrapScale = 1;
@@ -68,9 +88,12 @@ function getScaledFontSize(size) {
68
88
  function getScaledTextWrap(size) {
69
89
  return size * modalTextWrapScale;
70
90
  }
91
+ function getScaledButtonWidth(button) {
92
+ return typeof (getbuttonSize(button)) === 'number' ? getScaledSize(getbuttonSize(button)) : 'auto';
93
+ }
71
94
  export const NpcUtilsUi = () => {
72
95
  const width = getScaledSize(realWidth(700));
73
- const height = getScaledSize(realHeight(225));
96
+ const height = getScaledSize(realHeight(284));
74
97
  return (ReactEcs.createElement(UiEntity, { uiTransform: {
75
98
  display: displayDialog() ? 'flex' : 'none',
76
99
  flexDirection: 'column',
@@ -79,8 +102,9 @@ export const NpcUtilsUi = () => {
79
102
  positionType: 'absolute',
80
103
  position: { bottom: '10%', left: '50%' },
81
104
  margin: { top: -height / 2, left: -width / 2 },
105
+ padding: { top: 40, bottom: 40 },
82
106
  width,
83
- height
107
+ height: typeof (getWindowHeight()) === 'number' ? getWindowHeight() : 'auto'
84
108
  } },
85
109
  ReactEcs.createElement(UiEntity, { uiTransform: {
86
110
  positionType: 'absolute',
@@ -161,11 +185,16 @@ export const NpcUtilsUi = () => {
161
185
  uvs: getImageAtlasMapping(getLeftClickTheme())
162
186
  } }),
163
187
  ReactEcs.createElement(UiEntity, { uiTransform: {
188
+ height: 'auto',
189
+ width: 'auto',
164
190
  alignSelf: 'flex-start',
165
191
  alignItems: 'flex-start',
166
192
  justifyContent: 'flex-start',
167
193
  flexDirection: 'row',
168
- position: getTextPosition()
194
+ position: getTextPosition(),
195
+ display: 'flex',
196
+ flexGrow: 1,
197
+ minHeight: 100
169
198
  }, uiText: {
170
199
  value: getText(),
171
200
  color: getTextColor(),
@@ -173,111 +202,225 @@ export const NpcUtilsUi = () => {
173
202
  textAlign: 'middle-left'
174
203
  } }),
175
204
  ReactEcs.createElement(UiEntity, { uiTransform: {
176
- width: getScaledSize(300),
205
+ width: getScaledButtonWidth(450),
177
206
  alignItems: 'center',
178
207
  flexDirection: 'row',
179
- justifyContent: 'space-between',
208
+ justifyContent: 'center',
180
209
  display: displayFirstButtonContainer() ? 'flex' : 'none',
181
- position: { top: '20%' }
182
210
  } },
183
- ReactEcs.createElement(UiEntity, { uiTransform: {
184
- width: getScaledSize(150),
185
- height: getScaledSize(45),
186
- margin: { right: '5%' },
187
- flexDirection: 'row',
188
- alignItems: 'center',
189
- justifyContent: 'flex-start',
190
- alignContent: 'flex-start',
191
- display: displayButton(1) ? 'flex' : 'none'
192
- }, uiBackground: {
193
- textureMode: 'stretch',
194
- texture: {
195
- src: getTheme()
196
- },
197
- uvs: getImageAtlasMapping(darkButtonSection)
198
- }, uiText: { value: getButtonText(0), fontSize: getScaledFontSize(16) }, onMouseDown: () => {
211
+ ReactEcs.createElement(UiEntity, { onMouseDown: () => {
199
212
  buttonClick(0);
200
213
  } },
201
214
  ReactEcs.createElement(UiEntity, { uiTransform: {
202
- width: getScaledSize(25),
203
- height: getScaledSize(25),
204
- position: { left: getScaledSize(5) }
215
+ height: 'auto',
216
+ width: getScaledSize(12)
217
+ }, uiBackground: {
218
+ textureMode: 'stretch',
219
+ texture: {
220
+ src: getTheme()
221
+ },
222
+ uvs: getImageAtlasMapping(darkButtonCorner)
223
+ } }),
224
+ ReactEcs.createElement(UiEntity, { uiTransform: {
225
+ width: getScaledButtonWidth(0),
226
+ maxWidth: getScaledSize(300),
227
+ height: getScaledSize(45),
228
+ flexDirection: 'row',
229
+ alignItems: 'center',
230
+ justifyContent: 'flex-start',
231
+ alignContent: 'flex-start',
232
+ display: displayButton(1) ? 'flex' : 'none',
205
233
  }, uiBackground: {
206
234
  textureMode: 'stretch',
207
235
  texture: {
208
236
  src: getTheme()
209
237
  },
210
- uvs: getImageAtlasMapping(secondaryButtonSection)
238
+ uvs: getImageAtlasMapping(darkButtonSection)
239
+ } },
240
+ ReactEcs.createElement(UiEntity, { uiTransform: {
241
+ width: getScaledSize(25),
242
+ height: getScaledSize(25),
243
+ margin: { right: getScaledSize(5) },
244
+ positionType: 'absolute'
245
+ }, uiBackground: {
246
+ textureMode: 'stretch',
247
+ texture: {
248
+ src: getTheme()
249
+ },
250
+ uvs: getImageAtlasMapping(secondaryButtonSection)
251
+ } }),
252
+ ReactEcs.createElement(UiEntity, { uiTransform: {
253
+ width: 'auto',
254
+ overflow: 'hidden',
255
+ maxWidth: getScaledSize(217),
256
+ padding: { right: getScaledSize(5) },
257
+ margin: { left: getScaledSize(30) }
258
+ }, uiText: { value: getButtonText(0), fontSize: getScaledFontSize(getButtonFontSize(0)), textAlign: 'middle-left' } })),
259
+ ReactEcs.createElement(UiEntity, { uiTransform: {
260
+ height: 'auto',
261
+ width: getScaledSize(12),
262
+ margin: { right: '5%' },
263
+ }, uiBackground: {
264
+ textureMode: 'stretch',
265
+ texture: {
266
+ src: getTheme()
267
+ },
268
+ uvs: getImageAtlasMapping(darkButtonEdge)
211
269
  } })),
212
- ReactEcs.createElement(UiEntity, { uiTransform: {
213
- width: getScaledSize(150),
214
- height: getScaledSize(45),
215
- flexDirection: 'row',
216
- alignItems: 'center',
217
- justifyContent: 'flex-start',
218
- alignContent: 'flex-start',
219
- display: displayButton(2) ? 'flex' : 'none'
220
- }, uiBackground: {
221
- textureMode: 'stretch',
222
- texture: {
223
- src: getTheme()
224
- },
225
- uvs: getImageAtlasMapping(redButtonSection)
226
- }, uiText: { value: getButtonText(1), fontSize: getScaledFontSize(16) }, onMouseDown: () => {
270
+ ReactEcs.createElement(UiEntity, { onMouseDown: () => {
227
271
  buttonClick(1);
228
272
  } },
229
273
  ReactEcs.createElement(UiEntity, { uiTransform: {
230
- width: getScaledSize(25),
231
- height: getScaledSize(25),
232
- position: { left: getScaledSize(5) }
274
+ height: 'auto',
275
+ width: getScaledSize(12)
276
+ }, uiBackground: {
277
+ textureMode: 'stretch',
278
+ texture: {
279
+ src: getTheme()
280
+ },
281
+ uvs: getImageAtlasMapping(redButtonCorner)
282
+ } }),
283
+ ReactEcs.createElement(UiEntity, { uiTransform: {
284
+ width: getScaledButtonWidth(1),
285
+ maxWidth: getScaledSize(300),
286
+ height: getScaledSize(45),
287
+ flexDirection: 'row',
288
+ alignItems: 'center',
289
+ justifyContent: 'flex-start',
290
+ alignContent: 'flex-start',
291
+ display: displayButton(2) ? 'flex' : 'none',
292
+ }, uiBackground: {
293
+ textureMode: 'stretch',
294
+ texture: {
295
+ src: getTheme()
296
+ },
297
+ uvs: getImageAtlasMapping(redButtonSection)
298
+ } },
299
+ ReactEcs.createElement(UiEntity, { uiTransform: {
300
+ width: getScaledSize(25),
301
+ height: getScaledSize(25),
302
+ margin: { right: getScaledSize(5) },
303
+ positionType: 'absolute',
304
+ }, uiBackground: {
305
+ textureMode: 'stretch',
306
+ texture: {
307
+ src: getTheme()
308
+ },
309
+ uvs: getImageAtlasMapping(primaryButtonSection)
310
+ } }),
311
+ ReactEcs.createElement(UiEntity, { uiTransform: {
312
+ width: 'auto',
313
+ maxWidth: getScaledSize(217),
314
+ overflow: 'hidden',
315
+ padding: { right: getScaledSize(5) },
316
+ margin: { left: getScaledSize(30) }
317
+ }, uiText: { value: getButtonText(1), fontSize: getScaledFontSize(getButtonFontSize(1)), textAlign: 'middle-left' } })),
318
+ ReactEcs.createElement(UiEntity, { uiTransform: {
319
+ height: 'auto',
320
+ width: getScaledSize(12)
233
321
  }, uiBackground: {
234
322
  textureMode: 'stretch',
235
323
  texture: {
236
324
  src: getTheme()
237
325
  },
238
- uvs: getImageAtlasMapping(primaryButtonSection)
326
+ uvs: getImageAtlasMapping(redButtonEdge)
239
327
  } }))),
240
328
  ReactEcs.createElement(UiEntity, { uiTransform: {
241
- width: getScaledSize(300),
329
+ width: getScaledButtonWidth(450),
242
330
  alignItems: 'center',
243
331
  flexDirection: 'row',
244
- justifyContent: 'space-between',
332
+ justifyContent: 'center',
245
333
  margin: { top: getScaledSize(20) },
246
334
  display: displaySecondButtonContainer() ? 'flex' : 'none',
247
- position: { top: '15%' }
248
335
  } },
249
- ReactEcs.createElement(UiEntity, { uiTransform: {
250
- width: getScaledSize(150),
251
- height: getScaledSize(45),
252
- margin: { right: '5%' },
253
- alignItems: 'center',
254
- justifyContent: 'center',
255
- alignContent: 'flex-start',
256
- display: displayButton(3) ? 'flex' : 'none'
257
- }, uiBackground: {
258
- textureMode: 'stretch',
259
- texture: {
260
- src: getTheme()
261
- },
262
- uvs: getImageAtlasMapping(darkButtonSection)
263
- }, uiText: { value: getButtonText(2), fontSize: getScaledFontSize(16) }, onMouseDown: () => {
336
+ ReactEcs.createElement(UiEntity, { onMouseDown: () => {
264
337
  buttonClick(3);
265
- } }),
266
- ReactEcs.createElement(UiEntity, { uiTransform: {
267
- width: getScaledSize(150),
268
- height: getScaledSize(45),
269
- alignItems: 'center',
270
- justifyContent: 'center',
271
- alignContent: 'flex-start',
272
- display: displayButton(4) ? 'flex' : 'none'
273
- }, uiBackground: {
274
- textureMode: 'stretch',
275
- texture: {
276
- src: getTheme()
277
- },
278
- uvs: getImageAtlasMapping(darkButtonSection)
279
- }, uiText: { value: getButtonText(3), fontSize: getScaledFontSize(16) }, onMouseDown: () => {
338
+ } },
339
+ ReactEcs.createElement(UiEntity, { uiTransform: {
340
+ height: 'auto',
341
+ width: getScaledSize(12),
342
+ }, uiBackground: {
343
+ textureMode: 'stretch',
344
+ texture: {
345
+ src: getTheme()
346
+ },
347
+ uvs: getImageAtlasMapping(darkButtonCorner)
348
+ } }),
349
+ ReactEcs.createElement(UiEntity, { uiTransform: {
350
+ width: getScaledButtonWidth(2),
351
+ maxWidth: getScaledSize(300),
352
+ overflow: 'hidden',
353
+ height: getScaledSize(45),
354
+ alignItems: 'center',
355
+ justifyContent: 'center',
356
+ alignContent: 'flex-start',
357
+ display: displayButton(3) ? 'flex' : 'none'
358
+ }, uiBackground: {
359
+ textureMode: 'stretch',
360
+ texture: {
361
+ src: getTheme()
362
+ },
363
+ uvs: getImageAtlasMapping(darkButtonSection)
364
+ } },
365
+ ReactEcs.createElement(UiEntity, { uiTransform: {
366
+ width: 'auto',
367
+ maxWidth: getScaledSize(252),
368
+ overflow: 'hidden',
369
+ }, uiText: { value: getButtonText(2), fontSize: getScaledFontSize(getButtonFontSize(2)), textAlign: 'middle-left' } })),
370
+ ReactEcs.createElement(UiEntity, { uiTransform: {
371
+ height: 'auto',
372
+ width: getScaledSize(12),
373
+ margin: { right: '5%' },
374
+ }, uiBackground: {
375
+ textureMode: 'stretch',
376
+ texture: {
377
+ src: getTheme()
378
+ },
379
+ uvs: getImageAtlasMapping(darkButtonEdge)
380
+ } })),
381
+ ReactEcs.createElement(UiEntity, { onMouseDown: () => {
280
382
  buttonClick(4);
281
- } }))));
383
+ } },
384
+ ReactEcs.createElement(UiEntity, { uiTransform: {
385
+ height: 'auto',
386
+ width: getScaledSize(12),
387
+ }, uiBackground: {
388
+ textureMode: 'stretch',
389
+ texture: {
390
+ src: getTheme()
391
+ },
392
+ uvs: getImageAtlasMapping(darkButtonCorner)
393
+ } }),
394
+ ReactEcs.createElement(UiEntity, { uiTransform: {
395
+ width: getScaledButtonWidth(3),
396
+ maxWidth: getScaledSize(300),
397
+ overflow: 'hidden',
398
+ height: getScaledSize(45),
399
+ alignItems: 'center',
400
+ justifyContent: 'center',
401
+ alignContent: 'flex-start',
402
+ display: displayButton(4) ? 'flex' : 'none',
403
+ }, uiBackground: {
404
+ textureMode: 'stretch',
405
+ texture: {
406
+ src: getTheme()
407
+ },
408
+ uvs: getImageAtlasMapping(darkButtonSection)
409
+ } },
410
+ ReactEcs.createElement(UiEntity, { uiTransform: {
411
+ width: 'auto',
412
+ maxWidth: getScaledSize(252),
413
+ overflow: 'hidden',
414
+ }, uiText: { value: getButtonText(3), fontSize: getScaledFontSize(getButtonFontSize(3)), textAlign: 'middle-left' } })),
415
+ ReactEcs.createElement(UiEntity, { uiTransform: {
416
+ height: 'auto',
417
+ width: getScaledSize(12),
418
+ }, uiBackground: {
419
+ textureMode: 'stretch',
420
+ texture: {
421
+ src: getTheme()
422
+ },
423
+ uvs: getImageAtlasMapping(darkButtonEdge)
424
+ } })))));
282
425
  };
283
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdWkudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sUUFBUSxFQUFFLEVBQW1DLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBRXhGLE9BQU8sRUFDTCxXQUFXLEVBRVgsYUFBYSxFQUNiLGFBQWEsRUFDYiwyQkFBMkIsRUFDM0IsWUFBWSxFQUNaLGVBQWUsRUFDZiw0QkFBNEIsRUFDNUIsZUFBZSxFQUNmLGFBQWEsRUFDYixXQUFXLEVBQ1gsUUFBUSxFQUNSLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsV0FBVyxFQUNYLGdCQUFnQixFQUNoQixPQUFPLEVBQ1AsWUFBWSxFQUNaLGVBQWUsRUFDZixRQUFRLEVBQ1IsaUJBQWlCLEVBQ2pCLFdBQVcsRUFDWCxVQUFVLEVBQ1YsY0FBYyxFQUNkLGFBQWEsRUFDYixjQUFjLEVBQ2QsY0FBYyxFQUNkLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFHaEIsVUFBVSxFQUNWLFNBQVMsRUFDVCxXQUFXLEVBQ1osTUFBTSxVQUFVLENBQUE7QUFDakIsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxPQUFPLENBQUE7QUFFakMsTUFBTSxDQUFDLElBQUksVUFBVSxHQUFHLHVEQUF1RCxDQUFBO0FBQy9FLE1BQU0sQ0FBQyxJQUFJLFNBQVMsR0FBRyxzREFBc0QsQ0FBQTtBQUU3RSxNQUFNLENBQUMsSUFBSSxjQUFjLEdBQUcsdURBQXVELENBQUE7QUFFbkYsTUFBTSxDQUFDLElBQUksT0FBTyxHQUFHO0lBQ25CLEdBQUcsNEJBQTRCLENBQUMsV0FBVyxDQUFDLFNBQVM7SUFDckQsV0FBVyxFQUFFLDRCQUE0QixDQUFDLFdBQVc7SUFDckQsVUFBVSxFQUFFLDRCQUE0QixDQUFDLFVBQVU7Q0FDcEQsQ0FBQTtBQUVELE1BQU0sQ0FBQyxJQUFJLGlCQUFpQixHQUFHO0lBQzdCLEdBQUcsNEJBQTRCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekMsV0FBVyxFQUFFLDRCQUE0QixDQUFDLFdBQVc7SUFDckQsVUFBVSxFQUFFLDRCQUE0QixDQUFDLFVBQVU7Q0FDcEQsQ0FBQTtBQUVELE1BQU0sQ0FBQyxJQUFJLHNCQUFzQixHQUFHO0lBQ2xDLEdBQUcsNEJBQTRCLENBQUMsT0FBTyxDQUFDLE1BQU07SUFDOUMsV0FBVyxFQUFFLDRCQUE0QixDQUFDLFdBQVc7SUFDckQsVUFBVSxFQUFFLDRCQUE0QixDQUFDLFVBQVU7Q0FDcEQsQ0FBQTtBQUVELE1BQU0sQ0FBQyxJQUFJLGdCQUFnQixHQUFHO0lBQzVCLEdBQUcsNEJBQTRCLENBQUMsS0FBSyxDQUFDLFVBQVU7SUFDaEQsV0FBVyxFQUFFLDRCQUE0QixDQUFDLFdBQVc7SUFDckQsVUFBVSxFQUFFLDRCQUE0QixDQUFDLFVBQVU7Q0FDcEQsQ0FBQTtBQUVELE1BQU0sQ0FBQyxJQUFJLHNCQUFzQixHQUFHO0lBQ2xDLEdBQUcsNEJBQTRCLENBQUMsS0FBSyxDQUFDLFNBQVM7SUFDL0MsV0FBVyxFQUFFLDRCQUE0QixDQUFDLFdBQVc7SUFDckQsVUFBVSxFQUFFLDRCQUE0QixDQUFDLFVBQVU7Q0FDcEQsQ0FBQTtBQUVELE1BQU0sQ0FBQyxJQUFJLG9CQUFvQixHQUFHO0lBQ2hDLEdBQUcsNEJBQTRCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekMsV0FBVyxFQUFFLDRCQUE0QixDQUFDLFdBQVc7SUFDckQsVUFBVSxFQUFFLDRCQUE0QixDQUFDLFVBQVU7Q0FDcEQsQ0FBQTtBQUVELE1BQU0sQ0FBQyxJQUFJLHNCQUFzQixHQUFHO0lBQ2xDLEdBQUcsNEJBQTRCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekMsV0FBVyxFQUFFLDRCQUE0QixDQUFDLFdBQVc7SUFDckQsVUFBVSxFQUFFLDRCQUE0QixDQUFDLFVBQVU7Q0FDcEQsQ0FBQTtBQUVELE1BQU0sQ0FBQyxJQUFJLGlCQUFpQixHQUFHO0lBQzdCLEdBQUcsNEJB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QkFDN0MsRUFDRCxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUNwRSxXQUFXLEVBQUUsR0FBRyxFQUFFO29CQUNoQixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUE7Z0JBQ2hCLENBQUMsR0FDUyxDQUNILENBQ0YsQ0FDWixDQUFBO0FBQ0gsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sb3I0IH0gZnJvbSAnQGRjbC9zZGsvbWF0aCdcbmltcG9ydCBSZWFjdEVjcywgeyBCdXR0b24sIExhYmVsLCBSZWFjdEVjc1JlbmRlcmVyLCBVaUVudGl0eSB9IGZyb20gJ0BkY2wvc2RrL3JlYWN0LWVjcydcbmltcG9ydCB7IEVudGl0eSB9IGZyb20gJ0BkY2wvc2RrL2VjcydcbmltcG9ydCB7XG4gIGJ1dHRvbkNsaWNrLFxuICBjb25maXJtVGV4dCxcbiAgZGlzcGxheUJ1dHRvbixcbiAgZGlzcGxheURpYWxvZyxcbiAgZGlzcGxheUZpcnN0QnV0dG9uQ29udGFpbmVyLFxuICBkaXNwbGF5SW1hZ2UsXG4gIGRpc3BsYXlQb3J0cmFpdCxcbiAgZGlzcGxheVNlY29uZEJ1dHRvbkNvbnRhaW5lcixcbiAgZGlzcGxheVNraXBhYmxlLFxuICBnZXRCdXR0b25UZXh0LFxuICBnZXRGb250U2l6ZSxcbiAgZ2V0SW1hZ2UsXG4gIGdldEltYWdlQXRsYXNNYXBwaW5nLFxuICBnZXRMZWZ0Q2xpY2tUaGVtZSxcbiAgZ2V0UG9ydHJhaXQsXG4gIGdldFNraXBhYmxlVGhlbWUsXG4gIGdldFRleHQsXG4gIGdldFRleHRDb2xvcixcbiAgZ2V0VGV4dFBvc2l0aW9uLFxuICBnZXRUaGVtZSxcbiAgaGFuZGxlRGlhbG9nQ2xpY2ssXG4gIGltYWdlSGVpZ2h0LFxuICBpbWFnZVdpZHRoLFxuICBwb3J0cmFpdEhlaWdodCxcbiAgcG9ydHJhaXRXaWR0aCxcbiAgcG9zaXRpb25JbWFnZVgsXG4gIHBvc2l0aW9uSW1hZ2VZLFxuICBwb3NpdGlvblBvcnRhaXRYLFxuICBwb3NpdGlvblBvcnRhaXRZLFxuICBwb3NpdGlvblRleHRYLFxuICBwb3NpdGlvblRleHRZLFxuICByZWFsSGVpZ2h0LFxuICByZWFsV2lkdGgsXG4gIHNraXBEaWFsb2dzXG59IGZyb20gJy4vZGlhbG9nJ1xuaW1wb3J0IHsgc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcyB9IGZyb20gJy4vdWlSZXNvdXJjZXMnXG5pbXBvcnQgeyBhY3RpdmVOUEMgfSBmcm9tICcuL25wYydcblxuZXhwb3J0IGxldCBsaWdodFRoZW1lID0gJ2h0dHBzOi8vZGVjZW50cmFsYW5kLm9yZy9pbWFnZXMvdWkvbGlnaHQtYXRsYXMtdjMucG5nJ1xuZXhwb3J0IGxldCBkYXJrVGhlbWUgPSAnaHR0cHM6Ly9kZWNlbnRyYWxhbmQub3JnL2ltYWdlcy91aS9kYXJrLWF0bGFzLXYzLnBuZydcblxuZXhwb3J0IGxldCBidWJibGVzVGV4dHVyZSA9ICdodHRwczovL2RlY2VudHJhbGFuZC5vcmcvaW1hZ2VzL3VpL2RpYWxvZy1idWJibGVzLnBuZydcblxuZXhwb3J0IGxldCBzZWN0aW9uID0ge1xuICAuLi5zb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmJhY2tncm91bmRzLk5QQ0RpYWxvZyxcbiAgYXRsYXNIZWlnaHQ6IHNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuYXRsYXNIZWlnaHQsXG4gIGF0bGFzV2lkdGg6IHNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuYXRsYXNXaWR0aFxufVxuXG5leHBvcnQgbGV0IHNraXBCdXR0b25TZWN0aW9uID0ge1xuICAuLi5zb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmJ1dHRvbnMuRixcbiAgYXRsYXNIZWlnaHQ6IHNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuYXRsYXNIZWlnaHQsXG4gIGF0bGFzV2lkdGg6IHNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuYXRsYXNXaWR0aFxufVxuXG5leHBvcnQgbGV0IHNraXBCdXR0b25TZWN0aW9uQmxhY2sgPSB7XG4gIC4uLnNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuYnV0dG9ucy5GQmxhY2ssXG4gIGF0bGFzSGVpZ2h0OiBzb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmF0bGFzSGVpZ2h0LFxuICBhdGxhc1dpZHRoOiBzb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmF0bGFzV2lkdGhcbn1cblxuZXhwb3J0IGxldCBsZWZ0Q2xpY2tTZWN0aW9uID0ge1xuICAuLi5zb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmljb25zLkNsaWNrV2hpdGUsXG4gIGF0bGFzSGVpZ2h0OiBzb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmF0bGFzSGVpZ2h0LFxuICBhdGxhc1dpZHRoOiBzb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmF0bGFzV2lkdGhcbn1cblxuZXhwb3J0IGxldCBsZWZ0Q2xpY2tTZWN0aW9uYkJsYWNrID0ge1xuICAuLi5zb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmljb25zLkNsaWNrRGFyayxcbiAgYXRsYXNIZWlnaHQ6IHNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuYXRsYXNIZWlnaHQsXG4gIGF0bGFzV2lkdGg6IHNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuYXRsYXNXaWR0aFxufVxuXG5leHBvcnQgbGV0IHByaW1hcnlCdXR0b25TZWN0aW9uID0ge1xuICAuLi5zb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmJ1dHRvbnMuRSxcbiAgYXRsYXNIZWlnaHQ6IHNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuYXRsYXNIZWlnaHQsXG4gIGF0bGFzV2lkdGg6IHNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuYXRsYXNXaWR0aFxufVxuXG5leHBvcnQgbGV0IHNlY29uZGFyeUJ1dHRvblNlY3Rpb24gPSB7XG4gIC4uLnNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuYnV0dG9ucy5GLFxuICBhdGxhc0hlaWdodDogc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcy5hdGxhc0hlaWdodCxcbiAgYXRsYXNXaWR0aDogc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcy5hdGxhc1dpZHRoXG59XG5cbmV4cG9ydCBsZXQgZGFya0J1dHRvblNlY3Rpb24gPSB7XG4gIC4uLnNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuYnV0dG9ucy5idXR0b25GLFxuICBhdGxhc0hlaWdodDogc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcy5hdGxhc0hlaWdodCxcbiAgYXRsYXNXaWR0aDogc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcy5hdGxhc1dpZHRoXG59XG5cbmV4cG9ydCBsZXQgcmVkQnV0dG9uU2VjdGlvbiA9IHtcbiAgLi4uc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcy5idXR0b25zLmJ1dHRvbkUsXG4gIGF0bGFzSGVpZ2h0OiBzb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmF0bGFzSGVpZ2h0LFxuICBhdGxhc1dpZHRoOiBzb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmF0bGFzV2lkdGhcbn1cblxubGV0IG1vZGFsU2NhbGUgPSAxXG5sZXQgbW9kZWxGb250U2l6ZVNjYWxlID0gMVxubGV0IG1vZGFsVGV4dFdyYXBTY2FsZSA9IDFcblxuZXhwb3J0IGZ1bmN0aW9uIHNldHVwTlBDVWlTY2FsaW5nKGluTW9kYWxTY2FsZTogbnVtYmVyLCBpbkZvbnRTaXplOiBudW1iZXIsIGluTW9kYWxUZXh0V3JhcFNjYWxlOiBudW1iZXIpIHtcbiAgbW9kYWxTY2FsZSA9IGluTW9kYWxTY2FsZVxuICBtb2RlbEZvbnRTaXplU2NhbGUgPSBpbkZvbnRTaXplXG4gIG1vZGFsVGV4dFdyYXBTY2FsZSA9IGluTW9kYWxUZXh0V3JhcFNjYWxlXG4gIGNvbnNvbGUubG9nKFxuICAgICdOUEMtVE9PTEtJVCcsXG4gICAgJ1NjYWxlIFVJOicsXG4gICAgbW9kYWxTY2FsZSxcbiAgICAnVGV4dEZvbnRTaXplOicsXG4gICAgbW9kZWxGb250U2l6ZVNjYWxlLFxuICAgICdUZXh0V3JhcFNjYWxpbmc6JyxcbiAgICBtb2RhbFRleHRXcmFwU2NhbGVcbiAgKVxufVxuXG5mdW5jdGlvbiBnZXRTY2FsZWRTaXplKHNpemU6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiBzaXplICogbW9kYWxTY2FsZVxufVxuZnVuY3Rpb24gZ2V0U2NhbGVkRm9udFNpemUoc2l6ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIHNpemUgKiBtb2RlbEZvbnRTaXplU2NhbGVcbn1cbmZ1bmN0aW9uIGdldFNjYWxlZFRleHRXcmFwKHNpemU6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiBzaXplICogbW9kYWxUZXh0V3JhcFNjYWxlXG59XG5cbmV4cG9ydCBjb25zdCBOcGNVdGlsc1VpID0gKCkgPT4ge1xuICBjb25zdCB3aWR0aCA9IGdldFNjYWxlZFNpemUocmVhbFdpZHRoKDcwMCkpXG4gIGNvbnN0IGhlaWdodCA9IGdldFNjYWxlZFNpemUocmVhbEhlaWdodCgyMjUpKVxuXG4gIHJldHVybiAoXG4gICAgPFVpRW50aXR5XG4gICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICBkaXNwbGF5OiBkaXNwbGF5RGlhbG9nKCkgPyAnZmxleCcgOiAnbm9uZScsXG4gICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICBwb3NpdGlvblR5cGU6ICdhYnNvbHV0ZScsXG4gICAgICAgIHBvc2l0aW9uOiB7IGJvdHRvbTogJzEwJScsIGxlZnQ6ICc1MCUnIH0sXG4gICAgICAgIG1hcmdpbjogeyB0b3A6IC1oZWlnaHQgLyAyLCBsZWZ0OiAtd2lkdGggLyAyIH0sXG4gICAgICAgIHdpZHRoLFxuICAgICAgICBoZWlnaHRcbiAgICAgIH19XG4gICAgPlxuICAgICAgPFVpRW50aXR5XG4gICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgcG9zaXRpb25UeXBlOiAnYWJzb2x1dGUnLFxuICAgICAgICAgIHBvc2l0aW9uOiB7IHRvcDogMCwgbGVmdDogMCB9LFxuICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgaGVpZ2h0OiAnMTAwJSdcbiAgICAgICAgfX1cbiAgICAgICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgdGV4dHVyZU1vZGU6ICdzdHJldGNoJyxcbiAgICAgICAgICB0ZXh0dXJlOiB7XG4gICAgICAgICAgICBzcmM6IGdldFRoZW1lKClcbiAgICAgICAgICB9LFxuICAgICAgICAgIHV2czogZ2V0SW1hZ2VBdGxhc01hcHBpbmcoc2VjdGlvbilcbiAgICAgICAgfX1cbiAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICBoYW5kbGVEaWFsb2dDbGljaygpXG4gICAgICAgIH19XG4gICAgICAvPlxuXG4gICAgICA8VWlFbnRpdHlcbiAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICBkaXNwbGF5OiBkaXNwbGF5UG9ydHJhaXQoKSA/ICdmbGV4JyA6ICdub25lJyxcbiAgICAgICAgICB3aWR0aDogZ2V0U2NhbGVkU2l6ZShwb3J0cmFpdFdpZHRoKCkpLFxuICAgICAgICAgIGhlaWdodDogZ2V0U2NhbGVkU2l6ZShwb3J0cmFpdEhlaWdodCgpKSxcbiAgICAgICAgICBwb3NpdGlvblR5cGU6ICdhYnNvbHV0ZScsXG4gICAgICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgICAgIGJvdHRvbTogZ2V0U2NhbGVkU2l6ZShwb3NpdGlvblBvcnRhaXRZKCkpLFxuICAgICAgICAgICAgbGVmdDogZ2V0U2NhbGVkU2l6ZShwb3NpdGlvblBvcnRhaXRYKCkpXG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgICB1aUJhY2tncm91bmQ9e3tcbiAgICAgICAgICB0ZXh0dXJlTW9kZTogJ3N0cmV0Y2gnLFxuICAgICAgICAgIHRleHR1cmU6IHtcbiAgICAgICAgICAgIHNyYzogZ2V0UG9ydHJhaXQoKVxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyB1dnM6IGdldEltYWdlQXRsYXNNYXBwaW5nKHNraXBCdXR0b25TZWN0aW9uKSxcbiAgICAgICAgfX1cbiAgICAgIC8+XG5cbiAgICAgIDxVaUVudGl0eVxuICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgIGRpc3BsYXk6IGRpc3BsYXlJbWFnZSgpID8gJ2ZsZXgnIDogJ25vbmUnLFxuICAgICAgICAgIHdpZHRoOiBnZXRTY2FsZWRTaXplKGltYWdlV2lkdGgoKSksXG4gICAgICAgICAgaGVpZ2h0OiBnZXRTY2FsZWRTaXplKGltYWdlSGVpZ2h0KCkpLFxuICAgICAgICAgIHBvc2l0aW9uVHlwZTogJ2Fic29sdXRlJyxcbiAgICAgICAgICBwb3NpdGlvbjogeyBib3R0b206IHBvc2l0aW9uSW1hZ2VZKCksIHJpZ2h0OiBwb3NpdGlvbkltYWdlWCgpIH1cbiAgICAgICAgfX1cbiAgICAgICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgdGV4dHVyZU1vZGU6ICdzdHJldGNoJyxcbiAgICAgICAgICB0ZXh0dXJlOiB7XG4gICAgICAgICAgICBzcmM6IGdldEltYWdlKClcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gdXZzOiBnZXRJbWFnZUF0bGFzTWFwcGluZyhza2lwQnV0dG9uU2VjdGlvbiksXG4gICAgICAgIH19XG4gICAgICAvPlxuXG4gICAgICA8VWlFbnRpdHlcbiAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICBkaXNwbGF5OiBkaXNwbGF5U2tpcGFibGUoKSA/ICdmbGV4JyA6ICdub25lJyxcbiAgICAgICAgICB3aWR0aDogZ2V0U2NhbGVkU2l6ZSgxNSksXG4gICAgICAgICAgaGVpZ2h0OiBnZXRTY2FsZWRTaXplKDE1KSxcbiAgICAgICAgICBwb3NpdGlvblR5cGU6ICdhYnNvbHV0ZScsXG4gICAgICAgICAgcG9zaXRpb246IHsgYm90dG9tOiAnNyUnLCBsZWZ0OiAnMjUlJyB9XG4gICAgICAgIH19XG4gICAgICAgIHVpQmFja2dyb3VuZD17e1xuICAgICAgICAgIHRleHR1cmVNb2RlOiAnc3RyZXRjaCcsXG4gICAgICAgICAgdGV4dHVyZToge1xuICAgICAgICAgICAgc3JjOiBnZXRUaGVtZSgpXG4gICAgICAgICAgfSxcbiAgICAgICAgICB1dnM6IGdldEltYWdlQXRsYXNNYXBwaW5nKGdldFNraXBhYmxlVGhlbWUoKSlcbiAgICAgICAgfX1cbiAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICBza2lwRGlhbG9ncyhhY3RpdmVOUEMpXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICBwb3NpdGlvblR5cGU6ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICBwb3NpdGlvbjogeyBsZWZ0OiAnMjE1JScgfVxuICAgICAgICAgIH19XG4gICAgICAgICAgdWlUZXh0PXt7XG4gICAgICAgICAgICB2YWx1ZTogJ1NraXAnLFxuICAgICAgICAgICAgY29sb3I6IGdldFRleHRDb2xvcigpLFxuICAgICAgICAgICAgZm9udFNpemU6IGdldFNjYWxlZEZvbnRTaXplKDEyKVxuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICA8L1VpRW50aXR5PlxuXG4gICAgICA8VWlFbnRpdHlcbiAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgd2lkdGg6IGdldFNjYWxlZFNpemUoMjQpLFxuICAgICAgICAgIGhlaWdodDogZ2V0U2NhbGVkU2l6ZSgzNiksXG4gICAgICAgICAgcG9zaXRpb25UeXBlOiAnYWJzb2x1dGUnLFxuICAgICAgICAgIHBvc2l0aW9uOiB7IGJvdHRvbTogJzUlJywgcmlnaHQ6ICcyJScgfVxuICAgICAgICB9fVxuICAgICAgICB1aUJhY2tncm91bmQ9e3tcbiAgICAgICAgICB0ZXh0dXJlTW9kZTogJ3N0cmV0Y2gnLFxuICAgICAgICAgIHRleHR1cmU6IHtcbiAgICAgICAgICAgIHNyYzogZ2V0VGhlbWUoKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgdXZzOiBnZXRJbWFnZUF0bGFzTWFwcGluZyhnZXRMZWZ0Q2xpY2tUaGVtZSgpKVxuICAgICAgICB9fVxuICAgICAgLz5cblxuICAgICAgPFVpRW50aXR5XG4gICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgYWxpZ25TZWxmOiAnZmxleC1zdGFydCcsXG4gICAgICAgICAgYWxpZ25JdGVtczogJ2ZsZXgtc3RhcnQnLFxuICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnZmxleC1zdGFydCcsXG4gICAgICAgICAgZmxleERpcmVjdGlvbjogJ3JvdycsXG4gICAgICAgICAgcG9zaXRpb246IGdldFRleHRQb3NpdGlvbigpXG4gICAgICAgIH19XG4gICAgICAgIHVpVGV4dD17e1xuICAgICAgICAgIHZhbHVlOiBnZXRUZXh0KCksXG4gICAgICAgICAgY29sb3I6IGdldFRleHRDb2xvcigpLFxuICAgICAgICAgIGZvbnRTaXplOiBnZXRTY2FsZWRGb250U2l6ZShnZXRGb250U2l6ZSgpKSxcbiAgICAgICAgICB0ZXh0QWxpZ246ICdtaWRkbGUtbGVmdCdcbiAgICAgICAgfX1cbiAgICAgID48L1VpRW50aXR5PlxuXG4gICAgICA8VWlFbnRpdHlcbiAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICB3aWR0aDogZ2V0U2NhbGVkU2l6ZSgzMDApLFxuICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdyb3cnLFxuICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicsXG4gICAgICAgICAgZGlzcGxheTogZGlzcGxheUZpcnN0QnV0dG9uQ29udGFpbmVyKCkgPyAnZmxleCcgOiAnbm9uZScsXG4gICAgICAgICAgcG9zaXRpb246IHsgdG9wOiAnMjAlJyB9XG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIHsvKiBCdXR0b24xIChUb3AtTGVmdCkgKi99XG4gICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICB3aWR0aDogZ2V0U2NhbGVkU2l6ZSgxNTApLFxuICAgICAgICAgICAgaGVpZ2h0OiBnZXRTY2FsZWRTaXplKDQ1KSxcbiAgICAgICAgICAgIG1hcmdpbjogeyByaWdodDogJzUlJyB9LFxuICAgICAgICAgICAgZmxleERpcmVjdGlvbjogJ3JvdycsXG4gICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnZmxleC1zdGFydCcsXG4gICAgICAgICAgICBhbGlnbkNvbnRlbnQ6ICdmbGV4LXN0YXJ0JyxcbiAgICAgICAgICAgIGRpc3BsYXk6IGRpc3BsYXlCdXR0b24oMSkgPyAnZmxleCcgOiAnbm9uZSdcbiAgICAgICAgICB9fVxuICAgICAgICAgIHVpQmFja2dyb3VuZD17e1xuICAgICAgICAgICAgdGV4dHVyZU1vZGU6ICdzdHJldGNoJyxcbiAgICAgICAgICAgIHRleHR1cmU6IHtcbiAgICAgICAgICAgICAgc3JjOiBnZXRUaGVtZSgpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXZzOiBnZXRJbWFnZUF0bGFzTWFwcGluZyhkYXJrQnV0dG9uU2VjdGlvbilcbiAgICAgICAgICB9fVxuICAgICAgICAgIHVpVGV4dD17eyB2YWx1ZTogZ2V0QnV0dG9uVGV4dCgwKSwgZm9udFNpemU6IGdldFNjYWxlZEZvbnRTaXplKDE2KSB9fVxuICAgICAgICAgIG9uTW91c2VEb3duPXsoKSA9PiB7XG4gICAgICAgICAgICBidXR0b25DbGljaygwKVxuICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgIHdpZHRoOiBnZXRTY2FsZWRTaXplKDI1KSxcbiAgICAgICAgICAgICAgaGVpZ2h0OiBnZXRTY2FsZWRTaXplKDI1KSxcbiAgICAgICAgICAgICAgcG9zaXRpb246IHsgbGVmdDogZ2V0U2NhbGVkU2l6ZSg1KSB9XG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICAgIHRleHR1cmVNb2RlOiAnc3RyZXRjaCcsXG4gICAgICAgICAgICAgIHRleHR1cmU6IHtcbiAgICAgICAgICAgICAgICBzcmM6IGdldFRoZW1lKClcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgdXZzOiBnZXRJbWFnZUF0bGFzTWFwcGluZyhzZWNvbmRhcnlCdXR0b25TZWN0aW9uKVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+PC9VaUVudGl0eT5cbiAgICAgICAgPC9VaUVudGl0eT5cblxuICAgICAgICB7LyogQnV0dG9uMiAoVG9wLVJpZ2h0KSAqL31cbiAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIHdpZHRoOiBnZXRTY2FsZWRTaXplKDE1MCksXG4gICAgICAgICAgICBoZWlnaHQ6IGdldFNjYWxlZFNpemUoNDUpLFxuICAgICAgICAgICAgZmxleERpcmVjdGlvbjogJ3JvdycsXG4gICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnZmxleC1zdGFydCcsXG4gICAgICAgICAgICBhbGlnbkNvbnRlbnQ6ICdmbGV4LXN0YXJ0JyxcbiAgICAgICAgICAgIGRpc3BsYXk6IGRpc3BsYXlCdXR0b24oMikgPyAnZmxleCcgOiAnbm9uZSdcbiAgICAgICAgICB9fVxuICAgICAgICAgIHVpQmFja2dyb3VuZD17e1xuICAgICAgICAgICAgdGV4dHVyZU1vZGU6ICdzdHJldGNoJyxcbiAgICAgICAgICAgIHRleHR1cmU6IHtcbiAgICAgICAgICAgICAgc3JjOiBnZXRUaGVtZSgpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXZzOiBnZXRJbWFnZUF0bGFzTWFwcGluZyhyZWRCdXR0b25TZWN0aW9uKVxuICAgICAgICAgIH19XG4gICAgICAgICAgdWlUZXh0PXt7IHZhbHVlOiBnZXRCdXR0b25UZXh0KDEpLCBmb250U2l6ZTogZ2V0U2NhbGVkRm9udFNpemUoMTYpIH19XG4gICAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICAgIGJ1dHRvbkNsaWNrKDEpXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgd2lkdGg6IGdldFNjYWxlZFNpemUoMjUpLFxuICAgICAgICAgICAgICBoZWlnaHQ6IGdldFNjYWxlZFNpemUoMjUpLFxuICAgICAgICAgICAgICBwb3NpdGlvbjogeyBsZWZ0OiBnZXRTY2FsZWRTaXplKDUpIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICB1aUJhY2tncm91bmQ9e3tcbiAgICAgICAgICAgICAgdGV4dHVyZU1vZGU6ICdzdHJldGNoJyxcbiAgICAgICAgICAgICAgdGV4dHVyZToge1xuICAgICAgICAgICAgICAgIHNyYzogZ2V0VGhlbWUoKVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB1dnM6IGdldEltYWdlQXRsYXNNYXBwaW5nKHByaW1hcnlCdXR0b25TZWN0aW9uKVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+PC9VaUVudGl0eT5cbiAgICAgICAgPC9VaUVudGl0eT5cbiAgICAgIDwvVWlFbnRpdHk+XG5cbiAgICAgIHsvKiBTZWNvbmQgcm93IG9mIGJ1dHRvbnMgKi99XG4gICAgICA8VWlFbnRpdHlcbiAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICB3aWR0aDogZ2V0U2NhbGVkU2l6ZSgzMDApLFxuICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdyb3cnLFxuICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicsXG4gICAgICAgICAgbWFyZ2luOiB7IHRvcDogZ2V0U2NhbGVkU2l6ZSgyMCkgfSxcbiAgICAgICAgICBkaXNwbGF5OiBkaXNwbGF5U2Vjb25kQnV0dG9uQ29udGFpbmVyKCkgPyAnZmxleCcgOiAnbm9uZScsXG4gICAgICAgICAgcG9zaXRpb246IHsgdG9wOiAnMTUlJyB9XG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIHsvKiBCdXR0b24zICovfVxuICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgd2lkdGg6IGdldFNjYWxlZFNpemUoMTUwKSxcbiAgICAgICAgICAgIGhlaWdodDogZ2V0U2NhbGVkU2l6ZSg0NSksXG4gICAgICAgICAgICBtYXJnaW46IHsgcmlnaHQ6ICc1JScgfSxcbiAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgYWxpZ25Db250ZW50OiAnZmxleC1zdGFydCcsXG4gICAgICAgICAgICBkaXNwbGF5OiBkaXNwbGF5QnV0dG9uKDMpID8gJ2ZsZXgnIDogJ25vbmUnXG4gICAgICAgICAgfX1cbiAgICAgICAgICB1aUJhY2tncm91bmQ9e3tcbiAgICAgICAgICAgIHRleHR1cmVNb2RlOiAnc3RyZXRjaCcsXG4gICAgICAgICAgICB0ZXh0dXJlOiB7XG4gICAgICAgICAgICAgIHNyYzogZ2V0VGhlbWUoKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHV2czogZ2V0SW1hZ2VBdGxhc01hcHBpbmcoZGFya0J1dHRvblNlY3Rpb24pXG4gICAgICAgICAgfX1cbiAgICAgICAgICB1aVRleHQ9e3sgdmFsdWU6IGdldEJ1dHRvblRleHQoMiksIGZvbnRTaXplOiBnZXRTY2FsZWRGb250U2l6ZSgxNikgfX1cbiAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4ge1xuICAgICAgICAgICAgYnV0dG9uQ2xpY2soMylcbiAgICAgICAgICB9fVxuICAgICAgICA+PC9VaUVudGl0eT5cblxuICAgICAgICB7LyogQnV0dG9uNCAqL31cbiAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIHdpZHRoOiBnZXRTY2FsZWRTaXplKDE1MCksXG4gICAgICAgICAgICBoZWlnaHQ6IGdldFNjYWxlZFNpemUoNDUpLFxuICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICBhbGlnbkNvbnRlbnQ6ICdmbGV4LXN0YXJ0JyxcbiAgICAgICAgICAgIGRpc3BsYXk6IGRpc3BsYXlCdXR0b24oNCkgPyAnZmxleCcgOiAnbm9uZSdcbiAgICAgICAgICB9fVxuICAgICAgICAgIHVpQmFja2dyb3VuZD17e1xuICAgICAgICAgICAgdGV4dHVyZU1vZGU6ICdzdHJldGNoJyxcbiAgICAgICAgICAgIHRleHR1cmU6IHtcbiAgICAgICAgICAgICAgc3JjOiBnZXRUaGVtZSgpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXZzOiBnZXRJbWFnZUF0bGFzTWFwcGluZyhkYXJrQnV0dG9uU2VjdGlvbilcbiAgICAgICAgICB9fVxuICAgICAgICAgIHVpVGV4dD17eyB2YWx1ZTogZ2V0QnV0dG9uVGV4dCgzKSwgZm9udFNpemU6IGdldFNjYWxlZEZvbnRTaXplKDE2KSB9fVxuICAgICAgICAgIG9uTW91c2VEb3duPXsoKSA9PiB7XG4gICAgICAgICAgICBidXR0b25DbGljayg0KVxuICAgICAgICAgIH19XG4gICAgICAgID48L1VpRW50aXR5PlxuICAgICAgPC9VaUVudGl0eT5cbiAgICA8L1VpRW50aXR5PlxuICApXG59XG4iXX0=
426
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdWkudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sUUFBUSxFQUFFLEVBQW1DLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBRXhGLE9BQU8sRUFDTCxXQUFXLEVBRVgsYUFBYSxFQUNiLGFBQWEsRUFDYiwyQkFBMkIsRUFDM0IsWUFBWSxFQUNaLGVBQWUsRUFDZiw0QkFBNEIsRUFDNUIsZUFBZSxFQUNmLGFBQWEsRUFDYixhQUFhLEVBQ2IsV0FBVyxFQUNYLGlCQUFpQixFQUNqQixRQUFRLEVBQ1Isb0JBQW9CLEVBQ3BCLGlCQUFpQixFQUNqQixXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLE9BQU8sRUFDUCxZQUFZLEVBQ1osZUFBZSxFQUNmLFFBQVEsRUFDUixpQkFBaUIsRUFDakIsV0FBVyxFQUNYLFVBQVUsRUFDVixjQUFjLEVBQ2QsYUFBYSxFQUNiLGNBQWMsRUFDZCxjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUdoQixVQUFVLEVBQ1YsU0FBUyxFQUNULFdBQVcsRUFDWCxlQUFlLEVBQ2hCLE1BQU0sVUFBVSxDQUFBO0FBQ2pCLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sT0FBTyxDQUFBO0FBRWpDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsR0FBRyx1REFBdUQsQ0FBQTtBQUMvRSxNQUFNLENBQUMsSUFBSSxTQUFTLEdBQUcsc0RBQXNELENBQUE7QUFFN0UsTUFBTSxDQUFDLElBQUksY0FBYyxHQUFHLHVEQUF1RCxDQUFBO0FBRW5GLE1BQU0sQ0FBQyxJQUFJLE9BQU8sR0FBRztJQUNuQixHQUFHLDRCQUE0QixDQUFDLFdBQVcsQ0FBQyxTQUFTO0lBQ3JELFdBQVcsRUFBRSw0QkFBNEIsQ0FBQyxXQUFXO0lBQ3JELFVBQVUsRUFBRSw0QkFBNEIsQ0FBQyxVQUFVO0NBQ3BE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d0JBQ3RCLE9BQU8sRUFBRTs0QkFDUCxHQUFHLEVBQUUsUUFBUSxFQUFFO3lCQUNoQjt3QkFDRCxHQUFHLEVBQUUsb0JBQW9CLENBQUMsaUJBQWlCLENBQUM7cUJBQzdDO29CQUVELHVCQUFDLFFBQVEsSUFDUCxXQUFXLEVBQUU7NEJBQ1gsS0FBSyxFQUFFLE1BQU07NEJBQ2IsUUFBUSxFQUFFLGFBQWEsQ0FBQyxHQUFHLENBQUM7NEJBQzVCLFFBQVEsRUFBRSxRQUFRO3lCQUNuQixFQUNELE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxHQUNoSCxDQUNPO2dCQUNYLHVCQUFDLFFBQVEsSUFDUCxXQUFXLEVBQUU7d0JBQ1gsTUFBTSxFQUFFLE1BQU07d0JBQ2QsS0FBSyxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUM7cUJBQ3pCLEVBQ0QsWUFBWSxFQUFFO3dCQUNaLFdBQVcsRUFBRSxTQUFTO3dCQUN0QixPQUFPLEVBQUU7NEJBQ1AsR0FBRyxFQUFFLFFBQVEsRUFBRTt5QkFDaEI7d0JBQ0QsR0FBRyxFQUFFLG9CQUFvQixDQUFDLGNBQWMsQ0FBQztxQkFDMUMsR0FDRCxDQUNPLENBQ0YsQ0FDRixDQUNaLENBQUE7QUFDSCxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xvcjQgfSBmcm9tICdAZGNsL3Nkay9tYXRoJ1xuaW1wb3J0IFJlYWN0RWNzLCB7IEJ1dHRvbiwgTGFiZWwsIFJlYWN0RWNzUmVuZGVyZXIsIFVpRW50aXR5IH0gZnJvbSAnQGRjbC9zZGsvcmVhY3QtZWNzJ1xuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnQGRjbC9zZGsvZWNzJ1xuaW1wb3J0IHtcbiAgYnV0dG9uQ2xpY2ssXG4gIGNvbmZpcm1UZXh0LFxuICBkaXNwbGF5QnV0dG9uLFxuICBkaXNwbGF5RGlhbG9nLFxuICBkaXNwbGF5Rmlyc3RCdXR0b25Db250YWluZXIsXG4gIGRpc3BsYXlJbWFnZSxcbiAgZGlzcGxheVBvcnRyYWl0LFxuICBkaXNwbGF5U2Vjb25kQnV0dG9uQ29udGFpbmVyLFxuICBkaXNwbGF5U2tpcGFibGUsXG4gIGdldEJ1dHRvblRleHQsXG4gIGdldGJ1dHRvblNpemUsXG4gIGdldEZvbnRTaXplLFxuICBnZXRCdXR0b25Gb250U2l6ZSxcbiAgZ2V0SW1hZ2UsXG4gIGdldEltYWdlQXRsYXNNYXBwaW5nLFxuICBnZXRMZWZ0Q2xpY2tUaGVtZSxcbiAgZ2V0UG9ydHJhaXQsXG4gIGdldFNraXBhYmxlVGhlbWUsXG4gIGdldFRleHQsXG4gIGdldFRleHRDb2xvcixcbiAgZ2V0VGV4dFBvc2l0aW9uLFxuICBnZXRUaGVtZSxcbiAgaGFuZGxlRGlhbG9nQ2xpY2ssXG4gIGltYWdlSGVpZ2h0LFxuICBpbWFnZVdpZHRoLFxuICBwb3J0cmFpdEhlaWdodCxcbiAgcG9ydHJhaXRXaWR0aCxcbiAgcG9zaXRpb25JbWFnZVgsXG4gIHBvc2l0aW9uSW1hZ2VZLFxuICBwb3NpdGlvblBvcnRhaXRYLFxuICBwb3NpdGlvblBvcnRhaXRZLFxuICBwb3NpdGlvblRleHRYLFxuICBwb3NpdGlvblRleHRZLFxuICByZWFsSGVpZ2h0LFxuICByZWFsV2lkdGgsXG4gIHNraXBEaWFsb2dzLFxuICBnZXRXaW5kb3dIZWlnaHRcbn0gZnJvbSAnLi9kaWFsb2cnXG5pbXBvcnQgeyBzb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzIH0gZnJvbSAnLi91aVJlc291cmNlcydcbmltcG9ydCB7IGFjdGl2ZU5QQyB9IGZyb20gJy4vbnBjJ1xuXG5leHBvcnQgbGV0IGxpZ2h0VGhlbWUgPSAnaHR0cHM6Ly9kZWNlbnRyYWxhbmQub3JnL2ltYWdlcy91aS9saWdodC1hdGxhcy12My5wbmcnXG5leHBvcnQgbGV0IGRhcmtUaGVtZSA9ICdodHRwczovL2RlY2VudHJhbGFuZC5vcmcvaW1hZ2VzL3VpL2RhcmstYXRsYXMtdjMucG5nJ1xuXG5leHBvcnQgbGV0IGJ1YmJsZXNUZXh0dXJlID0gJ2h0dHBzOi8vZGVjZW50cmFsYW5kLm9yZy9pbWFnZXMvdWkvZGlhbG9nLWJ1YmJsZXMucG5nJ1xuXG5leHBvcnQgbGV0IHNlY3Rpb24gPSB7XG4gIC4uLnNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuYmFja2dyb3VuZHMuTlBDRGlhbG9nLFxuICBhdGxhc0hlaWdodDogc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcy5hdGxhc0hlaWdodCxcbiAgYXRsYXNXaWR0aDogc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcy5hdGxhc1dpZHRoXG59XG5cbmV4cG9ydCBsZXQgc2tpcEJ1dHRvblNlY3Rpb24gPSB7XG4gIC4uLnNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuYnV0dG9ucy5GLFxuICBhdGxhc0hlaWdodDogc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcy5hdGxhc0hlaWdodCxcbiAgYXRsYXNXaWR0aDogc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcy5hdGxhc1dpZHRoXG59XG5cbmV4cG9ydCBsZXQgc2tpcEJ1dHRvblNlY3Rpb25CbGFjayA9IHtcbiAgLi4uc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcy5idXR0b25zLkZCbGFjayxcbiAgYXRsYXNIZWlnaHQ6IHNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuYXRsYXNIZWlnaHQsXG4gIGF0bGFzV2lkdGg6IHNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuYXRsYXNXaWR0aFxufVxuXG5leHBvcnQgbGV0IGxlZnRDbGlja1NlY3Rpb24gPSB7XG4gIC4uLnNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuaWNvbnMuQ2xpY2tXaGl0ZSxcbiAgYXRsYXNIZWlnaHQ6IHNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuYXRsYXNIZWlnaHQsXG4gIGF0bGFzV2lkdGg6IHNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuYXRsYXNXaWR0aFxufVxuXG5leHBvcnQgbGV0IGxlZnRDbGlja1NlY3Rpb25iQmxhY2sgPSB7XG4gIC4uLnNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuaWNvbnMuQ2xpY2tEYXJrLFxuICBhdGxhc0hlaWdodDogc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcy5hdGxhc0hlaWdodCxcbiAgYXRsYXNXaWR0aDogc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcy5hdGxhc1dpZHRoXG59XG5cbmV4cG9ydCBsZXQgcHJpbWFyeUJ1dHRvblNlY3Rpb24gPSB7XG4gIC4uLnNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuYnV0dG9ucy5FLFxuICBhdGxhc0hlaWdodDogc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcy5hdGxhc0hlaWdodCxcbiAgYXRsYXNXaWR0aDogc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcy5hdGxhc1dpZHRoXG59XG5cbmV4cG9ydCBsZXQgc2Vjb25kYXJ5QnV0dG9uU2VjdGlvbiA9IHtcbiAgLi4uc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcy5idXR0b25zLkYsXG4gIGF0bGFzSGVpZ2h0OiBzb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmF0bGFzSGVpZ2h0LFxuICBhdGxhc1dpZHRoOiBzb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmF0bGFzV2lkdGhcbn1cblxuZXhwb3J0IGxldCBkYXJrQnV0dG9uU2VjdGlvbiA9IHtcbiAgLi4uc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcy5idXR0b25zLmJ1dHRvbkYsXG4gIGF0bGFzSGVpZ2h0OiBzb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmF0bGFzSGVpZ2h0LFxuICBhdGxhc1dpZHRoOiBzb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmF0bGFzV2lkdGhcbn1cblxuZXhwb3J0IGxldCBkYXJrQnV0dG9uQ29ybmVyID0ge1xuICAuLi5zb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmJ1dHRvbnMuYnV0dG9uRkNvcm5lcixcbiAgYXRsYXNIZWlnaHQ6IHNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuYXRsYXNIZWlnaHQsXG4gIGF0bGFzV2lkdGg6IHNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuYXRsYXNXaWR0aFxufVxuXG5leHBvcnQgbGV0IGRhcmtCdXR0b25FZGdlID0ge1xuICAuLi5zb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmJ1dHRvbnMuYnV0dG9uRkVkZ2UsXG4gIGF0bGFzSGVpZ2h0OiBzb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmF0bGFzSGVpZ2h0LFxuICBhdGxhc1dpZHRoOiBzb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmF0bGFzV2lkdGhcbn1cblxuZXhwb3J0IGxldCByZWRCdXR0b25TZWN0aW9uID0ge1xuICAuLi5zb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmJ1dHRvbnMuYnV0dG9uRSxcbiAgYXRsYXNIZWlnaHQ6IHNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuYXRsYXNIZWlnaHQsXG4gIGF0bGFzV2lkdGg6IHNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuYXRsYXNXaWR0aFxufVxuXG5leHBvcnQgbGV0IHJlZEJ1dHRvbkNvcm5lciA9IHtcbiAgLi4uc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcy5idXR0b25zLmJ1dHRvbkVDb3JuZXIsXG4gIGF0bGFzSGVpZ2h0OiBzb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmF0bGFzSGVpZ2h0LFxuICBhdGxhc1dpZHRoOiBzb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmF0bGFzV2lkdGhcbn1cblxuZXhwb3J0IGxldCByZWRCdXR0b25FZGdlID0ge1xuICAuLi5zb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmJ1dHRvbnMuYnV0dG9uRUVkZ2UsXG4gIGF0bGFzSGVpZ2h0OiBzb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmF0bGFzSGVpZ2h0LFxuICBhdGxhc1dpZHRoOiBzb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmF0bGFzV2lkdGhcbn1cblxubGV0IG1vZGFsU2NhbGUgPSAxXG5sZXQgbW9kZWxGb250U2l6ZVNjYWxlID0gMVxubGV0IG1vZGFsVGV4dFdyYXBTY2FsZSA9IDFcblxuZXhwb3J0IGZ1bmN0aW9uIHNldHVwTlBDVWlTY2FsaW5nKGluTW9kYWxTY2FsZTogbnVtYmVyLCBpbkZvbnRTaXplOiBudW1iZXIsIGluTW9kYWxUZXh0V3JhcFNjYWxlOiBudW1iZXIpIHtcbiAgbW9kYWxTY2FsZSA9IGluTW9kYWxTY2FsZVxuICBtb2RlbEZvbnRTaXplU2NhbGUgPSBpbkZvbnRTaXplXG4gIG1vZGFsVGV4dFdyYXBTY2FsZSA9IGluTW9kYWxUZXh0V3JhcFNjYWxlXG4gIGNvbnNvbGUubG9nKFxuICAgICdOUEMtVE9PTEtJVCcsXG4gICAgJ1NjYWxlIFVJOicsXG4gICAgbW9kYWxTY2FsZSxcbiAgICAnVGV4dEZvbnRTaXplOicsXG4gICAgbW9kZWxGb250U2l6ZVNjYWxlLFxuICAgICdUZXh0V3JhcFNjYWxpbmc6JyxcbiAgICBtb2RhbFRleHRXcmFwU2NhbGVcbiAgKVxufVxuXG5mdW5jdGlvbiBnZXRTY2FsZWRTaXplKHNpemU6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiBzaXplICogbW9kYWxTY2FsZVxufVxuZnVuY3Rpb24gZ2V0U2NhbGVkRm9udFNpemUoc2l6ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIHNpemUgKiBtb2RlbEZvbnRTaXplU2NhbGVcbn1cbmZ1bmN0aW9uIGdldFNjYWxlZFRleHRXcmFwKHNpemU6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiBzaXplICogbW9kYWxUZXh0V3JhcFNjYWxlXG59XG5mdW5jdGlvbiBnZXRTY2FsZWRCdXR0b25XaWR0aChidXR0b246IG51bWJlcikge1xuICByZXR1cm4gdHlwZW9mIChnZXRidXR0b25TaXplKGJ1dHRvbikpID09PSAnbnVtYmVyJyA/IGdldFNjYWxlZFNpemUoZ2V0YnV0dG9uU2l6ZShidXR0b24pIGFzIG51bWJlcikgOiAnYXV0bydcbn1cblxuZXhwb3J0IGNvbnN0IE5wY1V0aWxzVWkgPSAoKSA9PiB7XG4gIGNvbnN0IHdpZHRoID0gZ2V0U2NhbGVkU2l6ZShyZWFsV2lkdGgoNzAwKSlcbiAgY29uc3QgaGVpZ2h0ID0gZ2V0U2NhbGVkU2l6ZShyZWFsSGVpZ2h0KDI4NCkpXG5cbiAgcmV0dXJuIChcbiAgICA8VWlFbnRpdHlcbiAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgIGRpc3BsYXk6IGRpc3BsYXlEaWFsb2coKSA/ICdmbGV4JyA6ICdub25lJyxcbiAgICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgIHBvc2l0aW9uVHlwZTogJ2Fic29sdXRlJyxcbiAgICAgICAgcG9zaXRpb246IHsgYm90dG9tOiAnMTAlJywgbGVmdDogJzUwJScgfSxcbiAgICAgICAgbWFyZ2luOiB7IHRvcDogLWhlaWdodCAvIDIsIGxlZnQ6IC13aWR0aCAvIDIgfSxcbiAgICAgICAgcGFkZGluZzogeyB0b3A6IDQwLCBib3R0b206IDQwIH0sXG4gICAgICAgIHdpZHRoLFxuICAgICAgICBoZWlnaHQ6IHR5cGVvZiAoZ2V0V2luZG93SGVpZ2h0KCkpID09PSAnbnVtYmVyJyA/IGdldFdpbmRvd0hlaWdodCgpIGFzIG51bWJlciA6ICdhdXRvJ1xuICAgICAgfX1cbiAgICA+XG4gICAgICA8VWlFbnRpdHlcbiAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICBwb3NpdGlvblR5cGU6ICdhYnNvbHV0ZScsXG4gICAgICAgICAgcG9zaXRpb246IHsgdG9wOiAwLCBsZWZ0OiAwIH0sXG4gICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICBoZWlnaHQ6ICcxMDAlJ1xuICAgICAgICB9fVxuICAgICAgICB1aUJhY2tncm91bmQ9e3tcbiAgICAgICAgICB0ZXh0dXJlTW9kZTogJ3N0cmV0Y2gnLFxuICAgICAgICAgIHRleHR1cmU6IHtcbiAgICAgICAgICAgIHNyYzogZ2V0VGhlbWUoKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgdXZzOiBnZXRJbWFnZUF0bGFzTWFwcGluZyhzZWN0aW9uKVxuICAgICAgICB9fVxuICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4ge1xuICAgICAgICAgIGhhbmRsZURpYWxvZ0NsaWNrKClcbiAgICAgICAgfX1cbiAgICAgIC8+XG5cbiAgICAgIDxVaUVudGl0eVxuICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgIGRpc3BsYXk6IGRpc3BsYXlQb3J0cmFpdCgpID8gJ2ZsZXgnIDogJ25vbmUnLFxuICAgICAgICAgIHdpZHRoOiBnZXRTY2FsZWRTaXplKHBvcnRyYWl0V2lkdGgoKSksXG4gICAgICAgICAgaGVpZ2h0OiBnZXRTY2FsZWRTaXplKHBvcnRyYWl0SGVpZ2h0KCkpLFxuICAgICAgICAgIHBvc2l0aW9uVHlwZTogJ2Fic29sdXRlJyxcbiAgICAgICAgICBwb3NpdGlvbjoge1xuICAgICAgICAgICAgYm90dG9tOiBnZXRTY2FsZWRTaXplKHBvc2l0aW9uUG9ydGFpdFkoKSksXG4gICAgICAgICAgICBsZWZ0OiBnZXRTY2FsZWRTaXplKHBvc2l0aW9uUG9ydGFpdFgoKSlcbiAgICAgICAgICB9XG4gICAgICAgIH19XG4gICAgICAgIHVpQmFja2dyb3VuZD17e1xuICAgICAgICAgIHRleHR1cmVNb2RlOiAnc3RyZXRjaCcsXG4gICAgICAgICAgdGV4dHVyZToge1xuICAgICAgICAgICAgc3JjOiBnZXRQb3J0cmFpdCgpXG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIHV2czogZ2V0SW1hZ2VBdGxhc01hcHBpbmcoc2tpcEJ1dHRvblNlY3Rpb24pLFxuICAgICAgICB9fVxuICAgICAgLz5cblxuICAgICAgPFVpRW50aXR5XG4gICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgZGlzcGxheTogZGlzcGxheUltYWdlKCkgPyAnZmxleCcgOiAnbm9uZScsXG4gICAgICAgICAgd2lkdGg6IGdldFNjYWxlZFNpemUoaW1hZ2VXaWR0aCgpKSxcbiAgICAgICAgICBoZWlnaHQ6IGdldFNjYWxlZFNpemUoaW1hZ2VIZWlnaHQoKSksXG4gICAgICAgICAgcG9zaXRpb25UeXBlOiAnYWJzb2x1dGUnLFxuICAgICAgICAgIHBvc2l0aW9uOiB7IGJvdHRvbTogcG9zaXRpb25JbWFnZVkoKSwgcmlnaHQ6IHBvc2l0aW9uSW1hZ2VYKCkgfVxuICAgICAgICB9fVxuICAgICAgICB1aUJhY2tncm91bmQ9e3tcbiAgICAgICAgICB0ZXh0dXJlTW9kZTogJ3N0cmV0Y2gnLFxuICAgICAgICAgIHRleHR1cmU6IHtcbiAgICAgICAgICAgIHNyYzogZ2V0SW1hZ2UoKVxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyB1dnM6IGdldEltYWdlQXRsYXNNYXBwaW5nKHNraXBCdXR0b25TZWN0aW9uKSxcbiAgICAgICAgfX1cbiAgICAgIC8+XG5cbiAgICAgIDxVaUVudGl0eVxuICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgIGRpc3BsYXk6IGRpc3BsYXlTa2lwYWJsZSgpID8gJ2ZsZXgnIDogJ25vbmUnLFxuICAgICAgICAgIHdpZHRoOiBnZXRTY2FsZWRTaXplKDE1KSxcbiAgICAgICAgICBoZWlnaHQ6IGdldFNjYWxlZFNpemUoMTUpLFxuICAgICAgICAgIHBvc2l0aW9uVHlwZTogJ2Fic29sdXRlJyxcbiAgICAgICAgICBwb3NpdGlvbjogeyBib3R0b206ICc3JScsIGxlZnQ6ICcyNSUnIH1cbiAgICAgICAgfX1cbiAgICAgICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgdGV4dHVyZU1vZGU6ICdzdHJldGNoJyxcbiAgICAgICAgICB0ZXh0dXJlOiB7XG4gICAgICAgICAgICBzcmM6IGdldFRoZW1lKClcbiAgICAgICAgICB9LFxuICAgICAgICAgIHV2czogZ2V0SW1hZ2VBdGxhc01hcHBpbmcoZ2V0U2tpcGFibGVUaGVtZSgpKVxuICAgICAgICB9fVxuICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4ge1xuICAgICAgICAgIHNraXBEaWFsb2dzKGFjdGl2ZU5QQylcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgIHBvc2l0aW9uVHlwZTogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgIHBvc2l0aW9uOiB7IGxlZnQ6ICcyMTUlJyB9XG4gICAgICAgICAgfX1cbiAgICAgICAgICB1aVRleHQ9e3tcbiAgICAgICAgICAgIHZhbHVlOiAnU2tpcCcsXG4gICAgICAgICAgICBjb2xvcjogZ2V0VGV4dENvbG9yKCksXG4gICAgICAgICAgICBmb250U2l6ZTogZ2V0U2NhbGVkRm9udFNpemUoMTIpXG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgIDwvVWlFbnRpdHk+XG5cbiAgICAgIDxVaUVudGl0eVxuICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICB3aWR0aDogZ2V0U2NhbGVkU2l6ZSgyNCksXG4gICAgICAgICAgaGVpZ2h0OiBnZXRTY2FsZWRTaXplKDM2KSxcbiAgICAgICAgICBwb3NpdGlvblR5cGU6ICdhYnNvbHV0ZScsXG4gICAgICAgICAgcG9zaXRpb246IHsgYm90dG9tOiAnNSUnLCByaWdodDogJzIlJyB9XG4gICAgICAgIH19XG4gICAgICAgIHVpQmFja2dyb3VuZD17e1xuICAgICAgICAgIHRleHR1cmVNb2RlOiAnc3RyZXRjaCcsXG4gICAgICAgICAgdGV4dHVyZToge1xuICAgICAgICAgICAgc3JjOiBnZXRUaGVtZSgpXG4gICAgICAgICAgfSxcbiAgICAgICAgICB1dnM6IGdldEltYWdlQXRsYXNNYXBwaW5nKGdldExlZnRDbGlja1RoZW1lKCkpXG4gICAgICAgIH19XG4gICAgICAvPlxuXG4gICAgICA8VWlFbnRpdHlcbiAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICBoZWlnaHQ6ICdhdXRvJyxcbiAgICAgICAgICB3aWR0aDogJ2F1dG8nLFxuICAgICAgICAgIGFsaWduU2VsZjogJ2ZsZXgtc3RhcnQnLFxuICAgICAgICAgIGFsaWduSXRlbXM6ICdmbGV4LXN0YXJ0JyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2ZsZXgtc3RhcnQnLFxuICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdyb3cnLFxuICAgICAgICAgIHBvc2l0aW9uOiBnZXRUZXh0UG9zaXRpb24oKSxcbiAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgZmxleEdyb3c6IDEsXG4gICAgICAgICAgbWluSGVpZ2h0OiAxMDBcbiAgICAgICAgfX1cbiAgICAgICAgdWlUZXh0PXt7XG4gICAgICAgICAgdmFsdWU6IGdldFRleHQoKSxcbiAgICAgICAgICBjb2xvcjogZ2V0VGV4dENvbG9yKCksXG4gICAgICAgICAgZm9udFNpemU6IGdldFNjYWxlZEZvbnRTaXplKGdldEZvbnRTaXplKCkpLFxuICAgICAgICAgIHRleHRBbGlnbjogJ21pZGRsZS1sZWZ0J1xuICAgICAgICB9fVxuICAgICAgLz5cblxuICAgICAgPFVpRW50aXR5XG4gICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgd2lkdGg6IGdldFNjYWxlZEJ1dHRvbldpZHRoKDQ1MCksXG4gICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgZmxleERpcmVjdGlvbjogJ3JvdycsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgIGRpc3BsYXk6IGRpc3BsYXlGaXJzdEJ1dHRvbkNvbnRhaW5lcigpID8gJ2ZsZXgnIDogJ25vbmUnLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICB7LyogQnV0dG9uMSAoVG9wLUxlZnQpICovfVxuICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4ge1xuICAgICAgICAgICAgYnV0dG9uQ2xpY2soMClcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICBoZWlnaHQ6ICdhdXRvJyxcbiAgICAgICAgICAgICAgd2lkdGg6IGdldFNjYWxlZFNpemUoMTIpXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICAgIHRleHR1cmVNb2RlOiAnc3RyZXRjaCcsXG4gICAgICAgICAgICAgIHRleHR1cmU6IHtcbiAgICAgICAgICAgICAgICBzcmM6IGdldFRoZW1lKClcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgdXZzOiBnZXRJbWFnZUF0bGFzTWFwcGluZyhkYXJrQnV0dG9uQ29ybmVyKVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgd2lkdGg6IGdldFNjYWxlZEJ1dHRvbldpZHRoKDApLFxuICAgICAgICAgICAgICBtYXhXaWR0aDogZ2V0U2NhbGVkU2l6ZSgzMDApLFxuICAgICAgICAgICAgICBoZWlnaHQ6IGdldFNjYWxlZFNpemUoNDUpLFxuICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAncm93JyxcbiAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnZmxleC1zdGFydCcsXG4gICAgICAgICAgICAgIGFsaWduQ29udGVudDogJ2ZsZXgtc3RhcnQnLFxuICAgICAgICAgICAgICBkaXNwbGF5OiBkaXNwbGF5QnV0dG9uKDEpID8gJ2ZsZXgnIDogJ25vbmUnLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHVpQmFja2dyb3VuZD17e1xuICAgICAgICAgICAgICB0ZXh0dXJlTW9kZTogJ3N0cmV0Y2gnLFxuICAgICAgICAgICAgICB0ZXh0dXJlOiB7XG4gICAgICAgICAgICAgICAgc3JjOiBnZXRUaGVtZSgpXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHV2czogZ2V0SW1hZ2VBdGxhc01hcHBpbmcoZGFya0J1dHRvblNlY3Rpb24pXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICAgIHdpZHRoOiBnZXRTY2FsZWRTaXplKDI1KSxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGdldFNjYWxlZFNpemUoMjUpLFxuICAgICAgICAgICAgICAgIG1hcmdpbjogeyByaWdodDogZ2V0U2NhbGVkU2l6ZSg1KSB9LFxuICAgICAgICAgICAgICAgIHBvc2l0aW9uVHlwZTogJ2Fic29sdXRlJ1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICB1aUJhY2tncm91bmQ9e3tcbiAgICAgICAgICAgICAgICB0ZXh0dXJlTW9kZTogJ3N0cmV0Y2gnLFxuICAgICAgICAgICAgICAgIHRleHR1cmU6IHtcbiAgICAgICAgICAgICAgICAgIHNyYzogZ2V0VGhlbWUoKVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdXZzOiBnZXRJbWFnZUF0bGFzTWFwcGluZyhzZWNvbmRhcnlCdXR0b25TZWN0aW9uKVxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICAgIHdpZHRoOiAnYXV0bycsXG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgICAgICAgICAgIG1heFdpZHRoOiBnZXRTY2FsZWRTaXplKDIxNyksXG4gICAgICAgICAgICAgICAgcGFkZGluZzogeyByaWdodDogZ2V0U2NhbGVkU2l6ZSg1KSB9LFxuICAgICAgICAgICAgICAgIG1hcmdpbjogeyBsZWZ0OiBnZXRTY2FsZWRTaXplKDMwKSB9XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIHVpVGV4dD17eyB2YWx1ZTogZ2V0QnV0dG9uVGV4dCgwKSwgZm9udFNpemU6IGdldFNjYWxlZEZvbnRTaXplKGdldEJ1dHRvbkZvbnRTaXplKDApKSwgdGV4dEFsaWduOiAnbWlkZGxlLWxlZnQnIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvVWlFbnRpdHk+XG4gICAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICBoZWlnaHQ6ICdhdXRvJyxcbiAgICAgICAgICAgICAgd2lkdGg6IGdldFNjYWxlZFNpemUoMTIpLFxuICAgICAgICAgICAgICBtYXJnaW46IHsgcmlnaHQ6ICc1JScgfSxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICB1aUJhY2tncm91bmQ9e3tcbiAgICAgICAgICAgICAgdGV4dHVyZU1vZGU6ICdzdHJldGNoJyxcbiAgICAgICAgICAgICAgdGV4dHVyZToge1xuICAgICAgICAgICAgICAgIHNyYzogZ2V0VGhlbWUoKVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB1dnM6IGdldEltYWdlQXRsYXNNYXBwaW5nKGRhcmtCdXR0b25FZGdlKVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L1VpRW50aXR5PlxuXG4gICAgICAgIHsvKiBCdXR0b24yIChUb3AtUmlnaHQpICovfVxuICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4ge1xuICAgICAgICAgICAgYnV0dG9uQ2xpY2soMSlcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICBoZWlnaHQ6ICdhdXRvJyxcbiAgICAgICAgICAgICAgd2lkdGg6IGdldFNjYWxlZFNpemUoMTIpXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICAgIHRleHR1cmVNb2RlOiAnc3RyZXRjaCcsXG4gICAgICAgICAgICAgIHRleHR1cmU6IHtcbiAgICAgICAgICAgICAgICBzcmM6IGdldFRoZW1lKClcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgdXZzOiBnZXRJbWFnZUF0bGFzTWFwcGluZyhyZWRCdXR0b25Db3JuZXIpXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICB3aWR0aDogZ2V0U2NhbGVkQnV0dG9uV2lkdGgoMSksXG4gICAgICAgICAgICAgIG1heFdpZHRoOiBnZXRTY2FsZWRTaXplKDMwMCksXG4gICAgICAgICAgICAgIGhlaWdodDogZ2V0U2NhbGVkU2l6ZSg0NSksXG4gICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdyb3cnLFxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdmbGV4LXN0YXJ0JyxcbiAgICAgICAgICAgICAgYWxpZ25Db250ZW50OiAnZmxleC1zdGFydCcsXG4gICAgICAgICAgICAgIGRpc3BsYXk6IGRpc3BsYXlCdXR0b24oMikgPyAnZmxleCcgOiAnbm9uZScsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICAgIHRleHR1cmVNb2RlOiAnc3RyZXRjaCcsXG4gICAgICAgICAgICAgIHRleHR1cmU6IHtcbiAgICAgICAgICAgICAgICBzcmM6IGdldFRoZW1lKClcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgdXZzOiBnZXRJbWFnZUF0bGFzTWFwcGluZyhyZWRCdXR0b25TZWN0aW9uKVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgICB3aWR0aDogZ2V0U2NhbGVkU2l6ZSgyNSksXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBnZXRTY2FsZWRTaXplKDI1KSxcbiAgICAgICAgICAgICAgICBtYXJnaW46IHsgcmlnaHQ6IGdldFNjYWxlZFNpemUoNSkgfSxcbiAgICAgICAgICAgICAgICBwb3NpdGlvblR5cGU6ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIHVpQmFja2dyb3VuZD17e1xuICAgICAgICAgICAgICAgIHRleHR1cmVNb2RlOiAnc3RyZXRjaCcsXG4gICAgICAgICAgICAgICAgdGV4dHVyZToge1xuICAgICAgICAgICAgICAgICAgc3JjOiBnZXRUaGVtZSgpXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB1dnM6IGdldEltYWdlQXRsYXNNYXBwaW5nKHByaW1hcnlCdXR0b25TZWN0aW9uKVxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICAgIHdpZHRoOiAnYXV0bycsXG4gICAgICAgICAgICAgICAgbWF4V2lkdGg6IGdldFNjYWxlZFNpemUoMjE3KSxcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgICAgICAgICAgICAgcGFkZGluZzogeyByaWdodDogZ2V0U2NhbGVkU2l6ZSg1KSB9LFxuICAgICAgICAgICAgICAgIG1hcmdpbjogeyBsZWZ0OiBnZXRTY2FsZWRTaXplKDMwKSB9XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIHVpVGV4dD17eyB2YWx1ZTogZ2V0QnV0dG9uVGV4dCgxKSwgZm9udFNpemU6IGdldFNjYWxlZEZvbnRTaXplKGdldEJ1dHRvbkZvbnRTaXplKDEpKSwgdGV4dEFsaWduOiAnbWlkZGxlLWxlZnQnIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvVWlFbnRpdHk+XG4gICAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICBoZWlnaHQ6ICdhdXRvJyxcbiAgICAgICAgICAgICAgd2lkdGg6IGdldFNjYWxlZFNpemUoMTIpXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICAgIHRleHR1cmVNb2RlOiAnc3RyZXRjaCcsXG4gICAgICAgICAgICAgIHRleHR1cmU6IHtcbiAgICAgICAgICAgICAgICBzcmM6IGdldFRoZW1lKClcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgdXZzOiBnZXRJbWFnZUF0bGFzTWFwcGluZyhyZWRCdXR0b25FZGdlKVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L1VpRW50aXR5PlxuICAgICAgPC9VaUVudGl0eT5cblxuICAgICAgey8qIFNlY29uZCByb3cgb2YgYnV0dG9ucyAqL31cbiAgICAgIDxVaUVudGl0eVxuICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgIHdpZHRoOiBnZXRTY2FsZWRCdXR0b25XaWR0aCg0NTApLFxuICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdyb3cnLFxuICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICBtYXJnaW46IHsgdG9wOiBnZXRTY2FsZWRTaXplKDIwKSB9LFxuICAgICAgICAgIGRpc3BsYXk6IGRpc3BsYXlTZWNvbmRCdXR0b25Db250YWluZXIoKSA/ICdmbGV4JyA6ICdub25lJyxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgey8qIEJ1dHRvbjMgKi99XG4gICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgIG9uTW91c2VEb3duPXsoKSA9PiB7XG4gICAgICAgICAgICBidXR0b25DbGljaygzKVxuICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgIGhlaWdodDogJ2F1dG8nLFxuICAgICAgICAgICAgICB3aWR0aDogZ2V0U2NhbGVkU2l6ZSgxMiksXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICAgIHRleHR1cmVNb2RlOiAnc3RyZXRjaCcsXG4gICAgICAgICAgICAgIHRleHR1cmU6IHtcbiAgICAgICAgICAgICAgICBzcmM6IGdldFRoZW1lKClcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgdXZzOiBnZXRJbWFnZUF0bGFzTWFwcGluZyhkYXJrQnV0dG9uQ29ybmVyKVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgd2lkdGg6IGdldFNjYWxlZEJ1dHRvbldpZHRoKDIpLFxuICAgICAgICAgICAgICBtYXhXaWR0aDogZ2V0U2NhbGVkU2l6ZSgzMDApLFxuICAgICAgICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgICAgICAgICAgIGhlaWdodDogZ2V0U2NhbGVkU2l6ZSg0NSksXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgIGFsaWduQ29udGVudDogJ2ZsZXgtc3RhcnQnLFxuICAgICAgICAgICAgICBkaXNwbGF5OiBkaXNwbGF5QnV0dG9uKDMpID8gJ2ZsZXgnIDogJ25vbmUnXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICAgIHRleHR1cmVNb2RlOiAnc3RyZXRjaCcsXG4gICAgICAgICAgICAgIHRleHR1cmU6IHtcbiAgICAgICAgICAgICAgICBzcmM6IGdldFRoZW1lKClcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgdXZzOiBnZXRJbWFnZUF0bGFzTWFwcGluZyhkYXJrQnV0dG9uU2VjdGlvbilcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICdhdXRvJyxcbiAgICAgICAgICAgICAgICBtYXhXaWR0aDogZ2V0U2NhbGVkU2l6ZSgyNTIpLFxuICAgICAgICAgICAgICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgdWlUZXh0PXt7IHZhbHVlOiBnZXRCdXR0b25UZXh0KDIpLCBmb250U2l6ZTogZ2V0U2NhbGVkRm9udFNpemUoZ2V0QnV0dG9uRm9udFNpemUoMikpLCB0ZXh0QWxpZ246ICdtaWRkbGUtbGVmdCcgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9VaUVudGl0eT5cbiAgICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgIGhlaWdodDogJ2F1dG8nLFxuICAgICAgICAgICAgICB3aWR0aDogZ2V0U2NhbGVkU2l6ZSgxMiksXG4gICAgICAgICAgICAgIG1hcmdpbjogeyByaWdodDogJzUlJyB9LFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHVpQmFja2dyb3VuZD17e1xuICAgICAgICAgICAgICB0ZXh0dXJlTW9kZTogJ3N0cmV0Y2gnLFxuICAgICAgICAgICAgICB0ZXh0dXJlOiB7XG4gICAgICAgICAgICAgICAgc3JjOiBnZXRUaGVtZSgpXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHV2czogZ2V0SW1hZ2VBdGxhc01hcHBpbmcoZGFya0J1dHRvbkVkZ2UpXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVWlFbnRpdHk+XG5cbiAgICAgICAgey8qIEJ1dHRvbjQgKi99XG4gICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgIG9uTW91c2VEb3duPXsoKSA9PiB7XG4gICAgICAgICAgICBidXR0b25DbGljayg0KVxuICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgIGhlaWdodDogJ2F1dG8nLFxuICAgICAgICAgICAgICB3aWR0aDogZ2V0U2NhbGVkU2l6ZSgxMiksXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICAgIHRleHR1cmVNb2RlOiAnc3RyZXRjaCcsXG4gICAgICAgICAgICAgIHRleHR1cmU6IHtcbiAgICAgICAgICAgICAgICBzcmM6IGdldFRoZW1lKClcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgdXZzOiBnZXRJbWFnZUF0bGFzTWFwcGluZyhkYXJrQnV0dG9uQ29ybmVyKVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgd2lkdGg6IGdldFNjYWxlZEJ1dHRvbldpZHRoKDMpLFxuICAgICAgICAgICAgICBtYXhXaWR0aDogZ2V0U2NhbGVkU2l6ZSgzMDApLFxuICAgICAgICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgICAgICAgICAgIGhlaWdodDogZ2V0U2NhbGVkU2l6ZSg0NSksXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgIGFsaWduQ29udGVudDogJ2ZsZXgtc3RhcnQnLFxuICAgICAgICAgICAgICBkaXNwbGF5OiBkaXNwbGF5QnV0dG9uKDQpID8gJ2ZsZXgnIDogJ25vbmUnLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHVpQmFja2dyb3VuZD17e1xuICAgICAgICAgICAgICB0ZXh0dXJlTW9kZTogJ3N0cmV0Y2gnLFxuICAgICAgICAgICAgICB0ZXh0dXJlOiB7XG4gICAgICAgICAgICAgICAgc3JjOiBnZXRUaGVtZSgpXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHV2czogZ2V0SW1hZ2VBdGxhc01hcHBpbmcoZGFya0J1dHRvblNlY3Rpb24pXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICAgIHdpZHRoOiAnYXV0bycsXG4gICAgICAgICAgICAgICAgbWF4V2lkdGg6IGdldFNjYWxlZFNpemUoMjUyKSxcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIHVpVGV4dD17eyB2YWx1ZTogZ2V0QnV0dG9uVGV4dCgzKSwgZm9udFNpemU6IGdldFNjYWxlZEZvbnRTaXplKGdldEJ1dHRvbkZvbnRTaXplKDMpKSwgdGV4dEFsaWduOiAnbWlkZGxlLWxlZnQnIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvVWlFbnRpdHk+XG4gICAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICBoZWlnaHQ6ICdhdXRvJyxcbiAgICAgICAgICAgICAgd2lkdGg6IGdldFNjYWxlZFNpemUoMTIpLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHVpQmFja2dyb3VuZD17e1xuICAgICAgICAgICAgICB0ZXh0dXJlTW9kZTogJ3N0cmV0Y2gnLFxuICAgICAgICAgICAgICB0ZXh0dXJlOiB7XG4gICAgICAgICAgICAgICAgc3JjOiBnZXRUaGVtZSgpXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHV2czogZ2V0SW1hZ2VBdGxhc01hcHBpbmcoZGFya0J1dHRvbkVkZ2UpXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvVWlFbnRpdHk+XG4gICAgICA8L1VpRW50aXR5PlxuICAgIDwvVWlFbnRpdHk+XG4gIClcbn1cbiJdfQ==
@@ -32,12 +32,36 @@ export declare const sourcesComponentsCoordinates: {
32
32
  sourceLeft: number;
33
33
  sourceTop: number;
34
34
  };
35
+ buttonECorner: {
36
+ sourceWidth: number;
37
+ sourceHeight: number;
38
+ sourceLeft: number;
39
+ sourceTop: number;
40
+ };
41
+ buttonEEdge: {
42
+ sourceWidth: number;
43
+ sourceHeight: number;
44
+ sourceLeft: number;
45
+ sourceTop: number;
46
+ };
35
47
  buttonF: {
36
48
  sourceWidth: number;
37
49
  sourceHeight: number;
38
50
  sourceLeft: number;
39
51
  sourceTop: number;
40
52
  };
53
+ buttonFCorner: {
54
+ sourceWidth: number;
55
+ sourceHeight: number;
56
+ sourceLeft: number;
57
+ sourceTop: number;
58
+ };
59
+ buttonFEdge: {
60
+ sourceWidth: number;
61
+ sourceHeight: number;
62
+ sourceLeft: number;
63
+ sourceTop: number;
64
+ };
41
65
  white: {
42
66
  sourceWidth: number;
43
67
  sourceHeight: number;