genassist-chat-react 1.0.37 → 1.0.38
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/README.md +26 -4
- package/dist/components/AudioPlayer.d.ts +11 -0
- package/dist/components/AudioPlayer.js +199 -0
- package/dist/components/ChatMessage.d.ts +3 -0
- package/dist/components/ChatMessage.js +5 -4
- package/dist/components/GenAgentChat.js +147 -838
- package/dist/components/VoiceInput.d.ts +1 -3
- package/dist/components/VoiceInput.js +262 -48
- package/dist/hooks/useAudioRecorder.d.ts +8 -0
- package/dist/hooks/useAudioRecorder.js +124 -0
- package/dist/hooks/useChat.d.ts +1 -0
- package/dist/hooks/useChat.js +45 -9
- package/dist/hooks/useFileAttachments.d.ts +16 -0
- package/dist/hooks/useFileAttachments.js +183 -0
- package/dist/hooks/useScrollManagement.d.ts +15 -0
- package/dist/hooks/useScrollManagement.js +124 -0
- package/dist/hooks/useThinkingAnimation.d.ts +12 -0
- package/dist/hooks/useThinkingAnimation.js +53 -0
- package/dist/hooks/useViewportManager.d.ts +20 -0
- package/dist/hooks/useViewportManager.js +100 -0
- package/dist/services/chatService.d.ts +1 -0
- package/dist/services/chatService.js +67 -12
- package/dist/styles/genAgentChatStyles.d.ts +80 -0
- package/dist/styles/genAgentChatStyles.js +427 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.js +1 -1
- package/package.json +6 -2
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface ThemeParams {
|
|
3
|
+
primaryColor: string;
|
|
4
|
+
secondaryColor: string;
|
|
5
|
+
backgroundColor: string;
|
|
6
|
+
textColor: string;
|
|
7
|
+
fontFamily: string;
|
|
8
|
+
fontSize: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function resolveTheme(theme?: Partial<ThemeParams>): ThemeParams;
|
|
11
|
+
export declare function hexToRgba(hex: string, alpha: number): string;
|
|
12
|
+
interface ContainerStyleParams {
|
|
13
|
+
isFullscreen: boolean;
|
|
14
|
+
isFloatingDocked: boolean;
|
|
15
|
+
windowWidth: number;
|
|
16
|
+
t: ThemeParams;
|
|
17
|
+
}
|
|
18
|
+
export declare function getContainerStyle({ isFullscreen, isFloatingDocked, windowWidth, t }: ContainerStyleParams): React.CSSProperties;
|
|
19
|
+
export declare function getHeaderStyle(t: ThemeParams): React.CSSProperties;
|
|
20
|
+
export declare const logoContainerStyle: React.CSSProperties;
|
|
21
|
+
export declare const logoStyle: React.CSSProperties;
|
|
22
|
+
export declare const headerTitleContainerStyle: React.CSSProperties;
|
|
23
|
+
export declare function getHeaderTitleStyle(fontFamily: string): React.CSSProperties;
|
|
24
|
+
export declare function getHeaderSubtitleStyle(fontFamily: string): React.CSSProperties;
|
|
25
|
+
export declare const menuButtonStyle: React.CSSProperties;
|
|
26
|
+
export declare function getMenuPopupStyle(backgroundColor: string): React.CSSProperties;
|
|
27
|
+
export declare function getMenuItemStyle(t: ThemeParams): React.CSSProperties;
|
|
28
|
+
export declare const chatContainerStyle: React.CSSProperties;
|
|
29
|
+
export declare const inputContainerStyle: React.CSSProperties;
|
|
30
|
+
export declare const inputWrapperStyle: React.CSSProperties;
|
|
31
|
+
interface TextAreaStyleParams {
|
|
32
|
+
textAreaFontSize: string;
|
|
33
|
+
fontFamily: string;
|
|
34
|
+
textAreaLineHeight: number;
|
|
35
|
+
textAreaMaxHeightCalculated: number;
|
|
36
|
+
textColor: string;
|
|
37
|
+
}
|
|
38
|
+
export declare function getTextAreaStyle(p: TextAreaStyleParams): React.CSSProperties;
|
|
39
|
+
export declare const attachButtonStyle: React.CSSProperties;
|
|
40
|
+
export declare function getSendButtonStyle(primaryColor: string): React.CSSProperties;
|
|
41
|
+
export declare const sendButtonDisabledStyle: React.CSSProperties;
|
|
42
|
+
export declare const rightActionContainerStyle: React.CSSProperties;
|
|
43
|
+
export declare function getPossibleQueriesContainerStyle(fontFamily: string): React.CSSProperties;
|
|
44
|
+
export declare function getQueryButtonStyle(t: ThemeParams): React.CSSProperties;
|
|
45
|
+
export declare function getConfirmOverlayStyle(showResetConfirm: boolean): React.CSSProperties;
|
|
46
|
+
export declare function getConfirmDialogStyle(t: ThemeParams): React.CSSProperties;
|
|
47
|
+
export declare const confirmButtonsStyle: React.CSSProperties;
|
|
48
|
+
export declare function getConfirmButtonStyle(isConfirm: boolean, t: ThemeParams): React.CSSProperties;
|
|
49
|
+
export declare function getContentCardStyle(backgroundColor: string): React.CSSProperties;
|
|
50
|
+
export declare function getDisclaimerStyle(fontFamily: string): React.CSSProperties;
|
|
51
|
+
interface PositionParams {
|
|
52
|
+
position: string;
|
|
53
|
+
offsetX: number;
|
|
54
|
+
offsetY: number;
|
|
55
|
+
}
|
|
56
|
+
export declare function getPositionStyles({ position, offsetX, offsetY }: PositionParams): React.CSSProperties;
|
|
57
|
+
export declare function getChatPositionStyles({ position, offsetX, offsetY }: PositionParams): React.CSSProperties;
|
|
58
|
+
interface ResponsiveDimensionParams {
|
|
59
|
+
isFullscreen: boolean;
|
|
60
|
+
mode: string;
|
|
61
|
+
}
|
|
62
|
+
export declare function getResponsiveDimensions({ isFullscreen, mode }: ResponsiveDimensionParams): React.CSSProperties;
|
|
63
|
+
interface FloatingShellParams {
|
|
64
|
+
windowHeight: number;
|
|
65
|
+
offsetY: number;
|
|
66
|
+
position: string;
|
|
67
|
+
}
|
|
68
|
+
export declare function getFloatingShellStyle({ windowHeight, offsetY, position }: FloatingShellParams): React.CSSProperties;
|
|
69
|
+
interface FloatingContainerParams {
|
|
70
|
+
mode: string;
|
|
71
|
+
isFullscreen: boolean;
|
|
72
|
+
windowWidth: number;
|
|
73
|
+
windowHeight: number;
|
|
74
|
+
position: string;
|
|
75
|
+
offsetX: number;
|
|
76
|
+
offsetY: number;
|
|
77
|
+
}
|
|
78
|
+
export declare function getFloatingContainerStyle(p: FloatingContainerParams): React.CSSProperties;
|
|
79
|
+
export declare const CSS_KEYFRAMES = "\n @keyframes blink { 0% { opacity: 0.2; } 20% { opacity: 1; } 100% { opacity: 0.2; } }\n .ga-textarea-nosb {\n scrollbar-width: none;\n -ms-overflow-style: none;\n max-width: 100%;\n box-sizing: border-box;\n }\n .ga-textarea-nosb::-webkit-scrollbar { width: 0; height: 0; }\n .ga-input-disclaimer a {\n color: #9ca3af !important;\n text-decoration: underline;\n }\n .ga-input-disclaimer a:hover {\n color: #6b7280 !important;\n }\n @media (max-width: 768px) {\n .ga-textarea-nosb {\n font-size: 16px !important;\n }\n }\n @keyframes ga-backlight-sweep2 { 0% { transform: translateX(-35%); } 100% { transform: translateX(105%); } }\n @keyframes ga-backlight-pulse { 0%,100% { opacity: 0.7; } 50% { opacity: 1; } }\n @keyframes ga-think-change { 0% { opacity: 0; transform: translateY(4px); } 100% { opacity: 1; transform: translateY(0); } }\n .grecaptcha-badge {\n display: none !important;\n visibility: hidden !important;\n position: absolute !important;\n width: 0 !important;\n height: 0 !important;\n overflow: hidden !important;\n opacity: 0 !important;\n pointer-events: none !important;\n }\n";
|
|
80
|
+
export {};
|
|
@@ -0,0 +1,427 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
export function resolveTheme(theme) {
|
|
13
|
+
return {
|
|
14
|
+
primaryColor: (theme === null || theme === void 0 ? void 0 : theme.primaryColor) || '#2962FF',
|
|
15
|
+
backgroundColor: (theme === null || theme === void 0 ? void 0 : theme.backgroundColor) || '#ffffff',
|
|
16
|
+
textColor: (theme === null || theme === void 0 ? void 0 : theme.textColor) || '#000000',
|
|
17
|
+
fontFamily: (theme === null || theme === void 0 ? void 0 : theme.fontFamily) || 'Roboto, Arial, sans-serif',
|
|
18
|
+
fontSize: (theme === null || theme === void 0 ? void 0 : theme.fontSize) || '14px',
|
|
19
|
+
secondaryColor: (theme === null || theme === void 0 ? void 0 : theme.secondaryColor) || '#f5f5f5',
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export function hexToRgba(hex, alpha) {
|
|
23
|
+
var r = parseInt(hex.slice(1, 3), 16);
|
|
24
|
+
var g = parseInt(hex.slice(3, 5), 16);
|
|
25
|
+
var b = parseInt(hex.slice(5, 7), 16);
|
|
26
|
+
return "rgba(".concat(r, ", ").concat(g, ", ").concat(b, ", ").concat(alpha, ")");
|
|
27
|
+
}
|
|
28
|
+
export function getContainerStyle(_a) {
|
|
29
|
+
var isFullscreen = _a.isFullscreen, isFloatingDocked = _a.isFloatingDocked, windowWidth = _a.windowWidth, t = _a.t;
|
|
30
|
+
return {
|
|
31
|
+
display: 'flex',
|
|
32
|
+
flexDirection: 'column',
|
|
33
|
+
height: isFullscreen ? undefined : '100%',
|
|
34
|
+
maxHeight: isFullscreen
|
|
35
|
+
? undefined
|
|
36
|
+
: isFloatingDocked
|
|
37
|
+
? '100%'
|
|
38
|
+
: windowWidth > 768
|
|
39
|
+
? '700px'
|
|
40
|
+
: '600px',
|
|
41
|
+
minHeight: isFloatingDocked ? 0 : undefined,
|
|
42
|
+
width: isFullscreen ? '100vw' : '380px',
|
|
43
|
+
maxWidth: isFullscreen ? '100vw' : '400px',
|
|
44
|
+
border: isFullscreen ? 'none' : '1px solid #e0e0e0',
|
|
45
|
+
borderRadius: isFullscreen ? '0' : '32px',
|
|
46
|
+
overflow: 'hidden',
|
|
47
|
+
backgroundColor: t.secondaryColor,
|
|
48
|
+
fontFamily: t.fontFamily,
|
|
49
|
+
boxShadow: isFullscreen ? 'none' : "0 4px 20px rgba(0, 0, 0, 0.2)",
|
|
50
|
+
position: isFullscreen ? 'fixed' : 'relative',
|
|
51
|
+
top: isFullscreen ? 0 : undefined,
|
|
52
|
+
left: isFullscreen ? 0 : undefined,
|
|
53
|
+
right: isFullscreen ? 0 : undefined,
|
|
54
|
+
bottom: isFullscreen ? 'env(safe-area-inset-bottom, 0px)' : undefined,
|
|
55
|
+
zIndex: isFullscreen ? 9999 : undefined,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
export function getHeaderStyle(t) {
|
|
59
|
+
return {
|
|
60
|
+
padding: '15px',
|
|
61
|
+
backgroundColor: t.secondaryColor,
|
|
62
|
+
color: '#111111',
|
|
63
|
+
fontWeight: 'bold',
|
|
64
|
+
display: 'flex',
|
|
65
|
+
justifyContent: 'space-between',
|
|
66
|
+
alignItems: 'center',
|
|
67
|
+
position: 'relative',
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
export var logoContainerStyle = {
|
|
71
|
+
display: 'flex',
|
|
72
|
+
alignItems: 'center',
|
|
73
|
+
gap: '10px',
|
|
74
|
+
position: 'relative',
|
|
75
|
+
zIndex: 1,
|
|
76
|
+
};
|
|
77
|
+
export var logoStyle = {
|
|
78
|
+
width: '28px',
|
|
79
|
+
height: '28px',
|
|
80
|
+
};
|
|
81
|
+
export var headerTitleContainerStyle = {
|
|
82
|
+
display: 'flex',
|
|
83
|
+
flexDirection: 'column',
|
|
84
|
+
};
|
|
85
|
+
export function getHeaderTitleStyle(fontFamily) {
|
|
86
|
+
return {
|
|
87
|
+
fontSize: '16px',
|
|
88
|
+
fontWeight: 'bold',
|
|
89
|
+
margin: 0,
|
|
90
|
+
fontFamily: fontFamily,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
export function getHeaderSubtitleStyle(fontFamily) {
|
|
94
|
+
return {
|
|
95
|
+
fontSize: '14px',
|
|
96
|
+
fontWeight: 'normal',
|
|
97
|
+
margin: 0,
|
|
98
|
+
fontFamily: fontFamily,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
export var menuButtonStyle = {
|
|
102
|
+
backgroundColor: 'transparent',
|
|
103
|
+
color: '#111111',
|
|
104
|
+
border: 'none',
|
|
105
|
+
borderRadius: '50%',
|
|
106
|
+
width: '32px',
|
|
107
|
+
height: '32px',
|
|
108
|
+
display: 'flex',
|
|
109
|
+
alignItems: 'center',
|
|
110
|
+
justifyContent: 'center',
|
|
111
|
+
cursor: 'pointer',
|
|
112
|
+
outline: 'none',
|
|
113
|
+
position: 'relative',
|
|
114
|
+
zIndex: 1,
|
|
115
|
+
};
|
|
116
|
+
export function getMenuPopupStyle(backgroundColor) {
|
|
117
|
+
return {
|
|
118
|
+
position: 'absolute',
|
|
119
|
+
top: '50px',
|
|
120
|
+
right: '15px',
|
|
121
|
+
backgroundColor: backgroundColor,
|
|
122
|
+
borderRadius: '8px',
|
|
123
|
+
boxShadow: '0 2px 10px rgba(0, 0, 0, 0.1)',
|
|
124
|
+
zIndex: 1000,
|
|
125
|
+
minWidth: '150px',
|
|
126
|
+
overflow: 'visible',
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
export function getMenuItemStyle(t) {
|
|
130
|
+
return {
|
|
131
|
+
display: 'flex',
|
|
132
|
+
alignItems: 'center',
|
|
133
|
+
gap: '8px',
|
|
134
|
+
padding: '10px 15px',
|
|
135
|
+
color: t.textColor,
|
|
136
|
+
cursor: 'pointer',
|
|
137
|
+
fontSize: t.fontSize,
|
|
138
|
+
fontFamily: t.fontFamily,
|
|
139
|
+
borderBottom: '1px solid #f0f0f0',
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
export var chatContainerStyle = {
|
|
143
|
+
flex: 1,
|
|
144
|
+
minHeight: 0,
|
|
145
|
+
overflowY: 'auto',
|
|
146
|
+
padding: '15px',
|
|
147
|
+
backgroundColor: 'transparent',
|
|
148
|
+
display: 'flex',
|
|
149
|
+
flexDirection: 'column',
|
|
150
|
+
};
|
|
151
|
+
export var inputContainerStyle = {
|
|
152
|
+
display: 'flex',
|
|
153
|
+
padding: '12px 15px',
|
|
154
|
+
backgroundColor: '#ffffff',
|
|
155
|
+
alignItems: 'center',
|
|
156
|
+
gap: '8px',
|
|
157
|
+
flexShrink: 0,
|
|
158
|
+
overflowX: 'hidden',
|
|
159
|
+
minWidth: 0,
|
|
160
|
+
};
|
|
161
|
+
export var inputWrapperStyle = {
|
|
162
|
+
display: 'flex',
|
|
163
|
+
flex: 1,
|
|
164
|
+
alignItems: 'center',
|
|
165
|
+
backgroundColor: '#ffffff',
|
|
166
|
+
borderRadius: '24px',
|
|
167
|
+
border: '1px solid #e5e7eb',
|
|
168
|
+
padding: '0 12px',
|
|
169
|
+
minHeight: '50px',
|
|
170
|
+
boxShadow: '0 1px 3px rgba(0, 0, 0, 0.06)',
|
|
171
|
+
position: 'relative',
|
|
172
|
+
overflowX: 'hidden',
|
|
173
|
+
minWidth: 0,
|
|
174
|
+
};
|
|
175
|
+
export function getTextAreaStyle(p) {
|
|
176
|
+
return {
|
|
177
|
+
flex: 1,
|
|
178
|
+
border: 'none',
|
|
179
|
+
outline: 'none',
|
|
180
|
+
background: 'transparent',
|
|
181
|
+
fontSize: p.textAreaFontSize,
|
|
182
|
+
fontFamily: p.fontFamily,
|
|
183
|
+
padding: '10px',
|
|
184
|
+
paddingRight: '46px',
|
|
185
|
+
color: p.textColor,
|
|
186
|
+
resize: 'none',
|
|
187
|
+
lineHeight: "".concat(p.textAreaLineHeight, "px"),
|
|
188
|
+
maxHeight: "".concat(p.textAreaMaxHeightCalculated, "px"),
|
|
189
|
+
overflowY: 'hidden',
|
|
190
|
+
overflowX: 'hidden',
|
|
191
|
+
minWidth: 0,
|
|
192
|
+
width: '100%',
|
|
193
|
+
boxSizing: 'border-box',
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
export var attachButtonStyle = {
|
|
197
|
+
backgroundColor: 'transparent',
|
|
198
|
+
border: 'none',
|
|
199
|
+
display: 'flex',
|
|
200
|
+
alignItems: 'center',
|
|
201
|
+
justifyContent: 'center',
|
|
202
|
+
cursor: 'pointer',
|
|
203
|
+
outline: 'none',
|
|
204
|
+
color: '#757575',
|
|
205
|
+
padding: 0,
|
|
206
|
+
};
|
|
207
|
+
export function getSendButtonStyle(primaryColor) {
|
|
208
|
+
return {
|
|
209
|
+
backgroundColor: primaryColor,
|
|
210
|
+
color: '#ffffff',
|
|
211
|
+
border: 'none',
|
|
212
|
+
borderRadius: '50%',
|
|
213
|
+
width: '36px',
|
|
214
|
+
height: '36px',
|
|
215
|
+
display: 'flex',
|
|
216
|
+
alignItems: 'center',
|
|
217
|
+
justifyContent: 'center',
|
|
218
|
+
cursor: 'pointer',
|
|
219
|
+
outline: 'none',
|
|
220
|
+
flexShrink: 0,
|
|
221
|
+
boxShadow: '0 1px 3px rgba(0, 0, 0, 0.08)',
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
export var sendButtonDisabledStyle = {
|
|
225
|
+
backgroundColor: '#d1d5db',
|
|
226
|
+
cursor: 'not-allowed',
|
|
227
|
+
opacity: 0.8,
|
|
228
|
+
};
|
|
229
|
+
export var rightActionContainerStyle = {
|
|
230
|
+
position: 'absolute',
|
|
231
|
+
right: '4px',
|
|
232
|
+
top: '50%',
|
|
233
|
+
transform: 'translateY(-50%)',
|
|
234
|
+
display: 'flex',
|
|
235
|
+
alignItems: 'center',
|
|
236
|
+
justifyContent: 'center',
|
|
237
|
+
};
|
|
238
|
+
export function getPossibleQueriesContainerStyle(fontFamily) {
|
|
239
|
+
return {
|
|
240
|
+
display: 'flex',
|
|
241
|
+
flexDirection: 'column',
|
|
242
|
+
gap: '8px',
|
|
243
|
+
padding: '0',
|
|
244
|
+
paddingLeft: '28px',
|
|
245
|
+
paddingRight: '28px',
|
|
246
|
+
marginTop: '5px',
|
|
247
|
+
marginBottom: '15px',
|
|
248
|
+
width: '100%',
|
|
249
|
+
fontFamily: fontFamily,
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
export function getQueryButtonStyle(t) {
|
|
253
|
+
return {
|
|
254
|
+
padding: '12px 15px',
|
|
255
|
+
backgroundColor: t.secondaryColor,
|
|
256
|
+
color: t.textColor,
|
|
257
|
+
border: 'none',
|
|
258
|
+
borderRadius: '6px',
|
|
259
|
+
fontSize: t.fontSize,
|
|
260
|
+
cursor: 'pointer',
|
|
261
|
+
textAlign: 'left',
|
|
262
|
+
fontWeight: 'normal',
|
|
263
|
+
boxShadow: 'none',
|
|
264
|
+
width: '100%',
|
|
265
|
+
maxWidth: '240px',
|
|
266
|
+
fontFamily: t.fontFamily,
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
export function getConfirmOverlayStyle(showResetConfirm) {
|
|
270
|
+
return {
|
|
271
|
+
display: showResetConfirm ? 'flex' : 'none',
|
|
272
|
+
position: 'absolute',
|
|
273
|
+
top: 0,
|
|
274
|
+
left: 0,
|
|
275
|
+
right: 0,
|
|
276
|
+
bottom: 0,
|
|
277
|
+
backgroundColor: 'rgba(0, 0, 0, 0.5)',
|
|
278
|
+
zIndex: 10,
|
|
279
|
+
justifyContent: 'center',
|
|
280
|
+
alignItems: 'center',
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
export function getConfirmDialogStyle(t) {
|
|
284
|
+
return {
|
|
285
|
+
backgroundColor: t.backgroundColor,
|
|
286
|
+
padding: '20px',
|
|
287
|
+
borderRadius: '8px',
|
|
288
|
+
maxWidth: '300px',
|
|
289
|
+
textAlign: 'center',
|
|
290
|
+
fontFamily: t.fontFamily,
|
|
291
|
+
color: t.textColor,
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
export var confirmButtonsStyle = {
|
|
295
|
+
display: 'flex',
|
|
296
|
+
justifyContent: 'center',
|
|
297
|
+
marginTop: '15px',
|
|
298
|
+
gap: '10px',
|
|
299
|
+
};
|
|
300
|
+
export function getConfirmButtonStyle(isConfirm, t) {
|
|
301
|
+
return {
|
|
302
|
+
padding: '8px 16px',
|
|
303
|
+
backgroundColor: isConfirm ? '#F44336' : '#e0e0e0',
|
|
304
|
+
color: isConfirm ? '#ffffff' : t.textColor,
|
|
305
|
+
border: 'none',
|
|
306
|
+
borderRadius: '4px',
|
|
307
|
+
cursor: 'pointer',
|
|
308
|
+
fontFamily: t.fontFamily,
|
|
309
|
+
fontSize: t.fontSize,
|
|
310
|
+
};
|
|
311
|
+
}
|
|
312
|
+
export function getContentCardStyle(backgroundColor) {
|
|
313
|
+
return {
|
|
314
|
+
flex: 1,
|
|
315
|
+
display: 'flex',
|
|
316
|
+
flexDirection: 'column',
|
|
317
|
+
backgroundColor: backgroundColor,
|
|
318
|
+
borderTopLeftRadius: 24,
|
|
319
|
+
borderTopRightRadius: 24,
|
|
320
|
+
boxShadow: '0 -2px 6px rgba(0,0,0,0.03)',
|
|
321
|
+
position: 'relative',
|
|
322
|
+
zIndex: 2,
|
|
323
|
+
overflow: 'hidden',
|
|
324
|
+
minHeight: 0,
|
|
325
|
+
};
|
|
326
|
+
}
|
|
327
|
+
export function getDisclaimerStyle(fontFamily) {
|
|
328
|
+
return {
|
|
329
|
+
textAlign: 'left',
|
|
330
|
+
fontSize: '12px',
|
|
331
|
+
color: '#9ca3af',
|
|
332
|
+
margin: '12px 4px 2px 4px',
|
|
333
|
+
fontFamily: fontFamily,
|
|
334
|
+
};
|
|
335
|
+
}
|
|
336
|
+
export function getPositionStyles(_a) {
|
|
337
|
+
var position = _a.position, offsetX = _a.offsetX, offsetY = _a.offsetY;
|
|
338
|
+
var base = {
|
|
339
|
+
position: 'fixed',
|
|
340
|
+
zIndex: 1000,
|
|
341
|
+
};
|
|
342
|
+
switch (position) {
|
|
343
|
+
case 'bottom-right':
|
|
344
|
+
return __assign(__assign({}, base), { bottom: offsetY, right: offsetX });
|
|
345
|
+
case 'bottom-left':
|
|
346
|
+
return __assign(__assign({}, base), { bottom: offsetY, left: offsetX });
|
|
347
|
+
case 'top-right':
|
|
348
|
+
return __assign(__assign({}, base), { top: offsetY, right: offsetX });
|
|
349
|
+
case 'top-left':
|
|
350
|
+
return __assign(__assign({}, base), { top: offsetY, left: offsetX });
|
|
351
|
+
default:
|
|
352
|
+
return __assign(__assign({}, base), { bottom: offsetY, right: offsetX });
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
export function getChatPositionStyles(_a) {
|
|
356
|
+
var position = _a.position, offsetX = _a.offsetX, offsetY = _a.offsetY;
|
|
357
|
+
var base = {
|
|
358
|
+
position: 'fixed',
|
|
359
|
+
borderRadius: '32px',
|
|
360
|
+
zIndex: 1004,
|
|
361
|
+
};
|
|
362
|
+
switch (position) {
|
|
363
|
+
case 'bottom-right':
|
|
364
|
+
return __assign(__assign({}, base), { bottom: offsetY, right: offsetX });
|
|
365
|
+
case 'bottom-left':
|
|
366
|
+
return __assign(__assign({}, base), { bottom: offsetY, left: offsetX });
|
|
367
|
+
case 'top-right':
|
|
368
|
+
return __assign(__assign({}, base), { top: offsetY, right: offsetX });
|
|
369
|
+
case 'top-left':
|
|
370
|
+
return __assign(__assign({}, base), { top: offsetY, left: offsetX });
|
|
371
|
+
default:
|
|
372
|
+
return __assign(__assign({}, base), { bottom: offsetY, right: offsetX });
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
export function getResponsiveDimensions(_a) {
|
|
376
|
+
var isFullscreen = _a.isFullscreen, mode = _a.mode;
|
|
377
|
+
var screenWidth = typeof window !== 'undefined' ? window.innerWidth : 1024;
|
|
378
|
+
var fallbackHeight = isFullscreen ? '100vh' : '60vh';
|
|
379
|
+
if (isFullscreen) {
|
|
380
|
+
return { width: '100vw', height: fallbackHeight, borderRadius: '0' };
|
|
381
|
+
}
|
|
382
|
+
if (mode === 'floating') {
|
|
383
|
+
if (screenWidth <= 480) {
|
|
384
|
+
return { width: 'calc(100vw - 40px)' };
|
|
385
|
+
}
|
|
386
|
+
if (screenWidth <= 768) {
|
|
387
|
+
return { width: '350px' };
|
|
388
|
+
}
|
|
389
|
+
return { width: '380px' };
|
|
390
|
+
}
|
|
391
|
+
if (screenWidth <= 480) {
|
|
392
|
+
return { width: 'calc(100vw - 40px)', height: fallbackHeight };
|
|
393
|
+
}
|
|
394
|
+
if (screenWidth <= 768) {
|
|
395
|
+
return { width: '350px', height: fallbackHeight };
|
|
396
|
+
}
|
|
397
|
+
return { width: '380px', height: fallbackHeight };
|
|
398
|
+
}
|
|
399
|
+
export function getFloatingShellStyle(_a) {
|
|
400
|
+
var windowHeight = _a.windowHeight, offsetY = _a.offsetY, position = _a.position;
|
|
401
|
+
var screenWidth = typeof window !== 'undefined' ? window.innerWidth : 1024;
|
|
402
|
+
var screenHeight = typeof window !== 'undefined' ? window.innerHeight : 1080;
|
|
403
|
+
var margin = 10;
|
|
404
|
+
var usableHeight = Math.max(280, windowHeight - offsetY - margin * 10);
|
|
405
|
+
var maxHeight = usableHeight;
|
|
406
|
+
if (screenWidth >= 765 && screenHeight >= 1070) {
|
|
407
|
+
maxHeight = '60vh';
|
|
408
|
+
}
|
|
409
|
+
return __assign({ display: 'flex', flexDirection: 'column', maxHeight: maxHeight, height: usableHeight }, (position === 'top-right' || position === 'top-left'
|
|
410
|
+
? { top: offsetY, bottom: 'auto' }
|
|
411
|
+
: { top: 'auto', bottom: offsetY }));
|
|
412
|
+
}
|
|
413
|
+
export function getFloatingContainerStyle(p) {
|
|
414
|
+
return __assign({}, ((p.mode === 'fullscreen' || (p.isFullscreen && p.windowWidth <= 768))
|
|
415
|
+
? {
|
|
416
|
+
position: 'fixed',
|
|
417
|
+
top: 0,
|
|
418
|
+
left: 0,
|
|
419
|
+
right: 0,
|
|
420
|
+
bottom: 'env(safe-area-inset-bottom, 0px)',
|
|
421
|
+
borderRadius: '0',
|
|
422
|
+
zIndex: 9999,
|
|
423
|
+
}
|
|
424
|
+
: __assign(__assign(__assign({}, getChatPositionStyles({ position: p.position, offsetX: p.offsetX, offsetY: p.offsetY })), getResponsiveDimensions({ isFullscreen: p.isFullscreen, mode: p.mode })), (p.mode === 'floating' && !p.isFullscreen ? getFloatingShellStyle({ windowHeight: p.windowHeight, offsetY: p.offsetY, position: p.position }) : {}))));
|
|
425
|
+
}
|
|
426
|
+
export var CSS_KEYFRAMES = "\n @keyframes blink { 0% { opacity: 0.2; } 20% { opacity: 1; } 100% { opacity: 0.2; } }\n .ga-textarea-nosb {\n scrollbar-width: none;\n -ms-overflow-style: none;\n max-width: 100%;\n box-sizing: border-box;\n }\n .ga-textarea-nosb::-webkit-scrollbar { width: 0; height: 0; }\n .ga-input-disclaimer a {\n color: #9ca3af !important;\n text-decoration: underline;\n }\n .ga-input-disclaimer a:hover {\n color: #6b7280 !important;\n }\n @media (max-width: 768px) {\n .ga-textarea-nosb {\n font-size: 16px !important;\n }\n }\n @keyframes ga-backlight-sweep2 { 0% { transform: translateX(-35%); } 100% { transform: translateX(105%); } }\n @keyframes ga-backlight-pulse { 0%,100% { opacity: 0.7; } 50% { opacity: 1; } }\n @keyframes ga-think-change { 0% { opacity: 0; transform: translateY(4px); } 100% { opacity: 1; transform: translateY(0); } }\n .grecaptcha-badge {\n display: none !important;\n visibility: hidden !important;\n position: absolute !important;\n width: 0 !important;\n height: 0 !important;\n overflow: hidden !important;\n opacity: 0 !important;\n pointer-events: none !important;\n }\n";
|
|
427
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuQWdlbnRDaGF0U3R5bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0eWxlcy9nZW5BZ2VudENoYXRTdHlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFXQSxNQUFNLFVBQVUsWUFBWSxDQUFDLEtBQTRCO0lBQ3ZELE9BQU87UUFDTCxZQUFZLEVBQUUsQ0FBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsWUFBWSxLQUFJLFNBQVM7UUFDOUMsZUFBZSxFQUFFLENBQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLGVBQWUsS0FBSSxTQUFTO1FBQ3BELFNBQVMsRUFBRSxDQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxTQUFTLEtBQUksU0FBUztRQUN4QyxVQUFVLEVBQUUsQ0FBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsVUFBVSxLQUFJLDJCQUEyQjtRQUM1RCxRQUFRLEVBQUUsQ0FBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsUUFBUSxLQUFJLE1BQU07UUFDbkMsY0FBYyxFQUFFLENBQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLGNBQWMsS0FBSSxTQUFTO0tBQ25ELENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxHQUFXLEVBQUUsS0FBYTtJQUNsRCxJQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDeEMsSUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLElBQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFD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QUMsSUFBTSxhQUFhLEdBQUcsc3BDQWtDNUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGhlbWVQYXJhbXMge1xuICBwcmltYXJ5Q29sb3I6IHN0cmluZztcbiAgc2Vjb25kYXJ5Q29sb3I6IHN0cmluZztcbiAgYmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG4gIHRleHRDb2xvcjogc3RyaW5nO1xuICBmb250RmFtaWx5OiBzdHJpbmc7XG4gIGZvbnRTaXplOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlVGhlbWUodGhlbWU/OiBQYXJ0aWFsPFRoZW1lUGFyYW1zPik6IFRoZW1lUGFyYW1zIHtcbiAgcmV0dXJuIHtcbiAgICBwcmltYXJ5Q29sb3I6IHRoZW1lPy5wcmltYXJ5Q29sb3IgfHwgJyMyOTYyRkYnLFxuICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWU/LmJhY2tncm91bmRDb2xvciB8fCAnI2ZmZmZmZicsXG4gICAgdGV4dENvbG9yOiB0aGVtZT8udGV4dENvbG9yIHx8ICcjMDAwMDAwJyxcbiAgICBmb250RmFtaWx5OiB0aGVtZT8uZm9udEZhbWlseSB8fCAnUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZicsXG4gICAgZm9udFNpemU6IHRoZW1lPy5mb250U2l6ZSB8fCAnMTRweCcsXG4gICAgc2Vjb25kYXJ5Q29sb3I6IHRoZW1lPy5zZWNvbmRhcnlDb2xvciB8fCAnI2Y1ZjVmNScsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoZXhUb1JnYmEoaGV4OiBzdHJpbmcsIGFscGhhOiBudW1iZXIpOiBzdHJpbmcge1xuICBjb25zdCByID0gcGFyc2VJbnQoaGV4LnNsaWNlKDEsIDMpLCAxNik7XG4gIGNvbnN0IGcgPSBwYXJzZUludChoZXguc2xpY2UoMywgNSksIDE2KTtcbiAgY29uc3QgYiA9IHBhcnNlSW50KGhleC5zbGljZSg1LCA3KSwgMTYpO1xuICByZXR1cm4gYHJnYmEoJHtyfSwgJHtnfSwgJHtifSwgJHthbHBoYX0pYDtcbn1cblxuaW50ZXJmYWNlIENvbnRhaW5lclN0eWxlUGFyYW1zIHtcbiAgaXNGdWxsc2NyZWVuOiBib29sZWFuO1xuICBpc0Zsb2F0aW5nRG9ja2VkOiBib29sZWFuO1xuICB3aW5kb3dXaWR0aDogbnVtYmVyO1xuICB0OiBUaGVtZVBhcmFtcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbnRhaW5lclN0eWxlKHsgaXNGdWxsc2NyZWVuLCBpc0Zsb2F0aW5nRG9ja2VkLCB3aW5kb3dXaWR0aCwgdCB9OiBDb250YWluZXJTdHlsZVBhcmFtcyk6IFJlYWN0LkNTU1Byb3BlcnRpZXMge1xuICByZXR1cm4ge1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICBoZWlnaHQ6IGlzRnVsbHNjcmVlbiA/IHVuZGVmaW5lZCA6ICcxMDAlJyxcbiAgICBtYXhIZWlnaHQ6IGlzRnVsbHNjcmVlblxuICAgICAgPyB1bmRlZmluZWRcbiAgICAgIDogaXNGbG9hdGluZ0RvY2tlZFxuICAgICAgICA/ICcxMDAlJ1xuICAgICAgICA6IHdpbmRvd1dpZHRoID4gNzY4XG4gICAgICAgICAgPyAnNzAwcHgnXG4gICAgICAgICAgOiAnNjAwcHgnLFxuICAgIG1pbkhlaWdodDogaXNGbG9hdGluZ0RvY2tlZCA/IDAgOiB1bmRlZmluZWQsXG4gICAgd2lkdGg6IGlzRnVsbHNjcmVlbiA/ICcxMDB2dycgOiAnMzgwcHgnLFxuICAgIG1heFdpZHRoOiBpc0Z1bGxzY3JlZW4gPyAnMTAwdncnIDogJzQwMHB4JyxcbiAgICBib3JkZXI6IGlzRnVsbHNjcmVlbiA/ICdub25lJyA6ICcxcHggc29saWQgI2UwZTBlMCcsXG4gICAgYm9yZGVyUmFkaXVzOiBpc0Z1bGxzY3JlZW4gPyAnMCcgOiAnMzJweCcsXG4gICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgIGJhY2tncm91bmRDb2xvcjogdC5zZWNvbmRhcnlDb2xvcixcbiAgICBmb250RmFtaWx5OiB0LmZvbnRGYW1pbHksXG4gICAgYm94U2hhZG93OiBpc0Z1bGxzY3JlZW4gPyAnbm9uZScgOiBcIjAgNHB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjIpXCIsXG4gICAgcG9zaXRpb246IGlzRnVsbHNjcmVlbiA/ICdmaXhlZCcgOiAncmVsYXRpdmUnLFxuICAgIHRvcDogaXNGdWxsc2NyZWVuID8gMCA6IHVuZGVmaW5lZCxcbiAgICBsZWZ0OiBpc0Z1bGxzY3JlZW4gPyAwIDogdW5kZWZpbmVkLFxuICAgIHJpZ2h0OiBpc0Z1bGxzY3JlZW4gPyAwIDogdW5kZWZpbmVkLFxuICAgIGJvdHRvbTogaXNGdWxsc2NyZWVuID8gJ2VudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tLCAwcHgpJyA6IHVuZGVmaW5lZCxcbiAgICB6SW5kZXg6IGlzRnVsbHNjcmVlbiA/IDk5OTkgOiB1bmRlZmluZWQsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIZWFkZXJTdHlsZSh0OiBUaGVtZVBhcmFtcyk6IFJlYWN0LkNTU1Byb3BlcnRpZXMge1xuICByZXR1cm4ge1xuICAgIHBhZGRpbmc6ICcxNXB4JyxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHQuc2Vjb25kYXJ5Q29sb3IsXG4gICAgY29sb3I6ICcjMTExMTExJyxcbiAgICBmb250V2VpZ2h0OiAnYm9sZCcsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBsb2dvQ29udGFpbmVyU3R5bGU6IFJlYWN0LkNTU1Byb3BlcnRpZXMgPSB7XG4gIGRpc3BsYXk6ICdmbGV4JyxcbiAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIGdhcDogJzEwcHgnLFxuICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgekluZGV4OiAxLFxufTtcblxuZXhwb3J0IGNvbnN0IGxvZ29TdHlsZTogUmVhY3QuQ1NTUHJvcGVydGllcyA9IHtcbiAgd2lkdGg6ICcyOHB4JyxcbiAgaGVpZ2h0OiAnMjhweCcsXG59O1xuXG5leHBvcnQgY29uc3QgaGVhZGVyVGl0bGVDb250YWluZXJTdHlsZTogUmVhY3QuQ1NTUHJvcGVydGllcyA9IHtcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIZWFkZXJUaXRsZVN0eWxlKGZvbnRGYW1pbHk6IHN0cmluZyk6IFJlYWN0LkNTU1Byb3BlcnRpZXMge1xuICByZXR1cm4ge1xuICAgIGZvbnRTaXplOiAnMTZweCcsXG4gICAgZm9udFdlaWdodDogJ2JvbGQnLFxuICAgIG1hcmdpbjogMCxcbiAgICBmb250RmFtaWx5LFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGVhZGVyU3VidGl0bGVTdHlsZShmb250RmFtaWx5OiBzdHJpbmcpOiBSZWFjdC5DU1NQcm9wZXJ0aWVzIHtcbiAgcmV0dXJuIHtcbiAgICBmb250U2l6ZTogJzE0cHgnLFxuICAgIGZvbnRXZWlnaHQ6ICdub3JtYWwnLFxuICAgIG1hcmdpbjogMCxcbiAgICBmb250RmFtaWx5LFxuICB9O1xufVxuXG5leHBvcnQgY29uc3QgbWVudUJ1dHRvblN0eWxlOiBSZWFjdC5DU1NQcm9wZXJ0aWVzID0ge1xuICBiYWNrZ3JvdW5kQ29sb3I6ICd0cmFuc3BhcmVudCcsXG4gIGNvbG9yOiAnIzExMTExMScsXG4gIGJvcmRlcjogJ25vbmUnLFxuICBib3JkZXJSYWRpdXM6ICc1MCUnLFxuICB3aWR0aDogJzMycHgnLFxuICBoZWlnaHQ6ICczMnB4JyxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgb3V0bGluZTogJ25vbmUnLFxuICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgekluZGV4OiAxLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldE1lbnVQb3B1cFN0eWxlKGJhY2tncm91bmRDb2xvcjogc3RyaW5nKTogUmVhY3QuQ1NTUHJvcGVydGllcyB7XG4gIHJldHVybiB7XG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgdG9wOiAnNTBweCcsXG4gICAgcmlnaHQ6ICcxNXB4JyxcbiAgICBiYWNrZ3JvdW5kQ29sb3IsXG4gICAgYm9yZGVyUmFkaXVzOiAnOHB4JyxcbiAgICBib3hTaGFkb3c6ICcwIDJweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4xKScsXG4gICAgekluZGV4OiAxMDAwLFxuICAgIG1pbldpZHRoOiAnMTUwcHgnLFxuICAgIG92ZXJmbG93OiAndmlzaWJsZScsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRNZW51SXRlbVN0eWxlKHQ6IFRoZW1lUGFyYW1zKTogUmVhY3QuQ1NTUHJvcGVydGllcyB7XG4gIHJldHVybiB7XG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGdhcDogJzhweCcsXG4gICAgcGFkZGluZzogJzEwcHggMTVweCcsXG4gICAgY29sb3I6IHQudGV4dENvbG9yLFxuICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgIGZvbnRTaXplOiB0LmZvbnRTaXplLFxuICAgIGZvbnRGYW1pbHk6IHQuZm9udEZhbWlseSxcbiAgICBib3JkZXJCb3R0b206ICcxcHggc29saWQgI2YwZjBmMCcsXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBjaGF0Q29udGFpbmVyU3R5bGU6IFJlYWN0LkNTU1Byb3BlcnRpZXMgPSB7XG4gIGZsZXg6IDEsXG4gIG1pbkhlaWdodDogMCxcbiAgb3ZlcmZsb3dZOiAnYXV0bycsXG4gIHBhZGRpbmc6ICcxNXB4JyxcbiAgYmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQnLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxufTtcblxuZXhwb3J0IGNvbnN0IGlucHV0Q29udGFpbmVyU3R5bGU6IFJlYWN0LkNTU1Byb3BlcnRpZXMgPSB7XG4gIGRpc3BsYXk6ICdmbGV4JyxcbiAgcGFkZGluZzogJzEycHggMTVweCcsXG4gIGJhY2tncm91bmRDb2xvcjogJyNmZmZmZmYnLFxuICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgZ2FwOiAnOHB4JyxcbiAgZmxleFNocmluazogMCxcbiAgb3ZlcmZsb3dYOiAnaGlkZGVuJyxcbiAgbWluV2lkdGg6IDAsXG59O1xuXG5leHBvcnQgY29uc3QgaW5wdXRXcmFwcGVyU3R5bGU6IFJlYWN0LkNTU1Byb3BlcnRpZXMgPSB7XG4gIGRpc3BsYXk6ICdmbGV4JyxcbiAgZmxleDogMSxcbiAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIGJhY2tncm91bmRDb2xvcjogJyNmZmZmZmYnLFxuICBib3JkZXJSYWRpdXM6ICcyNHB4JyxcbiAgYm9yZGVyOiAnMXB4IHNvbGlkICNlNWU3ZWInLFxuICBwYWRkaW5nOiAnMCAxMnB4JyxcbiAgbWluSGVpZ2h0OiAnNTBweCcsXG4gIGJveFNoYWRvdzogJzAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMDYpJyxcbiAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gIG92ZXJmbG93WDogJ2hpZGRlbicsXG4gIG1pbldpZHRoOiAwLFxufTtcblxuaW50ZXJmYWNlIFRleHRBcmVhU3R5bGVQYXJhbXMge1xuICB0ZXh0QXJlYUZvbnRTaXplOiBzdHJpbmc7XG4gIGZvbnRGYW1pbHk6IHN0cmluZztcbiAgdGV4dEFyZWFMaW5lSGVpZ2h0OiBudW1iZXI7XG4gIHRleHRBcmVhTWF4SGVpZ2h0Q2FsY3VsYXRlZDogbnVtYmVyO1xuICB0ZXh0Q29sb3I6IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRleHRBcmVhU3R5bGUocDogVGV4dEFyZWFTdHlsZVBhcmFtcyk6IFJlYWN0LkNTU1Byb3BlcnRpZXMge1xuICByZXR1cm4ge1xuICAgIGZsZXg6IDEsXG4gICAgYm9yZGVyOiAnbm9uZScsXG4gICAgb3V0bGluZTogJ25vbmUnLFxuICAgIGJhY2tncm91bmQ6ICd0cmFuc3BhcmVudCcsXG4gICAgZm9udFNpemU6IHAudGV4dEFyZWFGb250U2l6ZSxcbiAgICBmb250RmFtaWx5OiBwLmZvbnRGYW1pbHksXG4gICAgcGFkZGluZzogJzEwcHgnLFxuICAgIHBhZGRpbmdSaWdodDogJzQ2cHgnLFxuICAgIGNvbG9yOiBwLnRleHRDb2xvcixcbiAgICByZXNpemU6ICdub25lJyxcbiAgICBsaW5lSGVpZ2h0OiBgJHtwLnRleHRBcmVhTGluZUhlaWdodH1weGAsXG4gICAgbWF4SGVpZ2h0OiBgJHtwLnRleHRBcmVhTWF4SGVpZ2h0Q2FsY3VsYXRlZH1weGAsXG4gICAgb3ZlcmZsb3dZOiAnaGlkZGVuJyxcbiAgICBvdmVyZmxvd1g6ICdoaWRkZW4nLFxuICAgIG1pbldpZHRoOiAwLFxuICAgIHdpZHRoOiAnMTAwJScsXG4gICAgYm94U2l6aW5nOiAnYm9yZGVyLWJveCcsXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBhdHRhY2hCdXR0b25TdHlsZTogUmVhY3QuQ1NTUHJvcGVydGllcyA9IHtcbiAgYmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQnLFxuICBib3JkZXI6ICdub25lJyxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgb3V0bGluZTogJ25vbmUnLFxuICBjb2xvcjogJyM3NTc1NzUnLFxuICBwYWRkaW5nOiAwLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNlbmRCdXR0b25TdHlsZShwcmltYXJ5Q29sb3I6IHN0cmluZyk6IFJlYWN0LkNTU1Byb3BlcnRpZXMge1xuICByZXR1cm4ge1xuICAgIGJhY2tncm91bmRDb2xvcjogcHJpbWFyeUNvbG9yLFxuICAgIGNvbG9yOiAnI2ZmZmZmZicsXG4gICAgYm9yZGVyOiAnbm9uZScsXG4gICAgYm9yZGVyUmFkaXVzOiAnNTAlJyxcbiAgICB3aWR0aDogJzM2cHgnLFxuICAgIGhlaWdodDogJzM2cHgnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAgb3V0bGluZTogJ25vbmUnLFxuICAgIGZsZXhTaHJpbms6IDAsXG4gICAgYm94U2hhZG93OiAnMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4wOCknLFxuICB9O1xufVxuXG5leHBvcnQgY29uc3Qgc2VuZEJ1dHRvbkRpc2FibGVkU3R5bGU6IFJlYWN0LkNTU1Byb3BlcnRpZXMgPSB7XG4gIGJhY2tncm91bmRDb2xvcjogJyNkMWQ1ZGInLFxuICBjdXJzb3I6ICdub3QtYWxsb3dlZCcsXG4gIG9wYWNpdHk6IDAuOCxcbn07XG5cbmV4cG9ydCBjb25zdCByaWdodEFjdGlvbkNvbnRhaW5lclN0eWxlOiBSZWFjdC5DU1NQcm9wZXJ0aWVzID0ge1xuICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgcmlnaHQ6ICc0cHgnLFxuICB0b3A6ICc1MCUnLFxuICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKC01MCUpJyxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFBvc3NpYmxlUXVlcmllc0NvbnRhaW5lclN0eWxlKGZvbnRGYW1pbHk6IHN0cmluZyk6IFJlYWN0LkNTU1Byb3BlcnRpZXMge1xuICByZXR1cm4ge1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICBnYXA6ICc4cHgnLFxuICAgIHBhZGRpbmc6ICcwJyxcbiAgICBwYWRkaW5nTGVmdDogJzI4cHgnLFxuICAgIHBhZGRpbmdSaWdodDogJzI4cHgnLFxuICAgIG1hcmdpblRvcDogJzVweCcsXG4gICAgbWFyZ2luQm90dG9tOiAnMTVweCcsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBmb250RmFtaWx5LFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UXVlcnlCdXR0b25TdHlsZSh0OiBUaGVtZVBhcmFtcyk6IFJlYWN0LkNTU1Byb3BlcnRpZXMge1xuICByZXR1cm4ge1xuICAgIHBhZGRpbmc6ICcxMnB4IDE1cHgnLFxuICAgIGJhY2tncm91bmRDb2xvcjogdC5zZWNvbmRhcnlDb2xvcixcbiAgICBjb2xvcjogdC50ZXh0Q29sb3IsXG4gICAgYm9yZGVyOiAnbm9uZScsXG4gICAgYm9yZGVyUmFkaXVzOiAnNnB4JyxcbiAgICBmb250U2l6ZTogdC5mb250U2l6ZSxcbiAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICB0ZXh0QWxpZ246ICdsZWZ0JyxcbiAgICBmb250V2VpZ2h0OiAnbm9ybWFsJyxcbiAgICBib3hTaGFkb3c6ICdub25lJyxcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIG1heFdpZHRoOiAnMjQwcHgnLFxuICAgIGZvbnRGYW1pbHk6IHQuZm9udEZhbWlseSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbmZpcm1PdmVybGF5U3R5bGUoc2hvd1Jlc2V0Q29uZmlybTogYm9vbGVhbik6IFJlYWN0LkNTU1Byb3BlcnRpZXMge1xuICByZXR1cm4ge1xuICAgIGRpc3BsYXk6IHNob3dSZXNldENvbmZpcm0gPyAnZmxleCcgOiAnbm9uZScsXG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgdG9wOiAwLFxuICAgIGxlZnQ6IDAsXG4gICAgcmlnaHQ6IDAsXG4gICAgYm90dG9tOiAwLFxuICAgIGJhY2tncm91bmRDb2xvcjogJ3JnYmEoMCwgMCwgMCwgMC41KScsXG4gICAgekluZGV4OiAxMCxcbiAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb25maXJtRGlhbG9nU3R5bGUodDogVGhlbWVQYXJhbXMpOiBSZWFjdC5DU1NQcm9wZXJ0aWVzIHtcbiAgcmV0dXJuIHtcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHQuYmFja2dyb3VuZENvbG9yLFxuICAgIHBhZGRpbmc6ICcyMHB4JyxcbiAgICBib3JkZXJSYWRpdXM6ICc4cHgnLFxuICAgIG1heFdpZHRoOiAnMzAwcHgnLFxuICAgIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gICAgZm9udEZhbWlseTogdC5mb250RmFtaWx5LFxuICAgIGNvbG9yOiB0LnRleHRDb2xvcixcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IGNvbmZpcm1CdXR0b25zU3R5bGU6IFJlYWN0LkNTU1Byb3BlcnRpZXMgPSB7XG4gIGRpc3BsYXk6ICdmbGV4JyxcbiAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICBtYXJnaW5Ub3A6ICcxNXB4JyxcbiAgZ2FwOiAnMTBweCcsXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29uZmlybUJ1dHRvblN0eWxlKGlzQ29uZmlybTogYm9vbGVhbiwgdDogVGhlbWVQYXJhbXMpOiBSZWFjdC5DU1NQcm9wZXJ0aWVzIHtcbiAgcmV0dXJuIHtcbiAgICBwYWRkaW5nOiAnOHB4IDE2cHgnLFxuICAgIGJhY2tncm91bmRDb2xvcjogaXNDb25maXJtID8gJyNGNDQzMzYnIDogJyNlMGUwZTAnLFxuICAgIGNvbG9yOiBpc0NvbmZpcm0gPyAnI2ZmZmZmZicgOiB0LnRleHRDb2xvcixcbiAgICBib3JkZXI6ICdub25lJyxcbiAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgIGZvbnRGYW1pbHk6IHQuZm9udEZhbWlseSxcbiAgICBmb250U2l6ZTogdC5mb250U2l6ZSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbnRlbnRDYXJkU3R5bGUoYmFja2dyb3VuZENvbG9yOiBzdHJpbmcpOiBSZWFjdC5DU1NQcm9wZXJ0aWVzIHtcbiAgcmV0dXJuIHtcbiAgICBmbGV4OiAxLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICBiYWNrZ3JvdW5kQ29sb3IsXG4gICAgYm9yZGVyVG9wTGVmdFJhZGl1czogMjQsXG4gICAgYm9yZGVyVG9wUmlnaHRSYWRpdXM6IDI0LFxuICAgIGJveFNoYWRvdzogJzAgLTJweCA2cHggcmdiYSgwLDAsMCwwLjAzKScsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgekluZGV4OiAyLFxuICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICBtaW5IZWlnaHQ6IDAsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREaXNjbGFpbWVyU3R5bGUoZm9udEZhbWlseTogc3RyaW5nKTogUmVhY3QuQ1NTUHJvcGVydGllcyB7XG4gIHJldHVybiB7XG4gICAgdGV4dEFsaWduOiAnbGVmdCcsXG4gICAgZm9udFNpemU6ICcxMnB4JyxcbiAgICBjb2xvcjogJyM5Y2EzYWYnLFxuICAgIG1hcmdpbjogJzEycHggNHB4IDJweCA0cHgnLFxuICAgIGZvbnRGYW1pbHksXG4gIH07XG59XG5cbmludGVyZmFjZSBQb3NpdGlvblBhcmFtcyB7XG4gIHBvc2l0aW9uOiBzdHJpbmc7XG4gIG9mZnNldFg6IG51bWJlcjtcbiAgb2Zmc2V0WTogbnVtYmVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UG9zaXRpb25TdHlsZXMoeyBwb3NpdGlvbiwgb2Zmc2V0WCwgb2Zmc2V0WSB9OiBQb3NpdGlvblBhcmFtcyk6IFJlYWN0LkNTU1Byb3BlcnRpZXMge1xuICBjb25zdCBiYXNlOiBSZWFjdC5DU1NQcm9wZXJ0aWVzID0ge1xuICAgIHBvc2l0aW9uOiAnZml4ZWQnLFxuICAgIHpJbmRleDogMTAwMCxcbiAgfTtcblxuICBzd2l0Y2ggKHBvc2l0aW9uKSB7XG4gICAgY2FzZSAnYm90dG9tLXJpZ2h0JzpcbiAgICAgIHJldHVybiB7IC4uLmJhc2UsIGJvdHRvbTogb2Zmc2V0WSwgcmlnaHQ6IG9mZnNldFggfTtcbiAgICBjYXNlICdib3R0b20tbGVmdCc6XG4gICAgICByZXR1cm4geyAuLi5iYXNlLCBib3R0b206IG9mZnNldFksIGxlZnQ6IG9mZnNldFggfTtcbiAgICBjYXNlICd0b3AtcmlnaHQnOlxuICAgICAgcmV0dXJuIHsgLi4uYmFzZSwgdG9wOiBvZmZzZXRZLCByaWdodDogb2Zmc2V0WCB9O1xuICAgIGNhc2UgJ3RvcC1sZWZ0JzpcbiAgICAgIHJldHVybiB7IC4uLmJhc2UsIHRvcDogb2Zmc2V0WSwgbGVmdDogb2Zmc2V0WCB9O1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4geyAuLi5iYXNlLCBib3R0b206IG9mZnNldFksIHJpZ2h0OiBvZmZzZXRYIH07XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENoYXRQb3NpdGlvblN0eWxlcyh7IHBvc2l0aW9uLCBvZmZzZXRYLCBvZmZzZXRZIH06IFBvc2l0aW9uUGFyYW1zKTogUmVhY3QuQ1NTUHJvcGVydGllcyB7XG4gIGNvbnN0IGJhc2U6IFJlYWN0LkNTU1Byb3BlcnRpZXMgPSB7XG4gICAgcG9zaXRpb246ICdmaXhlZCcsXG4gICAgYm9yZGVyUmFkaXVzOiAnMzJweCcsXG4gICAgekluZGV4OiAxMDA0LFxuICB9O1xuXG4gIHN3aXRjaCAocG9zaXRpb24pIHtcbiAgICBjYXNlICdib3R0b20tcmlnaHQnOlxuICAgICAgcmV0dXJuIHsgLi4uYmFzZSwgYm90dG9tOiBvZmZzZXRZLCByaWdodDogb2Zmc2V0WCB9O1xuICAgIGNhc2UgJ2JvdHRvbS1sZWZ0JzpcbiAgICAgIHJldHVybiB7IC4uLmJhc2UsIGJvdHRvbTogb2Zmc2V0WSwgbGVmdDogb2Zmc2V0WCB9O1xuICAgIGNhc2UgJ3RvcC1yaWdodCc6XG4gICAgICByZXR1cm4geyAuLi5iYXNlLCB0b3A6IG9mZnNldFksIHJpZ2h0OiBvZmZzZXRYIH07XG4gICAgY2FzZSAndG9wLWxlZnQnOlxuICAgICAgcmV0dXJuIHsgLi4uYmFzZSwgdG9wOiBvZmZzZXRZLCBsZWZ0OiBvZmZzZXRYIH07XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB7IC4uLmJhc2UsIGJvdHRvbTogb2Zmc2V0WSwgcmlnaHQ6IG9mZnNldFggfTtcbiAgfVxufVxuXG5pbnRlcmZhY2UgUmVzcG9uc2l2ZURpbWVuc2lvblBhcmFtcyB7XG4gIGlzRnVsbHNjcmVlbjogYm9vbGVhbjtcbiAgbW9kZTogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzcG9uc2l2ZURpbWVuc2lvbnMoeyBpc0Z1bGxzY3JlZW4sIG1vZGUgfTogUmVzcG9uc2l2ZURpbWVuc2lvblBhcmFtcyk6IFJlYWN0LkNTU1Byb3BlcnRpZXMge1xuICBjb25zdCBzY3JlZW5XaWR0aCA9IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gd2luZG93LmlubmVyV2lkdGggOiAxMDI0O1xuICBjb25zdCBmYWxsYmFja0hlaWdodCA9IGlzRnVsbHNjcmVlbiA/ICcxMDB2aCcgOiAnNjB2aCc7XG5cbiAgaWYgKGlzRnVsbHNjcmVlbikge1xuICAgIHJldHVybiB7IHdpZHRoOiAnMTAwdncnLCBoZWlnaHQ6IGZhbGxiYWNrSGVpZ2h0LCBib3JkZXJSYWRpdXM6ICcwJyB9O1xuICB9XG5cbiAgaWYgKG1vZGUgPT09ICdmbG9hdGluZycpIHtcbiAgICBpZiAoc2NyZWVuV2lkdGggPD0gNDgwKSB7XG4gICAgICByZXR1cm4geyB3aWR0aDogJ2NhbGMoMTAwdncgLSA0MHB4KScgfTtcbiAgICB9XG4gICAgaWYgKHNjcmVlbldpZHRoIDw9IDc2OCkge1xuICAgICAgcmV0dXJuIHsgd2lkdGg6ICczNTBweCcgfTtcbiAgICB9XG4gICAgcmV0dXJuIHsgd2lkdGg6ICczODBweCcgfTtcbiAgfVxuXG4gIGlmIChzY3JlZW5XaWR0aCA8PSA0ODApIHtcbiAgICByZXR1cm4geyB3aWR0aDogJ2NhbGMoMTAwdncgLSA0MHB4KScsIGhlaWdodDogZmFsbGJhY2tIZWlnaHQgfTtcbiAgfVxuICBpZiAoc2NyZWVuV2lkdGggPD0gNzY4KSB7XG4gICAgcmV0dXJuIHsgd2lkdGg6ICczNTBweCcsIGhlaWdodDogZmFsbGJhY2tIZWlnaHQgfTtcbiAgfVxuXG4gIHJldHVybiB7IHdpZHRoOiAnMzgwcHgnLCBoZWlnaHQ6IGZhbGxiYWNrSGVpZ2h0IH07XG59XG5cbmludGVyZmFjZSBGbG9hdGluZ1NoZWxsUGFyYW1zIHtcbiAgd2luZG93SGVpZ2h0OiBudW1iZXI7XG4gIG9mZnNldFk6IG51bWJlcjtcbiAgcG9zaXRpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZsb2F0aW5nU2hlbGxTdHlsZSh7IHdpbmRvd0hlaWdodCwgb2Zmc2V0WSwgcG9zaXRpb24gfTogRmxvYXRpbmdTaGVsbFBhcmFtcyk6IFJlYWN0LkNTU1Byb3BlcnRpZXMge1xuICBjb25zdCBzY3JlZW5XaWR0aCA9IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gd2luZG93LmlubmVyV2lkdGggOiAxMDI0O1xuICBjb25zdCBzY3JlZW5IZWlnaHQgPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IHdpbmRvdy5pbm5lckhlaWdodCA6IDEwODA7XG4gIGNvbnN0IG1hcmdpbiA9IDEwO1xuICBjb25zdCB1c2FibGVIZWlnaHQgPSBNYXRoLm1heCgyODAsIHdpbmRvd0hlaWdodCAtIG9mZnNldFkgLSBtYXJnaW4gKiAxMCk7XG4gIGxldCBtYXhIZWlnaHQ6IG51bWJlciB8IHN0cmluZyA9IHVzYWJsZUhlaWdodDtcblxuICBpZiAoc2NyZWVuV2lkdGggPj0gNzY1ICYmIHNjcmVlbkhlaWdodCA+PSAxMDcwKSB7XG4gICAgbWF4SGVpZ2h0ID0gJzYwdmgnO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgbWF4SGVpZ2h0OiBtYXhIZWlnaHQsXG4gICAgaGVpZ2h0OiB1c2FibGVIZWlnaHQsXG4gICAgLi4uKHBvc2l0aW9uID09PSAndG9wLXJpZ2h0JyB8fCBwb3NpdGlvbiA9PT0gJ3RvcC1sZWZ0J1xuICAgICAgPyB7IHRvcDogb2Zmc2V0WSwgYm90dG9tOiAnYXV0bycgfVxuICAgICAgOiB7IHRvcDogJ2F1dG8nLCBib3R0b206IG9mZnNldFkgfSksXG4gIH07XG59XG5cbmludGVyZmFjZSBGbG9hdGluZ0NvbnRhaW5lclBhcmFtcyB7XG4gIG1vZGU6IHN0cmluZztcbiAgaXNGdWxsc2NyZWVuOiBib29sZWFuO1xuICB3aW5kb3dXaWR0aDogbnVtYmVyO1xuICB3aW5kb3dIZWlnaHQ6IG51bWJlcjtcbiAgcG9zaXRpb246IHN0cmluZztcbiAgb2Zmc2V0WDogbnVtYmVyO1xuICBvZmZzZXRZOiBudW1iZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGbG9hdGluZ0NvbnRhaW5lclN0eWxlKHA6IEZsb2F0aW5nQ29udGFpbmVyUGFyYW1zKTogUmVhY3QuQ1NTUHJvcGVydGllcyB7XG4gIHJldHVybiB7XG4gICAgLi4uKChwLm1vZGUgPT09ICdmdWxsc2NyZWVuJyB8fCAocC5pc0Z1bGxzY3JlZW4gJiYgcC53aW5kb3dXaWR0aCA8PSA3NjgpKVxuICAgICAgPyB7XG4gICAgICAgICAgcG9zaXRpb246ICdmaXhlZCcgYXMgY29uc3QsXG4gICAgICAgICAgdG9wOiAwLFxuICAgICAgICAgIGxlZnQ6IDAsXG4gICAgICAgICAgcmlnaHQ6IDAsXG4gICAgICAgICAgYm90dG9tOiAnZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20sIDBweCknLFxuICAgICAgICAgIGJvcmRlclJhZGl1czogJzAnLFxuICAgICAgICAgIHpJbmRleDogOTk5OSxcbiAgICAgICAgfVxuICAgICAgOiB7XG4gICAgICAgICAgLi4uZ2V0Q2hhdFBvc2l0aW9uU3R5bGVzKHsgcG9zaXRpb246IHAucG9zaXRpb24sIG9mZnNldFg6IHAub2Zmc2V0WCwgb2Zmc2V0WTogcC5vZmZzZXRZIH0pLFxuICAgICAgICAgIC4uLmdldFJlc3BvbnNpdmVEaW1lbnNpb25zKHsgaXNGdWxsc2NyZWVuOiBwLmlzRnVsbHNjcmVlbiwgbW9kZTogcC5tb2RlIH0pLFxuICAgICAgICAgIC4uLihwLm1vZGUgPT09ICdmbG9hdGluZycgJiYgIXAuaXNGdWxsc2NyZWVuID8gZ2V0RmxvYXRpbmdTaGVsbFN0eWxlKHsgd2luZG93SGVpZ2h0OiBwLndpbmRvd0hlaWdodCwgb2Zmc2V0WTogcC5vZmZzZXRZLCBwb3NpdGlvbjogcC5wb3NpdGlvbiB9KSA6IHt9KSxcbiAgICAgICAgfVxuICAgICksXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBDU1NfS0VZRlJBTUVTID0gYFxuICBAa2V5ZnJhbWVzIGJsaW5rIHsgMCUgeyBvcGFjaXR5OiAwLjI7IH0gMjAlIHsgb3BhY2l0eTogMTsgfSAxMDAlIHsgb3BhY2l0eTogMC4yOyB9IH1cbiAgLmdhLXRleHRhcmVhLW5vc2Ige1xuICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTtcbiAgICAtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cbiAgLmdhLXRleHRhcmVhLW5vc2I6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgd2lkdGg6IDA7IGhlaWdodDogMDsgfVxuICAuZ2EtaW5wdXQtZGlzY2xhaW1lciBhIHtcbiAgICBjb2xvcjogIzljYTNhZiAhaW1wb3J0YW50O1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG4gIC5nYS1pbnB1dC1kaXNjbGFpbWVyIGE6aG92ZXIge1xuICAgIGNvbG9yOiAjNmI3MjgwICFpbXBvcnRhbnQ7XG4gIH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgLmdhLXRleHRhcmVhLW5vc2Ige1xuICAgICAgZm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG4gIEBrZXlmcmFtZXMgZ2EtYmFja2xpZ2h0LXN3ZWVwMiB7IDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zNSUpOyB9IDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTA1JSk7IH0gfVxuICBAa2V5ZnJhbWVzIGdhLWJhY2tsaWdodC1wdWxzZSB7IDAlLDEwMCUgeyBvcGFjaXR5OiAwLjc7IH0gNTAlIHsgb3BhY2l0eTogMTsgfSB9XG4gIEBrZXlmcmFtZXMgZ2EtdGhpbmstY2hhbmdlIHsgMCUgeyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNHB4KTsgfSAxMDAlIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IH1cbiAgLmdyZWNhcHRjaGEtYmFkZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgICB3aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMCAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgICBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuYDtcbiJdfQ==
|
package/dist/types/index.d.ts
CHANGED
package/dist/types/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zbGF0aW9ucyB9IGZyb20gJy4uL3V0aWxzL2kxOG4nO1xuXG4vLyBDaGF0IG1lc3NhZ2UgdHlwZXNcbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZUZlZWRiYWNrIHtcbiAgZmVlZGJhY2s6IFwiZ29vZFwiIHwgXCJiYWRcIjtcbiAgZmVlZGJhY2tfdGltZXN0YW1wPzogc3RyaW5nO1xuICBmZWVkYmFja191c2VyX2lkPzogc3RyaW5nO1xuICBmZWVkYmFja19tZXNzYWdlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoYXRNZXNzYWdlIHtcbiAgY3JlYXRlX3RpbWU6IG51bWJlcjtcbiAgc3RhcnRfdGltZTogbnVtYmVyO1xuICBlbmRfdGltZTogbnVtYmVyO1xuICBzcGVha2VyOiBcImN1c3RvbWVyXCIgfCBcImFnZW50XCIgfCBcInNwZWNpYWxcIjtcbiAgdGV4dDogc3RyaW5nO1xuICAvLyBPcHRpb25hbCBtZXRhZGF0YVxuICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRbXTtcbiAgbWVzc2FnZV9pZD86IHN0cmluZztcbiAgZmVlZGJhY2s/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zbGF0aW9ucyB9IGZyb20gJy4uL3V0aWxzL2kxOG4nO1xuXG4vLyBDaGF0IG1lc3NhZ2UgdHlwZXNcbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZUZlZWRiYWNrIHtcbiAgZmVlZGJhY2s6IFwiZ29vZFwiIHwgXCJiYWRcIjtcbiAgZmVlZGJhY2tfdGltZXN0YW1wPzogc3RyaW5nO1xuICBmZWVkYmFja191c2VyX2lkPzogc3RyaW5nO1xuICBmZWVkYmFja19tZXNzYWdlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoYXRNZXNzYWdlIHtcbiAgY3JlYXRlX3RpbWU6IG51bWJlcjtcbiAgc3RhcnRfdGltZTogbnVtYmVyO1xuICBlbmRfdGltZTogbnVtYmVyO1xuICBzcGVha2VyOiBcImN1c3RvbWVyXCIgfCBcImFnZW50XCIgfCBcInNwZWNpYWxcIjtcbiAgdGV4dDogc3RyaW5nO1xuICAvLyBPcHRpb25hbCBtZXRhZGF0YVxuICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRbXTtcbiAgbWVzc2FnZV9pZD86IHN0cmluZztcbiAgZmVlZGJhY2s/OiBNZXNzYWdlRmVlZGJhY2tbXTtcbiAgdHlwZT86IHN0cmluZztcbiAgbGlua1VybD86IHN0cmluZztcbiAgbGlua0xhYmVsPzogc3RyaW5nO1xuICBhdWRpb19mb3JtYXQ/OiBzdHJpbmc7XG4gIGF1ZGlvT2JqZWN0VXJsPzogc3RyaW5nO1xufVxuXG4vLyBBdHRhY2htZW50IHR5cGVcbmV4cG9ydCBpbnRlcmZhY2UgQXR0YWNobWVudCB7XG4gIG5hbWU6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBzaXplOiBudW1iZXI7XG4gIHVybDogc3RyaW5nO1xuICBmaWxlX2lkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF0dGFjaG1lbnRXaXRoRmlsZSB7XG4gIGZpbGU6IEZpbGU7XG4gIGF0dGFjaG1lbnQ6IEF0dGFjaG1lbnQgfCBudWxsO1xufVxuXG4vLyBBUEkgUmVzcG9uc2UgdHlwZXNcbmV4cG9ydCBpbnRlcmZhY2UgU3RhcnRDb252ZXJzYXRpb25SZXNwb25zZSB7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgY29udmVyc2F0aW9uX2lkOiBzdHJpbmc7XG4gIGFnZW50X3dlbGNvbWVfbWVzc2FnZT86IHN0cmluZztcbiAgYWdlbnRfcG9zc2libGVfcXVlcmllcz86IHN0cmluZ1tdO1xuICBhZ2VudF93ZWxjb21lX3RpdGxlPzogc3RyaW5nO1xuICBhZ2VudF93ZWxjb21lX2ltYWdlX3VybD86IHN0cmluZztcbiAgYWdlbnRfaWQ/OiBzdHJpbmc7XG4gIGFnZW50X2F2YWlsYWJsZV9sYW5ndWFnZXM/OiBzdHJpbmdbXTtcbiAgYWdlbnRfdGhpbmtpbmdfcGhyYXNlcz86IHN0cmluZ1tdO1xuICBhZ2VudF90aGlua2luZ19waHJhc2VfZGVsYXk/OiBudW1iZXI7IC8vIHNlY29uZHNcbiAgYWdlbnRfY2hhdF9pbnB1dF9tZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+OyAvLyBNZXRhZGF0YSBrZXlzL2RlZmF1bHRzIGZyb20gdGhlIHdvcmtmbG93J3MgQ2hhdCBJbnB1dCBub2RlXG4gIGFnZW50X2lucHV0X2Rpc2NsYWltZXJfaHRtbD86IHN0cmluZztcbiAgY3JlYXRlX3RpbWU/OiBudW1iZXI7XG4gIGd1ZXN0X3Rva2VuPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFnZW50SW5mb1Jlc3BvbnNlIHtcbiAgYWdlbnRfaWQ/OiBzdHJpbmc7XG4gIGFnZW50X2F2YWlsYWJsZV9sYW5ndWFnZXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqIFBlci1sb2NhbGUgYWdlbnQgc3RyaW5ncyAod2VsY29tZSwgcXVpY2sgcXVlcmllcywgdGhpbmtpbmcpIGZyb20gR0VUIC4uLi9hZ2VudC1jaGF0LWxvY2FsZXMgKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWdlbnRDaGF0TG9jYWxlQ29udGVudCB7XG4gIHdlbGNvbWVfbWVzc2FnZT86IHN0cmluZyB8IG51bGw7XG4gIHdlbGNvbWVfdGl0bGU/OiBzdHJpbmcgfCBudWxsO1xuICBpbnB1dF9kaXNjbGFpbWVyX2h0bWw/OiBzdHJpbmcgfCBudWxsO1xuICBwb3NzaWJsZV9xdWVyaWVzPzogc3RyaW5nW107XG4gIHRoaW5raW5nX3BocmFzZXM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZ2VudENoYXRMb2NhbGVzUmVzcG9uc2Uge1xuICBhZ2VudF9pZD86IHN0cmluZztcbiAgYWdlbnRfYXZhaWxhYmxlX2xhbmd1YWdlcz86IHN0cmluZ1tdO1xuICBhZ2VudF90aGlua2luZ19waHJhc2VfZGVsYXk/OiBudW1iZXI7XG4gIGFnZW50X2NoYXRfaW5wdXRfbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgYWdlbnRfaGFzX3dlbGNvbWVfaW1hZ2U/OiBib29sZWFuO1xuICBsb2NhbGVzOiBSZWNvcmQ8c3RyaW5nLCBBZ2VudENoYXRMb2NhbGVDb250ZW50Pjtcbn1cblxuLy8gQWdlbnQgd2VsY29tZS9jb25maWcgaW5mb1xuZXhwb3J0IGludGVyZmFjZSBBZ2VudFdlbGNvbWVEYXRhIHtcbiAgdGl0bGU/OiBzdHJpbmcgfCBudWxsO1xuICBtZXNzYWdlPzogc3RyaW5nIHwgbnVsbDtcbiAgaW1hZ2VVcmw/OiBzdHJpbmcgfCBudWxsO1xuICBwb3NzaWJsZVF1ZXJpZXM/OiBzdHJpbmdbXTtcbiAgaW5wdXREaXNjbGFpbWVySHRtbD86IHN0cmluZyB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWdlbnRUaGlua2luZ0NvbmZpZyB7XG4gIHBocmFzZXM6IHN0cmluZ1tdO1xuICBkZWxheU1zOiBudW1iZXI7IC8vIHJvdGF0aW9uIGRlbGF5IGluIG1zXG59XG5cbi8vIEludGVyYWN0aXZlIGNvbnRlbnQgdHlwZXNcbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1pY0NoYXRJdGVtIHtcbiAgaWQ6IHN0cmluZztcbiAgaW1hZ2U/OiBzdHJpbmc7XG4gIHR5cGU/OiBzdHJpbmc7XG4gIGNhdGVnb3J5Pzogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICB2ZW51ZUlkPzogc3RyaW5nO1xuICBzbG90cz86IHN0cmluZ1tdO1xuICBzZWxlY3RlZFNsb3Q/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZWR1bGVJdGVtIHtcbiAgaWQ6IHN0cmluZztcbiAgdGl0bGU/OiBzdHJpbmcgfCBudWxsO1xuICByZXN0YXVyYW50czogRHluYW1pY0NoYXRJdGVtW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZUl0ZW0ge1xuICB1cmw6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGlkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIENoYXRDb250ZW50QmxvY2sgPVxuICB8IHsga2luZDogXCJ0ZXh0XCI7IHRleHQ6IHN0cmluZyB9XG4gIHwgeyBraW5kOiBcIml0ZW1zXCI7IGl0ZW1zOiBEeW5hbWljQ2hhdEl0ZW1bXSB9XG4gIHwgeyBraW5kOiBcInNjaGVkdWxlXCI7IHNjaGVkdWxlOiBTY2hlZHVsZUl0ZW0gfVxuICB8IHsga2luZDogXCJvcHRpb25zXCI7IG9wdGlvbnM6IHN0cmluZ1tdIH1cbiAgfCB7IGtpbmQ6IFwiZmlsZVwiOyBkYXRhOiBGaWxlSXRlbSB9O1xuXG4vLyBQcm9wcyBmb3IgdGhlIEdlbkFnZW50Q2hhdCBjb21wb25lbnRcbmV4cG9ydCBpbnRlcmZhY2UgR2VuQWdlbnRDaGF0UHJvcHMge1xuICBiYXNlVXJsOiBzdHJpbmc7XG4gIHdlYnNvY2tldFVybD86IHN0cmluZztcbiAgYXBpS2V5OiBzdHJpbmc7XG4gIHRlbmFudDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIGFueT47IC8vIEZvciBwYXNzaW5nIHVzZXIgaW5mb3JtYXRpb24gb3Igb3RoZXIgbWV0YWRhdGFcbiAgdXNlV3M/OiBib29sZWFuO1xuICB1c2VQb2xsPzogYm9vbGVhbjtcbiAgb25FcnJvcj86IChlcnJvcjogRXJyb3IpID0+IHZvaWQ7XG4gIG9uVGFrZW92ZXI/OiAoKSA9PiB2b2lkO1xuICBvbkZpbmFsaXplPzogKCkgPT4gdm9pZDtcbiAgdGhlbWU/OiB7XG4gICAgcHJpbWFyeUNvbG9yPzogc3RyaW5nO1xuICAgIHNlY29uZGFyeUNvbG9yPzogc3RyaW5nO1xuICAgIGZvbnRGYW1pbHk/OiBzdHJpbmc7XG4gICAgZm9udFNpemU/OiBzdHJpbmc7XG4gICAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIHRleHRDb2xvcj86IHN0cmluZztcbiAgfTtcbiAgaGVhZGVyVGl0bGU/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgYWdlbnROYW1lPzogc3RyaW5nOyAvLyBDdXN0b20gYWdlbnQgbmFtZSB0byBkaXNwbGF5IGluc3RlYWQgb2YgXCJBZ2VudFwiXG4gIGxvZ29Vcmw/OiBzdHJpbmc7IC8vIEN1c3RvbSBsb2dvIFVSTCB0byBkaXNwbGF5IGluIGhlYWRlciBpbnN0ZWFkIG9mIGRlZmF1bHQgbG9nb1xuICBtb2RlPzogXCJlbWJlZGRlZFwiIHwgXCJmbG9hdGluZ1wiIHwgXCJmdWxsc2NyZWVuXCI7XG4gIC8qKiBDYWxsZWQgd2hlbiB0aGUgdXNlciBwcmVzc2VzIEVzY2FwZSBpbiBgbW9kZT1cImZ1bGxzY3JlZW5cImAuIFVzZSB0aGlzIHRvIHN3aXRjaCB0aGUgcGFyZW50IGJhY2sgdG8gZmxvYXRpbmcvZW1iZWRkZWQuICovXG4gIG9uRXhpdEZ1bGxzY3JlZW4/OiAoKSA9PiB2b2lkO1xuICBmbG9hdGluZ0NvbmZpZz86IHtcbiAgICBwb3NpdGlvbj86IFwiYm90dG9tLXJpZ2h0XCIgfCBcImJvdHRvbS1sZWZ0XCIgfCBcInRvcC1yaWdodFwiIHwgXCJ0b3AtbGVmdFwiO1xuICAgIG9mZnNldD86IHsgeD86IG51bWJlcjsgeT86IG51bWJlciB9O1xuICAgIHRvZ2dsZUJ1dHRvbkljb24/OiBSZWFjdC5SZWFjdEVsZW1lbnQ7XG4gICAgY2xvc2VCdXR0b25JY29uPzogUmVhY3QuUmVhY3RFbGVtZW50O1xuICB9O1xuICBsYW5ndWFnZT86IHN0cmluZzsgLy8gTGFuZ3VhZ2UgY29kZSAoZS5nLiwgJ2VuJywgJ2VzJywgJ2ZyJykuIElmIG5vdCBwcm92aWRlZCwgd2lsbCB1c2UgYnJvd3NlciBsYW5ndWFnZVxuICB0cmFuc2xhdGlvbnM/OiBQYXJ0aWFsPFRyYW5zbGF0aW9ucz47IC8vIEN1c3RvbSB0cmFuc2xhdGlvbnMuIElmIG5vdCBwcm92aWRlZCwgd2lsbCB1c2UgZGVmYXVsdCBFbmdsaXNoIHRyYW5zbGF0aW9uc1xuICByZUNhcHRjaGFLZXk/OiBzdHJpbmc7IC8vIFJlQ2FwdGNoYSBrZXkgZm9yIHRoZSBjaGF0XG4gIHdpZGdldD86IGJvb2xlYW47IC8vIElmIHRydWUsIG9wZW5zIGNoYXQgaW4gZnVsbHNjcmVlbiBtb2RlIG9uIGRlc2t0b3AgKHNpbWlsYXIgdG8gbW9iaWxlIGJlaGF2aW9yKVxuICB1c2VBdWRpbz86IGJvb2xlYW47IC8vIElmIGZhbHNlLCBoaWRlcyB0aGUgbWljIGNvbXBvbmVudCBhbmQgdm9pY2UgaW5wdXQuIERlZmF1bHRzIHRvIGZhbHNlLlxuICB1c2VGaWxlPzogYm9vbGVhbjsgLy8gSWYgZmFsc2UsIGhpZGVzIHRoZSBmaWxlIGF0dGFjaCBpY29uIGFuZCBmaWxlIHVwbG9hZC4gRGVmYXVsdHMgdG8gZmFsc2UuXG4gIG5vQ29sb3JBbmltYXRpb24/OiBib29sZWFuOyAvLyBJZiB0cnVlLCBoaWRlcyB0aGUgY29sb3IgYW5pbWF0aW9uIChiYWNrbGlnaHQpIGJlbG93IHRoZSBjaGF0IGhlYWRlci4gRGVmYXVsdHMgdG8gZmFsc2UuXG4gIHNob3dXZWxjb21lQmVmb3JlU3RhcnQ/OiBib29sZWFuO1xuICBhbGxvd2VkRXh0ZW5zaW9ucz86IEFsbG93ZWRFeHRlbnNpb25bXTsgLy8gSWYgcHJvdmlkZWQsIG9ubHkgc2hvdyBmaWxlIGF0dGFjaG1lbnRzIHdpdGggdGhlc2UgZXh0ZW5zaW9ucy4gRGVmYXVsdHMgdG8gYWxsIGV4dGVuc2lvbnMuXG4gIHNlcnZlclVuYXZhaWxhYmxlTWVzc2FnZT86IHN0cmluZzsgLy8gQ3VzdG9tIG1lc3NhZ2Ugd2hlbiBzZXJ2ZXIgaXMgZG93blxuICBzZXJ2ZXJVbmF2YWlsYWJsZUNvbnRhY3RVcmw/OiBzdHJpbmc7IC8vIE9wdGlvbmFsIFVSTCBmb3IgYSBjb250YWN0L3N1cHBvcnRcbiAgc2VydmVyVW5hdmFpbGFibGVDb250YWN0TGFiZWw/OiBzdHJpbmc7IC8vIExhYmVsIGZvciB0aGUgY29udGFjdCBsaW5rXG4gIGZvcm1EaXNwbGF5PzogJ2lubGluZScgfCAnZm9vdGVyJzsgLy8gV2hlcmUgdG8gcmVuZGVyIGR5bmFtaWMgZm9ybXM6ICdpbmxpbmUnID0gY2hhdCBidWJibGUsICdmb290ZXInID0gcmVwbGFjZXMgaW5wdXQuIERlZmF1bHRzIHRvICdmb290ZXInLlxuICBvbkNvbmZpZ0xvYWRlZD86IChwcm9wczogeyBjaGF0SW5wdXRNZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIGFueT4gfSkgPT4gdm9pZDtcbn1cblxuLy8gTk9URTogVGhlc2UgYXJlIHRoZSBvbmx5IGZpbGUgZXh0ZW5zaW9ucyB0aGF0IGFyZSBzdXBwb3J0ZWQgYnkgdGhlIGNoYXQuXG5leHBvcnQgdHlwZSBBbGxvd2VkRXh0ZW5zaW9uID0gJ2ltYWdlLyonIHwgJ2ltYWdlL3BuZycgfCAnaW1hZ2UvanBlZycgfCAnaW1hZ2UvanBnJyB8ICdpbWFnZS9naWYnIHwgJ2FwcGxpY2F0aW9uL3BkZicgfCAnYXBwbGljYXRpb24vbXN3b3JkJyB8ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCc7XG5cbmV4cG9ydCB0eXBlIHsgVHJhbnNsYXRpb25zIH0gZnJvbSAnLi4vdXRpbHMvaTE4bic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVVwbG9hZFJlc3BvbnNlIHtcbiAgZmlsZW5hbWU6IHN0cmluZztcbiAgb3JpZ2luYWxfZmlsZW5hbWU6IHN0cmluZztcbiAgc3RvcmFnZV9wYXRoOiBzdHJpbmc7XG4gIGZpbGVfcGF0aDogc3RyaW5nO1xuICBmaWxlX3VybDogc3RyaW5nO1xuICBmaWxlX2lkPzogc3RyaW5nO1xufVxuXG4vKiogTWVzc2FnZSBzaGFwZSByZXR1cm5lZCBieSBpbi1wcm9ncmVzcyBwb2xsIEFQSSAoYmFja2VuZCB1c2VzIGRhdGV0aW1lIGZvciBjcmVhdGVfdGltZSkgKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5Qcm9ncmVzc1BvbGxNZXNzYWdlIHtcbiAgaWQ6IHN0cmluZztcbiAgY3JlYXRlX3RpbWU/OiBzdHJpbmcgfCBudW1iZXI7XG4gIHN0YXJ0X3RpbWU6IG51bWJlcjtcbiAgZW5kX3RpbWU6IG51bWJlcjtcbiAgc3BlYWtlcjogc3RyaW5nO1xuICB0ZXh0OiBzdHJpbmc7XG4gIHR5cGU/OiBzdHJpbmc7XG4gIHNlcXVlbmNlX251bWJlcj86IG51bWJlcjtcbiAgZmVlZGJhY2s/OiBNZXNzYWdlRmVlZGJhY2tbXTtcbn1cblxuLyoqIFJlc3BvbnNlIGZyb20gR0VUIC9hcGkvY29udmVyc2F0aW9ucy9pbi1wcm9ncmVzcy9wb2xsL3tjb252ZXJzYXRpb25faWR9ICovXG5leHBvcnQgaW50ZXJmYWNlIEluUHJvZ3Jlc3NQb2xsUmVzcG9uc2Uge1xuICBzdGF0dXM6IHN0cmluZztcbiAgbWVzc2FnZXM6IEluUHJvZ3Jlc3NQb2xsTWVzc2FnZVtdO1xufVxuIl19
|