@liquidmetal-ai/drizzle 0.4.7 → 0.4.9
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/.turbo/turbo-build.log +9 -9
- package/.turbo/turbo-test.log +277 -83
- package/CHANGELOG.md +12 -0
- package/dist/liquidmetal/v1alpha1/catalog_pb.d.ts +1 -1
- package/dist/liquidmetal/v1alpha1/catalog_pb.d.ts.map +1 -1
- package/dist/liquidmetal/v1alpha1/catalog_pb.js +2 -2
- package/dist/liquidmetal/v1alpha1/events_connect.d.ts +39 -0
- package/dist/liquidmetal/v1alpha1/events_connect.d.ts.map +1 -0
- package/dist/liquidmetal/v1alpha1/events_connect.js +43 -0
- package/dist/liquidmetal/v1alpha1/events_pb.d.ts +175 -0
- package/dist/liquidmetal/v1alpha1/events_pb.d.ts.map +1 -0
- package/dist/liquidmetal/v1alpha1/events_pb.js +51 -0
- package/dist/liquidmetal/v1alpha1/logging_pb.d.ts +87 -0
- package/dist/liquidmetal/v1alpha1/logging_pb.d.ts.map +1 -0
- package/dist/liquidmetal/v1alpha1/logging_pb.js +25 -0
- package/dist/liquidmetal/v1alpha1/riverjack_pb.d.ts +74 -0
- package/dist/liquidmetal/v1alpha1/riverjack_pb.d.ts.map +1 -0
- package/dist/liquidmetal/v1alpha1/riverjack_pb.js +24 -0
- package/dist/unsafe/framework.d.ts.map +1 -1
- package/dist/unsafe/framework.js +48 -12
- package/dist/unsafe/framework.test.js +97 -62
- package/eslint.config.mjs +7 -4
- package/package.json +14 -15
- package/src/liquidmetal/v1alpha1/catalog_pb.ts +3 -3
- package/src/liquidmetal/v1alpha1/events_connect.ts +48 -0
- package/src/liquidmetal/v1alpha1/events_pb.ts +210 -0
- package/src/liquidmetal/v1alpha1/logging_pb.ts +108 -0
- package/src/liquidmetal/v1alpha1/riverjack_pb.ts +92 -0
- package/src/unsafe/framework.test.ts +96 -64
- package/src/unsafe/framework.ts +50 -10
- package/tsconfig.tsbuildinfo +1 -1
package/dist/unsafe/framework.js
CHANGED
|
@@ -2,11 +2,29 @@ import { exec } from 'node:child_process';
|
|
|
2
2
|
import { lstat } from 'node:fs/promises';
|
|
3
3
|
import { dirname, join, parse } from 'node:path';
|
|
4
4
|
import { promisify } from 'node:util';
|
|
5
|
+
import { readFile } from 'node:fs/promises';
|
|
5
6
|
/**
|
|
6
7
|
* The name of the framework package
|
|
7
8
|
*/
|
|
8
9
|
export const FRAMEWORK_PACKAGE = '@liquidmetal-ai/raindrop-framework';
|
|
9
10
|
const execAsync = promisify(exec);
|
|
11
|
+
async function resolveWorkspaceLink(version, currentDir) {
|
|
12
|
+
if (!version.startsWith('link:')) {
|
|
13
|
+
return version;
|
|
14
|
+
}
|
|
15
|
+
const linkPath = version.substring(5); // Remove 'link:' prefix
|
|
16
|
+
const absolutePath = join(currentDir, linkPath);
|
|
17
|
+
try {
|
|
18
|
+
const packageJsonPath = join(absolutePath, 'package.json');
|
|
19
|
+
const packageJsonContent = await readFile(packageJsonPath, 'utf8');
|
|
20
|
+
const packageJson = JSON.parse(packageJsonContent);
|
|
21
|
+
return packageJson.version || null;
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
console.error(`Error reading version from linked package at ${absolutePath}:`, error);
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
10
28
|
function findDependencyVersion(deps, packageName) {
|
|
11
29
|
if (!deps)
|
|
12
30
|
return null;
|
|
@@ -32,36 +50,54 @@ async function fileExists(path) {
|
|
|
32
50
|
}
|
|
33
51
|
}
|
|
34
52
|
async function detectPackageManager(dir) {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
53
|
+
let currentDir = dir;
|
|
54
|
+
while (currentDir !== parse(currentDir).root) {
|
|
55
|
+
if (await fileExists(join(currentDir, 'package-lock.json')))
|
|
56
|
+
return 'npm';
|
|
57
|
+
if (await fileExists(join(currentDir, 'yarn.lock')))
|
|
58
|
+
return 'yarn';
|
|
59
|
+
if (await fileExists(join(currentDir, 'pnpm-lock.yaml')))
|
|
60
|
+
return 'pnpm';
|
|
61
|
+
currentDir = dirname(currentDir);
|
|
62
|
+
}
|
|
41
63
|
return null;
|
|
42
64
|
}
|
|
43
|
-
const getVersionFromCommand = async (packageName, packageManager) => {
|
|
65
|
+
const getVersionFromCommand = async (packageName, packageManager, currentDir) => {
|
|
44
66
|
try {
|
|
45
67
|
const command = {
|
|
46
68
|
npm: `npm list ${packageName} --json`,
|
|
47
69
|
yarn: `yarn list --pattern "${packageName}" --json`,
|
|
48
70
|
pnpm: `pnpm list ${packageName} --json`,
|
|
49
71
|
}[packageManager];
|
|
50
|
-
const { stdout } = await execAsync(command);
|
|
72
|
+
const { stdout } = await execAsync(command, { cwd: currentDir });
|
|
51
73
|
if (packageManager === 'yarn') {
|
|
52
74
|
const lines = stdout.split('\n').filter((line) => line.trim());
|
|
53
75
|
for (const line of lines) {
|
|
54
76
|
const parsed = JSON.parse(line);
|
|
55
77
|
if (parsed.data?.trees) {
|
|
56
78
|
const match = parsed.data.trees.find((t) => t.name === packageName);
|
|
57
|
-
if (match)
|
|
58
|
-
return match.version;
|
|
79
|
+
if (match) {
|
|
80
|
+
return await resolveWorkspaceLink(match.version, currentDir);
|
|
81
|
+
}
|
|
59
82
|
}
|
|
60
83
|
}
|
|
61
84
|
}
|
|
62
85
|
else {
|
|
63
86
|
const data = JSON.parse(stdout);
|
|
64
|
-
|
|
87
|
+
// Handle pnpm array format vs npm object format
|
|
88
|
+
let dependencies;
|
|
89
|
+
if (Array.isArray(data)) {
|
|
90
|
+
// pnpm format: array of objects
|
|
91
|
+
dependencies = data[0]?.dependencies;
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
// npm format: single object with dependencies
|
|
95
|
+
dependencies = data.dependencies;
|
|
96
|
+
}
|
|
97
|
+
const version = findDependencyVersion(dependencies, packageName);
|
|
98
|
+
if (version) {
|
|
99
|
+
return await resolveWorkspaceLink(version, currentDir);
|
|
100
|
+
}
|
|
65
101
|
}
|
|
66
102
|
}
|
|
67
103
|
catch (error) {
|
|
@@ -81,7 +117,7 @@ export async function getPackageVersion(packageName) {
|
|
|
81
117
|
while (currentDir !== parse(currentDir).root) {
|
|
82
118
|
const packageManager = await detectPackageManager(currentDir);
|
|
83
119
|
if (packageManager) {
|
|
84
|
-
const version = await getVersionFromCommand(packageName, packageManager);
|
|
120
|
+
const version = await getVersionFromCommand(packageName, packageManager, currentDir);
|
|
85
121
|
if (version)
|
|
86
122
|
return version;
|
|
87
123
|
}
|
|
@@ -21,17 +21,22 @@ describe('getPackageVersion', () => {
|
|
|
21
21
|
// Create package-lock.json to indicate npm
|
|
22
22
|
await writeFile(join(tempDir, 'package-lock.json'), JSON.stringify({ name: 'test' }));
|
|
23
23
|
// Mock npm list command output
|
|
24
|
-
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
25
|
+
vi.mocked(exec).mockImplementation((command, options, callback) => {
|
|
26
|
+
// Handle both (command, callback) and (command, options, callback) signatures
|
|
27
|
+
const cb = typeof options === 'function' ? options : callback;
|
|
25
28
|
if (command.includes('npm list')) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
process.nextTick(() => {
|
|
30
|
+
cb?.(null, {
|
|
31
|
+
stdout: JSON.stringify({
|
|
32
|
+
dependencies: {
|
|
33
|
+
'test-package': {
|
|
34
|
+
version: '1.2.3',
|
|
35
|
+
},
|
|
31
36
|
},
|
|
32
|
-
},
|
|
33
|
-
|
|
34
|
-
|
|
37
|
+
}),
|
|
38
|
+
stderr: '',
|
|
39
|
+
});
|
|
35
40
|
});
|
|
36
41
|
}
|
|
37
42
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -44,20 +49,25 @@ describe('getPackageVersion', () => {
|
|
|
44
49
|
// Create yarn.lock to indicate yarn
|
|
45
50
|
await writeFile(join(tempDir, 'yarn.lock'), 'yarn lock contents');
|
|
46
51
|
// Mock yarn list command output
|
|
47
|
-
|
|
52
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
53
|
+
vi.mocked(exec).mockImplementation((command, options, callback) => {
|
|
54
|
+
// Handle both (command, callback) and (command, options, callback) signatures
|
|
55
|
+
const cb = typeof options === 'function' ? options : callback;
|
|
48
56
|
if (command.includes('yarn list')) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
57
|
+
process.nextTick(() => {
|
|
58
|
+
cb?.(null, {
|
|
59
|
+
stdout: JSON.stringify({
|
|
60
|
+
data: {
|
|
61
|
+
trees: [
|
|
62
|
+
{
|
|
63
|
+
name: 'test-package',
|
|
64
|
+
version: '2.3.4',
|
|
65
|
+
},
|
|
66
|
+
],
|
|
67
|
+
},
|
|
68
|
+
}),
|
|
69
|
+
stderr: '',
|
|
70
|
+
});
|
|
61
71
|
});
|
|
62
72
|
}
|
|
63
73
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -70,17 +80,22 @@ describe('getPackageVersion', () => {
|
|
|
70
80
|
// Create pnpm-lock.yaml to indicate pnpm
|
|
71
81
|
await writeFile(join(tempDir, 'pnpm-lock.yaml'), 'pnpm lock contents');
|
|
72
82
|
// Mock pnpm list command output
|
|
73
|
-
|
|
83
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
84
|
+
vi.mocked(exec).mockImplementation((command, options, callback) => {
|
|
85
|
+
// Handle both (command, callback) and (command, options, callback) signatures
|
|
86
|
+
const cb = typeof options === 'function' ? options : callback;
|
|
74
87
|
if (command.includes('pnpm list')) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
88
|
+
process.nextTick(() => {
|
|
89
|
+
cb?.(null, {
|
|
90
|
+
stdout: JSON.stringify({
|
|
91
|
+
dependencies: {
|
|
92
|
+
'test-package': {
|
|
93
|
+
version: '3.4.5',
|
|
94
|
+
},
|
|
80
95
|
},
|
|
81
|
-
},
|
|
82
|
-
|
|
83
|
-
|
|
96
|
+
}),
|
|
97
|
+
stderr: '',
|
|
98
|
+
});
|
|
84
99
|
});
|
|
85
100
|
}
|
|
86
101
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -91,22 +106,27 @@ describe('getPackageVersion', () => {
|
|
|
91
106
|
});
|
|
92
107
|
it('should handle nested dependencies', async () => {
|
|
93
108
|
await writeFile(join(tempDir, 'package-lock.json'), JSON.stringify({ name: 'test' }));
|
|
94
|
-
|
|
109
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
110
|
+
vi.mocked(exec).mockImplementation((command, options, callback) => {
|
|
111
|
+
// Handle both (command, callback) and (command, options, callback) signatures
|
|
112
|
+
const cb = typeof options === 'function' ? options : callback;
|
|
95
113
|
if (command.includes('npm list')) {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
114
|
+
process.nextTick(() => {
|
|
115
|
+
cb?.(null, {
|
|
116
|
+
stdout: JSON.stringify({
|
|
117
|
+
dependencies: {
|
|
118
|
+
'parent-package': {
|
|
119
|
+
version: '1.0.0',
|
|
120
|
+
dependencies: {
|
|
121
|
+
'test-package': {
|
|
122
|
+
version: '4.5.6',
|
|
123
|
+
},
|
|
104
124
|
},
|
|
105
125
|
},
|
|
106
126
|
},
|
|
107
|
-
},
|
|
108
|
-
|
|
109
|
-
|
|
127
|
+
}),
|
|
128
|
+
stderr: '',
|
|
129
|
+
});
|
|
110
130
|
});
|
|
111
131
|
}
|
|
112
132
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -117,13 +137,18 @@ describe('getPackageVersion', () => {
|
|
|
117
137
|
});
|
|
118
138
|
it('should return null when package is not found', async () => {
|
|
119
139
|
await writeFile(join(tempDir, 'package-lock.json'), JSON.stringify({ name: 'test' }));
|
|
120
|
-
|
|
140
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
141
|
+
vi.mocked(exec).mockImplementation((command, options, callback) => {
|
|
142
|
+
// Handle both (command, callback) and (command, options, callback) signatures
|
|
143
|
+
const cb = typeof options === 'function' ? options : callback;
|
|
121
144
|
if (command.includes('npm list')) {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
145
|
+
process.nextTick(() => {
|
|
146
|
+
cb?.(null, {
|
|
147
|
+
stdout: JSON.stringify({
|
|
148
|
+
dependencies: {},
|
|
149
|
+
}),
|
|
150
|
+
stderr: '',
|
|
151
|
+
});
|
|
127
152
|
});
|
|
128
153
|
}
|
|
129
154
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -140,17 +165,22 @@ describe('getPackageVersion', () => {
|
|
|
140
165
|
await writeFile(join(tempDir, 'package-lock.json'), JSON.stringify({ name: 'test' }));
|
|
141
166
|
// Set cwd to nested directory
|
|
142
167
|
vi.spyOn(process, 'cwd').mockReturnValue(nestedDir);
|
|
143
|
-
|
|
168
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
169
|
+
vi.mocked(exec).mockImplementation((command, options, callback) => {
|
|
170
|
+
// Handle both (command, callback) and (command, options, callback) signatures
|
|
171
|
+
const cb = typeof options === 'function' ? options : callback;
|
|
144
172
|
if (command.includes('npm list')) {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
173
|
+
process.nextTick(() => {
|
|
174
|
+
cb?.(null, {
|
|
175
|
+
stdout: JSON.stringify({
|
|
176
|
+
dependencies: {
|
|
177
|
+
'test-package': {
|
|
178
|
+
version: '5.6.7',
|
|
179
|
+
},
|
|
150
180
|
},
|
|
151
|
-
},
|
|
152
|
-
|
|
153
|
-
|
|
181
|
+
}),
|
|
182
|
+
stderr: '',
|
|
183
|
+
});
|
|
154
184
|
});
|
|
155
185
|
}
|
|
156
186
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -161,10 +191,15 @@ describe('getPackageVersion', () => {
|
|
|
161
191
|
});
|
|
162
192
|
it('should handle command execution errors', async () => {
|
|
163
193
|
await writeFile(join(tempDir, 'package-lock.json'), JSON.stringify({ name: 'test' }));
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
194
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
195
|
+
vi.mocked(exec).mockImplementation((command, options, callback) => {
|
|
196
|
+
// Handle both (command, callback) and (command, options, callback) signatures
|
|
197
|
+
const cb = typeof options === 'function' ? options : callback;
|
|
198
|
+
process.nextTick(() => {
|
|
199
|
+
cb?.(new Error('Command failed'), {
|
|
200
|
+
stdout: '',
|
|
201
|
+
stderr: 'failure',
|
|
202
|
+
});
|
|
168
203
|
});
|
|
169
204
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
170
205
|
return {};
|
package/eslint.config.mjs
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import repo_config from '@
|
|
1
|
+
import repo_config from '@liquidmetal-ai/eslint-config/eslint.config.mjs';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
/**
|
|
4
|
+
* @type {import('eslint').Linter.Config[]}
|
|
5
|
+
*/
|
|
6
|
+
const config = [...repo_config, { ignores: ['src/liquidmetal/v1alpha1/*'] }];
|
|
7
|
+
|
|
8
|
+
export default config;
|
package/package.json
CHANGED
|
@@ -1,27 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@liquidmetal-ai/drizzle",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.9",
|
|
4
4
|
"description": "Raindrop core operational libraries",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
7
|
-
"scripts": {
|
|
8
|
-
"prebuild": "npm install --ignore-scripts",
|
|
9
|
-
"prepublishOnly": "npm run build",
|
|
10
|
-
"build": "shx rm -rf dist && tsc -b",
|
|
11
|
-
"format": "prettier --write \"**/*.{ts,tsx,md}\"",
|
|
12
|
-
"lint": "eslint . --max-warnings=0",
|
|
13
|
-
"posttest": "npm run lint",
|
|
14
|
-
"test": "vitest run",
|
|
15
|
-
"test:watch": "vitest"
|
|
16
|
-
},
|
|
17
7
|
"author": "Ian Sung-Schenck",
|
|
18
8
|
"license": "MIT",
|
|
19
9
|
"devDependencies": {
|
|
20
10
|
"@bufbuild/protobuf": "^2.2.3",
|
|
21
11
|
"@changesets/cli": "^2.27.9",
|
|
22
12
|
"@eslint/js": "^9.11.1",
|
|
23
|
-
"@repo/eslint-config": "*",
|
|
24
|
-
"@repo/typescript-config": "*",
|
|
25
13
|
"@types/node": "^22",
|
|
26
14
|
"@vitest/coverage-v8": "^2.1.1",
|
|
27
15
|
"chai": "^5",
|
|
@@ -31,7 +19,9 @@
|
|
|
31
19
|
"typescript": "^5",
|
|
32
20
|
"typescript-eslint": "^8.7.0",
|
|
33
21
|
"vitest": "^2.1.1",
|
|
34
|
-
"@liquidmetal-ai/
|
|
22
|
+
"@liquidmetal-ai/eslint-config": "0.0.0",
|
|
23
|
+
"@liquidmetal-ai/typescript-config": "0.0.0",
|
|
24
|
+
"@liquidmetal-ai/raindrop-framework": "0.4.9"
|
|
35
25
|
},
|
|
36
26
|
"dependencies": {
|
|
37
27
|
"fflate": "^0.8.2"
|
|
@@ -45,5 +35,14 @@
|
|
|
45
35
|
"import": "./dist/*.js",
|
|
46
36
|
"types": "./dist/*.d.ts"
|
|
47
37
|
}
|
|
38
|
+
},
|
|
39
|
+
"scripts": {
|
|
40
|
+
"prebuild": "pnpm install --ignore-scripts",
|
|
41
|
+
"build": "shx rm -rf dist && tsc -b",
|
|
42
|
+
"format": "prettier --write \"**/*.{ts,tsx,md}\"",
|
|
43
|
+
"lint": "eslint . --max-warnings=0",
|
|
44
|
+
"posttest": "pnpm run lint",
|
|
45
|
+
"test": "vitest run",
|
|
46
|
+
"test:watch": "vitest"
|
|
48
47
|
}
|
|
49
|
-
}
|
|
48
|
+
}
|
|
@@ -6,17 +6,17 @@ import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobu
|
|
|
6
6
|
import { enumDesc, fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv1";
|
|
7
7
|
import type { Timestamp } from "@bufbuild/protobuf/wkt";
|
|
8
8
|
import { file_google_protobuf_struct, file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
|
|
9
|
-
import type { BucketLocator, BucketResponse } from "./bucket_name_pb.js";
|
|
10
|
-
import { file_liquidmetal_v1alpha1_bucket_name } from "./bucket_name_pb.js";
|
|
11
9
|
import type { AgentMemoryLocator, AgentMemoryResponse } from "./agent_memory_name_pb.js";
|
|
12
10
|
import { file_liquidmetal_v1alpha1_agent_memory_name } from "./agent_memory_name_pb.js";
|
|
11
|
+
import type { BucketLocator, BucketResponse } from "./bucket_name_pb.js";
|
|
12
|
+
import { file_liquidmetal_v1alpha1_bucket_name } from "./bucket_name_pb.js";
|
|
13
13
|
import type { JsonObject, Message } from "@bufbuild/protobuf";
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* Describes the file liquidmetal/v1alpha1/catalog.proto.
|
|
17
17
|
*/
|
|
18
18
|
export const file_liquidmetal_v1alpha1_catalog: GenFile = /*@__PURE__*/
|
|
19
|
-
fileDesc("CiJsaXF1aWRtZXRhbC92MWFscGhhMS9jYXRhbG9nLnByb3RvEhRsaXF1aWRtZXRhbC52MWFscGhhMSKHAQoTQXBwbGljYXRpb25zUmVxdWVzdBIPCgd1c2VyX2lkGAEgASgJEhcKD29yZ2FuaXphdGlvbl9pZBgCIAEoCRIUCgxzaG93X2RlbGV0ZWQYAyABKAgSHAoPbmV4dF9wYWdlX3Rva2VuGAQgASgJSACIAQFCEgoQX25leHRfcGFnZV90b2tlbiKEBQoUQXBwbGljYXRpb25zUmVzcG9uc2USTAoMYXBwbGljYXRpb25zGAEgAygLMjYubGlxdWlkbWV0YWwudjFhbHBoYTEuQXBwbGljYXRpb25zUmVzcG9uc2UuQXBwbGljYXRpb24SHAoPbmV4dF9wYWdlX3Rva2VuGAIgASgJSACIAQEa6wMKC0FwcGxpY2F0aW9uEgwKBG5hbWUYASABKAkSEgoKdmVyc2lvbl9pZBgCIAEoCRIQCghtYW5pZmVzdBgDIAEoCRISCgVzdWl0ZRgEIAEoCUgAiAEBEi4KCmNyZWF0ZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjMKCmRlbGV0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESEQoJaXNfYWN0aXZlGAggASgIEhcKD29yZ2FuaXphdGlvbl9pZBgJIAEoCRITCgZicmFuY2gYCiABKAlIAogBARIUCgxpc19zYW5kYm94ZWQYCyABKAgSIAoTcHJldmlvdXNfdmVyc2lvbl9pZBgMIAEoCUgDiAEBEi4KBXN0YXRlGA0gASgOMh8ubGlxdWlkbWV0YWwudjFhbHBoYTEuVW5pdFN0YXRlEhEKBGxvY2sYDiABKAlIBIgBAUIICgZfc3VpdGVCDQoLX2RlbGV0ZWRfYXRCCQoHX2JyYW5jaEIWChRfcHJldmlvdXNfdmVyc2lvbl9pZEIHCgVfbG9ja0ISChBfbmV4dF9wYWdlX3Rva2VuItIBChBCb290c3RyYXBSZXF1ZXN0Eg8KB3VzZXJfaWQYASABKAkSFwoPb3JnYW5pemF0aW9uX2lkGAIgASgJEg0KBXRva2VuGAMgASgJEh0KFWNsb3VkZmxhcmVfYWNjb3VudF9pZBgEIAEoCRIfChdjbG91ZGZsYXJlX2JlYXJlcl90b2tlbhgFIAEoCRIjChtsaXF1aWRtZXRhbF9zZXJ2aWNlc19kb21haW4YBiABKAkSIAoYY3VzdG9tZXJfc2VydmljZXNfZG9tYWluGAcgASgJIhMKEUJvb3RzdHJhcFJlc3BvbnNlIiwKKkludGVybmFsQXBwbGljYXRpb25zUmVxdWVzdFBhZ2luYXRpb25Ub2tlbiLeAQoTVXBsb2FkQnVuZGxlUmVxdWVzdBIPCgd1c2VyX2lkGAEgASgJEhcKD29yZ2FuaXphdGlvbl9pZBgCIAEoCRIYChBhcHBsaWNhdGlvbl9uYW1lGAMgASgJEh4KFmFwcGxpY2F0aW9uX3ZlcnNpb25faWQYBCABKAkSEwoLYnVuZGxlX25hbWUYBSABKAkSPQoMYXJjaGl2ZV90eXBlGAYgASgOMicubGlxdWlkbWV0YWwudjFhbHBoYTEuQnVuZGxlQXJjaGl2ZVR5cGUSDwoHYXJjaGl2ZRgHIAEoDCIWChRVcGxvYWRCdW5kbGVSZXNwb25zZSJ7ChVRdWVyeVJlc291cmNlc1JlcXVlc3QSDwoHdXNlcl9pZBgBIAEoCRIXCg9vcmdhbml6YXRpb25faWQYAiABKAkSGAoQYXBwbGljYXRpb25fbmFtZRgDIAEoCRIeChZhcHBsaWNhdGlvbl92ZXJzaW9uX2lkGAQgASgJIvUHChZRdWVyeVJlc291cmNlc1Jlc3BvbnNlEkgKCXJlc291cmNlcxgBIAMoCzI1LmxpcXVpZG1ldGFsLnYxYWxwaGExLlF1ZXJ5UmVzb3VyY2VzUmVzcG9uc2UuUmVzb3VyY2USHAoPbmV4dF9wYWdlX3Rva2VuGAIgASgJSACIAQEa3gYKCFJlc291cmNlEhcKD29yZ2FuaXphdGlvbl9pZBgBIAEoCRIYChBhcHBsaWNhdGlvbl9uYW1lGAIgASgJEh4KFmFwcGxpY2F0aW9uX3ZlcnNpb25faWQYAyABKAkSEwoLcmVzb3VyY2VfaWQYBCABKAkSDAoEbmFtZRgFIAEoCRIMCgR0eXBlGAYgASgJElkKDXJlc291cmNlX3R5cGUYByABKA4yQi5saXF1aWRtZXRhbC52MWFscGhhMS5RdWVyeVJlc291cmNlc1Jlc3BvbnNlLlJlc291cmNlLlJlc291cmNlVHlwZRIrCgphdHRyaWJ1dGVzGAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIuCgpjcmVhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLlAwoMUmVzb3VyY2VUeXBlEh0KGVJFU09VUkNFX1RZUEVfVU5TUEVDSUZJRUQQABIgChxSRVNPVVJDRV9UWVBFX1FVRVVFX0NPTlNVTUVSEAESGAoUUkVTT1VSQ0VfVFlQRV9TQ1JJUFQQAhIUChBSRVNPVVJDRV9UWVBFX0QxEAMSGgoWUkVTT1VSQ0VfVFlQRV9EMV9RVUVSWRAEEhsKF1JFU09VUkNFX1RZUEVfVkVDVE9SSVpFEAUSGQoVUkVTT1VSQ0VfVFlQRV9FTlZfVkFSEAYSGAoUUkVTT1VSQ0VfVFlQRV9CVUNLRVQQBxIXChNSRVNPVVJDRV9UWVBFX1FVRVVFEAgSIAocUkVTT1VSQ0VfVFlQRV9TQ1JJUFRfQklORElORxAJEiUKIVJFU09VUkNFX1RZUEVfQlVDS0VUX05PVElGSUNBVElPThAKEhoKFlJFU09VUkNFX1RZUEVfTUVUQURBVEEQCxIfChtSRVNPVVJDRV9UWVBFX0NVU1RPTV9ET01BSU4QDBIXChNSRVNPVVJDRV9UWVBFX1JPVVRFEA0SHgoaUkVTT1VSQ0VfVFlQRV9TTUFSVF9CVUNLRVQQDhIeChpSRVNPVVJDRV9UWVBFX0FHRU5UX01FTU9SWRAPQhIKEF9uZXh0X3BhZ2VfdG9rZW4ipAQKDURlcGxveVJlcXVlc3QSDwoHdXNlcl9pZBgBIAEoCRIXCg9vcmdhbml6YXRpb25faWQYAiABKAkSRQoMYXBwbGljYXRpb25zGAMgAygLMi8ubGlxdWlkbWV0YWwudjFhbHBoYTEuRGVwbG95UmVxdWVzdC5BcHBsaWNhdGlvbhouChNBcHBsaWNhdGlvbk1ldGFkYXRhEhcKD3J1bnRpbWVfdmVyc2lvbhgBIAEoCRrxAgoLQXBwbGljYXRpb24SDQoFc3VpdGUYASABKAkSEwoLYXBwbGljYXRpb24YAiABKAkSIAoTcHJldmlvdXNfdmVyc2lvbl9pZBgDIAEoCUgAiAEBEh8KEmN1cnJlbnRfdmVyc2lvbl9pZBgEIAEoCUgBiAEBEhMKBmJyYW5jaBgFIAEoCUgCiAEBEhAKCG1hbmlmZXN0GAYgASgJEkkKCG1ldGFkYXRhGAcgASgLMjcubGlxdWlkbWV0YWwudjFhbHBoYTEuRGVwbG95UmVxdWVzdC5BcHBsaWNhdGlvbk1ldGFkYXRhEg0KBWFtZW5kGAggASgIEhYKCWlzX2FjdGl2ZRgJIAEoCEgDiAEBEhEKBGxvY2sYCiABKAlIBIgBAUIWChRfcHJldmlvdXNfdmVyc2lvbl9pZEIVChNfY3VycmVudF92ZXJzaW9uX2lkQgkKB19icmFuY2hCDAoKX2lzX2FjdGl2ZUIHCgVfbG9jayLUAQoORGVwbG95UmVzcG9uc2USFwoPb3JnYW5pemF0aW9uX2lkGAEgASgJEkYKDGFwcGxpY2F0aW9ucxgCIAMoCzIwLmxpcXVpZG1ldGFsLnYxYWxwaGExLkRlcGxveVJlc3BvbnNlLkFwcGxpY2F0aW9uGmEKC0FwcGxpY2F0aW9uEhgKEGFwcGxpY2F0aW9uX25hbWUYASABKAkSGgoSY3VycmVudF92ZXJzaW9uX2lkGAIgASgJEg4KBmJyYW5jaBgDIAEoCRIMCgRsb2NrGAQgASgJIt4BCg5TZXRFbnZzUmVxdWVzdBIPCgd1c2VyX2lkGAEgASgJEhcKD29yZ2FuaXphdGlvbl9pZBgCIAEoCRI2CgRlbnZzGAMgAygLMigubGlxdWlkbWV0YWwudjFhbHBoYTEuU2V0RW52c1JlcXVlc3QuRW52GmoKA0VudhIYChBhcHBsaWNhdGlvbl9uYW1lGAEgASgJEhoKEmN1cnJlbnRfdmVyc2lvbl9pZBgCIAEoCRILCgNrZXkYAyABKAkSDQoFdmFsdWUYBCABKAkSEQoJaXNfc2VjcmV0GAUgASgIIhEKD1NldEVudnNSZXNwb25zZSK8AQoOR2V0RW52c1JlcXVlc3QSDwoHdXNlcl9pZBgBIAEoCRIXCg9vcmdhbml6YXRpb25faWQYAiABKAkSNgoEZW52cxgDIAMoCzIoLmxpcXVpZG1ldGFsLnYxYWxwaGExLkdldEVudnNSZXF1ZXN0LkVudhpICgNFbnYSGAoQYXBwbGljYXRpb25fbmFtZRgBIAEoCRIaChJjdXJyZW50X3ZlcnNpb25faWQYAiABKAkSCwoDa2V5GAMgASgJIrYBCg9HZXRFbnZzUmVzcG9uc2USNwoEZW52cxgBIAMoCzIpLmxpcXVpZG1ldGFsLnYxYWxwaGExLkdldEVudnNSZXNwb25zZS5FbnYaagoDRW52EhgKEGFwcGxpY2F0aW9uX25hbWUYASABKAkSGgoSY3VycmVudF92ZXJzaW9uX2lkGAIgASgJEgsKA2tleRgDIAEoCRINCgV2YWx1ZRgEIAEoCRIRCglpc19zZWNyZXQYBSABKAgiwAEKDlJlbGVhc2VSZXF1ZXN0Eg8KB3VzZXJfaWQYASABKAkSFwoPb3JnYW5pemF0aW9uX2lkGAIgASgJEjgKBWxvY2tzGAMgAygLMikubGlxdWlkbWV0YWwudjFhbHBoYTEuUmVsZWFzZVJlcXVlc3QuTG9jaxpKCgRMb2NrEhgKEGFwcGxpY2F0aW9uX25hbWUYASABKAkSGgoSY3VycmVudF92ZXJzaW9uX2lkGAIgASgJEgwKBGxvY2sYAyABKAkiEQoPUmVsZWFzZVJlc3BvbnNlIsMBCgxXYXRjaFJlcXVlc3QSDwoHdXNlcl9pZBgBIAEoCRIXCg9vcmdhbml6YXRpb25faWQYAiABKAkSRAoMYXBwbGljYXRpb25zGAMgAygLMi4ubGlxdWlkbWV0YWwudjFhbHBoYTEuV2F0Y2hSZXF1ZXN0LkFwcGxpY2F0aW9uGkMKC0FwcGxpY2F0aW9uEhgKEGFwcGxpY2F0aW9uX25hbWUYASABKAkSGgoSY3VycmVudF92ZXJzaW9uX2lkGAIgASgJIpkBCg1XYXRjaFJlc3BvbnNlEhgKEGFwcGxpY2F0aW9uX25hbWUYASABKAkSGgoSY3VycmVudF92ZXJzaW9uX2lkGAIgASgJEhAKCGV2ZW50X2lkGAMgASgJEkAKCmV2ZW50X3R5cGUYBCABKA4yLC5saXF1aWRtZXRhbC52MWFscGhhMS5XYXRjaFJlc3BvbnNlRXZlbnRUeXBlIsUBCg1EZWxldGVSZXF1ZXN0Eg8KB3VzZXJfaWQYASABKAkSFwoPb3JnYW5pemF0aW9uX2lkGAIgASgJEkUKDGFwcGxpY2F0aW9ucxgDIAMoCzIvLmxpcXVpZG1ldGFsLnYxYWxwaGExLkRlbGV0ZVJlcXVlc3QuQXBwbGljYXRpb24aQwoLQXBwbGljYXRpb24SGAoQYXBwbGljYXRpb25fbmFtZRgBIAEoCRIaChJjdXJyZW50X3ZlcnNpb25faWQYAiABKAkiEAoORGVsZXRlUmVzcG9uc2Ui3gEKEFNldEFjdGl2ZVJlcXVlc3QSDwoHdXNlcl9pZBgBIAEoCRIXCg9vcmdhbml6YXRpb25faWQYAiABKAkSSAoMYXBwbGljYXRpb25zGAMgAygLMjIubGlxdWlkbWV0YWwudjFhbHBoYTEuU2V0QWN0aXZlUmVxdWVzdC5BcHBsaWNhdGlvbhpWCgtBcHBsaWNhdGlvbhIYChBhcHBsaWNhdGlvbl9uYW1lGAEgASgJEhoKEmN1cnJlbnRfdmVyc2lvbl9pZBgCIAEoCRIRCglpc19hY3RpdmUYAyABKAgiEwoRU2V0QWN0aXZlUmVzcG9uc2Ui4wEKEVNldFNhbmRib3hSZXF1ZXN0Eg8KB3VzZXJfaWQYASABKAkSFwoPb3JnYW5pemF0aW9uX2lkGAIgASgJEkkKDGFwcGxpY2F0aW9ucxgDIAMoCzIzLmxpcXVpZG1ldGFsLnYxYWxwaGExLlNldFNhbmRib3hSZXF1ZXN0LkFwcGxpY2F0aW9uGlkKC0FwcGxpY2F0aW9uEhgKEGFwcGxpY2F0aW9uX25hbWUYASABKAkSGgoSY3VycmVudF92ZXJzaW9uX2lkGAIgASgJEhQKDGlzX3NhbmRib3hlZBgDIAEoCCIUChJTZXRTYW5kYm94UmVzcG9uc2UibwoNU3RhdHVzUmVxdWVzdBIPCgd1c2VyX2lkGAEgASgJEhcKD29yZ2FuaXphdGlvbl9pZBgCIAEoCRIYChBhcHBsaWNhdGlvbl9uYW1lGAMgASgJEhoKEmN1cnJlbnRfdmVyc2lvbl9pZBgEIAEoCSLwAQoOU3RhdHVzUmVzcG9uc2USLgoFc3RhdGUYASABKA4yHy5saXF1aWRtZXRhbC52MWFscGhhMS5Vbml0U3RhdGUSPAoHbW9kdWxlcxgCIAMoCzIrLmxpcXVpZG1ldGFsLnYxYWxwaGExLlN0YXR1c1Jlc3BvbnNlLk1vZHVsZRIRCgRsb2NrGAMgASgJSACIAQEaVAoGTW9kdWxlEgwKBG5hbWUYASABKAkSLgoFc3RhdGUYAiABKA4yHy5saXF1aWRtZXRhbC52MWFscGhhMS5Vbml0U3RhdGUSDAoEdXJscxgDIAMoCUIHCgVfbG9jayLdAQoTUXVlcnlNb2R1bGVzUmVxdWVzdBIPCgd1c2VyX2lkGAEgASgJEhcKD29yZ2FuaXphdGlvbl9pZBgCIAEoCRIdChBhcHBsaWNhdGlvbl9uYW1lGAMgASgJSACIAQESIwoWYXBwbGljYXRpb25fdmVyc2lvbl9pZBgEIAEoCUgBiAEBEhgKC21vZHVsZV90eXBlGAUgASgJSAKIAQFCEwoRX2FwcGxpY2F0aW9uX25hbWVCGQoXX2FwcGxpY2F0aW9uX3ZlcnNpb25faWRCDgoMX21vZHVsZV90eXBlIvINChRRdWVyeU1vZHVsZXNSZXNwb25zZRJCCgdtb2R1bGVzGAEgAygLMjEubGlxdWlkbWV0YWwudjFhbHBoYTEuUXVlcnlNb2R1bGVzUmVzcG9uc2UuTW9kdWxlEhwKD25leHRfcGFnZV90b2tlbhgCIAEoCUgAiAEBGiAKEVNtYXJ0QnVja2V0TW9kdWxlEgsKA3VybBgBIAEoCRobCgxCdWNrZXRNb2R1bGUSCwoDdXJsGAEgASgJGg8KDVNlcnZpY2VNb2R1bGUaEAoOT2JzZXJ2ZXJNb2R1bGUaDAoKVGFza01vZHVsZRoTChFTUUxEYXRhYmFzZU1vZHVsZRoTChFWZWN0b3JJbmRleE1vZHVsZRoNCgtRdWV1ZU1vZHVsZRoPCg1LVlN0b3JlTW9kdWxlGhMKEUFnZW50TWVtb3J5TW9kdWxlGsUICgZNb2R1bGUSFwoPb3JnYW5pemF0aW9uX2lkGAEgASgJEhgKEGFwcGxpY2F0aW9uX25hbWUYAiABKAkSHgoWYXBwbGljYXRpb25fdmVyc2lvbl9pZBgDIAEoCRIRCgltb2R1bGVfaWQYBCABKAkSDAoEbmFtZRgFIAEoCRIMCgR0eXBlGAYgASgJEkoKC21vZHVsZV90eXBlGAcgASgOMjUubGlxdWlkbWV0YWwudjFhbHBoYTEuUXVlcnlNb2R1bGVzUmVzcG9uc2UuTW9kdWxlVHlwZRI1Cgxjb252ZXJnZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESVAoMc21hcnRfYnVja2V0GAkgASgLMjwubGlxdWlkbWV0YWwudjFhbHBoYTEuUXVlcnlNb2R1bGVzUmVzcG9uc2UuU21hcnRCdWNrZXRNb2R1bGVIABJJCgZidWNrZXQYCiABKAsyNy5saXF1aWRtZXRhbC52MWFscGhhMS5RdWVyeU1vZHVsZXNSZXNwb25zZS5CdWNrZXRNb2R1bGVIABJLCgdzZXJ2aWNlGAsgASgLMjgubGlxdWlkbWV0YWwudjFhbHBoYTEuUXVlcnlNb2R1bGVzUmVzcG9uc2UuU2VydmljZU1vZHVsZUgAEk0KCG9ic2VydmVyGAwgASgLMjkubGlxdWlkbWV0YWwudjFhbHBoYTEuUXVlcnlNb2R1bGVzUmVzcG9uc2UuT2JzZXJ2ZXJNb2R1bGVIABJFCgR0YXNrGA0gASgLMjUubGlxdWlkbWV0YWwudjFhbHBoYTEuUXVlcnlNb2R1bGVzUmVzcG9uc2UuVGFza01vZHVsZUgAElQKDHNxbF9kYXRhYmFzZRgOIAEoCzI8LmxpcXVpZG1ldGFsLnYxYWxwaGExLlF1ZXJ5TW9kdWxlc1Jlc3BvbnNlLlNRTERhdGFiYXNlTW9kdWxlSAASVAoMdmVjdG9yX2luZGV4GA8gASgLMjwubGlxdWlkbWV0YWwudjFhbHBoYTEuUXVlcnlNb2R1bGVzUmVzcG9uc2UuVmVjdG9ySW5kZXhNb2R1bGVIABJHCgVxdWV1ZRgQIAEoCzI2LmxpcXVpZG1ldGFsLnYxYWxwaGExLlF1ZXJ5TW9kdWxlc1Jlc3BvbnNlLlF1ZXVlTW9kdWxlSAASTAoIa3Zfc3RvcmUYESABKAsyOC5saXF1aWRtZXRhbC52MWFscGhhMS5RdWVyeU1vZHVsZXNSZXNwb25zZS5LVlN0b3JlTW9kdWxlSAASVAoMYWdlbnRfbWVtb3J5GBIgASgLMjwubGlxdWlkbWV0YWwudjFhbHBoYTEuUXVlcnlNb2R1bGVzUmVzcG9uc2UuQWdlbnRNZW1vcnlNb2R1bGVIAEIICgZtb2R1bGVCDwoNX2NvbnZlcmdlZF9hdCLMAgoKTW9kdWxlVHlwZRIbChdNT0RVTEVfVFlQRV9VTlNQRUNJRklFRBAAEhwKGE1PRFVMRV9UWVBFX1NNQVJUX0JVQ0tFVBABEhYKEk1PRFVMRV9UWVBFX0JVQ0tFVBACEhcKE01PRFVMRV9UWVBFX1NFUlZJQ0UQAxIYChRNT0RVTEVfVFlQRV9PQlNFUlZFUhAEEhQKEE1PRFVMRV9UWVBFX1RBU0sQBRIcChhNT0RVTEVfVFlQRV9TUUxfREFUQUJBU0UQBhIcChhNT0RVTEVfVFlQRV9WRUNUT1JfSU5ERVgQBxIXChNNT0RVTEVfVFlQRV9FTlZfVkFSEAgSFQoRTU9EVUxFX1RZUEVfUVVFVUUQCRIYChRNT0RVTEVfVFlQRV9LVl9TVE9SRRAKEhwKGE1PRFVMRV9UWVBFX0FHRU5UX01FTU9SWRALQhIKEF9uZXh0X3BhZ2VfdG9rZW4ikAEKJlJlc29sdmVCdWNrZXRMb2NhdGlvblRvTW9kdWxlSWRSZXF1ZXN0Eg8KB3VzZXJfaWQYASABKAkSFwoPb3JnYW5pemF0aW9uX2lkGAIgASgJEjwKD2J1Y2tldF9sb2NhdGlvbhgDIAEoCzIjLmxpcXVpZG1ldGFsLnYxYWxwaGExLkJ1Y2tldExvY2F0b3IiZQomUmVzb2x2ZU1vZHVsZUlkVG9CdWNrZXRMb2NhdGlvblJlcXVlc3QSDwoHdXNlcl9pZBgBIAEoCRIXCg9vcmdhbml6YXRpb25faWQYAiABKAkSEQoJbW9kdWxlX2lkGAMgASgJIl8KJ1Jlc29sdmVCdWNrZXRMb2NhdGlvblRvTW9kdWxlSWRSZXNwb25zZRI0CgZidWNrZXQYASABKAsyJC5saXF1aWRtZXRhbC52MWFscGhhMS5CdWNrZXRSZXNwb25zZSJfCidSZXNvbHZlTW9kdWxlSWRUb0J1Y2tldExvY2F0aW9uUmVzcG9uc2USNAoGYnVja2V0GAEgASgLMiQubGlxdWlkbWV0YWwudjFhbHBoYTEuQnVja2V0UmVzcG9uc2UioAEKK1Jlc29sdmVBZ2VudE1lbW9yeUxvY2F0aW9uVG9Nb2R1bGVJZFJlcXVlc3QSDwoHdXNlcl9pZBgBIAEoCRIXCg9vcmdhbml6YXRpb25faWQYAiABKAkSRwoVYWdlbnRfbWVtb3J5X2xvY2F0aW9uGAMgASgLMigubGlxdWlkbWV0YWwudjFhbHBoYTEuQWdlbnRNZW1vcnlMb2NhdG9yImoKK1Jlc29sdmVNb2R1bGVJZFRvQWdlbnRNZW1vcnlMb2NhdGlvblJlcXVlc3QSDwoHdXNlcl9pZBgBIAEoCRIXCg9vcmdhbml6YXRpb25faWQYAiABKAkSEQoJbW9kdWxlX2lkGAMgASgJIm8KLFJlc29sdmVBZ2VudE1lbW9yeUxvY2F0aW9uVG9Nb2R1bGVJZFJlc3BvbnNlEj8KDGFnZW50X21lbW9yeRgBIAEoCzIpLmxpcXVpZG1ldGFsLnYxYWxwaGExLkFnZW50TWVtb3J5UmVzcG9uc2UibwosUmVzb2x2ZU1vZHVsZUlkVG9BZ2VudE1lbW9yeUxvY2F0aW9uUmVzcG9uc2USPwoMYWdlbnRfbWVtb3J5GAEgASgLMikubGlxdWlkbWV0YWwudjFhbHBoYTEuQWdlbnRNZW1vcnlSZXNwb25zZSrSAQoJVW5pdFN0YXRlEhoKFlVOSVRfU1RBVEVfVU5TUEVDSUZJRUQQABIWChJVTklUX1NUQVRFX1BFTkRJTkcQARIXChNVTklUX1NUQVRFX1NUQVJUSU5HEAISFgoSVU5JVF9TVEFURV9SVU5OSU5HEAMSFwoTVU5JVF9TVEFURV9TVE9QUElORxAEEhYKElVOSVRfU1RBVEVfU1RPUFBFRBAFEhcKE1VOSVRfU1RBVEVfREVMRVRJTkcQBhIWChJVTklUX1NUQVRFX0RFTEVURUQQBypVChFCdW5kbGVBcmNoaXZlVHlwZRIjCh9CVU5ETEVfQVJDSElWRV9UWVBFX1VOU1BFQ0lGSUVEEAASGwoXQlVORExFX0FSQ0hJVkVfVFlQRV9aSVAQASqSAQoWV2F0Y2hSZXNwb25zZUV2ZW50VHlwZRIpCiVXQVRDSF9SRVNQT05TRV9FVkVOVF9UWVBFX1VOU1BFQ0lGSUVEEAASJQohV0FUQ0hfUkVTUE9OU0VfRVZFTlRfVFlQRV9NRVNTQUdFEAESJgoiV0FUQ0hfUkVTUE9OU0VfRVZFTlRfVFlQRV9DT01QTEVURRACMswPCg5DYXRhbG9nU2VydmljZRJrCg5RdWVyeVJlc291cmNlcxIrLmxpcXVpZG1ldGFsLnYxYWxwaGExLlF1ZXJ5UmVzb3VyY2VzUmVxdWVzdBosLmxpcXVpZG1ldGFsLnYxYWxwaGExLlF1ZXJ5UmVzb3VyY2VzUmVzcG9uc2USZQoMUXVlcnlNb2R1bGVzEikubGlxdWlkbWV0YWwudjFhbHBoYTEuUXVlcnlNb2R1bGVzUmVxdWVzdBoqLmxpcXVpZG1ldGFsLnYxYWxwaGExLlF1ZXJ5TW9kdWxlc1Jlc3BvbnNlElwKCUJvb3RzdHJhcBImLmxpcXVpZG1ldGFsLnYxYWxwaGExLkJvb3RzdHJhcFJlcXVlc3QaJy5saXF1aWRtZXRhbC52MWFscGhhMS5Cb290c3RyYXBSZXNwb25zZRJlCgxBcHBsaWNhdGlvbnMSKS5saXF1aWRtZXRhbC52MWFscGhhMS5BcHBsaWNhdGlvbnNSZXF1ZXN0GioubGlxdWlkbWV0YWwudjFhbHBoYTEuQXBwbGljYXRpb25zUmVzcG9uc2USUwoGRGVwbG95EiMubGlxdWlkbWV0YWwudjFhbHBoYTEuRGVwbG95UmVxdWVzdBokLmxpcXVpZG1ldGFsLnYxYWxwaGExLkRlcGxveVJlc3BvbnNlEmUKDFVwbG9hZEJ1bmRsZRIpLmxpcXVpZG1ldGFsLnYxYWxwaGExLlVwbG9hZEJ1bmRsZVJlcXVlc3QaKi5saXF1aWRtZXRhbC52MWFscGhhMS5VcGxvYWRCdW5kbGVSZXNwb25zZRJWCgdTZXRFbnZzEiQubGlxdWlkbWV0YWwudjFhbHBoYTEuU2V0RW52c1JlcXVlc3QaJS5saXF1aWRtZXRhbC52MWFscGhhMS5TZXRFbnZzUmVzcG9uc2USVgoHR2V0RW52cxIkLmxpcXVpZG1ldGFsLnYxYWxwaGExLkdldEVudnNSZXF1ZXN0GiUubGlxdWlkbWV0YWwudjFhbHBoYTEuR2V0RW52c1Jlc3BvbnNlElYKB1JlbGVhc2USJC5saXF1aWRtZXRhbC52MWFscGhhMS5SZWxlYXNlUmVxdWVzdBolLmxpcXVpZG1ldGFsLnYxYWxwaGExLlJlbGVhc2VSZXNwb25zZRJSCgVXYXRjaBIiLmxpcXVpZG1ldGFsLnYxYWxwaGExLldhdGNoUmVxdWVzdBojLmxpcXVpZG1ldGFsLnYxYWxwaGExLldhdGNoUmVzcG9uc2UwARJTCgZEZWxldGUSIy5saXF1aWRtZXRhbC52MWFscGhhMS5EZWxldGVSZXF1ZXN0GiQubGlxdWlkbWV0YWwudjFhbHBoYTEuRGVsZXRlUmVzcG9uc2USXAoJU2V0QWN0aXZlEiYubGlxdWlkbWV0YWwudjFhbHBoYTEuU2V0QWN0aXZlUmVxdWVzdBonLmxpcXVpZG1ldGFsLnYxYWxwaGExLlNldEFjdGl2ZVJlc3BvbnNlEl8KClNldFNhbmRib3gSJy5saXF1aWRtZXRhbC52MWFscGhhMS5TZXRTYW5kYm94UmVxdWVzdBooLmxpcXVpZG1ldGFsLnYxYWxwaGExLlNldFNhbmRib3hSZXNwb25zZRJTCgZTdGF0dXMSIy5saXF1aWRtZXRhbC52MWFscGhhMS5TdGF0dXNSZXF1ZXN0GiQubGlxdWlkbWV0YWwudjFhbHBoYTEuU3RhdHVzUmVzcG9uc2USngEKH1Jlc29sdmVCdWNrZXRMb2NhdGlvblRvTW9kdWxlSWQSPC5saXF1aWRtZXRhbC52MWFscGhhMS5SZXNvbHZlQnVja2V0TG9jYXRpb25Ub01vZHVsZUlkUmVxdWVzdBo9LmxpcXVpZG1ldGFsLnYxYWxwaGExLlJlc29sdmVCdWNrZXRMb2NhdGlvblRvTW9kdWxlSWRSZXNwb25zZRKeAQofUmVzb2x2ZU1vZHVsZUlkVG9CdWNrZXRMb2NhdGlvbhI8LmxpcXVpZG1ldGFsLnYxYWxwaGExLlJlc29sdmVNb2R1bGVJZFRvQnVja2V0TG9jYXRpb25SZXF1ZXN0Gj0ubGlxdWlkbWV0YWwudjFhbHBoYTEuUmVzb2x2ZU1vZHVsZUlkVG9CdWNrZXRMb2NhdGlvblJlc3BvbnNlEq0BCiRSZXNvbHZlQWdlbnRNZW1vcnlMb2NhdGlvblRvTW9kdWxlSWQSQS5saXF1aWRtZXRhbC52MWFscGhhMS5SZXNvbHZlQWdlbnRNZW1vcnlMb2NhdGlvblRvTW9kdWxlSWRSZXF1ZXN0GkIubGlxdWlkbWV0YWwudjFhbHBoYTEuUmVzb2x2ZUFnZW50TWVtb3J5TG9jYXRpb25Ub01vZHVsZUlkUmVzcG9uc2USrQEKJFJlc29sdmVNb2R1bGVJZFRvQWdlbnRNZW1vcnlMb2NhdGlvbhJBLmxpcXVpZG1ldGFsLnYxYWxwaGExLlJlc29sdmVNb2R1bGVJZFRvQWdlbnRNZW1vcnlMb2NhdGlvblJlcXVlc3QaQi5saXF1aWRtZXRhbC52MWFscGhhMS5SZXNvbHZlTW9kdWxlSWRUb0FnZW50TWVtb3J5TG9jYXRpb25SZXNwb25zZULnAQoYY29tLmxpcXVpZG1ldGFsLnYxYWxwaGExQgxDYXRhbG9nUHJvdG9QAVpMZ2l0aHViLmNvbS9saXF1aWRtZXRhbC1haS9wcm90b2dlbjIvbGlxdWlkbWV0YWwvdjFhbHBoYTE7bGlxdWlkbWV0YWx2MWFscGhhMaICA0xYWKoCFExpcXVpZG1ldGFsLlYxYWxwaGExygIUTGlxdWlkbWV0YWxcVjFhbHBoYTHiAiBMaXF1aWRtZXRhbFxWMWFscGhhMVxHUEJNZXRhZGF0YeoCFUxpcXVpZG1ldGFsOjpWMWFscGhhMWIGcHJvdG8z", [file_google_protobuf_struct, file_google_protobuf_timestamp, file_liquidmetal_v1alpha1_bucket_name, file_liquidmetal_v1alpha1_agent_memory_name]);
|
|
19
|
+
fileDesc("CiJsaXF1aWRtZXRhbC92MWFscGhhMS9jYXRhbG9nLnByb3RvEhRsaXF1aWRtZXRhbC52MWFscGhhMSKHAQoTQXBwbGljYXRpb25zUmVxdWVzdBIPCgd1c2VyX2lkGAEgASgJEhcKD29yZ2FuaXphdGlvbl9pZBgCIAEoCRIUCgxzaG93X2RlbGV0ZWQYAyABKAgSHAoPbmV4dF9wYWdlX3Rva2VuGAQgASgJSACIAQFCEgoQX25leHRfcGFnZV90b2tlbiKEBQoUQXBwbGljYXRpb25zUmVzcG9uc2USTAoMYXBwbGljYXRpb25zGAEgAygLMjYubGlxdWlkbWV0YWwudjFhbHBoYTEuQXBwbGljYXRpb25zUmVzcG9uc2UuQXBwbGljYXRpb24SHAoPbmV4dF9wYWdlX3Rva2VuGAIgASgJSACIAQEa6wMKC0FwcGxpY2F0aW9uEgwKBG5hbWUYASABKAkSEgoKdmVyc2lvbl9pZBgCIAEoCRIQCghtYW5pZmVzdBgDIAEoCRISCgVzdWl0ZRgEIAEoCUgAiAEBEi4KCmNyZWF0ZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjMKCmRlbGV0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESEQoJaXNfYWN0aXZlGAggASgIEhcKD29yZ2FuaXphdGlvbl9pZBgJIAEoCRITCgZicmFuY2gYCiABKAlIAogBARIUCgxpc19zYW5kYm94ZWQYCyABKAgSIAoTcHJldmlvdXNfdmVyc2lvbl9pZBgMIAEoCUgDiAEBEi4KBXN0YXRlGA0gASgOMh8ubGlxdWlkbWV0YWwudjFhbHBoYTEuVW5pdFN0YXRlEhEKBGxvY2sYDiABKAlIBIgBAUIICgZfc3VpdGVCDQoLX2RlbGV0ZWRfYXRCCQoHX2JyYW5jaEIWChRfcHJldmlvdXNfdmVyc2lvbl9pZEIHCgVfbG9ja0ISChBfbmV4dF9wYWdlX3Rva2VuItIBChBCb290c3RyYXBSZXF1ZXN0Eg8KB3VzZXJfaWQYASABKAkSFwoPb3JnYW5pemF0aW9uX2lkGAIgASgJEg0KBXRva2VuGAMgASgJEh0KFWNsb3VkZmxhcmVfYWNjb3VudF9pZBgEIAEoCRIfChdjbG91ZGZsYXJlX2JlYXJlcl90b2tlbhgFIAEoCRIjChtsaXF1aWRtZXRhbF9zZXJ2aWNlc19kb21haW4YBiABKAkSIAoYY3VzdG9tZXJfc2VydmljZXNfZG9tYWluGAcgASgJIhMKEUJvb3RzdHJhcFJlc3BvbnNlIiwKKkludGVybmFsQXBwbGljYXRpb25zUmVxdWVzdFBhZ2luYXRpb25Ub2tlbiLeAQoTVXBsb2FkQnVuZGxlUmVxdWVzdBIPCgd1c2VyX2lkGAEgASgJEhcKD29yZ2FuaXphdGlvbl9pZBgCIAEoCRIYChBhcHBsaWNhdGlvbl9uYW1lGAMgASgJEh4KFmFwcGxpY2F0aW9uX3ZlcnNpb25faWQYBCABKAkSEwoLYnVuZGxlX25hbWUYBSABKAkSPQoMYXJjaGl2ZV90eXBlGAYgASgOMicubGlxdWlkbWV0YWwudjFhbHBoYTEuQnVuZGxlQXJjaGl2ZVR5cGUSDwoHYXJjaGl2ZRgHIAEoDCIWChRVcGxvYWRCdW5kbGVSZXNwb25zZSJ7ChVRdWVyeVJlc291cmNlc1JlcXVlc3QSDwoHdXNlcl9pZBgBIAEoCRIXCg9vcmdhbml6YXRpb25faWQYAiABKAkSGAoQYXBwbGljYXRpb25fbmFtZRgDIAEoCRIeChZhcHBsaWNhdGlvbl92ZXJzaW9uX2lkGAQgASgJIvUHChZRdWVyeVJlc291cmNlc1Jlc3BvbnNlEkgKCXJlc291cmNlcxgBIAMoCzI1LmxpcXVpZG1ldGFsLnYxYWxwaGExLlF1ZXJ5UmVzb3VyY2VzUmVzcG9uc2UuUmVzb3VyY2USHAoPbmV4dF9wYWdlX3Rva2VuGAIgASgJSACIAQEa3gYKCFJlc291cmNlEhcKD29yZ2FuaXphdGlvbl9pZBgBIAEoCRIYChBhcHBsaWNhdGlvbl9uYW1lGAIgASgJEh4KFmFwcGxpY2F0aW9uX3ZlcnNpb25faWQYAyABKAkSEwoLcmVzb3VyY2VfaWQYBCABKAkSDAoEbmFtZRgFIAEoCRIMCgR0eXBlGAYgASgJElkKDXJlc291cmNlX3R5cGUYByABKA4yQi5saXF1aWRtZXRhbC52MWFscGhhMS5RdWVyeVJlc291cmNlc1Jlc3BvbnNlLlJlc291cmNlLlJlc291cmNlVHlwZRIrCgphdHRyaWJ1dGVzGAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIuCgpjcmVhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLlAwoMUmVzb3VyY2VUeXBlEh0KGVJFU09VUkNFX1RZUEVfVU5TUEVDSUZJRUQQABIgChxSRVNPVVJDRV9UWVBFX1FVRVVFX0NPTlNVTUVSEAESGAoUUkVTT1VSQ0VfVFlQRV9TQ1JJUFQQAhIUChBSRVNPVVJDRV9UWVBFX0QxEAMSGgoWUkVTT1VSQ0VfVFlQRV9EMV9RVUVSWRAEEhsKF1JFU09VUkNFX1RZUEVfVkVDVE9SSVpFEAUSGQoVUkVTT1VSQ0VfVFlQRV9FTlZfVkFSEAYSGAoUUkVTT1VSQ0VfVFlQRV9CVUNLRVQQBxIXChNSRVNPVVJDRV9UWVBFX1FVRVVFEAgSIAocUkVTT1VSQ0VfVFlQRV9TQ1JJUFRfQklORElORxAJEiUKIVJFU09VUkNFX1RZUEVfQlVDS0VUX05PVElGSUNBVElPThAKEhoKFlJFU09VUkNFX1RZUEVfTUVUQURBVEEQCxIfChtSRVNPVVJDRV9UWVBFX0NVU1RPTV9ET01BSU4QDBIXChNSRVNPVVJDRV9UWVBFX1JPVVRFEA0SHgoaUkVTT1VSQ0VfVFlQRV9TTUFSVF9CVUNLRVQQDhIeChpSRVNPVVJDRV9UWVBFX0FHRU5UX01FTU9SWRAPQhIKEF9uZXh0X3BhZ2VfdG9rZW4ipAQKDURlcGxveVJlcXVlc3QSDwoHdXNlcl9pZBgBIAEoCRIXCg9vcmdhbml6YXRpb25faWQYAiABKAkSRQoMYXBwbGljYXRpb25zGAMgAygLMi8ubGlxdWlkbWV0YWwudjFhbHBoYTEuRGVwbG95UmVxdWVzdC5BcHBsaWNhdGlvbhouChNBcHBsaWNhdGlvbk1ldGFkYXRhEhcKD3J1bnRpbWVfdmVyc2lvbhgBIAEoCRrxAgoLQXBwbGljYXRpb24SDQoFc3VpdGUYASABKAkSEwoLYXBwbGljYXRpb24YAiABKAkSIAoTcHJldmlvdXNfdmVyc2lvbl9pZBgDIAEoCUgAiAEBEh8KEmN1cnJlbnRfdmVyc2lvbl9pZBgEIAEoCUgBiAEBEhMKBmJyYW5jaBgFIAEoCUgCiAEBEhAKCG1hbmlmZXN0GAYgASgJEkkKCG1ldGFkYXRhGAcgASgLMjcubGlxdWlkbWV0YWwudjFhbHBoYTEuRGVwbG95UmVxdWVzdC5BcHBsaWNhdGlvbk1ldGFkYXRhEg0KBWFtZW5kGAggASgIEhYKCWlzX2FjdGl2ZRgJIAEoCEgDiAEBEhEKBGxvY2sYCiABKAlIBIgBAUIWChRfcHJldmlvdXNfdmVyc2lvbl9pZEIVChNfY3VycmVudF92ZXJzaW9uX2lkQgkKB19icmFuY2hCDAoKX2lzX2FjdGl2ZUIHCgVfbG9jayLUAQoORGVwbG95UmVzcG9uc2USFwoPb3JnYW5pemF0aW9uX2lkGAEgASgJEkYKDGFwcGxpY2F0aW9ucxgCIAMoCzIwLmxpcXVpZG1ldGFsLnYxYWxwaGExLkRlcGxveVJlc3BvbnNlLkFwcGxpY2F0aW9uGmEKC0FwcGxpY2F0aW9uEhgKEGFwcGxpY2F0aW9uX25hbWUYASABKAkSGgoSY3VycmVudF92ZXJzaW9uX2lkGAIgASgJEg4KBmJyYW5jaBgDIAEoCRIMCgRsb2NrGAQgASgJIt4BCg5TZXRFbnZzUmVxdWVzdBIPCgd1c2VyX2lkGAEgASgJEhcKD29yZ2FuaXphdGlvbl9pZBgCIAEoCRI2CgRlbnZzGAMgAygLMigubGlxdWlkbWV0YWwudjFhbHBoYTEuU2V0RW52c1JlcXVlc3QuRW52GmoKA0VudhIYChBhcHBsaWNhdGlvbl9uYW1lGAEgASgJEhoKEmN1cnJlbnRfdmVyc2lvbl9pZBgCIAEoCRILCgNrZXkYAyABKAkSDQoFdmFsdWUYBCABKAkSEQoJaXNfc2VjcmV0GAUgASgIIhEKD1NldEVudnNSZXNwb25zZSK8AQoOR2V0RW52c1JlcXVlc3QSDwoHdXNlcl9pZBgBIAEoCRIXCg9vcmdhbml6YXRpb25faWQYAiABKAkSNgoEZW52cxgDIAMoCzIoLmxpcXVpZG1ldGFsLnYxYWxwaGExLkdldEVudnNSZXF1ZXN0LkVudhpICgNFbnYSGAoQYXBwbGljYXRpb25fbmFtZRgBIAEoCRIaChJjdXJyZW50X3ZlcnNpb25faWQYAiABKAkSCwoDa2V5GAMgASgJIrYBCg9HZXRFbnZzUmVzcG9uc2USNwoEZW52cxgBIAMoCzIpLmxpcXVpZG1ldGFsLnYxYWxwaGExLkdldEVudnNSZXNwb25zZS5FbnYaagoDRW52EhgKEGFwcGxpY2F0aW9uX25hbWUYASABKAkSGgoSY3VycmVudF92ZXJzaW9uX2lkGAIgASgJEgsKA2tleRgDIAEoCRINCgV2YWx1ZRgEIAEoCRIRCglpc19zZWNyZXQYBSABKAgiwAEKDlJlbGVhc2VSZXF1ZXN0Eg8KB3VzZXJfaWQYASABKAkSFwoPb3JnYW5pemF0aW9uX2lkGAIgASgJEjgKBWxvY2tzGAMgAygLMikubGlxdWlkbWV0YWwudjFhbHBoYTEuUmVsZWFzZVJlcXVlc3QuTG9jaxpKCgRMb2NrEhgKEGFwcGxpY2F0aW9uX25hbWUYASABKAkSGgoSY3VycmVudF92ZXJzaW9uX2lkGAIgASgJEgwKBGxvY2sYAyABKAkiEQoPUmVsZWFzZVJlc3BvbnNlIsMBCgxXYXRjaFJlcXVlc3QSDwoHdXNlcl9pZBgBIAEoCRIXCg9vcmdhbml6YXRpb25faWQYAiABKAkSRAoMYXBwbGljYXRpb25zGAMgAygLMi4ubGlxdWlkbWV0YWwudjFhbHBoYTEuV2F0Y2hSZXF1ZXN0LkFwcGxpY2F0aW9uGkMKC0FwcGxpY2F0aW9uEhgKEGFwcGxpY2F0aW9uX25hbWUYASABKAkSGgoSY3VycmVudF92ZXJzaW9uX2lkGAIgASgJIpkBCg1XYXRjaFJlc3BvbnNlEhgKEGFwcGxpY2F0aW9uX25hbWUYASABKAkSGgoSY3VycmVudF92ZXJzaW9uX2lkGAIgASgJEhAKCGV2ZW50X2lkGAMgASgJEkAKCmV2ZW50X3R5cGUYBCABKA4yLC5saXF1aWRtZXRhbC52MWFscGhhMS5XYXRjaFJlc3BvbnNlRXZlbnRUeXBlIsUBCg1EZWxldGVSZXF1ZXN0Eg8KB3VzZXJfaWQYASABKAkSFwoPb3JnYW5pemF0aW9uX2lkGAIgASgJEkUKDGFwcGxpY2F0aW9ucxgDIAMoCzIvLmxpcXVpZG1ldGFsLnYxYWxwaGExLkRlbGV0ZVJlcXVlc3QuQXBwbGljYXRpb24aQwoLQXBwbGljYXRpb24SGAoQYXBwbGljYXRpb25fbmFtZRgBIAEoCRIaChJjdXJyZW50X3ZlcnNpb25faWQYAiABKAkiEAoORGVsZXRlUmVzcG9uc2Ui3gEKEFNldEFjdGl2ZVJlcXVlc3QSDwoHdXNlcl9pZBgBIAEoCRIXCg9vcmdhbml6YXRpb25faWQYAiABKAkSSAoMYXBwbGljYXRpb25zGAMgAygLMjIubGlxdWlkbWV0YWwudjFhbHBoYTEuU2V0QWN0aXZlUmVxdWVzdC5BcHBsaWNhdGlvbhpWCgtBcHBsaWNhdGlvbhIYChBhcHBsaWNhdGlvbl9uYW1lGAEgASgJEhoKEmN1cnJlbnRfdmVyc2lvbl9pZBgCIAEoCRIRCglpc19hY3RpdmUYAyABKAgiEwoRU2V0QWN0aXZlUmVzcG9uc2Ui4wEKEVNldFNhbmRib3hSZXF1ZXN0Eg8KB3VzZXJfaWQYASABKAkSFwoPb3JnYW5pemF0aW9uX2lkGAIgASgJEkkKDGFwcGxpY2F0aW9ucxgDIAMoCzIzLmxpcXVpZG1ldGFsLnYxYWxwaGExLlNldFNhbmRib3hSZXF1ZXN0LkFwcGxpY2F0aW9uGlkKC0FwcGxpY2F0aW9uEhgKEGFwcGxpY2F0aW9uX25hbWUYASABKAkSGgoSY3VycmVudF92ZXJzaW9uX2lkGAIgASgJEhQKDGlzX3NhbmRib3hlZBgDIAEoCCIUChJTZXRTYW5kYm94UmVzcG9uc2UibwoNU3RhdHVzUmVxdWVzdBIPCgd1c2VyX2lkGAEgASgJEhcKD29yZ2FuaXphdGlvbl9pZBgCIAEoCRIYChBhcHBsaWNhdGlvbl9uYW1lGAMgASgJEhoKEmN1cnJlbnRfdmVyc2lvbl9pZBgEIAEoCSLwAQoOU3RhdHVzUmVzcG9uc2USLgoFc3RhdGUYASABKA4yHy5saXF1aWRtZXRhbC52MWFscGhhMS5Vbml0U3RhdGUSPAoHbW9kdWxlcxgCIAMoCzIrLmxpcXVpZG1ldGFsLnYxYWxwaGExLlN0YXR1c1Jlc3BvbnNlLk1vZHVsZRIRCgRsb2NrGAMgASgJSACIAQEaVAoGTW9kdWxlEgwKBG5hbWUYASABKAkSLgoFc3RhdGUYAiABKA4yHy5saXF1aWRtZXRhbC52MWFscGhhMS5Vbml0U3RhdGUSDAoEdXJscxgDIAMoCUIHCgVfbG9jayLdAQoTUXVlcnlNb2R1bGVzUmVxdWVzdBIPCgd1c2VyX2lkGAEgASgJEhcKD29yZ2FuaXphdGlvbl9pZBgCIAEoCRIdChBhcHBsaWNhdGlvbl9uYW1lGAMgASgJSACIAQESIwoWYXBwbGljYXRpb25fdmVyc2lvbl9pZBgEIAEoCUgBiAEBEhgKC21vZHVsZV90eXBlGAUgASgJSAKIAQFCEwoRX2FwcGxpY2F0aW9uX25hbWVCGQoXX2FwcGxpY2F0aW9uX3ZlcnNpb25faWRCDgoMX21vZHVsZV90eXBlIvINChRRdWVyeU1vZHVsZXNSZXNwb25zZRJCCgdtb2R1bGVzGAEgAygLMjEubGlxdWlkbWV0YWwudjFhbHBoYTEuUXVlcnlNb2R1bGVzUmVzcG9uc2UuTW9kdWxlEhwKD25leHRfcGFnZV90b2tlbhgCIAEoCUgAiAEBGiAKEVNtYXJ0QnVja2V0TW9kdWxlEgsKA3VybBgBIAEoCRobCgxCdWNrZXRNb2R1bGUSCwoDdXJsGAEgASgJGg8KDVNlcnZpY2VNb2R1bGUaEAoOT2JzZXJ2ZXJNb2R1bGUaDAoKVGFza01vZHVsZRoTChFTUUxEYXRhYmFzZU1vZHVsZRoTChFWZWN0b3JJbmRleE1vZHVsZRoNCgtRdWV1ZU1vZHVsZRoPCg1LVlN0b3JlTW9kdWxlGhMKEUFnZW50TWVtb3J5TW9kdWxlGsUICgZNb2R1bGUSFwoPb3JnYW5pemF0aW9uX2lkGAEgASgJEhgKEGFwcGxpY2F0aW9uX25hbWUYAiABKAkSHgoWYXBwbGljYXRpb25fdmVyc2lvbl9pZBgDIAEoCRIRCgltb2R1bGVfaWQYBCABKAkSDAoEbmFtZRgFIAEoCRIMCgR0eXBlGAYgASgJEkoKC21vZHVsZV90eXBlGAcgASgOMjUubGlxdWlkbWV0YWwudjFhbHBoYTEuUXVlcnlNb2R1bGVzUmVzcG9uc2UuTW9kdWxlVHlwZRI1Cgxjb252ZXJnZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESVAoMc21hcnRfYnVja2V0GAkgASgLMjwubGlxdWlkbWV0YWwudjFhbHBoYTEuUXVlcnlNb2R1bGVzUmVzcG9uc2UuU21hcnRCdWNrZXRNb2R1bGVIABJJCgZidWNrZXQYCiABKAsyNy5saXF1aWRtZXRhbC52MWFscGhhMS5RdWVyeU1vZHVsZXNSZXNwb25zZS5CdWNrZXRNb2R1bGVIABJLCgdzZXJ2aWNlGAsgASgLMjgubGlxdWlkbWV0YWwudjFhbHBoYTEuUXVlcnlNb2R1bGVzUmVzcG9uc2UuU2VydmljZU1vZHVsZUgAEk0KCG9ic2VydmVyGAwgASgLMjkubGlxdWlkbWV0YWwudjFhbHBoYTEuUXVlcnlNb2R1bGVzUmVzcG9uc2UuT2JzZXJ2ZXJNb2R1bGVIABJFCgR0YXNrGA0gASgLMjUubGlxdWlkbWV0YWwudjFhbHBoYTEuUXVlcnlNb2R1bGVzUmVzcG9uc2UuVGFza01vZHVsZUgAElQKDHNxbF9kYXRhYmFzZRgOIAEoCzI8LmxpcXVpZG1ldGFsLnYxYWxwaGExLlF1ZXJ5TW9kdWxlc1Jlc3BvbnNlLlNRTERhdGFiYXNlTW9kdWxlSAASVAoMdmVjdG9yX2luZGV4GA8gASgLMjwubGlxdWlkbWV0YWwudjFhbHBoYTEuUXVlcnlNb2R1bGVzUmVzcG9uc2UuVmVjdG9ySW5kZXhNb2R1bGVIABJHCgVxdWV1ZRgQIAEoCzI2LmxpcXVpZG1ldGFsLnYxYWxwaGExLlF1ZXJ5TW9kdWxlc1Jlc3BvbnNlLlF1ZXVlTW9kdWxlSAASTAoIa3Zfc3RvcmUYESABKAsyOC5saXF1aWRtZXRhbC52MWFscGhhMS5RdWVyeU1vZHVsZXNSZXNwb25zZS5LVlN0b3JlTW9kdWxlSAASVAoMYWdlbnRfbWVtb3J5GBIgASgLMjwubGlxdWlkbWV0YWwudjFhbHBoYTEuUXVlcnlNb2R1bGVzUmVzcG9uc2UuQWdlbnRNZW1vcnlNb2R1bGVIAEIICgZtb2R1bGVCDwoNX2NvbnZlcmdlZF9hdCLMAgoKTW9kdWxlVHlwZRIbChdNT0RVTEVfVFlQRV9VTlNQRUNJRklFRBAAEhwKGE1PRFVMRV9UWVBFX1NNQVJUX0JVQ0tFVBABEhYKEk1PRFVMRV9UWVBFX0JVQ0tFVBACEhcKE01PRFVMRV9UWVBFX1NFUlZJQ0UQAxIYChRNT0RVTEVfVFlQRV9PQlNFUlZFUhAEEhQKEE1PRFVMRV9UWVBFX1RBU0sQBRIcChhNT0RVTEVfVFlQRV9TUUxfREFUQUJBU0UQBhIcChhNT0RVTEVfVFlQRV9WRUNUT1JfSU5ERVgQBxIXChNNT0RVTEVfVFlQRV9FTlZfVkFSEAgSFQoRTU9EVUxFX1RZUEVfUVVFVUUQCRIYChRNT0RVTEVfVFlQRV9LVl9TVE9SRRAKEhwKGE1PRFVMRV9UWVBFX0FHRU5UX01FTU9SWRALQhIKEF9uZXh0X3BhZ2VfdG9rZW4ikAEKJlJlc29sdmVCdWNrZXRMb2NhdGlvblRvTW9kdWxlSWRSZXF1ZXN0Eg8KB3VzZXJfaWQYASABKAkSFwoPb3JnYW5pemF0aW9uX2lkGAIgASgJEjwKD2J1Y2tldF9sb2NhdGlvbhgDIAEoCzIjLmxpcXVpZG1ldGFsLnYxYWxwaGExLkJ1Y2tldExvY2F0b3IiZQomUmVzb2x2ZU1vZHVsZUlkVG9CdWNrZXRMb2NhdGlvblJlcXVlc3QSDwoHdXNlcl9pZBgBIAEoCRIXCg9vcmdhbml6YXRpb25faWQYAiABKAkSEQoJbW9kdWxlX2lkGAMgASgJIl8KJ1Jlc29sdmVCdWNrZXRMb2NhdGlvblRvTW9kdWxlSWRSZXNwb25zZRI0CgZidWNrZXQYASABKAsyJC5saXF1aWRtZXRhbC52MWFscGhhMS5CdWNrZXRSZXNwb25zZSJfCidSZXNvbHZlTW9kdWxlSWRUb0J1Y2tldExvY2F0aW9uUmVzcG9uc2USNAoGYnVja2V0GAEgASgLMiQubGlxdWlkbWV0YWwudjFhbHBoYTEuQnVja2V0UmVzcG9uc2UioAEKK1Jlc29sdmVBZ2VudE1lbW9yeUxvY2F0aW9uVG9Nb2R1bGVJZFJlcXVlc3QSDwoHdXNlcl9pZBgBIAEoCRIXCg9vcmdhbml6YXRpb25faWQYAiABKAkSRwoVYWdlbnRfbWVtb3J5X2xvY2F0aW9uGAMgASgLMigubGlxdWlkbWV0YWwudjFhbHBoYTEuQWdlbnRNZW1vcnlMb2NhdG9yImoKK1Jlc29sdmVNb2R1bGVJZFRvQWdlbnRNZW1vcnlMb2NhdGlvblJlcXVlc3QSDwoHdXNlcl9pZBgBIAEoCRIXCg9vcmdhbml6YXRpb25faWQYAiABKAkSEQoJbW9kdWxlX2lkGAMgASgJIm8KLFJlc29sdmVBZ2VudE1lbW9yeUxvY2F0aW9uVG9Nb2R1bGVJZFJlc3BvbnNlEj8KDGFnZW50X21lbW9yeRgBIAEoCzIpLmxpcXVpZG1ldGFsLnYxYWxwaGExLkFnZW50TWVtb3J5UmVzcG9uc2UibwosUmVzb2x2ZU1vZHVsZUlkVG9BZ2VudE1lbW9yeUxvY2F0aW9uUmVzcG9uc2USPwoMYWdlbnRfbWVtb3J5GAEgASgLMikubGlxdWlkbWV0YWwudjFhbHBoYTEuQWdlbnRNZW1vcnlSZXNwb25zZSrSAQoJVW5pdFN0YXRlEhoKFlVOSVRfU1RBVEVfVU5TUEVDSUZJRUQQABIWChJVTklUX1NUQVRFX1BFTkRJTkcQARIXChNVTklUX1NUQVRFX1NUQVJUSU5HEAISFgoSVU5JVF9TVEFURV9SVU5OSU5HEAMSFwoTVU5JVF9TVEFURV9TVE9QUElORxAEEhYKElVOSVRfU1RBVEVfU1RPUFBFRBAFEhcKE1VOSVRfU1RBVEVfREVMRVRJTkcQBhIWChJVTklUX1NUQVRFX0RFTEVURUQQBypVChFCdW5kbGVBcmNoaXZlVHlwZRIjCh9CVU5ETEVfQVJDSElWRV9UWVBFX1VOU1BFQ0lGSUVEEAASGwoXQlVORExFX0FSQ0hJVkVfVFlQRV9aSVAQASqSAQoWV2F0Y2hSZXNwb25zZUV2ZW50VHlwZRIpCiVXQVRDSF9SRVNQT05TRV9FVkVOVF9UWVBFX1VOU1BFQ0lGSUVEEAASJQohV0FUQ0hfUkVTUE9OU0VfRVZFTlRfVFlQRV9NRVNTQUdFEAESJgoiV0FUQ0hfUkVTUE9OU0VfRVZFTlRfVFlQRV9DT01QTEVURRACMswPCg5DYXRhbG9nU2VydmljZRJrCg5RdWVyeVJlc291cmNlcxIrLmxpcXVpZG1ldGFsLnYxYWxwaGExLlF1ZXJ5UmVzb3VyY2VzUmVxdWVzdBosLmxpcXVpZG1ldGFsLnYxYWxwaGExLlF1ZXJ5UmVzb3VyY2VzUmVzcG9uc2USZQoMUXVlcnlNb2R1bGVzEikubGlxdWlkbWV0YWwudjFhbHBoYTEuUXVlcnlNb2R1bGVzUmVxdWVzdBoqLmxpcXVpZG1ldGFsLnYxYWxwaGExLlF1ZXJ5TW9kdWxlc1Jlc3BvbnNlElwKCUJvb3RzdHJhcBImLmxpcXVpZG1ldGFsLnYxYWxwaGExLkJvb3RzdHJhcFJlcXVlc3QaJy5saXF1aWRtZXRhbC52MWFscGhhMS5Cb290c3RyYXBSZXNwb25zZRJlCgxBcHBsaWNhdGlvbnMSKS5saXF1aWRtZXRhbC52MWFscGhhMS5BcHBsaWNhdGlvbnNSZXF1ZXN0GioubGlxdWlkbWV0YWwudjFhbHBoYTEuQXBwbGljYXRpb25zUmVzcG9uc2USUwoGRGVwbG95EiMubGlxdWlkbWV0YWwudjFhbHBoYTEuRGVwbG95UmVxdWVzdBokLmxpcXVpZG1ldGFsLnYxYWxwaGExLkRlcGxveVJlc3BvbnNlEmUKDFVwbG9hZEJ1bmRsZRIpLmxpcXVpZG1ldGFsLnYxYWxwaGExLlVwbG9hZEJ1bmRsZVJlcXVlc3QaKi5saXF1aWRtZXRhbC52MWFscGhhMS5VcGxvYWRCdW5kbGVSZXNwb25zZRJWCgdTZXRFbnZzEiQubGlxdWlkbWV0YWwudjFhbHBoYTEuU2V0RW52c1JlcXVlc3QaJS5saXF1aWRtZXRhbC52MWFscGhhMS5TZXRFbnZzUmVzcG9uc2USVgoHR2V0RW52cxIkLmxpcXVpZG1ldGFsLnYxYWxwaGExLkdldEVudnNSZXF1ZXN0GiUubGlxdWlkbWV0YWwudjFhbHBoYTEuR2V0RW52c1Jlc3BvbnNlElYKB1JlbGVhc2USJC5saXF1aWRtZXRhbC52MWFscGhhMS5SZWxlYXNlUmVxdWVzdBolLmxpcXVpZG1ldGFsLnYxYWxwaGExLlJlbGVhc2VSZXNwb25zZRJSCgVXYXRjaBIiLmxpcXVpZG1ldGFsLnYxYWxwaGExLldhdGNoUmVxdWVzdBojLmxpcXVpZG1ldGFsLnYxYWxwaGExLldhdGNoUmVzcG9uc2UwARJTCgZEZWxldGUSIy5saXF1aWRtZXRhbC52MWFscGhhMS5EZWxldGVSZXF1ZXN0GiQubGlxdWlkbWV0YWwudjFhbHBoYTEuRGVsZXRlUmVzcG9uc2USXAoJU2V0QWN0aXZlEiYubGlxdWlkbWV0YWwudjFhbHBoYTEuU2V0QWN0aXZlUmVxdWVzdBonLmxpcXVpZG1ldGFsLnYxYWxwaGExLlNldEFjdGl2ZVJlc3BvbnNlEl8KClNldFNhbmRib3gSJy5saXF1aWRtZXRhbC52MWFscGhhMS5TZXRTYW5kYm94UmVxdWVzdBooLmxpcXVpZG1ldGFsLnYxYWxwaGExLlNldFNhbmRib3hSZXNwb25zZRJTCgZTdGF0dXMSIy5saXF1aWRtZXRhbC52MWFscGhhMS5TdGF0dXNSZXF1ZXN0GiQubGlxdWlkbWV0YWwudjFhbHBoYTEuU3RhdHVzUmVzcG9uc2USngEKH1Jlc29sdmVCdWNrZXRMb2NhdGlvblRvTW9kdWxlSWQSPC5saXF1aWRtZXRhbC52MWFscGhhMS5SZXNvbHZlQnVja2V0TG9jYXRpb25Ub01vZHVsZUlkUmVxdWVzdBo9LmxpcXVpZG1ldGFsLnYxYWxwaGExLlJlc29sdmVCdWNrZXRMb2NhdGlvblRvTW9kdWxlSWRSZXNwb25zZRKeAQofUmVzb2x2ZU1vZHVsZUlkVG9CdWNrZXRMb2NhdGlvbhI8LmxpcXVpZG1ldGFsLnYxYWxwaGExLlJlc29sdmVNb2R1bGVJZFRvQnVja2V0TG9jYXRpb25SZXF1ZXN0Gj0ubGlxdWlkbWV0YWwudjFhbHBoYTEuUmVzb2x2ZU1vZHVsZUlkVG9CdWNrZXRMb2NhdGlvblJlc3BvbnNlEq0BCiRSZXNvbHZlQWdlbnRNZW1vcnlMb2NhdGlvblRvTW9kdWxlSWQSQS5saXF1aWRtZXRhbC52MWFscGhhMS5SZXNvbHZlQWdlbnRNZW1vcnlMb2NhdGlvblRvTW9kdWxlSWRSZXF1ZXN0GkIubGlxdWlkbWV0YWwudjFhbHBoYTEuUmVzb2x2ZUFnZW50TWVtb3J5TG9jYXRpb25Ub01vZHVsZUlkUmVzcG9uc2USrQEKJFJlc29sdmVNb2R1bGVJZFRvQWdlbnRNZW1vcnlMb2NhdGlvbhJBLmxpcXVpZG1ldGFsLnYxYWxwaGExLlJlc29sdmVNb2R1bGVJZFRvQWdlbnRNZW1vcnlMb2NhdGlvblJlcXVlc3QaQi5saXF1aWRtZXRhbC52MWFscGhhMS5SZXNvbHZlTW9kdWxlSWRUb0FnZW50TWVtb3J5TG9jYXRpb25SZXNwb25zZULnAQoYY29tLmxpcXVpZG1ldGFsLnYxYWxwaGExQgxDYXRhbG9nUHJvdG9QAVpMZ2l0aHViLmNvbS9saXF1aWRtZXRhbC1haS9wcm90b2dlbjIvbGlxdWlkbWV0YWwvdjFhbHBoYTE7bGlxdWlkbWV0YWx2MWFscGhhMaICA0xYWKoCFExpcXVpZG1ldGFsLlYxYWxwaGExygIUTGlxdWlkbWV0YWxcVjFhbHBoYTHiAiBMaXF1aWRtZXRhbFxWMWFscGhhMVxHUEJNZXRhZGF0YeoCFUxpcXVpZG1ldGFsOjpWMWFscGhhMWIGcHJvdG8z", [file_google_protobuf_struct, file_google_protobuf_timestamp, file_liquidmetal_v1alpha1_agent_memory_name, file_liquidmetal_v1alpha1_bucket_name]);
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
22
|
* @generated from message liquidmetal.v1alpha1.ApplicationsRequest
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
// @generated by protoc-gen-connect-es v1.4.0 with parameter "target=ts,import_extension=.js"
|
|
2
|
+
// @generated from file liquidmetal/v1alpha1/events.proto (package liquidmetal.v1alpha1, syntax proto3)
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
// @ts-nocheck
|
|
5
|
+
|
|
6
|
+
import { RecordEventRequest, RecordEventResponse, TailEventsRequest, TailEventsResponse } from "./events_pb.js";
|
|
7
|
+
import { MethodKind } from "@bufbuild/protobuf";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* EventIngressService receives and processes events from various sources
|
|
11
|
+
*
|
|
12
|
+
* @generated from service liquidmetal.v1alpha1.EventIngressService
|
|
13
|
+
*/
|
|
14
|
+
export const EventIngressService = {
|
|
15
|
+
typeName: "liquidmetal.v1alpha1.EventIngressService",
|
|
16
|
+
methods: {
|
|
17
|
+
/**
|
|
18
|
+
* @generated from rpc liquidmetal.v1alpha1.EventIngressService.RecordEvent
|
|
19
|
+
*/
|
|
20
|
+
recordEvent: {
|
|
21
|
+
name: "RecordEvent",
|
|
22
|
+
I: RecordEventRequest,
|
|
23
|
+
O: RecordEventResponse,
|
|
24
|
+
kind: MethodKind.Unary,
|
|
25
|
+
},
|
|
26
|
+
}
|
|
27
|
+
} as const;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* EventStreamService provides a stream of events to clients
|
|
31
|
+
*
|
|
32
|
+
* @generated from service liquidmetal.v1alpha1.EventStreamService
|
|
33
|
+
*/
|
|
34
|
+
export const EventStreamService = {
|
|
35
|
+
typeName: "liquidmetal.v1alpha1.EventStreamService",
|
|
36
|
+
methods: {
|
|
37
|
+
/**
|
|
38
|
+
* @generated from rpc liquidmetal.v1alpha1.EventStreamService.TailEvents
|
|
39
|
+
*/
|
|
40
|
+
tailEvents: {
|
|
41
|
+
name: "TailEvents",
|
|
42
|
+
I: TailEventsRequest,
|
|
43
|
+
O: TailEventsResponse,
|
|
44
|
+
kind: MethodKind.ServerStreaming,
|
|
45
|
+
},
|
|
46
|
+
}
|
|
47
|
+
} as const;
|
|
48
|
+
|