GNU Linux-libre 6.8.9-gnu
[releases.git] / fs / xfs / xfs_dahash_test.c
1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /*
3  * Copyright (C) 2023 Oracle.  All Rights Reserved.
4  * Author: Darrick J. Wong <djwong@kernel.org>
5  */
6 #include "xfs.h"
7 #include "xfs_fs.h"
8 #include "xfs_shared.h"
9 #include "xfs_format.h"
10 #include "xfs_da_format.h"
11 #include "xfs_da_btree.h"
12 #include "xfs_trans_resv.h"
13 #include "xfs_mount.h"
14 #include "xfs_dir2_priv.h"
15 #include "xfs_dahash_test.h"
16
17 /* 4096 random bytes */
18 static uint8_t __initdata __attribute__((__aligned__(8))) test_buf[] =
19 {
20         0x5b, 0x85, 0x21, 0xcb, 0x09, 0x68, 0x7d, 0x30,
21         0xc7, 0x69, 0xd7, 0x30, 0x92, 0xde, 0x59, 0xe4,
22         0xc9, 0x6e, 0x8b, 0xdb, 0x98, 0x6b, 0xaa, 0x60,
23         0xa8, 0xb5, 0xbc, 0x6c, 0xa9, 0xb1, 0x5b, 0x2c,
24         0xea, 0xb4, 0x92, 0x6a, 0x3f, 0x79, 0x91, 0xe4,
25         0xe9, 0x70, 0x51, 0x8c, 0x7f, 0x95, 0x6f, 0x1a,
26         0x56, 0xa1, 0x5c, 0x27, 0x03, 0x67, 0x9f, 0x3a,
27         0xe2, 0x31, 0x11, 0x29, 0x6b, 0x98, 0xfc, 0xc4,
28         0x53, 0x24, 0xc5, 0x8b, 0xce, 0x47, 0xb2, 0xb9,
29         0x32, 0xcb, 0xc1, 0xd0, 0x03, 0x57, 0x4e, 0xd4,
30         0xe9, 0x3c, 0xa1, 0x63, 0xcf, 0x12, 0x0e, 0xca,
31         0xe1, 0x13, 0xd1, 0x93, 0xa6, 0x88, 0x5c, 0x61,
32         0x5b, 0xbb, 0xf0, 0x19, 0x46, 0xb4, 0xcf, 0x9e,
33         0xb6, 0x6b, 0x4c, 0x3a, 0xcf, 0x60, 0xf9, 0x7a,
34         0x8d, 0x07, 0x63, 0xdb, 0x40, 0xe9, 0x0b, 0x6f,
35         0xad, 0x97, 0xf1, 0xed, 0xd0, 0x1e, 0x26, 0xfd,
36         0xbf, 0xb7, 0xc8, 0x04, 0x94, 0xf8, 0x8b, 0x8c,
37         0xf1, 0xab, 0x7a, 0xd4, 0xdd, 0xf3, 0xe8, 0x88,
38         0xc3, 0xed, 0x17, 0x8a, 0x9b, 0x40, 0x0d, 0x53,
39         0x62, 0x12, 0x03, 0x5f, 0x1b, 0x35, 0x32, 0x1f,
40         0xb4, 0x7b, 0x93, 0x78, 0x0d, 0xdb, 0xce, 0xa4,
41         0xc0, 0x47, 0xd5, 0xbf, 0x68, 0xe8, 0x5d, 0x74,
42         0x8f, 0x8e, 0x75, 0x1c, 0xb2, 0x4f, 0x9a, 0x60,
43         0xd1, 0xbe, 0x10, 0xf4, 0x5c, 0xa1, 0x53, 0x09,
44         0xa5, 0xe0, 0x09, 0x54, 0x85, 0x5c, 0xdc, 0x07,
45         0xe7, 0x21, 0x69, 0x7b, 0x8a, 0xfd, 0x90, 0xf1,
46         0x22, 0xd0, 0xb4, 0x36, 0x28, 0xe6, 0xb8, 0x0f,
47         0x39, 0xde, 0xc8, 0xf3, 0x86, 0x60, 0x34, 0xd2,
48         0x5e, 0xdf, 0xfd, 0xcf, 0x0f, 0xa9, 0x65, 0xf0,
49         0xd5, 0x4d, 0x96, 0x40, 0xe3, 0xdf, 0x3f, 0x95,
50         0x5a, 0x39, 0x19, 0x93, 0xf4, 0x75, 0xce, 0x22,
51         0x00, 0x1c, 0x93, 0xe2, 0x03, 0x66, 0xf4, 0x93,
52         0x73, 0x86, 0x81, 0x8e, 0x29, 0x44, 0x48, 0x86,
53         0x61, 0x7c, 0x48, 0xa3, 0x43, 0xd2, 0x9c, 0x8d,
54         0xd4, 0x95, 0xdd, 0xe1, 0x22, 0x89, 0x3a, 0x40,
55         0x4c, 0x1b, 0x8a, 0x04, 0xa8, 0x09, 0x69, 0x8b,
56         0xea, 0xc6, 0x55, 0x8e, 0x57, 0xe6, 0x64, 0x35,
57         0xf0, 0xc7, 0x16, 0x9f, 0x5d, 0x5e, 0x86, 0x40,
58         0x46, 0xbb, 0xe5, 0x45, 0x88, 0xfe, 0xc9, 0x63,
59         0x15, 0xfb, 0xf5, 0xbd, 0x71, 0x61, 0xeb, 0x7b,
60         0x78, 0x70, 0x07, 0x31, 0x03, 0x9f, 0xb2, 0xc8,
61         0xa7, 0xab, 0x47, 0xfd, 0xdf, 0xa0, 0x78, 0x72,
62         0xa4, 0x2a, 0xe4, 0xb6, 0xba, 0xc0, 0x1e, 0x86,
63         0x71, 0xe6, 0x3d, 0x18, 0x37, 0x70, 0xe6, 0xff,
64         0xe0, 0xbc, 0x0b, 0x22, 0xa0, 0x1f, 0xd3, 0xed,
65         0xa2, 0x55, 0x39, 0xab, 0xa8, 0x13, 0x73, 0x7c,
66         0x3f, 0xb2, 0xd6, 0x19, 0xac, 0xff, 0x99, 0xed,
67         0xe8, 0xe6, 0xa6, 0x22, 0xe3, 0x9c, 0xf1, 0x30,
68         0xdc, 0x01, 0x0a, 0x56, 0xfa, 0xe4, 0xc9, 0x99,
69         0xdd, 0xa8, 0xd8, 0xda, 0x35, 0x51, 0x73, 0xb4,
70         0x40, 0x86, 0x85, 0xdb, 0x5c, 0xd5, 0x85, 0x80,
71         0x14, 0x9c, 0xfd, 0x98, 0xa9, 0x82, 0xc5, 0x37,
72         0xff, 0x32, 0x5d, 0xd0, 0x0b, 0xfa, 0xdc, 0x04,
73         0x5e, 0x09, 0xd2, 0xca, 0x17, 0x4b, 0x1a, 0x8e,
74         0x15, 0xe1, 0xcc, 0x4e, 0x52, 0x88, 0x35, 0xbd,
75         0x48, 0xfe, 0x15, 0xa0, 0x91, 0xfd, 0x7e, 0x6c,
76         0x0e, 0x5d, 0x79, 0x1b, 0x81, 0x79, 0xd2, 0x09,
77         0x34, 0x70, 0x3d, 0x81, 0xec, 0xf6, 0x24, 0xbb,
78         0xfb, 0xf1, 0x7b, 0xdf, 0x54, 0xea, 0x80, 0x9b,
79         0xc7, 0x99, 0x9e, 0xbd, 0x16, 0x78, 0x12, 0x53,
80         0x5e, 0x01, 0xa7, 0x4e, 0xbd, 0x67, 0xe1, 0x9b,
81         0x4c, 0x0e, 0x61, 0x45, 0x97, 0xd2, 0xf0, 0x0f,
82         0xfe, 0x15, 0x08, 0xb7, 0x11, 0x4c, 0xe7, 0xff,
83         0x81, 0x53, 0xff, 0x91, 0x25, 0x38, 0x7e, 0x40,
84         0x94, 0xe5, 0xe0, 0xad, 0xe6, 0xd9, 0x79, 0xb6,
85         0x92, 0xc9, 0xfc, 0xde, 0xc3, 0x1a, 0x23, 0xbb,
86         0xdd, 0xc8, 0x51, 0x0c, 0x3a, 0x72, 0xfa, 0x73,
87         0x6f, 0xb7, 0xee, 0x61, 0x39, 0x03, 0x01, 0x3f,
88         0x7f, 0x94, 0x2e, 0x2e, 0xba, 0x3a, 0xbb, 0xb4,
89         0xfa, 0x6a, 0x17, 0xfe, 0xea, 0xef, 0x5e, 0x66,
90         0x97, 0x3f, 0x32, 0x3d, 0xd7, 0x3e, 0xb1, 0xf1,
91         0x6c, 0x14, 0x4c, 0xfd, 0x37, 0xd3, 0x38, 0x80,
92         0xfb, 0xde, 0xa6, 0x24, 0x1e, 0xc8, 0xca, 0x7f,
93         0x3a, 0x93, 0xd8, 0x8b, 0x18, 0x13, 0xb2, 0xe5,
94         0xe4, 0x93, 0x05, 0x53, 0x4f, 0x84, 0x66, 0xa7,
95         0x58, 0x5c, 0x7b, 0x86, 0x52, 0x6d, 0x0d, 0xce,
96         0xa4, 0x30, 0x7d, 0xb6, 0x18, 0x9f, 0xeb, 0xff,
97         0x22, 0xbb, 0x72, 0x29, 0xb9, 0x44, 0x0b, 0x48,
98         0x1e, 0x84, 0x71, 0x81, 0xe3, 0x6d, 0x73, 0x26,
99         0x92, 0xb4, 0x4d, 0x2a, 0x29, 0xb8, 0x1f, 0x72,
100         0xed, 0xd0, 0xe1, 0x64, 0x77, 0xea, 0x8e, 0x88,
101         0x0f, 0xef, 0x3f, 0xb1, 0x3b, 0xad, 0xf9, 0xc9,
102         0x8b, 0xd0, 0xac, 0xc6, 0xcc, 0xa9, 0x40, 0xcc,
103         0x76, 0xf6, 0x3b, 0x53, 0xb5, 0x88, 0xcb, 0xc8,
104         0x37, 0xf1, 0xa2, 0xba, 0x23, 0x15, 0x99, 0x09,
105         0xcc, 0xe7, 0x7a, 0x3b, 0x37, 0xf7, 0x58, 0xc8,
106         0x46, 0x8c, 0x2b, 0x2f, 0x4e, 0x0e, 0xa6, 0x5c,
107         0xea, 0x85, 0x55, 0xba, 0x02, 0x0e, 0x0e, 0x48,
108         0xbc, 0xe1, 0xb1, 0x01, 0x35, 0x79, 0x13, 0x3d,
109         0x1b, 0xc0, 0x53, 0x68, 0x11, 0xe7, 0x95, 0x0f,
110         0x9d, 0x3f, 0x4c, 0x47, 0x7b, 0x4d, 0x1c, 0xae,
111         0x50, 0x9b, 0xcb, 0xdd, 0x05, 0x8d, 0x9a, 0x97,
112         0xfd, 0x8c, 0xef, 0x0c, 0x1d, 0x67, 0x73, 0xa8,
113         0x28, 0x36, 0xd5, 0xb6, 0x92, 0x33, 0x40, 0x75,
114         0x0b, 0x51, 0xc3, 0x64, 0xba, 0x1d, 0xc2, 0xcc,
115         0xee, 0x7d, 0x54, 0x0f, 0x27, 0x69, 0xa7, 0x27,
116         0x63, 0x30, 0x29, 0xd9, 0xc8, 0x84, 0xd8, 0xdf,
117         0x9f, 0x68, 0x8d, 0x04, 0xca, 0xa6, 0xc5, 0xc7,
118         0x7a, 0x5c, 0xc8, 0xd1, 0xcb, 0x4a, 0xec, 0xd0,
119         0xd8, 0x20, 0x69, 0xc5, 0x17, 0xcd, 0x78, 0xc8,
120         0x75, 0x23, 0x30, 0x69, 0xc9, 0xd4, 0xea, 0x5c,
121         0x4f, 0x6b, 0x86, 0x3f, 0x8b, 0xfe, 0xee, 0x44,
122         0xc9, 0x7c, 0xb7, 0xdd, 0x3e, 0xe5, 0xec, 0x54,
123         0x03, 0x3e, 0xaa, 0x82, 0xc6, 0xdf, 0xb2, 0x38,
124         0x0e, 0x5d, 0xb3, 0x88, 0xd9, 0xd3, 0x69, 0x5f,
125         0x8f, 0x70, 0x8a, 0x7e, 0x11, 0xd9, 0x1e, 0x7b,
126         0x38, 0xf1, 0x42, 0x1a, 0xc0, 0x35, 0xf5, 0xc7,
127         0x36, 0x85, 0xf5, 0xf7, 0xb8, 0x7e, 0xc7, 0xef,
128         0x18, 0xf1, 0x63, 0xd6, 0x7a, 0xc6, 0xc9, 0x0e,
129         0x4d, 0x69, 0x4f, 0x84, 0xef, 0x26, 0x41, 0x0c,
130         0xec, 0xc7, 0xe0, 0x7e, 0x3c, 0x67, 0x01, 0x4c,
131         0x62, 0x1a, 0x20, 0x6f, 0xee, 0x47, 0x4d, 0xc0,
132         0x99, 0x13, 0x8d, 0x91, 0x4a, 0x26, 0xd4, 0x37,
133         0x28, 0x90, 0x58, 0x75, 0x66, 0x2b, 0x0a, 0xdf,
134         0xda, 0xee, 0x92, 0x25, 0x90, 0x62, 0x39, 0x9e,
135         0x44, 0x98, 0xad, 0xc1, 0x88, 0xed, 0xe4, 0xb4,
136         0xaf, 0xf5, 0x8c, 0x9b, 0x48, 0x4d, 0x56, 0x60,
137         0x97, 0x0f, 0x61, 0x59, 0x9e, 0xa6, 0x27, 0xfe,
138         0xc1, 0x91, 0x15, 0x38, 0xb8, 0x0f, 0xae, 0x61,
139         0x7d, 0x26, 0x13, 0x5a, 0x73, 0xff, 0x1c, 0xa3,
140         0x61, 0x04, 0x58, 0x48, 0x55, 0x44, 0x11, 0xfe,
141         0x15, 0xca, 0xc3, 0xbd, 0xca, 0xc5, 0xb4, 0x40,
142         0x5d, 0x1b, 0x7f, 0x39, 0xb5, 0x9c, 0x35, 0xec,
143         0x61, 0x15, 0x32, 0x32, 0xb8, 0x4e, 0x40, 0x9f,
144         0x17, 0x1f, 0x0a, 0x4d, 0xa9, 0x91, 0xef, 0xb7,
145         0xb0, 0xeb, 0xc2, 0x83, 0x9a, 0x6c, 0xd2, 0x79,
146         0x43, 0x78, 0x5e, 0x2f, 0xe5, 0xdd, 0x1a, 0x3c,
147         0x45, 0xab, 0x29, 0x40, 0x3a, 0x37, 0x5b, 0x6f,
148         0xd7, 0xfc, 0x48, 0x64, 0x3c, 0x49, 0xfb, 0x21,
149         0xbe, 0xc3, 0xff, 0x07, 0xfb, 0x17, 0xe9, 0xc9,
150         0x0c, 0x4c, 0x5c, 0x15, 0x9e, 0x8e, 0x22, 0x30,
151         0x0a, 0xde, 0x48, 0x7f, 0xdb, 0x0d, 0xd1, 0x2b,
152         0x87, 0x38, 0x9e, 0xcc, 0x5a, 0x01, 0x16, 0xee,
153         0x75, 0x49, 0x0d, 0x30, 0x01, 0x34, 0x6a, 0xb6,
154         0x9a, 0x5a, 0x2a, 0xec, 0xbb, 0x48, 0xac, 0xd3,
155         0x77, 0x83, 0xd8, 0x08, 0x86, 0x4f, 0x48, 0x09,
156         0x29, 0x41, 0x79, 0xa1, 0x03, 0x12, 0xc4, 0xcd,
157         0x90, 0x55, 0x47, 0x66, 0x74, 0x9a, 0xcc, 0x4f,
158         0x35, 0x8c, 0xd6, 0x98, 0xef, 0xeb, 0x45, 0xb9,
159         0x9a, 0x26, 0x2f, 0x39, 0xa5, 0x70, 0x6d, 0xfc,
160         0xb4, 0x51, 0xee, 0xf4, 0x9c, 0xe7, 0x38, 0x59,
161         0xad, 0xf4, 0xbc, 0x46, 0xff, 0x46, 0x8e, 0x60,
162         0x9c, 0xa3, 0x60, 0x1d, 0xf8, 0x26, 0x72, 0xf5,
163         0x72, 0x9d, 0x68, 0x80, 0x04, 0xf6, 0x0b, 0xa1,
164         0x0a, 0xd5, 0xa7, 0x82, 0x3a, 0x3e, 0x47, 0xa8,
165         0x5a, 0xde, 0x59, 0x4f, 0x7b, 0x07, 0xb3, 0xe9,
166         0x24, 0x19, 0x3d, 0x34, 0x05, 0xec, 0xf1, 0xab,
167         0x6e, 0x64, 0x8f, 0xd3, 0xe6, 0x41, 0x86, 0x80,
168         0x70, 0xe3, 0x8d, 0x60, 0x9c, 0x34, 0x25, 0x01,
169         0x07, 0x4d, 0x19, 0x41, 0x4e, 0x3d, 0x5c, 0x7e,
170         0xa8, 0xf5, 0xcc, 0xd5, 0x7b, 0xe2, 0x7d, 0x3d,
171         0x49, 0x86, 0x7d, 0x07, 0xb7, 0x10, 0xe3, 0x35,
172         0xb8, 0x84, 0x6d, 0x76, 0xab, 0x17, 0xc6, 0x38,
173         0xb4, 0xd3, 0x28, 0x57, 0xad, 0xd3, 0x88, 0x5a,
174         0xda, 0xea, 0xc8, 0x94, 0xcc, 0x37, 0x19, 0xac,
175         0x9c, 0x9f, 0x4b, 0x00, 0x15, 0xc0, 0xc8, 0xca,
176         0x1f, 0x15, 0xaa, 0xe0, 0xdb, 0xf9, 0x2f, 0x57,
177         0x1b, 0x24, 0xc7, 0x6f, 0x76, 0x29, 0xfb, 0xed,
178         0x25, 0x0d, 0xc0, 0xfe, 0xbd, 0x5a, 0xbf, 0x20,
179         0x08, 0x51, 0x05, 0xec, 0x71, 0xa3, 0xbf, 0xef,
180         0x5e, 0x99, 0x75, 0xdb, 0x3c, 0x5f, 0x9a, 0x8c,
181         0xbb, 0x19, 0x5c, 0x0e, 0x93, 0x19, 0xf8, 0x6a,
182         0xbc, 0xf2, 0x12, 0x54, 0x2f, 0xcb, 0x28, 0x64,
183         0x88, 0xb3, 0x92, 0x0d, 0x96, 0xd1, 0xa6, 0xe4,
184         0x1f, 0xf1, 0x4d, 0xa4, 0xab, 0x1c, 0xee, 0x54,
185         0xf2, 0xad, 0x29, 0x6d, 0x32, 0x37, 0xb2, 0x16,
186         0x77, 0x5c, 0xdc, 0x2e, 0x54, 0xec, 0x75, 0x26,
187         0xc6, 0x36, 0xd9, 0x17, 0x2c, 0xf1, 0x7a, 0xdc,
188         0x4b, 0xf1, 0xe2, 0xd9, 0x95, 0xba, 0xac, 0x87,
189         0xc1, 0xf3, 0x8e, 0x58, 0x08, 0xd8, 0x87, 0x60,
190         0xc9, 0xee, 0x6a, 0xde, 0xa4, 0xd2, 0xfc, 0x0d,
191         0xe5, 0x36, 0xc4, 0x5c, 0x52, 0xb3, 0x07, 0x54,
192         0x65, 0x24, 0xc1, 0xb1, 0xd1, 0xb1, 0x53, 0x13,
193         0x31, 0x79, 0x7f, 0x05, 0x76, 0xeb, 0x37, 0x59,
194         0x15, 0x2b, 0xd1, 0x3f, 0xac, 0x08, 0x97, 0xeb,
195         0x91, 0x98, 0xdf, 0x6c, 0x09, 0x0d, 0x04, 0x9f,
196         0xdc, 0x3b, 0x0e, 0x60, 0x68, 0x47, 0x23, 0x15,
197         0x16, 0xc6, 0x0b, 0x35, 0xf8, 0x77, 0xa2, 0x78,
198         0x50, 0xd4, 0x64, 0x22, 0x33, 0xff, 0xfb, 0x93,
199         0x71, 0x46, 0x50, 0x39, 0x1b, 0x9c, 0xea, 0x4e,
200         0x8d, 0x0c, 0x37, 0xe5, 0x5c, 0x51, 0x3a, 0x31,
201         0xb2, 0x85, 0x84, 0x3f, 0x41, 0xee, 0xa2, 0xc1,
202         0xc6, 0x13, 0x3b, 0x54, 0x28, 0xd2, 0x18, 0x37,
203         0xcc, 0x46, 0x9f, 0x6a, 0x91, 0x3d, 0x5a, 0x15,
204         0x3c, 0x89, 0xa3, 0x61, 0x06, 0x7d, 0x2e, 0x78,
205         0xbe, 0x7d, 0x40, 0xba, 0x2f, 0x95, 0xb1, 0x2f,
206         0x87, 0x3b, 0x8a, 0xbe, 0x6a, 0xf4, 0xc2, 0x31,
207         0x74, 0xee, 0x91, 0xe0, 0x23, 0xaa, 0x5d, 0x7f,
208         0xdd, 0xf0, 0x44, 0x8c, 0x0b, 0x59, 0x2b, 0xfc,
209         0x48, 0x3a, 0xdf, 0x07, 0x05, 0x38, 0x6c, 0xc9,
210         0xeb, 0x18, 0x24, 0x68, 0x8d, 0x58, 0x98, 0xd3,
211         0x31, 0xa3, 0xe4, 0x70, 0x59, 0xb1, 0x21, 0xbe,
212         0x7e, 0x65, 0x7d, 0xb8, 0x04, 0xab, 0xf6, 0xe4,
213         0xd7, 0xda, 0xec, 0x09, 0x8f, 0xda, 0x6d, 0x24,
214         0x07, 0xcc, 0x29, 0x17, 0x05, 0x78, 0x1a, 0xc1,
215         0xb1, 0xce, 0xfc, 0xaa, 0x2d, 0xe7, 0xcc, 0x85,
216         0x84, 0x84, 0x03, 0x2a, 0x0c, 0x3f, 0xa9, 0xf8,
217         0xfd, 0x84, 0x53, 0x59, 0x5c, 0xf0, 0xd4, 0x09,
218         0xf0, 0xd2, 0x6c, 0x32, 0x03, 0xb0, 0xa0, 0x8c,
219         0x52, 0xeb, 0x23, 0x91, 0x88, 0x43, 0x13, 0x46,
220         0xf6, 0x1e, 0xb4, 0x1b, 0xf5, 0x8e, 0x3a, 0xb5,
221         0x3d, 0x00, 0xf6, 0xe5, 0x08, 0x3d, 0x5f, 0x39,
222         0xd3, 0x21, 0x69, 0xbc, 0x03, 0x22, 0x3a, 0xd2,
223         0x5c, 0x84, 0xf8, 0x15, 0xc4, 0x80, 0x0b, 0xbc,
224         0x29, 0x3c, 0xf3, 0x95, 0x98, 0xcd, 0x8f, 0x35,
225         0xbc, 0xa5, 0x3e, 0xfc, 0xd4, 0x13, 0x9e, 0xde,
226         0x4f, 0xce, 0x71, 0x9d, 0x09, 0xad, 0xf2, 0x80,
227         0x6b, 0x65, 0x7f, 0x03, 0x00, 0x14, 0x7c, 0x15,
228         0x85, 0x40, 0x6d, 0x70, 0xea, 0xdc, 0xb3, 0x63,
229         0x35, 0x4f, 0x4d, 0xe0, 0xd9, 0xd5, 0x3c, 0x58,
230         0x56, 0x23, 0x80, 0xe2, 0x36, 0xdd, 0x75, 0x1d,
231         0x94, 0x11, 0x41, 0x8e, 0xe0, 0x81, 0x8e, 0xcf,
232         0xe0, 0xe5, 0xf6, 0xde, 0xd1, 0xe7, 0x04, 0x12,
233         0x79, 0x92, 0x2b, 0x71, 0x2a, 0x79, 0x8b, 0x7c,
234         0x44, 0x79, 0x16, 0x30, 0x4e, 0xf4, 0xf6, 0x9b,
235         0xb7, 0x40, 0xa3, 0x5a, 0xa7, 0x69, 0x3e, 0xc1,
236         0x3a, 0x04, 0xd0, 0x88, 0xa0, 0x3b, 0xdd, 0xc6,
237         0x9e, 0x7e, 0x1e, 0x1e, 0x8f, 0x44, 0xf7, 0x73,
238         0x67, 0x1e, 0x1a, 0x78, 0xfa, 0x62, 0xf4, 0xa9,
239         0xa8, 0xc6, 0x5b, 0xb8, 0xfa, 0x06, 0x7d, 0x5e,
240         0x38, 0x1c, 0x9a, 0x39, 0xe9, 0x39, 0x98, 0x22,
241         0x0b, 0xa7, 0xac, 0x0b, 0xf3, 0xbc, 0xf1, 0xeb,
242         0x8c, 0x81, 0xe3, 0x48, 0x8a, 0xed, 0x42, 0xc2,
243         0x38, 0xcf, 0x3e, 0xda, 0xd2, 0x89, 0x8d, 0x9c,
244         0x53, 0xb5, 0x2f, 0x41, 0x01, 0x26, 0x84, 0x9c,
245         0xa3, 0x56, 0xf6, 0x49, 0xc7, 0xd4, 0x9f, 0x93,
246         0x1b, 0x96, 0x49, 0x5e, 0xad, 0xb3, 0x84, 0x1f,
247         0x3c, 0xa4, 0xe0, 0x9b, 0xd1, 0x90, 0xbc, 0x38,
248         0x6c, 0xdd, 0x95, 0x4d, 0x9d, 0xb1, 0x71, 0x57,
249         0x2d, 0x34, 0xe8, 0xb8, 0x42, 0xc7, 0x99, 0x03,
250         0xc7, 0x07, 0x30, 0x65, 0x91, 0x55, 0xd5, 0x90,
251         0x70, 0x97, 0x37, 0x68, 0xd4, 0x11, 0xf9, 0xe8,
252         0xce, 0xec, 0xdc, 0x34, 0xd5, 0xd3, 0xb7, 0xc4,
253         0xb8, 0x97, 0x05, 0x92, 0xad, 0xf8, 0xe2, 0x36,
254         0x64, 0x41, 0xc9, 0xc5, 0x41, 0x77, 0x52, 0xd7,
255         0x2c, 0xa5, 0x24, 0x2f, 0xd9, 0x34, 0x0b, 0x47,
256         0x35, 0xa7, 0x28, 0x8b, 0xc5, 0xcd, 0xe9, 0x46,
257         0xac, 0x39, 0x94, 0x3c, 0x10, 0xc6, 0x29, 0x73,
258         0x0e, 0x0e, 0x5d, 0xe0, 0x71, 0x03, 0x8a, 0x72,
259         0x0e, 0x26, 0xb0, 0x7d, 0x84, 0xed, 0x95, 0x23,
260         0x49, 0x5a, 0x45, 0x83, 0x45, 0x60, 0x11, 0x4a,
261         0x46, 0x31, 0xd4, 0xd8, 0x16, 0x54, 0x98, 0x58,
262         0xed, 0x6d, 0xcc, 0x5d, 0xd6, 0x50, 0x61, 0x9f,
263         0x9d, 0xc5, 0x3e, 0x9d, 0x32, 0x47, 0xde, 0x96,
264         0xe1, 0x5d, 0xd8, 0xf8, 0xb4, 0x69, 0x6f, 0xb9,
265         0x15, 0x90, 0x57, 0x7a, 0xf6, 0xad, 0xb0, 0x5b,
266         0xf5, 0xa6, 0x36, 0x94, 0xfd, 0x84, 0xce, 0x1c,
267         0x0f, 0x4b, 0xd0, 0xc2, 0x5b, 0x6b, 0x56, 0xef,
268         0x73, 0x93, 0x0b, 0xc3, 0xee, 0xd9, 0xcf, 0xd3,
269         0xa4, 0x22, 0x58, 0xcd, 0x50, 0x6e, 0x65, 0xf4,
270         0xe9, 0xb7, 0x71, 0xaf, 0x4b, 0xb3, 0xb6, 0x2f,
271         0x0f, 0x0e, 0x3b, 0xc9, 0x85, 0x14, 0xf5, 0x17,
272         0xe8, 0x7a, 0x3a, 0xbf, 0x5f, 0x5e, 0xf8, 0x18,
273         0x48, 0xa6, 0x72, 0xab, 0x06, 0x95, 0xe9, 0xc8,
274         0xa7, 0xf4, 0x32, 0x44, 0x04, 0x0c, 0x84, 0x98,
275         0x73, 0xe3, 0x89, 0x8d, 0x5f, 0x7e, 0x4a, 0x42,
276         0x8f, 0xc5, 0x28, 0xb1, 0x82, 0xef, 0x1c, 0x97,
277         0x31, 0x3b, 0x4d, 0xe0, 0x0e, 0x10, 0x10, 0x97,
278         0x93, 0x49, 0x78, 0x2f, 0x0d, 0x86, 0x8b, 0xa1,
279         0x53, 0xa9, 0x81, 0x20, 0x79, 0xe7, 0x07, 0x77,
280         0xb6, 0xac, 0x5e, 0xd2, 0x05, 0xcd, 0xe9, 0xdb,
281         0x8a, 0x94, 0x82, 0x8a, 0x23, 0xb9, 0x3d, 0x1c,
282         0xa9, 0x7d, 0x72, 0x4a, 0xed, 0x33, 0xa3, 0xdb,
283         0x21, 0xa7, 0x86, 0x33, 0x45, 0xa5, 0xaa, 0x56,
284         0x45, 0xb5, 0x83, 0x29, 0x40, 0x47, 0x79, 0x04,
285         0x6e, 0xb9, 0x95, 0xd0, 0x81, 0x77, 0x2d, 0x48,
286         0x1e, 0xfe, 0xc3, 0xc2, 0x1e, 0xe5, 0xf2, 0xbe,
287         0xfd, 0x3b, 0x94, 0x9f, 0xc4, 0xc4, 0x26, 0x9d,
288         0xe4, 0x66, 0x1e, 0x19, 0xee, 0x6c, 0x79, 0x97,
289         0x11, 0x31, 0x4b, 0x0d, 0x01, 0xcb, 0xde, 0xa8,
290         0xf6, 0x6d, 0x7c, 0x39, 0x46, 0x4e, 0x7e, 0x3f,
291         0x94, 0x17, 0xdf, 0xa1, 0x7d, 0xd9, 0x1c, 0x8e,
292         0xbc, 0x7d, 0x33, 0x7d, 0xe3, 0x12, 0x40, 0xca,
293         0xab, 0x37, 0x11, 0x46, 0xd4, 0xae, 0xef, 0x44,
294         0xa2, 0xb3, 0x6a, 0x66, 0x0e, 0x0c, 0x90, 0x7f,
295         0xdf, 0x5c, 0x66, 0x5f, 0xf2, 0x94, 0x9f, 0xa6,
296         0x73, 0x4f, 0xeb, 0x0d, 0xad, 0xbf, 0xc0, 0x63,
297         0x5c, 0xdc, 0x46, 0x51, 0xe8, 0x8e, 0x90, 0x19,
298         0xa8, 0xa4, 0x3c, 0x91, 0x79, 0xfa, 0x7e, 0x58,
299         0x85, 0x13, 0x55, 0xc5, 0x19, 0x82, 0x37, 0x1b,
300         0x0a, 0x02, 0x1f, 0x99, 0x6b, 0x18, 0xf1, 0x28,
301         0x08, 0xa2, 0x73, 0xb8, 0x0f, 0x2e, 0xcd, 0xbf,
302         0xf3, 0x86, 0x7f, 0xea, 0xef, 0xd0, 0xbb, 0xa6,
303         0x21, 0xdf, 0x49, 0x73, 0x51, 0xcc, 0x36, 0xd3,
304         0x3e, 0xa0, 0xf8, 0x44, 0xdf, 0xd3, 0xa6, 0xbe,
305         0x8a, 0xd4, 0x57, 0xdd, 0x72, 0x94, 0x61, 0x0f,
306         0x82, 0xd1, 0x07, 0xb8, 0x7c, 0x18, 0x83, 0xdf,
307         0x3a, 0xe5, 0x50, 0x6a, 0x82, 0x20, 0xac, 0xa9,
308         0xa8, 0xff, 0xd9, 0xf3, 0x77, 0x33, 0x5a, 0x9e,
309         0x7f, 0x6d, 0xfe, 0x5d, 0x33, 0x41, 0x42, 0xe7,
310         0x6c, 0x19, 0xe0, 0x44, 0x8a, 0x15, 0xf6, 0x70,
311         0x98, 0xb7, 0x68, 0x4d, 0xfa, 0x97, 0x39, 0xb0,
312         0x8e, 0xe8, 0x84, 0x8b, 0x75, 0x30, 0xb7, 0x7d,
313         0x92, 0x69, 0x20, 0x9c, 0x81, 0xfb, 0x4b, 0xf4,
314         0x01, 0x50, 0xeb, 0xce, 0x0c, 0x1c, 0x6c, 0xb5,
315         0x4a, 0xd7, 0x27, 0x0c, 0xce, 0xbb, 0xe5, 0x85,
316         0xf0, 0xb6, 0xee, 0xd5, 0x70, 0xdd, 0x3b, 0xfc,
317         0xd4, 0x99, 0xf1, 0x33, 0xdd, 0x8b, 0xc4, 0x2f,
318         0xae, 0xab, 0x74, 0x96, 0x32, 0xc7, 0x4c, 0x56,
319         0x3c, 0x89, 0x0f, 0x96, 0x0b, 0x42, 0xc0, 0xcb,
320         0xee, 0x0f, 0x0b, 0x8c, 0xfb, 0x7e, 0x47, 0x7b,
321         0x64, 0x48, 0xfd, 0xb2, 0x00, 0x80, 0x89, 0xa5,
322         0x13, 0x55, 0x62, 0xfc, 0x8f, 0xe2, 0x42, 0x03,
323         0xb7, 0x4e, 0x2a, 0x79, 0xb4, 0x82, 0xea, 0x23,
324         0x49, 0xda, 0xaf, 0x52, 0x63, 0x1e, 0x60, 0x03,
325         0x89, 0x06, 0x44, 0x46, 0x08, 0xc3, 0xc4, 0x87,
326         0x70, 0x2e, 0xda, 0x94, 0xad, 0x6b, 0xe0, 0xe4,
327         0xd1, 0x8a, 0x06, 0xc2, 0xa8, 0xc0, 0xa7, 0x43,
328         0x3c, 0x47, 0x52, 0x0e, 0xc3, 0x77, 0x81, 0x11,
329         0x67, 0x0e, 0xa0, 0x70, 0x04, 0x47, 0x29, 0x40,
330         0x86, 0x0d, 0x34, 0x56, 0xa7, 0xc9, 0x35, 0x59,
331         0x68, 0xdc, 0x93, 0x81, 0x70, 0xee, 0x86, 0xd9,
332         0x80, 0x06, 0x40, 0x4f, 0x1a, 0x0d, 0x40, 0x30,
333         0x0b, 0xcb, 0x96, 0x47, 0xc1, 0xb7, 0x52, 0xfd,
334         0x56, 0xe0, 0x72, 0x4b, 0xfb, 0xbd, 0x92, 0x45,
335         0x61, 0x71, 0xc2, 0x33, 0x11, 0xbf, 0x52, 0x83,
336         0x79, 0x26, 0xe0, 0x49, 0x6b, 0xb7, 0x05, 0x8b,
337         0xe8, 0x0e, 0x87, 0x31, 0xd7, 0x9d, 0x8a, 0xf5,
338         0xc0, 0x5f, 0x2e, 0x58, 0x4a, 0xdb, 0x11, 0xb3,
339         0x6c, 0x30, 0x2a, 0x46, 0x19, 0xe3, 0x27, 0x84,
340         0x1f, 0x63, 0x6e, 0xf6, 0x57, 0xc7, 0xc9, 0xd8,
341         0x5e, 0xba, 0xb3, 0x87, 0xd5, 0x83, 0x26, 0x34,
342         0x21, 0x9e, 0x65, 0xde, 0x42, 0xd3, 0xbe, 0x7b,
343         0xbc, 0x91, 0x71, 0x44, 0x4d, 0x99, 0x3b, 0x31,
344         0xe5, 0x3f, 0x11, 0x4e, 0x7f, 0x13, 0x51, 0x3b,
345         0xae, 0x79, 0xc9, 0xd3, 0x81, 0x8e, 0x25, 0x40,
346         0x10, 0xfc, 0x07, 0x1e, 0xf9, 0x7b, 0x9a, 0x4b,
347         0x6c, 0xe3, 0xb3, 0xad, 0x1a, 0x0a, 0xdd, 0x9e,
348         0x59, 0x0c, 0xa2, 0xcd, 0xae, 0x48, 0x4a, 0x38,
349         0x5b, 0x47, 0x41, 0x94, 0x65, 0x6b, 0xbb, 0xeb,
350         0x5b, 0xe3, 0xaf, 0x07, 0x5b, 0xd4, 0x4a, 0xa2,
351         0xc9, 0x5d, 0x2f, 0x64, 0x03, 0xd7, 0x3a, 0x2c,
352         0x6e, 0xce, 0x76, 0x95, 0xb4, 0xb3, 0xc0, 0xf1,
353         0xe2, 0x45, 0x73, 0x7a, 0x5c, 0xab, 0xc1, 0xfc,
354         0x02, 0x8d, 0x81, 0x29, 0xb3, 0xac, 0x07, 0xec,
355         0x40, 0x7d, 0x45, 0xd9, 0x7a, 0x59, 0xee, 0x34,
356         0xf0, 0xe9, 0xd5, 0x7b, 0x96, 0xb1, 0x3d, 0x95,
357         0xcc, 0x86, 0xb5, 0xb6, 0x04, 0x2d, 0xb5, 0x92,
358         0x7e, 0x76, 0xf4, 0x06, 0xa9, 0xa3, 0x12, 0x0f,
359         0xb1, 0xaf, 0x26, 0xba, 0x7c, 0xfc, 0x7e, 0x1c,
360         0xbc, 0x2c, 0x49, 0x97, 0x53, 0x60, 0x13, 0x0b,
361         0xa6, 0x61, 0x83, 0x89, 0x42, 0xd4, 0x17, 0x0c,
362         0x6c, 0x26, 0x52, 0xc3, 0xb3, 0xd4, 0x67, 0xf5,
363         0xe3, 0x04, 0xb7, 0xf4, 0xcb, 0x80, 0xb8, 0xcb,
364         0x77, 0x56, 0x3e, 0xaa, 0x57, 0x54, 0xee, 0xb4,
365         0x2c, 0x67, 0xcf, 0xf2, 0xdc, 0xbe, 0x55, 0xf9,
366         0x43, 0x1f, 0x6e, 0x22, 0x97, 0x67, 0x7f, 0xc4,
367         0xef, 0xb1, 0x26, 0x31, 0x1e, 0x27, 0xdf, 0x41,
368         0x80, 0x47, 0x6c, 0xe2, 0xfa, 0xa9, 0x8c, 0x2a,
369         0xf6, 0xf2, 0xab, 0xf0, 0x15, 0xda, 0x6c, 0xc8,
370         0xfe, 0xb5, 0x23, 0xde, 0xa9, 0x05, 0x3f, 0x06,
371         0x54, 0x4c, 0xcd, 0xe1, 0xab, 0xfc, 0x0e, 0x62,
372         0x33, 0x31, 0x73, 0x2c, 0x76, 0xcb, 0xb4, 0x47,
373         0x1e, 0x20, 0xad, 0xd8, 0xf2, 0x31, 0xdd, 0xc4,
374         0x8b, 0x0c, 0x77, 0xbe, 0xe1, 0x8b, 0x26, 0x00,
375         0x02, 0x58, 0xd6, 0x8d, 0xef, 0xad, 0x74, 0x67,
376         0xab, 0x3f, 0xef, 0xcb, 0x6f, 0xb0, 0xcc, 0x81,
377         0x44, 0x4c, 0xaf, 0xe9, 0x49, 0x4f, 0xdb, 0xa0,
378         0x25, 0xa4, 0xf0, 0x89, 0xf1, 0xbe, 0xd8, 0x10,
379         0xff, 0xb1, 0x3b, 0x4b, 0xfa, 0x98, 0xf5, 0x79,
380         0x6d, 0x1e, 0x69, 0x4d, 0x57, 0xb1, 0xc8, 0x19,
381         0x1b, 0xbd, 0x1e, 0x8c, 0x84, 0xb7, 0x7b, 0xe8,
382         0xd2, 0x2d, 0x09, 0x41, 0x41, 0x37, 0x3d, 0xb1,
383         0x6f, 0x26, 0x5d, 0x71, 0x16, 0x3d, 0xb7, 0x83,
384         0x27, 0x2c, 0xa7, 0xb6, 0x50, 0xbd, 0x91, 0x86,
385         0xab, 0x24, 0xa1, 0x38, 0xfd, 0xea, 0x71, 0x55,
386         0x7e, 0x9a, 0x07, 0x77, 0x4b, 0xfa, 0x61, 0x66,
387         0x20, 0x1e, 0x28, 0x95, 0x18, 0x1b, 0xa4, 0xa0,
388         0xfd, 0xc0, 0x89, 0x72, 0x43, 0xd9, 0x3b, 0x49,
389         0x5a, 0x3f, 0x9d, 0xbf, 0xdb, 0xb4, 0x46, 0xea,
390         0x42, 0x01, 0x77, 0x23, 0x68, 0x95, 0xb6, 0x24,
391         0xb3, 0xa8, 0x6c, 0x28, 0x3b, 0x11, 0x40, 0x7e,
392         0x18, 0x65, 0x6d, 0xd8, 0x24, 0x42, 0x7d, 0x88,
393         0xc0, 0x52, 0xd9, 0x05, 0xe4, 0x95, 0x90, 0x87,
394         0x8c, 0xf4, 0xd0, 0x6b, 0xb9, 0x83, 0x99, 0x34,
395         0x6d, 0xfe, 0x54, 0x40, 0x94, 0x52, 0x21, 0x4f,
396         0x14, 0x25, 0xc5, 0xd6, 0x5e, 0x95, 0xdc, 0x0a,
397         0x2b, 0x89, 0x20, 0x11, 0x84, 0x48, 0xd6, 0x3a,
398         0xcd, 0x5c, 0x24, 0xad, 0x62, 0xe3, 0xb1, 0x93,
399         0x25, 0x8d, 0xcd, 0x7e, 0xfc, 0x27, 0xa3, 0x37,
400         0xfd, 0x84, 0xfc, 0x1b, 0xb2, 0xf1, 0x27, 0x38,
401         0x5a, 0xb7, 0xfc, 0xf2, 0xfa, 0x95, 0x66, 0xd4,
402         0xfb, 0xba, 0xa7, 0xd7, 0xa3, 0x72, 0x69, 0x48,
403         0x48, 0x8c, 0xeb, 0x28, 0x89, 0xfe, 0x33, 0x65,
404         0x5a, 0x36, 0x01, 0x7e, 0x06, 0x79, 0x0a, 0x09,
405         0x3b, 0x74, 0x11, 0x9a, 0x6e, 0xbf, 0xd4, 0x9e,
406         0x58, 0x90, 0x49, 0x4f, 0x4d, 0x08, 0xd4, 0xe5,
407         0x4a, 0x09, 0x21, 0xef, 0x8b, 0xb8, 0x74, 0x3b,
408         0x91, 0xdd, 0x36, 0x85, 0x60, 0x2d, 0xfa, 0xd4,
409         0x45, 0x7b, 0x45, 0x53, 0xf5, 0x47, 0x87, 0x7e,
410         0xa6, 0x37, 0xc8, 0x78, 0x7a, 0x68, 0x9d, 0x8d,
411         0x65, 0x2c, 0x0e, 0x91, 0x5c, 0xa2, 0x60, 0xf0,
412         0x8e, 0x3f, 0xe9, 0x1a, 0xcd, 0xaa, 0xe7, 0xd5,
413         0x77, 0x18, 0xaf, 0xc9, 0xbc, 0x18, 0xea, 0x48,
414         0x1b, 0xfb, 0x22, 0x48, 0x70, 0x16, 0x29, 0x9e,
415         0x5b, 0xc1, 0x2c, 0x66, 0x23, 0xbc, 0xf0, 0x1f,
416         0xef, 0xaf, 0xe4, 0xd6, 0x04, 0x19, 0x82, 0x7a,
417         0x0b, 0xba, 0x4b, 0x46, 0xb1, 0x6a, 0x85, 0x5d,
418         0xb4, 0x73, 0xd6, 0x21, 0xa1, 0x71, 0x60, 0x14,
419         0xee, 0x0a, 0x77, 0xc4, 0x66, 0x2e, 0xf9, 0x69,
420         0x30, 0xaf, 0x41, 0x0b, 0xc8, 0x83, 0x3c, 0x53,
421         0x99, 0x19, 0x27, 0x46, 0xf7, 0x41, 0x6e, 0x56,
422         0xdc, 0x94, 0x28, 0x67, 0x4e, 0xb7, 0x25, 0x48,
423         0x8a, 0xc2, 0xe0, 0x60, 0x96, 0xcc, 0x18, 0xf4,
424         0x84, 0xdd, 0xa7, 0x5e, 0x3e, 0x05, 0x0b, 0x26,
425         0x26, 0xb2, 0x5c, 0x1f, 0x57, 0x1a, 0x04, 0x7e,
426         0x6a, 0xe3, 0x2f, 0xb4, 0x35, 0xb6, 0x38, 0x40,
427         0x40, 0xcd, 0x6f, 0x87, 0x2e, 0xef, 0xa3, 0xd7,
428         0xa9, 0xc2, 0xe8, 0x0d, 0x27, 0xdf, 0x44, 0x62,
429         0x99, 0xa0, 0xfc, 0xcf, 0x81, 0x78, 0xcb, 0xfe,
430         0xe5, 0xa0, 0x03, 0x4e, 0x6c, 0xd7, 0xf4, 0xaf,
431         0x7a, 0xbb, 0x61, 0x82, 0xfe, 0x71, 0x89, 0xb2,
432         0x22, 0x7c, 0x8e, 0x83, 0x04, 0xce, 0xf6, 0x5d,
433         0x84, 0x8f, 0x95, 0x6a, 0x7f, 0xad, 0xfd, 0x32,
434         0x9c, 0x5e, 0xe4, 0x9c, 0x89, 0x60, 0x54, 0xaa,
435         0x96, 0x72, 0xd2, 0xd7, 0x36, 0x85, 0xa9, 0x45,
436         0xd2, 0x2a, 0xa1, 0x81, 0x49, 0x6f, 0x7e, 0x04,
437         0xfa, 0xe2, 0xfe, 0x90, 0x26, 0x77, 0x5a, 0x33,
438         0xb8, 0x04, 0x9a, 0x7a, 0xe6, 0x4c, 0x4f, 0xad,
439         0x72, 0x96, 0x08, 0x28, 0x58, 0x13, 0xf8, 0xc4,
440         0x1c, 0xf0, 0xc3, 0x45, 0x95, 0x49, 0x20, 0x8c,
441         0x9f, 0x39, 0x70, 0xe1, 0x77, 0xfe, 0xd5, 0x4b,
442         0xaf, 0x86, 0xda, 0xef, 0x22, 0x06, 0x83, 0x36,
443         0x29, 0x12, 0x11, 0x40, 0xbc, 0x3b, 0x86, 0xaa,
444         0xaa, 0x65, 0x60, 0xc3, 0x80, 0xca, 0xed, 0xa9,
445         0xf3, 0xb0, 0x79, 0x96, 0xa2, 0x55, 0x27, 0x28,
446         0x55, 0x73, 0x26, 0xa5, 0x50, 0xea, 0x92, 0x4b,
447         0x3c, 0x5c, 0x82, 0x33, 0xf0, 0x01, 0x3f, 0x03,
448         0xc1, 0x08, 0x05, 0xbf, 0x98, 0xf4, 0x9b, 0x6d,
449         0xa5, 0xa8, 0xb4, 0x82, 0x0c, 0x06, 0xfa, 0xff,
450         0x2d, 0x08, 0xf3, 0x05, 0x4f, 0x57, 0x2a, 0x39,
451         0xd4, 0x83, 0x0d, 0x75, 0x51, 0xd8, 0x5b, 0x1b,
452         0xd3, 0x51, 0x5a, 0x32, 0x2a, 0x9b, 0x32, 0xb2,
453         0xf2, 0xa4, 0x96, 0x12, 0xf2, 0xae, 0x40, 0x34,
454         0x67, 0xa8, 0xf5, 0x44, 0xd5, 0x35, 0x53, 0xfe,
455         0xa3, 0x60, 0x96, 0x63, 0x0f, 0x1f, 0x6e, 0xb0,
456         0x5a, 0x42, 0xa6, 0xfc, 0x51, 0x0b, 0x60, 0x27,
457         0xbc, 0x06, 0x71, 0xed, 0x65, 0x5b, 0x23, 0x86,
458         0x4a, 0x07, 0x3b, 0x22, 0x07, 0x46, 0xe6, 0x90,
459         0x3e, 0xf3, 0x25, 0x50, 0x1b, 0x4c, 0x7f, 0x03,
460         0x08, 0xa8, 0x36, 0x6b, 0x87, 0xe5, 0xe3, 0xdb,
461         0x9a, 0x38, 0x83, 0xff, 0x9f, 0x1a, 0x9f, 0x57,
462         0xa4, 0x2a, 0xf6, 0x37, 0xbc, 0x1a, 0xff, 0xc9,
463         0x1e, 0x35, 0x0c, 0xc3, 0x7c, 0xa3, 0xb2, 0xe5,
464         0xd2, 0xc6, 0xb4, 0x57, 0x47, 0xe4, 0x32, 0x16,
465         0x6d, 0xa9, 0xae, 0x64, 0xe6, 0x2d, 0x8d, 0xc5,
466         0x8d, 0x50, 0x8e, 0xe8, 0x1a, 0x22, 0x34, 0x2a,
467         0xd9, 0xeb, 0x51, 0x90, 0x4a, 0xb1, 0x41, 0x7d,
468         0x64, 0xf9, 0xb9, 0x0d, 0xf6, 0x23, 0x33, 0xb0,
469         0x33, 0xf4, 0xf7, 0x3f, 0x27, 0x84, 0xc6, 0x0f,
470         0x54, 0xa5, 0xc0, 0x2e, 0xec, 0x0b, 0x3a, 0x48,
471         0x6e, 0x80, 0x35, 0x81, 0x43, 0x9b, 0x90, 0xb1,
472         0xd0, 0x2b, 0xea, 0x21, 0xdc, 0xda, 0x5b, 0x09,
473         0xf4, 0xcc, 0x10, 0xb4, 0xc7, 0xfe, 0x79, 0x51,
474         0xc3, 0xc5, 0xac, 0x88, 0x74, 0x84, 0x0b, 0x4b,
475         0xca, 0x79, 0x16, 0x29, 0xfb, 0x69, 0x54, 0xdf,
476         0x41, 0x7e, 0xe9, 0xc7, 0x8e, 0xea, 0xa5, 0xfe,
477         0xfc, 0x76, 0x0e, 0x90, 0xc4, 0x92, 0x38, 0xad,
478         0x7b, 0x48, 0xe6, 0x6e, 0xf7, 0x21, 0xfd, 0x4e,
479         0x93, 0x0a, 0x7b, 0x41, 0x83, 0x68, 0xfb, 0x57,
480         0x51, 0x76, 0x34, 0xa9, 0x6c, 0x00, 0xaa, 0x4f,
481         0x66, 0x65, 0x98, 0x4a, 0x4f, 0xa3, 0xa0, 0xef,
482         0x69, 0x3f, 0xe3, 0x1c, 0x92, 0x8c, 0xfd, 0xd8,
483         0xe8, 0xde, 0x7c, 0x7f, 0x3e, 0x84, 0x8e, 0x69,
484         0x3c, 0xf1, 0xf2, 0x05, 0x46, 0xdc, 0x2f, 0x9d,
485         0x5e, 0x6e, 0x4c, 0xfb, 0xb5, 0x99, 0x2a, 0x59,
486         0x63, 0xc1, 0x34, 0xbc, 0x57, 0xc0, 0x0d, 0xb9,
487         0x61, 0x25, 0xf3, 0x33, 0x23, 0x51, 0xb6, 0x0d,
488         0x07, 0xa6, 0xab, 0x94, 0x4a, 0xb7, 0x2a, 0xea,
489         0xee, 0xac, 0xa3, 0xc3, 0x04, 0x8b, 0x0e, 0x56,
490         0xfe, 0x44, 0xa7, 0x39, 0xe2, 0xed, 0xed, 0xb4,
491         0x22, 0x2b, 0xac, 0x12, 0x32, 0x28, 0x91, 0xd8,
492         0xa5, 0xab, 0xff, 0x5f, 0xe0, 0x4b, 0xda, 0x78,
493         0x17, 0xda, 0xf1, 0x01, 0x5b, 0xcd, 0xe2, 0x5f,
494         0x50, 0x45, 0x73, 0x2b, 0xe4, 0x76, 0x77, 0xf4,
495         0x64, 0x1d, 0x43, 0xfb, 0x84, 0x7a, 0xea, 0x91,
496         0xae, 0xf9, 0x9e, 0xb7, 0xb4, 0xb0, 0x91, 0x5f,
497         0x16, 0x35, 0x9a, 0x11, 0xb8, 0xc7, 0xc1, 0x8c,
498         0xc6, 0x10, 0x8d, 0x2f, 0x63, 0x4a, 0xa7, 0x57,
499         0x3a, 0x51, 0xd6, 0x32, 0x2d, 0x64, 0x72, 0xd4,
500         0x66, 0xdc, 0x10, 0xa6, 0x67, 0xd6, 0x04, 0x23,
501         0x9d, 0x0a, 0x11, 0x77, 0xdd, 0x37, 0x94, 0x17,
502         0x3c, 0xbf, 0x8b, 0x65, 0xb0, 0x2e, 0x5e, 0x66,
503         0x47, 0x64, 0xac, 0xdd, 0xf0, 0x84, 0xfd, 0x39,
504         0xfa, 0x15, 0x5d, 0xef, 0xae, 0xca, 0xc1, 0x36,
505         0xa7, 0x5c, 0xbf, 0xc7, 0x08, 0xc2, 0x66, 0x00,
506         0x74, 0x74, 0x4e, 0x27, 0x3f, 0x55, 0x8a, 0xb7,
507         0x38, 0x66, 0x83, 0x6d, 0xcf, 0x99, 0x9e, 0x60,
508         0x8f, 0xdd, 0x2e, 0x62, 0x22, 0x0e, 0xef, 0x0c,
509         0x98, 0xa7, 0x85, 0x74, 0x3b, 0x9d, 0xec, 0x9e,
510         0xa9, 0x19, 0x72, 0xa5, 0x7f, 0x2c, 0x39, 0xb7,
511         0x7d, 0xb7, 0xf1, 0x12, 0x65, 0x27, 0x4b, 0x5a,
512         0xde, 0x17, 0xfe, 0xad, 0x44, 0xf3, 0x20, 0x4d,
513         0xfd, 0xe4, 0x1f, 0xb5, 0x81, 0xb0, 0x36, 0x37,
514         0x08, 0x6f, 0xc3, 0x0c, 0xe9, 0x85, 0x98, 0x82,
515         0xa9, 0x62, 0x0c, 0xc4, 0x97, 0xc0, 0x50, 0xc8,
516         0xa7, 0x3c, 0x50, 0x9f, 0x43, 0xb9, 0xcd, 0x5e,
517         0x4d, 0xfa, 0x1c, 0x4b, 0x0b, 0xa9, 0x98, 0x85,
518         0x38, 0x92, 0xac, 0x8d, 0xe4, 0xad, 0x9b, 0x98,
519         0xab, 0xd9, 0x38, 0xac, 0x62, 0x52, 0xa3, 0x22,
520         0x63, 0x0f, 0xbf, 0x95, 0x48, 0xdf, 0x69, 0xe7,
521         0x8b, 0x33, 0xd5, 0xb2, 0xbd, 0x05, 0x49, 0x49,
522         0x9d, 0x57, 0x73, 0x19, 0x33, 0xae, 0xfa, 0x33,
523         0xf1, 0x19, 0xa8, 0x80, 0xce, 0x04, 0x9f, 0xbc,
524         0x1d, 0x65, 0x82, 0x1b, 0xe5, 0x3a, 0x51, 0xc8,
525         0x1c, 0x21, 0xe3, 0x5d, 0xf3, 0x7d, 0x9b, 0x2f,
526         0x2c, 0x1d, 0x4a, 0x7f, 0x9b, 0x68, 0x35, 0xa3,
527         0xb2, 0x50, 0xf7, 0x62, 0x79, 0xcd, 0xf4, 0x98,
528         0x4f, 0xe5, 0x63, 0x7c, 0x3e, 0x45, 0x31, 0x8c,
529         0x16, 0xa0, 0x12, 0xc8, 0x58, 0xce, 0x39, 0xa6,
530         0xbc, 0x54, 0xdb, 0xc5, 0xe0, 0xd5, 0xba, 0xbc,
531         0xb9, 0x04, 0xf4, 0x8d, 0xe8, 0x2f, 0x15, 0x9d,
532 };
533
534 /* 100 test cases */
535 static struct dahash_test {
536         uint16_t        start;  /* random 12 bit offset in buf */
537         uint16_t        length; /* random 8 bit length of test */
538         xfs_dahash_t    dahash; /* expected dahash result */
539         xfs_dahash_t    ascii_ci_dahash; /* expected ascii-ci dahash result */
540 } test[] __initdata =
541 {
542         {0x0567, 0x0097, 0x96951389, 0xc153aa0d},
543         {0x0869, 0x0055, 0x6455ab4f, 0xd07f69bf},
544         {0x0c51, 0x00be, 0x8663afde, 0xf9add90c},
545         {0x044a, 0x00fc, 0x98fbe432, 0xbf2abb76},
546         {0x0f29, 0x0079, 0x42371997, 0x282588b3},
547         {0x08ba, 0x0052, 0x942be4f7, 0x2e023547},
548         {0x01f2, 0x0013, 0x5262687e, 0x5266287e},
549         {0x09e3, 0x00e2, 0x8ffb0908, 0x1da892f3},
550         {0x007c, 0x0051, 0xb3158491, 0xb67f9e63},
551         {0x0854, 0x001f, 0x83bb20d9, 0x22bb21db},
552         {0x031b, 0x0008, 0x98970bdf, 0x9cd70adf},
553         {0x0de7, 0x0027, 0xbfbf6f6c, 0xae3f296c},
554         {0x0f76, 0x0005, 0x906a7105, 0x906a7105},
555         {0x092e, 0x00d0, 0x86631850, 0xa3f6ac04},
556         {0x0233, 0x0082, 0xdbdd914e, 0x5d8c7aac},
557         {0x04c9, 0x0075, 0x5a400a9e, 0x12f60711},
558         {0x0b66, 0x0099, 0xae128b45, 0x7551310d},
559         {0x000d, 0x00ed, 0xe61c216a, 0xc22d3c4c},
560         {0x0a31, 0x003d, 0xf69663b9, 0x51960bf8},
561         {0x00a3, 0x0052, 0x643c39ae, 0xa93c73a8},
562         {0x0125, 0x00d5, 0x7c310b0d, 0xf221cbb3},
563         {0x0105, 0x004a, 0x06a77e74, 0xa4ef4561},
564         {0x0858, 0x008e, 0x265bc739, 0xd6c36d9b},
565         {0x045e, 0x0095, 0x13d6b192, 0x5f5c1d62},
566         {0x0dab, 0x003c, 0xc4498704, 0x10414654},
567         {0x00cd, 0x00b5, 0x802a4e2d, 0xfbd17c9d},
568         {0x069b, 0x008c, 0x5df60f71, 0x91ddca5f},
569         {0x0454, 0x006c, 0x5f03d8bb, 0x5c59fce0},
570         {0x040e, 0x0032, 0x0ce513b5, 0xa8cd99b1},
571         {0x0874, 0x00e2, 0x6a811fb3, 0xca028316},
572         {0x0521, 0x00b4, 0x93296833, 0x2c4d4880},
573         {0x0ddc, 0x00cf, 0xf9305338, 0x2c94210d},
574         {0x0a70, 0x0023, 0x239549ea, 0x22b561aa},
575         {0x083e, 0x0027, 0x2d88ba97, 0x5cd8bb9d},
576         {0x0241, 0x00a7, 0xfe0b32e1, 0x17b506b8},
577         {0x0dfc, 0x0096, 0x1a11e815, 0xee4141bd},
578         {0x023e, 0x001e, 0xebc9a1f3, 0x5689a1f3},
579         {0x067e, 0x0066, 0xb1067f81, 0xd9952571},
580         {0x09ea, 0x000e, 0x46fd7247, 0x42b57245},
581         {0x036b, 0x008c, 0x1a39acdf, 0x58bf1586},
582         {0x078f, 0x0030, 0x964042ab, 0xb04218b9},
583         {0x085c, 0x008f, 0x1829edab, 0x9ceca89c},
584         {0x02ec, 0x009f, 0x6aefa72d, 0x634cc2a7},
585         {0x043b, 0x00ce, 0x65642ff5, 0x6c8a584e},
586         {0x0a32, 0x00b8, 0xbd82759e, 0x0f96a34f},
587         {0x0d3c, 0x0087, 0xf4d66d54, 0xb71ba5f4},
588         {0x09ec, 0x008a, 0x06bfa1ff, 0x576ca80f},
589         {0x0902, 0x0015, 0x755025d2, 0x517225c2},
590         {0x08fe, 0x000e, 0xf690ce2d, 0xf690cf3d},
591         {0x00fb, 0x00dc, 0xe55f1528, 0x707d7d92},
592         {0x0eaa, 0x003a, 0x0fe0a8d7, 0x87638cc5},
593         {0x05fb, 0x0006, 0x86281cfb, 0x86281cf9},
594         {0x0dd1, 0x00a7, 0x60ab51b4, 0xe28ef00c},
595         {0x0005, 0x001b, 0xf51d969b, 0xe71dd6d3},
596         {0x077c, 0x00dd, 0xc2fed268, 0xdc30c555},
597         {0x0575, 0x00f5, 0x432c0b1a, 0x81dd7d16},
598         {0x05be, 0x0088, 0x78baa04b, 0xd69b433e},
599         {0x0c89, 0x0068, 0xeda9e428, 0xe9b4fa0a},
600         {0x0f5c, 0x0068, 0xec143c76, 0x9947067a},
601         {0x06a8, 0x0009, 0xd72651ce, 0xd72651ee},
602         {0x060f, 0x008e, 0x765426cd, 0x2099626f},
603         {0x07b1, 0x0047, 0x2cfcfa0c, 0x1a4baa07},
604         {0x04f1, 0x0041, 0x55b172f9, 0x15331a79},
605         {0x0e05, 0x00ac, 0x61efde93, 0x320568cc},
606         {0x0bf7, 0x0097, 0x05b83eee, 0xc72fb7a3},
607         {0x04e9, 0x00f3, 0x9928223a, 0xe8c77de2},
608         {0x023a, 0x0005, 0xdfada9bc, 0xdfadb9be},
609         {0x0acb, 0x000e, 0x2217cecd, 0x0017d6cd},
610         {0x0148, 0x0060, 0xbc3f7405, 0xf5fd6615},
611         {0x0764, 0x0059, 0xcbc201b1, 0xbb089bf4},
612         {0x021f, 0x0059, 0x5d6b2256, 0xa16a0a59},
613         {0x0f1e, 0x006c, 0xdefeeb45, 0xfc34f9d6},
614         {0x071c, 0x00b9, 0xb9b59309, 0xb645eae2},
615         {0x0564, 0x0063, 0xae064271, 0x954dc6d1},
616         {0x0b14, 0x0044, 0xdb867d9b, 0xdf432309},
617         {0x0e5a, 0x0055, 0xff06b685, 0xa65ff257},
618         {0x015e, 0x00ba, 0x1115ccbc, 0x11c365f4},
619         {0x0379, 0x00e6, 0x5f4e58dd, 0x2d176d31},
620         {0x013b, 0x0067, 0x4897427e, 0xc40532fe},
621         {0x0e64, 0x0071, 0x7af2b7a4, 0x1fb7bf43},
622         {0x0a11, 0x0050, 0x92105726, 0xb1185e51},
623         {0x0109, 0x0055, 0xd0d000f9, 0x60a60bfd},
624         {0x00aa, 0x0022, 0x815d229d, 0x215d379c},
625         {0x09ac, 0x004f, 0x02f9d985, 0x10b90b20},
626         {0x0e1b, 0x00ce, 0x5cf92ab4, 0x6a477573},
627         {0x08af, 0x00d8, 0x17ca72d1, 0x385af156},
628         {0x0e33, 0x000a, 0xda2dba6b, 0xda2dbb69},
629         {0x0ee3, 0x006a, 0xb00048e5, 0xa9a2decc},
630         {0x0648, 0x001a, 0x2364b8cb, 0x3364b1cb},
631         {0x0315, 0x0085, 0x0596fd0d, 0xa651740f},
632         {0x0fbb, 0x003e, 0x298230ca, 0x7fc617c7},
633         {0x0422, 0x006a, 0x78ada4ab, 0xc576ae2a},
634         {0x04ba, 0x0073, 0xced1fbc2, 0xaac8455b},
635         {0x007d, 0x0061, 0x4b7ff236, 0x347d5739},
636         {0x070b, 0x00d0, 0x261cf0ae, 0xc7fb1c10},
637         {0x0c1a, 0x0035, 0x8be92ee2, 0x8be9b4e1},
638         {0x0af8, 0x0063, 0x824dcf03, 0x53010388},
639         {0x08f8, 0x006d, 0xd289710c, 0x30418edd},
640         {0x021b, 0x00ee, 0x6ac1c41d, 0x2557e9a3},
641         {0x05b5, 0x00da, 0x8e52f0e2, 0x98531012},
642 };
643
644 int __init
645 xfs_dahash_test(void)
646 {
647         unsigned int    i;
648         unsigned int    errors = 0;
649
650         for (i = 0; i < ARRAY_SIZE(test); i++) {
651                 struct xfs_name xname = { };
652                 xfs_dahash_t    hash;
653
654                 hash = xfs_da_hashname(test_buf + test[i].start,
655                                 test[i].length);
656                 if (hash != test[i].dahash)
657                         errors++;
658
659                 xname.name = test_buf + test[i].start;
660                 xname.len = test[i].length;
661                 hash = xfs_ascii_ci_hashname(&xname);
662                 if (hash != test[i].ascii_ci_dahash)
663                         errors++;
664         }
665
666         if (errors) {
667                 printk(KERN_ERR "xfs dir/attr hash test failed %u times!",
668                                 errors);
669                 return -ERANGE;
670         }
671
672         return 0;
673 }