1  /*
2   * Copyright (c) 2024 Huawei Device Co., Ltd.
3   * Licensed under the Apache License, Version 2.0 (the "License");
4   * you may not use this file except in compliance with the License.
5   * You may obtain a copy of the License at
6   *
7   *     http://www.apache.org/licenses/LICENSE-2.0
8   *
9   * Unless required by applicable law or agreed to in writing, software
10   * distributed under the License is distributed on an "AS IS" BASIS,
11   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12   * See the License for the specific language governing permissions and
13   * limitations under the License.
14   */
15  
16  #ifndef API_BASE_FORMATS_H
17  #define API_BASE_FORMATS_H
18  
19  #include <cstdint>
20  
21  #include <base/namespace.h>
22  
23  BASE_BEGIN_NAMESPACE()
24  /** \addtogroup group_formats
25   *  @{
26   */
27  /** Format */
28  enum Format {
29      /** Undefined */
30      BASE_FORMAT_UNDEFINED = 0,
31      /** R4G4 UNORM PACK8 */
32      BASE_FORMAT_R4G4_UNORM_PACK8 = 1,
33      /** R4G4B4A4 UNORM PACK16 */
34      BASE_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
35      /** B4G4R4A4 UNORM PACK16 */
36      BASE_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
37      /** R5G6B5 UNORM PACK16 */
38      BASE_FORMAT_R5G6B5_UNORM_PACK16 = 4,
39      /** B5G6R5 UNORM PACK16 */
40      BASE_FORMAT_B5G6R5_UNORM_PACK16 = 5,
41      /** R5G5B5A1 UNORM PACK16 */
42      BASE_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
43      /** B5G5R5A1 UNORM PACK16 */
44      BASE_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
45      /** A1R5G5B5 UNORM PACK16 */
46      BASE_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
47      /** R8 UNORM */
48      BASE_FORMAT_R8_UNORM = 9,
49      /** R8 SNORM */
50      BASE_FORMAT_R8_SNORM = 10,
51      /** R8 USCALED */
52      BASE_FORMAT_R8_USCALED = 11,
53      /** R8 SSCALED */
54      BASE_FORMAT_R8_SSCALED = 12,
55      /** R8 UINT */
56      BASE_FORMAT_R8_UINT = 13,
57      /** R8 SINT */
58      BASE_FORMAT_R8_SINT = 14,
59      /** R8 SRGB */
60      BASE_FORMAT_R8_SRGB = 15,
61      /** R8G8 UNORM */
62      BASE_FORMAT_R8G8_UNORM = 16,
63      /** R8G8 SNORM */
64      BASE_FORMAT_R8G8_SNORM = 17,
65      /** R8G8 USCALED */
66      BASE_FORMAT_R8G8_USCALED = 18,
67      /** R8G8 SSCALED */
68      BASE_FORMAT_R8G8_SSCALED = 19,
69      /** R8G8 UINT */
70      BASE_FORMAT_R8G8_UINT = 20,
71      /** R8G8 SINT */
72      BASE_FORMAT_R8G8_SINT = 21,
73      /** R8G8 SRGB */
74      BASE_FORMAT_R8G8_SRGB = 22,
75      /** R8G8B8 UNORM */
76      BASE_FORMAT_R8G8B8_UNORM = 23,
77      /** R8G8B8 SNORM */
78      BASE_FORMAT_R8G8B8_SNORM = 24,
79      /** R8G8B8 USCALED */
80      BASE_FORMAT_R8G8B8_USCALED = 25,
81      /** R8G8B8 SSCALED */
82      BASE_FORMAT_R8G8B8_SSCALED = 26,
83      /** R8G8B8 UINT */
84      BASE_FORMAT_R8G8B8_UINT = 27,
85      /** R8G8B8 SINT */
86      BASE_FORMAT_R8G8B8_SINT = 28,
87      /** R8G8B8 SRGB */
88      BASE_FORMAT_R8G8B8_SRGB = 29,
89      /** B8G8R8 UNORM */
90      BASE_FORMAT_B8G8R8_UNORM = 30,
91      /** B8G8R8 SNORM */
92      BASE_FORMAT_B8G8R8_SNORM = 31,
93      /** B8G8R8 SNORM */
94      BASE_FORMAT_B8G8R8_USCALED = 32,
95      /** B8G8R8 SNORM */
96      BASE_FORMAT_B8G8R8_SSCALED = 33,
97      /** B8G8R8 UINT */
98      BASE_FORMAT_B8G8R8_UINT = 34,
99      /** B8G8R8 SINT */
100      BASE_FORMAT_B8G8R8_SINT = 35,
101      /** B8G8R8 SRGB */
102      BASE_FORMAT_B8G8R8_SRGB = 36,
103      /** R8G8B8A8 UNORM */
104      BASE_FORMAT_R8G8B8A8_UNORM = 37,
105      /** R8G8B8A8 SNORM */
106      BASE_FORMAT_R8G8B8A8_SNORM = 38,
107      /** R8G8B8A8 USCALED */
108      BASE_FORMAT_R8G8B8A8_USCALED = 39,
109      /** R8G8B8A8 SSCALED */
110      BASE_FORMAT_R8G8B8A8_SSCALED = 40,
111      /** R8G8B8A8 UINT */
112      BASE_FORMAT_R8G8B8A8_UINT = 41,
113      /** R8G8B8A8 SINT */
114      BASE_FORMAT_R8G8B8A8_SINT = 42,
115      /** R8G8B8A8 SRGB */
116      BASE_FORMAT_R8G8B8A8_SRGB = 43,
117      /** B8G8R8A8 UNORM */
118      BASE_FORMAT_B8G8R8A8_UNORM = 44,
119      /** B8G8R8A8 SNORM */
120      BASE_FORMAT_B8G8R8A8_SNORM = 45,
121      /** B8G8R8A8 USCALED */
122      BASE_FORMAT_B8G8R8A8_USCALED = 46,
123      /** B8G8R8A8 SSCALED */
124      BASE_FORMAT_B8G8R8A8_SSCALED = 47,
125      /** B8G8R8A8 UINT */
126      BASE_FORMAT_B8G8R8A8_UINT = 48,
127      /** B8G8R8A8 SINT */
128      BASE_FORMAT_B8G8R8A8_SINT = 49,
129      /** FORMAT B8G8R8A8 SRGB */
130      BASE_FORMAT_B8G8R8A8_SRGB = 50,
131      /** A8B8G8R8 UNORM PACK32 */
132      BASE_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
133      /** A8B8G8R8 SNORM PACK32 */
134      BASE_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
135      /** A8B8G8R8 USCALED PACK32 */
136      BASE_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
137      /** A8B8G8R8 SSCALED PACK32 */
138      BASE_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
139      /** A8B8G8R8 UINT PACK32 */
140      BASE_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
141      /** A8B8G8R8 SINT PACK32 */
142      BASE_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
143      /** A8B8G8R8 SRGB PACK32 */
144      BASE_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
145      /** A2R10G10B10 UNORM PACK32 */
146      BASE_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
147      /** A2R10G10B10 SNORM PACK32 */
148      BASE_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
149      /** A2R10G10B10 USCALED PACK32 */
150      BASE_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
151      /** A2R10G10B10 SSCALED PACK32 */
152      BASE_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
153      /** A2R10G10B10 UINT PACK32 */
154      BASE_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
155      /** A2R10G10B10 SINT PACK32 */
156      BASE_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
157      /** A2B10G10R10 UNORM PACK32 */
158      BASE_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
159      /** A2B10G10R10 SNORM PACK32 */
160      BASE_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
161      /** A2B10G10R10 USCALED PACK32 */
162      BASE_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
163      /** A2B10G10R10 SSCALED PACK32 */
164      BASE_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
165      /** A2B10G10R10 UINT PACK32 */
166      BASE_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
167      /** A2B10G10R10 SINT PACK32 */
168      BASE_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
169      /** R16 UNORM */
170      BASE_FORMAT_R16_UNORM = 70,
171      /** R16 SNORM */
172      BASE_FORMAT_R16_SNORM = 71,
173      /** R16 USCALED */
174      BASE_FORMAT_R16_USCALED = 72,
175      /** R16 SSCALED */
176      BASE_FORMAT_R16_SSCALED = 73,
177      /** R16 UINT */
178      BASE_FORMAT_R16_UINT = 74,
179      /** R16 SINT */
180      BASE_FORMAT_R16_SINT = 75,
181      /** R16 SFLOAT */
182      BASE_FORMAT_R16_SFLOAT = 76,
183      /** R16G16 UNORM */
184      BASE_FORMAT_R16G16_UNORM = 77,
185      /** R16G16 SNORM */
186      BASE_FORMAT_R16G16_SNORM = 78,
187      /** R16G16 USCALED */
188      BASE_FORMAT_R16G16_USCALED = 79,
189      /** R16G16 SSCALED */
190      BASE_FORMAT_R16G16_SSCALED = 80,
191      /** R16G16 UINT */
192      BASE_FORMAT_R16G16_UINT = 81,
193      /** R16G16 SINT */
194      BASE_FORMAT_R16G16_SINT = 82,
195      /** R16G16 SFLOAT */
196      BASE_FORMAT_R16G16_SFLOAT = 83,
197      /** R16G16B16 UNORM */
198      BASE_FORMAT_R16G16B16_UNORM = 84,
199      /** R16G16B16 SNORM */
200      BASE_FORMAT_R16G16B16_SNORM = 85,
201      /** R16G16B16 USCALED */
202      BASE_FORMAT_R16G16B16_USCALED = 86,
203      /** R16G16B16 SSCALED */
204      BASE_FORMAT_R16G16B16_SSCALED = 87,
205      /** R16G16B16 UINT */
206      BASE_FORMAT_R16G16B16_UINT = 88,
207      /** R16G16B16 SINT */
208      BASE_FORMAT_R16G16B16_SINT = 89,
209      /** R16G16B16 SFLOAT */
210      BASE_FORMAT_R16G16B16_SFLOAT = 90,
211      /** R16G16B16A16 UNORM */
212      BASE_FORMAT_R16G16B16A16_UNORM = 91,
213      /** R16G16B16A16 SNORM */
214      BASE_FORMAT_R16G16B16A16_SNORM = 92,
215      /** R16G16B16A16 USCALED */
216      BASE_FORMAT_R16G16B16A16_USCALED = 93,
217      /** R16G16B16A16 SSCALED */
218      BASE_FORMAT_R16G16B16A16_SSCALED = 94,
219      /** R16G16B16A16 UINT */
220      BASE_FORMAT_R16G16B16A16_UINT = 95,
221      /** R16G16B16A16 SINT */
222      BASE_FORMAT_R16G16B16A16_SINT = 96,
223      /** R16G16B16A16 SFLOAT */
224      BASE_FORMAT_R16G16B16A16_SFLOAT = 97,
225      /** R32 UINT */
226      BASE_FORMAT_R32_UINT = 98,
227      /** R32 SINT */
228      BASE_FORMAT_R32_SINT = 99,
229      /** R32 SFLOAT */
230      BASE_FORMAT_R32_SFLOAT = 100,
231      /** R32G32 UINT */
232      BASE_FORMAT_R32G32_UINT = 101,
233      /** R32G32 SINT */
234      BASE_FORMAT_R32G32_SINT = 102,
235      /** R32G32 SFLOAT */
236      BASE_FORMAT_R32G32_SFLOAT = 103,
237      /** R32G32B32 UINT */
238      BASE_FORMAT_R32G32B32_UINT = 104,
239      /** R32G32B32 SINT */
240      BASE_FORMAT_R32G32B32_SINT = 105,
241      /** R32G32B32 SFLOAT */
242      BASE_FORMAT_R32G32B32_SFLOAT = 106,
243      /** R32G32B32A32 UINT */
244      BASE_FORMAT_R32G32B32A32_UINT = 107,
245      /** R32G32B32A32 SINT */
246      BASE_FORMAT_R32G32B32A32_SINT = 108,
247      /** R32G32B32A32 SFLOAT */
248      BASE_FORMAT_R32G32B32A32_SFLOAT = 109,
249      /** R64 UINT */
250      BASE_FORMAT_R64_UINT = 110,
251      /** R64 SINT */
252      BASE_FORMAT_R64_SINT = 111,
253      /** R64 SFLOAT */
254      BASE_FORMAT_R64_SFLOAT = 112,
255      /** R64G64 UINT */
256      BASE_FORMAT_R64G64_UINT = 113,
257      /** R64G64 SINT */
258      BASE_FORMAT_R64G64_SINT = 114,
259      /** R64G64 SFLOAT */
260      BASE_FORMAT_R64G64_SFLOAT = 115,
261      /** R64G64B64 UINT */
262      BASE_FORMAT_R64G64B64_UINT = 116,
263      /** R64G64B64 SINT */
264      BASE_FORMAT_R64G64B64_SINT = 117,
265      /** R64G64B64 SFLOAT */
266      BASE_FORMAT_R64G64B64_SFLOAT = 118,
267      /** R64G64B64A64 UINT */
268      BASE_FORMAT_R64G64B64A64_UINT = 119,
269      /** R64G64B64A64 SINT */
270      BASE_FORMAT_R64G64B64A64_SINT = 120,
271      /** R32G32B32A32 SFLOAT */
272      BASE_FORMAT_R64G64B64A64_SFLOAT = 121,
273      /** B10G11R11 UFLOAT PACK32 */
274      BASE_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
275      /** E5B9G9R9 UFLOAT PACK32 */
276      BASE_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
277      /** D16 UNORM */
278      BASE_FORMAT_D16_UNORM = 124,
279      /** X8 D24 UNORM PACK32 */
280      BASE_FORMAT_X8_D24_UNORM_PACK32 = 125,
281      /** D32 SFLOAT */
282      BASE_FORMAT_D32_SFLOAT = 126,
283      /** S8 UINT */
284      BASE_FORMAT_S8_UINT = 127,
285      /** D16 UNORM S8 UINT */
286      BASE_FORMAT_D16_UNORM_S8_UINT = 128,
287      /** D24 UNORM S8 UINT */
288      BASE_FORMAT_D24_UNORM_S8_UINT = 129,
289      /** D32 SFLOAT S8 UINT */
290      BASE_FORMAT_D32_SFLOAT_S8_UINT = 130,
291      /** BC1 RGB UNORM BLOCK */
292      BASE_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
293      /** BC1 RGB SRGB BLOCK */
294      BASE_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
295      /** BC1 RGBA UNORM BLOCK */
296      BASE_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
297      /** BC1 RGBA SRGB BLOCK */
298      BASE_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
299      /** BC2 UNORM BLOCK */
300      BASE_FORMAT_BC2_UNORM_BLOCK = 135,
301      /** BC2 SRGB BLOCK */
302      BASE_FORMAT_BC2_SRGB_BLOCK = 136,
303      /** BC3 UNORM BLOCK */
304      BASE_FORMAT_BC3_UNORM_BLOCK = 137,
305      /** BC3 SRGB BLOCK */
306      BASE_FORMAT_BC3_SRGB_BLOCK = 138,
307      /** BC4 UNORM BLOCK */
308      BASE_FORMAT_BC4_UNORM_BLOCK = 139,
309      /** BC4 SNORM BLOCK */
310      BASE_FORMAT_BC4_SNORM_BLOCK = 140,
311      /** BC5 UNORM BLOCK */
312      BASE_FORMAT_BC5_UNORM_BLOCK = 141,
313      /** BC5 SNORM BLOCK */
314      BASE_FORMAT_BC5_SNORM_BLOCK = 142,
315      /** BC6H UFLOAT BLOCK */
316      BASE_FORMAT_BC6H_UFLOAT_BLOCK = 143,
317      /** BC6H SFLOAT BLOCK */
318      BASE_FORMAT_BC6H_SFLOAT_BLOCK = 144,
319      /** BC7 UNORM BLOCK */
320      BASE_FORMAT_BC7_UNORM_BLOCK = 145,
321      /** BC7 SRGB BLOCK */
322      BASE_FORMAT_BC7_SRGB_BLOCK = 146,
323      /** ETC2 R8G8B8 UNORM BLOCK */
324      BASE_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
325      /** ETC2 R8G8B8 SRGB BLOCK */
326      BASE_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
327      /** ETC2 R8G8B8A1 UNORM BLOCK */
328      BASE_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
329      /** ETC2 R8G8B8A1 SRGB BLOCK */
330      BASE_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
331      /** ETC2 R8G8B8A8 UNORM BLOCK */
332      BASE_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
333      /** ETC2 R8G8B8A8 SRGB BLOCK */
334      BASE_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
335      /** EAC R11 UNORM BLOCK */
336      BASE_FORMAT_EAC_R11_UNORM_BLOCK = 153,
337      /** EAC R11 SNORM BLOCK */
338      BASE_FORMAT_EAC_R11_SNORM_BLOCK = 154,
339      /** EAC R11G11 UNORM BLOCK */
340      BASE_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
341      /** EAC R11G11 SNORM BLOCK */
342      BASE_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
343      /** ASTC 4x4 UNORM BLOCK */
344      BASE_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
345      /** ASTC 4x4 SRGB BLOCK */
346      BASE_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
347      /** ASTC 5x4 UNORM BLOCK */
348      BASE_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
349      /** ASTC 5x4 SRGB BLOCK */
350      BASE_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
351      /** ASTC 5x5 UNORM BLOCK */
352      BASE_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
353      /** ASTC 5x5 SRGB BLOCK */
354      BASE_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
355      /** ASTC 6x5 UNORM BLOCK */
356      BASE_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
357      /** ASTC 6x5 SRGB BLOCK */
358      BASE_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
359      /** ASTC 6x6 UNORM BLOCK */
360      BASE_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
361      /** ASTC 6x6 SRGB BLOCK */
362      BASE_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
363      /** ASTC 8x5 UNORM BLOCK */
364      BASE_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
365      /** ASTC 8x5 SRGB BLOCK */
366      BASE_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
367      /** ASTC 8x6 UNORM BLOCK */
368      BASE_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
369      /** ASTC 8x6 SRGB BLOCK */
370      BASE_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
371      /** ASTC 8x8 UNORM BLOCK */
372      BASE_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
373      /** ASTC 8x8 SRGB BLOCK */
374      BASE_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
375      /** ASTC 10x5 UNORM BLOCK */
376      BASE_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
377      /** ASTC 10x5 SRGB BLOCK */
378      BASE_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
379      /** ASTC 10x6 UNORM BLOCK */
380      BASE_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
381      /** ASTC 10x6 SRGB BLOCK */
382      BASE_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
383      /** ASTC 10x8 UNORM BLOCK */
384      BASE_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
385      /** ASTC 10x8 SRGB BLOCK */
386      BASE_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
387      /** ASTC 10x10 UNORM BLOCK */
388      BASE_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
389      /** ASTC 10x10 SRGB BLOCK */
390      BASE_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
391      /** ASTC 12x10 UNORM BLOCK */
392      BASE_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
393      /** ASTC 12x10 SRGB BLOCK */
394      BASE_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
395      /** ASTC 12x12 UNORM BLOCK */
396      BASE_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
397      /** ASTC 12x12 SRGB BLOCK */
398      BASE_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
399      /** G8B8G8R8 422 UNORM */
400      BASE_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
401      /** B8G8R8G8 422 UNORM */
402      BASE_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
403      /** G8 B8 R8 3PLANE 420 UNORM */
404      BASE_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
405      /** G8 B8R8 2PLANE 420 UNORM */
406      BASE_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
407      /** G8 B8 R8 3PLANE 422 UNORM */
408      BASE_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
409      /** G8 B8R8 2PLANE 422 UNORM */
410      BASE_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
411      /** G8 B8R8 3PLANE 444 UNORM */
412      BASE_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
413      /** Max enumeration */
414  };
415  /** @} */
416  BASE_END_NAMESPACE()
417  
418  #endif // API_BASE_FORMATS_H
419