@dmdata/telegram-json-types 1.2.0 → 1.2.3

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.
Files changed (52) hide show
  1. package/.github/workflows/release.yml +33 -0
  2. package/LICENSE +21 -21
  3. package/README.md +79 -79
  4. package/dist/jschema/forecast-weathermap_1.0.0.json +1 -1
  5. package/dist/jschema/weather-warning-timeseries_1.0.0.json +1 -1
  6. package/dist/jschema-load.js +3 -36
  7. package/index.d.ts +2 -2
  8. package/package.json +30 -32
  9. package/test/sample-schema-check.test.ts +68 -68
  10. package/tsconfig.json +25 -25
  11. package/types/component/coordinate.d.ts +27 -27
  12. package/types/component/earthquake.d.ts +77 -77
  13. package/types/component/index.d.ts +17 -17
  14. package/types/component/unit-value.d.ts +13 -13
  15. package/types/component/util.d.ts +20 -20
  16. package/types/index.d.ts +84 -84
  17. package/types/schema/earthquake-counts/1.0.0.d.ts +69 -69
  18. package/types/schema/earthquake-explanation/1.0.0.d.ts +57 -57
  19. package/types/schema/earthquake-hypocenter-update/1.0.0.d.ts +53 -53
  20. package/types/schema/earthquake-information/1.0.0.d.ts +158 -158
  21. package/types/schema/earthquake-information/1.1.0.d.ts +224 -224
  22. package/types/schema/earthquake-information/index.d.ts +9 -9
  23. package/types/schema/earthquake-nankai/1.0.0.d.ts +101 -101
  24. package/types/schema/eew-information/1.0.0.d.ts +221 -221
  25. package/types/schema/eew-information/index.d.ts +7 -7
  26. package/types/schema/forecast-2week-temperature/1.0.0.d.ts +110 -110
  27. package/types/schema/forecast-prefecture/1.0.0.d.ts +537 -537
  28. package/types/schema/forecast-season/1.0.0.d.ts +169 -169
  29. package/types/schema/forecast-warning-possibility/1.0.0.d.ts +388 -388
  30. package/types/schema/forecast-warning-possibility/1.1.0.d.ts +129 -129
  31. package/types/schema/forecast-warning-possibility/index.d.ts +9 -9
  32. package/types/schema/forecast-weathermap/1.0.0.d.ts +206 -194
  33. package/types/schema/tsunami-information/1.0.0.d.ts +261 -261
  34. package/types/schema/tsunami-information/1.1.0.d.ts +298 -298
  35. package/types/schema/tsunami-information/index.d.ts +9 -9
  36. package/types/schema/volcano-information/1.0.0.d.ts +450 -450
  37. package/types/schema/weather-commentary/1.0.0.d.ts +984 -984
  38. package/types/schema/weather-commentary/index.d.ts +7 -7
  39. package/types/schema/weather-early/1.0.0.d.ts +111 -111
  40. package/types/schema/weather-impact-society/1.0.0.d.ts +143 -143
  41. package/types/schema/weather-impact-society/1.0.1.d.ts +118 -118
  42. package/types/schema/weather-information/1.0.0.d.ts +67 -67
  43. package/types/schema/weather-landslide/1.0.0.d.ts +51 -51
  44. package/types/schema/weather-river-flood/1.0.0.d.ts +192 -192
  45. package/types/schema/weather-tornado/1.0.0.d.ts +55 -55
  46. package/types/schema/weather-typhoon/1.0.0.d.ts +146 -146
  47. package/types/schema/weather-typhoon/index.d.ts +7 -7
  48. package/types/schema/weather-warning/1.0.0.d.ts +213 -213
  49. package/types/schema/weather-warning/1.1.0.d.ts +469 -469
  50. package/types/schema/weather-warning/index.d.ts +9 -9
  51. package/types/schema/weather-warning-timeseries/1.0.0.d.ts +357 -385
  52. package/types/schema/weather-warning-timeseries/index.d.ts +7 -7
@@ -1,298 +1,298 @@
1
- import { TelegramJSONMain } from '../../main';
2
- import { Components } from '../../component';
3
-
4
-
5
- export namespace TsunamiInformation {
6
- export interface Schema {
7
- type: 'tsunami-information';
8
- version: '1.1.0';
9
- }
10
-
11
- export interface TsunamiForecastKindLastKind extends Components.CodeName {
12
- }
13
-
14
- export interface TsunamiForecastKind extends Components.CodeName {
15
- lastKind: TsunamiForecastKindLastKind;
16
- }
17
-
18
- export type TsunamiForecastFirstHeight = ({
19
- arrivalTime: string;
20
- condition?: 'ただちに津波来襲と予測';
21
- } | {
22
- arrivalTime?: never;
23
- condition: '津波到達中と推測' | '第1波の到達を確認';
24
- }) &
25
- {
26
- revise?: '追加' | '更新';
27
- };
28
-
29
- export type TsunamiForecastMaxHeightValue = {
30
- type: '津波の高さ';
31
- unit: 'm';
32
- } & ({
33
- value: string;
34
- over?: true;
35
- condition?: never;
36
- } | {
37
- value: null;
38
- over?: never;
39
- condition?: '巨大' | '高い';
40
- });
41
-
42
- export interface TsunamiForecastMaxHeight {
43
- height: TsunamiForecastMaxHeightValue;
44
- condition?: '重要';
45
- revise?: '追加' | '更新';
46
- }
47
-
48
- export interface TsunamiForecastStation extends Components.CodeName {
49
- highTideDateTime: string;
50
- firstHeight: TsunamiForecastFirstHeight;
51
- }
52
-
53
- export interface TsunamiForecast extends Components.CodeName {
54
- kind: TsunamiForecastKind;
55
- firstHeight?: TsunamiForecastFirstHeight;
56
- maxHeight?: TsunamiForecastMaxHeight;
57
- stations?: TsunamiForecastStation[] | never;
58
- }
59
-
60
- export interface TsunamiForecastVXSE41 extends TsunamiForecast {
61
- stations?: never;
62
- }
63
-
64
- export interface TsunamiForecastVXSE51 extends TsunamiForecast {
65
- stations?: TsunamiForecastStation[];
66
- }
67
-
68
- export interface TsunamiObservationStationFirstHeightArrived {
69
- arrivalTime: string;
70
- initial?: '押し' | '引き';
71
- condition?: never;
72
- revise?: '追加' | '更新';
73
- status?: never;
74
- }
75
-
76
- export interface TsunamiObservationStationFirstHeightUnidentifiable {
77
- arrivalTime?: never;
78
- initial?: never;
79
- condition: '第1波識別不能';
80
- revise?: '追加' | '更新';
81
- status?: never;
82
- }
83
-
84
- export interface TsunamiObservationStationFirstHeightDataMissing {
85
- arrivalTime?: never;
86
- initial?: never;
87
- condition?: never;
88
- revise?: never;
89
- status: '欠測';
90
- }
91
-
92
-
93
- export type TsunamiObservationStationFirstHeight =
94
- TsunamiObservationStationFirstHeightArrived
95
- | TsunamiObservationStationFirstHeightUnidentifiable
96
- | TsunamiObservationStationFirstHeightDataMissing;
97
-
98
- export interface TsunamiObservationStationMaxHeightValue {
99
- type: 'これまでの最大波の高さ';
100
- unit: 'm';
101
- value: string;
102
- over?: true;
103
- condition?: '上昇中';
104
- }
105
-
106
- export interface TsunamiObservationStationMaxHeightCommon {
107
- dateTime: string;
108
- height: TsunamiObservationStationMaxHeightValue;
109
- condition?: '重要';
110
- revise?: '追加' | '更新';
111
- status?: '欠測';
112
- }
113
-
114
- export interface TsunamiObservationStationMaxHeightWeak {
115
- dateTime: string;
116
- height?: never;
117
- condition: '微弱';
118
- revise?: '追加' | '更新';
119
- status?: '欠測';
120
- }
121
-
122
- export interface TsunamiObservationStationMaxHeightInProcess {
123
- dateTime?: never;
124
- height?: never;
125
- condition: '観測中';
126
- revise?: '追加' | '更新';
127
- status?: '欠測';
128
- }
129
-
130
- export interface TsunamiObservationStationMaxHeightDataMissing {
131
- dateTime?: never;
132
- height?: never;
133
- condition?: never;
134
- revise?: never;
135
- status: '欠測';
136
- }
137
-
138
- export type TsunamiObservationStationMaxHeight =
139
- TsunamiObservationStationMaxHeightCommon
140
- | TsunamiObservationStationMaxHeightWeak
141
- | TsunamiObservationStationMaxHeightInProcess
142
- | TsunamiObservationStationMaxHeightDataMissing;
143
-
144
- export interface TsunamiObservationStation extends Components.CodeName {
145
- sensor?: string;
146
- firstHeight: TsunamiObservationStationFirstHeight;
147
- maxHeight?: TsunamiObservationStationMaxHeight;
148
- }
149
-
150
- export interface TsunamiObservation {
151
- code: string | null;
152
- name: string | null;
153
- stations: TsunamiObservationStation[];
154
- }
155
-
156
- export interface TsunamiObservationVXSE51 extends TsunamiObservation {
157
- code: string;
158
- name: string;
159
- }
160
-
161
- export interface TsunamiObservationVXSE52 extends TsunamiObservation {
162
- code: null;
163
- name: null;
164
- }
165
-
166
- export interface TsunamiEstimationFirstHeight {
167
- arrivalTime?: string;
168
- condition: '早いところでは既に津波到達と推定';
169
- revise?: '追加' | '更新';
170
- }
171
-
172
- export type TsunamiEstimationMaxHeightValue = TsunamiForecastMaxHeightValue;
173
-
174
- export type TsunamiEstimationMaxHeight =
175
- ({
176
- dateTime: string;
177
- height: TsunamiEstimationMaxHeightValue;
178
- condition?: '重要';
179
- } | {
180
- dateTime?: never;
181
- height?: never;
182
- condition: '推定中';
183
- }) &
184
- {
185
- revise?: '追加' | '更新';
186
- };
187
-
188
- export interface TsunamiEstimation extends Components.CodeName {
189
- firstHeight: TsunamiEstimationFirstHeight;
190
- maxHeight: TsunamiEstimationMaxHeight;
191
- }
192
-
193
- export interface PublicBodyVTSE41Tsunami {
194
- forecasts: TsunamiForecastVXSE41[];
195
- }
196
-
197
- export interface PublicBodyVTSE51Tsunami {
198
- forecasts: TsunamiForecastVXSE51[];
199
- observations?: TsunamiObservationVXSE51[];
200
- }
201
-
202
- export interface PublicBodyVTSE52Tsunami {
203
- observations: TsunamiObservationVXSE52[];
204
- estimations: TsunamiEstimation[];
205
- }
206
-
207
- export type Comment = {
208
- free?: string;
209
- warning?: {
210
- text: string;
211
- codes: string[];
212
- };
213
- };
214
-
215
- export interface CancelBody {
216
- text: string;
217
- }
218
-
219
- export interface PublicBodyVTSE41 {
220
- tsunami: PublicBodyVTSE41Tsunami;
221
- earthquakes: Components.Earthquake[];
222
- text?: string;
223
- comments?: Comment;
224
- }
225
-
226
- export interface PublicBodyVTSE51 {
227
- tsunami: PublicBodyVTSE51Tsunami;
228
- earthquakes: Components.Earthquake[];
229
- text?: string;
230
- comments?: Comment;
231
- }
232
-
233
- export interface PublicBodyVTSE52 {
234
- tsunami: PublicBodyVTSE52Tsunami;
235
- earthquakes: Components.Earthquake[];
236
- text?: string;
237
- comments?: Comment;
238
- }
239
-
240
-
241
- export interface PublicVTSE41 extends TelegramJSONMain {
242
- _schema: Schema;
243
- type: '津波警報・注意報・予報a';
244
- title: string;
245
- infoType: '発表' | '訂正';
246
- targetDateTimeDubious?: never;
247
- targetDuration?: never;
248
- validDateTime?: string;
249
- eventId: string;
250
- serialNo: null;
251
- infoKind: '津波警報・注意報・予報';
252
- body: PublicBodyVTSE41;
253
- }
254
-
255
- export interface PublicVTSE51 extends TelegramJSONMain {
256
- _schema: Schema;
257
- type: '津波情報a';
258
- title: '各地の満潮時刻・津波到達予想時刻に関する情報' | '津波観測に関する情報';
259
- infoType: '発表' | '訂正';
260
- targetDateTimeDubious?: never;
261
- targetDuration?: never;
262
- validDateTime?: never;
263
- eventId: string;
264
- serialNo: string;
265
- infoKind: '津波情報';
266
- body: PublicBodyVTSE51;
267
- }
268
-
269
-
270
- export interface PublicVTSE52 extends TelegramJSONMain {
271
- _schema: Schema;
272
- type: '沖合の津波観測に関する情報';
273
- title: '沖合の津波観測に関する情報';
274
- infoType: '発表' | '訂正';
275
- targetDateTimeDubious?: never;
276
- targetDuration?: never;
277
- validDateTime?: never;
278
- eventId: string;
279
- serialNo: string;
280
- infoKind: '津波情報';
281
- body: PublicBodyVTSE52;
282
- }
283
-
284
-
285
- export interface Cancel extends TelegramJSONMain {
286
- type: '津波警報・注意報・予報a' | '津波情報a' | '沖合の津波観測に関する情報';
287
- infoType: '取消';
288
- targetDateTimeDubious?: never;
289
- targetDuration?: never;
290
- validDateTime?: never;
291
- eventId: string;
292
- infoKind: '津波警報・注意報・予報' | '津波情報';
293
- body: CancelBody;
294
- }
295
-
296
- export type Main = PublicVTSE41 | PublicVTSE51 | PublicVTSE52 | Cancel;
297
-
298
- }
1
+ import { TelegramJSONMain } from '../../main';
2
+ import { Components } from '../../component';
3
+
4
+
5
+ export namespace TsunamiInformation {
6
+ export interface Schema {
7
+ type: 'tsunami-information';
8
+ version: '1.1.0';
9
+ }
10
+
11
+ export interface TsunamiForecastKindLastKind extends Components.CodeName {
12
+ }
13
+
14
+ export interface TsunamiForecastKind extends Components.CodeName {
15
+ lastKind: TsunamiForecastKindLastKind;
16
+ }
17
+
18
+ export type TsunamiForecastFirstHeight = ({
19
+ arrivalTime: string;
20
+ condition?: 'ただちに津波来襲と予測';
21
+ } | {
22
+ arrivalTime?: never;
23
+ condition: '津波到達中と推測' | '第1波の到達を確認';
24
+ }) &
25
+ {
26
+ revise?: '追加' | '更新';
27
+ };
28
+
29
+ export type TsunamiForecastMaxHeightValue = {
30
+ type: '津波の高さ';
31
+ unit: 'm';
32
+ } & ({
33
+ value: string;
34
+ over?: true;
35
+ condition?: never;
36
+ } | {
37
+ value: null;
38
+ over?: never;
39
+ condition?: '巨大' | '高い';
40
+ });
41
+
42
+ export interface TsunamiForecastMaxHeight {
43
+ height: TsunamiForecastMaxHeightValue;
44
+ condition?: '重要';
45
+ revise?: '追加' | '更新';
46
+ }
47
+
48
+ export interface TsunamiForecastStation extends Components.CodeName {
49
+ highTideDateTime: string;
50
+ firstHeight: TsunamiForecastFirstHeight;
51
+ }
52
+
53
+ export interface TsunamiForecast extends Components.CodeName {
54
+ kind: TsunamiForecastKind;
55
+ firstHeight?: TsunamiForecastFirstHeight;
56
+ maxHeight?: TsunamiForecastMaxHeight;
57
+ stations?: TsunamiForecastStation[] | never;
58
+ }
59
+
60
+ export interface TsunamiForecastVXSE41 extends TsunamiForecast {
61
+ stations?: never;
62
+ }
63
+
64
+ export interface TsunamiForecastVXSE51 extends TsunamiForecast {
65
+ stations?: TsunamiForecastStation[];
66
+ }
67
+
68
+ export interface TsunamiObservationStationFirstHeightArrived {
69
+ arrivalTime: string;
70
+ initial?: '押し' | '引き';
71
+ condition?: never;
72
+ revise?: '追加' | '更新';
73
+ status?: never;
74
+ }
75
+
76
+ export interface TsunamiObservationStationFirstHeightUnidentifiable {
77
+ arrivalTime?: never;
78
+ initial?: never;
79
+ condition: '第1波識別不能';
80
+ revise?: '追加' | '更新';
81
+ status?: never;
82
+ }
83
+
84
+ export interface TsunamiObservationStationFirstHeightDataMissing {
85
+ arrivalTime?: never;
86
+ initial?: never;
87
+ condition?: never;
88
+ revise?: never;
89
+ status: '欠測';
90
+ }
91
+
92
+
93
+ export type TsunamiObservationStationFirstHeight =
94
+ TsunamiObservationStationFirstHeightArrived
95
+ | TsunamiObservationStationFirstHeightUnidentifiable
96
+ | TsunamiObservationStationFirstHeightDataMissing;
97
+
98
+ export interface TsunamiObservationStationMaxHeightValue {
99
+ type: 'これまでの最大波の高さ';
100
+ unit: 'm';
101
+ value: string;
102
+ over?: true;
103
+ condition?: '上昇中';
104
+ }
105
+
106
+ export interface TsunamiObservationStationMaxHeightCommon {
107
+ dateTime: string;
108
+ height: TsunamiObservationStationMaxHeightValue;
109
+ condition?: '重要';
110
+ revise?: '追加' | '更新';
111
+ status?: '欠測';
112
+ }
113
+
114
+ export interface TsunamiObservationStationMaxHeightWeak {
115
+ dateTime: string;
116
+ height?: never;
117
+ condition: '微弱';
118
+ revise?: '追加' | '更新';
119
+ status?: '欠測';
120
+ }
121
+
122
+ export interface TsunamiObservationStationMaxHeightInProcess {
123
+ dateTime?: never;
124
+ height?: never;
125
+ condition: '観測中';
126
+ revise?: '追加' | '更新';
127
+ status?: '欠測';
128
+ }
129
+
130
+ export interface TsunamiObservationStationMaxHeightDataMissing {
131
+ dateTime?: never;
132
+ height?: never;
133
+ condition?: never;
134
+ revise?: never;
135
+ status: '欠測';
136
+ }
137
+
138
+ export type TsunamiObservationStationMaxHeight =
139
+ TsunamiObservationStationMaxHeightCommon
140
+ | TsunamiObservationStationMaxHeightWeak
141
+ | TsunamiObservationStationMaxHeightInProcess
142
+ | TsunamiObservationStationMaxHeightDataMissing;
143
+
144
+ export interface TsunamiObservationStation extends Components.CodeName {
145
+ sensor?: string;
146
+ firstHeight: TsunamiObservationStationFirstHeight;
147
+ maxHeight?: TsunamiObservationStationMaxHeight;
148
+ }
149
+
150
+ export interface TsunamiObservation {
151
+ code: string | null;
152
+ name: string | null;
153
+ stations: TsunamiObservationStation[];
154
+ }
155
+
156
+ export interface TsunamiObservationVXSE51 extends TsunamiObservation {
157
+ code: string;
158
+ name: string;
159
+ }
160
+
161
+ export interface TsunamiObservationVXSE52 extends TsunamiObservation {
162
+ code: null;
163
+ name: null;
164
+ }
165
+
166
+ export interface TsunamiEstimationFirstHeight {
167
+ arrivalTime?: string;
168
+ condition: '早いところでは既に津波到達と推定';
169
+ revise?: '追加' | '更新';
170
+ }
171
+
172
+ export type TsunamiEstimationMaxHeightValue = TsunamiForecastMaxHeightValue;
173
+
174
+ export type TsunamiEstimationMaxHeight =
175
+ ({
176
+ dateTime: string;
177
+ height: TsunamiEstimationMaxHeightValue;
178
+ condition?: '重要';
179
+ } | {
180
+ dateTime?: never;
181
+ height?: never;
182
+ condition: '推定中';
183
+ }) &
184
+ {
185
+ revise?: '追加' | '更新';
186
+ };
187
+
188
+ export interface TsunamiEstimation extends Components.CodeName {
189
+ firstHeight: TsunamiEstimationFirstHeight;
190
+ maxHeight: TsunamiEstimationMaxHeight;
191
+ }
192
+
193
+ export interface PublicBodyVTSE41Tsunami {
194
+ forecasts: TsunamiForecastVXSE41[];
195
+ }
196
+
197
+ export interface PublicBodyVTSE51Tsunami {
198
+ forecasts: TsunamiForecastVXSE51[];
199
+ observations?: TsunamiObservationVXSE51[];
200
+ }
201
+
202
+ export interface PublicBodyVTSE52Tsunami {
203
+ observations: TsunamiObservationVXSE52[];
204
+ estimations: TsunamiEstimation[];
205
+ }
206
+
207
+ export type Comment = {
208
+ free?: string;
209
+ warning?: {
210
+ text: string;
211
+ codes: string[];
212
+ };
213
+ };
214
+
215
+ export interface CancelBody {
216
+ text: string;
217
+ }
218
+
219
+ export interface PublicBodyVTSE41 {
220
+ tsunami: PublicBodyVTSE41Tsunami;
221
+ earthquakes: Components.Earthquake[];
222
+ text?: string;
223
+ comments?: Comment;
224
+ }
225
+
226
+ export interface PublicBodyVTSE51 {
227
+ tsunami: PublicBodyVTSE51Tsunami;
228
+ earthquakes: Components.Earthquake[];
229
+ text?: string;
230
+ comments?: Comment;
231
+ }
232
+
233
+ export interface PublicBodyVTSE52 {
234
+ tsunami: PublicBodyVTSE52Tsunami;
235
+ earthquakes: Components.Earthquake[];
236
+ text?: string;
237
+ comments?: Comment;
238
+ }
239
+
240
+
241
+ export interface PublicVTSE41 extends TelegramJSONMain {
242
+ _schema: Schema;
243
+ type: '津波警報・注意報・予報a';
244
+ title: string;
245
+ infoType: '発表' | '訂正';
246
+ targetDateTimeDubious?: never;
247
+ targetDuration?: never;
248
+ validDateTime?: string;
249
+ eventId: string;
250
+ serialNo: null;
251
+ infoKind: '津波警報・注意報・予報';
252
+ body: PublicBodyVTSE41;
253
+ }
254
+
255
+ export interface PublicVTSE51 extends TelegramJSONMain {
256
+ _schema: Schema;
257
+ type: '津波情報a';
258
+ title: '各地の満潮時刻・津波到達予想時刻に関する情報' | '津波観測に関する情報';
259
+ infoType: '発表' | '訂正';
260
+ targetDateTimeDubious?: never;
261
+ targetDuration?: never;
262
+ validDateTime?: never;
263
+ eventId: string;
264
+ serialNo: string;
265
+ infoKind: '津波情報';
266
+ body: PublicBodyVTSE51;
267
+ }
268
+
269
+
270
+ export interface PublicVTSE52 extends TelegramJSONMain {
271
+ _schema: Schema;
272
+ type: '沖合の津波観測に関する情報';
273
+ title: '沖合の津波観測に関する情報';
274
+ infoType: '発表' | '訂正';
275
+ targetDateTimeDubious?: never;
276
+ targetDuration?: never;
277
+ validDateTime?: never;
278
+ eventId: string;
279
+ serialNo: string;
280
+ infoKind: '津波情報';
281
+ body: PublicBodyVTSE52;
282
+ }
283
+
284
+
285
+ export interface Cancel extends TelegramJSONMain {
286
+ type: '津波警報・注意報・予報a' | '津波情報a' | '沖合の津波観測に関する情報';
287
+ infoType: '取消';
288
+ targetDateTimeDubious?: never;
289
+ targetDuration?: never;
290
+ validDateTime?: never;
291
+ eventId: string;
292
+ infoKind: '津波警報・注意報・予報' | '津波情報';
293
+ body: CancelBody;
294
+ }
295
+
296
+ export type Main = PublicVTSE41 | PublicVTSE51 | PublicVTSE52 | Cancel;
297
+
298
+ }
@@ -1,9 +1,9 @@
1
- import { TsunamiInformation as v1_1_0 } from './1.1.0';
2
- import { TsunamiInformation as v1_0_0 } from './1.0.0';
3
-
4
-
5
- export {
6
- v1_1_0 as Latest,
7
- v1_1_0,
8
- v1_0_0
9
- };
1
+ import { TsunamiInformation as v1_1_0 } from './1.1.0';
2
+ import { TsunamiInformation as v1_0_0 } from './1.0.0';
3
+
4
+
5
+ export {
6
+ v1_1_0 as Latest,
7
+ v1_1_0,
8
+ v1_0_0
9
+ };