hk-bus-eta 2.1.2 → 2.1.4
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/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/kmb.d.ts +2 -1
- package/dist/kmb.js +10 -1
- package/dist/kmb.js.map +1 -1
- package/esm/index.js +4 -3
- package/esm/index.js.map +1 -1
- package/esm/kmb.d.ts +2 -1
- package/esm/kmb.js +10 -1
- package/esm/kmb.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +1 -0
- package/src/kmb.ts +11 -1
package/dist/index.js
CHANGED
|
@@ -28,13 +28,14 @@ function fetchEtas({ route, stops, bound, dest, seq, serviceType, co, nlbId, gtf
|
|
|
28
28
|
if (company_id === 'kmb' && stops.kmb) {
|
|
29
29
|
_etas = _etas.concat(yield (0, kmb_1.default)({
|
|
30
30
|
route,
|
|
31
|
+
stops: stops.kmb,
|
|
31
32
|
stopId: stops.kmb[seq],
|
|
32
33
|
seq, co,
|
|
33
|
-
serviceType, bound: bound
|
|
34
|
+
serviceType, bound: bound.kmb,
|
|
34
35
|
}));
|
|
35
36
|
}
|
|
36
37
|
else if (company_id === 'ctb' && stops.ctb) {
|
|
37
|
-
_etas = _etas.concat(yield (0, ctb_1.default)({ stopId: stops.ctb[seq], route, bound: bound
|
|
38
|
+
_etas = _etas.concat(yield (0, ctb_1.default)({ stopId: stops.ctb[seq], route, bound: bound.ctb, seq }));
|
|
38
39
|
}
|
|
39
40
|
else if (company_id === 'nlb' && stops.nlb) {
|
|
40
41
|
_etas = _etas.concat(yield (0, nlb_1.default)({ stopId: stops.nlb[seq], nlbId }));
|
|
@@ -43,7 +44,7 @@ function fetchEtas({ route, stops, bound, dest, seq, serviceType, co, nlbId, gtf
|
|
|
43
44
|
_etas = _etas.concat(yield (0, lrtfeeder_1.default)({ stopId: stops.lrtfeeder[seq], route, language }));
|
|
44
45
|
}
|
|
45
46
|
else if (company_id === 'gmb' && stops.gmb) {
|
|
46
|
-
_etas = _etas.concat(yield (0, gmb_1.default)({ stopId: stops.gmb[seq], gtfsId, seq, bound: bound
|
|
47
|
+
_etas = _etas.concat(yield (0, gmb_1.default)({ stopId: stops.gmb[seq], gtfsId, seq, bound: bound.gmb }));
|
|
47
48
|
}
|
|
48
49
|
else if (company_id === 'lightRail' && stops.lightRail) {
|
|
49
50
|
_etas = _etas.concat(yield (0, lightRail_1.default)({ stopId: stops.lightRail[seq], route, dest }));
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gDAAuB;AACvB,gDAAuB;AACvB,gDAAuB;AACvB,4DAAmC;AACnC,gDAAuB;AACvB,4DAAmC;AACnC,gDAAuB;AAQvB,SAAsB,SAAS,CAAG,EAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAkB;;QAC3H,IAAI;YACF,IAAI,KAAK,GAAU,EAAE,CAAA;YACrB,KAAM,MAAM,UAAU,IAAI,EAAE,EAAG;gBAC7B,IAAI,UAAU,KAAK,KAAK,IAAI,KAAK,CAAC,GAAG,EAAE;oBACrC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAE,MAAM,IAAA,aAAG,EAAC;wBAC9B,KAAK;wBACL,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;wBACtB,GAAG,EAAE,EAAE;wBACP,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/kmb.d.ts
CHANGED
|
@@ -4,8 +4,9 @@ interface fetchEtasProps {
|
|
|
4
4
|
co: RouteListEntry['co'];
|
|
5
5
|
serviceType: RouteListEntry['serviceType'];
|
|
6
6
|
bound: RouteListEntry['bound']['kmb'];
|
|
7
|
+
stops: RouteListEntry['stops']['kmb'];
|
|
7
8
|
stopId: string;
|
|
8
9
|
seq: number;
|
|
9
10
|
}
|
|
10
|
-
export default function fetchEtas({ stopId, route, seq, serviceType, co, bound }: fetchEtasProps): Promise<Eta[]>;
|
|
11
|
+
export default function fetchEtas({ stopId, route, seq, serviceType, stops, co, bound }: fetchEtasProps): Promise<Eta[]>;
|
|
11
12
|
export {};
|
package/dist/kmb.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const utils_1 = require("./utils");
|
|
4
4
|
// parameter seq is 0-indexed here
|
|
5
|
-
function fetchEtas({ stopId, route, seq, serviceType, co, bound }) {
|
|
5
|
+
function fetchEtas({ stopId, route, seq, serviceType, stops, co, bound }) {
|
|
6
6
|
return (fetch(`https://data.etabus.gov.hk/v1/transport/kmb/eta/${stopId}/${route}/${serviceType}`, {
|
|
7
7
|
cache: utils_1.isSafari ? 'default' : 'no-store'
|
|
8
8
|
})
|
|
@@ -14,6 +14,15 @@ function fetchEtas({ stopId, route, seq, serviceType, co, bound }) {
|
|
|
14
14
|
// if KMB is the only service provider and the service type is matched,
|
|
15
15
|
// then sequence number should be exact matched, noted that eta.seq is 1-indexed
|
|
16
16
|
.filter((eta) => co.length > 1 || serviceType !== eta.service_type || eta.seq === seq + 1)
|
|
17
|
+
.filter((eta) => {
|
|
18
|
+
if (stops[stops.length - 1] === stops[0]) {
|
|
19
|
+
// handle circular route
|
|
20
|
+
if (stopId === stops[0]) {
|
|
21
|
+
return eta.seq === seq + 1;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return true;
|
|
25
|
+
})
|
|
17
26
|
.map((e) => ({
|
|
18
27
|
eta: e.eta,
|
|
19
28
|
remark: {
|
package/dist/kmb.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kmb.js","sourceRoot":"","sources":["../src/kmb.ts"],"names":[],"mappings":";;AACA,mCAAmC;
|
|
1
|
+
{"version":3,"file":"kmb.js","sourceRoot":"","sources":["../src/kmb.ts"],"names":[],"mappings":";;AACA,mCAAmC;AAYnC,kCAAkC;AAClC,SAAwB,SAAS,CAAE,EAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAiB;IACpG,OAAO,CACL,KAAK,CAAC,mDAAmD,MAAM,IAAI,KAAK,IAAI,WAAW,EAAE,EAAC;QACxF,KAAK,EAAE,gBAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;KACzC,CAAC;SACD,IAAI,CAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAE;SACnC,IAAI,CAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAE,CAAC,CAChB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CACrB,CAAC,CAAC,GAAG,KAAK,IAAI;WACX,CAAC,CAAC,GAAG,KAAK,KAAK,CACnB;SACA,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE;SACjF,MAAM,CAAC,CAAC,GAAQ,EAAE,CAAS,EAAE,IAAW,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACtE,wEAAwE;QACxE,gFAAgF;SAC/E,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,KAAK,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC;SAC9F,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAE;QACnB,IAAK,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAG;YAC1C,wBAAwB;YACxB,IAAK,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,EAAG;gBACzB,OAAO,GAAG,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAA;aAC3B;SACF;QACD,OAAO,IAAI,CAAA;IACb,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;QAChB,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,MAAM,EAAE;YACN,EAAE,EAAE,CAAC,CAAC,MAAM;YACZ,EAAE,EAAE,CAAC,CAAC,MAAM;SACb;QACD,EAAE,EAAE,KAAK;KACV,CAAC,CAAC,CACJ,CAAC,CACH,CAAC;AACJ,CAAC;AAnCD,4BAmCC"}
|
package/esm/index.js
CHANGED
|
@@ -12,13 +12,14 @@ export async function fetchEtas({ route, stops, bound, dest, seq, serviceType, c
|
|
|
12
12
|
if (company_id === 'kmb' && stops.kmb) {
|
|
13
13
|
_etas = _etas.concat(await kmb({
|
|
14
14
|
route,
|
|
15
|
+
stops: stops.kmb,
|
|
15
16
|
stopId: stops.kmb[seq],
|
|
16
17
|
seq, co,
|
|
17
|
-
serviceType, bound: bound
|
|
18
|
+
serviceType, bound: bound.kmb,
|
|
18
19
|
}));
|
|
19
20
|
}
|
|
20
21
|
else if (company_id === 'ctb' && stops.ctb) {
|
|
21
|
-
_etas = _etas.concat(await ctb({ stopId: stops.ctb[seq], route, bound: bound
|
|
22
|
+
_etas = _etas.concat(await ctb({ stopId: stops.ctb[seq], route, bound: bound.ctb, seq }));
|
|
22
23
|
}
|
|
23
24
|
else if (company_id === 'nlb' && stops.nlb) {
|
|
24
25
|
_etas = _etas.concat(await nlb({ stopId: stops.nlb[seq], nlbId }));
|
|
@@ -27,7 +28,7 @@ export async function fetchEtas({ route, stops, bound, dest, seq, serviceType, c
|
|
|
27
28
|
_etas = _etas.concat(await lrtfeeder({ stopId: stops.lrtfeeder[seq], route, language }));
|
|
28
29
|
}
|
|
29
30
|
else if (company_id === 'gmb' && stops.gmb) {
|
|
30
|
-
_etas = _etas.concat(await gmb({ stopId: stops.gmb[seq], gtfsId, seq, bound: bound
|
|
31
|
+
_etas = _etas.concat(await gmb({ stopId: stops.gmb[seq], gtfsId, seq, bound: bound.gmb }));
|
|
31
32
|
}
|
|
32
33
|
else if (company_id === 'lightRail' && stops.lightRail) {
|
|
33
34
|
_etas = _etas.concat(await lightrail({ stopId: stops.lightRail[seq], route, dest }));
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,OAAO,CAAA;AACvB,OAAO,GAAG,MAAM,OAAO,CAAA;AACvB,OAAO,GAAG,MAAM,OAAO,CAAA;AACvB,OAAO,SAAS,MAAM,aAAa,CAAA;AACnC,OAAO,GAAG,MAAM,OAAO,CAAA;AACvB,OAAO,SAAS,MAAM,aAAa,CAAA;AACnC,OAAO,GAAG,MAAM,OAAO,CAAA;AAQvB,MAAM,CAAC,KAAK,UAAU,SAAS,CAAG,EAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAkB;IAC3H,IAAI;QACF,IAAI,KAAK,GAAU,EAAE,CAAA;QACrB,KAAM,MAAM,UAAU,IAAI,EAAE,EAAG;YAC7B,IAAI,UAAU,KAAK,KAAK,IAAI,KAAK,CAAC,GAAG,EAAE;gBACrC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAE,MAAM,GAAG,CAAC;oBAC9B,KAAK;oBACL,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;oBACtB,GAAG,EAAE,EAAE;oBACP,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/esm/kmb.d.ts
CHANGED
|
@@ -4,8 +4,9 @@ interface fetchEtasProps {
|
|
|
4
4
|
co: RouteListEntry['co'];
|
|
5
5
|
serviceType: RouteListEntry['serviceType'];
|
|
6
6
|
bound: RouteListEntry['bound']['kmb'];
|
|
7
|
+
stops: RouteListEntry['stops']['kmb'];
|
|
7
8
|
stopId: string;
|
|
8
9
|
seq: number;
|
|
9
10
|
}
|
|
10
|
-
export default function fetchEtas({ stopId, route, seq, serviceType, co, bound }: fetchEtasProps): Promise<Eta[]>;
|
|
11
|
+
export default function fetchEtas({ stopId, route, seq, serviceType, stops, co, bound }: fetchEtasProps): Promise<Eta[]>;
|
|
11
12
|
export {};
|
package/esm/kmb.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { isSafari } from "./utils";
|
|
2
2
|
// parameter seq is 0-indexed here
|
|
3
|
-
export default function fetchEtas({ stopId, route, seq, serviceType, co, bound }) {
|
|
3
|
+
export default function fetchEtas({ stopId, route, seq, serviceType, stops, co, bound }) {
|
|
4
4
|
return (fetch(`https://data.etabus.gov.hk/v1/transport/kmb/eta/${stopId}/${route}/${serviceType}`, {
|
|
5
5
|
cache: isSafari ? 'default' : 'no-store'
|
|
6
6
|
})
|
|
@@ -12,6 +12,15 @@ export default function fetchEtas({ stopId, route, seq, serviceType, co, bound }
|
|
|
12
12
|
// if KMB is the only service provider and the service type is matched,
|
|
13
13
|
// then sequence number should be exact matched, noted that eta.seq is 1-indexed
|
|
14
14
|
.filter((eta) => co.length > 1 || serviceType !== eta.service_type || eta.seq === seq + 1)
|
|
15
|
+
.filter((eta) => {
|
|
16
|
+
if (stops[stops.length - 1] === stops[0]) {
|
|
17
|
+
// handle circular route
|
|
18
|
+
if (stopId === stops[0]) {
|
|
19
|
+
return eta.seq === seq + 1;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return true;
|
|
23
|
+
})
|
|
15
24
|
.map((e) => ({
|
|
16
25
|
eta: e.eta,
|
|
17
26
|
remark: {
|
package/esm/kmb.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kmb.js","sourceRoot":"","sources":["../src/kmb.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"kmb.js","sourceRoot":"","sources":["../src/kmb.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAYnC,kCAAkC;AAClC,MAAM,CAAC,OAAO,UAAU,SAAS,CAAE,EAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAiB;IACpG,OAAO,CACL,KAAK,CAAC,mDAAmD,MAAM,IAAI,KAAK,IAAI,WAAW,EAAE,EAAC;QACxF,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;KACzC,CAAC;SACD,IAAI,CAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAE;SACnC,IAAI,CAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAE,CAAC,CAChB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CACrB,CAAC,CAAC,GAAG,KAAK,IAAI;WACX,CAAC,CAAC,GAAG,KAAK,KAAK,CACnB;SACA,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE;SACjF,MAAM,CAAC,CAAC,GAAQ,EAAE,CAAS,EAAE,IAAW,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACtE,wEAAwE;QACxE,gFAAgF;SAC/E,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,KAAK,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC;SAC9F,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAE;QACnB,IAAK,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAG;YAC1C,wBAAwB;YACxB,IAAK,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,EAAG;gBACzB,OAAO,GAAG,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAA;aAC3B;SACF;QACD,OAAO,IAAI,CAAA;IACb,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;QAChB,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,MAAM,EAAE;YACN,EAAE,EAAE,CAAC,CAAC,MAAM;YACZ,EAAE,EAAE,CAAC,CAAC,MAAM;SACb;QACD,EAAE,EAAE,KAAK;KACV,CAAC,CAAC,CACJ,CAAC,CACH,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -19,6 +19,7 @@ export async function fetchEtas ( {route, stops, bound, dest, seq, serviceType,
|
|
|
19
19
|
if (company_id === 'kmb' && stops.kmb ){
|
|
20
20
|
_etas = _etas.concat( await kmb({
|
|
21
21
|
route,
|
|
22
|
+
stops: stops.kmb,
|
|
22
23
|
stopId: stops.kmb[seq],
|
|
23
24
|
seq, co,
|
|
24
25
|
serviceType, bound: bound.kmb,
|
package/src/kmb.ts
CHANGED
|
@@ -6,12 +6,13 @@ interface fetchEtasProps {
|
|
|
6
6
|
co: RouteListEntry['co'],
|
|
7
7
|
serviceType: RouteListEntry['serviceType'],
|
|
8
8
|
bound: RouteListEntry['bound']['kmb'],
|
|
9
|
+
stops: RouteListEntry['stops']['kmb'],
|
|
9
10
|
stopId: string,
|
|
10
11
|
seq: number,
|
|
11
12
|
}
|
|
12
13
|
|
|
13
14
|
// parameter seq is 0-indexed here
|
|
14
|
-
export default function fetchEtas ({stopId, route, seq, serviceType, co, bound}: fetchEtasProps): Promise<Eta[]> {
|
|
15
|
+
export default function fetchEtas ({stopId, route, seq, serviceType, stops, co, bound}: fetchEtasProps): Promise<Eta[]> {
|
|
15
16
|
return (
|
|
16
17
|
fetch(`https://data.etabus.gov.hk/v1/transport/kmb/eta/${stopId}/${route}/${serviceType}`,{
|
|
17
18
|
cache: isSafari ? 'default' : 'no-store'
|
|
@@ -27,6 +28,15 @@ export default function fetchEtas ({stopId, route, seq, serviceType, co, bound}:
|
|
|
27
28
|
// if KMB is the only service provider and the service type is matched,
|
|
28
29
|
// then sequence number should be exact matched, noted that eta.seq is 1-indexed
|
|
29
30
|
.filter((eta: any) => co.length > 1 || serviceType !== eta.service_type || eta.seq === seq + 1)
|
|
31
|
+
.filter((eta: any) => {
|
|
32
|
+
if ( stops[stops.length - 1] === stops[0] ) {
|
|
33
|
+
// handle circular route
|
|
34
|
+
if ( stopId === stops[0] ) {
|
|
35
|
+
return eta.seq === seq + 1
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return true
|
|
39
|
+
})
|
|
30
40
|
.map((e: any) => ({
|
|
31
41
|
eta: e.eta,
|
|
32
42
|
remark: {
|