ummaya 0.2.10 → 0.2.12
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/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
- package/pyproject.toml +2 -2
- package/tui/package.json +1 -1
- package/tui/src/commands/install-github-app/CheckExistingSecretStep.tsx +2 -3
- package/tui/src/commands/install-github-app/ExistingWorkflowStep.tsx +1 -2
- package/tui/src/commands/install-github-app/SuccessStep.tsx +1 -10
- package/tui/src/commands/install-github-app/install-github-app.tsx +18 -20
- package/tui/src/commands/install-github-app/setupGitHubActions.ts +19 -25
- package/tui/src/components/WorkflowMultiselectDialog.tsx +2 -3
- package/tui/src/constants/github-app.ts +9 -14
- package/tui/src/utils/http.ts +1 -2
- package/uv.lock +1 -1
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ummaya",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.12",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "ummaya",
|
|
9
|
-
"version": "0.2.
|
|
9
|
+
"version": "0.2.12",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@alcalzone/ansi-tokenize": "^0.3.0",
|
package/package.json
CHANGED
package/pyproject.toml
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "ummaya"
|
|
3
|
-
version = "0.2.
|
|
3
|
+
version = "0.2.12"
|
|
4
4
|
description = "Conversational multi-agent platform for Korean public APIs"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = "Apache-2.0"
|
|
@@ -333,7 +333,7 @@ min_confidence = 80
|
|
|
333
333
|
|
|
334
334
|
[tool.commitizen]
|
|
335
335
|
name = "cz_conventional_commits"
|
|
336
|
-
version = "0.2.
|
|
336
|
+
version = "0.2.12"
|
|
337
337
|
tag_format = "v$version"
|
|
338
338
|
|
|
339
339
|
# PyTorch CPU-only wheel for Docker image size discipline (SC-1: ≤ 2 GB).
|
package/tui/package.json
CHANGED
|
@@ -101,7 +101,7 @@ export function CheckExistingSecretStep(t0) {
|
|
|
101
101
|
}
|
|
102
102
|
let t9;
|
|
103
103
|
if ($[16] === Symbol.for("react.memo_cache_sentinel")) {
|
|
104
|
-
t9 = <Box marginBottom={1}><Text color="warning">
|
|
104
|
+
t9 = <Box marginBottom={1}><Text color="warning">UMMAYA_FRIENDLI_TOKEN already exists in repository secrets!</Text></Box>;
|
|
105
105
|
$[16] = t9;
|
|
106
106
|
} else {
|
|
107
107
|
t9 = $[16];
|
|
@@ -149,7 +149,7 @@ export function CheckExistingSecretStep(t0) {
|
|
|
149
149
|
}
|
|
150
150
|
let t15;
|
|
151
151
|
if ($[28] !== cursorOffset || $[29] !== onSecretNameChange || $[30] !== onSubmit || $[31] !== secretName || $[32] !== terminalSize || $[33] !== useExistingSecret) {
|
|
152
|
-
t15 = !useExistingSecret && <><Box marginBottom={1}><Text>Enter new secret name (alphanumeric with underscores):</Text></Box><TextInput value={secretName} onChange={onSecretNameChange} onSubmit={onSubmit} focus={true} placeholder="e.g.,
|
|
152
|
+
t15 = !useExistingSecret && <><Box marginBottom={1}><Text>Enter new secret name (alphanumeric with underscores):</Text></Box><TextInput value={secretName} onChange={onSecretNameChange} onSubmit={onSubmit} focus={true} placeholder="e.g., UMMAYA_FRIENDLI_TOKEN" columns={terminalSize.columns} cursorOffset={cursorOffset} onChangeCursorOffset={setCursorOffset} showCursor={true} /></>;
|
|
153
153
|
$[28] = cursorOffset;
|
|
154
154
|
$[29] = onSecretNameChange;
|
|
155
155
|
$[30] = onSubmit;
|
|
@@ -187,4 +187,3 @@ export function CheckExistingSecretStep(t0) {
|
|
|
187
187
|
}
|
|
188
188
|
return t18;
|
|
189
189
|
}
|
|
190
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNhbGxiYWNrIiwidXNlU3RhdGUiLCJUZXh0SW5wdXQiLCJ1c2VUZXJtaW5hbFNpemUiLCJCb3giLCJjb2xvciIsIlRleHQiLCJ1c2VUaGVtZSIsInVzZUtleWJpbmRpbmdzIiwiQ2hlY2tFeGlzdGluZ1NlY3JldFN0ZXBQcm9wcyIsInVzZUV4aXN0aW5nU2VjcmV0Iiwic2VjcmV0TmFtZSIsIm9uVG9nZ2xlVXNlRXhpc3RpbmdTZWNyZXQiLCJ1c2VFeGlzdGluZyIsIm9uU2VjcmV0TmFtZUNoYW5nZSIsInZhbHVlIiwib25TdWJtaXQiLCJDaGVja0V4aXN0aW5nU2VjcmV0U3RlcCIsInQwIiwiJCIsIl9jIiwiY3Vyc29yT2Zmc2V0Iiwic2V0Q3Vyc29yT2Zmc2V0IiwidGVybWluYWxTaXplIiwidGhlbWUiLCJ0MSIsImhhbmRsZVByZXZpb3VzIiwidDIiLCJoYW5kbGVOZXh0IiwidDMiLCJ0NCIsImNvbnRleHQiLCJpc0FjdGl2ZSIsInQ1IiwidDYiLCJ0NyIsInQ4IiwiU3ltYm9sIiwiZm9yIiwidDkiLCJ0MTAiLCJ0MTEiLCJ0MTIiLCJ0MTMiLCJ0MTQiLCJ0MTUiLCJjb2x1bW5zIiwidDE2IiwidDE3IiwidDE4Il0sInNvdXJjZXMiOlsiQ2hlY2tFeGlzdGluZ1NlY3JldFN0ZXAudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCBUZXh0SW5wdXQgZnJvbSAnLi4vLi4vY29tcG9uZW50cy9UZXh0SW5wdXQuanMnXG5pbXBvcnQgeyB1c2VUZXJtaW5hbFNpemUgfSBmcm9tICcuLi8uLi9ob29rcy91c2VUZXJtaW5hbFNpemUuanMnXG5pbXBvcnQgeyBCb3gsIGNvbG9yLCBUZXh0LCB1c2VUaGVtZSB9IGZyb20gJy4uLy4uL2luay5qcydcbmltcG9ydCB7IHVzZUtleWJpbmRpbmdzIH0gZnJvbSAnLi4vLi4va2V5YmluZGluZ3MvdXNlS2V5YmluZGluZy5qcydcblxuaW50ZXJmYWNlIENoZWNrRXhpc3RpbmdTZWNyZXRTdGVwUHJvcHMge1xuICB1c2VFeGlzdGluZ1NlY3JldDogYm9vbGVhblxuICBzZWNyZXROYW1lOiBzdHJpbmdcbiAgb25Ub2dnbGVVc2VFeGlzdGluZ1NlY3JldDogKHVzZUV4aXN0aW5nOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uU2VjcmV0TmFtZUNoYW5nZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWRcbiAgb25TdWJtaXQ6ICgpID0+IHZvaWRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIENoZWNrRXhpc3RpbmdTZWNyZXRTdGVwKHtcbiAgdXNlRXhpc3RpbmdTZWNyZXQsXG4gIHNlY3JldE5hbWUsXG4gIG9uVG9nZ2xlVXNlRXhpc3RpbmdTZWNyZXQsXG4gIG9uU2VjcmV0TmFtZUNoYW5nZSxcbiAgb25TdWJtaXQsXG59OiBDaGVja0V4aXN0aW5nU2VjcmV0U3RlcFByb3BzKSB7XG4gIGNvbnN0IFtjdXJzb3JPZmZzZXQsIHNldEN1cnNvck9mZnNldF0gPSB1c2VTdGF0ZSgwKVxuICBjb25zdCB0ZXJtaW5hbFNpemUgPSB1c2VUZXJtaW5hbFNpemUoKVxuICBjb25zdCBbdGhlbWVdID0gdXNlVGhlbWUoKVxuXG4gIC8vIFdoZW4gdGhlIHRleHQgaW5wdXQgaXMgdmlzaWJsZSwgb21pdCBjb25maXJtOnllcyBzbyBiYXJlICd5JyBwYXNzZXNcbiAgLy8gdGhyb3VnaCB0byB0aGUgaW5wdXQgaW5zdGVhZCBvZiBzdWJtaXR0aW5nLiBUZXh0SW5wdXQncyBvblN1Ym1pdCBoYW5kbGVzXG4gIC8vIEVudGVyLiBLZWVwIHRoZSBDb25maXJtYXRpb24gY29udGV4dCAobm90IFNldHRpbmdzKSB0byBhdm9pZCBqL2sgYmluZGluZ3MuXG4gIGNvbnN0IGhhbmRsZVByZXZpb3VzID0gdXNlQ2FsbGJhY2soXG4gICAgKCkgPT4gb25Ub2dnbGVVc2VFeGlzdGluZ1NlY3JldCh0cnVlKSxcbiAgICBbb25Ub2dnbGVVc2VFeGlzdGluZ1NlY3JldF0sXG4gIClcbiAgY29uc3QgaGFuZGxlTmV4dCA9IHVzZUNhbGxiYWNrKFxuICAgICgpID0+IG9uVG9nZ2xlVXNlRXhpc3RpbmdTZWNyZXQoZmFsc2UpLFxuICAgIFtvblRvZ2dsZVVzZUV4aXN0aW5nU2VjcmV0XSxcbiAgKVxuICB1c2VLZXliaW5kaW5ncyhcbiAgICB7XG4gICAgICAnY29uZmlybTpwcmV2aW91cyc6IGhhbmRsZVByZXZpb3VzLFxuICAgICAgJ2NvbmZpcm06bmV4dCc6IGhhbmRsZU5leHQsXG4gICAgICAnY29uZmlybTp5ZXMnOiBvblN1Ym1pdCxcbiAgICB9LFxuICAgIHsgY29udGV4dDogJ0NvbmZpcm1hdGlvbicsIGlzQWN0aXZlOiB1c2VFeGlzdGluZ1NlY3JldCB9LFxuICApXG4gIHVzZUtleWJpbmRpbmdzKFxuICAgIHtcbiAgICAgICdjb25maXJtOnByZXZpb3VzJzogaGFuZGxlUHJldmlvdXMsXG4gICAgICAnY29uZmlybTpuZXh0JzogaGFuZGxlTmV4dCxcbiAgICB9LFxuICAgIHsgY29udGV4dDogJ0NvbmZpcm1hdGlvbicsIGlzQWN0aXZlOiAhdXNlRXhpc3RpbmdTZWNyZXQgfSxcbiAgKVxuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGJvcmRlclN0eWxlPVwicm91bmRcIiBwYWRkaW5nWD17MX0+XG4gICAgICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIG1hcmdpbkJvdHRvbT17MX0+XG4gICAgICAgICAgPFRleHQgYm9sZD5JbnN0YWxsIEdpdEh1YiBBcHA8L1RleHQ+XG4gICAgICAgICAgPFRleHQgZGltQ29sb3I+U2V0dXAgQVBJIGtleSBzZWNyZXQ8L1RleHQ+XG4gICAgICAgIDwvQm94PlxuICAgICAgICA8Qm94IG1hcmdpbkJvdHRvbT17MX0+XG4gICAgICAgICAgPFRleHQgY29sb3I9XCJ3YXJuaW5nXCI+XG4gICAgICAgICAgICBBTlRIUk9QSUNfQVBJX0tFWSBhbHJlYWR5IGV4aXN0cyBpbiByZXBvc2l0b3J5IHNlY3JldHMhXG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICA8L0JveD5cbiAgICAgICAgPEJveCBtYXJnaW5Cb3R0b209ezF9PlxuICAgICAgICAgIDxUZXh0PldvdWxkIHlvdSBsaWtlIHRvOjwvVGV4dD5cbiAgICAgICAgPC9Cb3g+XG4gICAgICAgIDxCb3ggbWFyZ2luQm90dG9tPXsxfT5cbiAgICAgICAgICA8VGV4dD5cbiAgICAgICAgICAgIHt1c2VFeGlzdGluZ1NlY3JldCA/IGNvbG9yKCdzdWNjZXNzJywgdGhlbWUpKCc+ICcpIDogJyAgJ31cbiAgICAgICAgICAgIFVzZSB0aGUgZXhpc3RpbmcgQVBJIGtleVxuICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgPC9Cb3g+XG4gICAgICAgIDxCb3ggbWFyZ2luQm90dG9tPXsxfT5cbiAgICAgICAgICA8VGV4dD5cbiAgICAgICAgICAgIHshdXNlRXhpc3RpbmdTZWNyZXQgPyBjb2xvcignc3VjY2VzcycsIHRoZW1lKSgnPiAnKSA6ICcgICd9XG4gICAgICAgICAgICBDcmVhdGUgYSBuZXcgc2VjcmV0IHdpdGggYSBkaWZmZXJlbnQgbmFtZVxuICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgPC9Cb3g+XG4gICAgICAgIHshdXNlRXhpc3RpbmdTZWNyZXQgJiYgKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8Qm94IG1hcmdpbkJvdHRvbT17MX0+XG4gICAgICAgICAgICAgIDxUZXh0PlxuICAgICAgICAgICAgICAgIEVudGVyIG5ldyBzZWNyZXQgbmFtZSAoYWxwaGFudW1lcmljIHdpdGggdW5kZXJzY29yZXMpOlxuICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgIDxUZXh0SW5wdXRcbiAgICAgICAgICAgICAgdmFsdWU9e3NlY3JldE5hbWV9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtvblNlY3JldE5hbWVDaGFuZ2V9XG4gICAgICAgICAgICAgIG9uU3VibWl0PXtvblN1Ym1pdH1cbiAgICAgICAgICAgICAgZm9jdXM9e3RydWV9XG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiZS5nLiwgQ0xBVURFX0FQSV9LRVlcIlxuICAgICAgICAgICAgICBjb2x1bW5zPXt0ZXJtaW5hbFNpemUuY29sdW1uc31cbiAgICAgICAgICAgICAgY3Vyc29yT2Zmc2V0PXtjdXJzb3JPZmZzZXR9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlQ3Vyc29yT2Zmc2V0PXtzZXRDdXJzb3JPZmZzZXR9XG4gICAgICAgICAgICAgIHNob3dDdXJzb3I9e3RydWV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApfVxuICAgICAgPC9Cb3g+XG4gICAgICA8Qm94IG1hcmdpbkxlZnQ9ezN9PlxuICAgICAgICA8VGV4dCBkaW1Db2xvcj7ihpEv4oaTIHRvIHNlbGVjdCDCtyBFbnRlciB0byBjb250aW51ZTwvVGV4dD5cbiAgICAgIDwvQm94PlxuICAgIDwvPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPQSxLQUFLLElBQUlDLFdBQVcsRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDcEQsT0FBT0MsU0FBUyxNQUFNLCtCQUErQjtBQUNyRCxTQUFTQyxlQUFlLFFBQVEsZ0NBQWdDO0FBQ2hFLFNBQVNDLEdBQUcsRUFBRUMsS0FBSyxFQUFFQyxJQUFJLEVBQUVDLFFBQVEsUUFBUSxjQUFjO0FBQ3pELFNBQVNDLGNBQWMsUUFBUSxvQ0FBb0M7QUFFbkUsVUFBVUMsNEJBQTRCLENBQUM7RUFDckNDLGlCQUFpQixFQUFFLE9BQU87RUFDMUJDLFVBQVUsRUFBRSxNQUFNO0VBQ2xCQyx5QkFBeUIsRUFBRSxDQUFDQyxXQUFXLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSTtFQUN6REMsa0JBQWtCLEVBQUUsQ0FBQ0MsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUk7RUFDM0NDLFFBQVEsRUFBRSxHQUFHLEdBQUcsSUFBSTtBQUN0QjtB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
|
|
@@ -68,7 +68,7 @@ export function ExistingWorkflowStep(t0) {
|
|
|
68
68
|
}
|
|
69
69
|
let t6;
|
|
70
70
|
if ($[8] === Symbol.for("react.memo_cache_sentinel")) {
|
|
71
|
-
t6 = <Box flexDirection="column" marginBottom={1}><Text>A UMMAYA workflow file already exists at{" "}<Text color="claude">.github/workflows/
|
|
71
|
+
t6 = <Box flexDirection="column" marginBottom={1}><Text>A UMMAYA workflow file already exists at{" "}<Text color="claude">.github/workflows/ummaya.yml</Text></Text><Text dimColor={true}>What would you like to do?</Text></Box>;
|
|
72
72
|
$[8] = t6;
|
|
73
73
|
} else {
|
|
74
74
|
t6 = $[8];
|
|
@@ -100,4 +100,3 @@ export function ExistingWorkflowStep(t0) {
|
|
|
100
100
|
}
|
|
101
101
|
return t9;
|
|
102
102
|
}
|
|
103
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlNlbGVjdCIsIkJveCIsIlRleHQiLCJFeGlzdGluZ1dvcmtmbG93U3RlcFByb3BzIiwicmVwb05hbWUiLCJvblNlbGVjdEFjdGlvbiIsImFjdGlvbiIsIkV4aXN0aW5nV29ya2Zsb3dTdGVwIiwidDAiLCIkIiwiX2MiLCJ0MSIsIlN5bWJvbCIsImZvciIsImxhYmVsIiwidmFsdWUiLCJvcHRpb25zIiwidDIiLCJoYW5kbGVTZWxlY3QiLCJ0MyIsImhhbmRsZUNhbmNlbCIsInQ0IiwidDUiLCJ0NiIsInQ3IiwidDgiLCJ0OSJdLCJzb3VyY2VzIjpbIkV4aXN0aW5nV29ya2Zsb3dTdGVwLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBTZWxlY3QgfSBmcm9tICdzcmMvY29tcG9uZW50cy9DdXN0b21TZWxlY3QvaW5kZXguanMnXG5pbXBvcnQgeyBCb3gsIFRleHQgfSBmcm9tICcuLi8uLi9pbmsuanMnXG5cbmludGVyZmFjZSBFeGlzdGluZ1dvcmtmbG93U3RlcFByb3BzIHtcbiAgcmVwb05hbWU6IHN0cmluZ1xuICBvblNlbGVjdEFjdGlvbjogKGFjdGlvbjogJ3VwZGF0ZScgfCAnc2tpcCcgfCAnZXhpdCcpID0+IHZvaWRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEV4aXN0aW5nV29ya2Zsb3dTdGVwKHtcbiAgcmVwb05hbWUsXG4gIG9uU2VsZWN0QWN0aW9uLFxufTogRXhpc3RpbmdXb3JrZmxvd1N0ZXBQcm9wcykge1xuICBjb25zdCBvcHRpb25zID0gW1xuICAgIHtcbiAgICAgIGxhYmVsOiAnVXBkYXRlIHdvcmtmbG93IGZpbGUgd2l0aCBsYXRlc3QgdmVyc2lvbicsXG4gICAgICB2YWx1ZTogJ3VwZGF0ZScsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJ1NraXAgd29ya2Zsb3cgdXBkYXRlIChjb25maWd1cmUgc2VjcmV0cyBvbmx5KScsXG4gICAgICB2YWx1ZTogJ3NraXAnLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICdFeGl0IHdpdGhvdXQgbWFraW5nIGNoYW5nZXMnLFxuICAgICAgdmFsdWU6ICdleGl0JyxcbiAgICB9LFxuICBdXG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0ID0gKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICBvblNlbGVjdEFjdGlvbih2YWx1ZSBhcyAndXBkYXRlJyB8ICdza2lwJyB8ICdleGl0JylcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUNhbmNlbCA9ICgpID0+IHtcbiAgICBvblNlbGVjdEFjdGlvbignZXhpdCcpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGJvcmRlclN0eWxlPVwicm91bmRcIiBib3JkZXJEaW1Db2xvciBwYWRkaW5nWD17MX0+XG4gICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBtYXJnaW5Cb3R0b209ezF9PlxuICAgICAgICA8VGV4dCBib2xkPkV4aXN0aW5nIFdvcmtmbG93IEZvdW5kPC9UZXh0PlxuICAgICAgICA8VGV4dCBkaW1Db2xvcj5SZXBvc2l0b3J5OiB7cmVwb05hbWV9PC9UZXh0PlxuICAgICAgPC9Cb3g+XG5cbiAgICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIG1hcmdpbkJvdHRvbT17MX0+XG4gICAgICAgIDxUZXh0PlxuICAgICAgICAgIEEgQ2xhdWRlIHdvcmtmbG93IGZpbGUgYWxyZWFkeSBleGlzdHMgYXR7JyAnfVxuICAgICAgICAgIDxUZXh0IGNvbG9yPVwiY2xhdWRlXCI+LmdpdGh1Yi93b3JrZmxvd3MvY2xhdWRlLnltbDwvVGV4dD5cbiAgICAgICAgPC9UZXh0PlxuICAgICAgICA8VGV4dCBkaW1Db2xvcj5XaGF0IHdvdWxkIHlvdSBsaWtlIHRvIGRvPzwvVGV4dD5cbiAgICAgIDwvQm94PlxuXG4gICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIj5cbiAgICAgICAgPFNlbGVjdFxuICAgICAgICAgIG9wdGlvbnM9e29wdGlvbnN9XG4gICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZVNlbGVjdH1cbiAgICAgICAgICBvbkNhbmNlbD17aGFuZGxlQ2FuY2VsfVxuICAgICAgICAvPlxuICAgICAgPC9Cb3g+XG5cbiAgICAgIDxCb3ggbWFyZ2luVG9wPXsxfT5cbiAgICAgICAgPFRleHQgZGltQ29sb3I+XG4gICAgICAgICAgVmlldyB0aGUgbGF0ZXN0IHdvcmtmbG93IHRlbXBsYXRlIGF0OnsnICd9XG4gICAgICAgICAgPFRleHQgY29sb3I9XCJjbGF1ZGVcIj5cbiAgICAgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnRocm9waWNzL2NsYXVkZS1jb2RlLWFjdGlvbi9ibG9iL21haW4vZXhhbXBsZXMvY2xhdWRlLnltbFxuICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgPC9UZXh0PlxuICAgICAgPC9Cb3g+XG4gICAgPC9Cb3g+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU9BLEtBQUssTUFBTSxPQUFPO0FBQ3pCLFNBQVNDLE1BQU0sUUFBUSxzQ0FBc0M7QUFDN0QsU0FBU0MsR0FBRyxFQUFFQyxJQUFJLFFBQVEsY0FBYztBQUV4QyxVQUFVQyx5QkFBeUIsQ0FBQztFQUNsQ0MsUUFBUSxFQUFFLE1BQU07RUFDaEJDLGNBQWMsRUFBRSxDQUFDQyxNQUFNLEVBQUUsUUFBUSxHQUFHLE1BQU0sR0FBRyxNQUFNLEVBQUUsR0FBRyxJQUFJO0FBQzlEO0FBRUEsT0FBTyxTQUFBQyxxQkFBQUMsRUFBQTtFQUFBLE1BQUFDLENBQUEsR0FBQUMsRUFBQTtFQUE4QjtJQUFBTixRQUFBO0lBQUFDO0VBQUEsSUFBQUcsRUFHVDtFQUFBLElBQUFHLEVBQUE7RUFBQSxJQUFBRixDQUFBLFFBQUFHLE1BQUEsQ0FBQUMsR0FBQTtJQUNWRixFQUFBLElBQ2Q7TUFBQUcsS0FBQSxFQUNTLDBDQUEwQztNQUFBQyxLQUFBLEVBQzFDO0lBQ1QsQ0FBQyxFQUNEO01BQUFELEtBQUEsRUFDUywrQ0FB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
|
|
@@ -31,15 +31,7 @@ export function SuccessStep(t0) {
|
|
|
31
31
|
} else {
|
|
32
32
|
t3 = $[2];
|
|
33
33
|
}
|
|
34
|
-
|
|
35
|
-
if ($[3] !== secretExists || $[4] !== useExistingSecret) {
|
|
36
|
-
t4 = secretExists && useExistingSecret && <Box marginTop={1}><Text color="success">✓ Using existing ANTHROPIC_API_KEY secret</Text></Box>;
|
|
37
|
-
$[3] = secretExists;
|
|
38
|
-
$[4] = useExistingSecret;
|
|
39
|
-
$[5] = t4;
|
|
40
|
-
} else {
|
|
41
|
-
t4 = $[5];
|
|
42
|
-
}
|
|
34
|
+
const t4 = secretExists && useExistingSecret && <Box marginTop={1}><Text color="success">✓ Using existing {secretName} secret</Text></Box>;
|
|
43
35
|
let t5;
|
|
44
36
|
if ($[6] !== secretExists || $[7] !== secretName || $[8] !== useExistingSecret) {
|
|
45
37
|
t5 = (!secretExists || !useExistingSecret) && <Box marginTop={1}><Text color="success">✓ API key saved as {secretName} secret</Text></Box>;
|
|
@@ -93,4 +85,3 @@ export function SuccessStep(t0) {
|
|
|
93
85
|
}
|
|
94
86
|
return t10;
|
|
95
87
|
}
|
|
96
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIkJveCIsIlRleHQiLCJTdWNjZXNzU3RlcFByb3BzIiwic2VjcmV0RXhpc3RzIiwidXNlRXhpc3RpbmdTZWNyZXQiLCJzZWNyZXROYW1lIiwic2tpcFdvcmtmbG93IiwiU3VjY2Vzc1N0ZXAiLCJ0MCIsIiQiLCJfYyIsInQxIiwidW5kZWZpbmVkIiwidDIiLCJTeW1ib2wiLCJmb3IiLCJ0MyIsInQ0IiwidDUiLCJ0NiIsInQ3IiwidDgiLCJ0OSIsInQxMCJdLCJzb3VyY2VzIjpbIlN1Y2Nlc3NTdGVwLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBCb3gsIFRleHQgfSBmcm9tICcuLi8uLi9pbmsuanMnXG5cbnR5cGUgU3VjY2Vzc1N0ZXBQcm9wcyA9IHtcbiAgc2VjcmV0RXhpc3RzOiBib29sZWFuXG4gIHVzZUV4aXN0aW5nU2VjcmV0OiBib29sZWFuXG4gIHNlY3JldE5hbWU6IHN0cmluZ1xuICBza2lwV29ya2Zsb3c/OiBib29sZWFuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBTdWNjZXNzU3RlcCh7XG4gIHNlY3JldEV4aXN0cyxcbiAgdXNlRXhpc3RpbmdTZWNyZXQsXG4gIHNlY3JldE5hbWUsXG4gIHNraXBXb3JrZmxvdyA9IGZhbHNlLFxufTogU3VjY2Vzc1N0ZXBQcm9wcyk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGJvcmRlclN0eWxlPVwicm91bmRcIiBwYWRkaW5nWD17MX0+XG4gICAgICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIG1hcmdpbkJvdHRvbT17MX0+XG4gICAgICAgICAgPFRleHQgYm9sZD5JbnN0YWxsIEdpdEh1YiBBcHA8L1RleHQ+XG4gICAgICAgICAgPFRleHQgZGltQ29sb3I+U3VjY2VzczwvVGV4dD5cbiAgICAgICAgPC9Cb3g+XG4gICAgICAgIHshc2tpcFdvcmtmbG93ICYmIChcbiAgICAgICAgICA8VGV4dCBjb2xvcj1cInN1Y2Nlc3NcIj7inJMgR2l0SHViIEFjdGlvbnMgd29ya2Zsb3cgY3JlYXRlZCE8L1RleHQ+XG4gICAgICAgICl9XG4gICAgICAgIHtzZWNyZXRFeGlzdHMgJiYgdXNlRXhpc3RpbmdTZWNyZXQgJiYgKFxuICAgICAgICAgIDxCb3ggbWFyZ2luVG9wPXsxfT5cbiAgICAgICAgICAgIDxUZXh0IGNvbG9yPVwic3VjY2Vzc1wiPlxuICAgICAgICAgICAgICDinJMgVXNpbmcgZXhpc3RpbmcgQU5USFJPUElDX0FQSV9LRVkgc2VjcmV0XG4gICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICl9XG4gICAgICAgIHsoIXNlY3JldEV4aXN0cyB8fCAhdXNlRXhpc3RpbmdTZWNyZXQpICYmIChcbiAgICAgICAgICA8Qm94IG1hcmdpblRvcD17MX0+XG4gICAgICAgICAgICA8VGV4dCBjb2xvcj1cInN1Y2Nlc3NcIj7inJMgQVBJIGtleSBzYXZlZCBhcyB7c2VjcmV0TmFtZX0gc2VjcmV0PC9UZXh0PlxuICAgICAgICAgIDwvQm94PlxuICAgICAgICApfVxuICAgICAgICA8Qm94IG1hcmdpblRvcD17MX0+XG4gICAgICAgICAgPFRleHQ+TmV4dCBzdGVwczo8L1RleHQ+XG4gICAgICAgIDwvQm94PlxuICAgICAgICB7c2tpcFdvcmtmbG93ID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8VGV4dD5cbiAgICAgICAgICAgICAgMS4gSW5zdGFsbCB0aGUgQ2xhdWRlIEdpdEh1YiBBcHAgaWYgeW91IGhhdmVuJmFwb3M7dCBhbHJlYWR5XG4gICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICA8VGV4dD4yLiBZb3VyIHdvcmtmbG93IGZpbGUgd2FzIGtlcHQgdW5jaGFuZ2VkPC9UZXh0PlxuICAgICAgICAgICAgPFRleHQ+My4gQVBJIGtleSBpcyBjb25maWd1cmVkIGFuZCByZWFkeSB0byB1c2U8L1RleHQ+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxUZXh0PjEuIEEgcHJlLWZpbGxlZCBQUiBwYWdlIGhhcyBiZWVuIGNyZWF0ZWQ8L1RleHQ+XG4gICAgICAgICAgICA8VGV4dD5cbiAgICAgICAgICAgICAgMi4gSW5zdGFsbCB0aGUgQ2xhdWRlIEdpdEh1YiBBcHAgaWYgeW91IGhhdmVuJmFwb3M7dCBhbHJlYWR5XG4gICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICA8VGV4dD4zLiBNZXJnZSB0aGUgUFIgdG8gZW5hYmxlIENsYXVkZSBQUiBhc3Npc3RhbmNlPC9UZXh0PlxuICAgICAgICAgIDwvPlxuICAgICAgICApfVxuICAgICAgPC9Cb3g+XG4gICAgICA8Qm94IG1hcmdpbkxlZnQ9ezN9PlxuICAgICAgICA8VGV4dCBkaW1Db2xvcj5QcmVzcyBhbnkga2V5IHRvIGV4aXQ8L1RleHQ+XG4gICAgICA8L0JveD5cbiAgICA8Lz5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsT0FBT0EsS0FBSyxNQUFNLE9BQU87QUFDekIsU0FBU0MsR0FBRyxFQUFFQyxJQUFJLFFBQVEsY0FBYztBQUV4QyxLQUFLQyxnQkFBZ0IsR0FBRztFQUN0QkMsWUFBWSxFQUFFLE9BQU87RUFDckJDLGlCQUFpQixFQUFFLE9BQU87RUFDMUJDLFVBQVUsRUFBRSxNQUFNO0VBQ2xCQyxZQUFZLENBQUMsRUFBRSxPQUFPO0FBQ3hCLENBQUM7QUFFRCxPQUFPLFNBQUFDLFlBQUFDLEVBQUE7RUFBQSxNQUFBQyxDQUFBLEdBQUFDLEVBQUE7RUFBcUI7SUFBQVAsWUFBQTtJQUFBQyxpQkFBQTtJQUFBQyxVQUFBO0lBQUFDLFlBQUEsRUFBQUs7RUFBQSxJQUFBSCxFQUtUO0VBRGpCLE1BQUFGLFlBQUEsR0FBQUssRUFBb0IsS0FBcEJDLFNBQW9CLEdBQXBCLEtBQW9CLEdBQXBCRCxFQUFvQjtFQUFBLElBQUFFLEVBQUE7RUFBQSxJQUFBSixD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
|
|
@@ -7,7 +7,7 @@ import { useExitOnCtrlCDWithKeybindings } from '../../hooks/useExitOnCtrlCDWithK
|
|
|
7
7
|
import type { KeyboardEvent } from '../../ink/events/keyboard-event.js';
|
|
8
8
|
import { Box } from '../../ink.js';
|
|
9
9
|
import type { LocalJSXCommandOnDone } from '../../types/command.js';
|
|
10
|
-
import { getAnthropicApiKey, isAnthropicAuthEnabled } from '../../utils/auth.js';
|
|
10
|
+
import { FRIENDLI_PRIMARY_ENV, getAnthropicApiKey, isAnthropicAuthEnabled } from '../../utils/auth.js';
|
|
11
11
|
import { openBrowser } from '../../utils/browser.js';
|
|
12
12
|
import { execFileNoThrow } from '../../utils/execFileNoThrow.js';
|
|
13
13
|
import { getGithubRepo } from '../../utils/git.js';
|
|
@@ -36,13 +36,17 @@ const INITIAL_STATE: State = {
|
|
|
36
36
|
currentWorkflowInstallStep: 0,
|
|
37
37
|
warnings: [],
|
|
38
38
|
secretExists: false,
|
|
39
|
-
secretName:
|
|
39
|
+
secretName: FRIENDLI_PRIMARY_ENV,
|
|
40
40
|
useExistingSecret: true,
|
|
41
41
|
workflowExists: false,
|
|
42
|
-
selectedWorkflows: ['
|
|
42
|
+
selectedWorkflows: ['ummaya', 'ummaya-review'] as Workflow[],
|
|
43
43
|
selectedApiKeyOption: 'new' as 'existing' | 'new' | 'oauth',
|
|
44
44
|
authType: 'api_key'
|
|
45
45
|
};
|
|
46
|
+
function secretListContains(lines: string[], secretName: string): boolean {
|
|
47
|
+
const escapedSecretName = secretName.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
48
|
+
return lines.some((line: string) => new RegExp(`^${escapedSecretName}\\s+`).test(line));
|
|
49
|
+
}
|
|
46
50
|
function InstallGitHubApp(props: {
|
|
47
51
|
onDone: (message: string) => void;
|
|
48
52
|
}): React.ReactNode {
|
|
@@ -164,7 +168,7 @@ function InstallGitHubApp(props: {
|
|
|
164
168
|
step: 'error',
|
|
165
169
|
error: 'A UMMAYA workflow file already exists in this repository.',
|
|
166
170
|
errorReason: 'Workflow file conflict',
|
|
167
|
-
errorInstructions: ['The file .github/workflows/
|
|
171
|
+
errorInstructions: ['The file .github/workflows/ummaya.yml already exists', 'You can either:', ' 1. Delete the existing file and run this command again', ' 2. Update the existing file manually using the template from:', ` ${GITHUB_ACTION_SETUP_DOCS_URL}`]
|
|
168
172
|
}));
|
|
169
173
|
} else {
|
|
170
174
|
logEvent('tengu_install_github_app_error', {
|
|
@@ -212,17 +216,15 @@ function InstallGitHubApp(props: {
|
|
|
212
216
|
}
|
|
213
217
|
}
|
|
214
218
|
async function checkExistingWorkflowFile(repoName_0: string): Promise<boolean> {
|
|
215
|
-
const checkFileResult = await execFileNoThrow('gh', ['api', `repos/${repoName_0}/contents/.github/workflows/
|
|
219
|
+
const checkFileResult = await execFileNoThrow('gh', ['api', `repos/${repoName_0}/contents/.github/workflows/ummaya.yml`, '--jq', '.sha']);
|
|
216
220
|
return checkFileResult.code === 0;
|
|
217
221
|
}
|
|
218
222
|
async function checkExistingSecret() {
|
|
219
223
|
const checkSecretsResult = await execFileNoThrow('gh', ['secret', 'list', '--app', 'actions', '--repo', state.selectedRepoName]);
|
|
220
224
|
if (checkSecretsResult.code === 0) {
|
|
221
225
|
const lines = checkSecretsResult.stdout.split('\n');
|
|
222
|
-
const
|
|
223
|
-
|
|
224
|
-
});
|
|
225
|
-
if (hasAnthropicKey) {
|
|
226
|
+
const hasFriendliKey = secretListContains(lines, FRIENDLI_PRIMARY_ENV);
|
|
227
|
+
if (hasFriendliKey) {
|
|
226
228
|
setState(prev_6 => ({
|
|
227
229
|
...prev_6,
|
|
228
230
|
secretExists: true,
|
|
@@ -297,7 +299,7 @@ function InstallGitHubApp(props: {
|
|
|
297
299
|
repoWarnings.push({
|
|
298
300
|
title: 'Repository format warning',
|
|
299
301
|
message: 'Repository should be in format "owner/repo"',
|
|
300
|
-
instructions: ['Use format: owner/repo', 'Example:
|
|
302
|
+
instructions: ['Use format: owner/repo', 'Example: umyunsang/UMMAYA']
|
|
301
303
|
});
|
|
302
304
|
}
|
|
303
305
|
const permissionCheck = await checkRepositoryPermissions(repoName_1);
|
|
@@ -395,14 +397,11 @@ function InstallGitHubApp(props: {
|
|
|
395
397
|
useExistingKey: state.selectedApiKeyOption === 'existing'
|
|
396
398
|
}));
|
|
397
399
|
|
|
398
|
-
// Check if ANTHROPIC_API_KEY secret already exists
|
|
399
400
|
const checkSecretsResult_0 = await execFileNoThrow('gh', ['secret', 'list', '--app', 'actions', '--repo', state.selectedRepoName]);
|
|
400
401
|
if (checkSecretsResult_0.code === 0) {
|
|
401
402
|
const lines_0 = checkSecretsResult_0.stdout.split('\n');
|
|
402
|
-
const
|
|
403
|
-
|
|
404
|
-
});
|
|
405
|
-
if (hasAnthropicKey_0) {
|
|
403
|
+
const hasFriendliKey_0 = secretListContains(lines_0, FRIENDLI_PRIMARY_ENV);
|
|
404
|
+
if (hasFriendliKey_0) {
|
|
406
405
|
logEvent('tengu_install_github_app_step_completed', {
|
|
407
406
|
step: 'api-key' as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS
|
|
408
407
|
});
|
|
@@ -462,10 +461,10 @@ function InstallGitHubApp(props: {
|
|
|
462
461
|
...prev_23,
|
|
463
462
|
apiKeyOrOAuthToken: token,
|
|
464
463
|
useExistingKey: false,
|
|
465
|
-
secretName:
|
|
466
|
-
authType: '
|
|
464
|
+
secretName: FRIENDLI_PRIMARY_ENV,
|
|
465
|
+
authType: 'api_key'
|
|
467
466
|
}));
|
|
468
|
-
void runSetupGitHubActions(token,
|
|
467
|
+
void runSetupGitHubActions(token, FRIENDLI_PRIMARY_ENV);
|
|
469
468
|
}, [runSetupGitHubActions]);
|
|
470
469
|
const handleOAuthCancel = useCallback(() => {
|
|
471
470
|
setState(prev_24 => ({
|
|
@@ -497,7 +496,7 @@ function InstallGitHubApp(props: {
|
|
|
497
496
|
setState(prev_28 => ({
|
|
498
497
|
...prev_28,
|
|
499
498
|
useExistingSecret,
|
|
500
|
-
secretName: useExistingSecret ?
|
|
499
|
+
secretName: useExistingSecret ? FRIENDLI_PRIMARY_ENV : ''
|
|
501
500
|
}));
|
|
502
501
|
};
|
|
503
502
|
const handleWorkflowAction = async (action: 'update' | 'skip' | 'exit') => {
|
|
@@ -584,4 +583,3 @@ function InstallGitHubApp(props: {
|
|
|
584
583
|
export async function call(onDone: LocalJSXCommandOnDone): Promise<React.ReactNode> {
|
|
585
584
|
return <InstallGitHubApp onDone={onDone} />;
|
|
586
585
|
}
|
|
587
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleGVjYSIsIlJlYWN0IiwidXNlQ2FsbGJhY2siLCJ1c2VTdGF0ZSIsIkFuYWx5dGljc01ldGFkYXRhX0lfVkVSSUZJRURfVEhJU19JU19OT1RfQ09ERV9PUl9GSUxFUEFUSFMiLCJsb2dFdmVudCIsIldvcmtmbG93TXVsdGlzZWxlY3REaWFsb2ciLCJHSVRIVUJfQUNUSU9OX1NFVFVQX0RPQ1NfVVJMIiwidXNlRXhpdE9uQ3RybENEV2l0aEtleWJpbmRpbmdzIiwiS2V5Ym9hcmRFdmVudCIsIkJveCIsIkxvY2FsSlNYQ29tbWFuZE9uRG9uZSIsImdldEFudGhyb3BpY0FwaUtleSIsImlzQW50aHJvcGljQXV0aEVuYWJsZWQiLCJvcGVuQnJvd3NlciIsImV4ZWNGaWxlTm9UaHJvdyIsImdldEdpdGh1YlJlcG8iLCJwbHVyYWwiLCJBcGlLZXlTdGVwIiwiQ2hlY2tFeGlzdGluZ1NlY3JldFN0ZXAiLCJDaGVja0dpdEh1YlN0ZXAiLCJDaG9vc2VSZXBvU3RlcCIsIkNyZWF0aW5nU3RlcCIsIkVycm9yU3RlcCIsIkV4aXN0aW5nV29ya2Zsb3dTdGVwIiwiSW5zdGFsbEFwcFN0ZXAiLCJPQXV0aEZsb3dTdGVwIiwiU3VjY2Vzc1N0ZXAiLCJzZXR1cEdpdEh1YkFjdGlvbnMiLCJTdGF0ZSIsIldhcm5pbmciLCJXb3JrZmxvdyIsIldhcm5pbmdzU3RlcCIsIklOSVRJQUxfU1RBVEUiLCJzdGVwIiwic2VsZWN0ZWRSZXBvTmFtZSIsImN1cnJlbnRSZXBvIiwidXNlQ3VycmVudFJlcG8iLCJhcGlLZXlPck9BdXRoVG9rZW4iLCJ1c2VFeGlzdGluZ0tleSIsImN1cnJlbnRXb3JrZmxvd0luc3RhbGxTdGVwIiwid2FybmluZ3MiLCJzZWNyZXRFeGlzdHMiLCJzZWNyZXROYW1lIiwidXNlRXhpc3RpbmdTZWNyZXQiLCJ3b3JrZmxvd0V4aXN0cyIsInNlbGVjdGVkV29ya2Zsb3dzIiwic2VsZWN0ZWRBcGlLZXlPcHRpb24iLCJhdXRoVHlwZSIsIkluc3RhbGxHaXRIdWJBcHAiLCJwcm9wcyIsIm9uRG9uZSIsIm1lc3NhZ2UiLCJSZWFjdE5vZGUiLCJleGlzdGluZ0FwaUtleSIsInN0YXRlIiwic2V0U3RhdGUiLCJ1c2VFZmZlY3QiLCJjaGVja0dpdEh1YkNMSSIsImdoVmVyc2lvblJlc3VsdCIsInNoZWxsIiwicmVqZWN0IiwiZXhpdENvZGUiLCJwdXNoIiwidGl0bGUiLCJpbnN0cnVjdGlvbnMiLCJhdXRoUmVzdWx0IiwidG9rZW5TY29wZXNNYXRjaCIsInN0ZG91dCIsIm1hdGNoIiwic2NvcGVzIiwibWlzc2luZ1Njb3BlcyIsImluY2x1ZGVzIiwibGVuZ3RoIiwicHJldiIsImVycm9yIiwiam9pbiIsImVycm9yUmVhc29uIiwiZXJyb3JJbnN0cnVjdGlvbnMiLCJydW5TZXR1cEdpdEh1YkFjdGlvbnMiLCJ3b3JrZmxvd0FjdGlvbiIsImVycm9yTWVzc2FnZSIsIkVycm9yIiwicmVhc29uIiwib3BlbkdpdEh1YkFwcEluc3RhbGxhdGlvbiIsImluc3RhbGxVcmwiLCJjaGVja1JlcG9zaXRvcnlQZXJtaXNzaW9ucyIsInJlcG9OYW1lIiwiUHJvbWlzZSIsImhhc0FjY2VzcyIsInJlc3VsdCIsImNvZGUiLCJoYXNBZG1pbiIsInRyaW0iLCJzdGRlcnIiLCJjaGVja0V4aXN0aW5nV29ya2Zsb3dGaWxlIiwiY2hlY2tGaWxlUmVzdWx0IiwiY2hlY2tFeGlzdGluZ1NlY3JldCIsImNoZWNrU2VjcmV0c1Jlc3VsdCIsImxpbmVzIiwic3BsaXQiLCJoYXNBbnRocm9waWNLZXkiLCJzb21lIiwibGluZSIsInRlc3QiLCJoYW5kbGVTdWJtaXQiLCJzZXRUaW1lb3V0IiwicmVwb1dhcm5pbmdzIiwicmVwbGFjZSIsInBlcm1pc3Npb25DaGVjayIsImFsbFdhcm5pbmdzIiwiYXBpS2V5VG9Vc2UiLCJoYW5kbGVSZXBvVXJsQ2hhbmdlIiwidmFsdWUiLCJoYW5kbGVBcGlLZXlDaGFuZ2UiLCJoYW5kbGVBcGlLZXlPcHRpb25DaGFuZ2UiLCJvcHRpb24iLCJoYW5kbGVDcmVhdGVPQXV0aFRva2VuIiwiaGFuZGxlT0F1dGhTdWNjZXNzIiwidG9rZW4iLCJoYW5kbGVPQXV0aENhbmNlbCIsImhhbmRsZVNlY3JldE5hbWVDaGFuZ2UiLCJoYW5kbGVUb2dnbGVVc2VDdXJyZW50UmVwbyIsImhhbmRsZVRvZ2dsZVVzZUV4aXN0aW5nS2V5IiwiaGFuZGxlVG9nZ2xlVXNlRXhpc3RpbmdTZWNyZXQiLCJoYW5kbGVXb3JrZmxvd0FjdGlvbiIsImFjdGlvbiIsImhhbmRsZURpc21pc3NLZXlEb3duIiwiZSIsInByZXZlbnREZWZhdWx0IiwidW5kZWZpbmVkIiwiY2FsbCJdLCJzb3VyY2VzIjpbImluc3RhbGwtZ2l0aHViLWFwcC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXhlY2EgfSBmcm9tICdleGVjYSdcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIHR5cGUgQW5hbHl0aWNzTWV0YWRhdGFfSV9WRVJJRklFRF9USElTX0lTX05PVF9DT0RFX09SX0ZJTEVQQVRIUyxcbiAgbG9nRXZlbnQsXG59IGZyb20gJ3NyYy9zZXJ2aWNlcy9hbmFseXRpY3MvaW5kZXguanMnXG5pbXBvcnQgeyBXb3JrZmxvd011bHRpc2VsZWN0RGlhbG9nIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9Xb3JrZmxvd011bHRpc2VsZWN0RGlhbG9nLmpzJ1xuaW1wb3J0IHsgR0lUSFVCX0FDVElPTl9TRVRVUF9ET0NTX1VSTCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9naXRodWItYXBwLmpzJ1xuaW1wb3J0IHsgdXNlRXhpdE9uQ3RybENEV2l0aEtleWJpbmRpbmdzIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlRXhpdE9uQ3RybENEV2l0aEtleWJpbmRpbmdzLmpzJ1xuaW1wb3J0IHR5cGUgeyBLZXlib2FyZEV2ZW50IH0gZnJvbSAnLi4vLi4vaW5rL2V2ZW50cy9rZXlib2FyZC1ldmVudC5qcydcbmltcG9ydCB7IEJveCB9IGZyb20gJy4uLy4uL2luay5qcydcbmltcG9ydCB0eXBlIHsgTG9jYWxKU1hDb21tYW5kT25Eb25lIH0gZnJvbSAnLi4vLi4vdHlwZXMvY29tbWFuZC5qcydcbmltcG9ydCB7IGdldEFudGhyb3BpY0FwaUtleSwgaXNBbnRocm9waWNBdXRoRW5hYmxlZCB9IGZyb20gJy4uLy4uL3V0aWxzL2F1dGguanMnXG5pbXBvcnQgeyBvcGVuQnJvd3NlciB9IGZyb20gJy4uLy4uL3V0aWxzL2Jyb3dzZXIuanMnXG5pbXBvcnQgeyBleGVjRmlsZU5vVGhyb3cgfSBmcm9tICcuLi8uLi91dGlscy9leGVjRmlsZU5vVGhyb3cuanMnXG5pbXBvcnQgeyBnZXRHaXRodWJSZXBvIH0gZnJvbSAnLi4vLi4vdXRpbHMvZ2l0LmpzJ1xuaW1wb3J0IHsgcGx1cmFsIH0gZnJvbSAnLi4vLi4vdXRpbHMvc3RyaW5nVXRpbHMuanMnXG5pbXBvcnQgeyBBcGlLZXlTdGVwIH0gZnJvbSAnLi9BcGlLZXlTdGVwLmpzJ1xuaW1wb3J0IHsgQ2hlY2tFeGlzdGluZ1NlY3JldFN0ZXAgfSBmcm9tICcuL0NoZWNrRXhpc3RpbmdTZWNyZXRTdGVwLmpzJ1xuaW1wb3J0IHsgQ2hlY2tHaXRIdWJTdGVwIH0gZnJvbSAnLi9DaGVja0dpdEh1YlN0ZXAuanMnXG5pbXBvcnQgeyBDaG9vc2VSZXBvU3RlcCB9IGZyb20gJy4vQ2hvb3NlUmVwb1N0ZXAuanMnXG5pbXBvcnQgeyBDcmVhdGluZ1N0ZXAgfSBmcm9tICcuL0NyZWF0aW5nU3RlcC5qcydcbmltcG9ydCB7IEVycm9yU3RlcCB9IGZyb20gJy4vRXJyb3JTdGVwLmpzJ1xuaW1wb3J0IHsgRXhpc3RpbmdXb3JrZmxvd1N0ZXAgfSBmcm9tICcuL0V4aXN0aW5nV29ya2Zsb3dTdGVwLmpzJ1xuaW1wb3J0IHsgSW5zdGFsbEFwcFN0ZXAgfSBmcm9tICcuL0luc3RhbGxBcHBTdGVwLmpzJ1xuaW1wb3J0IHsgT0F1dGhGbG93U3RlcCB9IGZyb20gJy4vT0F1dGhGbG93U3RlcC5qcydcbmltcG9ydCB7IFN1Y2Nlc3NTdGVwIH0gZnJvbSAnLi9TdWNjZXNzU3RlcC5qcydcbmltcG9ydCB7IHNldHVwR2l0SHViQWN0aW9ucyB9IGZyb20gJy4vc2V0dXBHaXRIdWJBY3Rpb25zLmpzJ1xuaW1wb3J0IHR5cGUgeyBTdGF0ZSwgV2FybmluZywgV29ya2Zsb3cgfSBmcm9tICcuL3R5cGVzLmpzJ1xuaW1wb3J0IHsgV2FybmluZ3NTdGVwIH0gZnJvbSAnLi9XYXJuaW5nc1N0ZXAuanMnXG5cbmNvbnN0IElOSVRJQUxfU1RBVEU6IFN0YXRlID0ge1xuICBzdGVwOiAnY2hlY2stZ2gnLFxuICBzZWxlY3RlZFJlcG9OYW1lOiAnJyxcbiAgY3VycmVudFJlcG86ICcnLFxuICB1c2VDdXJyZW50UmVwbzogZmFsc2UsIC8vIERlZmF1bHQgdG8gZmFsc2UsIHdpbGwgYmUgc2V0IHRvIHRydWUgaWYgcmVwbyBkZXRlY3RlZFxuICBhcGlLZXlPck9BdXRoVG9rZW46ICcnLFxuICB1c2VFeGlzdGluZ0tleTogdHJ1ZSxcbiAgY3VycmVudFdvcmtmbG93SW5zdGFsbFN0ZXA6IDAsXG4gIHdhcm5pbmdzOiBbXSxcbiAgc2VjcmV0RXhpc3RzOiBmYWxzZSxcbiAgc2VjcmV0TmFtZTogJ0FOVEhST1BJQ19BUElfS0VZJyxcbiAgdXNlRXhpc3RpbmdTZWNyZXQ6IHRydWUsXG4gIHdvcmtmbG93RXhpc3RzOiBmYWxzZSxcbiAgc2VsZWN0ZWRXb3JrZmxvd3M6IFsnY2xhdWRlJywgJ2NsYXVkZS1yZXZpZXcnXSBhcyBXb3JrZmxvd1tdLFxuICBzZWxlY3RlZEFwaUtleU9wdGlvbjogJ25ldycgYXMgJ2V4aXN0aW5nJyB8ICduZXcnIHwgJ29hdXRoJyxcbiAgYXV0aFR5cGU6ICdhcGlfa2V5Jyxcbn1cblxuZnVuY3Rpb24gSW5zdGFsbEdpdEh1YkFwcChwcm9wczoge1xuICBvbkRvbmU6IChtZXNzYWdlOiBzdHJpbmcpID0+IHZvaWRcbn0pOiBSZWFjdC5SZWFjdE5vZGUge1xuICBjb25zdCBbZXhpc3RpbmdBcGlLZXldID0gdXNlU3RhdGUoKCkgPT4gZ2V0QW50aHJvcGljQXBpS2V5KCkpXG4gIGNvbnN0IFtzdGF0ZSwgc2V0U3RhdGVdID0gdXNlU3RhdGUoe1xuICAgIC4uLklOSVRJQUxfU1RBVEUsXG4gICAgdXNlRXhpc3RpbmdLZXk6ICEhZXhpc3RpbmdBcGlLZXksXG4gICAgc2VsZWN0ZWRBcGlLZXlPcHRpb246IChleGlzdGluZ0FwaUtleVxuICAgICAgPyAnZXhpc3RpbmcnXG4gICAgICA6IGlzQW50aHJvcGljQXV0aEVuYWJsZWQoKVxuICAgICAgICA/ICdvYXV0aCdcbiAgICAgICAgOiAnbmV3JykgYXMgJ2V4aXN0aW5nJyB8ICduZXcnIHwgJ29hdXRoJyxcbiAgfSlcbiAgdXNlRXhpdE9uQ3RybENEV2l0aEtleWJpbmRpbmdzKClcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxvZ0V2ZW50KCd0ZW5ndV9pbnN0YWxsX2dpdGh1Yl9hcHBfc3RhcnRlZCcsIHt9KVxuICB9LCBbXSlcblxuICBjb25zdCBjaGVja0dpdEh1YkNMSSA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB3YXJuaW5nczogV2FybmluZ1tdID0gW11cblxuICAgIC8vIENoZWNrIGlmIGdoIGlzIGluc3RhbGxlZFxuICAgIGNvbnN0IGdoVmVyc2lvblJlc3VsdCA9IGF3YWl0IGV4ZWNhKCdnaCAtLXZlcnNpb24nLCB7XG4gICAgICBzaGVsbDogdHJ1ZSxcbiAgICAgIHJlamVjdDogZmFsc2UsXG4gICAgfSlcbiAgICBpZiAoZ2hWZXJzaW9uUmVzdWx0LmV4aXRDb2RlICE9PSAwKSB7XG4gICAgICB3YXJuaW5ncy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICdHaXRIdWIgQ0xJIG5vdCBmb3VuZCcsXG4gICAgICAgIG1lc3NhZ2U6XG4gICAgICAgICAgJ0dpdEh1YiBDTEkgKGdoKSBkb2VzIG5vdCBhcHBlYXIgdG8gYmUgaW5zdGFsbGVkIG9yIGFjY2Vzc2libGUuJyxcbiAgICAgICAgaW5zdHJ1Y3Rpb25zOiBbXG4gICAgICAgICAgJ0luc3RhbGwgR2l0SHViIENMSSBmcm9tIGh0dHBzOi8vY2xpLmdpdGh1Yi5jb20vJyxcbiAgICAgICAgICAnbWFjT1M6IGJyZXcgaW5zdGFsbCBnaCcsXG4gICAgICAgICAgJ1dpbmRvd3M6IHdpbmdldCBpbnN0YWxsIC0taWQgR2l0SHViLmNsaScsXG4gICAgICAgICAgJ0xpbnV4OiBTZWUgaW5zdGFsbGF0aW9uIGluc3RydWN0aW9ucyBhdCBodHRwczovL2dpdGh1Yi5jb20vY2xpL2NsaSNpbnN0YWxsYXRpb24nLFxuICAgICAgICBdLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICAvLyBDaGVjayBhdXRoIHN0YXR1c1xuICAgIGNvbnN0IGF1dGhSZXN1bHQgPSBhd2FpdCBleGVjYSgnZ2ggYXV0aCBzdGF0dXMgLWEnLCB7XG4gICAgICBzaGVsbDogdHJ1ZSxcbiAgICAgIHJlamVjdDogZmFsc2UsXG4gICAgfSlcbiAgICBpZiAoYXV0aFJlc3VsdC5leGl0Q29kZSAhPT0gMCkge1xuICAgICAgd2FybmluZ3MucHVzaCh7XG4gICAgICAgIHRpdGxlOiAnR2l0SHViIENMSSBub3QgYXV0aGVudGljYXRlZCcsXG4gICAgICAgIG1lc3NhZ2U6ICdHaXRIdWIgQ0xJIGRvZXMgbm90IGFwcGVhciB0byBiZSBhdXRoZW50aWNhdGVkLicsXG4gICAgICAgIGluc3RydWN0aW9uczogW1xuICAgICAgICAgICdSdW46IGdoIGF1dGggbG9naW4nLFxuICAgICAgICAgICdGb2xsb3cgdGhlIHByb21wdHMgdG8gYXV0aGVudGljYXRlIHdpdGggR2l0SHViJyxcbiAgICAgICAgICAnT3Igc2V0IHVwIGF1dGhlbnRpY2F0aW9uIHVzaW5nIGVudmlyb25tZW50IHZhcmlhYmxlcyBvciBvdGhlciBtZXRob2RzJyxcbiAgICAgICAgXSxcbiAgICAgIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIENoZWNrIGlmIHJlcXVpcmVkIHNjb3BlcyBhcmUgcHJlc2VudCBpbiB0aGUgVG9rZW4gc2NvcGVzIGxpbmVcbiAgICAgIGNvbnN0IHRva2VuU2NvcGVzTWF0Y2ggPSBhdXRoUmVzdWx0LnN0ZG91dC5tYXRjaCgvVG9rZW4gc2NvcGVzOi4qJC9tKVxuICAgICAgaWYgKHRva2VuU2NvcGVzTWF0Y2gpIHtcbiAgICAgICAgY29uc3Qgc2NvcGVzID0gdG9rZW5TY29wZXNNYXRjaFswXVxuICAgICAgICBjb25zdCBtaXNzaW5nU2NvcGVzOiBzdHJpbmdbXSA9IFtdXG5cbiAgICAgICAgaWYgKCFzY29wZXMuaW5jbHVkZXMoJ3JlcG8nKSkge1xuICAgICAgICAgIG1pc3NpbmdTY29wZXMucHVzaCgncmVwbycpXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFzY29wZXMuaW5jbHVkZXMoJ3dvcmtmbG93JykpIHtcbiAgICAgICAgICBtaXNzaW5nU2NvcGVzLnB1c2goJ3dvcmtmbG93JylcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtaXNzaW5nU2NvcGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAvLyBNaXNzaW5nIHJlcXVpcmVkIHNjb3BlcyAtIGV4aXQgaW1tZWRpYXRlbHlcbiAgICAgICAgICBzZXRTdGF0ZShwcmV2ID0+ICh7XG4gICAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgICAgc3RlcDogJ2Vycm9yJyxcbiAgICAgICAgICAgIGVycm9yOiBgR2l0SHViIENMSSBpcyBtaXNzaW5nIHJlcXVpcmVkIHBlcm1pc3Npb25zOiAke21pc3NpbmdTY29wZXMuam9pbignLCAnKX0uYCxcbiAgICAgICAgICAgIGVycm9yUmVhc29uOiAnTWlzc2luZyByZXF1aXJlZCBzY29wZXMnLFxuICAgICAgICAgICAgZXJyb3JJbnN0cnVjdGlvbnM6IFtcbiAgICAgICAgICAgICAgYFlvdXIgR2l0SHViIENMSSBhdXRoZW50aWNhdGlvbiBpcyBtaXNzaW5nIHRoZSBcIiR7bWlzc2luZ1Njb3Blcy5qb2luKCdcIiBhbmQgXCInKX1cIiAke3BsdXJhbChtaXNzaW5nU2NvcGVzLmxlbmd0aCwgJ3Njb3BlJyl9IG5lZWRlZCB0byBtYW5hZ2UgR2l0SHViIEFjdGlvbnMgYW5kIHNlY3JldHMuYCxcbiAgICAgICAgICAgICAgJycsXG4gICAgICAgICAgICAgICdUbyBmaXggdGhpcywgcnVuOicsXG4gICAgICAgICAgICAgICcgIGdoIGF1dGggcmVmcmVzaCAtaCBnaXRodWIuY29tIC1zIHJlcG8sd29ya2Zsb3cnLFxuICAgICAgICAgICAgICAnJyxcbiAgICAgICAgICAgICAgJ1RoaXMgd2lsbCBhZGQgdGhlIG5lY2Vzc2FyeSBwZXJtaXNzaW9ucyB0byBtYW5hZ2Ugd29ya2Zsb3dzIGFuZCBzZWNyZXRzLicsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0pKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgaWYgaW4gYSBnaXQgcmVwbyBhbmQgZ2V0IHJlbW90ZSBVUkxcbiAgICBjb25zdCBjdXJyZW50UmVwbyA9IChhd2FpdCBnZXRHaXRodWJSZXBvKCkpID8/ICcnXG5cbiAgICBsb2dFdmVudCgndGVuZ3VfaW5zdGFsbF9naXRodWJfYXBwX3N0ZXBfY29tcGxldGVkJywge1xuICAgICAgc3RlcDogJ2NoZWNrLWdoJyBhcyBBbmFseXRpY3NNZXRhZGF0YV9JX1ZFUklGSUVEX1RISVNfSVNfTk9UX0NPREVfT1JfRklMRVBBVEhTLFxuICAgIH0pXG5cbiAgICBzZXRTdGF0ZShwcmV2ID0+ICh7XG4gICAgICAuLi5wcmV2LFxuICAgICAgd2FybmluZ3MsXG4gICAgICBjdXJyZW50UmVwbyxcbiAgICAgIHNlbGVjdGVkUmVwb05hbWU6IGN1cnJlbnRSZXBvLFxuICAgICAgdXNlQ3VycmVudFJlcG86ICEhY3VycmVudFJlcG8sIC8vIFNldCB0byBmYWxzZSBpZiBubyByZXBvIGRldGVjdGVkXG4gICAgICBzdGVwOiB3YXJuaW5ncy5sZW5ndGggPiAwID8gJ3dhcm5pbmdzJyA6ICdjaG9vc2UtcmVwbycsXG4gICAgfSkpXG4gIH0sIFtdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHN0YXRlLnN0ZXAgPT09ICdjaGVjay1naCcpIHtcbiAgICAgIHZvaWQgY2hlY2tHaXRIdWJDTEkoKVxuICAgIH1cbiAgfSwgW3N0YXRlLnN0ZXAsIGNoZWNrR2l0SHViQ0xJXSlcblxuICBjb25zdCBydW5TZXR1cEdpdEh1YkFjdGlvbnMgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoYXBpS2V5T3JPQXV0aFRva2VuOiBzdHJpbmcgfCBudWxsLCBzZWNyZXROYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgIHNldFN0YXRlKHByZXYgPT4gKHtcbiAgICAgICAgLi4ucHJldixcbiAgICAgICAgc3RlcDogJ2NyZWF0aW5nJyxcbiAgICAgICAgY3VycmVudFdvcmtmbG93SW5zdGFsbFN0ZXA6IDAsXG4gICAgICB9KSlcblxuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgc2V0dXBHaXRIdWJBY3Rpb25zKFxuICAgICAgICAgIHN0YXRlLnNlbGVjdGVkUmVwb05hbWUsXG4gICAgICAgICAgYXBpS2V5T3JPQXV0aFRva2VuLFxuICAgICAgICAgIHNlY3JldE5hbWUsXG4gICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgc2V0U3RhdGUocHJldiA9PiAoe1xuICAgICAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgICAgICBjdXJyZW50V29ya2Zsb3dJbnN0YWxsU3RlcDogcHJldi5jdXJyZW50V29ya2Zsb3dJbnN0YWxsU3RlcCArIDEsXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgICB9LFxuICAgICAgICAgIHN0YXRlLndvcmtmbG93QWN0aW9uID09PSAnc2tpcCcsXG4gICAgICAgICAgc3RhdGUuc2VsZWN0ZWRXb3JrZmxvd3MsXG4gICAgICAgICAgc3RhdGUuYXV0aFR5cGUsXG4gICAgICAgICAge1xuICAgICAgICAgICAgdXNlQ3VycmVudFJlcG86IHN0YXRlLnVzZUN1cnJlbnRSZXBvLFxuICAgICAgICAgICAgd29ya2Zsb3dFeGlzdHM6IHN0YXRlLndvcmtmbG93RXhpc3RzLFxuICAgICAgICAgICAgc2VjcmV0RXhpc3RzOiBzdGF0ZS5zZWNyZXRFeGlzdHMsXG4gICAgICAgICAgfSxcbiAgICAgICAgKVxuICAgICAgICBsb2dFdmVudCgndGVuZ3VfaW5zdGFsbF9naXRodWJfYXBwX3N0ZXBfY29tcGxldGVkJywge1xuICAgICAgICAgIHN0ZXA6ICdjcmVhdGluZycgYXMgQW5hbHl0aWNzTWV0YWRhdGFfSV9WRVJJRklFRF9USElTX0lTX05PVF9DT0RFX09SX0ZJTEVQQVRIUyxcbiAgICAgICAgfSlcbiAgICAgICAgc2V0U3RhdGUocHJldiA9PiAoeyAuLi5wcmV2LCBzdGVwOiAnc3VjY2VzcycgfSkpXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPVxuICAgICAgICAgIGVycm9yIGluc3RhbmNlb2YgRXJyb3JcbiAgICAgICAgICAgID8gZXJyb3IubWVzc2FnZVxuICAgICAgICAgICAgOiAnRmFpbGVkIHRvIHNldCB1cCBHaXRIdWIgQWN0aW9ucydcblxuICAgICAgICBpZiAoZXJyb3JNZXNzYWdlLmluY2x1ZGVzKCd3b3JrZmxvdyBmaWxlIGFscmVhZHkgZXhpc3RzJykpIHtcbiAgICAgICAgICBsb2dFdmVudCgndGVuZ3VfaW5zdGFsbF9naXRodWJfYXBwX2Vycm9yJywge1xuICAgICAgICAgICAgcmVhc29uOlxuICAgICAgICAgICAgICAnd29ya2Zsb3dfZmlsZV9leGlzdHMnIGFzIEFuYWx5dGljc01ldGFkYXRhX0lfVkVSSUZJRURfVEhJU19JU19OT1RfQ09ERV9PUl9GSUxFUEFUSFMsXG4gICAgICAgICAgfSlcbiAgICAgICAgICBzZXRTdGF0ZShwcmV2ID0+ICh7XG4gICAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgICAgc3RlcDogJ2Vycm9yJyxcbiAgICAgICAgICAgIGVycm9yOiAnQSBDbGF1ZGUgd29ya2Zsb3cgZmlsZSBhbHJlYWR5IGV4aXN0cyBpbiB0aGlzIHJlcG9zaXRvcnkuJyxcbiAgICAgICAgICAgIGVycm9yUmVhc29uOiAnV29ya2Zsb3cgZmlsZSBjb25mbGljdCcsXG4gICAgICAgICAgICBlcnJvckluc3RydWN0aW9uczogW1xuICAgICAgICAgICAgICAnVGhlIGZpbGUgLmdpdGh1Yi93b3JrZmxvd3MvY2xhdWRlLnltbCBhbHJlYWR5IGV4aXN0cycsXG4gICAgICAgICAgICAgICdZb3UgY2FuIGVpdGhlcjonLFxuICAgICAgICAgICAgICAnICAxLiBEZWxldGUgdGhlIGV4aXN0aW5nIGZpbGUgYW5kIHJ1biB0aGlzIGNvbW1hbmQgYWdhaW4nLFxuICAgICAgICAgICAgICAnICAyLiBVcGRhdGUgdGhlIGV4aXN0aW5nIGZpbGUgbWFudWFsbHkgdXNpbmcgdGhlIHRlbXBsYXRlIGZyb206JyxcbiAgICAgICAgICAgICAgYCAgICAgJHtHSVRIVUJfQUNUSU9OX1NFVFVQX0RPQ1NfVVJMfWAsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0pKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvZ0V2ZW50KCd0ZW5ndV9pbnN0YWxsX2dpdGh1Yl9hcHBfZXJyb3InLCB7XG4gICAgICAgICAgICByZWFzb246XG4gICAgICAgICAgICAgICdzZXR1cF9naXRodWJfYWN0aW9uc19mYWlsZWQnIGFzIEFuYWx5dGljc01ldGFkYXRhX0lfVkVSSUZJRURfVEhJU19JU19OT1RfQ09ERV9PUl9GSUxFUEFUSFMsXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIHNldFN0YXRlKHByZXYgPT4gKHtcbiAgICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgICBzdGVwOiAnZXJyb3InLFxuICAgICAgICAgICAgZXJyb3I6IGVycm9yTWVzc2FnZSxcbiAgICAgICAgICAgIGVycm9yUmVhc29uOiAnR2l0SHViIEFjdGlvbnMgc2V0dXAgZmFpbGVkJyxcbiAgICAgICAgICAgIGVycm9ySW5zdHJ1Y3Rpb25zOiBbXSxcbiAgICAgICAgICB9KSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgW1xuICAgICAgc3RhdGUuc2VsZWN0ZWRSZXBvTmFtZSxcbiAgICAgIHN0YXRlLndvcmtmbG93QWN0aW9uLFxuICAgICAgc3RhdGUuc2VsZWN0ZWRXb3JrZmxvd3MsXG4gICAgICBzdGF0ZS51c2VDdXJyZW50UmVwbyxcbiAgICAgIHN0YXRlLndvcmtmbG93RXhpc3RzLFxuICAgICAgc3RhdGUuc2VjcmV0RXhpc3RzLFxuICAgICAgc3RhdGUuYXV0aFR5cGUsXG4gICAgXSxcbiAgKVxuXG4gIGFzeW5jIGZ1bmN0aW9uIG9wZW5HaXRIdWJBcHBJbnN0YWxsYXRpb24oKSB7XG4gICAgY29uc3QgaW5zdGFsbFVybCA9ICdodHRwczovL2dpdGh1Yi5jb20vYXBwcy9jbGF1ZGUnXG4gICAgYXdhaXQgb3BlbkJyb3dzZXIoaW5zdGFsbFVybClcbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIGNoZWNrUmVwb3NpdG9yeVBlcm1pc3Npb25zKFxuICAgIHJlcG9OYW1lOiBzdHJpbmcsXG4gICk6IFByb21pc2U8eyBoYXNBY2Nlc3M6IGJvb2xlYW47IGVycm9yPzogc3RyaW5nIH0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZXhlY0ZpbGVOb1Rocm93KCdnaCcsIFtcbiAgICAgICAgJ2FwaScsXG4gICAgICAgIGByZXBvcy8ke3JlcG9OYW1lfWAsXG4gICAgICAgICctLWpxJyxcbiAgICAgICAgJy5wZXJtaXNzaW9ucy5hZG1pbicsXG4gICAgICBdKVxuXG4gICAgICBpZiAocmVzdWx0LmNvZGUgPT09IDApIHtcbiAgICAgICAgY29uc3QgaGFzQWRtaW4gPSByZXN1bHQuc3Rkb3V0LnRyaW0oKSA9PT0gJ3RydWUnXG4gICAgICAgIHJldHVybiB7IGhhc0FjY2VzczogaGFzQWRtaW4gfVxuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIHJlc3VsdC5zdGRlcnIuaW5jbHVkZXMoJzQwNCcpIHx8XG4gICAgICAgIHJlc3VsdC5zdGRlcnIuaW5jbHVkZXMoJ05vdCBGb3VuZCcpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBoYXNBY2Nlc3M6IGZhbHNlLFxuICAgICAgICAgIGVycm9yOiAncmVwb3NpdG9yeV9ub3RfZm91bmQnLFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7IGhhc0FjY2VzczogZmFsc2UgfVxuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIHsgaGFzQWNjZXNzOiBmYWxzZSB9XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZnVuY3Rpb24gY2hlY2tFeGlzdGluZ1dvcmtmbG93RmlsZShyZXBvTmFtZTogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgY2hlY2tGaWxlUmVzdWx0ID0gYXdhaXQgZXhlY0ZpbGVOb1Rocm93KCdnaCcsIFtcbiAgICAgICdhcGknLFxuICAgICAgYHJlcG9zLyR7cmVwb05hbWV9L2NvbnRlbnRzLy5naXRodWIvd29ya2Zsb3dzL2NsYXVkZS55bWxgLFxuICAgICAgJy0tanEnLFxuICAgICAgJy5zaGEnLFxuICAgIF0pXG5cbiAgICByZXR1cm4gY2hlY2tGaWxlUmVzdWx0LmNvZGUgPT09IDBcbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIGNoZWNrRXhpc3RpbmdTZWNyZXQoKSB7XG4gICAgY29uc3QgY2hlY2tTZWNyZXRzUmVzdWx0ID0gYXdhaXQgZXhlY0ZpbGVOb1Rocm93KCdnaCcsIFtcbiAgICAgICdzZWNyZXQnLFxuICAgICAgJ2xpc3QnLFxuICAgICAgJy0tYXBwJyxcbiAgICAgICdhY3Rpb25zJyxcbiAgICAgICctLXJlcG8nLFxuICAgICAgc3RhdGUuc2VsZWN0ZWRSZXBvTmFtZSxcbiAgICBdKVxuXG4gICAgaWYgKGNoZWNrU2VjcmV0c1Jlc3VsdC5jb2RlID09PSAwKSB7XG4gICAgICBjb25zdCBsaW5lcyA9IGNoZWNrU2VjcmV0c1Jlc3VsdC5zdGRvdXQuc3BsaXQoJ1xcbicpXG4gICAgICBjb25zdCBoYXNBbnRocm9waWNLZXkgPSBsaW5lcy5zb21lKChsaW5lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgcmV0dXJuIC9eQU5USFJPUElDX0FQSV9LRVlcXHMrLy50ZXN0KGxpbmUpXG4gICAgICB9KVxuXG4gICAgICBpZiAoaGFzQW50aHJvcGljS2V5KSB7XG4gICAgICAgIHNldFN0YXRlKHByZXYgPT4gKHtcbiAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgIHNlY3JldEV4aXN0czogdHJ1ZSxcbiAgICAgICAgICBzdGVwOiAnY2hlY2stZXhpc3Rpbmctc2VjcmV0JyxcbiAgICAgICAgfSkpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBObyBleGlzdGluZyBzZWNyZXQgZm91bmRcbiAgICAgICAgaWYgKGV4aXN0aW5nQXBpS2V5KSB7XG4gICAgICAgICAgLy8gVXNlciBoYXMgbG9jYWwga2V5LCBza2lwIHRvIGNyZWF0aW5nIHdpdGggaXRcbiAgICAgICAgICBzZXRTdGF0ZShwcmV2ID0+ICh7XG4gICAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgICAgYXBpS2V5T3JPQXV0aFRva2VuOiBleGlzdGluZ0FwaUtleSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nS2V5OiB0cnVlLFxuICAgICAgICAgIH0pKVxuICAgICAgICAgIGF3YWl0IHJ1blNldHVwR2l0SHViQWN0aW9ucyhleGlzdGluZ0FwaUtleSwgc3RhdGUuc2VjcmV0TmFtZSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBObyBsb2NhbCBrZXksIGdvIHRvIEFQSSBrZXkgc3RlcFxuICAgICAgICAgIHNldFN0YXRlKHByZXYgPT4gKHsgLi4ucHJldiwgc3RlcDogJ2FwaS1rZXknIH0pKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEVycm9yIGNoZWNraW5nIHNlY3JldHNcbiAgICAgIGlmIChleGlzdGluZ0FwaUtleSkge1xuICAgICAgICAvLyBVc2VyIGhhcyBsb2NhbCBrZXksIHNraXAgdG8gY3JlYXRpbmcgd2l0aCBpdFxuICAgICAgICBzZXRTdGF0ZShwcmV2ID0+ICh7XG4gICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICBhcGlLZXlPck9BdXRoVG9rZW46IGV4aXN0aW5nQXBpS2V5LFxuICAgICAgICAgIHVzZUV4aXN0aW5nS2V5OiB0cnVlLFxuICAgICAgICB9KSlcbiAgICAgICAgYXdhaXQgcnVuU2V0dXBHaXRIdWJBY3Rpb25zKGV4aXN0aW5nQXBpS2V5LCBzdGF0ZS5zZWNyZXROYW1lKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gTm8gbG9jYWwga2V5LCBnbyB0byBBUEkga2V5IHN0ZXBcbiAgICAgICAgc2V0U3RhdGUocHJldiA9PiAoeyAuLi5wcmV2LCBzdGVwOiAnYXBpLWtleScgfSkpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgaGFuZGxlU3VibWl0ID0gYXN5bmMgKCkgPT4ge1xuICAgIGlmIChzdGF0ZS5zdGVwID09PSAnd2FybmluZ3MnKSB7XG4gICAgICBsb2dFdmVudCgndGVuZ3VfaW5zdGFsbF9naXRodWJfYXBwX3N0ZXBfY29tcGxldGVkJywge1xuICAgICAgICBzdGVwOiAnd2FybmluZ3MnIGFzIEFuYWx5dGljc01ldGFkYXRhX0lfVkVSSUZJRURfVEhJU19JU19OT1RfQ09ERV9PUl9GSUxFUEFUSFMsXG4gICAgICB9KVxuICAgICAgc2V0U3RhdGUocHJldiA9PiAoeyAuLi5wcmV2LCBzdGVwOiAnaW5zdGFsbC1hcHAnIH0pKVxuICAgICAgc2V0VGltZW91dChvcGVuR2l0SHViQXBwSW5zdGFsbGF0aW9uLCAwKVxuICAgIH0gZWxzZSBpZiAoc3RhdGUuc3RlcCA9PT0gJ2Nob29zZS1yZXBvJykge1xuICAgICAgbGV0IHJlcG9OYW1lID0gc3RhdGUudXNlQ3VycmVudFJlcG9cbiAgICAgICAgPyBzdGF0ZS5jdXJyZW50UmVwb1xuICAgICAgICA6IHN0YXRlLnNlbGVjdGVkUmVwb05hbWVcblxuICAgICAgaWYgKCFyZXBvTmFtZS50cmltKCkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlcG9XYXJuaW5nczogV2FybmluZ1tdID0gW11cblxuICAgICAgaWYgKHJlcG9OYW1lLmluY2x1ZGVzKCdnaXRodWIuY29tJykpIHtcbiAgICAgICAgY29uc3QgbWF0Y2ggPSByZXBvTmFtZS5tYXRjaCgvZ2l0aHViXFwuY29tWzovXShbXi9dK1xcL1teL10rKShcXC5naXQpPyQvKVxuICAgICAgICBpZiAoIW1hdGNoKSB7XG4gICAgICAgICAgcmVwb1dhcm5pbmdzLnB1c2goe1xuICAgICAgICAgICAgdGl0bGU6ICdJbnZhbGlkIEdpdEh1YiBVUkwgZm9ybWF0JyxcbiAgICAgICAgICAgIG1lc3NhZ2U6ICdUaGUgcmVwb3NpdG9yeSBVUkwgZm9ybWF0IGFwcGVhcnMgdG8gYmUgaW52YWxpZC4nLFxuICAgICAgICAgICAgaW5zdHJ1Y3Rpb25zOiBbXG4gICAgICAgICAgICAgICdVc2UgZm9ybWF0OiBvd25lci9yZXBvIG9yIGh0dHBzOi8vZ2l0aHViLmNvbS9vd25lci9yZXBvJyxcbiAgICAgICAgICAgICAgJ0V4YW1wbGU6IGFudGhyb3BpY3MvY2xhdWRlLWNsaScsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVwb05hbWUgPSBtYXRjaFsxXT8ucmVwbGFjZSgvXFwuZ2l0JC8sICcnKSB8fCAnJ1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghcmVwb05hbWUuaW5jbHVkZXMoJy8nKSkge1xuICAgICAgICByZXBvV2FybmluZ3MucHVzaCh7XG4gICAgICAgICAgdGl0bGU6ICdSZXBvc2l0b3J5IGZvcm1hdCB3YXJuaW5nJyxcbiAgICAgICAgICBtZXNzYWdlOiAnUmVwb3NpdG9yeSBzaG91bGQgYmUgaW4gZm9ybWF0IFwib3duZXIvcmVwb1wiJyxcbiAgICAgICAgICBpbnN0cnVjdGlvbnM6IFtcbiAgICAgICAgICAgICdVc2UgZm9ybWF0OiBvd25lci9yZXBvJyxcbiAgICAgICAgICAgICdFeGFtcGxlOiBhbnRocm9waWNzL2NsYXVkZS1jbGknLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHBlcm1pc3Npb25DaGVjayA9IGF3YWl0IGNoZWNrUmVwb3NpdG9yeVBlcm1pc3Npb25zKHJlcG9OYW1lKVxuXG4gICAgICBpZiAocGVybWlzc2lvbkNoZWNrLmVycm9yID09PSAncmVwb3NpdG9yeV9ub3RfZm91bmQnKSB7XG4gICAgICAgIHJlcG9XYXJuaW5ncy5wdXNoKHtcbiAgICAgICAgICB0aXRsZTogJ1JlcG9zaXRvcnkgbm90IGZvdW5kJyxcbiAgICAgICAgICBtZXNzYWdlOiBgUmVwb3NpdG9yeSAke3JlcG9OYW1lfSB3YXMgbm90IGZvdW5kIG9yIHlvdSBkb24ndCBoYXZlIGFjY2Vzcy5gLFxuICAgICAgICAgIGluc3RydWN0aW9uczogW1xuICAgICAgICAgICAgYENoZWNrIHRoYXQgdGhlIHJlcG9zaXRvcnkgbmFtZSBpcyBjb3JyZWN0OiAke3JlcG9OYW1lfWAsXG4gICAgICAgICAgICAnRW5zdXJlIHlvdSBoYXZlIGFjY2VzcyB0byB0aGlzIHJlcG9zaXRvcnknLFxuICAgICAgICAgICAgJ0ZvciBwcml2YXRlIHJlcG9zaXRvcmllcywgbWFrZSBzdXJlIHlvdXIgR2l0SHViIHRva2VuIGhhcyB0aGUgXCJyZXBvXCIgc2NvcGUnLFxuICAgICAgICAgICAgJ1lvdSBjYW4gYWRkIHRoZSByZXBvIHNjb3BlIHdpdGg6IGdoIGF1dGggcmVmcmVzaCAtaCBnaXRodWIuY29tIC1zIHJlcG8sd29ya2Zsb3cnLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2UgaWYgKCFwZXJtaXNzaW9uQ2hlY2suaGFzQWNjZXNzKSB7XG4gICAgICAgIHJlcG9XYXJuaW5ncy5wdXNoKHtcbiAgICAgICAgICB0aXRsZTogJ0FkbWluIHBlcm1pc3Npb25zIHJlcXVpcmVkJyxcbiAgICAgICAgICBtZXNzYWdlOiBgWW91IG1pZ2h0IG5lZWQgYWRtaW4gcGVybWlzc2lvbnMgb24gJHtyZXBvTmFtZX0gdG8gc2V0IHVwIEdpdEh1YiBBY3Rpb25zLmAsXG4gICAgICAgICAgaW5zdHJ1Y3Rpb25zOiBbXG4gICAgICAgICAgICAnUmVwb3NpdG9yeSBhZG1pbnMgY2FuIGluc3RhbGwgR2l0SHViIEFwcHMgYW5kIHNldCBzZWNyZXRzJyxcbiAgICAgICAgICAgICdBc2sgYSByZXBvc2l0b3J5IGFkbWluIHRvIHJ1biB0aGlzIGNvbW1hbmQgaWYgc2V0dXAgZmFpbHMnLFxuICAgICAgICAgICAgJ0FsdGVybmF0aXZlbHksIHlvdSBjYW4gdXNlIHRoZSBtYW51YWwgc2V0dXAgaW5zdHJ1Y3Rpb25zJyxcbiAgICAgICAgICBdLFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICBjb25zdCB3b3JrZmxvd0V4aXN0cyA9IGF3YWl0IGNoZWNrRXhpc3RpbmdXb3JrZmxvd0ZpbGUocmVwb05hbWUpXG5cbiAgICAgIGlmIChyZXBvV2FybmluZ3MubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBhbGxXYXJuaW5ncyA9IFsuLi5zdGF0ZS53YXJuaW5ncywgLi4ucmVwb1dhcm5pbmdzXVxuICAgICAgICBzZXRTdGF0ZShwcmV2ID0+ICh7XG4gICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICBzZWxlY3RlZFJlcG9OYW1lOiByZXBvTmFtZSxcbiAgICAgICAgICB3b3JrZmxvd0V4aXN0cyxcbiAgICAgICAgICB3YXJuaW5nczogYWxsV2FybmluZ3MsXG4gICAgICAgICAgc3RlcDogJ3dhcm5pbmdzJyxcbiAgICAgICAgfSkpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2dFdmVudCgndGVuZ3VfaW5zdGFsbF9naXRodWJfYXBwX3N0ZXBfY29tcGxldGVkJywge1xuICAgICAgICAgIHN0ZXA6ICdjaG9vc2UtcmVwbycgYXMgQW5hbHl0aWNzTWV0YWRhdGFfSV9WRVJJRklFRF9USElTX0lTX05PVF9DT0RFX09SX0ZJTEVQQVRIUyxcbiAgICAgICAgfSlcbiAgICAgICAgc2V0U3RhdGUocHJldiA9PiAoe1xuICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgc2VsZWN0ZWRSZXBvTmFtZTogcmVwb05hbWUsXG4gICAgICAgICAgd29ya2Zsb3dFeGlzdHMsXG4gICAgICAgICAgc3RlcDogJ2luc3RhbGwtYXBwJyxcbiAgICAgICAgfSkpXG4gICAgICAgIHNldFRpbWVvdXQob3BlbkdpdEh1YkFwcEluc3RhbGxhdGlvbiwgMClcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHN0YXRlLnN0ZXAgPT09ICdpbnN0YWxsLWFwcCcpIHtcbiAgICAgIGxvZ0V2ZW50KCd0ZW5ndV9pbnN0YWxsX2dpdGh1Yl9hcHBfc3RlcF9jb21wbGV0ZWQnLCB7XG4gICAgICAgIHN0ZXA6ICdpbnN0YWxsLWFwcCcgYXMgQW5hbHl0aWNzTWV0YWRhdGFfSV9WRVJJRklFRF9USElTX0lTX05PVF9DT0RFX09SX0ZJTEVQQVRIUyxcbiAgICAgIH0pXG4gICAgICBpZiAoc3RhdGUud29ya2Zsb3dFeGlzdHMpIHtcbiAgICAgICAgc2V0U3RhdGUocHJldiA9PiAoeyAuLi5wcmV2LCBzdGVwOiAnY2hlY2stZXhpc3Rpbmctd29ya2Zsb3cnIH0pKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0U3RhdGUocHJldiA9PiAoeyAuLi5wcmV2LCBzdGVwOiAnc2VsZWN0LXdvcmtmbG93cycgfSkpXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChzdGF0ZS5zdGVwID09PSAnY2hlY2stZXhpc3Rpbmctd29ya2Zsb3cnKSB7XG4gICAgICByZXR1cm5cbiAgICB9IGVsc2UgaWYgKHN0YXRlLnN0ZXAgPT09ICdzZWxlY3Qtd29ya2Zsb3dzJykge1xuICAgICAgLy8gSGFuZGxlZCBieSB0aGUgV29ya2Zsb3dNdWx0aXNlbGVjdERpYWxvZyBjb21wb25lbnRcbiAgICAgIHJldHVyblxuICAgIH0gZWxzZSBpZiAoc3RhdGUuc3RlcCA9PT0gJ2NoZWNrLWV4aXN0aW5nLXNlY3JldCcpIHtcbiAgICAgIGxvZ0V2ZW50KCd0ZW5ndV9pbnN0YWxsX2dpdGh1Yl9hcHBfc3RlcF9jb21wbGV0ZWQnLCB7XG4gICAgICAgIHN0ZXA6ICdjaGVjay1leGlzdGluZy1zZWNyZXQnIGFzIEFuYWx5dGljc01ldGFkYXRhX0lfVkVSSUZJRURfVEhJU19JU19OT1RfQ09ERV9PUl9GSUxFUEFUSFMsXG4gICAgICB9KVxuICAgICAgaWYgKHN0YXRlLnVzZUV4aXN0aW5nU2VjcmV0KSB7XG4gICAgICAgIGF3YWl0IHJ1blNldHVwR2l0SHViQWN0aW9ucyhudWxsLCBzdGF0ZS5zZWNyZXROYW1lKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVXNlciB3YW50cyB0byB1c2UgYSBuZXcgc2VjcmV0IG5hbWUgd2l0aCB0aGVpciBBUEkga2V5XG4gICAgICAgIGF3YWl0IHJ1blNldHVwR2l0SHViQWN0aW9ucyhzdGF0ZS5hcGlLZXlPck9BdXRoVG9rZW4sIHN0YXRlLnNlY3JldE5hbWUpXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChzdGF0ZS5zdGVwID09PSAnYXBpLWtleScpIHtcbiAgICAgIC8vIEluIHRoZSBuZXcgZmxvdywgYXBpLWtleSBzdGVwIG9ubHkgYXBwZWFycyB3aGVuIHVzZXIgaGFzIG5vIGV4aXN0aW5nIGtleVxuICAgICAgLy8gVGhleSBlaXRoZXIgZW50ZXJlZCBhIG5ldyBrZXkgb3Igd2lsbCBjcmVhdGUgT0F1dGggdG9rZW5cbiAgICAgIGlmIChzdGF0ZS5zZWxlY3RlZEFwaUtleU9wdGlvbiA9PT0gJ29hdXRoJykge1xuICAgICAgICAvLyBPQXV0aCBmbG93IGFscmVhZHkgaGFuZGxlZCBieSBoYW5kbGVDcmVhdGVPQXV0aFRva2VuXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyBJZiB1c2VyIHNlbGVjdGVkICdleGlzdGluZycgb3B0aW9uLCB1c2UgdGhlIGV4aXN0aW5nIEFQSSBrZXlcbiAgICAgIGNvbnN0IGFwaUtleVRvVXNlID1cbiAgICAgICAgc3RhdGUuc2VsZWN0ZWRBcGlLZXlPcHRpb24gPT09ICdleGlzdGluZydcbiAgICAgICAgICA/IGV4aXN0aW5nQXBpS2V5XG4gICAgICAgICAgOiBzdGF0ZS5hcGlLZXlPck9BdXRoVG9rZW5cblxuICAgICAgaWYgKCFhcGlLZXlUb1VzZSkge1xuICAgICAgICBsb2dFdmVudCgndGVuZ3VfaW5zdGFsbF9naXRodWJfYXBwX2Vycm9yJywge1xuICAgICAgICAgIHJlYXNvbjpcbiAgICAgICAgICAgICdhcGlfa2V5X21pc3NpbmcnIGFzIEFuYWx5dGljc01ldGFkYXRhX0lfVkVSSUZJRURfVEhJU19JU19OT1RfQ09ERV9PUl9GSUxFUEFUSFMsXG4gICAgICAgIH0pXG4gICAgICAgIHNldFN0YXRlKHByZXYgPT4gKHtcbiAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgIHN0ZXA6ICdlcnJvcicsXG4gICAgICAgICAgZXJyb3I6ICdBUEkga2V5IGlzIHJlcXVpcmVkJyxcbiAgICAgICAgfSkpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyBTdG9yZSB0aGUgQVBJIGtleSBiZWluZyB1c2VkIChlaXRoZXIgZXhpc3Rpbmcgb3IgbmV3bHkgZW50ZXJlZClcbiAgICAgIHNldFN0YXRlKHByZXYgPT4gKHtcbiAgICAgICAgLi4ucHJldixcbiAgICAgICAgYXBpS2V5T3JPQXV0aFRva2VuOiBhcGlLZXlUb1VzZSxcbiAgICAgICAgdXNlRXhpc3RpbmdLZXk6IHN0YXRlLnNlbGVjdGVkQXBpS2V5T3B0aW9uID09PSAnZXhpc3RpbmcnLFxuICAgICAgfSkpXG5cbiAgICAgIC8vIENoZWNrIGlmIEFOVEhST1BJQ19BUElfS0VZIHNlY3JldCBhbHJlYWR5IGV4aXN0c1xuICAgICAgY29uc3QgY2hlY2tTZWNyZXRzUmVzdWx0ID0gYXdhaXQgZXhlY0ZpbGVOb1Rocm93KCdnaCcsIFtcbiAgICAgICAgJ3NlY3JldCcsXG4gICAgICAgICdsaXN0JyxcbiAgICAgICAgJy0tYXBwJyxcbiAgICAgICAgJ2FjdGlvbnMnLFxuICAgICAgICAnLS1yZXBvJyxcbiAgICAgICAgc3RhdGUuc2VsZWN0ZWRSZXBvTmFtZSxcbiAgICAgIF0pXG5cbiAgICAgIGlmIChjaGVja1NlY3JldHNSZXN1bHQuY29kZSA9PT0gMCkge1xuICAgICAgICBjb25zdCBsaW5lcyA9IGNoZWNrU2VjcmV0c1Jlc3VsdC5zdGRvdXQuc3BsaXQoJ1xcbicpXG4gICAgICAgIGNvbnN0IGhhc0FudGhyb3BpY0tleSA9IGxpbmVzLnNvbWUoKGxpbmU6IHN0cmluZykgPT4ge1xuICAgICAgICAgIHJldHVybiAvXkFOVEhST1BJQ19BUElfS0VZXFxzKy8udGVzdChsaW5lKVxuICAgICAgICB9KVxuXG4gICAgICAgIGlmIChoYXNBbnRocm9waWNLZXkpIHtcbiAgICAgICAgICBsb2dFdmVudCgndGVuZ3VfaW5zdGFsbF9naXRodWJfYXBwX3N0ZXBfY29tcGxldGVkJywge1xuICAgICAgICAgICAgc3RlcDogJ2FwaS1rZXknIGFzIEFuYWx5dGljc01ldGFkYXRhX0lfVkVSSUZJRURfVEhJU19JU19OT1RfQ09ERV9PUl9GSUxFUEFUSFMsXG4gICAgICAgICAgfSlcbiAgICAgICAgICBzZXRTdGF0ZShwcmV2ID0+ICh7XG4gICAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgICAgc2VjcmV0RXhpc3RzOiB0cnVlLFxuICAgICAgICAgICAgc3RlcDogJ2NoZWNrLWV4aXN0aW5nLXNlY3JldCcsXG4gICAgICAgICAgfSkpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbG9nRXZlbnQoJ3Rlbmd1X2luc3RhbGxfZ2l0aHViX2FwcF9zdGVwX2NvbXBsZXRlZCcsIHtcbiAgICAgICAgICAgIHN0ZXA6ICdhcGkta2V5JyBhcyBBbmFseXRpY3NNZXRhZGF0YV9JX1ZFUklGSUVEX1RISVNfSVNfTk9UX0NPREVfT1JfRklMRVBBVEhTLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgLy8gTm8gZXhpc3Rpbmcgc2VjcmV0LCBwcm9jZWVkIHRvIGNyZWF0aW5nXG4gICAgICAgICAgYXdhaXQgcnVuU2V0dXBHaXRIdWJBY3Rpb25zKGFwaUtleVRvVXNlLCBzdGF0ZS5zZWNyZXROYW1lKVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2dFdmVudCgndGVuZ3VfaW5zdGFsbF9naXRodWJfYXBwX3N0ZXBfY29tcGxldGVkJywge1xuICAgICAgICAgIHN0ZXA6ICdhcGkta2V5JyBhcyBBbmFseXRpY3NNZXRhZGF0YV9JX1ZFUklGSUVEX1RISVNfSVNfTk9UX0NPREVfT1JfRklMRVBBVEhTLFxuICAgICAgICB9KVxuICAgICAgICAvLyBFcnJvciBjaGVja2luZyBzZWNyZXRzLCBwcm9jZWVkIGFueXdheVxuICAgICAgICBhd2FpdCBydW5TZXR1cEdpdEh1YkFjdGlvbnMoYXBpS2V5VG9Vc2UsIHN0YXRlLnNlY3JldE5hbWUpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgaGFuZGxlUmVwb1VybENoYW5nZSA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgc2V0U3RhdGUocHJldiA9PiAoeyAuLi5wcmV2LCBzZWxlY3RlZFJlcG9OYW1lOiB2YWx1ZSB9KSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUFwaUtleUNoYW5nZSA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgc2V0U3RhdGUocHJldiA9PiAoeyAuLi5wcmV2LCBhcGlLZXlPck9BdXRoVG9rZW46IHZhbHVlIH0pKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQXBpS2V5T3B0aW9uQ2hhbmdlID0gKG9wdGlvbjogJ2V4aXN0aW5nJyB8ICduZXcnIHwgJ29hdXRoJykgPT4ge1xuICAgIHNldFN0YXRlKHByZXYgPT4gKHsgLi4ucHJldiwgc2VsZWN0ZWRBcGlLZXlPcHRpb246IG9wdGlvbiB9KSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUNyZWF0ZU9BdXRoVG9rZW4gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgbG9nRXZlbnQoJ3Rlbmd1X2luc3RhbGxfZ2l0aHViX2FwcF9zdGVwX2NvbXBsZXRlZCcsIHtcbiAgICAgIHN0ZXA6ICdhcGkta2V5JyBhcyBBbmFseXRpY3NNZXRhZGF0YV9JX1ZFUklGSUVEX1RISVNfSVNfTk9UX0NPREVfT1JfRklMRVBBVEhTLFxuICAgIH0pXG4gICAgc2V0U3RhdGUocHJldiA9PiAoeyAuLi5wcmV2LCBzdGVwOiAnb2F1dGgtZmxvdycgfSkpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IGhhbmRsZU9BdXRoU3VjY2VzcyA9IHVzZUNhbGxiYWNrKFxuICAgICh0b2tlbjogc3RyaW5nKSA9PiB7XG4gICAgICBsb2dFdmVudCgndGVuZ3VfaW5zdGFsbF9naXRodWJfYXBwX3N0ZXBfY29tcGxldGVkJywge1xuICAgICAgICBzdGVwOiAnb2F1dGgtZmxvdycgYXMgQW5hbHl0aWNzTWV0YWRhdGFfSV9WRVJJRklFRF9USElTX0lTX05PVF9DT0RFX09SX0ZJTEVQQVRIUyxcbiAgICAgIH0pXG4gICAgICBzZXRTdGF0ZShwcmV2ID0+ICh7XG4gICAgICAgIC4uLnByZXYsXG4gICAgICAgIGFwaUtleU9yT0F1dGhUb2tlbjogdG9rZW4sXG4gICAgICAgIHVzZUV4aXN0aW5nS2V5OiBmYWxzZSxcbiAgICAgICAgc2VjcmV0TmFtZTogJ0NMQVVERV9DT0RFX09BVVRIX1RPS0VOJyxcbiAgICAgICAgYXV0aFR5cGU6ICdvYXV0aF90b2tlbicsXG4gICAgICB9KSlcbiAgICAgIHZvaWQgcnVuU2V0dXBHaXRIdWJBY3Rpb25zKHRva2VuLCAnQ0xBVURFX0NPREVfT0FVVEhfVE9LRU4nKVxuICAgIH0sXG4gICAgW3J1blNldHVwR2l0SHViQWN0aW9uc10sXG4gIClcblxuICBjb25zdCBoYW5kbGVPQXV0aENhbmNlbCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRTdGF0ZShwcmV2ID0+ICh7IC4uLnByZXYsIHN0ZXA6ICdhcGkta2V5JyB9KSlcbiAgfSwgW10pXG5cbiAgY29uc3QgaGFuZGxlU2VjcmV0TmFtZUNoYW5nZSA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgaWYgKHZhbHVlICYmICEvXlthLXpBLVowLTlfXSskLy50ZXN0KHZhbHVlKSkgcmV0dXJuXG4gICAgc2V0U3RhdGUocHJldiA9PiAoeyAuLi5wcmV2LCBzZWNyZXROYW1lOiB2YWx1ZSB9KSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVRvZ2dsZVVzZUN1cnJlbnRSZXBvID0gKHVzZUN1cnJlbnRSZXBvOiBib29sZWFuKSA9PiB7XG4gICAgc2V0U3RhdGUocHJldiA9PiAoe1xuICAgICAgLi4ucHJldixcbiAgICAgIHVzZUN1cnJlbnRSZXBvLFxuICAgICAgc2VsZWN0ZWRSZXBvTmFtZTogdXNlQ3VycmVudFJlcG8gPyBwcmV2LmN1cnJlbnRSZXBvIDogJycsXG4gICAgfSkpXG4gIH1cblxuICBjb25zdCBoYW5kbGVUb2dnbGVVc2VFeGlzdGluZ0tleSA9ICh1c2VFeGlzdGluZ0tleTogYm9vbGVhbikgPT4ge1xuICAgIHNldFN0YXRlKHByZXYgPT4gKHsgLi4ucHJldiwgdXNlRXhpc3RpbmdLZXkgfSkpXG4gIH1cblxuICBjb25zdCBoYW5kbGVUb2dnbGVVc2VFeGlzdGluZ1NlY3JldCA9ICh1c2VFeGlzdGluZ1NlY3JldDogYm9vbGVhbikgPT4ge1xuICAgIHNldFN0YXRlKHByZXYgPT4gKHtcbiAgICAgIC4uLnByZXYsXG4gICAgICB1c2VFeGlzdGluZ1NlY3JldCxcbiAgICAgIHNlY3JldE5hbWU6IHVzZUV4aXN0aW5nU2VjcmV0ID8gJ0FOVEhST1BJQ19BUElfS0VZJyA6ICcnLFxuICAgIH0pKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlV29ya2Zsb3dBY3Rpb24gPSBhc3luYyAoYWN0aW9uOiAndXBkYXRlJyB8ICdza2lwJyB8ICdleGl0JykgPT4ge1xuICAgIGlmIChhY3Rpb24gPT09ICdleGl0Jykge1xuICAgICAgcHJvcHMub25Eb25lKCdJbnN0YWxsYXRpb24gY2FuY2VsbGVkIGJ5IHVzZXInKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgbG9nRXZlbnQoJ3Rlbmd1X2luc3RhbGxfZ2l0aHViX2FwcF9zdGVwX2NvbXBsZXRlZCcsIHtcbiAgICAgIHN0ZXA6ICdjaGVjay1leGlzdGluZy13b3JrZmxvdycgYXMgQW5hbHl0aWNzTWV0YWRhdGFfSV9WRVJJRklFRF9USElTX0lTX05PVF9DT0RFX09SX0ZJTEVQQVRIUyxcbiAgICB9KVxuXG4gICAgc2V0U3RhdGUocHJldiA9PiAoeyAuLi5wcmV2LCB3b3JrZmxvd0FjdGlvbjogYWN0aW9uIH0pKVxuXG4gICAgaWYgKGFjdGlvbiA9PT0gJ3NraXAnIHx8IGFjdGlvbiA9PT0gJ3VwZGF0ZScpIHtcbiAgICAgIC8vIENoZWNrIGlmIHVzZXIgaGFzIGV4aXN0aW5nIGxvY2FsIEFQSSBrZXlcbiAgICAgIGlmIChleGlzdGluZ0FwaUtleSkge1xuICAgICAgICBhd2FpdCBjaGVja0V4aXN0aW5nU2VjcmV0KClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIE5vIGxvY2FsIGtleSwgZ28gc3RyYWlnaHQgdG8gQVBJIGtleSBzdGVwXG4gICAgICAgIHNldFN0YXRlKHByZXYgPT4gKHsgLi4ucHJldiwgc3RlcDogJ2FwaS1rZXknIH0pKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZURpc21pc3NLZXlEb3duKGU6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBpZiAoc3RhdGUuc3RlcCA9PT0gJ3N1Y2Nlc3MnKSB7XG4gICAgICBsb2dFdmVudCgndGVuZ3VfaW5zdGFsbF9naXRodWJfYXBwX2NvbXBsZXRlZCcsIHt9KVxuICAgIH1cbiAgICBwcm9wcy5vbkRvbmUoXG4gICAgICBzdGF0ZS5zdGVwID09PSAnc3VjY2VzcydcbiAgICAgICAgPyAnR2l0SHViIEFjdGlvbnMgc2V0dXAgY29tcGxldGUhJ1xuICAgICAgICA6IHN0YXRlLmVycm9yXG4gICAgICAgICAgPyBgQ291bGRuJ3QgaW5zdGFsbCBHaXRIdWIgQXBwOiAke3N0YXRlLmVycm9yfVxcbkZvciBtYW51YWwgc2V0dXAgaW5zdHJ1Y3Rpb25zLCBzZWU6ICR7R0lUSFVCX0FDVElPTl9TRVRVUF9ET0NTX1VSTH1gXG4gICAgICAgICAgOiBgR2l0SHViIEFwcCBpbnN0YWxsYXRpb24gZmFpbGVkXFxuRm9yIG1hbnVhbCBzZXR1cCBpbnN0cnVjdGlvbnMsIHNlZTogJHtHSVRIVUJfQUNUSU9OX1NFVFVQX0RPQ1NfVVJMfWAsXG4gICAgKVxuICB9XG5cbiAgc3dpdGNoIChzdGF0ZS5zdGVwKSB7XG4gICAgY2FzZSAnY2hlY2stZ2gnOlxuICAgICAgcmV0dXJuIDxDaGVja0dpdEh1YlN0ZXAgLz5cbiAgICBjYXNlICd3YXJuaW5ncyc6XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8V2FybmluZ3NTdGVwIHdhcm5pbmdzPXtzdGF0ZS53YXJuaW5nc30gb25Db250aW51ZT17aGFuZGxlU3VibWl0fSAvPlxuICAgICAgKVxuICAgIGNhc2UgJ2Nob29zZS1yZXBvJzpcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxDaG9vc2VSZXBvU3RlcFxuICAgICAgICAgIGN1cnJlbnRSZXBvPXtzdGF0ZS5jdXJyZW50UmVwb31cbiAgICAgICAgICB1c2VDdXJyZW50UmVwbz17c3RhdGUudXNlQ3VycmVudFJlcG99XG4gICAgICAgICAgcmVwb1VybD17c3RhdGUuc2VsZWN0ZWRSZXBvTmFtZX1cbiAgICAgICAgICBvblJlcG9VcmxDaGFuZ2U9e2hhbmRsZVJlcG9VcmxDaGFuZ2V9XG4gICAgICAgICAgb25Ub2dnbGVVc2VDdXJyZW50UmVwbz17aGFuZGxlVG9nZ2xlVXNlQ3VycmVudFJlcG99XG4gICAgICAgICAgb25TdWJtaXQ9e2hhbmRsZVN1Ym1pdH1cbiAgICAgICAgLz5cbiAgICAgIClcbiAgICBjYXNlICdpbnN0YWxsLWFwcCc6XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8SW5zdGFsbEFwcFN0ZXBcbiAgICAgICAgICByZXBvVXJsPXtzdGF0ZS5zZWxlY3RlZFJlcG9OYW1lfVxuICAgICAgICAgIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICAgIC8+XG4gICAgICApXG4gICAgY2FzZSAnY2hlY2stZXhpc3Rpbmctd29ya2Zsb3cnOlxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEV4aXN0aW5nV29ya2Zsb3dTdGVwXG4gICAgICAgICAgcmVwb05hbWU9e3N0YXRlLnNlbGVjdGVkUmVwb05hbWV9XG4gICAgICAgICAgb25TZWxlY3RBY3Rpb249e2hhbmRsZVdvcmtmbG93QWN0aW9ufVxuICAgICAgICAvPlxuICAgICAgKVxuICAgIGNhc2UgJ2NoZWNrLWV4aXN0aW5nLXNlY3JldCc6XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8Q2hlY2tFeGlzdGluZ1NlY3JldFN0ZXBcbiAgICAgICAgICB1c2VFeGlzdGluZ1NlY3JldD17c3RhdGUudXNlRXhpc3RpbmdTZWNyZXR9XG4gICAgICAgICAgc2VjcmV0TmFtZT17c3RhdGUuc2VjcmV0TmFtZX1cbiAgICAgICAgICBvblRvZ2dsZVVzZUV4aXN0aW5nU2VjcmV0PXtoYW5kbGVUb2dnbGVVc2VFeGlzdGluZ1NlY3JldH1cbiAgICAgICAgICBvblNlY3JldE5hbWVDaGFuZ2U9e2hhbmRsZVNlY3JldE5hbWVDaGFuZ2V9XG4gICAgICAgICAgb25TdWJtaXQ9e2hhbmRsZVN1Ym1pdH1cbiAgICAgICAgLz5cbiAgICAgIClcbiAgICBjYXNlICdhcGkta2V5JzpcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxBcGlLZXlTdGVwXG4gICAgICAgICAgZXhpc3RpbmdBcGlLZXk9e2V4aXN0aW5nQXBpS2V5fVxuICAgICAgICAgIHVzZUV4aXN0aW5nS2V5PXtzdGF0ZS51c2VFeGlzdGluZ0tleX1cbiAgICAgICAgICBhcGlLZXlPck9BdXRoVG9rZW49e3N0YXRlLmFwaUtleU9yT0F1dGhUb2tlbn1cbiAgICAgICAgICBvbkFwaUtleUNoYW5nZT17aGFuZGxlQXBpS2V5Q2hhbmdlfVxuICAgICAgICAgIG9uVG9nZ2xlVXNlRXhpc3RpbmdLZXk9e2hhbmRsZVRvZ2dsZVVzZUV4aXN0aW5nS2V5fVxuICAgICAgICAgIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICAgICAgb25DcmVhdGVPQXV0aFRva2VuPXtcbiAgICAgICAgICAgIGlzQW50aHJvcGljQXV0aEVuYWJsZWQoKSA/IGhhbmRsZUNyZWF0ZU9BdXRoVG9rZW4gOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgc2VsZWN0ZWRPcHRpb249e3N0YXRlLnNlbGVjdGVkQXBpS2V5T3B0aW9ufVxuICAgICAgICAgIG9uU2VsZWN0T3B0aW9uPXtoYW5kbGVBcGlLZXlPcHRpb25DaGFuZ2V9XG4gICAgICAgIC8+XG4gICAgICApXG4gICAgY2FzZSAnY3JlYXRpbmcnOlxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPENyZWF0aW5nU3RlcFxuICAgICAgICAgIGN1cnJlbnRXb3JrZmxvd0luc3RhbGxTdGVwPXtzdGF0ZS5jdXJyZW50V29ya2Zsb3dJbnN0YWxsU3RlcH1cbiAgICAgICAgICBzZWNyZXRFeGlzdHM9e3N0YXRlLnNlY3JldEV4aXN0c31cbiAgICAgICAgICB1c2VFeGlzdGluZ1NlY3JldD17c3RhdGUudXNlRXhpc3RpbmdTZWNyZXR9XG4gICAgICAgICAgc2VjcmV0TmFtZT17c3RhdGUuc2VjcmV0TmFtZX1cbiAgICAgICAgICBza2lwV29ya2Zsb3c9e3N0YXRlLndvcmtmbG93QWN0aW9uID09PSAnc2tpcCd9XG4gICAgICAgICAgc2VsZWN0ZWRXb3JrZmxvd3M9e3N0YXRlLnNlbGVjdGVkV29ya2Zsb3dzfVxuICAgICAgICAvPlxuICAgICAgKVxuICAgIGNhc2UgJ3N1Y2Nlc3MnOlxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEJveCB0YWJJbmRleD17MH0gYXV0b0ZvY3VzIG9uS2V5RG93bj17aGFuZGxlRGlzbWlzc0tleURvd259PlxuICAgICAgICAgIDxTdWNjZXNzU3RlcFxuICAgICAgICAgICAgc2VjcmV0RXhpc3RzPXtzdGF0ZS5zZWNyZXRFeGlzdHN9XG4gICAgICAgICAgICB1c2VFeGlzdGluZ1NlY3JldD17c3RhdGUudXNlRXhpc3RpbmdTZWNyZXR9XG4gICAgICAgICAgICBzZWNyZXROYW1lPXtzdGF0ZS5zZWNyZXROYW1lfVxuICAgICAgICAgICAgc2tpcFdvcmtmbG93PXtzdGF0ZS53b3JrZmxvd0FjdGlvbiA9PT0gJ3NraXAnfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvQm94PlxuICAgICAgKVxuICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxCb3ggdGFiSW5kZXg9ezB9IGF1dG9Gb2N1cyBvbktleURvd249e2hhbmRsZURpc21pc3NLZXlEb3dufT5cbiAgICAgICAgICA8RXJyb3JTdGVwXG4gICAgICAgICAgICBlcnJvcj17c3RhdGUuZXJyb3J9XG4gICAgICAgICAgICBlcnJvclJlYXNvbj17c3RhdGUuZXJyb3JSZWFzb259XG4gICAgICAgICAgICBlcnJvckluc3RydWN0aW9ucz17c3RhdGUuZXJyb3JJbnN0cnVjdGlvbnN9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9Cb3g+XG4gICAgICApXG4gICAgY2FzZSAnc2VsZWN0LXdvcmtmbG93cyc6XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8V29ya2Zsb3dNdWx0aXNlbGVjdERpYWxvZ1xuICAgICAgICAgIGRlZmF1bHRTZWxlY3Rpb25zPXtzdGF0ZS5zZWxlY3RlZFdvcmtmbG93c31cbiAgICAgICAgICBvblN1Ym1pdD17c2VsZWN0ZWRXb3JrZmxvd3MgPT4ge1xuICAgICAgICAgICAgbG9nRXZlbnQoJ3Rlbmd1X2luc3RhbGxfZ2l0aHViX2FwcF9zdGVwX2NvbXBsZXRlZCcsIHtcbiAgICAgICAgICAgICAgc3RlcDogJ3NlbGVjdC13b3JrZmxvd3MnIGFzIEFuYWx5dGljc01ldGFkYXRhX0lfVkVSSUZJRURfVEhJU19JU19OT1RfQ09ERV9PUl9GSUxFUEFUSFMsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgc2V0U3RhdGUocHJldiA9PiAoe1xuICAgICAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgICAgICBzZWxlY3RlZFdvcmtmbG93cyxcbiAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdXNlciBoYXMgZXhpc3RpbmcgbG9jYWwgQVBJIGtleVxuICAgICAgICAgICAgaWYgKGV4aXN0aW5nQXBpS2V5KSB7XG4gICAgICAgICAgICAgIHZvaWQgY2hlY2tFeGlzdGluZ1NlY3JldCgpXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBObyBsb2NhbCBrZXksIGdvIHN0cmFpZ2h0IHRvIEFQSSBrZXkgc3RlcFxuICAgICAgICAgICAgICBzZXRTdGF0ZShwcmV2ID0+ICh7IC4uLnByZXYsIHN0ZXA6ICdhcGkta2V5JyB9KSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgKVxuICAgIGNhc2UgJ29hdXRoLWZsb3cnOlxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPE9BdXRoRmxvd1N0ZXBcbiAgICAgICAgICBvblN1Y2Nlc3M9e2hhbmRsZU9BdXRoU3VjY2Vzc31cbiAgICAgICAgICBvbkNhbmNlbD17aGFuZGxlT0F1dGhDYW5jZWx9XG4gICAgICAgIC8+XG4gICAgICApXG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNhbGwoXG4gIG9uRG9uZTogTG9jYWxKU1hDb21tYW5kT25Eb25lLFxuKTogUHJvbWlzZTxSZWFjdC5SZWFjdE5vZGU+IHtcbiAgcmV0dXJuIDxJbnN0YWxsR2l0SHViQXBwIG9uRG9uZT17b25Eb25lfSAvPlxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxLQUFLLFFBQVEsT0FBTztBQUM3QixPQUFPQyxLQUFLLElBQUlDLFdBQVcsRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDcEQsU0FDRSxLQUFLQywwREFBMEQsRUFDL0RDLFFBQVEsUUFDSCxpQ0FBaUM7QUFDeEMsU0FBU0MseUJBQXlCLFFBQVEsK0NBQStDO0FBQ3pGLFNBQVNDLDRCQUE0QixRQUFRLCtCQUErQjtBQUM1RSxTQUFTQyw4QkFBOEIsUUFBUSwrQ0FBK0M7QUFDOUYsY0FBY0MsYUFBYSxRQUFRLG9DQUFvQztBQUN2RSxTQUFTQyxHQUFHLFFBQVEsY0FBYztBQUNsQyxjQUFjQyxxQkFBcUIsUUFBUSx3QkFBd0I7QUFDbkUsU0FBU0Msa0JBQWtCLEVBQUVDLHNCQUFzQixRQUFRLHFCQUFxQjtBQUNoRixTQUFTQyxXQUFXLFFBQVEsd0JBQXdCO0FBQ3BELFNBQVNDLGVBQWUsUUFBUSxnQ0FBZ0M7QUFDaEUsU0FBU0MsYUFBYSxRQUFRLG9CQUFvQjtBQUNsRCxTQUFTQyxNQUFNLFFBQVEsNEJBQTRCO0FBQ25ELFNBQVNDLFVBQVUsUUFBUSxpQkFBaUI7QUFDNUMsU0FBU0MsdUJBQXVCLFFBQVEsOEJBQThCO0FBQ3RFLFNBQVNDLGVBQWUsUUFBUSxzQkFBc0I7QUFDdEQsU0FBU0MsY0FBYyxRQUFRLHFCQUFxQjtBQUNwRCxTQUFTQyxZQUFZLFFBQVEsbUJBQW1CO0FBQ2hELFNBQVNDLFNBQVMsUUFBUSxnQkFBZ0I7QUFDMUMsU0FBU0Msb0JBQW9CLFFBQVEsMkJBQTJCO0FBQ2hFLFNBQVNDLGNBQWMsUUFBUSxxQkFBcUI7QUFDcEQsU0FBU0MsYUFBYSxRQUFRLG9CQUFvQjtBQUNsRCxTQUFTQyxXQUFXLFFBQVEsa0JBQWtCO0FBQzlDLFNBQVNDLGtCQUFrQixRQUFRLHlCQUF5QjtBQUM1RCxjQUFjQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsUUFBUSxRQUFRLFlBQVk7QUFDMUQsU0FBU0MsWUFBWSxRQUFRLG1CQUFtQjtBQUVoRCxNQUFNQyxhQUFhLEVBQUVKLEtBQUssR0FBRztFQUMzQkssSUFBSSxFQUFFLFVBQVU7RUFDaEJDLGdCQUFnQixFQUFFLEVBQUU7RUFDcEJDLFdBQVcsRUFBRSxFQUFFO0VBQ2ZDLGNBQWMsRUFBRSxLQUFLO0VBQUU7RUFDdkJDLGtCQUFrQixFQUFFLEVBQUU7RUFDdEJDLGNBQWMsRUFBRSxJQUFJO0VBQ3BCQywwQkFBMEIsRUFBRSxDQUFDO0VBQzdCQyxRQUFRLEVBQUUsRUFBRTtFQUNaQyxZQUFZLEVBQUUsS0FBSztFQUNuQkMsVUFBVSxFQUFFLG1CQUFtQjtFQUMvQkMsaUJBQWlCLEVBQUUsSUFBSTtFQUN2QkMsY0FBYyxFQUFFLEtBQUs7RUFDckJDLGlCQUFpQixFQUFFLENBQUMsUUFBUSxFQUFFLGVBQWUsQ0FBQyxJQUFJZixRQUFRLEVBQUU7RUFDNURnQixvQkFBb0IsRUFBRSxLQUFLLElBQUksVUFBVSxHQUFHLEtBQUssR0FBRyxPQUFPO0VBQzNEQyxRQUFRLEVBQUU7QUFDWixDQUFDO0FBRUQsU0FBU0MsZ0JBQWdCQSxDQUFDQyxLQUFLLEVBQUU7RUFDL0JDLE1BQU0sRUFBRSxDQUFDQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSTtBQUNuQyxDQUFDLENBQUMsRUFBRW5ELEtBQUssQ0FBQ29ELFNBQVMsQ0FBQztFQUNsQixNQUFNLENBQUNDLGNBQWMsQ0FBQyxHQUFHbkQsUUFBUSxDQUFDLE1BQU1TLGtCQUFrQixDQUFDLENBQUMsQ0FBQztFQUM3RCxNQUFNLENBQUMyQyxLQUFLLEVBQUVDLFFBQVEsQ0FBQyxHQUFHckQsUUFBUSxDQUFDO0lBQ2pDLEdBQUc4QixhQUFhO0lBQ2hCTSxjQUFjLEVBQUUsQ0FBQyxDQUFDZSxjQUFjO0lBQ2hDUCxvQkFBb0IsRUFBRSxDQUFDTyxjQUFjLEdBQ2pDLFVBQVUsR0FDVnpDLHNCQUFzQixDQUFDLENBQUMsR0FDdEIsT0FBTyxHQUNQLEtBQUssS0FBSyxVQUFVLEdBQUcsS0FBSyxHQUFHO0VBQ3ZDLENBQUMsQ0FBQztFQUNGTCw4QkFBOEIsQ0FBQyxDQUFDO0VBRWhDUCxLQUFLLENBQUN3RCxTQUFTLENBQUMsTUFBTTtJQUNwQnBELFFBQVEsQ0FBQyxrQ0FBa0MsRUFBRSxDQUFDLENBQUMsQ0FBQztFQUNsRCxDQUFDLEVBQUUsRUFBRSxDQUFDO0VBRU4sTUFBTXFELGNBQWMsR0FBR3hELFdBQVcsQ0FBQyxZQUFZO0lBQzdDLE1BQU11QyxRQUFRLEVBQUVYLE9BQU8sRUFBRSxHQUFHLEVBQUU7O0lBRTlCO0lBQ0EsTUFBTTZCLGVBQWUsR0FBRyxNQUFNM0QsS0FBSyxDQUFDLGNBQWMsRUFBRTtNQUNsRDRELEtBQUssRUFBRSxJQUFJO01BQ1hDLE1BQU0sRUFBRTtJQUNWLENBQUMsQ0FBQztJQUNGLElBQUlGLGVBQWUsQ0FBQ0csUUFBUSxLQUFLLENBQUMsRUFBRTtNQUNsQ3JCLFFBQVEsQ0FBQ3NCLElBQUksQ0FBQztRQUNaQyxLQUFLLEVBQUUsc0JBQXNCO1FBQzdCWixPQUFPLEVBQ0wsZ0VBQWdFO1FBQ2xFYSxZQUFZLEVBQUUsQ0FDWixpREFBaUQsRUFDakQsd0JBQXdCLEVBQ3hCLHlDQUF5QyxFQUN6QyxpRkFBaUY7TUFFckYsQ0FBQyxDQUFDO0lBQ0o7O0lBRUE7SUFDQSxNQUFNQyxVQUFVLEdBQUcsTUFBTWxFLEtBQUssQ0FBQyxtQkFBbUIsRUFBRTtNQUNsRDRELEtBQUssRUFBRSxJQUFJO01BQ1hDLE1BQU0sRUFBRTtJQUNWLENBQUMsQ0FBQztJQUNGLElBQUlLLFVBQVUsQ0FBQ0osUUFBUSxLQUFLLENBQUMsRUFBRTtNQUM3QnJCLFFBQVEsQ0FBQ3NCLElBQUksQ0FBQztRQUNaQyxLQUFLLEVBQUUsOEJBQThCO1FBQ3JDWixPQUFPLEVBQUUsaURBQWlEO1FBQzFEYSxZQUFZLEVBQUUsQ0FDWixvQkFBb0IsRUFDcEIsZ0RBQWdELEVBQ2hELHVFQUF1RTtNQUUzRSxDQUFDLENBQUM7SUFDSixDQUFDLE1BQU07TUFDTDtNQUNBLE1BQU1FLGdCQUFnQixHQUFHRCxVQUFVLENBQUNFLE1BQU0sQ0FBQ0MsS0FBSyxDQUFDLG1CQUFtQixDQUFDO01BQ3JFLElBQUlGLGdCQUFnQixFQUFFO1FBQ3BCLE1BQU1HLE1BQU0sR0FBR0gsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLE1BQU1JLGFBQWEsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFO1FBRWxDLElBQUksQ0FBQ0QsTUFBTSxDQUFDRSxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7VUFDNUJELGFBQWEsQ0FBQ1IsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUM1QjtRQUNBLElBQUksQ0FBQ08sTUFBTSxDQUFDRSxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUU7VUFDaENELGFBQWEsQ0FBQ1IsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNoQztRQUVBLElBQUlRLGFBQWEsQ0FBQ0UsTUFBTSxHQUFHLENBQUMsRUFBRTtVQUM1QjtVQUNBakIsUUFBUSxDQUFDa0IsSUFBSSxLQUFLO1lBQ2hCLEdBQUdBLElBQUk7WUFDUHhDLElBQUksRUFBRSxPQUFPO1lBQ2J5QyxLQUFLLEVBQUUsK0NBQStDSixhQUFhLENBQUNLLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRztZQUNqRkMsV0FBVyxFQUFFLHlCQUF5QjtZQUN0Q0MsaUJBQWlCLEVBQUUsQ0FDakIsa0RBQWtEUCxhQUFhLENBQUNLLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSzNELE1BQU0sQ0FBQ3NELGFBQWEsQ0FBQ0UsTUFBTSxFQUFFLE9BQU8sQ0FBQywrQ0FBK0MsRUFDeEssRUFBRSxFQUNGLG1CQUFtQixFQUNuQixrREFBa0QsRUFDbEQsRUFBRSxFQUNGLDBFQUEwRTtVQUU5RSxDQUFDLENBQUMsQ0FBQztVQUNIO1FBQ0Y7TUFDRjtJQUNGOztJQUVBO0lBQ0EsTUFBTXJDLFdBQVcsR0FBRyxDQUFDLE1BQU1wQixhQUFhLENBQUMsQ0FBQyxLQUFLLEVBQUU7SUFFakRYLFFBQVEsQ0FBQyx5Q0FBeUMsRUFBRTtNQUNsRDZCLElBQUksRUFBRSxVQUFVLElBQUk5QjtJQUN0QixDQUFDLENBQUM7SUFFRm9ELFFBQVEsQ0FBQ2tCLE1BQUksS0FBSztNQUNoQixHQUFHQSxNQUFJO01BQ1BqQyxRQUFRO01BQ1JMLFdBQVc7TUFDWEQsZ0JBQWdCLEVBQUVDLFdBQVc7TUFDN0JDLGNBQWMsRUFBRSxDQUFDLENBQUNELFdBQVc7TUFBRTtNQUMvQkYsSUFBSSxFQUFFTyxRQUFRLENBQUNnQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLFVBQVUsR0FBRztJQUMzQyxDQUFDLENBQUMsQ0FBQztFQUNMLENBQUMsRUFBRSxFQUFFLENBQUM7RUFFTnhFLEtBQUssQ0FBQ3dELFNBQVMsQ0FBQyxNQUFNO0lBQ3BCLElBQUlGLEtBQUssQ0FBQ3JCLElBQUksS0FBSyxVQUFVLEVBQUU7TUFDN0IsS0FBS3dCLGNBQWMsQ0FBQyxDQUFDO0lBQ3ZCO0VBQ0YsQ0FBQyxFQUFFLENBQUNILEtBQUssQ0FBQ3JCLElBQUksRUFBRXdCLGNBQWMsQ0FBQyxDQUFDO0VBRWhDLE1BQU1xQixxQkFBcUIsR0FBRzdFLFdBQVcsQ0FDdkMsT0FBT29DLGtCQUFrQixFQUFFLE1BQU0sR0FBRyxJQUFJLEVBQUVLLFVBQVUsRUFBRSxNQUFNLEtBQUs7SUFDL0RhLFFBQVEsQ0FBQ2tCLE1BQUksS0FBSztNQUNoQixHQUFHQSxNQUFJO01BQ1B4QyxJQUFJLEVBQUUsVUFBVTtNQUNoQk0sMEJBQTBCLEVBQUU7SUFDOUIsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJO01BQ0YsTUFBTVosa0JBQWtCLENBQ3RCMkIsS0FBSyxDQUFDcEIsZ0JBQWdCLEVBQ3RCRyxrQkFBa0IsRUFDbEJLLFVBQVUsRUFDVixNQUFNO1FBQ0phLFFBQVEsQ0FBQ2tCLE1BQUksS0FBSztVQUNoQixHQUFHQSxNQUFJO1VBQ1BsQywwQkFBMEIsRUFBRWtDLE1BQUksQ0FBQ2xDLDBCQUEwQixHQUFHO1FBQ2hFLENBQUMsQ0FBQyxDQUFDO01BQ0wsQ0FBQyxFQUNEZSxLQUFLLENBQUN5QixjQUFjLEtBQUssTUFBTSxFQUMvQnpCLEtBQUssQ0FBQ1QsaUJBQWlCLEVBQ3ZCUyxLQUFLLENBQUNQLFFBQVEsRUFDZDtRQUNFWCxjQUFjLEVBQUVrQixLQUFLLENBQUNsQixjQUFjO1FBQ3BDUSxjQUFjLEVBQUVVLEtBQUssQ0FBQ1YsY0FBYztRQUNwQ0gsWUFBWSxFQUFFYSxLQUFLLENBQUNiO01BQ3RCLENBQ0YsQ0FBQztNQUNEckMsUUFBUSxDQUFDLHlDQUF5QyxFQUFFO1FBQ2xENkIsSUFBSSxFQUFFLFVBQVUsSUFBSTlCO01BQ3RCLENBQUMsQ0FBQztNQUNGb0QsUUFBUSxDQUFDa0IsTUFBSSxLQUFLO1FBQUUsR0FBR0EsTUFBSTtRQUFFeEMsSUFBSSxFQUFFO01BQVUsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQyxDQUFDLE9BQU95QyxLQUFLLEVBQUU7TUFDZCxNQUFNTSxZQUFZLEdBQ2hCTixLQUFLLFlBQVlPLEtBQUssR0FDbEJQLEtBQUssQ0FBQ3ZCLE9BQU8sR0FDYixpQ0FBaUM7TUFFdkMsSUFBSTZCLFlBQVksQ0FBQ1QsUUFBUSxDQUFDLDhCQUE4QixDQUFDLEVBQUU7UUFDekRuRSxRQUFRLENBQUMsZ0NBQWdDLEVBQUU7VUFDekM4RSxNQUFNLEVBQ0osc0JBQXNCLElBQUkvRTtRQUM5QixDQUFDLENBQUM7UUFDRm9ELFFBQVEsQ0FBQ2tCLE1BQUksS0FBSztVQUNoQixHQUFHQSxNQUFJO1VBQ1B4QyxJQUFJLEVBQUUsT0FBTztVQUNieUMsS0FBSyxFQUFFLDJEQUEyRDtVQUNsRUUsV0FBVyxFQUFFLHdCQUF3QjtVQUNyQ0MsaUJBQWlCLEVBQUUsQ0FDakIsc0RBQXNELEVBQ3RELGlCQUFpQixFQUNqQiwwREFBMEQsRUFDMUQsaUVBQWlFLEVBQ2pFLFFBQVF2RSw0QkFBNEIsRUFBRTtRQUUxQyxDQUFDLENBQUMsQ0FBQztNQUNMLENBQUMsTUFBTTtRQUNMRixRQUFRLENBQUMsZ0NBQWdDLEVBQUU7VUFDekM4RSxNQUFNLEVBQ0osNkJBQTZCLElBQUkvRTtRQUNyQyxDQUFDLENBQUM7UUFFRm9ELFFBQVEsQ0FBQ2tCLE1BQUksS0FBSztVQUNoQixHQUFHQSxNQUFJO1VBQ1B4QyxJQUFJLEVBQUUsT0FBTztVQUNieUMsS0FBSyxFQUFFTSxZQUFZO1VBQ25CSixXQUFXLEVBQUUsNkJBQTZCO1VBQzFDQyxpQkFBaUIsRUFBRTtRQUNyQixDQUFDLENBQUMsQ0FBQztNQUNMO0lBQ0Y7RUFDRixDQUFDLEVBQ0QsQ0FDRXZCLEtBQUssQ0FBQ3BCLGdCQUFnQixFQUN0Qm9CLEtBQUssQ0FBQ3lCLGNBQWMsRUFDcEJ6QixLQUFLLENBQUNULGlCQUFpQixFQUN2QlMsS0FBSyxDQUFDbEIsY0FBYyxFQUNwQmtCLEtBQUssQ0FBQ1YsY0FBYyxFQUNwQlUsS0FBSyxDQUFDYixZQUFZLEVBQ2xCYSxLQUFLLENBQUNQLFFBQVEsQ0FFbEIsQ0FBQztFQUVELGVBQWVvQyx5QkFBeUJBLENBQUEsRUFBRztJQUN6QyxNQUFNQyxVQUFVLEdBQUcsZ0NBQWdDO0lBQ25ELE1BQU12RSxXQUFXLENBQUN1RSxVQUFVLENBQUM7RUFDL0I7RUFFQSxlQUFlQywwQkFBMEJBLENBQ3ZDQyxRQUFRLEVBQUUsTUFBTSxDQUNqQixFQUFFQyxPQUFPLENBQUM7SUFBRUMsU0FBUyxFQUFFLE9BQU87SUFBRWQsS0FBSyxDQUFDLEVBQUUsTUFBTTtFQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pELElBQUk7TUFDRixNQUFNZSxNQUFNLEdBQUcsTUFBTTNFLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FDekMsS0FBSyxFQUNMLFNBQVN3RSxRQUFRLEVBQUUsRUFDbkIsTUFBTSxFQUNOLG9CQUFvQixDQUNyQixDQUFDO01BRUYsSUFBSUcsTUFBTSxDQUFDQyxJQUFJLEtBQUssQ0FBQyxFQUFFO1FBQ3JCLE1BQU1DLFFBQVEsR0FBR0YsTUFBTSxDQUFDdEIsTUFBTSxDQUFDeUIsSUFBSSxDQUFDLENBQUMsS0FBSyxNQUFNO1FBQ2hELE9BQU87VUFBRUosU0FBUyxFQUFFRztRQUFTLENBQUM7TUFDaEM7TUFFQSxJQUNFRixNQUFNLENBQUNJLE1BQU0sQ0FBQ3RCLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFDN0JrQixNQUFNLENBQUNJLE1BQU0sQ0FBQ3RCLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFDbkM7UUFDQSxPQUFPO1VBQ0xpQixTQUFTLEVBQUUsS0FBSztVQUNoQmQsS0FBSyxFQUFFO1FBQ1QsQ0FBQztNQUNIO01BRUEsT0FBTztRQUFFYyxTQUFTLEVBQUU7TUFBTSxDQUFDO0lBQzdCLENBQUMsQ0FBQyxNQUFNO01BQ04sT0FBTztRQUFFQSxTQUFTLEVBQUU7TUFBTSxDQUFDO0lBQzdCO0VBQ0Y7RUFFQSxlQUFlTSx5QkFBeUJBLENBQUNSLFVBQVEsRUFBRSxNQUFNLENBQUMsRUFBRUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNFLE1BQU1RLGVBQWUsR0FBRyxNQUFNakYsZUFBZSxDQUFDLElBQUksRUFBRSxDQUNsRCxLQUFLLEVBQ0wsU0FBU3dFLFVBQVEsd0NBQXdDLEVBQ3pELE1BQU0sRUFDTixNQUFNLENBQ1AsQ0FBQztJQUVGLE9BQU9TLGVBQWUsQ0FBQ0wsSUFBSSxLQUFLLENBQUM7RUFDbkM7RUFFQSxlQUFlTSxtQkFBbUJBLENBQUEsRUFBRztJQUNuQyxNQUFNQyxrQkFBa0IsR0FBRyxNQUFNbkYsZUFBZSxDQUFDLElBQUksRUFBRSxDQUNyRCxRQUFRLEVBQ1IsTUFBTSxFQUNOLE9BQU8sRUFDUCxTQUFTLEVBQ1QsUUFBUSxFQUNSd0MsS0FBSyxDQUFDcEIsZ0JBQWdCLENBQ3ZCLENBQUM7SUFFRixJQUFJK0Qsa0JBQWtCLENBQUNQLElBQUksS0FBSyxDQUFDLEVBQUU7TUFDakMsTUFBTVEsS0FBSyxHQUFHRCxrQkFBa0IsQ0FBQzlCLE1BQU0sQ0FBQ2dDLEtBQUssQ0FBQyxJQUFJLENBQUM7TUFDbkQsTUFBTUMsZUFBZSxHQUFHRixLQUFLLENBQUNHLElBQUksQ0FBQyxDQUFDQyxJQUFJLEVBQUUsTUFBTSxLQUFLO1FBQ25ELE9BQU8sdUJBQXVCLENBQUNDLElBQUksQ0FBQ0QsSUFBSSxDQUFDO01BQzNDLENBQUMsQ0FBQztNQUVGLElBQUlGLGVBQWUsRUFBRTtRQUNuQjdDLFFBQVEsQ0FBQ2tCLE1BQUksS0FBSztVQUNoQixHQUFHQSxNQUFJO1VBQ1BoQyxZQUFZLEVBQUUsSUFBSTtVQUNsQlIsSUFBSSxFQUFFO1FBQ1IsQ0FBQyxDQUFDLENBQUM7TUFDTCxDQUFDLE1BQU07UUFDTDtRQUNBLElBQUlvQixjQUFjLEVBQUU7VUFDbEI7VUFDQUUsUUFBUSxDQUFDa0IsTUFBSSxLQUFLO1lBQ2hCLEdBQUdBLE1BQUk7WUFDUHBDLGtCQUFrQixFQUFFZ0IsY0FBYztZQUNsQ2YsY0FBYyxFQUFFO1VBQ2xCLENBQUMsQ0FBQyxDQUFDO1VBQ0gsTUFBTXdDLHFCQUFxQixDQUFDekIsY0FBYyxFQUFFQyxLQUFLLENBQUNaLFVBQVUsQ0FBQztRQUMvRCxDQUFDLE1BQU07VUFDTDtVQUNBYSxRQUFRLENBQUNrQixNQUFJLEtBQUs7WUFBRSxHQUFHQSxNQUFJO1lBQUV4QyxJQUFJLEVBQUU7VUFBVSxDQUFDLENBQUMsQ0FBQztRQUNsRDtNQUNGO0lBQ0YsQ0FBQyxNQUFNO01BQ0w7TUFDQSxJQUFJb0IsY0FBYyxFQUFFO1FBQ2xCO1FBQ0FFLFFBQVEsQ0FBQ2tCLE1BQUksS0FBSztVQUNoQixHQUFHQSxNQUFJO1VBQ1BwQyxrQkFBa0IsRUFBRWdCLGNBQWM7VUFDbENmLGNBQWMsRUFBRTtRQUNsQixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU13QyxxQkFBcUIsQ0FBQ3pCLGNBQWMsRUFBRUMsS0FBSyxDQUFDWixVQUFVLENBQUM7TUFDL0QsQ0FBQyxNQUFNO1FBQ0w7UUFDQWEsUUFBUSxDQUFDa0IsT0FBSSxLQUFLO1VBQUUsR0FBR0EsT0FBSTtVQUFFeEMsSUFBSSxFQUFFO1FBQVUsQ0FBQyxDQUFDLENBQUM7TUFDbEQ7SUFDRjtFQUNGO0VBRUEsTUFBTXVFLFlBQVksR0FBRyxNQUFBQSxDQUFBLEtBQVk7SUFDL0IsSUFBSWxELEtBQUssQ0FBQ3JCLElBQUksS0FBSyxVQUFVLEVBQUU7TUFDN0I3QixRQUFRLENBQUMseUNBQXlDLEVBQUU7UUFDbEQ2QixJQUFJLEVBQUUsVUFBVSxJQUFJOUI7TUFDdEIsQ0FBQyxDQUFDO01BQ0ZvRCxRQUFRLENBQUNrQixPQUFJLEtBQUs7UUFBRSxHQUFHQSxPQUFJO1FBQUV4QyxJQUFJLEVBQUU7TUFBYyxDQUFDLENBQUMsQ0FBQztNQUNwRHdFLFVBQVUsQ0FBQ3RCLHlCQUF5QixFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDLE1BQU0sSUFBSTdCLEtBQUssQ0FBQ3JCLElBQUksS0FBSyxhQUFhLEVBQUU7TUFDdkMsSUFBSXFELFVBQVEsR0FBR2hDLEtBQUssQ0FBQ2xCLGNBQWMsR0FDL0JrQixLQUFLLENBQUNuQixXQUFXLEdBQ2pCbUIsS0FBSyxDQUFDcEIsZ0JBQWdCO01BRTFCLElBQUksQ0FBQ29ELFVBQVEsQ0FBQ00sSUFBSSxDQUFDLENBQUMsRUFBRTtRQUNwQjtNQUNGO01BRUEsTUFBTWMsWUFBWSxFQUFFN0UsT0FBTyxFQUFFLEdBQUcsRUFBRTtNQUVsQyxJQUFJeUQsVUFBUSxDQUFDZixRQUFRLENBQUMsWUFBWSxDQUFDLEVBQUU7UUFDbkMsTUFBTUgsS0FBSyxHQUFHa0IsVUFBUSxDQUFDbEIsS0FBSyxDQUFDLHdDQUF3QyxDQUFDO1FBQ3RFLElBQUksQ0FBQ0EsS0FBSyxFQUFFO1VBQ1ZzQyxZQUFZLENBQUM1QyxJQUFJLENBQUM7WUFDaEJDLEtBQUssRUFBRSwyQkFBMkI7WUFDbENaLE9BQU8sRUFBRSxrREFBa0Q7WUFDM0RhLFlBQVksRUFBRSxDQUNaLHlEQUF5RCxFQUN6RCxnQ0FBZ0M7VUFFcEMsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxNQUFNO1VBQ0xzQixVQUFRLEdBQUdsQixLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUV1QyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUU7UUFDbEQ7TUFDRjtNQUVBLElBQUksQ0FBQ3JCLFVBQVEsQ0FBQ2YsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQzNCbUMsWUFBWSxDQUFDNUMsSUFBSSxDQUFDO1VBQ2hCQyxLQUFLLEVBQUUsMkJBQTJCO1VBQ2xDWixPQUFPLEVBQUUsNkNBQTZDO1VBQ3REYSxZQUFZLEVBQUUsQ0FDWix3QkFBd0IsRUFDeEIsZ0NBQWdDO1FBRXBDLENBQUMsQ0FBQztNQUNKO01BRUEsTUFBTTRDLGVBQWUsR0FBRyxNQUFNdkIsMEJBQTBCLENBQUNDLFVBQVEsQ0FBQztNQUVsRSxJQUFJc0IsZUFBZSxDQUFDbEMsS0FBSyxLQUFLLHNCQUFzQixFQUFFO1FBQ3BEZ0MsWUFBWSxDQUFDNUMsSUFBSSxDQUFDO1VBQ2hCQyxLQUFLLEVBQUUsc0JBQXNCO1VBQzdCWixPQUFPLEVBQUUsY0FBY21DLFVBQVEsMENBQTBDO1VBQ3pFdEIsWUFBWSxFQUFFLENBQ1osOENBQThDc0IsVUFBUSxFQUFFLEVBQ3hELDJDQUEyQyxFQUMzQyw0RUFBNEUsRUFDNUUsaUZBQWlGO1FBRXJGLENBQUMsQ0FBQztNQUNKLENBQUMsTUFBTSxJQUFJLENBQUNzQixlQUFlLENBQUNwQixTQUFTLEVBQUU7UUFDckNrQixZQUFZLENBQUM1QyxJQUFJLENBQUM7VUFDaEJDLEtBQUssRUFBRSw0QkFBNEI7VUFDbkNaLE9BQU8sRUFBRSx1Q0FBdUNtQyxVQUFRLDRCQUE0QjtVQUNwRnRCLFlBQVksRUFBRSxDQUNaLDJEQUEyRCxFQUMzRCwyREFBMkQsRUFDM0QsMERBQTBEO1FBRTlELENBQUMsQ0FBQztNQUNKO01BRUEsTUFBTXBCLGNBQWMsR0FBRyxNQUFNa0QseUJBQXlCLENBQUNSLFVBQVEsQ0FBQztNQUVoRSxJQUFJb0IsWUFBWSxDQUFDbEMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUMzQixNQUFNcUMsV0FBVyxHQUFHLENBQUMsR0FBR3ZELEtBQUssQ0FBQ2QsUUFBUSxFQUFFLEdBQUdrRSxZQUFZLENBQUM7UUFDeERuRCxRQUFRLENBQUNrQixPQUFJLEtBQUs7VUFDaEIsR0FBR0EsT0FBSTtVQUNQdkMsZ0JBQWdCLEVBQUVvRCxVQUFRO1VBQzFCMUMsY0FBYztVQUNkSixRQUFRLEVBQUVxRSxXQUFXO1VBQ3JCNUUsSUFBSSxFQUFFO1FBQ1IsQ0FBQyxDQUFDLENBQUM7TUFDTCxDQUFDLE1BQU07UUFDTDdCLFFBQVEsQ0FBQyx5Q0FBeUMsRUFBRTtVQUNsRDZCLElBQUksRUFBRSxhQUFhLElBQUk5QjtRQUN6QixDQUFDLENBQUM7UUFDRm9ELFFBQVEsQ0FBQ2tCLE9BQUksS0FBSztVQUNoQixHQUFHQSxPQUFJO1VBQ1B2QyxnQkFBZ0IsRUFBRW9ELFVBQVE7VUFDMUIxQyxjQUFjO1VBQ2RYLElBQUksRUFBRTtRQUNSLENBQUMsQ0FBQyxDQUFDO1FBQ0h3RSxVQUFVLENBQUN0Qix5QkFBeUIsRUFBRSxDQUFDLENBQUM7TUFDMUM7SUFDRixDQUFDLE1BQU0sSUFBSTdCLEtBQUssQ0FBQ3JCLElBQUksS0FBSyxhQUFhLEVBQUU7TUFDdkM3QixRQUFRLENBQUMseUNBQXlDLEVBQUU7UUFDbEQ2QixJQUFJLEVBQUUsYUFBYSxJQUFJOUI7TUFDekIsQ0FBQyxDQUFDO01BQ0YsSUFBSW1ELEtBQUssQ0FBQ1YsY0FBYyxFQUFFO1FBQ3hCVyxRQUFRLENBQUNrQixPQUFJLEtBQUs7VUFBRSxHQUFHQSxPQUFJO1VBQUV4QyxJQUFJLEVBQUU7UUFBMEIsQ0FBQyxDQUFDLENBQUM7TUFDbEUsQ0FBQyxNQUFNO1FBQ0xzQixRQUFRLENBQUNrQixPQUFJLEtBQUs7VUFBRSxHQUFHQSxPQUFJO1VBQUV4QyxJQUFJLEVBQUU7UUFBbUIsQ0FBQyxDQUFDLENBQUM7TUFDM0Q7SUFDRixDQUFDLE1BQU0sSUFBSXFCLEtBQUssQ0FBQ3JCLElBQUksS0FBSyx5QkFBeUIsRUFBRTtNQUNuRDtJQUNGLENBQUMsTUFBTSxJQUFJcUIsS0FBSyxDQUFDckIsSUFBSSxLQUFLLGtCQUFrQixFQUFFO01BQzVDO01BQ0E7SUFDRixDQUFDLE1BQU0sSUFBSXFCLEtBQUssQ0FBQ3JCLElBQUksS0FBSyx1QkFBdUIsRUFBRTtNQUNqRDdCLFFBQVEsQ0FBQyx5Q0FBeUMsRUFBRTtRQUNsRDZCLElBQUksRUFBRSx1QkFBdUIsSUFBSTlCO01BQ25DLENBQUMsQ0FBQztNQUNGLElBQUltRCxLQUFLLENBQUNYLGlCQUFpQixFQUFFO1FBQzNCLE1BQU1tQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUV4QixLQUFLLENBQUNaLFVBQVUsQ0FBQztNQUNyRCxDQUFDLE1BQU07UUFDTDtRQUNBLE1BQU1vQyxxQkFBcUIsQ0FBQ3hCLEtBQUssQ0FBQ2pCLGtCQUFrQixFQUFFaUIsS0FBSyxDQUFDWixVQUFVLENBQUM7TUFDekU7SUFDRixDQUFDLE1BQU0sSUFBSVksS0FBSyxDQUFDckIsSUFBSSxLQUFLLFNBQVMsRUFBRTtNQUNuQztNQUNBO01BQ0EsSUFBSXFCLEtBQUssQ0FBQ1Isb0JBQW9CLEtBQUssT0FBTyxFQUFFO1FBQzFDO1FBQ0E7TUFDRjs7TUFFQTtNQUNBLE1BQU1nRSxXQUFXLEdBQ2Z4RCxLQUFLLENBQUNSLG9CQUFvQixLQUFLLFVBQVUsR0FDckNPLGNBQWMsR0FDZEMsS0FBSyxDQUFDakIsa0JBQWtCO01BRTlCLElBQUksQ0FBQ3lFLFdBQVcsRUFBRTtRQUNoQjFHLFFBQVEsQ0FBQyxnQ0FBZ0MsRUFBRTtVQUN6QzhFLE1BQU0sRUFDSixpQkFBaUIsSUFBSS9FO1FBQ3pCLENBQUMsQ0FBQztRQUNGb0QsUUFBUSxDQUFDa0IsT0FBSSxLQUFLO1VBQ2hCLEdBQUdBLE9BQUk7VUFDUHhDLElBQUksRUFBRSxPQUFPO1VBQ2J5QyxLQUFLLEVBQUU7UUFDVCxDQUFDLENBQUMsQ0FBQztRQUNIO01BQ0Y7O01BRUE7TUFDQW5CLFFBQVEsQ0FBQ2tCLE9BQUksS0FBSztRQUNoQixHQUFHQSxPQUFJO1FBQ1BwQyxrQkFBa0IsRUFBRXlFLFdBQVc7UUFDL0J4RSxjQUFjLEVBQUVnQixLQUFLLENBQUNSLG9CQUFvQixLQUFLO01BQ2pELENBQUMsQ0FBQyxDQUFDOztNQUVIO01BQ0EsTUFBTW1ELG9CQUFrQixHQUFHLE1BQU1uRixlQUFlLENBQUMsSUFBSSxFQUFFLENBQ3JELFFBQVEsRUFDUixNQUFNLEVBQ04sT0FBTyxFQUNQLFNBQVMsRUFDVCxRQUFRLEVBQ1J3QyxLQUFLLENBQUNwQixnQkFBZ0IsQ0FDdkIsQ0FBQztNQUVGLElBQUkrRCxvQkFBa0IsQ0FBQ1AsSUFBSSxLQUFLLENBQUMsRUFBRTtRQUNqQyxNQUFNUSxPQUFLLEdBQUdELG9CQUFrQixDQUFDOUIsTUFBTSxDQUFDZ0MsS0FBSyxDQUFDLElBQUksQ0FBQztRQUNuRCxNQUFNQyxpQkFBZSxHQUFHRixPQUFLLENBQUNHLElBQUksQ0FBQyxDQUFDQyxNQUFJLEVBQUUsTUFBTSxLQUFLO1VBQ25ELE9BQU8sdUJBQXVCLENBQUNDLElBQUksQ0FBQ0QsTUFBSSxDQUFDO1FBQzNDLENBQUMsQ0FBQztRQUVGLElBQUlGLGlCQUFlLEVBQUU7VUFDbkJoRyxRQUFRLENBQUMseUNBQXlDLEVBQUU7WUFDbEQ2QixJQUFJLEVBQUUsU0FBUyxJQUFJOUI7VUFDckIsQ0FBQyxDQUFDO1VBQ0ZvRCxRQUFRLENBQUNrQixPQUFJLEtBQUs7WUFDaEIsR0FBR0EsT0FBSTtZQUNQaEMsWUFBWSxFQUFFLElBQUk7WUFDbEJSLElBQUksRUFBRTtVQUNSLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxNQUFNO1VBQ0w3QixRQUFRLENBQUMseUNBQXlDLEVBQUU7WUFDbEQ2QixJQUFJLEVBQUUsU0FBUyxJQUFJOUI7VUFDckIsQ0FBQyxDQUFDO1VBQ0Y7VUFDQSxNQUFNMkUscUJBQXFCLENBQUNnQyxXQUFXLEVBQUV4RCxLQUFLLENBQUNaLFVBQVUsQ0FBQztRQUM1RDtNQUNGLENBQUMsTUFBTTtRQUNMdEMsUUFBUSxDQUFDLHlDQUF5QyxFQUFFO1VBQ2xENkIsSUFBSSxFQUFFLFNBQVMsSUFBSTlCO1FBQ3JCLENBQUMsQ0FBQztRQUNGO1FBQ0EsTUFBTTJFLHFCQUFxQixDQUFDZ0MsV0FBVyxFQUFFeEQsS0FBSyxDQUFDWixVQUFVLENBQUM7TUFDNUQ7SUFDRjtFQUNGLENBQUM7RUFFRCxNQUFNcUUsbUJBQW1CLEdBQUdBLENBQUNDLEtBQUssRUFBRSxNQUFNLEtBQUs7SUFDN0N6RCxRQUFRLENBQUNrQixPQUFJLEtBQUs7TUFBRSxHQUFHQSxPQUFJO01BQUV2QyxnQkFBZ0IsRUFBRThFO0lBQU0sQ0FBQyxDQUFDLENBQUM7RUFDMUQsQ0FBQztFQUVELE1BQU1DLGtCQUFrQixHQUFHQSxDQUFDRCxPQUFLLEVBQUUsTUFBTSxLQUFLO0lBQzVDekQsUUFBUSxDQUFDa0IsT0FBSSxLQUFLO01BQUUsR0FBR0EsT0FBSTtNQUFFcEMsa0JBQWtCLEVBQUUyRTtJQUFNLENBQUMsQ0FBQyxDQUFDO0VBQzVELENBQUM7RUFFRCxNQUFNRSx3QkFBd0IsR0FBR0EsQ0FBQ0MsTUFBTSxFQUFFLFVBQVUsR0FBRyxLQUFLLEdBQUcsT0FBTyxLQUFLO0lBQ3pFNUQsUUFBUSxDQUFDa0IsT0FBSSxLQUFLO01BQUUsR0FBR0EsT0FBSTtNQUFFM0Isb0JBQW9CLEVBQUVxRTtJQUFPLENBQUMsQ0FBQyxDQUFDO0VBQy9ELENBQUM7RUFFRCxNQUFNQyxzQkFBc0IsR0FBR25ILFdBQVcsQ0FBQyxNQUFNO0lBQy9DRyxRQUFRLENBQUMseUNBQXlDLEVBQUU7TUFDbEQ2QixJQUFJLEVBQUUsU0FBUyxJQUFJOUI7SUFDckIsQ0FBQyxDQUFDO0lBQ0ZvRCxRQUFRLENBQUNrQixPQUFJLEtBQUs7TUFBRSxHQUFHQSxPQUFJO01BQUV4QyxJQUFJLEVBQUU7SUFBYSxDQUFDLENBQUMsQ0FBQztFQUNyRCxDQUFDLEVBQUUsRUFBRSxDQUFDO0VBRU4sTUFBTW9GLGtCQUFrQixHQUFHcEgsV0FBVyxDQUNwQyxDQUFDcUgsS0FBSyxFQUFFLE1BQU0sS0FBSztJQUNqQmxILFFBQVEsQ0FBQyx5Q0FBeUMsRUFBRTtNQUNsRDZCLElBQUksRUFBRSxZQUFZLElBQUk5QjtJQUN4QixDQUFDLENBQUM7SUFDRm9ELFFBQVEsQ0FBQ2tCLE9BQUksS0FBSztNQUNoQixHQUFHQSxPQUFJO01BQ1BwQyxrQkFBa0IsRUFBRWlGLEtBQUs7TUFDekJoRixjQUFjLEVBQUUsS0FBSztNQUNyQkksVUFBVSxFQUFFLHlCQUF5QjtNQUNyQ0ssUUFBUSxFQUFFO0lBQ1osQ0FBQyxDQUFDLENBQUM7SUFDSCxLQUFLK0IscUJBQXFCLENBQUN3QyxLQUFLLEVBQUUseUJBQXlCLENBQUM7RUFDOUQsQ0FBQyxFQUNELENBQUN4QyxxQkFBcUIsQ0FDeEIsQ0FBQztFQUVELE1BQU15QyxpQkFBaUIsR0FBR3RILFdBQVcsQ0FBQyxNQUFNO0lBQzFDc0QsUUFBUSxDQUFDa0IsT0FBSSxLQUFLO01BQUUsR0FBR0EsT0FBSTtNQUFFeEMsSUFBSSxFQUFFO0lBQVUsQ0FBQyxDQUFDLENBQUM7RUFDbEQsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVOLE1BQU11RixzQkFBc0IsR0FBR0EsQ0FBQ1IsT0FBSyxFQUFFLE1BQU0sS0FBSztJQUNoRCxJQUFJQSxPQUFLLElBQUksQ0FBQyxpQkFBaUIsQ0FBQ1QsSUFBSSxDQUFDUyxPQUFLLENBQUMsRUFBRTtJQUM3Q3pELFFBQVEsQ0FBQ2tCLE9BQUksS0FBSztNQUFFLEdBQUdBLE9BQUk7TUFBRS9CLFVBQVUsRUFBRXNFO0lBQU0sQ0FBQyxDQUFDLENBQUM7RUFDcEQsQ0FBQztFQUVELE1BQU1TLDBCQUEwQixHQUFHQSxDQUFDckYsY0FBYyxFQUFFLE9BQU8sS0FBSztJQUM5RG1CLFFBQVEsQ0FBQ2tCLE9BQUksS0FBSztNQUNoQixHQUFHQSxPQUFJO01BQ1ByQyxjQUFjO01BQ2RGLGdCQUFnQixFQUFFRSxjQUFjLEdBQUdxQyxPQUFJLENBQUN0QyxXQUFXLEdBQUc7SUFDeEQsQ0FBQyxDQUFDLENBQUM7RUFDTCxDQUFDO0VBRUQsTUFBTXVGLDBCQUEwQixHQUFHQSxDQUFDcEYsY0FBYyxFQUFFLE9BQU8sS0FBSztJQUM5RGlCLFFBQVEsQ0FBQ2tCLE9BQUksS0FBSztNQUFFLEdBQUdBLE9BQUk7TUFBRW5DO0lBQWUsQ0FBQyxDQUFDLENBQUM7RUFDakQsQ0FBQztFQUVELE1BQU1xRiw2QkFBNkIsR0FBR0EsQ0FBQ2hGLGlCQUFpQixFQUFFLE9BQU8sS0FBSztJQUNwRVksUUFBUSxDQUFDa0IsT0FBSSxLQUFLO01BQ2hCLEdBQUdBLE9BQUk7TUFDUDlCLGlCQUFpQjtNQUNqQkQsVUFBVSxFQUFFQyxpQkFBaUIsR0FBRyxtQkFBbUIsR0FBRztJQUN4RCxDQUFDLENBQUMsQ0FBQztFQUNMLENBQUM7RUFFRCxNQUFNaUYsb0JBQW9CLEdBQUcsTUFBQUEsQ0FBT0MsTUFBTSxFQUFFLFFBQVEsR0FBRyxNQUFNLEdBQUcsTUFBTSxLQUFLO0lBQ3pFLElBQUlBLE1BQU0sS0FBSyxNQUFNLEVBQUU7TUFDckI1RSxLQUFLLENBQUNDLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQztNQUM5QztJQUNGO0lBRUE5QyxRQUFRLENBQUMseUNBQXlDLEVBQUU7TUFDbEQ2QixJQUFJLEVBQUUseUJBQXlCLElBQUk5QjtJQUNyQyxDQUFDLENBQUM7SUFFRm9ELFFBQVEsQ0FBQ2tCLE9BQUksS0FBSztNQUFFLEdBQUdBLE9BQUk7TUFBRU0sY0FBYyxFQUFFOEM7SUFBTyxDQUFDLENBQUMsQ0FBQztJQUV2RCxJQUFJQSxNQUFNLEtBQUssTUFBTSxJQUFJQSxNQUFNLEtBQUssUUFBUSxFQUFFO01BQzVDO01BQ0EsSUFBSXhFLGNBQWMsRUFBRTtRQUNsQixNQUFNMkMsbUJBQW1CLENBQUMsQ0FBQztNQUM3QixDQUFDLE1BQU07UUFDTDtRQUNBekMsUUFBUSxDQUFDa0IsT0FBSSxLQUFLO1VBQUUsR0FBR0EsT0FBSTtVQUFFeEMsSUFBSSxFQUFFO1FBQVUsQ0FBQyxDQUFDLENBQUM7TUFDbEQ7SUFDRjtFQUNGLENBQUM7RUFFRCxTQUFTNkYsb0JBQW9CQSxDQUFDQyxDQUFDLEVBQUV2SCxhQUFhLENBQUMsRUFBRSxJQUFJLENBQUM7SUFDcER1SCxDQUFDLENBQUNDLGNBQWMsQ0FBQyxDQUFDO0lBQ2xCLElBQUkxRSxLQUFLLENBQUNyQixJQUFJLEtBQUssU0FBUyxFQUFFO01BQzVCN0IsUUFBUSxDQUFDLG9DQUFvQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3BEO0lBQ0E2QyxLQUFLLENBQUNDLE1BQU0sQ0FDVkksS0FBSyxDQUFDckIsSUFBSSxLQUFLLFNBQVMsR0FDcEIsZ0NBQWdDLEdBQ2hDcUIsS0FBSyxDQUFDb0IsS0FBSyxHQUNULGdDQUFnQ3BCLEtBQUssQ0FBQ29CLEtBQUsseUNBQXlDcEUsNEJBQTRCLEVBQUUsR0FDbEgsdUVBQXVFQSw0QkFBNEIsRUFDM0csQ0FBQztFQUNIO0VBRUEsUUFBUWdELEtBQUssQ0FBQ3JCLElBQUk7SUFDaEIsS0FBSyxVQUFVO01BQ2IsT0FBTyxDQUFDLGVBQWUsR0FBRztJQUM1QixLQUFLLFVBQVU7TUFDYixPQUNFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDcUIsS0FBSyxDQUFDZCxRQUFRLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQ2dFLFlBQVksQ0FBQyxHQUFHO0lBRXhFLEtBQUssYUFBYTtNQUNoQixPQUNFLENBQUMsY0FBYyxDQUNiLFdBQVcsQ0FBQyxDQUFDbEQsS0FBSyxDQUFDbkIsV0FBVyxDQUFDLENBQy9CLGNBQWMsQ0FBQyxDQUFDbUIsS0FBSyxDQUFDbEIsY0FBYyxDQUFDLENBQ3JDLE9BQU8sQ0FBQyxDQUFDa0IsS0FBSyxDQUFDcEIsZ0JBQWdCLENBQUMsQ0FDaEMsZUFBZSxDQUFDLENBQUM2RSxtQkFBbUIsQ0FBQyxDQUNyQyxzQkFBc0IsQ0FBQyxDQUFDVSwwQkFBMEIsQ0FBQyxDQUNuRCxRQUFRLENBQUMsQ0FBQ2pCLFlBQVksQ0FBQyxHQUN2QjtJQUVOLEtBQUssYUFBYTtNQUNoQixPQUNFLENBQUMsY0FBYyxDQUNiLE9BQU8sQ0FBQyxDQUFDbEQsS0FBSyxDQUFDcEIsZ0JBQWdCLENBQUMsQ0FDaEMsUUFBUSxDQUFDLENBQUNzRSxZQUFZLENBQUMsR0FDdkI7SUFFTixLQUFLLHlCQUF5QjtNQUM1QixPQUNFLENBQUMsb0JBQW9CLENBQ25CLFFBQVEsQ0FBQyxDQUFDbEQsS0FBSyxDQUFDcEIsZ0JBQWdCLENBQUMsQ0FDakMsY0FBYyxDQUFDLENBQUMwRixvQkFBb0IsQ0FBQyxHQUNyQztJQUVOLEtBQUssdUJBQXVCO01BQzFCLE9BQ0UsQ0FBQyx1QkFBdUIsQ0FDdEIsaUJBQWlCLENBQUMsQ0FBQ3RFLEtBQUssQ0FBQ1gsaUJBQWlCLENBQUMsQ0FDM0MsVUFBVSxDQUFDLENBQUNXLEtBQUssQ0FBQ1osVUFBVSxDQUFDLENBQzdCLHlCQUF5QixDQUFDLENBQUNpRiw2QkFBNkIsQ0FBQyxDQUN6RCxrQkFBa0IsQ0FBQyxDQUFDSCxzQkFBc0IsQ0FBQyxDQUMzQyxRQUFRLENBQUMsQ0FBQ2hCLFlBQVksQ0FBQyxHQUN2QjtJQUVOLEtBQUssU0FBUztNQUNaLE9BQ0UsQ0FBQyxVQUFVLENBQ1QsY0FBYyxDQUFDLENBQUNuRCxjQUFjLENBQUMsQ0FDL0IsY0FBYyxDQUFDLENBQUNDLEtBQUssQ0FBQ2hCLGNBQWMsQ0FBQyxDQUNyQyxrQkFBa0IsQ0FBQyxDQUFDZ0IsS0FBSyxDQUFDakIsa0JBQWtCLENBQUMsQ0FDN0MsY0FBYyxDQUFDLENBQUM0RSxrQkFBa0IsQ0FBQyxDQUNuQyxzQkFBc0IsQ0FBQyxDQUFDUywwQkFBMEIsQ0FBQyxDQUNuRCxRQUFRLENBQUMsQ0FBQ2xCLFlBQVksQ0FBQyxDQUN2QixrQkFBa0IsQ0FBQyxDQUNqQjVGLHNCQUFzQixDQUFDLENBQUMsR0FBR3dHLHNCQUFzQixHQUFHYSxTQUN0RCxDQUFDLENBQ0QsY0FBYyxDQUFDLENBQUMzRSxLQUFLLENBQUNSLG9CQUFvQixDQUFDLENBQzNDLGNBQWMsQ0FBQyxDQUFDb0Usd0JBQXdCLENBQUMsR0FDekM7SUFFTixLQUFLLFVBQVU7TUFDYixPQUNFLENBQUMsWUFBWSxDQUNYLDBCQUEwQixDQUFDLENBQUM1RCxLQUFLLENBQUNmLDBCQUEwQixDQUFDLENBQzdELFlBQVksQ0FBQyxDQUFDZSxLQUFLLENBQUNiLFlBQVksQ0FBQyxDQUNqQyxpQkFBaUIsQ0FBQyxDQUFDYSxLQUFLLENBQUNYLGlCQUFpQixDQUFDLENBQzNDLFVBQVUsQ0FBQyxDQUFDVyxLQUFLLENBQUNaLFVBQVUsQ0FBQyxDQUM3QixZQUFZLENBQUMsQ0FBQ1ksS0FBSyxDQUFDeUIsY0FBYyxLQUFLLE1BQU0sQ0FBQyxDQUM5QyxpQkFBaUIsQ0FBQyxDQUFDekIsS0FBSyxDQUFDVCxpQkFBaUIsQ0FBQyxHQUMzQztJQUVOLEtBQUssU0FBUztNQUNaLE9BQ0UsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDaUYsb0JBQW9CLENBQUM7QUFDcEUsVUFBVSxDQUFDLFdBQVcsQ0FDVixZQUFZLENBQUMsQ0FBQ3hFLEtBQUssQ0FBQ2IsWUFBWSxDQUFDLENBQ2pDLGlCQUFpQixDQUFDLENBQUNhLEtBQUssQ0FBQ1gsaUJBQWlCLENBQUMsQ0FDM0MsVUFBVSxDQUFDLENBQUNXLEtBQUssQ0FBQ1osVUFBVSxDQUFDLENBQzdCLFlBQVksQ0FBQyxDQUFDWSxLQUFLLENBQUN5QixjQUFjLEtBQUssTUFBTSxDQUFDO0FBRTFELFFBQVEsRUFBRSxHQUFHLENBQUM7SUFFVixLQUFLLE9BQU87TUFDVixPQUNFLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQytDLG9CQUFvQixDQUFDO0FBQ3BFLFVBQVUsQ0FBQyxTQUFTLENBQ1IsS0FBSyxDQUFDLENBQUN4RSxLQUFLLENBQUNvQixLQUFLLENBQUMsQ0FDbkIsV0FBVyxDQUFDLENBQUNwQixLQUFLLENBQUNzQixXQUFXLENBQUMsQ0FDL0IsaUJBQWlCLENBQUMsQ0FBQ3RCLEtBQUssQ0FBQ3VCLGlCQUFpQixDQUFDO0FBRXZELFFBQVEsRUFBRSxHQUFHLENBQUM7SUFFVixLQUFLLGtCQUFrQjtNQUNyQixPQUNFLENBQUMseUJBQXlCLENBQ3hCLGlCQUFpQixDQUFDLENBQUN2QixLQUFLLENBQUNULGlCQUFpQixDQUFDLENBQzNDLFFBQVEsQ0FBQyxDQUFDQSxpQkFBaUIsSUFBSTtRQUM3QnpDLFFBQVEsQ0FBQyx5Q0FBeUMsRUFBRTtVQUNsRDZCLElBQUksRUFBRSxrQkFBa0IsSUFBSTlCO1FBQzlCLENBQUMsQ0FBQztRQUNGb0QsUUFBUSxDQUFDa0IsT0FBSSxLQUFLO1VBQ2hCLEdBQUdBLE9BQUk7VUFDUDVCO1FBQ0YsQ0FBQyxDQUFDLENBQUM7UUFDSDtRQUNBLElBQUlRLGNBQWMsRUFBRTtVQUNsQixLQUFLMkMsbUJBQW1CLENBQUMsQ0FBQztRQUM1QixDQUFDLE1BQU07VUFDTDtVQUNBekMsUUFBUSxDQUFDa0IsT0FBSSxLQUFLO1lBQUUsR0FBR0EsT0FBSTtZQUFFeEMsSUFBSSxFQUFFO1VBQVUsQ0FBQyxDQUFDLENBQUM7UUFDbEQ7TUFDRixDQUFDLENBQUMsR0FDRjtJQUVOLEtBQUssWUFBWTtNQUNmLE9BQ0UsQ0FBQyxhQUFhLENBQ1osU0FBUyxDQUFDLENBQUNvRixrQkFBa0IsQ0FBQyxDQUM5QixRQUFRLENBQUMsQ0FBQ0UsaUJBQWlCLENBQUMsR0FDNUI7RUFFUjtBQUNGO0FBRUEsT0FBTyxlQUFlVyxJQUFJQSxDQUN4QmhGLE1BQU0sRUFBRXhDLHFCQUFxQixDQUM5QixFQUFFNkUsT0FBTyxDQUFDdkYsS0FBSyxDQUFDb0QsU0FBUyxDQUFDLENBQUM7RUFDMUIsT0FBTyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDRixNQUFNLENBQUMsR0FBRztBQUM3QyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
PR_TITLE,
|
|
10
10
|
WORKFLOW_CONTENT,
|
|
11
11
|
} from '../../constants/github-app.js'
|
|
12
|
+
import { FRIENDLI_PRIMARY_ENV } from '../../utils/auth.js'
|
|
12
13
|
import { openBrowser } from '../../utils/browser.js'
|
|
13
14
|
import { execFileNoThrow } from '../../utils/execFileNoThrow.js'
|
|
14
15
|
import { logError } from '../../utils/log.js'
|
|
@@ -41,17 +42,10 @@ async function createWorkflowFile(
|
|
|
41
42
|
}
|
|
42
43
|
|
|
43
44
|
let content = workflowContent
|
|
44
|
-
if (secretName
|
|
45
|
-
// For OAuth tokens, use the claude_code_oauth_token parameter
|
|
45
|
+
if (secretName !== FRIENDLI_PRIMARY_ENV) {
|
|
46
46
|
content = workflowContent.replace(
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
)
|
|
50
|
-
} else if (secretName !== 'ANTHROPIC_API_KEY') {
|
|
51
|
-
// For other custom secret names, keep using anthropic_api_key parameter
|
|
52
|
-
content = workflowContent.replace(
|
|
53
|
-
/anthropic_api_key: \$\{\{ secrets\.ANTHROPIC_API_KEY \}\}/g,
|
|
54
|
-
`anthropic_api_key: \${{ secrets.${secretName} }}`,
|
|
47
|
+
/\$\{\{ secrets\.UMMAYA_FRIENDLI_TOKEN \}\}/g,
|
|
48
|
+
`\${{ secrets.${secretName} }}`,
|
|
55
49
|
)
|
|
56
50
|
}
|
|
57
51
|
const base64Content = Buffer.from(content).toString('base64')
|
|
@@ -127,10 +121,10 @@ export async function setupGitHubActions(
|
|
|
127
121
|
logEvent('tengu_setup_github_actions_started', {
|
|
128
122
|
skip_workflow: skipWorkflow,
|
|
129
123
|
has_api_key: !!apiKeyOrOAuthToken,
|
|
130
|
-
using_default_secret_name: secretName ===
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
selectedWorkflows.includes('
|
|
124
|
+
using_default_secret_name: secretName === FRIENDLI_PRIMARY_ENV,
|
|
125
|
+
selected_ummaya_workflow: selectedWorkflows.includes('ummaya'),
|
|
126
|
+
selected_ummaya_review_workflow:
|
|
127
|
+
selectedWorkflows.includes('ummaya-review'),
|
|
134
128
|
...context,
|
|
135
129
|
})
|
|
136
130
|
|
|
@@ -196,7 +190,7 @@ export async function setupGitHubActions(
|
|
|
196
190
|
if (!skipWorkflow) {
|
|
197
191
|
updateProgress()
|
|
198
192
|
// Create new branch
|
|
199
|
-
branchName = `add-
|
|
193
|
+
branchName = `add-ummaya-github-actions-${Date.now()}`
|
|
200
194
|
const createBranchResult = await execFileNoThrow('gh', [
|
|
201
195
|
'api',
|
|
202
196
|
'--method',
|
|
@@ -221,19 +215,19 @@ export async function setupGitHubActions(
|
|
|
221
215
|
// Create selected workflow files
|
|
222
216
|
const workflows = []
|
|
223
217
|
|
|
224
|
-
if (selectedWorkflows.includes('
|
|
218
|
+
if (selectedWorkflows.includes('ummaya')) {
|
|
225
219
|
workflows.push({
|
|
226
|
-
path: '.github/workflows/
|
|
220
|
+
path: '.github/workflows/ummaya.yml',
|
|
227
221
|
content: WORKFLOW_CONTENT,
|
|
228
|
-
message: 'UMMAYA
|
|
222
|
+
message: 'UMMAYA runtime smoke workflow',
|
|
229
223
|
})
|
|
230
224
|
}
|
|
231
225
|
|
|
232
|
-
if (selectedWorkflows.includes('
|
|
226
|
+
if (selectedWorkflows.includes('ummaya-review')) {
|
|
233
227
|
workflows.push({
|
|
234
|
-
path: '.github/workflows/
|
|
228
|
+
path: '.github/workflows/ummaya-review.yml',
|
|
235
229
|
content: CODE_REVIEW_PLUGIN_WORKFLOW_CONTENT,
|
|
236
|
-
message: 'UMMAYA
|
|
230
|
+
message: 'UMMAYA review smoke workflow',
|
|
237
231
|
})
|
|
238
232
|
}
|
|
239
233
|
|
|
@@ -295,10 +289,10 @@ export async function setupGitHubActions(
|
|
|
295
289
|
has_api_key: !!apiKeyOrOAuthToken,
|
|
296
290
|
auth_type:
|
|
297
291
|
authType as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS,
|
|
298
|
-
using_default_secret_name: secretName ===
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
selectedWorkflows.includes('
|
|
292
|
+
using_default_secret_name: secretName === FRIENDLI_PRIMARY_ENV,
|
|
293
|
+
selected_ummaya_workflow: selectedWorkflows.includes('ummaya'),
|
|
294
|
+
selected_ummaya_review_workflow:
|
|
295
|
+
selectedWorkflows.includes('ummaya-review'),
|
|
302
296
|
...context,
|
|
303
297
|
})
|
|
304
298
|
saveGlobalConfig(current => ({
|
|
@@ -17,10 +17,10 @@ type Props = {
|
|
|
17
17
|
defaultSelections: Workflow[];
|
|
18
18
|
};
|
|
19
19
|
const WORKFLOWS: WorkflowOption[] = [{
|
|
20
|
-
value: '
|
|
20
|
+
value: 'ummaya' as const,
|
|
21
21
|
label: '@UMMAYA - Tag @ummaya in issues and PR comments'
|
|
22
22
|
}, {
|
|
23
|
-
value: '
|
|
23
|
+
value: 'ummaya-review' as const,
|
|
24
24
|
label: 'UMMAYA Review - Automated code review on new PRs'
|
|
25
25
|
}];
|
|
26
26
|
function renderInputGuide(exitState: ExitState): React.ReactNode {
|
|
@@ -125,4 +125,3 @@ function _temp(workflow) {
|
|
|
125
125
|
value: workflow.value
|
|
126
126
|
};
|
|
127
127
|
}
|
|
128
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNhbGxiYWNrIiwidXNlU3RhdGUiLCJXb3JrZmxvdyIsIkV4aXRTdGF0ZSIsIkJveCIsIkxpbmsiLCJUZXh0IiwiQ29uZmlndXJhYmxlU2hvcnRjdXRIaW50IiwiU2VsZWN0TXVsdGkiLCJCeWxpbmUiLCJEaWFsb2ciLCJLZXlib2FyZFNob3J0Y3V0SGludCIsIldvcmtmbG93T3B0aW9uIiwidmFsdWUiLCJsYWJlbCIsIlByb3BzIiwib25TdWJtaXQiLCJzZWxlY3RlZFdvcmtmbG93cyIsImRlZmF1bHRTZWxlY3Rpb25zIiwiV09SS0ZMT1dTIiwiY29uc3QiLCJyZW5kZXJJbnB1dEd1aWRlIiwiZXhpdFN0YXRlIiwiUmVhY3ROb2RlIiwicGVuZGluZyIsImtleU5hbWUiLCJXb3JrZmxvd011bHRpc2VsZWN0RGlhbG9nIiwidDAiLCIkIiwiX2MiLCJzaG93RXJyb3IiLCJzZXRTaG93RXJyb3IiLCJ0MSIsInNlbGVjdGVkVmFsdWVzIiwibGVuZ3RoIiwiaGFuZGxlU3VibWl0IiwidDIiLCJTeW1ib2wiLCJmb3IiLCJoYW5kbGVDaGFuZ2UiLCJ0MyIsImhhbmRsZUNhbmNlbCIsInQ0IiwidDUiLCJtYXAiLCJfdGVtcCIsInQ2IiwidDciLCJ0OCIsIndvcmtmbG93Il0sInNvdXJjZXMiOlsiV29ya2Zsb3dNdWx0aXNlbGVjdERpYWxvZy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBXb3JrZmxvdyB9IGZyb20gJy4uL2NvbW1hbmRzL2luc3RhbGwtZ2l0aHViLWFwcC90eXBlcy5qcydcbmltcG9ydCB0eXBlIHsgRXhpdFN0YXRlIH0gZnJvbSAnLi4vaG9va3MvdXNlRXhpdE9uQ3RybENEV2l0aEtleWJpbmRpbmdzLmpzJ1xuaW1wb3J0IHsgQm94LCBMaW5rLCBUZXh0IH0gZnJvbSAnLi4vaW5rLmpzJ1xuaW1wb3J0IHsgQ29uZmlndXJhYmxlU2hvcnRjdXRIaW50IH0gZnJvbSAnLi9Db25maWd1cmFibGVTaG9ydGN1dEhpbnQuanMnXG5pbXBvcnQgeyBTZWxlY3RNdWx0aSB9IGZyb20gJy4vQ3VzdG9tU2VsZWN0L1NlbGVjdE11bHRpLmpzJ1xuaW1wb3J0IHsgQnlsaW5lIH0gZnJvbSAnLi9kZXNpZ24tc3lzdGVtL0J5bGluZS5qcydcbmltcG9ydCB7IERpYWxvZyB9IGZyb20gJy4vZGVzaWduLXN5c3RlbS9EaWFsb2cuanMnXG5pbXBvcnQgeyBLZXlib2FyZFNob3J0Y3V0SGludCB9IGZyb20gJy4vZGVzaWduLXN5c3RlbS9LZXlib2FyZFNob3J0Y3V0SGludC5qcydcblxudHlwZSBXb3JrZmxvd09wdGlvbiA9IHtcbiAgdmFsdWU6IFdvcmtmbG93XG4gIGxhYmVsOiBzdHJpbmdcbn1cblxudHlwZSBQcm9wcyA9IHtcbiAgb25TdWJtaXQ6IChzZWxlY3RlZFdvcmtmbG93czogV29ya2Zsb3dbXSkgPT4gdm9pZFxuICBkZWZhdWx0U2VsZWN0aW9uczogV29ya2Zsb3dbXVxufVxuXG5jb25zdCBXT1JLRkxPV1M6IFdvcmtmbG93T3B0aW9uW10gPSBbXG4gIHtcbiAgICB2YWx1ZTogJ2NsYXVkZScgYXMgY29uc3QsXG4gICAgbGFiZWw6ICdAQ2xhdWRlIENvZGUgLSBUYWcgQGNsYXVkZSBpbiBpc3N1ZXMgYW5kIFBSIGNvbW1lbnRzJyxcbiAgfSxcbiAge1xuICAgIHZhbHVlOiAnY2xhdWRlLXJldmlldycgYXMgY29uc3QsXG4gICAgbGFiZWw6ICdDbGF1ZGUgQ29kZSBSZXZpZXcgLSBBdXRvbWF0ZWQgY29kZSByZXZpZXcgb24gbmV3IFBScycsXG4gIH0sXG5dXG5cbmZ1bmN0aW9uIHJlbmRlcklucHV0R3VpZGUoZXhpdFN0YXRlOiBFeGl0U3RhdGUpOiBSZWFjdC5SZWFjdE5vZGUge1xuICBpZiAoZXhpdFN0YXRlLnBlbmRpbmcpIHtcbiAgICByZXR1cm4gPFRleHQ+UHJlc3Mge2V4aXRTdGF0ZS5rZXlOYW1lfSBhZ2FpbiB0byBleGl0PC9UZXh0PlxuICB9XG4gIHJldHVybiAoXG4gICAgPEJ5bGluZT5cbiAgICAgIDxLZXlib2FyZFNob3J0Y3V0SGludCBzaG9ydGN1dD1cIuKGkeKGk1wiIGFjdGlvbj1cIm5hdmlnYXRlXCIgLz5cbiAgICAgIDxLZXlib2FyZFNob3J0Y3V0SGludCBzaG9ydGN1dD1cIlNwYWNlXCIgYWN0aW9uPVwidG9nZ2xlXCIgLz5cbiAgICAgIDxLZXlib2FyZFNob3J0Y3V0SGludCBzaG9ydGN1dD1cIkVudGVyXCIgYWN0aW9uPVwiY29uZmlybVwiIC8+XG4gICAgICA8Q29uZmlndXJhYmxlU2hvcnRjdXRIaW50XG4gICAgICAgIGFjdGlvbj1cImNvbmZpcm06bm9cIlxuICAgICAgICBjb250ZXh0PVwiQ29uZmlybWF0aW9uXCJcbiAgICAgICAgZmFsbGJhY2s9XCJFc2NcIlxuICAgICAgICBkZXNjcmlwdGlvbj1cImNhbmNlbFwiXG4gICAgICAvPlxuICAgIDwvQnlsaW5lPlxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBXb3JrZmxvd011bHRpc2VsZWN0RGlhbG9nKHtcbiAgb25TdWJtaXQsXG4gIGRlZmF1bHRTZWxlY3Rpb25zLFxufTogUHJvcHMpOiBSZWFjdC5SZWFjdE5vZGUge1xuICBjb25zdCBbc2hvd0Vycm9yLCBzZXRTaG93RXJyb3JdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgY29uc3QgaGFuZGxlU3VibWl0ID0gdXNlQ2FsbGJhY2soXG4gICAgKHNlbGVjdGVkVmFsdWVzOiBXb3JrZmxvd1tdKSA9PiB7XG4gICAgICBpZiAoc2VsZWN0ZWRWYWx1ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHNldFNob3dFcnJvcih0cnVlKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIHNldFNob3dFcnJvcihmYWxzZSlcbiAgICAgIG9uU3VibWl0KHNlbGVjdGVkVmFsdWVzKVxuICAgIH0sXG4gICAgW29uU3VibWl0XSxcbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRTaG93RXJyb3IoZmFsc2UpXG4gIH0sIFtdKVxuXG4gIC8vIENhbmNlbCBqdXN0IHNob3dzIHRoZSBlcnJvciAtIHVzZXIgbXVzdCBzZWxlY3QgYXQgbGVhc3Qgb25lIHdvcmtmbG93XG4gIGNvbnN0IGhhbmRsZUNhbmNlbCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRTaG93RXJyb3IodHJ1ZSlcbiAgfSwgW10pXG5cbiAgcmV0dXJuIChcbiAgICA8RGlhbG9nXG4gICAgICB0aXRsZT1cIlNlbGVjdCBHaXRIdWIgd29ya2Zsb3dzIHRvIGluc3RhbGxcIlxuICAgICAgc3VidGl0bGU9XCJXZSdsbCBjcmVhdGUgYSB3b3JrZmxvdyBmaWxlIGluIHlvdXIgcmVwb3NpdG9yeSBmb3IgZWFjaCBvbmUgeW91IHNlbGVjdC5cIlxuICAgICAgb25DYW5jZWw9e2hhbmRsZUNhbmNlbH1cbiAgICAgIGlucHV0R3VpZGU9e3JlbmRlcklucHV0R3VpZGV9XG4gICAgPlxuICAgICAgPEJveD5cbiAgICAgICAgPFRleHQgZGltQ29sb3I+XG4gICAgICAgICAgTW9yZSB3b3JrZmxvdyBleGFtcGxlcyAoaXNzdWUgdHJpYWdlLCBDSSBmaXhlcywgZXRjLikgYXQ6eycgJ31cbiAgICAgICAgICA8TGluayB1cmw9XCJodHRwczovL2dpdGh1Yi5jb20vYW50aHJvcGljcy9jbGF1ZGUtY29kZS1hY3Rpb24vYmxvYi9tYWluL2V4YW1wbGVzL1wiPlxuICAgICAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL2FudGhyb3BpY3MvY2xhdWRlLWNvZGUtYWN0aW9uL2Jsb2IvbWFpbi9leGFtcGxlcy9cbiAgICAgICAgICA8L0xpbms+XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvQm94PlxuXG4gICAgICA8U2VsZWN0TXVsdGlcbiAgICAgICAgb3B0aW9ucz17V09SS0ZMT1dTLm1hcCh3b3JrZmxvdyA9PiAoe1xuICAgICAgICAgIGxhYmVsOiB3b3JrZmxvdy5sYWJlbCxcbiAgICAgICAgICB2YWx1ZTogd29ya2Zsb3cudmFsdWUsXG4gICAgICAgIH0pKX1cbiAgICAgICAgZGVmYXVsdFZhbHVlPXtkZWZhdWx0U2VsZWN0aW9uc31cbiAgICAgICAgb25TdWJtaXQ9e2hhbmRsZVN1Ym1pdH1cbiAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgb25DYW5jZWw9e2hhbmRsZUNhbmNlbH1cbiAgICAgICAgaGlkZUluZGV4ZXNcbiAgICAgIC8+XG5cbiAgICAgIHtzaG93RXJyb3IgJiYgKFxuICAgICAgICA8Qm94PlxuICAgICAgICAgIDxUZXh0IGNvbG9yPVwiZXJyb3JcIj5cbiAgICAgICAgICAgIFlvdSBtdXN0IHNlbGVjdCBhdCBsZWFzdCBvbmUgd29ya2Zsb3cgdG8gY29udGludWVcbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgIDwvQm94PlxuICAgICAgKX1cbiAgICA8L0RpYWxvZz5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsT0FBT0EsS0FBSyxJQUFJQyxXQUFXLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQ3BELGNBQWNDLFFBQVEsUUFBUSx5Q0FBeUM7QUFDdkUsY0FBY0MsU0FBUyxRQUFRLDRDQUE0QztBQUMzRSxTQUFTQyxHQUFHLEVBQUVDLElBQUksRUFBRUMsSUFBSSxRQUFRLFdBQVc7QUFDM0MsU0FBU0Msd0JBQXdCLFFBQVEsK0JBQStCO0FBQ3hFLFNBQVNDLFdBQVcsUUFBUSwrQkFBK0I7QUFDM0QsU0FBU0MsTUFBTSxRQUFRLDJCQUEyQjtBQUNsRCxTQUFTQyxNQUFNLFFBQVEsMkJBQTJCO0FBQ2xELFNBQVNDLG9CQUFvQixRQUFRLHlDQUF5QztBQUU5RSxLQUFLQyxjQUFjLEdBQUc7RUFDcEJDLEtBQUssRUFBRVgsUUFBUTtFQUNmWSxLQUFLLEVBQUUsTUFBTTtBQUNmLENBQUM7QUFFRCxLQUFLQyxLQUFLLEdBQUc7RUFDWEMsUUFBUSxFQUFFLENBQUNDLGlCQUFpQixFQUFFZixRQUFRLEVBQUUsRUFBRSxHQUFHLElBQUk7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
|
|
@@ -16,7 +16,7 @@ on:
|
|
|
16
16
|
types: [submitted]
|
|
17
17
|
|
|
18
18
|
jobs:
|
|
19
|
-
|
|
19
|
+
ummaya:
|
|
20
20
|
if: |
|
|
21
21
|
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@ummaya')) ||
|
|
22
22
|
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@ummaya')) ||
|
|
@@ -41,7 +41,7 @@ jobs:
|
|
|
41
41
|
- name: Verify UMMAYA
|
|
42
42
|
id: ummaya
|
|
43
43
|
env:
|
|
44
|
-
|
|
44
|
+
UMMAYA_FRIENDLI_TOKEN: \${{ secrets.UMMAYA_FRIENDLI_TOKEN }}
|
|
45
45
|
run: ummaya --version
|
|
46
46
|
|
|
47
47
|
# See https://ummaya-docs.pages.dev/en/ for available options
|
|
@@ -64,31 +64,26 @@ This PR adds a GitHub Actions workflow that enables UMMAYA integration in our re
|
|
|
64
64
|
|
|
65
65
|
### How it works
|
|
66
66
|
|
|
67
|
-
Once this PR is merged,
|
|
68
|
-
|
|
67
|
+
Once this PR is merged, @ummaya mentions in pull requests and issues will trigger a GitHub Actions smoke check for the repository's UMMAYA runtime.
|
|
68
|
+
The generated workflow verifies that the packaged UMMAYA CLI can install and start with the configured FriendliAI credential. Extend it from the UMMAYA documentation before enabling repository-specific automation.
|
|
69
69
|
|
|
70
70
|
### Important Notes
|
|
71
71
|
|
|
72
72
|
- **This workflow won't take effect until this PR is merged**
|
|
73
73
|
- **@ummaya mentions won't work until after the merge is complete**
|
|
74
74
|
- The workflow runs automatically whenever UMMAYA is mentioned in PR or issue comments
|
|
75
|
-
-
|
|
75
|
+
- The generated workflow is a runtime smoke check until repository-specific automation is added
|
|
76
76
|
|
|
77
77
|
### Security
|
|
78
78
|
|
|
79
79
|
- Our FriendliAI API key is securely stored as a GitHub Actions secret
|
|
80
80
|
- Only users with write access to the repository can trigger the workflow
|
|
81
81
|
- All UMMAYA runs are stored in the GitHub Actions run history
|
|
82
|
-
-
|
|
83
|
-
- We can add more allowed tools by adding them to the workflow file like:
|
|
84
|
-
|
|
85
|
-
\`\`\`
|
|
86
|
-
allowed_tools: Bash(npm install),Bash(npm run build),Bash(npm run lint),Bash(npm run test)
|
|
87
|
-
\`\`\`
|
|
82
|
+
- Review the workflow file before adding write scopes, repository mutations, or project-specific commands.
|
|
88
83
|
|
|
89
84
|
There's more information in the [UMMAYA documentation](https://ummaya-docs.pages.dev/en/).
|
|
90
85
|
|
|
91
|
-
After merging this PR,
|
|
86
|
+
After merging this PR, mention @ummaya in a comment on any PR to verify the runtime smoke path.`
|
|
92
87
|
|
|
93
88
|
export const CODE_REVIEW_PLUGIN_WORKFLOW_CONTENT = `name: UMMAYA Review
|
|
94
89
|
|
|
@@ -103,7 +98,7 @@ on:
|
|
|
103
98
|
# - "src/**/*.jsx"
|
|
104
99
|
|
|
105
100
|
jobs:
|
|
106
|
-
|
|
101
|
+
ummaya-review:
|
|
107
102
|
# Optional: Filter by PR author
|
|
108
103
|
# if: |
|
|
109
104
|
# github.event.pull_request.user.login == 'external-contributor' ||
|
|
@@ -129,7 +124,7 @@ jobs:
|
|
|
129
124
|
- name: Verify UMMAYA Review Runtime
|
|
130
125
|
id: ummaya-review
|
|
131
126
|
env:
|
|
132
|
-
|
|
127
|
+
UMMAYA_FRIENDLI_TOKEN: \${{ secrets.UMMAYA_FRIENDLI_TOKEN }}
|
|
133
128
|
run: ummaya --version
|
|
134
129
|
|
|
135
130
|
# See https://ummaya-docs.pages.dev/en/ for available options
|
package/tui/src/utils/http.ts
CHANGED
|
@@ -10,7 +10,6 @@ import {
|
|
|
10
10
|
handleOAuth401Error,
|
|
11
11
|
isClaudeAISubscriber,
|
|
12
12
|
} from './auth.js'
|
|
13
|
-
import { getClaudeCodeUserAgent } from './userAgent.js'
|
|
14
13
|
import { getWorkload } from './workloadContext.js'
|
|
15
14
|
|
|
16
15
|
// WARNING: We rely on `claude-cli` in the user agent for log filtering.
|
|
@@ -50,7 +49,7 @@ export function getMCPUserAgent(): string {
|
|
|
50
49
|
}
|
|
51
50
|
|
|
52
51
|
export function getWebFetchUserAgent(): string {
|
|
53
|
-
return `UMMAYA-User (
|
|
52
|
+
return `UMMAYA-User (ummaya/${MACRO.VERSION}; +https://ummaya-docs.pages.dev/)`
|
|
54
53
|
}
|
|
55
54
|
|
|
56
55
|
export type AuthHeaders = {
|