tencentcloud-sdk-nodejs-csip 4.0.1045 → 4.1.46
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 +27 -5
- package/es/index.js +1 -0
- package/es/services/csip/index.js +4 -0
- package/es/services/csip/v20221121/csip_client.js +150 -0
- package/es/services/csip/v20221121/csip_models.js +0 -0
- package/es/services/csip/v20221121/index.js +6 -0
- package/es/services/index.js +1 -0
- package/package.json +26 -8
- package/tencentcloud/services/csip/v20221121/csip_client.js +2 -1
- package/tencentcloud/services/csip/v20221121/csip_models.d.ts +9 -10
- package/tencentcloud/services/csip/v20221121/index.js +2 -1
- package/index.d.ts +0 -2
- package/index.js +0 -6
- package/prettier.config.js +0 -38
- package/src/index.ts +0 -1
- package/src/services/csip/index.ts +0 -5
- package/src/services/csip/v20221121/csip_client.ts +0 -677
- package/src/services/csip/v20221121/csip_models.ts +0 -6988
- package/src/services/csip/v20221121/index.ts +0 -6
- package/src/services/index.ts +0 -1
- package/tsconfig.json +0 -33
- package/typings/index.d.ts +0 -2
package/README.md
CHANGED
|
@@ -44,18 +44,40 @@ npm install tencentcloud-sdk-nodejs-vpc --save
|
|
|
44
44
|
|
|
45
45
|
### 安装全产品 SDK
|
|
46
46
|
|
|
47
|
+
如果项目依赖的云产品较多,可以引入全产品 SDK。
|
|
48
|
+
|
|
47
49
|
```
|
|
48
50
|
npm install tencentcloud-sdk-nodejs --save
|
|
49
51
|
```
|
|
50
52
|
|
|
51
|
-
全产品 SDK
|
|
53
|
+
全产品 SDK 包含所有云产品调用代码和 TypeScript 类型文件,体积偏大。对于体积敏感的场景,推荐安装指定产品 SDK。
|
|
54
|
+
|
|
55
|
+
如果既希望全产品调用,又对包体积比较敏感,可以使用 Slim 版本 SDK。Slim SDK 移除类型文件,并进行了代码压缩,适合体积敏感场景使用:
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
npm install tencentcloud-sdk-slim-nodejs --save
|
|
59
|
+
```
|
|
52
60
|
|
|
53
61
|
## 通过源码包安装
|
|
54
62
|
|
|
55
|
-
1.
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
63
|
+
1. clone 代码到本地:
|
|
64
|
+
```
|
|
65
|
+
git clone https://github.com/tencentcloud/tencentcloud-sdk-nodejs
|
|
66
|
+
# 或者
|
|
67
|
+
git clone https://gitee.com/tencentcloud/tencentcloud-sdk-nodejs
|
|
68
|
+
```
|
|
69
|
+
2. 在项目根目录执行以下命令完成构建:
|
|
70
|
+
```
|
|
71
|
+
npm install && npm run build
|
|
72
|
+
```
|
|
73
|
+
3. 打包 NPM 压缩文件,例如 `tencentcloud-sdk-nodejs-4.0.0.tgz`
|
|
74
|
+
```
|
|
75
|
+
npm pack
|
|
76
|
+
```
|
|
77
|
+
4. 安装包到你的项目里:
|
|
78
|
+
```
|
|
79
|
+
npm install /path/to/tencentcloud-sdk-nodejs/tencentcloud-sdk-nodejs-4.0.0.tgz
|
|
80
|
+
```
|
|
59
81
|
|
|
60
82
|
# 示例
|
|
61
83
|
|
package/es/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./services";
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import * as TencentCloudCommon from "tencentcloud-sdk-nodejs-common";
|
|
2
|
+
export class Client extends TencentCloudCommon.AbstractClient {
|
|
3
|
+
constructor(clientConfig) {
|
|
4
|
+
super("csip.tencentcloudapi.com", "2022-11-21", clientConfig);
|
|
5
|
+
}
|
|
6
|
+
async DescribeUebaRule(req, cb) {
|
|
7
|
+
return this.request("DescribeUebaRule", req, cb);
|
|
8
|
+
}
|
|
9
|
+
async DescribeTaskLogList(req, cb) {
|
|
10
|
+
return this.request("DescribeTaskLogList", req, cb);
|
|
11
|
+
}
|
|
12
|
+
async DeleteDomainAndIp(req, cb) {
|
|
13
|
+
return this.request("DeleteDomainAndIp", req, cb);
|
|
14
|
+
}
|
|
15
|
+
async DescribeDbAssetInfo(req, cb) {
|
|
16
|
+
return this.request("DescribeDbAssetInfo", req, cb);
|
|
17
|
+
}
|
|
18
|
+
async DescribeNICAssets(req, cb) {
|
|
19
|
+
return this.request("DescribeNICAssets", req, cb);
|
|
20
|
+
}
|
|
21
|
+
async DescribeRiskCenterVULViewVULRiskList(req, cb) {
|
|
22
|
+
return this.request("DescribeRiskCenterVULViewVULRiskList", req, cb);
|
|
23
|
+
}
|
|
24
|
+
async DescribeDomainAssets(req, cb) {
|
|
25
|
+
return this.request("DescribeDomainAssets", req, cb);
|
|
26
|
+
}
|
|
27
|
+
async DescribePublicIpAssets(req, cb) {
|
|
28
|
+
return this.request("DescribePublicIpAssets", req, cb);
|
|
29
|
+
}
|
|
30
|
+
async AddNewBindRoleUser(req, cb) {
|
|
31
|
+
return this.request("AddNewBindRoleUser", req, cb);
|
|
32
|
+
}
|
|
33
|
+
async DescribeListenerList(req, cb) {
|
|
34
|
+
return this.request("DescribeListenerList", req, cb);
|
|
35
|
+
}
|
|
36
|
+
async StopRiskCenterTask(req, cb) {
|
|
37
|
+
return this.request("StopRiskCenterTask", req, cb);
|
|
38
|
+
}
|
|
39
|
+
async DeleteRiskScanTask(req, cb) {
|
|
40
|
+
return this.request("DeleteRiskScanTask", req, cb);
|
|
41
|
+
}
|
|
42
|
+
async DescribeRiskCenterAssetViewWeakPasswordRiskList(req, cb) {
|
|
43
|
+
return this.request("DescribeRiskCenterAssetViewWeakPasswordRiskList", req, cb);
|
|
44
|
+
}
|
|
45
|
+
async DescribeRiskCenterAssetViewVULRiskList(req, cb) {
|
|
46
|
+
return this.request("DescribeRiskCenterAssetViewVULRiskList", req, cb);
|
|
47
|
+
}
|
|
48
|
+
async DescribeClusterPodAssets(req, cb) {
|
|
49
|
+
return this.request("DescribeClusterPodAssets", req, cb);
|
|
50
|
+
}
|
|
51
|
+
async DescribeRiskCenterAssetViewCFGRiskList(req, cb) {
|
|
52
|
+
return this.request("DescribeRiskCenterAssetViewCFGRiskList", req, cb);
|
|
53
|
+
}
|
|
54
|
+
async DescribeVpcAssets(req, cb) {
|
|
55
|
+
return this.request("DescribeVpcAssets", req, cb);
|
|
56
|
+
}
|
|
57
|
+
async DescribeRiskCenterServerRiskList(req, cb) {
|
|
58
|
+
return this.request("DescribeRiskCenterServerRiskList", req, cb);
|
|
59
|
+
}
|
|
60
|
+
async DescribeCVMAssets(req, cb) {
|
|
61
|
+
return this.request("DescribeCVMAssets", req, cb);
|
|
62
|
+
}
|
|
63
|
+
async ModifyRiskCenterScanTask(req, cb) {
|
|
64
|
+
return this.request("ModifyRiskCenterScanTask", req, cb);
|
|
65
|
+
}
|
|
66
|
+
async DescribeCFWAssetStatistics(req, cb) {
|
|
67
|
+
return this.request("DescribeCFWAssetStatistics", req, cb);
|
|
68
|
+
}
|
|
69
|
+
async DescribeAssetViewVulRiskList(req, cb) {
|
|
70
|
+
return this.request("DescribeAssetViewVulRiskList", req, cb);
|
|
71
|
+
}
|
|
72
|
+
async DescribeVULRiskDetail(req, cb) {
|
|
73
|
+
return this.request("DescribeVULRiskDetail", req, cb);
|
|
74
|
+
}
|
|
75
|
+
async DescribeRiskCenterWebsiteRiskList(req, cb) {
|
|
76
|
+
return this.request("DescribeRiskCenterWebsiteRiskList", req, cb);
|
|
77
|
+
}
|
|
78
|
+
async DescribeOrganizationInfo(req, cb) {
|
|
79
|
+
return this.request("DescribeOrganizationInfo", req, cb);
|
|
80
|
+
}
|
|
81
|
+
async DescribeTaskLogURL(req, cb) {
|
|
82
|
+
return this.request("DescribeTaskLogURL", req, cb);
|
|
83
|
+
}
|
|
84
|
+
async ModifyUebaRuleSwitch(req, cb) {
|
|
85
|
+
return this.request("ModifyUebaRuleSwitch", req, cb);
|
|
86
|
+
}
|
|
87
|
+
async CreateRiskCenterScanTask(req, cb) {
|
|
88
|
+
return this.request("CreateRiskCenterScanTask", req, cb);
|
|
89
|
+
}
|
|
90
|
+
async DescribeGatewayAssets(req, cb) {
|
|
91
|
+
return this.request("DescribeGatewayAssets", req, cb);
|
|
92
|
+
}
|
|
93
|
+
async DescribeTopAttackInfo(req, cb) {
|
|
94
|
+
return this.request("DescribeTopAttackInfo", req, cb);
|
|
95
|
+
}
|
|
96
|
+
async DescribeSearchBugInfo(req, cb) {
|
|
97
|
+
return this.request("DescribeSearchBugInfo", req, cb);
|
|
98
|
+
}
|
|
99
|
+
async DescribeSubUserInfo(req, cb) {
|
|
100
|
+
return this.request("DescribeSubUserInfo", req, cb);
|
|
101
|
+
}
|
|
102
|
+
async DescribeVulViewVulRiskList(req, cb) {
|
|
103
|
+
return this.request("DescribeVulViewVulRiskList", req, cb);
|
|
104
|
+
}
|
|
105
|
+
async DescribeScanReportList(req, cb) {
|
|
106
|
+
return this.request("DescribeScanReportList", req, cb);
|
|
107
|
+
}
|
|
108
|
+
async CreateDomainAndIp(req, cb) {
|
|
109
|
+
return this.request("CreateDomainAndIp", req, cb);
|
|
110
|
+
}
|
|
111
|
+
async DescribeAlertList(req, cb) {
|
|
112
|
+
return this.request("DescribeAlertList", req, cb);
|
|
113
|
+
}
|
|
114
|
+
async UpdateAlertStatusList(req, cb) {
|
|
115
|
+
return this.request("UpdateAlertStatusList", req, cb);
|
|
116
|
+
}
|
|
117
|
+
async DescribeScanTaskList(req, cb) {
|
|
118
|
+
return this.request("DescribeScanTaskList", req, cb);
|
|
119
|
+
}
|
|
120
|
+
async DescribeDbAssets(req, cb) {
|
|
121
|
+
return this.request("DescribeDbAssets", req, cb);
|
|
122
|
+
}
|
|
123
|
+
async DescribeRiskCenterPortViewPortRiskList(req, cb) {
|
|
124
|
+
return this.request("DescribeRiskCenterPortViewPortRiskList", req, cb);
|
|
125
|
+
}
|
|
126
|
+
async DescribeRiskCenterAssetViewPortRiskList(req, cb) {
|
|
127
|
+
return this.request("DescribeRiskCenterAssetViewPortRiskList", req, cb);
|
|
128
|
+
}
|
|
129
|
+
async DescribeVULRiskAdvanceCFGList(req, cb) {
|
|
130
|
+
return this.request("DescribeVULRiskAdvanceCFGList", req, cb);
|
|
131
|
+
}
|
|
132
|
+
async ModifyRiskCenterRiskStatus(req, cb) {
|
|
133
|
+
return this.request("ModifyRiskCenterRiskStatus", req, cb);
|
|
134
|
+
}
|
|
135
|
+
async ModifyOrganizationAccountStatus(req, cb) {
|
|
136
|
+
return this.request("ModifyOrganizationAccountStatus", req, cb);
|
|
137
|
+
}
|
|
138
|
+
async DescribeOrganizationUserInfo(req, cb) {
|
|
139
|
+
return this.request("DescribeOrganizationUserInfo", req, cb);
|
|
140
|
+
}
|
|
141
|
+
async DescribeClusterAssets(req, cb) {
|
|
142
|
+
return this.request("DescribeClusterAssets", req, cb);
|
|
143
|
+
}
|
|
144
|
+
async DescribeSubnetAssets(req, cb) {
|
|
145
|
+
return this.request("DescribeSubnetAssets", req, cb);
|
|
146
|
+
}
|
|
147
|
+
async DescribeCVMAssetInfo(req, cb) {
|
|
148
|
+
return this.request("DescribeCVMAssetInfo", req, cb);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { csip } from "./csip";
|
package/package.json
CHANGED
|
@@ -1,16 +1,26 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tencentcloud-sdk-nodejs-csip",
|
|
3
|
-
"version": "4.
|
|
4
|
-
"description": "
|
|
5
|
-
"main": "tencentcloud/index.js",
|
|
3
|
+
"version": "4.1.46",
|
|
4
|
+
"description": "腾讯云 API NODEJS SDK",
|
|
5
|
+
"main": "./tencentcloud/index.js",
|
|
6
|
+
"module": "./es/index.js",
|
|
7
|
+
"types": "./tencentcloud/index.d.ts",
|
|
6
8
|
"scripts": {
|
|
7
9
|
"test": "mocha -t 10000",
|
|
8
|
-
"build": "
|
|
9
|
-
"
|
|
10
|
+
"build": "concurrently 'npm:build:cjs' 'npm:build:es'",
|
|
11
|
+
"build:cjs": "tsc -p tsconfig.json",
|
|
12
|
+
"build:es": "tsc -p tsconfig.es.json",
|
|
13
|
+
"build:slim": "node ./scripts/build_slim.js",
|
|
14
|
+
"prettier": "prettier --config prettier.config.js --write 'src/**/*.{tsx,ts,jsx,js,css,json,vue}'",
|
|
15
|
+
"clean": "rimraf tencentcloud es"
|
|
10
16
|
},
|
|
11
17
|
"engines": {
|
|
12
18
|
"node": ">=10"
|
|
13
19
|
},
|
|
20
|
+
"files": [
|
|
21
|
+
"tencentcloud",
|
|
22
|
+
"es"
|
|
23
|
+
],
|
|
14
24
|
"keywords": [
|
|
15
25
|
"tencentcloudapi",
|
|
16
26
|
"tencentcloud",
|
|
@@ -22,7 +32,7 @@
|
|
|
22
32
|
"author": "tencentcloudapi",
|
|
23
33
|
"license": "Apache-2.0",
|
|
24
34
|
"dependencies": {
|
|
25
|
-
"tencentcloud-sdk-nodejs-common": "
|
|
35
|
+
"tencentcloud-sdk-nodejs-common": "*",
|
|
26
36
|
"tslib": "1.13.0"
|
|
27
37
|
},
|
|
28
38
|
"directories": {
|
|
@@ -35,14 +45,22 @@
|
|
|
35
45
|
},
|
|
36
46
|
"devDependencies": {
|
|
37
47
|
"@types/form-data": "^2.5.0",
|
|
48
|
+
"@types/json-bigint": "^1.0.1",
|
|
38
49
|
"@types/node": "^14.0.26",
|
|
39
50
|
"@types/node-fetch": "^2.5.7",
|
|
51
|
+
"@types/uuid": "^9.0.8",
|
|
40
52
|
"@typescript-eslint/eslint-plugin": "^2.34.0",
|
|
41
53
|
"@typescript-eslint/parser": "^2.34.0",
|
|
54
|
+
"babel-eslint": "^10.0.2",
|
|
42
55
|
"chai": "^4.2.0",
|
|
56
|
+
"concurrently": "^6.5.1",
|
|
57
|
+
"esbuild": "^0.25.0",
|
|
43
58
|
"eslint": "^6.8.0",
|
|
44
|
-
"
|
|
59
|
+
"eslint-plugin-react": "^7.17.0",
|
|
60
|
+
"mocha": "^8.4.0",
|
|
61
|
+
"prettier": "^2.3.0",
|
|
62
|
+
"rimraf": "^5.0.10",
|
|
45
63
|
"ts-node": "^8.10.2",
|
|
46
64
|
"typescript": "^3.9.7"
|
|
47
65
|
}
|
|
48
|
-
}
|
|
66
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Client = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
4
5
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
5
6
|
/*
|
|
6
7
|
* Copyright (c) 2018 THL A29 Limited, a Tencent company. All Rights Reserved.
|
|
@@ -18,7 +19,7 @@ exports.Client = void 0;
|
|
|
18
19
|
* specific language governing permissions and limitations
|
|
19
20
|
* under the License.
|
|
20
21
|
*/
|
|
21
|
-
const TencentCloudCommon = require("tencentcloud-sdk-nodejs-common");
|
|
22
|
+
const TencentCloudCommon = tslib_1.__importStar(require("tencentcloud-sdk-nodejs-common"));
|
|
22
23
|
/**
|
|
23
24
|
* csip client
|
|
24
25
|
* @class
|
|
@@ -263,11 +263,11 @@ export interface CVMAssetVO {
|
|
|
263
263
|
*/
|
|
264
264
|
AssetCreateTime?: string;
|
|
265
265
|
/**
|
|
266
|
-
* 公网
|
|
266
|
+
* 公网IP
|
|
267
267
|
*/
|
|
268
268
|
PublicIp?: string;
|
|
269
269
|
/**
|
|
270
|
-
* 私网
|
|
270
|
+
* 私网IP
|
|
271
271
|
*/
|
|
272
272
|
PrivateIp?: string;
|
|
273
273
|
/**
|
|
@@ -307,11 +307,11 @@ export interface CVMAssetVO {
|
|
|
307
307
|
*/
|
|
308
308
|
SubnetName?: string;
|
|
309
309
|
/**
|
|
310
|
-
*
|
|
310
|
+
* 主机安全Agent UUID
|
|
311
311
|
*/
|
|
312
312
|
InstanceUuid?: string;
|
|
313
313
|
/**
|
|
314
|
-
*
|
|
314
|
+
* 云主机 CVM UUID
|
|
315
315
|
*/
|
|
316
316
|
InstanceQUuid?: string;
|
|
317
317
|
/**
|
|
@@ -1240,7 +1240,7 @@ export interface IpAssetListVO {
|
|
|
1240
1240
|
*/
|
|
1241
1241
|
AssetCreateTime?: string;
|
|
1242
1242
|
/**
|
|
1243
|
-
* 公网
|
|
1243
|
+
* 公网IP
|
|
1244
1244
|
*/
|
|
1245
1245
|
PublicIp?: string;
|
|
1246
1246
|
/**
|
|
@@ -1340,7 +1340,7 @@ export interface IpAssetListVO {
|
|
|
1340
1340
|
*/
|
|
1341
1341
|
AddressId?: string;
|
|
1342
1342
|
/**
|
|
1343
|
-
*
|
|
1343
|
+
* MemberId信息
|
|
1344
1344
|
*/
|
|
1345
1345
|
MemberId?: string;
|
|
1346
1346
|
/**
|
|
@@ -3152,8 +3152,7 @@ export interface WhereFilter {
|
|
|
3152
3152
|
*/
|
|
3153
3153
|
export interface SubUserInfo {
|
|
3154
3154
|
/**
|
|
3155
|
-
* 主键ID
|
|
3156
|
-
仅作为唯一键
|
|
3155
|
+
* 主键ID,无业务意义仅作为唯一键
|
|
3157
3156
|
*/
|
|
3158
3157
|
ID?: number;
|
|
3159
3158
|
/**
|
|
@@ -3181,7 +3180,7 @@ export interface SubUserInfo {
|
|
|
3181
3180
|
*/
|
|
3182
3181
|
OwnerNickName?: string;
|
|
3183
3182
|
/**
|
|
3184
|
-
* 所属主账号
|
|
3183
|
+
* 所属主账号memberId信息
|
|
3185
3184
|
*/
|
|
3186
3185
|
OwnerMemberID?: string;
|
|
3187
3186
|
/**
|
|
@@ -5953,7 +5952,7 @@ export interface DomainAssetVO {
|
|
|
5953
5952
|
*/
|
|
5954
5953
|
SourceType?: string;
|
|
5955
5954
|
/**
|
|
5956
|
-
*
|
|
5955
|
+
* memberId信息
|
|
5957
5956
|
*/
|
|
5958
5957
|
MemberId?: string;
|
|
5959
5958
|
/**
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.v20221121 = void 0;
|
|
4
|
-
const
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const Models = tslib_1.__importStar(require("./csip_models"));
|
|
5
6
|
const csip_client_1 = require("./csip_client");
|
|
6
7
|
exports.v20221121 = {
|
|
7
8
|
Client: csip_client_1.Client,
|
package/index.d.ts
DELETED
package/index.js
DELETED
package/prettier.config.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
// prettier.config.js
|
|
2
|
-
module.exports = {
|
|
3
|
-
// 一行最多 100 字符
|
|
4
|
-
printWidth: 100,
|
|
5
|
-
// 使用 4 个空格缩进
|
|
6
|
-
tabWidth: 2,
|
|
7
|
-
// 不使用缩进符,而使用空格
|
|
8
|
-
useTabs: false,
|
|
9
|
-
// 行尾需要有分号
|
|
10
|
-
semi: false,
|
|
11
|
-
// 使用单引号
|
|
12
|
-
singleQuote: false,
|
|
13
|
-
// 对象的 key 仅在必要时用引号
|
|
14
|
-
quoteProps: "as-needed",
|
|
15
|
-
// jsx 不使用单引号,而使用双引号
|
|
16
|
-
jsxSingleQuote: false,
|
|
17
|
-
// 末尾不需要逗号
|
|
18
|
-
trailingComma: "es5",
|
|
19
|
-
// 大括号内的首尾需要空格
|
|
20
|
-
bracketSpacing: true,
|
|
21
|
-
// jsx 标签的反尖括号需要换行
|
|
22
|
-
jsxBracketSameLine: false,
|
|
23
|
-
// 箭头函数,只有一个参数的时候,也需要括号
|
|
24
|
-
arrowParens: "always",
|
|
25
|
-
// 每个文件格式化的范围是文件的全部内容
|
|
26
|
-
rangeStart: 0,
|
|
27
|
-
rangeEnd: Infinity,
|
|
28
|
-
// 不需要写文件开头的 @prettier
|
|
29
|
-
requirePragma: false,
|
|
30
|
-
// 不需要自动在文件开头插入 @prettier
|
|
31
|
-
insertPragma: false,
|
|
32
|
-
// 使用默认的折行标准
|
|
33
|
-
proseWrap: "preserve",
|
|
34
|
-
// 根据显示样式决定 html 要不要折行
|
|
35
|
-
htmlWhitespaceSensitivity: "css",
|
|
36
|
-
// 换行符使用 lf
|
|
37
|
-
endOfLine: "lf",
|
|
38
|
-
}
|
package/src/index.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./services"
|