promptfoo 0.99.0 → 0.99.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/package.json +11 -10
- package/dist/src/__mocks__/esm.js +17 -7
- package/dist/src/__mocks__/esm.js.map +1 -1
- package/dist/src/app/assets/{index-CJGQrbZb.js → index--9emYMXO.js} +270 -268
- package/dist/src/app/assets/index-CBwNqxkl.css +1 -0
- package/dist/src/app/assets/{index.es-BCwhwRu5.js → index.es-C4p-sZzG.js} +1 -1
- package/dist/src/app/assets/{sync-hJWHXawF.js → sync-CKFJhHjE.js} +1 -1
- package/dist/src/app/index.html +2 -2
- package/dist/src/assertions/index.d.ts +2 -2
- package/dist/src/assertions/index.d.ts.map +1 -1
- package/dist/src/assertions/rouge.js +17 -7
- package/dist/src/assertions/rouge.js.map +1 -1
- package/dist/src/assertions/sql.js +17 -7
- package/dist/src/assertions/sql.js.map +1 -1
- package/dist/src/commands/debug.js +17 -7
- package/dist/src/commands/debug.js.map +1 -1
- package/dist/src/commands/eval.js +18 -8
- package/dist/src/commands/eval.js.map +1 -1
- package/dist/src/commands/generate/dataset.js +17 -7
- package/dist/src/commands/generate/dataset.js.map +1 -1
- package/dist/src/commands/import.js +17 -7
- package/dist/src/commands/import.js.map +1 -1
- package/dist/src/commands/list.js +17 -7
- package/dist/src/commands/list.js.map +1 -1
- package/dist/src/commands/share.d.ts.map +1 -1
- package/dist/src/commands/share.js +7 -2
- package/dist/src/commands/share.js.map +1 -1
- package/dist/src/database/index.js +17 -7
- package/dist/src/database/index.js.map +1 -1
- package/dist/src/database/tables.d.ts +24 -24
- package/dist/src/esm.js +17 -7
- package/dist/src/esm.js.map +1 -1
- package/dist/src/evaluator.js +17 -7
- package/dist/src/evaluator.js.map +1 -1
- package/dist/src/evaluatorHelpers.js +17 -7
- package/dist/src/evaluatorHelpers.js.map +1 -1
- package/dist/src/fetch.d.ts.map +1 -1
- package/dist/src/fetch.js +16 -0
- package/dist/src/fetch.js.map +1 -1
- package/dist/src/globalConfig/globalConfig.js +17 -7
- package/dist/src/globalConfig/globalConfig.js.map +1 -1
- package/dist/src/googleSheets.js +17 -7
- package/dist/src/googleSheets.js.map +1 -1
- package/dist/src/index.js +17 -7
- package/dist/src/index.js.map +1 -1
- package/dist/src/migrate.js +17 -7
- package/dist/src/migrate.js.map +1 -1
- package/dist/src/prompts/processors/json.js +17 -7
- package/dist/src/prompts/processors/json.js.map +1 -1
- package/dist/src/prompts/processors/jsonl.js +17 -7
- package/dist/src/prompts/processors/jsonl.js.map +1 -1
- package/dist/src/prompts/processors/python.js +17 -7
- package/dist/src/prompts/processors/python.js.map +1 -1
- package/dist/src/prompts/processors/text.js +17 -7
- package/dist/src/prompts/processors/text.js.map +1 -1
- package/dist/src/prompts/processors/yaml.js +17 -7
- package/dist/src/prompts/processors/yaml.js.map +1 -1
- package/dist/src/providers/anthropic.d.ts.map +1 -1
- package/dist/src/providers/anthropic.js +25 -17
- package/dist/src/providers/anthropic.js.map +1 -1
- package/dist/src/providers/azure.js +17 -7
- package/dist/src/providers/azure.js.map +1 -1
- package/dist/src/providers/bam.js +17 -7
- package/dist/src/providers/bam.js.map +1 -1
- package/dist/src/providers/bedrock.js +17 -7
- package/dist/src/providers/bedrock.js.map +1 -1
- package/dist/src/providers/browser.js +17 -7
- package/dist/src/providers/browser.js.map +1 -1
- package/dist/src/providers/fal.js +17 -7
- package/dist/src/providers/fal.js.map +1 -1
- package/dist/src/providers/vertexUtil.js +17 -7
- package/dist/src/providers/vertexUtil.js.map +1 -1
- package/dist/src/providers/watsonx.js +17 -7
- package/dist/src/providers/watsonx.js.map +1 -1
- package/dist/src/providers.d.ts +3 -7
- package/dist/src/providers.d.ts.map +1 -1
- package/dist/src/providers.js +17 -7
- package/dist/src/providers.js.map +1 -1
- package/dist/src/redteam/commands/generate.js +17 -7
- package/dist/src/redteam/commands/generate.js.map +1 -1
- package/dist/src/redteam/commands/init.js +17 -7
- package/dist/src/redteam/commands/init.js.map +1 -1
- package/dist/src/redteam/commands/poison.js +17 -7
- package/dist/src/redteam/commands/poison.js.map +1 -1
- package/dist/src/redteam/commands/run.js +17 -7
- package/dist/src/redteam/commands/run.js.map +1 -1
- package/dist/src/redteam/commands/setup.d.ts.map +1 -1
- package/dist/src/redteam/commands/setup.js +7 -1
- package/dist/src/redteam/commands/setup.js.map +1 -1
- package/dist/src/redteam/constants.d.ts +4 -4
- package/dist/src/redteam/constants.d.ts.map +1 -1
- package/dist/src/redteam/constants.js +14 -9
- package/dist/src/redteam/constants.js.map +1 -1
- package/dist/src/redteam/index.js +17 -7
- package/dist/src/redteam/index.js.map +1 -1
- package/dist/src/redteam/plugins/bfla.d.ts +5 -0
- package/dist/src/redteam/plugins/bfla.d.ts.map +1 -1
- package/dist/src/redteam/plugins/bfla.js +11 -0
- package/dist/src/redteam/plugins/bfla.js.map +1 -1
- package/dist/src/redteam/plugins/bola.d.ts +5 -0
- package/dist/src/redteam/plugins/bola.d.ts.map +1 -1
- package/dist/src/redteam/plugins/bola.js +11 -0
- package/dist/src/redteam/plugins/bola.js.map +1 -1
- package/dist/src/redteam/plugins/competitors.d.ts +6 -0
- package/dist/src/redteam/plugins/competitors.d.ts.map +1 -1
- package/dist/src/redteam/plugins/competitors.js +27 -0
- package/dist/src/redteam/plugins/competitors.js.map +1 -1
- package/dist/src/redteam/plugins/contracts.d.ts +5 -1
- package/dist/src/redteam/plugins/contracts.d.ts.map +1 -1
- package/dist/src/redteam/plugins/contracts.js +19 -0
- package/dist/src/redteam/plugins/contracts.js.map +1 -1
- package/dist/src/redteam/plugins/harmful/constants.d.ts.map +1 -1
- package/dist/src/redteam/plugins/harmful/constants.js +0 -72
- package/dist/src/redteam/plugins/harmful/constants.js.map +1 -1
- package/dist/src/redteam/plugins/hijacking.d.ts.map +1 -1
- package/dist/src/redteam/plugins/hijacking.js +2 -1
- package/dist/src/redteam/plugins/hijacking.js.map +1 -1
- package/dist/src/redteam/plugins/imitation.d.ts +5 -1
- package/dist/src/redteam/plugins/imitation.d.ts.map +1 -1
- package/dist/src/redteam/plugins/imitation.js +17 -0
- package/dist/src/redteam/plugins/imitation.js.map +1 -1
- package/dist/src/redteam/plugins/index.d.ts.map +1 -1
- package/dist/src/redteam/plugins/index.js +11 -1
- package/dist/src/redteam/plugins/index.js.map +1 -1
- package/dist/src/redteam/plugins/overreliance.d.ts +5 -1
- package/dist/src/redteam/plugins/overreliance.d.ts.map +1 -1
- package/dist/src/redteam/plugins/overreliance.js +31 -2
- package/dist/src/redteam/plugins/overreliance.js.map +1 -1
- package/dist/src/redteam/plugins/policy.d.ts.map +1 -1
- package/dist/src/redteam/plugins/policy.js +3 -2
- package/dist/src/redteam/plugins/policy.js.map +1 -1
- package/dist/src/redteam/plugins/politics.d.ts +5 -1
- package/dist/src/redteam/plugins/politics.d.ts.map +1 -1
- package/dist/src/redteam/plugins/politics.js +21 -1
- package/dist/src/redteam/plugins/politics.js.map +1 -1
- package/dist/src/redteam/plugins/religion.d.ts +5 -0
- package/dist/src/redteam/plugins/religion.d.ts.map +1 -1
- package/dist/src/redteam/plugins/religion.js +28 -0
- package/dist/src/redteam/plugins/religion.js.map +1 -1
- package/dist/src/redteam/plugins/shellInjection.d.ts.map +1 -1
- package/dist/src/redteam/plugins/shellInjection.js +6 -1
- package/dist/src/redteam/plugins/shellInjection.js.map +1 -1
- package/dist/src/redteam/providers/goat.d.ts.map +1 -1
- package/dist/src/redteam/providers/goat.js +4 -1
- package/dist/src/redteam/providers/goat.js.map +1 -1
- package/dist/src/redteam/providers/shared.js +17 -7
- package/dist/src/redteam/providers/shared.js.map +1 -1
- package/dist/src/redteam/shared.d.ts +4 -0
- package/dist/src/redteam/shared.d.ts.map +1 -0
- package/dist/src/redteam/shared.js +17 -0
- package/dist/src/redteam/shared.js.map +1 -0
- package/dist/src/redteam/strategies/iterative.d.ts +1 -1
- package/dist/src/redteam/strategies/iterative.d.ts.map +1 -1
- package/dist/src/redteam/strategies/promptInjections/index.js +17 -7
- package/dist/src/redteam/strategies/promptInjections/index.js.map +1 -1
- package/dist/src/redteam/types.d.ts +6 -1
- package/dist/src/redteam/types.d.ts.map +1 -1
- package/dist/src/testCases.js +17 -7
- package/dist/src/testCases.js.map +1 -1
- package/dist/src/types/index.d.ts +664 -656
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/index.js +10 -2
- package/dist/src/types/index.js.map +1 -1
- package/dist/src/util/config/load.js +17 -7
- package/dist/src/util/config/load.js.map +1 -1
- package/dist/src/util/config/manage.js +17 -7
- package/dist/src/util/config/manage.js.map +1 -1
- package/dist/src/util/index.d.ts +8 -8
- package/dist/src/util/index.js +17 -7
- package/dist/src/util/index.js.map +1 -1
- package/dist/src/validators/redteam.d.ts +5 -5
- package/dist/src/validators/redteam.d.ts.map +1 -1
- package/dist/src/validators/redteam.js +0 -1
- package/dist/src/validators/redteam.js.map +1 -1
- package/dist/test/assertions/index.test.js +17 -7
- package/dist/test/assertions/index.test.js.map +1 -1
- package/dist/test/assertions/utils.test.js +17 -7
- package/dist/test/assertions/utils.test.js.map +1 -1
- package/dist/test/commands/init.test.js +17 -7
- package/dist/test/commands/init.test.js.map +1 -1
- package/dist/test/evaluatorHelpers.test.js +17 -7
- package/dist/test/evaluatorHelpers.test.js.map +1 -1
- package/dist/test/factories/evalFactory.d.ts +16 -16
- package/dist/test/fetch.test.js +15 -36
- package/dist/test/fetch.test.js.map +1 -1
- package/dist/test/globalConfig.test.js +17 -7
- package/dist/test/globalConfig.test.js.map +1 -1
- package/dist/test/index.test.js +21 -8
- package/dist/test/index.test.js.map +1 -1
- package/dist/test/matchers.test.js +17 -7
- package/dist/test/matchers.test.js.map +1 -1
- package/dist/test/models/eval.test.js +17 -7
- package/dist/test/models/eval.test.js.map +1 -1
- package/dist/test/prompts/index.test.js +17 -7
- package/dist/test/prompts/index.test.js.map +1 -1
- package/dist/test/prompts/processors/json.test.js +17 -7
- package/dist/test/prompts/processors/json.test.js.map +1 -1
- package/dist/test/prompts/processors/jsonl.test.js +17 -7
- package/dist/test/prompts/processors/jsonl.test.js.map +1 -1
- package/dist/test/prompts/processors/markdown.test.js +17 -7
- package/dist/test/prompts/processors/markdown.test.js.map +1 -1
- package/dist/test/prompts/processors/python.test.js +17 -7
- package/dist/test/prompts/processors/python.test.js.map +1 -1
- package/dist/test/prompts/processors/text.test.js +17 -7
- package/dist/test/prompts/processors/text.test.js.map +1 -1
- package/dist/test/prompts/processors/yaml.test.js +17 -7
- package/dist/test/prompts/processors/yaml.test.js.map +1 -1
- package/dist/test/providers/index.test.js +17 -7
- package/dist/test/providers/index.test.js.map +1 -1
- package/dist/test/providers/palm.test.js +17 -7
- package/dist/test/providers/palm.test.js.map +1 -1
- package/dist/test/providers/scriptCompletion.test.js +17 -7
- package/dist/test/providers/scriptCompletion.test.js.map +1 -1
- package/dist/test/providers/vertex.test.js +17 -7
- package/dist/test/providers/vertex.test.js.map +1 -1
- package/dist/test/providers/watsonx.test.js +17 -7
- package/dist/test/providers/watsonx.test.js.map +1 -1
- package/dist/test/python/pythonUtils.test.js +17 -7
- package/dist/test/python/pythonUtils.test.js.map +1 -1
- package/dist/test/redteam/commands/generate.test.js +17 -7
- package/dist/test/redteam/commands/generate.test.js.map +1 -1
- package/dist/test/redteam/index.test.js +17 -7
- package/dist/test/redteam/index.test.js.map +1 -1
- package/dist/test/redteam/plugins/index.test.js +59 -0
- package/dist/test/redteam/plugins/index.test.js.map +1 -1
- package/dist/test/redteam/providers/goat.test.js +26 -0
- package/dist/test/redteam/providers/goat.test.js.map +1 -1
- package/dist/test/server/providers.test.js +20 -9
- package/dist/test/server/providers.test.js.map +1 -1
- package/dist/test/testCases.test.js +17 -7
- package/dist/test/testCases.test.js.map +1 -1
- package/dist/test/util/config/load.test.js +17 -7
- package/dist/test/util/config/load.test.js.map +1 -1
- package/dist/test/util/config/main.test.js +17 -7
- package/dist/test/util/config/main.test.js.map +1 -1
- package/dist/test/util/index.test.js +17 -7
- package/dist/test/util/index.test.js.map +1 -1
- package/dist/test/util/transform.test.js +17 -7
- package/dist/test/util/transform.test.js.map +1 -1
- package/dist/test/util/utils.d.ts +1 -0
- package/dist/test/util/utils.d.ts.map +1 -1
- package/dist/test/util/utils.js +25 -0
- package/dist/test/util/utils.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +11 -10
- package/dist/src/app/assets/index-DatcZSwS.css +0 -1
package/README.md
CHANGED
|
@@ -198,7 +198,7 @@ If you're looking to customize your usage, you have a wide set of parameters at
|
|
|
198
198
|
| `-r, --providers <name or path...>` | One of: openai:chat, openai:completion, openai:model-name, localai:chat:model-name, localai:completion:model-name. See [API providers][providers-docs] |
|
|
199
199
|
| `-o, --output <path>` | Path to [output file](https://www.promptfoo.dev/docs/configuration/parameters#output-file) (csv, json, yaml, html) |
|
|
200
200
|
| `--tests <path>` | Path to [external test file](https://www.promptfoo.dev/docs/configurationexpected-outputsassertions#load-an-external-tests-file) |
|
|
201
|
-
| `-c, --config <paths>` | Path to one or more [configuration files](https://www.promptfoo.dev/docs/configuration/guide). `promptfooconfig.
|
|
201
|
+
| `-c, --config <paths>` | Path to one or more [configuration files](https://www.promptfoo.dev/docs/configuration/guide). `promptfooconfig.yaml` is automatically loaded if present |
|
|
202
202
|
| `-j, --max-concurrency <number>` | Maximum number of concurrent API calls |
|
|
203
203
|
| `--table-cell-max-length <number>` | Truncate console table cells to this length |
|
|
204
204
|
| `--prompt-prefix <path>` | This prefix is prepended to every prompt |
|
package/dist/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "promptfoo",
|
|
3
3
|
"description": "LLM eval & testing toolkit",
|
|
4
4
|
"author": "Ian Webster",
|
|
5
|
-
"version": "0.99.
|
|
5
|
+
"version": "0.99.1",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"type": "commonjs",
|
|
8
8
|
"repository": {
|
|
@@ -44,6 +44,7 @@
|
|
|
44
44
|
"build:app": "npm run build --prefix src/app",
|
|
45
45
|
"build:watch": "tsc --watch",
|
|
46
46
|
"build": "tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js",
|
|
47
|
+
"citation:generate": "ts-node scripts/generateCitation.ts",
|
|
47
48
|
"test": "jest",
|
|
48
49
|
"test:integration": "jest --config jest.integration.config.ts integration",
|
|
49
50
|
"test:watch": "jest --watch",
|
|
@@ -51,8 +52,8 @@
|
|
|
51
52
|
"format": "prettier -w .",
|
|
52
53
|
"format:check": "prettier --check .",
|
|
53
54
|
"db:migrate": "npx tsx src/migrate.ts",
|
|
54
|
-
"citation:generate": "ts-node scripts/generateCitation.ts",
|
|
55
55
|
"db:generate": "npx drizzle-kit generate",
|
|
56
|
+
"db:studio": "npx drizzle-kit studio",
|
|
56
57
|
"jsonSchema:generate": "npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json",
|
|
57
58
|
"audit:fix": "npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site",
|
|
58
59
|
"prepublishOnly": "npm run build:clean && npm run build",
|
|
@@ -128,13 +129,13 @@
|
|
|
128
129
|
"madge": "^8.0.0",
|
|
129
130
|
"nock": "^13.5.6",
|
|
130
131
|
"nodemon": "^3.1.7",
|
|
131
|
-
"prettier": "^3.
|
|
132
|
+
"prettier": "^3.4.1",
|
|
132
133
|
"shx": "^0.3.4",
|
|
133
134
|
"supertest": "^7.0.0",
|
|
134
135
|
"ts-node": "^10.9.2",
|
|
135
136
|
"tsconfig-paths": "^4.2.0",
|
|
136
|
-
"typescript": "^5.
|
|
137
|
-
"typescript-eslint": "^8.
|
|
137
|
+
"typescript": "^5.7.2",
|
|
138
|
+
"typescript-eslint": "^8.16.0",
|
|
138
139
|
"zod-to-json-schema": "^3.23.5"
|
|
139
140
|
},
|
|
140
141
|
"dependencies": {
|
|
@@ -154,7 +155,7 @@
|
|
|
154
155
|
"@emotion/react": "^11.13.5",
|
|
155
156
|
"@emotion/styled": "^11.13.5",
|
|
156
157
|
"@googleapis/sheets": "^9.3.1",
|
|
157
|
-
"@mui/material": "^6.1.
|
|
158
|
+
"@mui/material": "^6.1.9",
|
|
158
159
|
"ajv": "^8.17.1",
|
|
159
160
|
"ajv-formats": "^3.0.1",
|
|
160
161
|
"async": "^3.2.6",
|
|
@@ -168,9 +169,9 @@
|
|
|
168
169
|
"commander": "^12.1.0",
|
|
169
170
|
"compression": "^1.7.5",
|
|
170
171
|
"cors": "^2.8.5",
|
|
171
|
-
"csv-parse": "^5.
|
|
172
|
+
"csv-parse": "^5.6.0",
|
|
172
173
|
"csv-stringify": "^6.5.2",
|
|
173
|
-
"debounce": "^
|
|
174
|
+
"debounce": "^2.2.0",
|
|
174
175
|
"dedent": "^1.5.3",
|
|
175
176
|
"dotenv": "^16.4.5",
|
|
176
177
|
"drizzle-orm": "^0.35.2",
|
|
@@ -182,12 +183,12 @@
|
|
|
182
183
|
"groq-sdk": "^0.8.0",
|
|
183
184
|
"http-z": "^7.1.1",
|
|
184
185
|
"inquirer": "^11.1.0",
|
|
185
|
-
"js-rouge": "3.0.0",
|
|
186
|
+
"js-rouge": "^3.0.0",
|
|
186
187
|
"js-yaml": "^4.1.0",
|
|
187
188
|
"mathjs": "^13.2.2",
|
|
188
189
|
"node-cache": "^5.1.2",
|
|
189
190
|
"nunjucks": "^3.2.4",
|
|
190
|
-
"openai": "^4.73.
|
|
191
|
+
"openai": "^4.73.1",
|
|
191
192
|
"opener": "^1.5.2",
|
|
192
193
|
"proxy-agent": "^6.4.0",
|
|
193
194
|
"python-shell": "^5.0.0",
|
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
36
|
exports.getDirectory = getDirectory;
|
|
27
37
|
exports.importModule = importModule;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"esm.js","sourceRoot":"","sources":["../../../src/__mocks__/esm.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"esm.js","sourceRoot":"","sources":["../../../src/__mocks__/esm.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,oCAEC;AAED,oCAOC;AAbD,2CAA6B;AAE7B,SAAgB,YAAY;IAC1B,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAgB,YAAY,CAAC,QAAgB,EAAE,YAAqB;IAClE,iEAAiE;IACjE,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5C,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,GAAG,CAAC,YAAY,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|