@edm-sdui/sdui 1.0.57 → 1.0.59

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.
Binary file
@@ -16,5 +16,6 @@ export var UISize;
16
16
  UISize["ASSET_10"] = "asset_10";
17
17
  UISize["CARD_1"] = "card_1";
18
18
  UISize["CARD_2"] = "card_2";
19
+ UISize["CARD_4"] = "card_4";
19
20
  })(UISize || (UISize = {}));
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWlzaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZHVpL3NyYy9saWIvY29yZS91aXRoZW1lL2VudW1zL3Vpc2l6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxNQW1CWDtBQW5CRCxXQUFZLE1BQU07SUFDaEIsNkJBQW1CLENBQUE7SUFDbkIsNkJBQW1CLENBQUE7SUFDbkIsNkJBQW1CLENBQUE7SUFDbkIsNkJBQW1CLENBQUE7SUFFbkIsNkJBQW1CLENBQUE7SUFDbkIsNkJBQW1CLENBQUE7SUFDbkIsNkJBQW1CLENBQUE7SUFDbkIsNkJBQW1CLENBQUE7SUFDbkIsNkJBQW1CLENBQUE7SUFDbkIsNkJBQW1CLENBQUE7SUFDbkIsNkJBQW1CLENBQUE7SUFDbkIsNkJBQW1CLENBQUE7SUFDbkIsNkJBQW1CLENBQUE7SUFDbkIsK0JBQXFCLENBQUE7SUFFckIsMkJBQWlCLENBQUE7SUFDakIsMkJBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQW5CVyxNQUFNLEtBQU4sTUFBTSxRQW1CakIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBVSVNpemUge1xuICBUSFVNQl8xID0gJ3RodW1iXzEnLCAvLyAxMDB4NTZcbiAgVEhVTUJfMiA9ICd0aHVtYl8yJywgLy8gMTA1eDQwXG4gIFRIVU1CXzMgPSAndGh1bWJfMycsIC8vIDI0MHgxMzVcbiAgVEhVTUJfNCA9ICd0aHVtYl80JywgLy8gMTUweDIxOCAodmVydGljYWwpXG5cbiAgQVNTRVRfMSA9ICdhc3NldF8xJywgLy8gMjZ4MjZcbiAgQVNTRVRfMiA9ICdhc3NldF8yJywgLy8gMTZ4MTZcbiAgQVNTRVRfMyA9ICdhc3NldF8zJywgLy8gODB4ODBcbiAgQVNTRVRfNCA9ICdhc3NldF80JywgLy8gNjB4NjBcbiAgQVNTRVRfNSA9ICdhc3NldF81JywgLy8gMTh4MThcbiAgQVNTRVRfNiA9ICdhc3NldF82JywgLy8gMjB4MjBcbiAgQVNTRVRfNyA9ICdhc3NldF83JywgLy8gMjJ4MjJcbiAgQVNTRVRfOCA9ICdhc3NldF84JywgLy8gMjR4MjRcbiAgQVNTRVRfOSA9ICdhc3NldF85JywgLy8gNDh4NDhcbiAgQVNTRVRfMTAgPSAnYXNzZXRfMTAnLCAvLyAzMHgzMFxuXG4gIENBUkRfMSA9ICdjYXJkXzEnLCAvLyAzMjB4MzIwXG4gIENBUkRfMiA9ICdjYXJkXzInLCAvLyA1ODB4MjQwXG59XG4iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWlzaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZHVpL3NyYy9saWIvY29yZS91aXRoZW1lL2VudW1zL3Vpc2l6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxNQW9CWDtBQXBCRCxXQUFZLE1BQU07SUFDaEIsNkJBQW1CLENBQUE7SUFDbkIsNkJBQW1CLENBQUE7SUFDbkIsNkJBQW1CLENBQUE7SUFDbkIsNkJBQW1CLENBQUE7SUFFbkIsNkJBQW1CLENBQUE7SUFDbkIsNkJBQW1CLENBQUE7SUFDbkIsNkJBQW1CLENBQUE7SUFDbkIsNkJBQW1CLENBQUE7SUFDbkIsNkJBQW1CLENBQUE7SUFDbkIsNkJBQW1CLENBQUE7SUFDbkIsNkJBQW1CLENBQUE7SUFDbkIsNkJBQW1CLENBQUE7SUFDbkIsNkJBQW1CLENBQUE7SUFDbkIsK0JBQXFCLENBQUE7SUFFckIsMkJBQWlCLENBQUE7SUFDakIsMkJBQWlCLENBQUE7SUFDakIsMkJBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQXBCVyxNQUFNLEtBQU4sTUFBTSxRQW9CakIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBVSVNpemUge1xuICBUSFVNQl8xID0gJ3RodW1iXzEnLCAvLyAxMDB4NTZcbiAgVEhVTUJfMiA9ICd0aHVtYl8yJywgLy8gMTA1eDQwXG4gIFRIVU1CXzMgPSAndGh1bWJfMycsIC8vIDI0MHgxMzVcbiAgVEhVTUJfNCA9ICd0aHVtYl80JywgLy8gMTUweDIxOCAodmVydGljYWwpXG5cbiAgQVNTRVRfMSA9ICdhc3NldF8xJywgLy8gMjZ4MjZcbiAgQVNTRVRfMiA9ICdhc3NldF8yJywgLy8gMTZ4MTZcbiAgQVNTRVRfMyA9ICdhc3NldF8zJywgLy8gODB4ODBcbiAgQVNTRVRfNCA9ICdhc3NldF80JywgLy8gNjB4NjBcbiAgQVNTRVRfNSA9ICdhc3NldF81JywgLy8gMTh4MThcbiAgQVNTRVRfNiA9ICdhc3NldF82JywgLy8gMjB4MjBcbiAgQVNTRVRfNyA9ICdhc3NldF83JywgLy8gMjJ4MjJcbiAgQVNTRVRfOCA9ICdhc3NldF84JywgLy8gMjR4MjRcbiAgQVNTRVRfOSA9ICdhc3NldF85JywgLy8gNDh4NDhcbiAgQVNTRVRfMTAgPSAnYXNzZXRfMTAnLCAvLyAzMHgzMFxuXG4gIENBUkRfMSA9ICdjYXJkXzEnLCAvLyAzMjB4MzIwXG4gIENBUkRfMiA9ICdjYXJkXzInLCAvLyA1ODB4MjQwXG4gIENBUkRfNCA9ICdjYXJkXzQnLCAvLyAzNzV4NjY3XG59XG4iXX0=
@@ -1,38 +1,25 @@
1
1
  import { UISize } from '../enums/uisize';
2
- export const sizeMappingHeight = {
3
- [UISize.THUMB_1]: '56px',
4
- [UISize.THUMB_2]: '40px',
5
- [UISize.THUMB_3]: '118px',
6
- [UISize.THUMB_4]: '169px',
7
- [UISize.ASSET_1]: '26px',
8
- [UISize.ASSET_2]: '16px',
9
- [UISize.ASSET_3]: '80px',
10
- [UISize.ASSET_4]: '60px',
11
- [UISize.ASSET_5]: '18px',
12
- [UISize.ASSET_6]: '20px',
13
- [UISize.ASSET_7]: '22px',
14
- [UISize.ASSET_8]: '24px',
15
- [UISize.ASSET_9]: '48px',
16
- [UISize.ASSET_10]: '30px',
17
- [UISize.CARD_1]: '201px',
18
- [UISize.CARD_2]: '311px',
2
+ export const sizeMapping = {
3
+ [UISize.THUMB_1]: { width: '100px', height: '56px', scalable: false },
4
+ [UISize.THUMB_2]: { width: '105px', height: '40px', scalable: false },
5
+ [UISize.THUMB_3]: { width: '210px', height: '118px', scalable: true },
6
+ [UISize.THUMB_4]: { width: '300px', height: '169px', scalable: true },
7
+ [UISize.ASSET_1]: { width: '26px', height: '26px', scalable: false },
8
+ [UISize.ASSET_2]: { width: '16px', height: '16px', scalable: false },
9
+ [UISize.ASSET_3]: { width: '80px', height: '80px', scalable: false },
10
+ [UISize.ASSET_4]: { width: '60px', height: '60px', scalable: false },
11
+ [UISize.ASSET_5]: { width: '18px', height: '18px', scalable: false },
12
+ [UISize.ASSET_6]: { width: '20px', height: '20px', scalable: false },
13
+ [UISize.ASSET_7]: { width: '22px', height: '22px', scalable: false },
14
+ [UISize.ASSET_8]: { width: '24px', height: '24px', scalable: false },
15
+ [UISize.ASSET_9]: { width: '48px', height: '48px', scalable: false },
16
+ [UISize.ASSET_10]: { width: '30px', height: '30px', scalable: false },
17
+ [UISize.CARD_1]: { width: '210px', height: '201px', scalable: true },
18
+ [UISize.CARD_2]: { width: '300px', height: '311px', scalable: true },
19
+ [UISize.CARD_4]: { width: '210px', height: '224px', scalable: true },
19
20
  };
20
- export const sizeMappingWidth = {
21
- [UISize.THUMB_1]: '100px',
22
- [UISize.THUMB_2]: '105px',
23
- [UISize.THUMB_3]: '210px',
24
- [UISize.THUMB_4]: '300px',
25
- [UISize.ASSET_1]: '26px',
26
- [UISize.ASSET_2]: '16px',
27
- [UISize.ASSET_3]: '80px',
28
- [UISize.ASSET_4]: '60px',
29
- [UISize.ASSET_5]: '18px',
30
- [UISize.ASSET_6]: '20px',
31
- [UISize.ASSET_7]: '22px',
32
- [UISize.ASSET_8]: '24px',
33
- [UISize.ASSET_9]: '48px',
34
- [UISize.ASSET_10]: '30px',
35
- [UISize.CARD_1]: '210px',
36
- [UISize.CARD_2]: '300px',
37
- };
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l6ZS1tYXBwaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZHVpL3NyYy9saWIvY29yZS91aXRoZW1lL21hcHBpbmcvc2l6ZS1tYXBwaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBMkI7SUFDdkQsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTTtJQUN4QixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNO0lBQ3hCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU87SUFDekIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTztJQUV6QixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNO0lBQ3hCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU07SUFDeEIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTTtJQUN4QixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNO0lBQ3hCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU07SUFDeEIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTTtJQUN4QixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNO0lBQ3hCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU07SUFDeEIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTTtJQUN4QixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxNQUFNO0lBQ3pCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU87SUFDeEIsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTztDQUV6QixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQTJCO0lBQ3RELENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU87SUFDekIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTztJQUN6QixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPO0lBQ3pCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU87SUFFekIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTTtJQUN4QixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNO0lBQ3hCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU07SUFDeEIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTTtJQUN4QixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNO0lBQ3hCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU07SUFDeEIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTTtJQUN4QixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNO0lBQ3hCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU07SUFDeEIsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsTUFBTTtJQUN6QixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPO0lBQ3hCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU87Q0FDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVJU2l6ZSB9IGZyb20gJy4uL2VudW1zL3Vpc2l6ZSc7XG5cbmV4cG9ydCBjb25zdCBzaXplTWFwcGluZ0hlaWdodDogUmVjb3JkPFVJU2l6ZSwgc3RyaW5nPiA9IHtcbiAgW1VJU2l6ZS5USFVNQl8xXTogJzU2cHgnLFxuICBbVUlTaXplLlRIVU1CXzJdOiAnNDBweCcsXG4gIFtVSVNpemUuVEhVTUJfM106ICcxMThweCcsXG4gIFtVSVNpemUuVEhVTUJfNF06ICcxNjlweCcsXG5cbiAgW1VJU2l6ZS5BU1NFVF8xXTogJzI2cHgnLFxuICBbVUlTaXplLkFTU0VUXzJdOiAnMTZweCcsXG4gIFtVSVNpemUuQVNTRVRfM106ICc4MHB4JyxcbiAgW1VJU2l6ZS5BU1NFVF80XTogJzYwcHgnLFxuICBbVUlTaXplLkFTU0VUXzVdOiAnMThweCcsXG4gIFtVSVNpemUuQVNTRVRfNl06ICcyMHB4JyxcbiAgW1VJU2l6ZS5BU1NFVF83XTogJzIycHgnLFxuICBbVUlTaXplLkFTU0VUXzhdOiAnMjRweCcsXG4gIFtVSVNpemUuQVNTRVRfOV06ICc0OHB4JyxcbiAgW1VJU2l6ZS5BU1NFVF8xMF06ICczMHB4JyxcbiAgW1VJU2l6ZS5DQVJEXzFdOiAnMjAxcHgnLFxuICBbVUlTaXplLkNBUkRfMl06ICczMTFweCcsXG5cbn07XG5cbmV4cG9ydCBjb25zdCBzaXplTWFwcGluZ1dpZHRoOiBSZWNvcmQ8VUlTaXplLCBzdHJpbmc+ID0ge1xuICBbVUlTaXplLlRIVU1CXzFdOiAnMTAwcHgnLFxuICBbVUlTaXplLlRIVU1CXzJdOiAnMTA1cHgnLFxuICBbVUlTaXplLlRIVU1CXzNdOiAnMjEwcHgnLFxuICBbVUlTaXplLlRIVU1CXzRdOiAnMzAwcHgnLFxuXG4gIFtVSVNpemUuQVNTRVRfMV06ICcyNnB4JyxcbiAgW1VJU2l6ZS5BU1NFVF8yXTogJzE2cHgnLFxuICBbVUlTaXplLkFTU0VUXzNdOiAnODBweCcsXG4gIFtVSVNpemUuQVNTRVRfNF06ICc2MHB4JyxcbiAgW1VJU2l6ZS5BU1NFVF81XTogJzE4cHgnLFxuICBbVUlTaXplLkFTU0VUXzZdOiAnMjBweCcsXG4gIFtVSVNpemUuQVNTRVRfN106ICcyMnB4JyxcbiAgW1VJU2l6ZS5BU1NFVF84XTogJzI0cHgnLFxuICBbVUlTaXplLkFTU0VUXzldOiAnNDhweCcsXG4gIFtVSVNpemUuQVNTRVRfMTBdOiAnMzBweCcsXG4gIFtVSVNpemUuQ0FSRF8xXTogJzIxMHB4JyxcbiAgW1VJU2l6ZS5DQVJEXzJdOiAnMzAwcHgnLFxufTtcbiJdfQ==
21
+ /** @deprecated Use `sizeMapping[size].height` */
22
+ export const sizeMappingHeight = Object.fromEntries(Object.entries(sizeMapping).map(([key, config]) => [key, config.height]));
23
+ /** @deprecated Use `sizeMapping[size].width` */
24
+ export const sizeMappingWidth = Object.fromEntries(Object.entries(sizeMapping).map(([key, config]) => [key, config.width]));
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l6ZS1tYXBwaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZHVpL3NyYy9saWIvY29yZS91aXRoZW1lL21hcHBpbmcvc2l6ZS1tYXBwaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQVF6QyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQStCO0lBQ3JELENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFHLFFBQVEsRUFBRSxLQUFLLEVBQUU7SUFDdEUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUcsUUFBUSxFQUFFLEtBQUssRUFBRTtJQUN0RSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO0lBQ3JFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7SUFFckUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtJQUNyRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO0lBQ3JFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7SUFDckUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtJQUNyRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO0lBQ3JFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7SUFDckUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtJQUNyRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO0lBQ3JFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7SUFDckUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtJQUVyRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO0lBQ3BFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7SUFDcEUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtDQUNyRSxDQUFDO0FBRUYsaURBQWlEO0FBQ2pELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUEyQixNQUFNLENBQUMsV0FBVyxDQUN6RSxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FDL0MsQ0FBQztBQUU1QixnREFBZ0Q7QUFDaEQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQTJCLE1BQU0sQ0FBQyxXQUFXLENBQ3hFLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUM5QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVUlTaXplIH0gZnJvbSAnLi4vZW51bXMvdWlzaXplJztcblxuZXhwb3J0IGludGVyZmFjZSBTaXplQ29uZmlnIHtcbiAgd2lkdGg6IHN0cmluZztcbiAgaGVpZ2h0OiBzdHJpbmc7XG4gIHNjYWxhYmxlOiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3Qgc2l6ZU1hcHBpbmc6IFJlY29yZDxVSVNpemUsIFNpemVDb25maWc+ID0ge1xuICBbVUlTaXplLlRIVU1CXzFdOiB7IHdpZHRoOiAnMTAwcHgnLCBoZWlnaHQ6ICc1NnB4JywgIHNjYWxhYmxlOiBmYWxzZSB9LFxuICBbVUlTaXplLlRIVU1CXzJdOiB7IHdpZHRoOiAnMTA1cHgnLCBoZWlnaHQ6ICc0MHB4JywgIHNjYWxhYmxlOiBmYWxzZSB9LFxuICBbVUlTaXplLlRIVU1CXzNdOiB7IHdpZHRoOiAnMjEwcHgnLCBoZWlnaHQ6ICcxMThweCcsIHNjYWxhYmxlOiB0cnVlIH0sXG4gIFtVSVNpemUuVEhVTUJfNF06IHsgd2lkdGg6ICczMDBweCcsIGhlaWdodDogJzE2OXB4Jywgc2NhbGFibGU6IHRydWUgfSxcblxuICBbVUlTaXplLkFTU0VUXzFdOiAgeyB3aWR0aDogJzI2cHgnLCBoZWlnaHQ6ICcyNnB4Jywgc2NhbGFibGU6IGZhbHNlIH0sXG4gIFtVSVNpemUuQVNTRVRfMl06ICB7IHdpZHRoOiAnMTZweCcsIGhlaWdodDogJzE2cHgnLCBzY2FsYWJsZTogZmFsc2UgfSxcbiAgW1VJU2l6ZS5BU1NFVF8zXTogIHsgd2lkdGg6ICc4MHB4JywgaGVpZ2h0OiAnODBweCcsIHNjYWxhYmxlOiBmYWxzZSB9LFxuICBbVUlTaXplLkFTU0VUXzRdOiAgeyB3aWR0aDogJzYwcHgnLCBoZWlnaHQ6ICc2MHB4Jywgc2NhbGFibGU6IGZhbHNlIH0sXG4gIFtVSVNpemUuQVNTRVRfNV06ICB7IHdpZHRoOiAnMThweCcsIGhlaWdodDogJzE4cHgnLCBzY2FsYWJsZTogZmFsc2UgfSxcbiAgW1VJU2l6ZS5BU1NFVF82XTogIHsgd2lkdGg6ICcyMHB4JywgaGVpZ2h0OiAnMjBweCcsIHNjYWxhYmxlOiBmYWxzZSB9LFxuICBbVUlTaXplLkFTU0VUXzddOiAgeyB3aWR0aDogJzIycHgnLCBoZWlnaHQ6ICcyMnB4Jywgc2NhbGFibGU6IGZhbHNlIH0sXG4gIFtVSVNpemUuQVNTRVRfOF06ICB7IHdpZHRoOiAnMjRweCcsIGhlaWdodDogJzI0cHgnLCBzY2FsYWJsZTogZmFsc2UgfSxcbiAgW1VJU2l6ZS5BU1NFVF85XTogIHsgd2lkdGg6ICc0OHB4JywgaGVpZ2h0OiAnNDhweCcsIHNjYWxhYmxlOiBmYWxzZSB9LFxuICBbVUlTaXplLkFTU0VUXzEwXTogeyB3aWR0aDogJzMwcHgnLCBoZWlnaHQ6ICczMHB4Jywgc2NhbGFibGU6IGZhbHNlIH0sXG5cbiAgW1VJU2l6ZS5DQVJEXzFdOiB7IHdpZHRoOiAnMjEwcHgnLCBoZWlnaHQ6ICcyMDFweCcsIHNjYWxhYmxlOiB0cnVlIH0sXG4gIFtVSVNpemUuQ0FSRF8yXTogeyB3aWR0aDogJzMwMHB4JywgaGVpZ2h0OiAnMzExcHgnLCBzY2FsYWJsZTogdHJ1ZSB9LFxuICBbVUlTaXplLkNBUkRfNF06IHsgd2lkdGg6ICcyMTBweCcsIGhlaWdodDogJzIyNHB4Jywgc2NhbGFibGU6IHRydWUgfSxcbn07XG5cbi8qKiBAZGVwcmVjYXRlZCBVc2UgYHNpemVNYXBwaW5nW3NpemVdLmhlaWdodGAgKi9cbmV4cG9ydCBjb25zdCBzaXplTWFwcGluZ0hlaWdodDogUmVjb3JkPFVJU2l6ZSwgc3RyaW5nPiA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgT2JqZWN0LmVudHJpZXMoc2l6ZU1hcHBpbmcpLm1hcCgoW2tleSwgY29uZmlnXSkgPT4gW2tleSwgY29uZmlnLmhlaWdodF0pXG4pIGFzIFJlY29yZDxVSVNpemUsIHN0cmluZz47XG5cbi8qKiBAZGVwcmVjYXRlZCBVc2UgYHNpemVNYXBwaW5nW3NpemVdLndpZHRoYCAqL1xuZXhwb3J0IGNvbnN0IHNpemVNYXBwaW5nV2lkdGg6IFJlY29yZDxVSVNpemUsIHN0cmluZz4gPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gIE9iamVjdC5lbnRyaWVzKHNpemVNYXBwaW5nKS5tYXAoKFtrZXksIGNvbmZpZ10pID0+IFtrZXksIGNvbmZpZy53aWR0aF0pXG4pIGFzIFJlY29yZDxVSVNpemUsIHN0cmluZz47XG4iXX0=
@@ -10,8 +10,7 @@ import { justifyMapping } from '../core/uitheme/mapping/justify-mapping';
10
10
  import { Router } from '@angular/router';
11
11
  import { UIScreenViewModel } from '../core/view-models/uiscreen.viewmodel';
12
12
  import { UIActionService } from '../core/services/ui-action.service';
13
- import { UISize } from '../core/uitheme/enums/uisize';
14
- import { sizeMappingHeight, sizeMappingWidth } from '../core/uitheme/mapping/size-mapping';
13
+ import { sizeMapping } from '../core/uitheme/mapping/size-mapping';
15
14
  import { UIScreenContainerType } from '../core/uicomposition/enums/uiscreen-container-type';
16
15
  import * as i0 from "@angular/core";
17
16
  import * as i1 from "@angular/router";
@@ -236,18 +235,18 @@ export class UIViewDirective {
236
235
  applyAspectRatio(aspectRatio) {
237
236
  }
238
237
  applySize(size) {
239
- if (size) {
240
- let widthValue = sizeMappingWidth[size];
241
- let heightValue = sizeMappingHeight[size];
242
- if (this.isSmallScreen() &&
243
- this.currentContainer === UIScreenContainerType.FLUID &&
244
- (size === UISize.CARD_1 || size === UISize.CARD_2 || size === UISize.THUMB_3 || size === UISize.THUMB_4)) {
245
- widthValue = this.scalePixelValue(widthValue, 1.1);
246
- heightValue = this.scalePixelValue(heightValue, 1.1);
247
- }
248
- this.renderer.setStyle(this.elementRef.nativeElement, 'width', widthValue);
249
- this.renderer.setStyle(this.elementRef.nativeElement, 'height', heightValue);
250
- }
238
+ const config = sizeMapping[size];
239
+ if (!config)
240
+ return;
241
+ let { width: widthValue, height: heightValue } = config;
242
+ if (config.scalable &&
243
+ this.isSmallScreen() &&
244
+ this.currentContainer === UIScreenContainerType.FLUID) {
245
+ widthValue = this.scalePixelValue(widthValue, 1.1);
246
+ heightValue = this.scalePixelValue(heightValue, 1.1);
247
+ }
248
+ this.renderer.setStyle(this.elementRef.nativeElement, 'width', widthValue);
249
+ this.renderer.setStyle(this.elementRef.nativeElement, 'height', heightValue);
251
250
  }
252
251
  applyHoverVars(uiView) {
253
252
  const hover = uiView?.hover ?? uiView?.element?.hover;
@@ -400,4 +399,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
400
399
  type: HostListener,
401
400
  args: ['click', ['$event']]
402
401
  }] } });
403
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWl2aWV3LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2R1aS9zcmMvbGliL2RpcmVjdGl2ZXMvdWl2aWV3LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLFFBQVEsRUFDUixTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFhdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsdUJBQXVCLEdBQ3hCLE1BQU0sd0NBQXdDLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDOzs7OztBQU01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T0FBMkI7UUFDNUUsSUFBSSxPQUFPLENBQUMsRUFBRSxJQUFJLE9BQU8sQ0FBQyxFQUFFLEtBQUssT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQzdDLE9BQU8sT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNwQixDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQXVCLENBQUM7UUFDaEUsSUFBSSxTQUFTLEVBQUUsRUFBRSxJQUFJLFNBQVMsQ0FBQyxFQUFFLEtBQUssT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2xELE9BQU8sU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUN0QixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOytHQXpqQlUsZUFBZTttR0FBZixlQUFlOzs0RkFBZixlQUFlO2tCQUozQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixVQUFVLEVBQUUsS0FBSztpQkFDbEI7OzBCQWtCSSxRQUFRO3lDQWhCRixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBdWROLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxlQUFlO2dCQVU3QixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9wdGlvbmFsLFxuICBSZW5kZXJlcjIsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVUlWaWV3IH0gZnJvbSAnLi4vY29yZS91aWNvbXBvc2l0aW9uL21vZGVscy91aXZpZXcnO1xuaW1wb3J0IHsgVUlQYWRkaW5nIH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL21vZGVscy91aXBhZGRpbmcnO1xuaW1wb3J0IHsgVUlCYWNrZ3JvdW5kIH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL21vZGVscy91aWJhY2tncm91bmQnO1xuaW1wb3J0IHsgVUlBY3Rpb24gfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbW9kZWxzL3VpYWN0aW9uJztcbmltcG9ydCB7IFVJQWxpZ25tZW50IH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL21vZGVscy91aWFsaWdubWVudCc7XG5pbXBvcnQgeyBVSVNoYWRvdyB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tb2RlbHMvdWlzaGFkb3cnO1xuaW1wb3J0IHsgVUlSYWRpdXMgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbW9kZWxzL3VpcmFkaXVzJztcbmltcG9ydCB7IFVJU3BhY2luZyB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tb2RlbHMvdWlzcGFjaW5nJztcbmltcG9ydCB7IFVJQ29sb3IgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvZW51bXMvdWljb2xvcic7XG5pbXBvcnQgeyBVSUp1c3RpZnkgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvZW51bXMvdWlqdXN0aWZ5JztcbmltcG9ydCB7IFVJRGltZW5zaW9uIH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL2VudW1zL3VpZGltZW5zaW9uJztcbmltcG9ydCB7IFVJQ29udGVudEluc2V0IH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL21vZGVscy91aWNvbnRlbnQtaW5zZXQnO1xuaW1wb3J0IHsgc3BhY2VNYXBwaW5nIH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL21hcHBpbmcvc3BhY2UtbWFwcGluZyc7XG5pbXBvcnQgeyBjb2xvck1hcHBpbmcgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbWFwcGluZy9jb2xvci1tYXBwaW5nJztcbmltcG9ydCB7IHBhZE1hcHBpbmcgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbWFwcGluZy9wYWQtbWFwcGluZyc7XG5pbXBvcnQgeyByYWRpdXNNYXBwaW5nIH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL21hcHBpbmcvcmFkaXVzLW1hcHBpbmcnO1xuaW1wb3J0IHsgYWxpZ25tZW50TWFwcGluZyB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tYXBwaW5nL2FsaWdubWVudC1tYXBwaW5nJztcbmltcG9ydCB7IGRpbWVuc2lvbk1hcHBpbmcgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbWFwcGluZy9kaW1lbnNpb24tbWFwcGluZyc7XG5pbXBvcnQge1xuICBzaGFkb3dPZmZzZXRNYXBwaW5nLFxuICBzaGFkb3dCbHVyUmFkaXVzTWFwcGluZyxcbn0gZnJvbSAnLi4vY29yZS91aXRoZW1lL21hcHBpbmcvc2hhZG93LW1hcHBpbmcnO1xuaW1wb3J0IHsganVzdGlmeU1hcHBpbmcgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbWFwcGluZy9qdXN0aWZ5LW1hcHBpbmcnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFVJU2NyZWVuVmlld01vZGVsIH0gZnJvbSAnLi4vY29yZS92aWV3LW1vZGVscy91aXNjcmVlbi52aWV3bW9kZWwnO1xuaW1wb3J0IHsgVUlBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9zZXJ2aWNlcy91aS1hY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBVSVNpemUgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvZW51bXMvdWlzaXplJztcbmltcG9ydCB7IHNpemVNYXBwaW5nSGVpZ2h0LCBzaXplTWFwcGluZ1dpZHRoIH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL21hcHBpbmcvc2l6ZS1tYXBwaW5nJztcbmltcG9ydCB7IFVJU2NyZWVuQ29udGFpbmVyVHlwZSB9IGZyb20gJy4uL2NvcmUvdWljb21wb3NpdGlvbi9lbnVtcy91aXNjcmVlbi1jb250YWluZXItdHlwZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tlZG1TZHVpVmlld10nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgVUlWaWV3RGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgZWRtU2R1aVZpZXc/OiBVSVZpZXc7XG4gIEBJbnB1dCgpIGRpc2FibGVDbGljazogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBFWFBMT1JFX0xBU1RfQU5DSE9SX0tFWSA9ICdleHBsb3JlTGFzdEFuY2hvcic7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEVYUExPUkVfTEFTVF9ST1dfSU5ERVhfS0VZID0gJ2V4cGxvcmVMYXN0Um93SW5kZXgnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBFWFBMT1JFX0xBU1RfUk9XX1NDUk9MTF9MRUZUX0tFWSA9ICdleHBsb3JlTGFzdFJvd1Njcm9sbExlZnQnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBFWFBMT1JFX0xBU1RfSVRFTV9JRF9LRVkgPSAnZXhwbG9yZUxhc3RJdGVtSWQnO1xuXG4gIHByaXZhdGUgbGFzdFVpVmlldzogVUlWaWV3IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgd2FzU21hbGxTY3JlZW4gPSB0aGlzLmlzU21hbGxTY3JlZW4oKTtcbiAgcHJpdmF0ZSBjdXJyZW50Q29udGFpbmVyOiBVSVNjcmVlbkNvbnRhaW5lclR5cGUgPSBVSVNjcmVlbkNvbnRhaW5lclR5cGUuQ09OVEFJTkVEO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGFjdGlvblNlcnZpY2U6IFVJQWN0aW9uU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHNjcmVlblZpZXdNb2RlbDogVUlTY3JlZW5WaWV3TW9kZWxcbiAgKSB7XG4gICAgaWYgKHRoaXMuc2NyZWVuVmlld01vZGVsKSB7XG4gICAgICB0aGlzLnNjcmVlblZpZXdNb2RlbC51aVNjcmVlbiQuc3Vic2NyaWJlKChzY3JlZW4pID0+IHtcbiAgICAgICAgdGhpcy5jdXJyZW50Q29udGFpbmVyID1cbiAgICAgICAgICBzY3JlZW4/LmNvbmZpZz8uY29udGFpbmVyID8/IFVJU2NyZWVuQ29udGFpbmVyVHlwZS5DT05UQUlORUQ7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZWRtU2R1aVZpZXcpIHtcbiAgICAgIHRoaXMubGFzdFVpVmlldyA9IHRoaXMuZWRtU2R1aVZpZXc7XG4gICAgICB0aGlzLmFwcGx5U3R5bGVzKHRoaXMuZWRtU2R1aVZpZXcpO1xuICAgICAgdGhpcy53YXNTbWFsbFNjcmVlbiA9IHRoaXMuaXNTbWFsbFNjcmVlbigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlTdHlsZXModWlWaWV3OiBVSVZpZXcpIHtcbiAgICBpZiAodWlWaWV3LmlkKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdpZCcsXG4gICAgICAgIFN0cmluZyh1aVZpZXcuaWQpXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh1aVZpZXcucGFkZGluZykge1xuICAgICAgdGhpcy5hcHBseVBhZGRpbmcodWlWaWV3LnBhZGRpbmcpO1xuICAgIH1cblxuICAgIGlmICh1aVZpZXcuY29udGVudEluc2V0KSB7XG4gICAgICB0aGlzLmFwcGx5Q29udGVudEluc2V0KHVpVmlldy5jb250ZW50SW5zZXQpO1xuICAgIH1cblxuICAgIGlmICh1aVZpZXcuYmFja2dyb3VuZCkge1xuICAgICAgdGhpcy5hcHBseUJhY2tncm91bmQodWlWaWV3LmJhY2tncm91bmQpO1xuICAgIH1cblxuICAgIGlmICh1aVZpZXcuYWN0aW9uKSB7XG4gICAgICB0aGlzLmFwcGx5QWN0aW9uKHVpVmlldy5hY3Rpb24pO1xuICAgIH1cblxuICAgIGlmICh1aVZpZXcuYWxpZ25tZW50KSB7XG4gICAgICB0aGlzLmFwcGx5QWxpZ25tZW50KHVpVmlldy5hbGlnbm1lbnQpO1xuICAgIH1cblxuICAgIGlmICh1aVZpZXcuc2hhZG93KSB7XG4gICAgICB0aGlzLmFwcGx5U2hhZG93KHVpVmlldy5zaGFkb3cpO1xuICAgIH1cblxuICAgIGlmICh1aVZpZXcucmFkaXVzKSB7XG4gICAgICB0aGlzLmFwcGx5UmFkaXVzKHVpVmlldy5yYWRpdXMpO1xuICAgIH1cblxuICAgIGlmICh1aVZpZXcuc3BhY2luZykge1xuICAgICAgdGhpcy5hcHBseVNwYWNpbmcodWlWaWV3LnNwYWNpbmcpO1xuICAgIH1cblxuICAgIGlmICh1aVZpZXcuaGVpZ2h0KSB7XG4gICAgICB0aGlzLmFwcGx5SGVpZ2h0KHVpVmlldy5oZWlnaHQpO1xuICAgIH1cblxuICAgIGlmICh1aVZpZXcud2lkdGgpIHtcbiAgICAgIHRoaXMuYXBwbHlXaWR0aCh1aVZpZXcud2lkdGgpO1xuICAgIH1cblxuICAgIGlmICh1aVZpZXcuYm9yZGVyV2lkdGgpIHtcbiAgICAgIHRoaXMuYXBwbHlCb3JkZXJXaWR0aCh1aVZpZXcuYm9yZGVyV2lkdGgpO1xuICAgIH1cblxuICAgIGlmICh1aVZpZXcuYm9yZGVyQ29sb3IpIHtcbiAgICAgIHRoaXMuYXBwbHlCb3JkZXJDb2xvcih1aVZpZXcuYm9yZGVyQ29sb3IpO1xuICAgIH1cblxuICAgIGlmICh1aVZpZXcuanVzdGlmeSkge1xuICAgICAgdGhpcy5hcHBseUp1c3RpZnkodWlWaWV3Lmp1c3RpZnkpO1xuICAgIH1cblxuICAgIGlmICh1aVZpZXcuc2l6ZSkge1xuICAgICAgdGhpcy5hcHBseVNpemUodWlWaWV3LnNpemUpO1xuICAgIH1cbiAgICBpZiAodWlWaWV3LmFzcGVjdFJhdGlvICE9PSBudWxsICYmIHVpVmlldy5hc3BlY3RSYXRpbyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmFwcGx5QXNwZWN0UmF0aW8odWlWaWV3LmFzcGVjdFJhdGlvKTtcbiAgICB9XG5cbiAgICBpZih1aVZpZXcuaG92ZXIpe1xuICAgICAgdGhpcy5hcHBseUhvdmVyVmFycyh1aVZpZXcpO1xuICAgIH1cblxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVBhZGRpbmcodWlQYWRkaW5nOiBVSVBhZGRpbmcpIHtcbiAgICBpZiAodWlQYWRkaW5nLnRvcCkge1xuICAgICAgY29uc3QgcGFkVmFsdWUgPSBwYWRNYXBwaW5nW3VpUGFkZGluZy50b3BdO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdwYWRkaW5nLXRvcCcsXG4gICAgICAgIHBhZFZhbHVlXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodWlQYWRkaW5nLmxlZnQpIHtcbiAgICAgIGNvbnN0IHBhZFZhbHVlID0gcGFkTWFwcGluZ1t1aVBhZGRpbmcubGVmdF07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ3BhZGRpbmctbGVmdCcsXG4gICAgICAgIHBhZFZhbHVlXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodWlQYWRkaW5nLnJpZ2h0KSB7XG4gICAgICBjb25zdCBwYWRWYWx1ZSA9IHBhZE1hcHBpbmdbdWlQYWRkaW5nLnJpZ2h0XTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAncGFkZGluZy1yaWdodCcsXG4gICAgICAgIHBhZFZhbHVlXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodWlQYWRkaW5nLmJvdHRvbSkge1xuICAgICAgY29uc3QgcGFkVmFsdWUgPSBwYWRNYXBwaW5nW3VpUGFkZGluZy5ib3R0b21dO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdwYWRkaW5nLWJvdHRvbScsXG4gICAgICAgIHBhZFZhbHVlXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlDb250ZW50SW5zZXQodWlDb250ZW50SW5zZXQ6IFVJQ29udGVudEluc2V0KSB7XG4gICAgaWYgKHVpQ29udGVudEluc2V0LnRvcCkge1xuICAgICAgY29uc3QgaW5zZXRWYWx1ZSA9IHNwYWNlTWFwcGluZ1t1aUNvbnRlbnRJbnNldC50b3BdO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdwYWRkaW5nLXRvcCcsXG4gICAgICAgIGluc2V0VmFsdWVcbiAgICAgICk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJy0tc2R1aS1jb250ZW50LWluc2V0LXRvcCcsXG4gICAgICAgIGluc2V0VmFsdWVcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHVpQ29udGVudEluc2V0LmxlZnQpIHtcbiAgICAgIGNvbnN0IGluc2V0VmFsdWUgPSBzcGFjZU1hcHBpbmdbdWlDb250ZW50SW5zZXQubGVmdF07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ3BhZGRpbmctbGVmdCcsXG4gICAgICAgIGluc2V0VmFsdWVcbiAgICAgICk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJy0tc2R1aS1jb250ZW50LWluc2V0LWxlZnQnLFxuICAgICAgICBpbnNldFZhbHVlXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh1aUNvbnRlbnRJbnNldC5yaWdodCkge1xuICAgICAgY29uc3QgaW5zZXRWYWx1ZSA9IHNwYWNlTWFwcGluZ1t1aUNvbnRlbnRJbnNldC5yaWdodF07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ3BhZGRpbmctcmlnaHQnLFxuICAgICAgICBpbnNldFZhbHVlXG4gICAgICApO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICctLXNkdWktY29udGVudC1pbnNldC1yaWdodCcsXG4gICAgICAgIGluc2V0VmFsdWVcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHVpQ29udGVudEluc2V0LmJvdHRvbSkge1xuICAgICAgY29uc3QgaW5zZXRWYWx1ZSA9IHNwYWNlTWFwcGluZ1t1aUNvbnRlbnRJbnNldC5ib3R0b21dO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdwYWRkaW5nLWJvdHRvbScsXG4gICAgICAgIGluc2V0VmFsdWVcbiAgICAgICk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJy0tc2R1aS1jb250ZW50LWluc2V0LWJvdHRvbScsXG4gICAgICAgIGluc2V0VmFsdWVcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUJhY2tncm91bmQodWlCYWNrZ3JvdW5kOiBVSUJhY2tncm91bmQpIHtcbiAgICBpZiAodWlCYWNrZ3JvdW5kLmJhY2tncm91bmRDb2xvcikge1xuICAgICAgY29uc3QgYmFja2dyb3VuZENvbG9yID0gY29sb3JNYXBwaW5nW3VpQmFja2dyb3VuZC5iYWNrZ3JvdW5kQ29sb3JdO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJyxcbiAgICAgICAgYmFja2dyb3VuZENvbG9yXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh1aUJhY2tncm91bmQuZ3JhZGllbnRDb2xvcjEgJiYgdWlCYWNrZ3JvdW5kLmdyYWRpZW50Q29sb3IyKSB7XG4gICAgICBjb25zdCBncmFkaWVudENvbG9yMSA9IGNvbG9yTWFwcGluZ1t1aUJhY2tncm91bmQuZ3JhZGllbnRDb2xvcjFdO1xuICAgICAgY29uc3QgZ3JhZGllbnRDb2xvcjIgPSBjb2xvck1hcHBpbmdbdWlCYWNrZ3JvdW5kLmdyYWRpZW50Q29sb3IyXTtcbiAgICAgIGNvbnN0IGdyYWRpZW50U3R5bGVzID0gYGxpbmVhci1ncmFkaWVudCg0NWRlZywgJHtncmFkaWVudENvbG9yMX0sICR7Z3JhZGllbnRDb2xvcjJ9KWBcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnYmFja2dyb3VuZCcsXG4gICAgICAgIGdyYWRpZW50U3R5bGVzXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlBY3Rpb24odWlBY3Rpb246IFVJQWN0aW9uKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZUNsaWNrKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2N1cnNvcicsICdwb2ludGVyJyk7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5QWxpZ25tZW50KHVpQWxpZ25tZW50OiBVSUFsaWdubWVudCkge1xuICAgIGlmICh1aUFsaWdubWVudC5hbGlnbm1lbnQpIHtcbiAgICAgIGNvbnN0IGFsaWdubWVudCA9IGFsaWdubWVudE1hcHBpbmdbdWlBbGlnbm1lbnQuYWxpZ25tZW50XTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnYWxpZ24taXRlbXMnLFxuICAgICAgICBhbGlnbm1lbnRcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVNoYWRvdyh1aVNoYWRvdzogVUlTaGFkb3cpIHtcbiAgICBpZiAodWlTaGFkb3cuY29sb3IgJiYgdWlTaGFkb3cub2Zmc2V0WCAmJiB1aVNoYWRvdy5vZmZzZXRZICYmIHVpU2hhZG93LmJsdXJSYWRpdXMpIHtcbiAgICAgIGNvbnN0IGNvbG9yID0gY29sb3JNYXBwaW5nW3VpU2hhZG93LmNvbG9yXTtcbiAgICAgIGNvbnN0IG9mZnNldFggPSBzaGFkb3dPZmZzZXRNYXBwaW5nW3VpU2hhZG93Lm9mZnNldFhdO1xuICAgICAgY29uc3Qgb2Zmc2V0WSA9IHNoYWRvd09mZnNldE1hcHBpbmdbdWlTaGFkb3cub2Zmc2V0WV07XG4gICAgICBjb25zdCBibHVyUmFkaXVzID0gc2hhZG93Qmx1clJhZGl1c01hcHBpbmdbdWlTaGFkb3cuYmx1clJhZGl1c107XG4gICAgICBjb25zdCBvcGFjaXR5ID0gdWlTaGFkb3cub3BhY2l0eSAhPT0gdW5kZWZpbmVkID8gdWlTaGFkb3cub3BhY2l0eSA6IDE7XG5cbiAgICAgIC8vIEZvcm1hdDogYm94LXNoYWRvdzogb2Zmc2V0WCBvZmZzZXRZIGJsdXJSYWRpdXMgY29sb3JcbiAgICAgIGNvbnN0IHNoYWRvd1ZhbHVlID0gYCR7b2Zmc2V0WH0gJHtvZmZzZXRZfSAke2JsdXJSYWRpdXN9ICR7Y29sb3J9YDtcblxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdib3gtc2hhZG93JyxcbiAgICAgICAgc2hhZG93VmFsdWVcbiAgICAgICk7XG5cbiAgICAgIGlmIChvcGFjaXR5ICE9PSAxKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgJ29wYWNpdHknLFxuICAgICAgICAgIG9wYWNpdHkudG9TdHJpbmcoKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlSYWRpdXModWlSYWRpdXM6IFVJUmFkaXVzKSB7XG4gICAgaWYgKHVpUmFkaXVzLnRvcExlZnQpIHtcbiAgICAgIGNvbnN0IHJhZGl1cyA9IHJhZGl1c01hcHBpbmdbdWlSYWRpdXMudG9wTGVmdF07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2JvcmRlci10b3AtbGVmdC1yYWRpdXMnLFxuICAgICAgICByYWRpdXNcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHVpUmFkaXVzLnRvcFJpZ2h0KSB7XG4gICAgICBjb25zdCByYWRpdXMgPSByYWRpdXNNYXBwaW5nW3VpUmFkaXVzLnRvcFJpZ2h0XTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMnLFxuICAgICAgICByYWRpdXNcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHVpUmFkaXVzLmJvdHRvbUxlZnQpIHtcbiAgICAgIGNvbnN0IHJhZGl1cyA9IHJhZGl1c01hcHBpbmdbdWlSYWRpdXMuYm90dG9tTGVmdF07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMnLFxuICAgICAgICByYWRpdXNcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHVpUmFkaXVzLmJvdHRvbVJpZ2h0KSB7XG4gICAgICBjb25zdCByYWRpdXMgPSByYWRpdXNNYXBwaW5nW3VpUmFkaXVzLmJvdHRvbVJpZ2h0XTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMnLFxuICAgICAgICByYWRpdXNcbiAgICAgICk7XG4gICAgfVxuXG4gIH1cblxuICBwcml2YXRlIGFwcGx5U3BhY2luZyh1aVNwYWNpbmc6IFVJU3BhY2luZykge1xuICAgIGlmICh1aVNwYWNpbmcuc3BhY2luZykge1xuICAgICAgY29uc3Qgc3BhY2luZ1ZhbHVlID0gc3BhY2VNYXBwaW5nW3VpU3BhY2luZy5zcGFjaW5nXTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnZ2FwJyxcbiAgICAgICAgc3BhY2luZ1ZhbHVlXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlIZWlnaHQoaGVpZ2h0OiBVSURpbWVuc2lvbikge1xuICAgIGlmIChoZWlnaHQpIHtcbiAgICAgIGNvbnN0IGhlaWdodFZhbHVlID0gZGltZW5zaW9uTWFwcGluZ1toZWlnaHRdO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdoZWlnaHQnLFxuICAgICAgICBoZWlnaHRWYWx1ZVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5V2lkdGgod2lkdGg6IFVJRGltZW5zaW9uKSB7XG4gICAgaWYgKHdpZHRoKSB7XG4gICAgICBjb25zdCB3aWR0aFZhbHVlID0gZGltZW5zaW9uTWFwcGluZ1t3aWR0aF07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ3dpZHRoJyxcbiAgICAgICAgd2lkdGhWYWx1ZVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5Qm9yZGVyV2lkdGgoYm9yZGVyV2lkdGg6IG51bWJlcikge1xuICAgIGlmIChib3JkZXJXaWR0aCAhPT0gbnVsbCAmJiBib3JkZXJXaWR0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2JvcmRlci13aWR0aCcsXG4gICAgICAgIGAke2JvcmRlcldpZHRofXB4YFxuICAgICAgKTtcblxuICAgICAgLy8gRW5zdXJlIGJvcmRlciBzdHlsZSBpcyBzZXQsIG90aGVyd2lzZSBib3JkZXItd2lkdGggd29uJ3QgYmUgdmlzaWJsZVxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdib3JkZXItc3R5bGUnLFxuICAgICAgICAnc29saWQnXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlCb3JkZXJDb2xvcihib3JkZXJDb2xvcjogVUlDb2xvcikge1xuICAgIGlmIChib3JkZXJDb2xvcikge1xuICAgICAgY29uc3QgY29sb3IgPSBjb2xvck1hcHBpbmdbYm9yZGVyQ29sb3JdO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdib3JkZXItY29sb3InLFxuICAgICAgICBjb2xvclxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5SnVzdGlmeShqdXN0aWZ5OiBVSUp1c3RpZnkpIHtcbiAgICBpZiAoanVzdGlmeSkge1xuICAgICAgY29uc3QganVzdGlmeVZhbHVlID0ganVzdGlmeU1hcHBpbmdbanVzdGlmeV07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2p1c3RpZnktY29udGVudCcsXG4gICAgICAgIGp1c3RpZnlWYWx1ZVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5QXNwZWN0UmF0aW8oYXNwZWN0UmF0aW86IG51bWJlcikge1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVNpemUoc2l6ZTogVUlTaXplKSB7XG4gICAgaWYoc2l6ZSl7XG4gICAgICBsZXQgd2lkdGhWYWx1ZSA9IHNpemVNYXBwaW5nV2lkdGhbc2l6ZV07XG4gICAgICBsZXQgaGVpZ2h0VmFsdWUgPSBzaXplTWFwcGluZ0hlaWdodFtzaXplXTtcblxuICAgICAgaWYgKFxuICAgICAgICB0aGlzLmlzU21hbGxTY3JlZW4oKSAmJlxuICAgICAgICB0aGlzLmN1cnJlbnRDb250YWluZXIgPT09IFVJU2NyZWVuQ29udGFpbmVyVHlwZS5GTFVJRCAmJlxuICAgICAgICAoc2l6ZSA9PT0gVUlTaXplLkNBUkRfMSB8fCBzaXplID09PSBVSVNpemUuQ0FSRF8yIHx8IHNpemUgPT09IFVJU2l6ZS5USFVNQl8zIHx8IHNpemUgPT09IFVJU2l6ZS5USFVNQl80KVxuICAgICAgKSB7XG4gICAgICAgIHdpZHRoVmFsdWUgPSB0aGlzLnNjYWxlUGl4ZWxWYWx1ZSh3aWR0aFZhbHVlLCAxLjEpO1xuICAgICAgICBoZWlnaHRWYWx1ZSA9IHRoaXMuc2NhbGVQaXhlbFZhbHVlKGhlaWdodFZhbHVlLCAxLjEpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ3dpZHRoJyxcbiAgICAgICAgd2lkdGhWYWx1ZVxuICAgICAgKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnaGVpZ2h0JyxcbiAgICAgICAgaGVpZ2h0VmFsdWVcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUhvdmVyVmFycyh1aVZpZXc6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGhvdmVyID0gdWlWaWV3Py5ob3ZlciA/PyB1aVZpZXc/LmVsZW1lbnQ/LmhvdmVyO1xuICAgIGlmICghaG92ZXIpIHJldHVybjtcblxuICAgIGNvbnN0IGVsID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAvLyBtYXJjYSBxdWUgZXNzZSBlbGVtZW50byB0ZW0gaG92ZXJcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGVsLCAnZWRtLWhvdmVyJyk7XG5cbiAgICBpZiAoaG92ZXIuYm9yZGVyX2NvbG9yIHx8IGhvdmVyLmJvcmRlckNvbG9yKSB7XG4gICAgICBjb25zb2xlLmxvZyhob3Zlci5ib3JkZXJfY29sb3IsIGhvdmVyLmJvcmRlckNvbG9yKTtcbiAgICAgIGNvbnN0IHRva2VuID0gaG92ZXIuYm9yZGVyX2NvbG9yID8/IGhvdmVyLmJvcmRlckNvbG9yO1xuXG4gICAgICBjb25zdCBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgICBzdHlsZS50ZXh0Q29udGVudCA9IGBcbiAgICAgICAgOnJvb3Qge1xuICAgICAgICAgIC0tZWRtLWhvdmVyLWJvcmRlci1jb2xvcjogdmFyKC0tJHt0b2tlbi5yZXBsYWNlKC9fL2csICctJyl9KTtcbiAgICAgICAgfVxuICAgICAgYDtcbiAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc3R5bGUpO1xuXG4gICAgfVxuXG4gICAgaWYgKGhvdmVyLmJhY2tncm91bmRfY29sb3IgfHwgaG92ZXIuYmFja2dyb3VuZENvbG9yKSB7XG4gICAgICBjb25zdCB0b2tlbiA9IGhvdmVyLmJhY2tncm91bmRfY29sb3IgPz8gaG92ZXIuYmFja2dyb3VuZENvbG9yO1xuICAgICAgY29uc3Qgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICAgICAgc3R5bGUudGV4dENvbnRlbnQgPSBgXG4gICAgICAgIDpyb290IHtcbiAgICAgICAgICAtLWVkbS1ob3Zlci1ib3JkZXItY29sb3I6IHZhcigtLSR7dG9rZW4ucmVwbGFjZSgvXy9nLCAnLScpfSk7XG4gICAgICAgIH1cbiAgICAgIGA7XG4gICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0eWxlKTtcbiAgICB9XG5cbiAgICBpZiAoaG92ZXIuYmFja2dyb3VuZF9jb2xvciB8fCBob3Zlci5iYWNrZ3JvdW5kQ29sb3IpIHtcbiAgICAgIGNvbnN0IHRva2VuID0gaG92ZXIuYmFja2dyb3VuZF9jb2xvciA/PyBob3Zlci5iYWNrZ3JvdW5kQ29sb3I7XG4gICAgICBjb25zdCBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgICBzdHlsZS50ZXh0Q29udGVudCA9IGBcbiAgICAgICAgOnJvb3Qge1xuICAgICAgICAgIC0tZWRtLWhvdmVyLWJnLWNvbG9yOiB2YXIoLS0ke3Rva2VuLnJlcGxhY2UoL18vZywgJy0nKX0pO1xuICAgICAgICB9XG4gICAgICBgO1xuICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzdHlsZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1NtYWxsU2NyZWVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuaW5uZXJXaWR0aCA+PSA1NjU7XG4gIH1cblxuICBwcml2YXRlIHNjYWxlUGl4ZWxWYWx1ZSh2YWx1ZTogc3RyaW5nLCBkaXZpc29yOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1hdGNoID0gL14oXFxkKyg/OlxcLlxcZCspPylweCQvLmV4ZWModmFsdWUpO1xuICAgIGlmICghbWF0Y2gpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBudW0gPSBwYXJzZUZsb2F0KG1hdGNoWzFdKTtcbiAgICBjb25zdCBzY2FsZWQgPSBudW0gKiBkaXZpc29yO1xuICAgIHJldHVybiBgJHtzY2FsZWR9cHhgO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXG4gIG9uV2luZG93UmVzaXplKCk6IHZvaWQge1xuICAgIGNvbnN0IGlzU21hbGwgPSB0aGlzLmlzU21hbGxTY3JlZW4oKTtcbiAgICBpZiAodGhpcy5sYXN0VWlWaWV3ICYmIGlzU21hbGwgIT09IHRoaXMud2FzU21hbGxTY3JlZW4pIHtcbiAgICAgIHRoaXMuYXBwbHlTdHlsZXModGhpcy5sYXN0VWlWaWV3KTtcbiAgICAgIHRoaXMud2FzU21hbGxTY3JlZW4gPSBpc1NtYWxsO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgb25DbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlQ2xpY2spIHJldHVybjtcblxuICAgIGlmICh0aGlzLmVkbVNkdWlWaWV3Py5hY3Rpb24pIHtcbiAgICAgIHRoaXMuY2FwdHVyZUV4cGxvcmVTY3JvbGxDb250ZXh0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIHRoaXMuYWN0aW9uU2VydmljZS5leGVjdXRlKHRoaXMuZWRtU2R1aVZpZXcuYWN0aW9uKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNhcHR1cmVFeHBsb3JlU2Nyb2xsQ29udGV4dCgpOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgIXRoaXMucm91dGVyLnVybC5pbmNsdWRlcygnL2V4cGxvcmFyJykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3Qgc2Nyb2xsUm93ID0gZWxlbWVudC5jbG9zZXN0KCcuc2Nyb2xsYWJsZS1yb3cnKSBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgICBpZiAoIXNjcm9sbFJvdykge1xuICAgICAgdGhpcy5jbGVhckV4cGxvcmVIb3Jpem9udGFsU2Nyb2xsQ29udGV4dCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNlY3Rpb24gPSB0aGlzLnJlc29sdmVFeHBsb3JlU2VjdGlvbihlbGVtZW50LCBzY3JvbGxSb3cpO1xuICAgIGNvbnN0IHNlY3Rpb25JZCA9IHNlY3Rpb24/LmlkIHx8IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oVUlWaWV3RGlyZWN0aXZlLkVYUExPUkVfTEFTVF9BTkNIT1JfS0VZKTtcbiAgICBjb25zdCByb3dJbmRleCA9IHRoaXMucmVzb2x2ZVJvd0luZGV4KHNjcm9sbFJvdywgc2VjdGlvbik7XG4gICAgY29uc3QgaXRlbUlkID0gdGhpcy5yZXNvbHZlQ2xpY2tlZEl0ZW1JZChlbGVtZW50LCBzZWN0aW9uKTtcblxuICAgIHRyeSB7XG4gICAgICBpZiAoc2VjdGlvbklkKSB7XG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oVUlWaWV3RGlyZWN0aXZlLkVYUExPUkVfTEFTVF9BTkNIT1JfS0VZLCBzZWN0aW9uSWQpO1xuICAgICAgfVxuXG4gICAgICBpZiAocm93SW5kZXggPj0gMCkge1xuICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFVJVmlld0RpcmVjdGl2ZS5FWFBMT1JFX0xBU1RfUk9XX0lOREVYX0tFWSwgU3RyaW5nKHJvd0luZGV4KSk7XG4gICAgICB9XG5cbiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oXG4gICAgICAgIFVJVmlld0RpcmVjdGl2ZS5FWFBMT1JFX0xBU1RfUk9XX1NDUk9MTF9MRUZUX0tFWSxcbiAgICAgICAgU3RyaW5nKE1hdGgucm91bmQoc2Nyb2xsUm93LnNjcm9sbExlZnQpKVxuICAgICAgKTtcblxuICAgICAgaWYgKGl0ZW1JZCkge1xuICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFVJVmlld0RpcmVjdGl2ZS5FWFBMT1JFX0xBU1RfSVRFTV9JRF9LRVksIGl0ZW1JZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKFVJVmlld0RpcmVjdGl2ZS5FWFBMT1JFX0xBU1RfSVRFTV9JRF9LRVkpO1xuICAgICAgfVxuICAgIH0gY2F0Y2gge31cbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJFeHBsb3JlSG9yaXpvbnRhbFNjcm9sbENvbnRleHQoKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oVUlWaWV3RGlyZWN0aXZlLkVYUExPUkVfTEFTVF9ST1dfSU5ERVhfS0VZKTtcbiAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oVUlWaWV3RGlyZWN0aXZlLkVYUExPUkVfTEFTVF9ST1dfU0NST0xMX0xFRlRfS0VZKTtcbiAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oVUlWaWV3RGlyZWN0aXZlLkVYUExPUkVfTEFTVF9JVEVNX0lEX0tFWSk7XG4gICAgfSBjYXRjaCB7fVxuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlRXhwbG9yZVNlY3Rpb24oZWxlbWVudDogSFRNTEVsZW1lbnQsIHNjcm9sbFJvdzogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiAoXG4gICAgICBzY3JvbGxSb3cuY2xvc2VzdCgnW2RhdGEtYW5jaG9yLXRhcmdldF1baWRdJykgYXMgSFRNTEVsZW1lbnQgfCBudWxsIHx8XG4gICAgICBzY3JvbGxSb3cuY2xvc2VzdCgnLmNvbHVtbltpZF0nKSBhcyBIVE1MRWxlbWVudCB8IG51bGwgfHxcbiAgICAgIGVsZW1lbnQuY2xvc2VzdCgnW2RhdGEtYW5jaG9yLXRhcmdldF1baWRdJykgYXMgSFRNTEVsZW1lbnQgfCBudWxsIHx8XG4gICAgICBlbGVtZW50LmNsb3Nlc3QoJy5jb2x1bW5baWRdJykgYXMgSFRNTEVsZW1lbnQgfCBudWxsXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZVJvd0luZGV4KHNjcm9sbFJvdzogSFRNTEVsZW1lbnQsIHNlY3Rpb246IEhUTUxFbGVtZW50IHwgbnVsbCk6IG51bWJlciB7XG4gICAgY29uc3Qgc2NvcGUgPSBzZWN0aW9uID8/IChzY3JvbGxSb3cucGFyZW50RWxlbWVudCBhcyBIVE1MRWxlbWVudCB8IG51bGwpO1xuICAgIGlmICghc2NvcGUpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG5cbiAgICByZXR1cm4gQXJyYXkuZnJvbShzY29wZS5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50PignLnNjcm9sbGFibGUtcm93JykpLmluZGV4T2Yoc2Nyb2xsUm93KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZUNsaWNrZWRJdGVtSWQoZWxlbWVudDogSFRNTEVsZW1lbnQsIHNlY3Rpb246IEhUTUxFbGVtZW50IHwgbnVsbCk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmIChlbGVtZW50LmlkICYmIGVsZW1lbnQuaWQgIT09IHNlY3Rpb24/LmlkKSB7XG4gICAgICByZXR1cm4gZWxlbWVudC5pZDtcbiAgICB9XG5cbiAgICBjb25zdCBjYW5kaWRhdGUgPSBlbGVtZW50LmNsb3Nlc3QoJ1tpZF0nKSBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgaWYgKGNhbmRpZGF0ZT8uaWQgJiYgY2FuZGlkYXRlLmlkICE9PSBzZWN0aW9uPy5pZCkge1xuICAgICAgcmV0dXJuIGNhbmRpZGF0ZS5pZDtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuIl19
402
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWl2aWV3LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2R1aS9zcmMvbGliL2RpcmVjdGl2ZXMvdWl2aWV3LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLFFBQVEsRUFDUixTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFhdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsdUJBQXVCLEdBQ3hCLE1BQU0sd0NBQXdDLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDOzs7OztBQU01RixNQUFNLE9BQU8sZUFBZTthQUdGLDRCQUF1QixHQUFHLG1CQUFtQixBQUF0QixDQUF1QjthQUM5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TyxDQUFDLE1BQU0sQ0FBdUIsQ0FBQztRQUNoRSxJQUFJLFNBQVMsRUFBRSxFQUFFLElBQUksU0FBUyxDQUFDLEVBQUUsS0FBSyxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDbEQsT0FBTyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ3RCLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7K0dBampCVSxlQUFlO21HQUFmLGVBQWU7OzRGQUFmLGVBQWU7a0JBSjNCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFVBQVUsRUFBRSxLQUFLO2lCQUNsQjs7MEJBa0JJLFFBQVE7eUNBaEJGLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkErY04sY0FBYztzQkFEYixZQUFZO3VCQUFDLGVBQWU7Z0JBVTdCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3B0aW9uYWwsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVSVZpZXcgfSBmcm9tICcuLi9jb3JlL3VpY29tcG9zaXRpb24vbW9kZWxzL3Vpdmlldyc7XG5pbXBvcnQgeyBVSVBhZGRpbmcgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbW9kZWxzL3VpcGFkZGluZyc7XG5pbXBvcnQgeyBVSUJhY2tncm91bmQgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbW9kZWxzL3VpYmFja2dyb3VuZCc7XG5pbXBvcnQgeyBVSUFjdGlvbiB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tb2RlbHMvdWlhY3Rpb24nO1xuaW1wb3J0IHsgVUlBbGlnbm1lbnQgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbW9kZWxzL3VpYWxpZ25tZW50JztcbmltcG9ydCB7IFVJU2hhZG93IH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL21vZGVscy91aXNoYWRvdyc7XG5pbXBvcnQgeyBVSVJhZGl1cyB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tb2RlbHMvdWlyYWRpdXMnO1xuaW1wb3J0IHsgVUlTcGFjaW5nIH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL21vZGVscy91aXNwYWNpbmcnO1xuaW1wb3J0IHsgVUlDb2xvciB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9lbnVtcy91aWNvbG9yJztcbmltcG9ydCB7IFVJSnVzdGlmeSB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9lbnVtcy91aWp1c3RpZnknO1xuaW1wb3J0IHsgVUlEaW1lbnNpb24gfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvZW51bXMvdWlkaW1lbnNpb24nO1xuaW1wb3J0IHsgVUlDb250ZW50SW5zZXQgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbW9kZWxzL3VpY29udGVudC1pbnNldCc7XG5pbXBvcnQgeyBzcGFjZU1hcHBpbmcgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbWFwcGluZy9zcGFjZS1tYXBwaW5nJztcbmltcG9ydCB7IGNvbG9yTWFwcGluZyB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tYXBwaW5nL2NvbG9yLW1hcHBpbmcnO1xuaW1wb3J0IHsgcGFkTWFwcGluZyB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tYXBwaW5nL3BhZC1tYXBwaW5nJztcbmltcG9ydCB7IHJhZGl1c01hcHBpbmcgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbWFwcGluZy9yYWRpdXMtbWFwcGluZyc7XG5pbXBvcnQgeyBhbGlnbm1lbnRNYXBwaW5nIH0gZnJvbSAnLi4vY29yZS91aXRoZW1lL21hcHBpbmcvYWxpZ25tZW50LW1hcHBpbmcnO1xuaW1wb3J0IHsgZGltZW5zaW9uTWFwcGluZyB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tYXBwaW5nL2RpbWVuc2lvbi1tYXBwaW5nJztcbmltcG9ydCB7XG4gIHNoYWRvd09mZnNldE1hcHBpbmcsXG4gIHNoYWRvd0JsdXJSYWRpdXNNYXBwaW5nLFxufSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbWFwcGluZy9zaGFkb3ctbWFwcGluZyc7XG5pbXBvcnQgeyBqdXN0aWZ5TWFwcGluZyB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9tYXBwaW5nL2p1c3RpZnktbWFwcGluZyc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgVUlTY3JlZW5WaWV3TW9kZWwgfSBmcm9tICcuLi9jb3JlL3ZpZXctbW9kZWxzL3Vpc2NyZWVuLnZpZXdtb2RlbCc7XG5pbXBvcnQgeyBVSUFjdGlvblNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3NlcnZpY2VzL3VpLWFjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFVJU2l6ZSB9IGZyb20gJy4uL2NvcmUvdWl0aGVtZS9lbnVtcy91aXNpemUnO1xuaW1wb3J0IHsgc2l6ZU1hcHBpbmcgfSBmcm9tICcuLi9jb3JlL3VpdGhlbWUvbWFwcGluZy9zaXplLW1hcHBpbmcnO1xuaW1wb3J0IHsgVUlTY3JlZW5Db250YWluZXJUeXBlIH0gZnJvbSAnLi4vY29yZS91aWNvbXBvc2l0aW9uL2VudW1zL3Vpc2NyZWVuLWNvbnRhaW5lci10eXBlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2VkbVNkdWlWaWV3XScsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBVSVZpZXdEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBlZG1TZHVpVmlldz86IFVJVmlldztcbiAgQElucHV0KCkgZGlzYWJsZUNsaWNrOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEVYUExPUkVfTEFTVF9BTkNIT1JfS0VZID0gJ2V4cGxvcmVMYXN0QW5jaG9yJztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgRVhQTE9SRV9MQVNUX1JPV19JTkRFWF9LRVkgPSAnZXhwbG9yZUxhc3RSb3dJbmRleCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEVYUExPUkVfTEFTVF9ST1dfU0NST0xMX0xFRlRfS0VZID0gJ2V4cGxvcmVMYXN0Um93U2Nyb2xsTGVmdCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEVYUExPUkVfTEFTVF9JVEVNX0lEX0tFWSA9ICdleHBsb3JlTGFzdEl0ZW1JZCc7XG5cbiAgcHJpdmF0ZSBsYXN0VWlWaWV3OiBVSVZpZXcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSB3YXNTbWFsbFNjcmVlbiA9IHRoaXMuaXNTbWFsbFNjcmVlbigpO1xuICBwcml2YXRlIGN1cnJlbnRDb250YWluZXI6IFVJU2NyZWVuQ29udGFpbmVyVHlwZSA9IFVJU2NyZWVuQ29udGFpbmVyVHlwZS5DT05UQUlORUQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgYWN0aW9uU2VydmljZTogVUlBY3Rpb25TZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgc2NyZWVuVmlld01vZGVsOiBVSVNjcmVlblZpZXdNb2RlbFxuICApIHtcbiAgICBpZiAodGhpcy5zY3JlZW5WaWV3TW9kZWwpIHtcbiAgICAgIHRoaXMuc2NyZWVuVmlld01vZGVsLnVpU2NyZWVuJC5zdWJzY3JpYmUoKHNjcmVlbikgPT4ge1xuICAgICAgICB0aGlzLmN1cnJlbnRDb250YWluZXIgPVxuICAgICAgICAgIHNjcmVlbj8uY29uZmlnPy5jb250YWluZXIgPz8gVUlTY3JlZW5Db250YWluZXJUeXBlLkNPTlRBSU5FRDtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5lZG1TZHVpVmlldykge1xuICAgICAgdGhpcy5sYXN0VWlWaWV3ID0gdGhpcy5lZG1TZHVpVmlldztcbiAgICAgIHRoaXMuYXBwbHlTdHlsZXModGhpcy5lZG1TZHVpVmlldyk7XG4gICAgICB0aGlzLndhc1NtYWxsU2NyZWVuID0gdGhpcy5pc1NtYWxsU2NyZWVuKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVN0eWxlcyh1aVZpZXc6IFVJVmlldykge1xuICAgIGlmICh1aVZpZXcuaWQpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2lkJyxcbiAgICAgICAgU3RyaW5nKHVpVmlldy5pZClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5wYWRkaW5nKSB7XG4gICAgICB0aGlzLmFwcGx5UGFkZGluZyh1aVZpZXcucGFkZGluZyk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5jb250ZW50SW5zZXQpIHtcbiAgICAgIHRoaXMuYXBwbHlDb250ZW50SW5zZXQodWlWaWV3LmNvbnRlbnRJbnNldCk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5iYWNrZ3JvdW5kKSB7XG4gICAgICB0aGlzLmFwcGx5QmFja2dyb3VuZCh1aVZpZXcuYmFja2dyb3VuZCk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5hY3Rpb24pIHtcbiAgICAgIHRoaXMuYXBwbHlBY3Rpb24odWlWaWV3LmFjdGlvbik7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5hbGlnbm1lbnQpIHtcbiAgICAgIHRoaXMuYXBwbHlBbGlnbm1lbnQodWlWaWV3LmFsaWdubWVudCk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5zaGFkb3cpIHtcbiAgICAgIHRoaXMuYXBwbHlTaGFkb3codWlWaWV3LnNoYWRvdyk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5yYWRpdXMpIHtcbiAgICAgIHRoaXMuYXBwbHlSYWRpdXModWlWaWV3LnJhZGl1cyk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5zcGFjaW5nKSB7XG4gICAgICB0aGlzLmFwcGx5U3BhY2luZyh1aVZpZXcuc3BhY2luZyk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5oZWlnaHQpIHtcbiAgICAgIHRoaXMuYXBwbHlIZWlnaHQodWlWaWV3LmhlaWdodCk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy53aWR0aCkge1xuICAgICAgdGhpcy5hcHBseVdpZHRoKHVpVmlldy53aWR0aCk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5ib3JkZXJXaWR0aCkge1xuICAgICAgdGhpcy5hcHBseUJvcmRlcldpZHRoKHVpVmlldy5ib3JkZXJXaWR0aCk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5ib3JkZXJDb2xvcikge1xuICAgICAgdGhpcy5hcHBseUJvcmRlckNvbG9yKHVpVmlldy5ib3JkZXJDb2xvcik7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5qdXN0aWZ5KSB7XG4gICAgICB0aGlzLmFwcGx5SnVzdGlmeSh1aVZpZXcuanVzdGlmeSk7XG4gICAgfVxuXG4gICAgaWYgKHVpVmlldy5zaXplKSB7XG4gICAgICB0aGlzLmFwcGx5U2l6ZSh1aVZpZXcuc2l6ZSk7XG4gICAgfVxuICAgIGlmICh1aVZpZXcuYXNwZWN0UmF0aW8gIT09IG51bGwgJiYgdWlWaWV3LmFzcGVjdFJhdGlvICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuYXBwbHlBc3BlY3RSYXRpbyh1aVZpZXcuYXNwZWN0UmF0aW8pO1xuICAgIH1cblxuICAgIGlmKHVpVmlldy5ob3Zlcil7XG4gICAgICB0aGlzLmFwcGx5SG92ZXJWYXJzKHVpVmlldyk7XG4gICAgfVxuXG4gIH1cblxuICBwcml2YXRlIGFwcGx5UGFkZGluZyh1aVBhZGRpbmc6IFVJUGFkZGluZykge1xuICAgIGlmICh1aVBhZGRpbmcudG9wKSB7XG4gICAgICBjb25zdCBwYWRWYWx1ZSA9IHBhZE1hcHBpbmdbdWlQYWRkaW5nLnRvcF07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ3BhZGRpbmctdG9wJyxcbiAgICAgICAgcGFkVmFsdWVcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh1aVBhZGRpbmcubGVmdCkge1xuICAgICAgY29uc3QgcGFkVmFsdWUgPSBwYWRNYXBwaW5nW3VpUGFkZGluZy5sZWZ0XTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAncGFkZGluZy1sZWZ0JyxcbiAgICAgICAgcGFkVmFsdWVcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh1aVBhZGRpbmcucmlnaHQpIHtcbiAgICAgIGNvbnN0IHBhZFZhbHVlID0gcGFkTWFwcGluZ1t1aVBhZGRpbmcucmlnaHRdO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdwYWRkaW5nLXJpZ2h0JyxcbiAgICAgICAgcGFkVmFsdWVcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh1aVBhZGRpbmcuYm90dG9tKSB7XG4gICAgICBjb25zdCBwYWRWYWx1ZSA9IHBhZE1hcHBpbmdbdWlQYWRkaW5nLmJvdHRvbV07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ3BhZGRpbmctYm90dG9tJyxcbiAgICAgICAgcGFkVmFsdWVcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUNvbnRlbnRJbnNldCh1aUNvbnRlbnRJbnNldDogVUlDb250ZW50SW5zZXQpIHtcbiAgICBpZiAodWlDb250ZW50SW5zZXQudG9wKSB7XG4gICAgICBjb25zdCBpbnNldFZhbHVlID0gc3BhY2VNYXBwaW5nW3VpQ29udGVudEluc2V0LnRvcF07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ3BhZGRpbmctdG9wJyxcbiAgICAgICAgaW5zZXRWYWx1ZVxuICAgICAgKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnLS1zZHVpLWNvbnRlbnQtaW5zZXQtdG9wJyxcbiAgICAgICAgaW5zZXRWYWx1ZVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodWlDb250ZW50SW5zZXQubGVmdCkge1xuICAgICAgY29uc3QgaW5zZXRWYWx1ZSA9IHNwYWNlTWFwcGluZ1t1aUNvbnRlbnRJbnNldC5sZWZ0XTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAncGFkZGluZy1sZWZ0JyxcbiAgICAgICAgaW5zZXRWYWx1ZVxuICAgICAgKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnLS1zZHVpLWNvbnRlbnQtaW5zZXQtbGVmdCcsXG4gICAgICAgIGluc2V0VmFsdWVcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHVpQ29udGVudEluc2V0LnJpZ2h0KSB7XG4gICAgICBjb25zdCBpbnNldFZhbHVlID0gc3BhY2VNYXBwaW5nW3VpQ29udGVudEluc2V0LnJpZ2h0XTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAncGFkZGluZy1yaWdodCcsXG4gICAgICAgIGluc2V0VmFsdWVcbiAgICAgICk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJy0tc2R1aS1jb250ZW50LWluc2V0LXJpZ2h0JyxcbiAgICAgICAgaW5zZXRWYWx1ZVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodWlDb250ZW50SW5zZXQuYm90dG9tKSB7XG4gICAgICBjb25zdCBpbnNldFZhbHVlID0gc3BhY2VNYXBwaW5nW3VpQ29udGVudEluc2V0LmJvdHRvbV07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ3BhZGRpbmctYm90dG9tJyxcbiAgICAgICAgaW5zZXRWYWx1ZVxuICAgICAgKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnLS1zZHVpLWNvbnRlbnQtaW5zZXQtYm90dG9tJyxcbiAgICAgICAgaW5zZXRWYWx1ZVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5QmFja2dyb3VuZCh1aUJhY2tncm91bmQ6IFVJQmFja2dyb3VuZCkge1xuICAgIGlmICh1aUJhY2tncm91bmQuYmFja2dyb3VuZENvbG9yKSB7XG4gICAgICBjb25zdCBiYWNrZ3JvdW5kQ29sb3IgPSBjb2xvck1hcHBpbmdbdWlCYWNrZ3JvdW5kLmJhY2tncm91bmRDb2xvcl07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2JhY2tncm91bmQtY29sb3InLFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3JcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHVpQmFja2dyb3VuZC5ncmFkaWVudENvbG9yMSAmJiB1aUJhY2tncm91bmQuZ3JhZGllbnRDb2xvcjIpIHtcbiAgICAgIGNvbnN0IGdyYWRpZW50Q29sb3IxID0gY29sb3JNYXBwaW5nW3VpQmFja2dyb3VuZC5ncmFkaWVudENvbG9yMV07XG4gICAgICBjb25zdCBncmFkaWVudENvbG9yMiA9IGNvbG9yTWFwcGluZ1t1aUJhY2tncm91bmQuZ3JhZGllbnRDb2xvcjJdO1xuICAgICAgY29uc3QgZ3JhZGllbnRTdHlsZXMgPSBgbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAke2dyYWRpZW50Q29sb3IxfSwgJHtncmFkaWVudENvbG9yMn0pYFxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdiYWNrZ3JvdW5kJyxcbiAgICAgICAgZ3JhZGllbnRTdHlsZXNcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUFjdGlvbih1aUFjdGlvbjogVUlBY3Rpb24pIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlQ2xpY2spIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnY3Vyc29yJywgJ3BvaW50ZXInKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlBbGlnbm1lbnQodWlBbGlnbm1lbnQ6IFVJQWxpZ25tZW50KSB7XG4gICAgaWYgKHVpQWxpZ25tZW50LmFsaWdubWVudCkge1xuICAgICAgY29uc3QgYWxpZ25tZW50ID0gYWxpZ25tZW50TWFwcGluZ1t1aUFsaWdubWVudC5hbGlnbm1lbnRdO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdhbGlnbi1pdGVtcycsXG4gICAgICAgIGFsaWdubWVudFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5U2hhZG93KHVpU2hhZG93OiBVSVNoYWRvdykge1xuICAgIGlmICh1aVNoYWRvdy5jb2xvciAmJiB1aVNoYWRvdy5vZmZzZXRYICYmIHVpU2hhZG93Lm9mZnNldFkgJiYgdWlTaGFkb3cuYmx1clJhZGl1cykge1xuICAgICAgY29uc3QgY29sb3IgPSBjb2xvck1hcHBpbmdbdWlTaGFkb3cuY29sb3JdO1xuICAgICAgY29uc3Qgb2Zmc2V0WCA9IHNoYWRvd09mZnNldE1hcHBpbmdbdWlTaGFkb3cub2Zmc2V0WF07XG4gICAgICBjb25zdCBvZmZzZXRZID0gc2hhZG93T2Zmc2V0TWFwcGluZ1t1aVNoYWRvdy5vZmZzZXRZXTtcbiAgICAgIGNvbnN0IGJsdXJSYWRpdXMgPSBzaGFkb3dCbHVyUmFkaXVzTWFwcGluZ1t1aVNoYWRvdy5ibHVyUmFkaXVzXTtcbiAgICAgIGNvbnN0IG9wYWNpdHkgPSB1aVNoYWRvdy5vcGFjaXR5ICE9PSB1bmRlZmluZWQgPyB1aVNoYWRvdy5vcGFjaXR5IDogMTtcblxuICAgICAgLy8gRm9ybWF0OiBib3gtc2hhZG93OiBvZmZzZXRYIG9mZnNldFkgYmx1clJhZGl1cyBjb2xvclxuICAgICAgY29uc3Qgc2hhZG93VmFsdWUgPSBgJHtvZmZzZXRYfSAke29mZnNldFl9ICR7Ymx1clJhZGl1c30gJHtjb2xvcn1gO1xuXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2JveC1zaGFkb3cnLFxuICAgICAgICBzaGFkb3dWYWx1ZVxuICAgICAgKTtcblxuICAgICAgaWYgKG9wYWNpdHkgIT09IDEpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAnb3BhY2l0eScsXG4gICAgICAgICAgb3BhY2l0eS50b1N0cmluZygpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVJhZGl1cyh1aVJhZGl1czogVUlSYWRpdXMpIHtcbiAgICBpZiAodWlSYWRpdXMudG9wTGVmdCkge1xuICAgICAgY29uc3QgcmFkaXVzID0gcmFkaXVzTWFwcGluZ1t1aVJhZGl1cy50b3BMZWZ0XTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cycsXG4gICAgICAgIHJhZGl1c1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodWlSYWRpdXMudG9wUmlnaHQpIHtcbiAgICAgIGNvbnN0IHJhZGl1cyA9IHJhZGl1c01hcHBpbmdbdWlSYWRpdXMudG9wUmlnaHRdO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdib3JkZXItdG9wLXJpZ2h0LXJhZGl1cycsXG4gICAgICAgIHJhZGl1c1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodWlSYWRpdXMuYm90dG9tTGVmdCkge1xuICAgICAgY29uc3QgcmFkaXVzID0gcmFkaXVzTWFwcGluZ1t1aVJhZGl1cy5ib3R0b21MZWZ0XTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cycsXG4gICAgICAgIHJhZGl1c1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodWlSYWRpdXMuYm90dG9tUmlnaHQpIHtcbiAgICAgIGNvbnN0IHJhZGl1cyA9IHJhZGl1c01hcHBpbmdbdWlSYWRpdXMuYm90dG9tUmlnaHRdO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cycsXG4gICAgICAgIHJhZGl1c1xuICAgICAgKTtcbiAgICB9XG5cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlTcGFjaW5nKHVpU3BhY2luZzogVUlTcGFjaW5nKSB7XG4gICAgaWYgKHVpU3BhY2luZy5zcGFjaW5nKSB7XG4gICAgICBjb25zdCBzcGFjaW5nVmFsdWUgPSBzcGFjZU1hcHBpbmdbdWlTcGFjaW5nLnNwYWNpbmddO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdnYXAnLFxuICAgICAgICBzcGFjaW5nVmFsdWVcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUhlaWdodChoZWlnaHQ6IFVJRGltZW5zaW9uKSB7XG4gICAgaWYgKGhlaWdodCkge1xuICAgICAgY29uc3QgaGVpZ2h0VmFsdWUgPSBkaW1lbnNpb25NYXBwaW5nW2hlaWdodF07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2hlaWdodCcsXG4gICAgICAgIGhlaWdodFZhbHVlXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlXaWR0aCh3aWR0aDogVUlEaW1lbnNpb24pIHtcbiAgICBpZiAod2lkdGgpIHtcbiAgICAgIGNvbnN0IHdpZHRoVmFsdWUgPSBkaW1lbnNpb25NYXBwaW5nW3dpZHRoXTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnd2lkdGgnLFxuICAgICAgICB3aWR0aFZhbHVlXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlCb3JkZXJXaWR0aChib3JkZXJXaWR0aDogbnVtYmVyKSB7XG4gICAgaWYgKGJvcmRlcldpZHRoICE9PSBudWxsICYmIGJvcmRlcldpZHRoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnYm9yZGVyLXdpZHRoJyxcbiAgICAgICAgYCR7Ym9yZGVyV2lkdGh9cHhgXG4gICAgICApO1xuXG4gICAgICAvLyBFbnN1cmUgYm9yZGVyIHN0eWxlIGlzIHNldCwgb3RoZXJ3aXNlIGJvcmRlci13aWR0aCB3b24ndCBiZSB2aXNpYmxlXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2JvcmRlci1zdHlsZScsXG4gICAgICAgICdzb2xpZCdcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUJvcmRlckNvbG9yKGJvcmRlckNvbG9yOiBVSUNvbG9yKSB7XG4gICAgaWYgKGJvcmRlckNvbG9yKSB7XG4gICAgICBjb25zdCBjb2xvciA9IGNvbG9yTWFwcGluZ1tib3JkZXJDb2xvcl07XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2JvcmRlci1jb2xvcicsXG4gICAgICAgIGNvbG9yXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlKdXN0aWZ5KGp1c3RpZnk6IFVJSnVzdGlmeSkge1xuICAgIGlmIChqdXN0aWZ5KSB7XG4gICAgICBjb25zdCBqdXN0aWZ5VmFsdWUgPSBqdXN0aWZ5TWFwcGluZ1tqdXN0aWZ5XTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnanVzdGlmeS1jb250ZW50JyxcbiAgICAgICAganVzdGlmeVZhbHVlXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlBc3BlY3RSYXRpbyhhc3BlY3RSYXRpbzogbnVtYmVyKSB7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5U2l6ZShzaXplOiBVSVNpemUpIHtcbiAgICBjb25zdCBjb25maWcgPSBzaXplTWFwcGluZ1tzaXplXTtcbiAgICBpZiAoIWNvbmZpZykgcmV0dXJuO1xuXG4gICAgbGV0IHsgd2lkdGg6IHdpZHRoVmFsdWUsIGhlaWdodDogaGVpZ2h0VmFsdWUgfSA9IGNvbmZpZztcblxuICAgIGlmIChcbiAgICAgIGNvbmZpZy5zY2FsYWJsZSAmJlxuICAgICAgdGhpcy5pc1NtYWxsU2NyZWVuKCkgJiZcbiAgICAgIHRoaXMuY3VycmVudENvbnRhaW5lciA9PT0gVUlTY3JlZW5Db250YWluZXJUeXBlLkZMVUlEXG4gICAgKSB7XG4gICAgICB3aWR0aFZhbHVlID0gdGhpcy5zY2FsZVBpeGVsVmFsdWUod2lkdGhWYWx1ZSwgMS4xKTtcbiAgICAgIGhlaWdodFZhbHVlID0gdGhpcy5zY2FsZVBpeGVsVmFsdWUoaGVpZ2h0VmFsdWUsIDEuMSk7XG4gICAgfVxuXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3dpZHRoJywgd2lkdGhWYWx1ZSk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGhlaWdodFZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlIb3ZlclZhcnModWlWaWV3OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBob3ZlciA9IHVpVmlldz8uaG92ZXIgPz8gdWlWaWV3Py5lbGVtZW50Py5ob3ZlcjtcbiAgICBpZiAoIWhvdmVyKSByZXR1cm47XG5cbiAgICBjb25zdCBlbCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgLy8gbWFyY2EgcXVlIGVzc2UgZWxlbWVudG8gdGVtIGhvdmVyXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhlbCwgJ2VkbS1ob3ZlcicpO1xuXG4gICAgaWYgKGhvdmVyLmJvcmRlcl9jb2xvciB8fCBob3Zlci5ib3JkZXJDb2xvcikge1xuICAgICAgY29uc29sZS5sb2coaG92ZXIuYm9yZGVyX2NvbG9yLCBob3Zlci5ib3JkZXJDb2xvcik7XG4gICAgICBjb25zdCB0b2tlbiA9IGhvdmVyLmJvcmRlcl9jb2xvciA/PyBob3Zlci5ib3JkZXJDb2xvcjtcblxuICAgICAgY29uc3Qgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICAgICAgc3R5bGUudGV4dENvbnRlbnQgPSBgXG4gICAgICAgIDpyb290IHtcbiAgICAgICAgICAtLWVkbS1ob3Zlci1ib3JkZXItY29sb3I6IHZhcigtLSR7dG9rZW4ucmVwbGFjZSgvXy9nLCAnLScpfSk7XG4gICAgICAgIH1cbiAgICAgIGA7XG4gICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0eWxlKTtcblxuICAgIH1cblxuICAgIGlmIChob3Zlci5iYWNrZ3JvdW5kX2NvbG9yIHx8IGhvdmVyLmJhY2tncm91bmRDb2xvcikge1xuICAgICAgY29uc3QgdG9rZW4gPSBob3Zlci5iYWNrZ3JvdW5kX2NvbG9yID8/IGhvdmVyLmJhY2tncm91bmRDb2xvcjtcbiAgICAgIGNvbnN0IHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICAgIHN0eWxlLnRleHRDb250ZW50ID0gYFxuICAgICAgICA6cm9vdCB7XG4gICAgICAgICAgLS1lZG0taG92ZXItYm9yZGVyLWNvbG9yOiB2YXIoLS0ke3Rva2VuLnJlcGxhY2UoL18vZywgJy0nKX0pO1xuICAgICAgICB9XG4gICAgICBgO1xuICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzdHlsZSk7XG4gICAgfVxuXG4gICAgaWYgKGhvdmVyLmJhY2tncm91bmRfY29sb3IgfHwgaG92ZXIuYmFja2dyb3VuZENvbG9yKSB7XG4gICAgICBjb25zdCB0b2tlbiA9IGhvdmVyLmJhY2tncm91bmRfY29sb3IgPz8gaG92ZXIuYmFja2dyb3VuZENvbG9yO1xuICAgICAgY29uc3Qgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICAgICAgc3R5bGUudGV4dENvbnRlbnQgPSBgXG4gICAgICAgIDpyb290IHtcbiAgICAgICAgICAtLWVkbS1ob3Zlci1iZy1jb2xvcjogdmFyKC0tJHt0b2tlbi5yZXBsYWNlKC9fL2csICctJyl9KTtcbiAgICAgICAgfVxuICAgICAgYDtcbiAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc3R5bGUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNTbWFsbFNjcmVlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmlubmVyV2lkdGggPj0gNTY1O1xuICB9XG5cbiAgcHJpdmF0ZSBzY2FsZVBpeGVsVmFsdWUodmFsdWU6IHN0cmluZywgZGl2aXNvcjogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBtYXRjaCA9IC9eKFxcZCsoPzpcXC5cXGQrKT8pcHgkLy5leGVjKHZhbHVlKTtcbiAgICBpZiAoIW1hdGNoKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgY29uc3QgbnVtID0gcGFyc2VGbG9hdChtYXRjaFsxXSk7XG4gICAgY29uc3Qgc2NhbGVkID0gbnVtICogZGl2aXNvcjtcbiAgICByZXR1cm4gYCR7c2NhbGVkfXB4YDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxuICBvbldpbmRvd1Jlc2l6ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBpc1NtYWxsID0gdGhpcy5pc1NtYWxsU2NyZWVuKCk7XG4gICAgaWYgKHRoaXMubGFzdFVpVmlldyAmJiBpc1NtYWxsICE9PSB0aGlzLndhc1NtYWxsU2NyZWVuKSB7XG4gICAgICB0aGlzLmFwcGx5U3R5bGVzKHRoaXMubGFzdFVpVmlldyk7XG4gICAgICB0aGlzLndhc1NtYWxsU2NyZWVuID0gaXNTbWFsbDtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIG9uQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZUNsaWNrKSByZXR1cm47XG5cbiAgICBpZiAodGhpcy5lZG1TZHVpVmlldz8uYWN0aW9uKSB7XG4gICAgICB0aGlzLmNhcHR1cmVFeHBsb3JlU2Nyb2xsQ29udGV4dCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB0aGlzLmFjdGlvblNlcnZpY2UuZXhlY3V0ZSh0aGlzLmVkbVNkdWlWaWV3LmFjdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjYXB0dXJlRXhwbG9yZVNjcm9sbENvbnRleHQoKTogdm9pZCB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8ICF0aGlzLnJvdXRlci51cmwuaW5jbHVkZXMoJy9leHBsb3JhcicpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IHNjcm9sbFJvdyA9IGVsZW1lbnQuY2xvc2VzdCgnLnNjcm9sbGFibGUtcm93JykgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gICAgaWYgKCFzY3JvbGxSb3cpIHtcbiAgICAgIHRoaXMuY2xlYXJFeHBsb3JlSG9yaXpvbnRhbFNjcm9sbENvbnRleHQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzZWN0aW9uID0gdGhpcy5yZXNvbHZlRXhwbG9yZVNlY3Rpb24oZWxlbWVudCwgc2Nyb2xsUm93KTtcbiAgICBjb25zdCBzZWN0aW9uSWQgPSBzZWN0aW9uPy5pZCB8fCBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFVJVmlld0RpcmVjdGl2ZS5FWFBMT1JFX0xBU1RfQU5DSE9SX0tFWSk7XG4gICAgY29uc3Qgcm93SW5kZXggPSB0aGlzLnJlc29sdmVSb3dJbmRleChzY3JvbGxSb3csIHNlY3Rpb24pO1xuICAgIGNvbnN0IGl0ZW1JZCA9IHRoaXMucmVzb2x2ZUNsaWNrZWRJdGVtSWQoZWxlbWVudCwgc2VjdGlvbik7XG5cbiAgICB0cnkge1xuICAgICAgaWYgKHNlY3Rpb25JZCkge1xuICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFVJVmlld0RpcmVjdGl2ZS5FWFBMT1JFX0xBU1RfQU5DSE9SX0tFWSwgc2VjdGlvbklkKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJvd0luZGV4ID49IDApIHtcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShVSVZpZXdEaXJlY3RpdmUuRVhQTE9SRV9MQVNUX1JPV19JTkRFWF9LRVksIFN0cmluZyhyb3dJbmRleCkpO1xuICAgICAgfVxuXG4gICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFxuICAgICAgICBVSVZpZXdEaXJlY3RpdmUuRVhQTE9SRV9MQVNUX1JPV19TQ1JPTExfTEVGVF9LRVksXG4gICAgICAgIFN0cmluZyhNYXRoLnJvdW5kKHNjcm9sbFJvdy5zY3JvbGxMZWZ0KSlcbiAgICAgICk7XG5cbiAgICAgIGlmIChpdGVtSWQpIHtcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShVSVZpZXdEaXJlY3RpdmUuRVhQTE9SRV9MQVNUX0lURU1fSURfS0VZLCBpdGVtSWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShVSVZpZXdEaXJlY3RpdmUuRVhQTE9SRV9MQVNUX0lURU1fSURfS0VZKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIHt9XG4gIH1cblxuICBwcml2YXRlIGNsZWFyRXhwbG9yZUhvcml6b250YWxTY3JvbGxDb250ZXh0KCk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKFVJVmlld0RpcmVjdGl2ZS5FWFBMT1JFX0xBU1RfUk9XX0lOREVYX0tFWSk7XG4gICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKFVJVmlld0RpcmVjdGl2ZS5FWFBMT1JFX0xBU1RfUk9XX1NDUk9MTF9MRUZUX0tFWSk7XG4gICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKFVJVmlld0RpcmVjdGl2ZS5FWFBMT1JFX0xBU1RfSVRFTV9JRF9LRVkpO1xuICAgIH0gY2F0Y2gge31cbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZUV4cGxvcmVTZWN0aW9uKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBzY3JvbGxSb3c6IEhUTUxFbGVtZW50KTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gKFxuICAgICAgc2Nyb2xsUm93LmNsb3Nlc3QoJ1tkYXRhLWFuY2hvci10YXJnZXRdW2lkXScpIGFzIEhUTUxFbGVtZW50IHwgbnVsbCB8fFxuICAgICAgc2Nyb2xsUm93LmNsb3Nlc3QoJy5jb2x1bW5baWRdJykgYXMgSFRNTEVsZW1lbnQgfCBudWxsIHx8XG4gICAgICBlbGVtZW50LmNsb3Nlc3QoJ1tkYXRhLWFuY2hvci10YXJnZXRdW2lkXScpIGFzIEhUTUxFbGVtZW50IHwgbnVsbCB8fFxuICAgICAgZWxlbWVudC5jbG9zZXN0KCcuY29sdW1uW2lkXScpIGFzIEhUTUxFbGVtZW50IHwgbnVsbFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVSb3dJbmRleChzY3JvbGxSb3c6IEhUTUxFbGVtZW50LCBzZWN0aW9uOiBIVE1MRWxlbWVudCB8IG51bGwpOiBudW1iZXIge1xuICAgIGNvbnN0IHNjb3BlID0gc2VjdGlvbiA/PyAoc2Nyb2xsUm93LnBhcmVudEVsZW1lbnQgYXMgSFRNTEVsZW1lbnQgfCBudWxsKTtcbiAgICBpZiAoIXNjb3BlKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgcmV0dXJuIEFycmF5LmZyb20oc2NvcGUucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oJy5zY3JvbGxhYmxlLXJvdycpKS5pbmRleE9mKHNjcm9sbFJvdyk7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVDbGlja2VkSXRlbUlkKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBzZWN0aW9uOiBIVE1MRWxlbWVudCB8IG51bGwpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAoZWxlbWVudC5pZCAmJiBlbGVtZW50LmlkICE9PSBzZWN0aW9uPy5pZCkge1xuICAgICAgcmV0dXJuIGVsZW1lbnQuaWQ7XG4gICAgfVxuXG4gICAgY29uc3QgY2FuZGlkYXRlID0gZWxlbWVudC5jbG9zZXN0KCdbaWRdJykgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgIGlmIChjYW5kaWRhdGU/LmlkICYmIGNhbmRpZGF0ZS5pZCAhPT0gc2VjdGlvbj8uaWQpIHtcbiAgICAgIHJldHVybiBjYW5kaWRhdGUuaWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiJdfQ==
@@ -2070,44 +2070,32 @@ var UISize;
2070
2070
  UISize["ASSET_10"] = "asset_10";
2071
2071
  UISize["CARD_1"] = "card_1";
2072
2072
  UISize["CARD_2"] = "card_2";
2073
+ UISize["CARD_4"] = "card_4";
2073
2074
  })(UISize || (UISize = {}));
2074
2075
 
2075
- const sizeMappingHeight = {
2076
- [UISize.THUMB_1]: '56px',
2077
- [UISize.THUMB_2]: '40px',
2078
- [UISize.THUMB_3]: '118px',
2079
- [UISize.THUMB_4]: '169px',
2080
- [UISize.ASSET_1]: '26px',
2081
- [UISize.ASSET_2]: '16px',
2082
- [UISize.ASSET_3]: '80px',
2083
- [UISize.ASSET_4]: '60px',
2084
- [UISize.ASSET_5]: '18px',
2085
- [UISize.ASSET_6]: '20px',
2086
- [UISize.ASSET_7]: '22px',
2087
- [UISize.ASSET_8]: '24px',
2088
- [UISize.ASSET_9]: '48px',
2089
- [UISize.ASSET_10]: '30px',
2090
- [UISize.CARD_1]: '201px',
2091
- [UISize.CARD_2]: '311px',
2092
- };
2093
- const sizeMappingWidth = {
2094
- [UISize.THUMB_1]: '100px',
2095
- [UISize.THUMB_2]: '105px',
2096
- [UISize.THUMB_3]: '210px',
2097
- [UISize.THUMB_4]: '300px',
2098
- [UISize.ASSET_1]: '26px',
2099
- [UISize.ASSET_2]: '16px',
2100
- [UISize.ASSET_3]: '80px',
2101
- [UISize.ASSET_4]: '60px',
2102
- [UISize.ASSET_5]: '18px',
2103
- [UISize.ASSET_6]: '20px',
2104
- [UISize.ASSET_7]: '22px',
2105
- [UISize.ASSET_8]: '24px',
2106
- [UISize.ASSET_9]: '48px',
2107
- [UISize.ASSET_10]: '30px',
2108
- [UISize.CARD_1]: '210px',
2109
- [UISize.CARD_2]: '300px',
2076
+ const sizeMapping = {
2077
+ [UISize.THUMB_1]: { width: '100px', height: '56px', scalable: false },
2078
+ [UISize.THUMB_2]: { width: '105px', height: '40px', scalable: false },
2079
+ [UISize.THUMB_3]: { width: '210px', height: '118px', scalable: true },
2080
+ [UISize.THUMB_4]: { width: '300px', height: '169px', scalable: true },
2081
+ [UISize.ASSET_1]: { width: '26px', height: '26px', scalable: false },
2082
+ [UISize.ASSET_2]: { width: '16px', height: '16px', scalable: false },
2083
+ [UISize.ASSET_3]: { width: '80px', height: '80px', scalable: false },
2084
+ [UISize.ASSET_4]: { width: '60px', height: '60px', scalable: false },
2085
+ [UISize.ASSET_5]: { width: '18px', height: '18px', scalable: false },
2086
+ [UISize.ASSET_6]: { width: '20px', height: '20px', scalable: false },
2087
+ [UISize.ASSET_7]: { width: '22px', height: '22px', scalable: false },
2088
+ [UISize.ASSET_8]: { width: '24px', height: '24px', scalable: false },
2089
+ [UISize.ASSET_9]: { width: '48px', height: '48px', scalable: false },
2090
+ [UISize.ASSET_10]: { width: '30px', height: '30px', scalable: false },
2091
+ [UISize.CARD_1]: { width: '210px', height: '201px', scalable: true },
2092
+ [UISize.CARD_2]: { width: '300px', height: '311px', scalable: true },
2093
+ [UISize.CARD_4]: { width: '210px', height: '224px', scalable: true },
2110
2094
  };
2095
+ /** @deprecated Use `sizeMapping[size].height` */
2096
+ const sizeMappingHeight = Object.fromEntries(Object.entries(sizeMapping).map(([key, config]) => [key, config.height]));
2097
+ /** @deprecated Use `sizeMapping[size].width` */
2098
+ const sizeMappingWidth = Object.fromEntries(Object.entries(sizeMapping).map(([key, config]) => [key, config.width]));
2111
2099
 
2112
2100
  class UIViewDirective {
2113
2101
  static { this.EXPLORE_LAST_ANCHOR_KEY = 'exploreLastAnchor'; }
@@ -2328,18 +2316,18 @@ class UIViewDirective {
2328
2316
  applyAspectRatio(aspectRatio) {
2329
2317
  }
2330
2318
  applySize(size) {
2331
- if (size) {
2332
- let widthValue = sizeMappingWidth[size];
2333
- let heightValue = sizeMappingHeight[size];
2334
- if (this.isSmallScreen() &&
2335
- this.currentContainer === UIScreenContainerType.FLUID &&
2336
- (size === UISize.CARD_1 || size === UISize.CARD_2 || size === UISize.THUMB_3 || size === UISize.THUMB_4)) {
2337
- widthValue = this.scalePixelValue(widthValue, 1.1);
2338
- heightValue = this.scalePixelValue(heightValue, 1.1);
2339
- }
2340
- this.renderer.setStyle(this.elementRef.nativeElement, 'width', widthValue);
2341
- this.renderer.setStyle(this.elementRef.nativeElement, 'height', heightValue);
2342
- }
2319
+ const config = sizeMapping[size];
2320
+ if (!config)
2321
+ return;
2322
+ let { width: widthValue, height: heightValue } = config;
2323
+ if (config.scalable &&
2324
+ this.isSmallScreen() &&
2325
+ this.currentContainer === UIScreenContainerType.FLUID) {
2326
+ widthValue = this.scalePixelValue(widthValue, 1.1);
2327
+ heightValue = this.scalePixelValue(heightValue, 1.1);
2328
+ }
2329
+ this.renderer.setStyle(this.elementRef.nativeElement, 'width', widthValue);
2330
+ this.renderer.setStyle(this.elementRef.nativeElement, 'height', heightValue);
2343
2331
  }
2344
2332
  applyHoverVars(uiView) {
2345
2333
  const hover = uiView?.hover ?? uiView?.element?.hover;