@microsoft/type2docfx 1.3.2-dev.1210049.0 → 2.0.0
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/.version/PipelineAssemblyInfo.cs +3 -3
- package/.version/PipelineAssemblyInfo.h +3 -3
- package/.version/build.number.info +1 -1
- package/.version/commit.version.info +1 -1
- package/.version/numeric.fileversion.info +1 -1
- package/.version/numeric.fileversion.info.noleadingzeros +1 -1
- package/.version/numeric.packageversion.info +1 -1
- package/.version/revision.number.info +1 -1
- package/.version/semantic.fileversion.info +1 -1
- package/.version/semantic.packageversion.info +1 -1
- package/.version/versions.xml +1 -1
- package/dist/cli.js +6 -6
- package/dist/cli.js.map +1 -1
- package/dist/common/constants.js +1 -1
- package/dist/common/constants.js.map +1 -1
- package/dist/common/error.js +38 -24
- package/dist/common/error.js.map +1 -1
- package/dist/converters/accessor.js +18 -31
- package/dist/converters/accessor.js.map +1 -1
- package/dist/converters/base.js +323 -198
- package/dist/converters/base.js.map +1 -1
- package/dist/converters/context.js +21 -38
- package/dist/converters/context.js.map +1 -1
- package/dist/converters/converter.js +19 -19
- package/dist/converters/converter.js.map +1 -1
- package/dist/converters/empty.js +5 -23
- package/dist/converters/empty.js.map +1 -1
- package/dist/converters/enum.js +14 -29
- package/dist/converters/enum.js.map +1 -1
- package/dist/converters/method.js +16 -32
- package/dist/converters/method.js.map +1 -1
- package/dist/converters/module.js +10 -28
- package/dist/converters/module.js.map +1 -1
- package/dist/converters/property.js +41 -36
- package/dist/converters/property.js.map +1 -1
- package/dist/converters/reference.js +20 -0
- package/dist/converters/reference.js.map +1 -0
- package/dist/converters/type.js +24 -36
- package/dist/converters/type.js.map +1 -1
- package/dist/helpers/linkConvertHelper.js +5 -6
- package/dist/helpers/linkConvertHelper.js.map +1 -1
- package/dist/helpers/toSdpConvertHelper.js +112 -81
- package/dist/helpers/toSdpConvertHelper.js.map +1 -1
- package/dist/idResolver.js +101 -27
- package/dist/idResolver.js.map +1 -1
- package/dist/main.js +162 -100
- package/dist/main.js.map +1 -1
- package/dist/parser.js +25 -32
- package/dist/parser.js.map +1 -1
- package/dist/postTransformer.js +34 -39
- package/dist/postTransformer.js.map +1 -1
- package/dist/tocGenerator.js +14 -15
- package/dist/tocGenerator.js.map +1 -1
- package/package.json +11 -12
- package/tsconfig.json +5 -2
- package/dist/moduleGenerator.js +0 -34
- package/dist/moduleGenerator.js.map +0 -1
- package/dist/packageGenerator.js +0 -35
- package/dist/packageGenerator.js.map +0 -1
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
// --------------------------------------------------------------------
|
|
6
6
|
|
|
7
7
|
using System.Reflection;
|
|
8
|
-
[assembly: AssemblyVersion("1.0.
|
|
9
|
-
[assembly: AssemblyFileVersion("1.0.
|
|
10
|
-
[assembly: AssemblyInformationalVersion("1.0.
|
|
8
|
+
[assembly: AssemblyVersion("1.0.02257.33")]
|
|
9
|
+
[assembly: AssemblyFileVersion("1.0.02257.33")]
|
|
10
|
+
[assembly: AssemblyInformationalVersion("1.0.02257.33")]
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
// </auto-generated>
|
|
5
5
|
// --------------------------------------------------------------------
|
|
6
6
|
|
|
7
|
-
#define ASSEMBLY_VERSION "1.0.
|
|
8
|
-
#define ASSEMBLY_FILE_VERSION "1.0.
|
|
9
|
-
#define ASSEMBLY_INFORMATIONAL_VERSION "1.0.
|
|
7
|
+
#define ASSEMBLY_VERSION "1.0.02257.33"
|
|
8
|
+
#define ASSEMBLY_FILE_VERSION "1.0.02257.33"
|
|
9
|
+
#define ASSEMBLY_INFORMATIONAL_VERSION "1.0.02257.33"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
02257
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
96687c6e
|
|
@@ -1 +1 @@
|
|
|
1
|
-
1.0.
|
|
1
|
+
1.0.02257.33
|
|
@@ -1 +1 @@
|
|
|
1
|
-
1.0.
|
|
1
|
+
1.0.2257.33
|
|
@@ -1 +1 @@
|
|
|
1
|
-
1.0.
|
|
1
|
+
1.0.0225733
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
33
|
|
@@ -1 +1 @@
|
|
|
1
|
-
1.0.
|
|
1
|
+
1.0.02257.33
|
|
@@ -1 +1 @@
|
|
|
1
|
-
1.0.
|
|
1
|
+
1.0.0225733
|
package/.version/versions.xml
CHANGED
package/dist/cli.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
const commander_1 = require("commander");
|
|
5
|
+
const error_1 = require("./common/error");
|
|
6
|
+
const main_1 = require("./main");
|
|
7
|
+
let pjson = require('../package.json');
|
|
8
8
|
commander_1.program
|
|
9
|
-
.version(
|
|
9
|
+
.version(`v${pjson.version}`)
|
|
10
10
|
.description('Generate TypeScript API documentation for docfx.')
|
|
11
11
|
.argument('<input>', 'input can be one of the following:\n' +
|
|
12
12
|
'* a path to the typedoc JSON output\n' +
|
|
@@ -19,7 +19,7 @@ commander_1.program
|
|
|
19
19
|
commander_1.program.help();
|
|
20
20
|
}
|
|
21
21
|
try {
|
|
22
|
-
main_1.run(input, output);
|
|
22
|
+
(0, main_1.run)(input, output);
|
|
23
23
|
}
|
|
24
24
|
catch (err) {
|
|
25
25
|
if (err instanceof error_1.UserError) {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AAEA,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,0CAA2C;AAC3C,iCAA6B;AAC7B,IAAI,KAAK,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEvC,mBAAO;KACF,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;KAC5B,WAAW,CAAC,kDAAkD,CAAC;KAC/D,QAAQ,CAAC,SAAS,EAAE,sCAAsC;IACtC,uCAAuC;IACvC,kCAAkC;IAClC,kIAAkI,CAAC;KACvJ,QAAQ,CAAC,gBAAgB,EAAE,mDAAmD,CAAC;KAC/E,MAAM,CAAC,UAAU,KAAa,EAAE,MAAc;IAC3C,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE;QACnB,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;QACnF,mBAAO,CAAC,IAAI,EAAE,CAAC;KAClB;IAED,IAAI;QACA,IAAA,UAAG,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;KACpB;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,GAAG,YAAY,iBAAS,EAAE;YAC5B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;aAAM;YACL,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;KACF;AACP,CAAC,CAAC;KACD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
package/dist/common/constants.js
CHANGED
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.alreadyExistFilename = exports.sdpYamlHeaderPrefix = exports.langs = exports.setOfTopLevelItems = exports.yamlHeader = exports.constructorName = void 0;
|
|
4
4
|
exports.constructorName = 'constructor';
|
|
5
5
|
exports.yamlHeader = '### YamlMime:UniversalReference';
|
|
6
|
-
exports.setOfTopLevelItems = new Set(['class', 'interface', '
|
|
6
|
+
exports.setOfTopLevelItems = new Set(['class', 'interface', 'namespace', 'type alias']);
|
|
7
7
|
exports.langs = ['typeScript'];
|
|
8
8
|
exports.sdpYamlHeaderPrefix = '### YamlMime:TS';
|
|
9
9
|
exports.alreadyExistFilename = ["index"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/common/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG,aAAa,CAAC;AAChC,QAAA,UAAU,GAAG,iCAAiC,CAAC;AAC/C,QAAA,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/common/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG,aAAa,CAAC;AAChC,QAAA,UAAU,GAAG,iCAAiC,CAAC;AAC/C,QAAA,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;AAChF,QAAA,KAAK,GAAG,CAAC,YAAY,CAAC,CAAC;AACvB,QAAA,mBAAmB,GAAG,iBAAiB,CAAC;AACxC,QAAA,oBAAoB,GAAG,CAAC,OAAO,CAAC,CAAA"}
|
package/dist/common/error.js
CHANGED
|
@@ -1,29 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
})
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
15
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.UserError = void 0;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
Object.setPrototypeOf(_this, _newTarget.prototype);
|
|
24
|
-
return _this;
|
|
26
|
+
exports.assertNever = exports.UserError = void 0;
|
|
27
|
+
const Util = __importStar(require("util"));
|
|
28
|
+
class UserError extends Error {
|
|
29
|
+
constructor(message) {
|
|
30
|
+
super("[User Error]: " + message);
|
|
31
|
+
this.name = "UserError";
|
|
32
|
+
Object.setPrototypeOf(this, new.target.prototype);
|
|
25
33
|
}
|
|
26
|
-
|
|
27
|
-
}(Error));
|
|
34
|
+
}
|
|
28
35
|
exports.UserError = UserError;
|
|
36
|
+
/**
|
|
37
|
+
* Utility to help type checking ensure that there is no uncovered case.
|
|
38
|
+
*/
|
|
39
|
+
function assertNever(x) {
|
|
40
|
+
throw new Error(`Expected handling to cover all possible cases, but it didn't cover: ${Util.inspect(x)}`);
|
|
41
|
+
}
|
|
42
|
+
exports.assertNever = assertNever;
|
|
29
43
|
//# sourceMappingURL=error.js.map
|
package/dist/common/error.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/common/error.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/common/error.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAC7B,MAAa,SAAU,SAAQ,KAAK;IAChC,YAAY,OAAe;QACvB,KAAK,CAAC,gBAAgB,GAAG,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC;CACJ;AAND,8BAMC;AAED;;GAEG;AACF,SAAgB,WAAW,CAAC,CAAQ;IACjC,MAAM,IAAI,KAAK,CACX,uEAAuE,IAAI,CAAC,OAAO,CAC/E,CAAC,CACJ,EAAE,CACN,CAAC;AACN,CAAC;AANA,kCAMA"}
|
|
@@ -1,65 +1,52 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
extendStatics(d, b);
|
|
11
|
-
function __() { this.constructor = d; }
|
|
12
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
13
|
-
};
|
|
14
|
-
})();
|
|
15
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
3
|
exports.AccessorConverter = void 0;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
var uid = context.ParentUid + '.' + node.name;
|
|
26
|
-
console.log(" - " + node.kindString + ": " + uid);
|
|
27
|
-
var signatureType;
|
|
4
|
+
const base_1 = require("./base");
|
|
5
|
+
const idResolver_1 = require("../idResolver");
|
|
6
|
+
class AccessorConverter extends base_1.AbstractConverter {
|
|
7
|
+
generate(node, context) {
|
|
8
|
+
const uid = context.ParentUid + '.' + node.name;
|
|
9
|
+
console.log(` - ${node.kindString}: ${uid}`);
|
|
10
|
+
let signatureType;
|
|
11
|
+
let comment;
|
|
28
12
|
if (node.getSignature) {
|
|
29
13
|
if (Array.isArray(node.getSignature)) {
|
|
30
14
|
signatureType = node.getSignature[0].type;
|
|
15
|
+
comment = node.getSignature[0].comment;
|
|
31
16
|
}
|
|
32
17
|
else {
|
|
33
18
|
signatureType = node.getSignature.type;
|
|
19
|
+
comment = node.getSignature.comment;
|
|
34
20
|
}
|
|
35
21
|
}
|
|
36
22
|
else if (node.setSignature) {
|
|
37
23
|
if (Array.isArray(node.setSignature)) {
|
|
38
24
|
signatureType = node.setSignature[0].type;
|
|
25
|
+
comment = node.setSignature[0].comment;
|
|
39
26
|
}
|
|
40
27
|
else {
|
|
41
28
|
signatureType = node.setSignature.type;
|
|
29
|
+
comment = node.setSignature.comment;
|
|
42
30
|
}
|
|
43
31
|
}
|
|
44
|
-
|
|
32
|
+
const model = {
|
|
45
33
|
uid: uid,
|
|
46
34
|
name: node.name,
|
|
47
35
|
fullName: node.name,
|
|
48
36
|
children: [],
|
|
49
37
|
langs: ['typeScript'],
|
|
50
38
|
type: 'property',
|
|
51
|
-
summary:
|
|
39
|
+
summary: comment ? this.findDescriptionInComment(comment) : '',
|
|
52
40
|
syntax: {
|
|
53
|
-
content:
|
|
41
|
+
content: `${node.flags && node.flags.isStatic ? 'static ' : ''}${(0, idResolver_1.typeToString)(this.extractType(signatureType)[0])} ${node.name}`,
|
|
54
42
|
return: {
|
|
55
43
|
type: this.extractType(signatureType),
|
|
56
|
-
description: this.extractReturnComment(
|
|
44
|
+
description: this.extractReturnComment(comment)
|
|
57
45
|
}
|
|
58
46
|
}
|
|
59
47
|
};
|
|
60
48
|
return [model];
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
}(base_1.AbstractConverter));
|
|
49
|
+
}
|
|
50
|
+
}
|
|
64
51
|
exports.AccessorConverter = AccessorConverter;
|
|
65
52
|
//# sourceMappingURL=accessor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessor.js","sourceRoot":"","sources":["../../src/converters/accessor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"accessor.js","sourceRoot":"","sources":["../../src/converters/accessor.ts"],"names":[],"mappings":";;;AAEA,iCAA2C;AAC3C,8CAA6C;AAG7C,MAAa,iBAAkB,SAAQ,wBAAiB;IAC1C,QAAQ,CAAC,IAAU,EAAE,OAAgB;QAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC,CAAC;QAC7C,IAAI,aAAa,CAAC;QAClB,IAAI,OAAO,CAAC;QACZ,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;gBAClC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC1C,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;aAC1C;iBAAM;gBACH,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;gBACvC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;aACvC;SACJ;aAAM,IAAI,IAAI,CAAC,YAAY,EAAE;YAC1B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;gBAClC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC1C,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;aAC1C;iBAAM;gBACH,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;gBACvC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;aACvC;SACJ;QAED,MAAM,KAAK,GAAc;YACrB,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,QAAQ,EAAE,EAAE;YACZ,KAAK,EAAE,CAAC,YAAY,CAAC;YACrB,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;YAC9D,MAAM,EAAE;gBACJ,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,IAAA,yBAAY,EAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE;gBAChI,MAAM,EAAE;oBACJ,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;oBACrC,WAAW,EAAE,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;iBAClD;aACJ;SACJ,CAAC;QAEF,OAAO,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;CACJ;AA3CD,8CA2CC"}
|