13cfb9290SDarrick J. Wong // SPDX-License-Identifier: GPL-2.0-or-later
23cfb9290SDarrick J. Wong /*
33cfb9290SDarrick J. Wong * Copyright (C) 2023 Oracle. All Rights Reserved.
43cfb9290SDarrick J. Wong * Author: Darrick J. Wong <djwong@kernel.org>
53cfb9290SDarrick J. Wong */
63cfb9290SDarrick J. Wong #include "xfs.h"
73cfb9290SDarrick J. Wong #include "xfs_fs.h"
83cfb9290SDarrick J. Wong #include "xfs_shared.h"
93cfb9290SDarrick J. Wong #include "xfs_format.h"
103cfb9290SDarrick J. Wong #include "xfs_da_format.h"
113cfb9290SDarrick J. Wong #include "xfs_da_btree.h"
12*6db09a8dSDarrick J. Wong #include "xfs_trans_resv.h"
13*6db09a8dSDarrick J. Wong #include "xfs_mount.h"
14*6db09a8dSDarrick J. Wong #include "xfs_dir2_priv.h"
153cfb9290SDarrick J. Wong #include "xfs_dahash_test.h"
163cfb9290SDarrick J. Wong
173cfb9290SDarrick J. Wong /* 4096 random bytes */
183cfb9290SDarrick J. Wong static uint8_t __initdata __attribute__((__aligned__(8))) test_buf[] =
193cfb9290SDarrick J. Wong {
203cfb9290SDarrick J. Wong 0x5b, 0x85, 0x21, 0xcb, 0x09, 0x68, 0x7d, 0x30,
213cfb9290SDarrick J. Wong 0xc7, 0x69, 0xd7, 0x30, 0x92, 0xde, 0x59, 0xe4,
223cfb9290SDarrick J. Wong 0xc9, 0x6e, 0x8b, 0xdb, 0x98, 0x6b, 0xaa, 0x60,
233cfb9290SDarrick J. Wong 0xa8, 0xb5, 0xbc, 0x6c, 0xa9, 0xb1, 0x5b, 0x2c,
243cfb9290SDarrick J. Wong 0xea, 0xb4, 0x92, 0x6a, 0x3f, 0x79, 0x91, 0xe4,
253cfb9290SDarrick J. Wong 0xe9, 0x70, 0x51, 0x8c, 0x7f, 0x95, 0x6f, 0x1a,
263cfb9290SDarrick J. Wong 0x56, 0xa1, 0x5c, 0x27, 0x03, 0x67, 0x9f, 0x3a,
273cfb9290SDarrick J. Wong 0xe2, 0x31, 0x11, 0x29, 0x6b, 0x98, 0xfc, 0xc4,
283cfb9290SDarrick J. Wong 0x53, 0x24, 0xc5, 0x8b, 0xce, 0x47, 0xb2, 0xb9,
293cfb9290SDarrick J. Wong 0x32, 0xcb, 0xc1, 0xd0, 0x03, 0x57, 0x4e, 0xd4,
303cfb9290SDarrick J. Wong 0xe9, 0x3c, 0xa1, 0x63, 0xcf, 0x12, 0x0e, 0xca,
313cfb9290SDarrick J. Wong 0xe1, 0x13, 0xd1, 0x93, 0xa6, 0x88, 0x5c, 0x61,
323cfb9290SDarrick J. Wong 0x5b, 0xbb, 0xf0, 0x19, 0x46, 0xb4, 0xcf, 0x9e,
333cfb9290SDarrick J. Wong 0xb6, 0x6b, 0x4c, 0x3a, 0xcf, 0x60, 0xf9, 0x7a,
343cfb9290SDarrick J. Wong 0x8d, 0x07, 0x63, 0xdb, 0x40, 0xe9, 0x0b, 0x6f,
353cfb9290SDarrick J. Wong 0xad, 0x97, 0xf1, 0xed, 0xd0, 0x1e, 0x26, 0xfd,
363cfb9290SDarrick J. Wong 0xbf, 0xb7, 0xc8, 0x04, 0x94, 0xf8, 0x8b, 0x8c,
373cfb9290SDarrick J. Wong 0xf1, 0xab, 0x7a, 0xd4, 0xdd, 0xf3, 0xe8, 0x88,
383cfb9290SDarrick J. Wong 0xc3, 0xed, 0x17, 0x8a, 0x9b, 0x40, 0x0d, 0x53,
393cfb9290SDarrick J. Wong 0x62, 0x12, 0x03, 0x5f, 0x1b, 0x35, 0x32, 0x1f,
403cfb9290SDarrick J. Wong 0xb4, 0x7b, 0x93, 0x78, 0x0d, 0xdb, 0xce, 0xa4,
413cfb9290SDarrick J. Wong 0xc0, 0x47, 0xd5, 0xbf, 0x68, 0xe8, 0x5d, 0x74,
423cfb9290SDarrick J. Wong 0x8f, 0x8e, 0x75, 0x1c, 0xb2, 0x4f, 0x9a, 0x60,
433cfb9290SDarrick J. Wong 0xd1, 0xbe, 0x10, 0xf4, 0x5c, 0xa1, 0x53, 0x09,
443cfb9290SDarrick J. Wong 0xa5, 0xe0, 0x09, 0x54, 0x85, 0x5c, 0xdc, 0x07,
453cfb9290SDarrick J. Wong 0xe7, 0x21, 0x69, 0x7b, 0x8a, 0xfd, 0x90, 0xf1,
463cfb9290SDarrick J. Wong 0x22, 0xd0, 0xb4, 0x36, 0x28, 0xe6, 0xb8, 0x0f,
473cfb9290SDarrick J. Wong 0x39, 0xde, 0xc8, 0xf3, 0x86, 0x60, 0x34, 0xd2,
483cfb9290SDarrick J. Wong 0x5e, 0xdf, 0xfd, 0xcf, 0x0f, 0xa9, 0x65, 0xf0,
493cfb9290SDarrick J. Wong 0xd5, 0x4d, 0x96, 0x40, 0xe3, 0xdf, 0x3f, 0x95,
503cfb9290SDarrick J. Wong 0x5a, 0x39, 0x19, 0x93, 0xf4, 0x75, 0xce, 0x22,
513cfb9290SDarrick J. Wong 0x00, 0x1c, 0x93, 0xe2, 0x03, 0x66, 0xf4, 0x93,
523cfb9290SDarrick J. Wong 0x73, 0x86, 0x81, 0x8e, 0x29, 0x44, 0x48, 0x86,
533cfb9290SDarrick J. Wong 0x61, 0x7c, 0x48, 0xa3, 0x43, 0xd2, 0x9c, 0x8d,
543cfb9290SDarrick J. Wong 0xd4, 0x95, 0xdd, 0xe1, 0x22, 0x89, 0x3a, 0x40,
553cfb9290SDarrick J. Wong 0x4c, 0x1b, 0x8a, 0x04, 0xa8, 0x09, 0x69, 0x8b,
563cfb9290SDarrick J. Wong 0xea, 0xc6, 0x55, 0x8e, 0x57, 0xe6, 0x64, 0x35,
573cfb9290SDarrick J. Wong 0xf0, 0xc7, 0x16, 0x9f, 0x5d, 0x5e, 0x86, 0x40,
583cfb9290SDarrick J. Wong 0x46, 0xbb, 0xe5, 0x45, 0x88, 0xfe, 0xc9, 0x63,
593cfb9290SDarrick J. Wong 0x15, 0xfb, 0xf5, 0xbd, 0x71, 0x61, 0xeb, 0x7b,
603cfb9290SDarrick J. Wong 0x78, 0x70, 0x07, 0x31, 0x03, 0x9f, 0xb2, 0xc8,
613cfb9290SDarrick J. Wong 0xa7, 0xab, 0x47, 0xfd, 0xdf, 0xa0, 0x78, 0x72,
623cfb9290SDarrick J. Wong 0xa4, 0x2a, 0xe4, 0xb6, 0xba, 0xc0, 0x1e, 0x86,
633cfb9290SDarrick J. Wong 0x71, 0xe6, 0x3d, 0x18, 0x37, 0x70, 0xe6, 0xff,
643cfb9290SDarrick J. Wong 0xe0, 0xbc, 0x0b, 0x22, 0xa0, 0x1f, 0xd3, 0xed,
653cfb9290SDarrick J. Wong 0xa2, 0x55, 0x39, 0xab, 0xa8, 0x13, 0x73, 0x7c,
663cfb9290SDarrick J. Wong 0x3f, 0xb2, 0xd6, 0x19, 0xac, 0xff, 0x99, 0xed,
673cfb9290SDarrick J. Wong 0xe8, 0xe6, 0xa6, 0x22, 0xe3, 0x9c, 0xf1, 0x30,
683cfb9290SDarrick J. Wong 0xdc, 0x01, 0x0a, 0x56, 0xfa, 0xe4, 0xc9, 0x99,
693cfb9290SDarrick J. Wong 0xdd, 0xa8, 0xd8, 0xda, 0x35, 0x51, 0x73, 0xb4,
703cfb9290SDarrick J. Wong 0x40, 0x86, 0x85, 0xdb, 0x5c, 0xd5, 0x85, 0x80,
713cfb9290SDarrick J. Wong 0x14, 0x9c, 0xfd, 0x98, 0xa9, 0x82, 0xc5, 0x37,
723cfb9290SDarrick J. Wong 0xff, 0x32, 0x5d, 0xd0, 0x0b, 0xfa, 0xdc, 0x04,
733cfb9290SDarrick J. Wong 0x5e, 0x09, 0xd2, 0xca, 0x17, 0x4b, 0x1a, 0x8e,
743cfb9290SDarrick J. Wong 0x15, 0xe1, 0xcc, 0x4e, 0x52, 0x88, 0x35, 0xbd,
753cfb9290SDarrick J. Wong 0x48, 0xfe, 0x15, 0xa0, 0x91, 0xfd, 0x7e, 0x6c,
763cfb9290SDarrick J. Wong 0x0e, 0x5d, 0x79, 0x1b, 0x81, 0x79, 0xd2, 0x09,
773cfb9290SDarrick J. Wong 0x34, 0x70, 0x3d, 0x81, 0xec, 0xf6, 0x24, 0xbb,
783cfb9290SDarrick J. Wong 0xfb, 0xf1, 0x7b, 0xdf, 0x54, 0xea, 0x80, 0x9b,
793cfb9290SDarrick J. Wong 0xc7, 0x99, 0x9e, 0xbd, 0x16, 0x78, 0x12, 0x53,
803cfb9290SDarrick J. Wong 0x5e, 0x01, 0xa7, 0x4e, 0xbd, 0x67, 0xe1, 0x9b,
813cfb9290SDarrick J. Wong 0x4c, 0x0e, 0x61, 0x45, 0x97, 0xd2, 0xf0, 0x0f,
823cfb9290SDarrick J. Wong 0xfe, 0x15, 0x08, 0xb7, 0x11, 0x4c, 0xe7, 0xff,
833cfb9290SDarrick J. Wong 0x81, 0x53, 0xff, 0x91, 0x25, 0x38, 0x7e, 0x40,
843cfb9290SDarrick J. Wong 0x94, 0xe5, 0xe0, 0xad, 0xe6, 0xd9, 0x79, 0xb6,
853cfb9290SDarrick J. Wong 0x92, 0xc9, 0xfc, 0xde, 0xc3, 0x1a, 0x23, 0xbb,
863cfb9290SDarrick J. Wong 0xdd, 0xc8, 0x51, 0x0c, 0x3a, 0x72, 0xfa, 0x73,
873cfb9290SDarrick J. Wong 0x6f, 0xb7, 0xee, 0x61, 0x39, 0x03, 0x01, 0x3f,
883cfb9290SDarrick J. Wong 0x7f, 0x94, 0x2e, 0x2e, 0xba, 0x3a, 0xbb, 0xb4,
893cfb9290SDarrick J. Wong 0xfa, 0x6a, 0x17, 0xfe, 0xea, 0xef, 0x5e, 0x66,
903cfb9290SDarrick J. Wong 0x97, 0x3f, 0x32, 0x3d, 0xd7, 0x3e, 0xb1, 0xf1,
913cfb9290SDarrick J. Wong 0x6c, 0x14, 0x4c, 0xfd, 0x37, 0xd3, 0x38, 0x80,
923cfb9290SDarrick J. Wong 0xfb, 0xde, 0xa6, 0x24, 0x1e, 0xc8, 0xca, 0x7f,
933cfb9290SDarrick J. Wong 0x3a, 0x93, 0xd8, 0x8b, 0x18, 0x13, 0xb2, 0xe5,
943cfb9290SDarrick J. Wong 0xe4, 0x93, 0x05, 0x53, 0x4f, 0x84, 0x66, 0xa7,
953cfb9290SDarrick J. Wong 0x58, 0x5c, 0x7b, 0x86, 0x52, 0x6d, 0x0d, 0xce,
963cfb9290SDarrick J. Wong 0xa4, 0x30, 0x7d, 0xb6, 0x18, 0x9f, 0xeb, 0xff,
973cfb9290SDarrick J. Wong 0x22, 0xbb, 0x72, 0x29, 0xb9, 0x44, 0x0b, 0x48,
983cfb9290SDarrick J. Wong 0x1e, 0x84, 0x71, 0x81, 0xe3, 0x6d, 0x73, 0x26,
993cfb9290SDarrick J. Wong 0x92, 0xb4, 0x4d, 0x2a, 0x29, 0xb8, 0x1f, 0x72,
1003cfb9290SDarrick J. Wong 0xed, 0xd0, 0xe1, 0x64, 0x77, 0xea, 0x8e, 0x88,
1013cfb9290SDarrick J. Wong 0x0f, 0xef, 0x3f, 0xb1, 0x3b, 0xad, 0xf9, 0xc9,
1023cfb9290SDarrick J. Wong 0x8b, 0xd0, 0xac, 0xc6, 0xcc, 0xa9, 0x40, 0xcc,
1033cfb9290SDarrick J. Wong 0x76, 0xf6, 0x3b, 0x53, 0xb5, 0x88, 0xcb, 0xc8,
1043cfb9290SDarrick J. Wong 0x37, 0xf1, 0xa2, 0xba, 0x23, 0x15, 0x99, 0x09,
1053cfb9290SDarrick J. Wong 0xcc, 0xe7, 0x7a, 0x3b, 0x37, 0xf7, 0x58, 0xc8,
1063cfb9290SDarrick J. Wong 0x46, 0x8c, 0x2b, 0x2f, 0x4e, 0x0e, 0xa6, 0x5c,
1073cfb9290SDarrick J. Wong 0xea, 0x85, 0x55, 0xba, 0x02, 0x0e, 0x0e, 0x48,
1083cfb9290SDarrick J. Wong 0xbc, 0xe1, 0xb1, 0x01, 0x35, 0x79, 0x13, 0x3d,
1093cfb9290SDarrick J. Wong 0x1b, 0xc0, 0x53, 0x68, 0x11, 0xe7, 0x95, 0x0f,
1103cfb9290SDarrick J. Wong 0x9d, 0x3f, 0x4c, 0x47, 0x7b, 0x4d, 0x1c, 0xae,
1113cfb9290SDarrick J. Wong 0x50, 0x9b, 0xcb, 0xdd, 0x05, 0x8d, 0x9a, 0x97,
1123cfb9290SDarrick J. Wong 0xfd, 0x8c, 0xef, 0x0c, 0x1d, 0x67, 0x73, 0xa8,
1133cfb9290SDarrick J. Wong 0x28, 0x36, 0xd5, 0xb6, 0x92, 0x33, 0x40, 0x75,
1143cfb9290SDarrick J. Wong 0x0b, 0x51, 0xc3, 0x64, 0xba, 0x1d, 0xc2, 0xcc,
1153cfb9290SDarrick J. Wong 0xee, 0x7d, 0x54, 0x0f, 0x27, 0x69, 0xa7, 0x27,
1163cfb9290SDarrick J. Wong 0x63, 0x30, 0x29, 0xd9, 0xc8, 0x84, 0xd8, 0xdf,
1173cfb9290SDarrick J. Wong 0x9f, 0x68, 0x8d, 0x04, 0xca, 0xa6, 0xc5, 0xc7,
1183cfb9290SDarrick J. Wong 0x7a, 0x5c, 0xc8, 0xd1, 0xcb, 0x4a, 0xec, 0xd0,
1193cfb9290SDarrick J. Wong 0xd8, 0x20, 0x69, 0xc5, 0x17, 0xcd, 0x78, 0xc8,
1203cfb9290SDarrick J. Wong 0x75, 0x23, 0x30, 0x69, 0xc9, 0xd4, 0xea, 0x5c,
1213cfb9290SDarrick J. Wong 0x4f, 0x6b, 0x86, 0x3f, 0x8b, 0xfe, 0xee, 0x44,
1223cfb9290SDarrick J. Wong 0xc9, 0x7c, 0xb7, 0xdd, 0x3e, 0xe5, 0xec, 0x54,
1233cfb9290SDarrick J. Wong 0x03, 0x3e, 0xaa, 0x82, 0xc6, 0xdf, 0xb2, 0x38,
1243cfb9290SDarrick J. Wong 0x0e, 0x5d, 0xb3, 0x88, 0xd9, 0xd3, 0x69, 0x5f,
1253cfb9290SDarrick J. Wong 0x8f, 0x70, 0x8a, 0x7e, 0x11, 0xd9, 0x1e, 0x7b,
1263cfb9290SDarrick J. Wong 0x38, 0xf1, 0x42, 0x1a, 0xc0, 0x35, 0xf5, 0xc7,
1273cfb9290SDarrick J. Wong 0x36, 0x85, 0xf5, 0xf7, 0xb8, 0x7e, 0xc7, 0xef,
1283cfb9290SDarrick J. Wong 0x18, 0xf1, 0x63, 0xd6, 0x7a, 0xc6, 0xc9, 0x0e,
1293cfb9290SDarrick J. Wong 0x4d, 0x69, 0x4f, 0x84, 0xef, 0x26, 0x41, 0x0c,
1303cfb9290SDarrick J. Wong 0xec, 0xc7, 0xe0, 0x7e, 0x3c, 0x67, 0x01, 0x4c,
1313cfb9290SDarrick J. Wong 0x62, 0x1a, 0x20, 0x6f, 0xee, 0x47, 0x4d, 0xc0,
1323cfb9290SDarrick J. Wong 0x99, 0x13, 0x8d, 0x91, 0x4a, 0x26, 0xd4, 0x37,
1333cfb9290SDarrick J. Wong 0x28, 0x90, 0x58, 0x75, 0x66, 0x2b, 0x0a, 0xdf,
1343cfb9290SDarrick J. Wong 0xda, 0xee, 0x92, 0x25, 0x90, 0x62, 0x39, 0x9e,
1353cfb9290SDarrick J. Wong 0x44, 0x98, 0xad, 0xc1, 0x88, 0xed, 0xe4, 0xb4,
1363cfb9290SDarrick J. Wong 0xaf, 0xf5, 0x8c, 0x9b, 0x48, 0x4d, 0x56, 0x60,
1373cfb9290SDarrick J. Wong 0x97, 0x0f, 0x61, 0x59, 0x9e, 0xa6, 0x27, 0xfe,
1383cfb9290SDarrick J. Wong 0xc1, 0x91, 0x15, 0x38, 0xb8, 0x0f, 0xae, 0x61,
1393cfb9290SDarrick J. Wong 0x7d, 0x26, 0x13, 0x5a, 0x73, 0xff, 0x1c, 0xa3,
1403cfb9290SDarrick J. Wong 0x61, 0x04, 0x58, 0x48, 0x55, 0x44, 0x11, 0xfe,
1413cfb9290SDarrick J. Wong 0x15, 0xca, 0xc3, 0xbd, 0xca, 0xc5, 0xb4, 0x40,
1423cfb9290SDarrick J. Wong 0x5d, 0x1b, 0x7f, 0x39, 0xb5, 0x9c, 0x35, 0xec,
1433cfb9290SDarrick J. Wong 0x61, 0x15, 0x32, 0x32, 0xb8, 0x4e, 0x40, 0x9f,
1443cfb9290SDarrick J. Wong 0x17, 0x1f, 0x0a, 0x4d, 0xa9, 0x91, 0xef, 0xb7,
1453cfb9290SDarrick J. Wong 0xb0, 0xeb, 0xc2, 0x83, 0x9a, 0x6c, 0xd2, 0x79,
1463cfb9290SDarrick J. Wong 0x43, 0x78, 0x5e, 0x2f, 0xe5, 0xdd, 0x1a, 0x3c,
1473cfb9290SDarrick J. Wong 0x45, 0xab, 0x29, 0x40, 0x3a, 0x37, 0x5b, 0x6f,
1483cfb9290SDarrick J. Wong 0xd7, 0xfc, 0x48, 0x64, 0x3c, 0x49, 0xfb, 0x21,
1493cfb9290SDarrick J. Wong 0xbe, 0xc3, 0xff, 0x07, 0xfb, 0x17, 0xe9, 0xc9,
1503cfb9290SDarrick J. Wong 0x0c, 0x4c, 0x5c, 0x15, 0x9e, 0x8e, 0x22, 0x30,
1513cfb9290SDarrick J. Wong 0x0a, 0xde, 0x48, 0x7f, 0xdb, 0x0d, 0xd1, 0x2b,
1523cfb9290SDarrick J. Wong 0x87, 0x38, 0x9e, 0xcc, 0x5a, 0x01, 0x16, 0xee,
1533cfb9290SDarrick J. Wong 0x75, 0x49, 0x0d, 0x30, 0x01, 0x34, 0x6a, 0xb6,
1543cfb9290SDarrick J. Wong 0x9a, 0x5a, 0x2a, 0xec, 0xbb, 0x48, 0xac, 0xd3,
1553cfb9290SDarrick J. Wong 0x77, 0x83, 0xd8, 0x08, 0x86, 0x4f, 0x48, 0x09,
1563cfb9290SDarrick J. Wong 0x29, 0x41, 0x79, 0xa1, 0x03, 0x12, 0xc4, 0xcd,
1573cfb9290SDarrick J. Wong 0x90, 0x55, 0x47, 0x66, 0x74, 0x9a, 0xcc, 0x4f,
1583cfb9290SDarrick J. Wong 0x35, 0x8c, 0xd6, 0x98, 0xef, 0xeb, 0x45, 0xb9,
1593cfb9290SDarrick J. Wong 0x9a, 0x26, 0x2f, 0x39, 0xa5, 0x70, 0x6d, 0xfc,
1603cfb9290SDarrick J. Wong 0xb4, 0x51, 0xee, 0xf4, 0x9c, 0xe7, 0x38, 0x59,
1613cfb9290SDarrick J. Wong 0xad, 0xf4, 0xbc, 0x46, 0xff, 0x46, 0x8e, 0x60,
1623cfb9290SDarrick J. Wong 0x9c, 0xa3, 0x60, 0x1d, 0xf8, 0x26, 0x72, 0xf5,
1633cfb9290SDarrick J. Wong 0x72, 0x9d, 0x68, 0x80, 0x04, 0xf6, 0x0b, 0xa1,
1643cfb9290SDarrick J. Wong 0x0a, 0xd5, 0xa7, 0x82, 0x3a, 0x3e, 0x47, 0xa8,
1653cfb9290SDarrick J. Wong 0x5a, 0xde, 0x59, 0x4f, 0x7b, 0x07, 0xb3, 0xe9,
1663cfb9290SDarrick J. Wong 0x24, 0x19, 0x3d, 0x34, 0x05, 0xec, 0xf1, 0xab,
1673cfb9290SDarrick J. Wong 0x6e, 0x64, 0x8f, 0xd3, 0xe6, 0x41, 0x86, 0x80,
1683cfb9290SDarrick J. Wong 0x70, 0xe3, 0x8d, 0x60, 0x9c, 0x34, 0x25, 0x01,
1693cfb9290SDarrick J. Wong 0x07, 0x4d, 0x19, 0x41, 0x4e, 0x3d, 0x5c, 0x7e,
1703cfb9290SDarrick J. Wong 0xa8, 0xf5, 0xcc, 0xd5, 0x7b, 0xe2, 0x7d, 0x3d,
1713cfb9290SDarrick J. Wong 0x49, 0x86, 0x7d, 0x07, 0xb7, 0x10, 0xe3, 0x35,
1723cfb9290SDarrick J. Wong 0xb8, 0x84, 0x6d, 0x76, 0xab, 0x17, 0xc6, 0x38,
1733cfb9290SDarrick J. Wong 0xb4, 0xd3, 0x28, 0x57, 0xad, 0xd3, 0x88, 0x5a,
1743cfb9290SDarrick J. Wong 0xda, 0xea, 0xc8, 0x94, 0xcc, 0x37, 0x19, 0xac,
1753cfb9290SDarrick J. Wong 0x9c, 0x9f, 0x4b, 0x00, 0x15, 0xc0, 0xc8, 0xca,
1763cfb9290SDarrick J. Wong 0x1f, 0x15, 0xaa, 0xe0, 0xdb, 0xf9, 0x2f, 0x57,
1773cfb9290SDarrick J. Wong 0x1b, 0x24, 0xc7, 0x6f, 0x76, 0x29, 0xfb, 0xed,
1783cfb9290SDarrick J. Wong 0x25, 0x0d, 0xc0, 0xfe, 0xbd, 0x5a, 0xbf, 0x20,
1793cfb9290SDarrick J. Wong 0x08, 0x51, 0x05, 0xec, 0x71, 0xa3, 0xbf, 0xef,
1803cfb9290SDarrick J. Wong 0x5e, 0x99, 0x75, 0xdb, 0x3c, 0x5f, 0x9a, 0x8c,
1813cfb9290SDarrick J. Wong 0xbb, 0x19, 0x5c, 0x0e, 0x93, 0x19, 0xf8, 0x6a,
1823cfb9290SDarrick J. Wong 0xbc, 0xf2, 0x12, 0x54, 0x2f, 0xcb, 0x28, 0x64,
1833cfb9290SDarrick J. Wong 0x88, 0xb3, 0x92, 0x0d, 0x96, 0xd1, 0xa6, 0xe4,
1843cfb9290SDarrick J. Wong 0x1f, 0xf1, 0x4d, 0xa4, 0xab, 0x1c, 0xee, 0x54,
1853cfb9290SDarrick J. Wong 0xf2, 0xad, 0x29, 0x6d, 0x32, 0x37, 0xb2, 0x16,
1863cfb9290SDarrick J. Wong 0x77, 0x5c, 0xdc, 0x2e, 0x54, 0xec, 0x75, 0x26,
1873cfb9290SDarrick J. Wong 0xc6, 0x36, 0xd9, 0x17, 0x2c, 0xf1, 0x7a, 0xdc,
1883cfb9290SDarrick J. Wong 0x4b, 0xf1, 0xe2, 0xd9, 0x95, 0xba, 0xac, 0x87,
1893cfb9290SDarrick J. Wong 0xc1, 0xf3, 0x8e, 0x58, 0x08, 0xd8, 0x87, 0x60,
1903cfb9290SDarrick J. Wong 0xc9, 0xee, 0x6a, 0xde, 0xa4, 0xd2, 0xfc, 0x0d,
1913cfb9290SDarrick J. Wong 0xe5, 0x36, 0xc4, 0x5c, 0x52, 0xb3, 0x07, 0x54,
1923cfb9290SDarrick J. Wong 0x65, 0x24, 0xc1, 0xb1, 0xd1, 0xb1, 0x53, 0x13,
1933cfb9290SDarrick J. Wong 0x31, 0x79, 0x7f, 0x05, 0x76, 0xeb, 0x37, 0x59,
1943cfb9290SDarrick J. Wong 0x15, 0x2b, 0xd1, 0x3f, 0xac, 0x08, 0x97, 0xeb,
1953cfb9290SDarrick J. Wong 0x91, 0x98, 0xdf, 0x6c, 0x09, 0x0d, 0x04, 0x9f,
1963cfb9290SDarrick J. Wong 0xdc, 0x3b, 0x0e, 0x60, 0x68, 0x47, 0x23, 0x15,
1973cfb9290SDarrick J. Wong 0x16, 0xc6, 0x0b, 0x35, 0xf8, 0x77, 0xa2, 0x78,
1983cfb9290SDarrick J. Wong 0x50, 0xd4, 0x64, 0x22, 0x33, 0xff, 0xfb, 0x93,
1993cfb9290SDarrick J. Wong 0x71, 0x46, 0x50, 0x39, 0x1b, 0x9c, 0xea, 0x4e,
2003cfb9290SDarrick J. Wong 0x8d, 0x0c, 0x37, 0xe5, 0x5c, 0x51, 0x3a, 0x31,
2013cfb9290SDarrick J. Wong 0xb2, 0x85, 0x84, 0x3f, 0x41, 0xee, 0xa2, 0xc1,
2023cfb9290SDarrick J. Wong 0xc6, 0x13, 0x3b, 0x54, 0x28, 0xd2, 0x18, 0x37,
2033cfb9290SDarrick J. Wong 0xcc, 0x46, 0x9f, 0x6a, 0x91, 0x3d, 0x5a, 0x15,
2043cfb9290SDarrick J. Wong 0x3c, 0x89, 0xa3, 0x61, 0x06, 0x7d, 0x2e, 0x78,
2053cfb9290SDarrick J. Wong 0xbe, 0x7d, 0x40, 0xba, 0x2f, 0x95, 0xb1, 0x2f,
2063cfb9290SDarrick J. Wong 0x87, 0x3b, 0x8a, 0xbe, 0x6a, 0xf4, 0xc2, 0x31,
2073cfb9290SDarrick J. Wong 0x74, 0xee, 0x91, 0xe0, 0x23, 0xaa, 0x5d, 0x7f,
2083cfb9290SDarrick J. Wong 0xdd, 0xf0, 0x44, 0x8c, 0x0b, 0x59, 0x2b, 0xfc,
2093cfb9290SDarrick J. Wong 0x48, 0x3a, 0xdf, 0x07, 0x05, 0x38, 0x6c, 0xc9,
2103cfb9290SDarrick J. Wong 0xeb, 0x18, 0x24, 0x68, 0x8d, 0x58, 0x98, 0xd3,
2113cfb9290SDarrick J. Wong 0x31, 0xa3, 0xe4, 0x70, 0x59, 0xb1, 0x21, 0xbe,
2123cfb9290SDarrick J. Wong 0x7e, 0x65, 0x7d, 0xb8, 0x04, 0xab, 0xf6, 0xe4,
2133cfb9290SDarrick J. Wong 0xd7, 0xda, 0xec, 0x09, 0x8f, 0xda, 0x6d, 0x24,
2143cfb9290SDarrick J. Wong 0x07, 0xcc, 0x29, 0x17, 0x05, 0x78, 0x1a, 0xc1,
2153cfb9290SDarrick J. Wong 0xb1, 0xce, 0xfc, 0xaa, 0x2d, 0xe7, 0xcc, 0x85,
2163cfb9290SDarrick J. Wong 0x84, 0x84, 0x03, 0x2a, 0x0c, 0x3f, 0xa9, 0xf8,
2173cfb9290SDarrick J. Wong 0xfd, 0x84, 0x53, 0x59, 0x5c, 0xf0, 0xd4, 0x09,
2183cfb9290SDarrick J. Wong 0xf0, 0xd2, 0x6c, 0x32, 0x03, 0xb0, 0xa0, 0x8c,
2193cfb9290SDarrick J. Wong 0x52, 0xeb, 0x23, 0x91, 0x88, 0x43, 0x13, 0x46,
2203cfb9290SDarrick J. Wong 0xf6, 0x1e, 0xb4, 0x1b, 0xf5, 0x8e, 0x3a, 0xb5,
2213cfb9290SDarrick J. Wong 0x3d, 0x00, 0xf6, 0xe5, 0x08, 0x3d, 0x5f, 0x39,
2223cfb9290SDarrick J. Wong 0xd3, 0x21, 0x69, 0xbc, 0x03, 0x22, 0x3a, 0xd2,
2233cfb9290SDarrick J. Wong 0x5c, 0x84, 0xf8, 0x15, 0xc4, 0x80, 0x0b, 0xbc,
2243cfb9290SDarrick J. Wong 0x29, 0x3c, 0xf3, 0x95, 0x98, 0xcd, 0x8f, 0x35,
2253cfb9290SDarrick J. Wong 0xbc, 0xa5, 0x3e, 0xfc, 0xd4, 0x13, 0x9e, 0xde,
2263cfb9290SDarrick J. Wong 0x4f, 0xce, 0x71, 0x9d, 0x09, 0xad, 0xf2, 0x80,
2273cfb9290SDarrick J. Wong 0x6b, 0x65, 0x7f, 0x03, 0x00, 0x14, 0x7c, 0x15,
2283cfb9290SDarrick J. Wong 0x85, 0x40, 0x6d, 0x70, 0xea, 0xdc, 0xb3, 0x63,
2293cfb9290SDarrick J. Wong 0x35, 0x4f, 0x4d, 0xe0, 0xd9, 0xd5, 0x3c, 0x58,
2303cfb9290SDarrick J. Wong 0x56, 0x23, 0x80, 0xe2, 0x36, 0xdd, 0x75, 0x1d,
2313cfb9290SDarrick J. Wong 0x94, 0x11, 0x41, 0x8e, 0xe0, 0x81, 0x8e, 0xcf,
2323cfb9290SDarrick J. Wong 0xe0, 0xe5, 0xf6, 0xde, 0xd1, 0xe7, 0x04, 0x12,
2333cfb9290SDarrick J. Wong 0x79, 0x92, 0x2b, 0x71, 0x2a, 0x79, 0x8b, 0x7c,
2343cfb9290SDarrick J. Wong 0x44, 0x79, 0x16, 0x30, 0x4e, 0xf4, 0xf6, 0x9b,
2353cfb9290SDarrick J. Wong 0xb7, 0x40, 0xa3, 0x5a, 0xa7, 0x69, 0x3e, 0xc1,
2363cfb9290SDarrick J. Wong 0x3a, 0x04, 0xd0, 0x88, 0xa0, 0x3b, 0xdd, 0xc6,
2373cfb9290SDarrick J. Wong 0x9e, 0x7e, 0x1e, 0x1e, 0x8f, 0x44, 0xf7, 0x73,
2383cfb9290SDarrick J. Wong 0x67, 0x1e, 0x1a, 0x78, 0xfa, 0x62, 0xf4, 0xa9,
2393cfb9290SDarrick J. Wong 0xa8, 0xc6, 0x5b, 0xb8, 0xfa, 0x06, 0x7d, 0x5e,
2403cfb9290SDarrick J. Wong 0x38, 0x1c, 0x9a, 0x39, 0xe9, 0x39, 0x98, 0x22,
2413cfb9290SDarrick J. Wong 0x0b, 0xa7, 0xac, 0x0b, 0xf3, 0xbc, 0xf1, 0xeb,
2423cfb9290SDarrick J. Wong 0x8c, 0x81, 0xe3, 0x48, 0x8a, 0xed, 0x42, 0xc2,
2433cfb9290SDarrick J. Wong 0x38, 0xcf, 0x3e, 0xda, 0xd2, 0x89, 0x8d, 0x9c,
2443cfb9290SDarrick J. Wong 0x53, 0xb5, 0x2f, 0x41, 0x01, 0x26, 0x84, 0x9c,
2453cfb9290SDarrick J. Wong 0xa3, 0x56, 0xf6, 0x49, 0xc7, 0xd4, 0x9f, 0x93,
2463cfb9290SDarrick J. Wong 0x1b, 0x96, 0x49, 0x5e, 0xad, 0xb3, 0x84, 0x1f,
2473cfb9290SDarrick J. Wong 0x3c, 0xa4, 0xe0, 0x9b, 0xd1, 0x90, 0xbc, 0x38,
2483cfb9290SDarrick J. Wong 0x6c, 0xdd, 0x95, 0x4d, 0x9d, 0xb1, 0x71, 0x57,
2493cfb9290SDarrick J. Wong 0x2d, 0x34, 0xe8, 0xb8, 0x42, 0xc7, 0x99, 0x03,
2503cfb9290SDarrick J. Wong 0xc7, 0x07, 0x30, 0x65, 0x91, 0x55, 0xd5, 0x90,
2513cfb9290SDarrick J. Wong 0x70, 0x97, 0x37, 0x68, 0xd4, 0x11, 0xf9, 0xe8,
2523cfb9290SDarrick J. Wong 0xce, 0xec, 0xdc, 0x34, 0xd5, 0xd3, 0xb7, 0xc4,
2533cfb9290SDarrick J. Wong 0xb8, 0x97, 0x05, 0x92, 0xad, 0xf8, 0xe2, 0x36,
2543cfb9290SDarrick J. Wong 0x64, 0x41, 0xc9, 0xc5, 0x41, 0x77, 0x52, 0xd7,
2553cfb9290SDarrick J. Wong 0x2c, 0xa5, 0x24, 0x2f, 0xd9, 0x34, 0x0b, 0x47,
2563cfb9290SDarrick J. Wong 0x35, 0xa7, 0x28, 0x8b, 0xc5, 0xcd, 0xe9, 0x46,
2573cfb9290SDarrick J. Wong 0xac, 0x39, 0x94, 0x3c, 0x10, 0xc6, 0x29, 0x73,
2583cfb9290SDarrick J. Wong 0x0e, 0x0e, 0x5d, 0xe0, 0x71, 0x03, 0x8a, 0x72,
2593cfb9290SDarrick J. Wong 0x0e, 0x26, 0xb0, 0x7d, 0x84, 0xed, 0x95, 0x23,
2603cfb9290SDarrick J. Wong 0x49, 0x5a, 0x45, 0x83, 0x45, 0x60, 0x11, 0x4a,
2613cfb9290SDarrick J. Wong 0x46, 0x31, 0xd4, 0xd8, 0x16, 0x54, 0x98, 0x58,
2623cfb9290SDarrick J. Wong 0xed, 0x6d, 0xcc, 0x5d, 0xd6, 0x50, 0x61, 0x9f,
2633cfb9290SDarrick J. Wong 0x9d, 0xc5, 0x3e, 0x9d, 0x32, 0x47, 0xde, 0x96,
2643cfb9290SDarrick J. Wong 0xe1, 0x5d, 0xd8, 0xf8, 0xb4, 0x69, 0x6f, 0xb9,
2653cfb9290SDarrick J. Wong 0x15, 0x90, 0x57, 0x7a, 0xf6, 0xad, 0xb0, 0x5b,
2663cfb9290SDarrick J. Wong 0xf5, 0xa6, 0x36, 0x94, 0xfd, 0x84, 0xce, 0x1c,
2673cfb9290SDarrick J. Wong 0x0f, 0x4b, 0xd0, 0xc2, 0x5b, 0x6b, 0x56, 0xef,
2683cfb9290SDarrick J. Wong 0x73, 0x93, 0x0b, 0xc3, 0xee, 0xd9, 0xcf, 0xd3,
2693cfb9290SDarrick J. Wong 0xa4, 0x22, 0x58, 0xcd, 0x50, 0x6e, 0x65, 0xf4,
2703cfb9290SDarrick J. Wong 0xe9, 0xb7, 0x71, 0xaf, 0x4b, 0xb3, 0xb6, 0x2f,
2713cfb9290SDarrick J. Wong 0x0f, 0x0e, 0x3b, 0xc9, 0x85, 0x14, 0xf5, 0x17,
2723cfb9290SDarrick J. Wong 0xe8, 0x7a, 0x3a, 0xbf, 0x5f, 0x5e, 0xf8, 0x18,
2733cfb9290SDarrick J. Wong 0x48, 0xa6, 0x72, 0xab, 0x06, 0x95, 0xe9, 0xc8,
2743cfb9290SDarrick J. Wong 0xa7, 0xf4, 0x32, 0x44, 0x04, 0x0c, 0x84, 0x98,
2753cfb9290SDarrick J. Wong 0x73, 0xe3, 0x89, 0x8d, 0x5f, 0x7e, 0x4a, 0x42,
2763cfb9290SDarrick J. Wong 0x8f, 0xc5, 0x28, 0xb1, 0x82, 0xef, 0x1c, 0x97,
2773cfb9290SDarrick J. Wong 0x31, 0x3b, 0x4d, 0xe0, 0x0e, 0x10, 0x10, 0x97,
2783cfb9290SDarrick J. Wong 0x93, 0x49, 0x78, 0x2f, 0x0d, 0x86, 0x8b, 0xa1,
2793cfb9290SDarrick J. Wong 0x53, 0xa9, 0x81, 0x20, 0x79, 0xe7, 0x07, 0x77,
2803cfb9290SDarrick J. Wong 0xb6, 0xac, 0x5e, 0xd2, 0x05, 0xcd, 0xe9, 0xdb,
2813cfb9290SDarrick J. Wong 0x8a, 0x94, 0x82, 0x8a, 0x23, 0xb9, 0x3d, 0x1c,
2823cfb9290SDarrick J. Wong 0xa9, 0x7d, 0x72, 0x4a, 0xed, 0x33, 0xa3, 0xdb,
2833cfb9290SDarrick J. Wong 0x21, 0xa7, 0x86, 0x33, 0x45, 0xa5, 0xaa, 0x56,
2843cfb9290SDarrick J. Wong 0x45, 0xb5, 0x83, 0x29, 0x40, 0x47, 0x79, 0x04,
2853cfb9290SDarrick J. Wong 0x6e, 0xb9, 0x95, 0xd0, 0x81, 0x77, 0x2d, 0x48,
2863cfb9290SDarrick J. Wong 0x1e, 0xfe, 0xc3, 0xc2, 0x1e, 0xe5, 0xf2, 0xbe,
2873cfb9290SDarrick J. Wong 0xfd, 0x3b, 0x94, 0x9f, 0xc4, 0xc4, 0x26, 0x9d,
2883cfb9290SDarrick J. Wong 0xe4, 0x66, 0x1e, 0x19, 0xee, 0x6c, 0x79, 0x97,
2893cfb9290SDarrick J. Wong 0x11, 0x31, 0x4b, 0x0d, 0x01, 0xcb, 0xde, 0xa8,
2903cfb9290SDarrick J. Wong 0xf6, 0x6d, 0x7c, 0x39, 0x46, 0x4e, 0x7e, 0x3f,
2913cfb9290SDarrick J. Wong 0x94, 0x17, 0xdf, 0xa1, 0x7d, 0xd9, 0x1c, 0x8e,
2923cfb9290SDarrick J. Wong 0xbc, 0x7d, 0x33, 0x7d, 0xe3, 0x12, 0x40, 0xca,
2933cfb9290SDarrick J. Wong 0xab, 0x37, 0x11, 0x46, 0xd4, 0xae, 0xef, 0x44,
2943cfb9290SDarrick J. Wong 0xa2, 0xb3, 0x6a, 0x66, 0x0e, 0x0c, 0x90, 0x7f,
2953cfb9290SDarrick J. Wong 0xdf, 0x5c, 0x66, 0x5f, 0xf2, 0x94, 0x9f, 0xa6,
2963cfb9290SDarrick J. Wong 0x73, 0x4f, 0xeb, 0x0d, 0xad, 0xbf, 0xc0, 0x63,
2973cfb9290SDarrick J. Wong 0x5c, 0xdc, 0x46, 0x51, 0xe8, 0x8e, 0x90, 0x19,
2983cfb9290SDarrick J. Wong 0xa8, 0xa4, 0x3c, 0x91, 0x79, 0xfa, 0x7e, 0x58,
2993cfb9290SDarrick J. Wong 0x85, 0x13, 0x55, 0xc5, 0x19, 0x82, 0x37, 0x1b,
3003cfb9290SDarrick J. Wong 0x0a, 0x02, 0x1f, 0x99, 0x6b, 0x18, 0xf1, 0x28,
3013cfb9290SDarrick J. Wong 0x08, 0xa2, 0x73, 0xb8, 0x0f, 0x2e, 0xcd, 0xbf,
3023cfb9290SDarrick J. Wong 0xf3, 0x86, 0x7f, 0xea, 0xef, 0xd0, 0xbb, 0xa6,
3033cfb9290SDarrick J. Wong 0x21, 0xdf, 0x49, 0x73, 0x51, 0xcc, 0x36, 0xd3,
3043cfb9290SDarrick J. Wong 0x3e, 0xa0, 0xf8, 0x44, 0xdf, 0xd3, 0xa6, 0xbe,
3053cfb9290SDarrick J. Wong 0x8a, 0xd4, 0x57, 0xdd, 0x72, 0x94, 0x61, 0x0f,
3063cfb9290SDarrick J. Wong 0x82, 0xd1, 0x07, 0xb8, 0x7c, 0x18, 0x83, 0xdf,
3073cfb9290SDarrick J. Wong 0x3a, 0xe5, 0x50, 0x6a, 0x82, 0x20, 0xac, 0xa9,
3083cfb9290SDarrick J. Wong 0xa8, 0xff, 0xd9, 0xf3, 0x77, 0x33, 0x5a, 0x9e,
3093cfb9290SDarrick J. Wong 0x7f, 0x6d, 0xfe, 0x5d, 0x33, 0x41, 0x42, 0xe7,
3103cfb9290SDarrick J. Wong 0x6c, 0x19, 0xe0, 0x44, 0x8a, 0x15, 0xf6, 0x70,
3113cfb9290SDarrick J. Wong 0x98, 0xb7, 0x68, 0x4d, 0xfa, 0x97, 0x39, 0xb0,
3123cfb9290SDarrick J. Wong 0x8e, 0xe8, 0x84, 0x8b, 0x75, 0x30, 0xb7, 0x7d,
3133cfb9290SDarrick J. Wong 0x92, 0x69, 0x20, 0x9c, 0x81, 0xfb, 0x4b, 0xf4,
3143cfb9290SDarrick J. Wong 0x01, 0x50, 0xeb, 0xce, 0x0c, 0x1c, 0x6c, 0xb5,
3153cfb9290SDarrick J. Wong 0x4a, 0xd7, 0x27, 0x0c, 0xce, 0xbb, 0xe5, 0x85,
3163cfb9290SDarrick J. Wong 0xf0, 0xb6, 0xee, 0xd5, 0x70, 0xdd, 0x3b, 0xfc,
3173cfb9290SDarrick J. Wong 0xd4, 0x99, 0xf1, 0x33, 0xdd, 0x8b, 0xc4, 0x2f,
3183cfb9290SDarrick J. Wong 0xae, 0xab, 0x74, 0x96, 0x32, 0xc7, 0x4c, 0x56,
3193cfb9290SDarrick J. Wong 0x3c, 0x89, 0x0f, 0x96, 0x0b, 0x42, 0xc0, 0xcb,
3203cfb9290SDarrick J. Wong 0xee, 0x0f, 0x0b, 0x8c, 0xfb, 0x7e, 0x47, 0x7b,
3213cfb9290SDarrick J. Wong 0x64, 0x48, 0xfd, 0xb2, 0x00, 0x80, 0x89, 0xa5,
3223cfb9290SDarrick J. Wong 0x13, 0x55, 0x62, 0xfc, 0x8f, 0xe2, 0x42, 0x03,
3233cfb9290SDarrick J. Wong 0xb7, 0x4e, 0x2a, 0x79, 0xb4, 0x82, 0xea, 0x23,
3243cfb9290SDarrick J. Wong 0x49, 0xda, 0xaf, 0x52, 0x63, 0x1e, 0x60, 0x03,
3253cfb9290SDarrick J. Wong 0x89, 0x06, 0x44, 0x46, 0x08, 0xc3, 0xc4, 0x87,
3263cfb9290SDarrick J. Wong 0x70, 0x2e, 0xda, 0x94, 0xad, 0x6b, 0xe0, 0xe4,
3273cfb9290SDarrick J. Wong 0xd1, 0x8a, 0x06, 0xc2, 0xa8, 0xc0, 0xa7, 0x43,
3283cfb9290SDarrick J. Wong 0x3c, 0x47, 0x52, 0x0e, 0xc3, 0x77, 0x81, 0x11,
3293cfb9290SDarrick J. Wong 0x67, 0x0e, 0xa0, 0x70, 0x04, 0x47, 0x29, 0x40,
3303cfb9290SDarrick J. Wong 0x86, 0x0d, 0x34, 0x56, 0xa7, 0xc9, 0x35, 0x59,
3313cfb9290SDarrick J. Wong 0x68, 0xdc, 0x93, 0x81, 0x70, 0xee, 0x86, 0xd9,
3323cfb9290SDarrick J. Wong 0x80, 0x06, 0x40, 0x4f, 0x1a, 0x0d, 0x40, 0x30,
3333cfb9290SDarrick J. Wong 0x0b, 0xcb, 0x96, 0x47, 0xc1, 0xb7, 0x52, 0xfd,
3343cfb9290SDarrick J. Wong 0x56, 0xe0, 0x72, 0x4b, 0xfb, 0xbd, 0x92, 0x45,
3353cfb9290SDarrick J. Wong 0x61, 0x71, 0xc2, 0x33, 0x11, 0xbf, 0x52, 0x83,
3363cfb9290SDarrick J. Wong 0x79, 0x26, 0xe0, 0x49, 0x6b, 0xb7, 0x05, 0x8b,
3373cfb9290SDarrick J. Wong 0xe8, 0x0e, 0x87, 0x31, 0xd7, 0x9d, 0x8a, 0xf5,
3383cfb9290SDarrick J. Wong 0xc0, 0x5f, 0x2e, 0x58, 0x4a, 0xdb, 0x11, 0xb3,
3393cfb9290SDarrick J. Wong 0x6c, 0x30, 0x2a, 0x46, 0x19, 0xe3, 0x27, 0x84,
3403cfb9290SDarrick J. Wong 0x1f, 0x63, 0x6e, 0xf6, 0x57, 0xc7, 0xc9, 0xd8,
3413cfb9290SDarrick J. Wong 0x5e, 0xba, 0xb3, 0x87, 0xd5, 0x83, 0x26, 0x34,
3423cfb9290SDarrick J. Wong 0x21, 0x9e, 0x65, 0xde, 0x42, 0xd3, 0xbe, 0x7b,
3433cfb9290SDarrick J. Wong 0xbc, 0x91, 0x71, 0x44, 0x4d, 0x99, 0x3b, 0x31,
3443cfb9290SDarrick J. Wong 0xe5, 0x3f, 0x11, 0x4e, 0x7f, 0x13, 0x51, 0x3b,
3453cfb9290SDarrick J. Wong 0xae, 0x79, 0xc9, 0xd3, 0x81, 0x8e, 0x25, 0x40,
3463cfb9290SDarrick J. Wong 0x10, 0xfc, 0x07, 0x1e, 0xf9, 0x7b, 0x9a, 0x4b,
3473cfb9290SDarrick J. Wong 0x6c, 0xe3, 0xb3, 0xad, 0x1a, 0x0a, 0xdd, 0x9e,
3483cfb9290SDarrick J. Wong 0x59, 0x0c, 0xa2, 0xcd, 0xae, 0x48, 0x4a, 0x38,
3493cfb9290SDarrick J. Wong 0x5b, 0x47, 0x41, 0x94, 0x65, 0x6b, 0xbb, 0xeb,
3503cfb9290SDarrick J. Wong 0x5b, 0xe3, 0xaf, 0x07, 0x5b, 0xd4, 0x4a, 0xa2,
3513cfb9290SDarrick J. Wong 0xc9, 0x5d, 0x2f, 0x64, 0x03, 0xd7, 0x3a, 0x2c,
3523cfb9290SDarrick J. Wong 0x6e, 0xce, 0x76, 0x95, 0xb4, 0xb3, 0xc0, 0xf1,
3533cfb9290SDarrick J. Wong 0xe2, 0x45, 0x73, 0x7a, 0x5c, 0xab, 0xc1, 0xfc,
3543cfb9290SDarrick J. Wong 0x02, 0x8d, 0x81, 0x29, 0xb3, 0xac, 0x07, 0xec,
3553cfb9290SDarrick J. Wong 0x40, 0x7d, 0x45, 0xd9, 0x7a, 0x59, 0xee, 0x34,
3563cfb9290SDarrick J. Wong 0xf0, 0xe9, 0xd5, 0x7b, 0x96, 0xb1, 0x3d, 0x95,
3573cfb9290SDarrick J. Wong 0xcc, 0x86, 0xb5, 0xb6, 0x04, 0x2d, 0xb5, 0x92,
3583cfb9290SDarrick J. Wong 0x7e, 0x76, 0xf4, 0x06, 0xa9, 0xa3, 0x12, 0x0f,
3593cfb9290SDarrick J. Wong 0xb1, 0xaf, 0x26, 0xba, 0x7c, 0xfc, 0x7e, 0x1c,
3603cfb9290SDarrick J. Wong 0xbc, 0x2c, 0x49, 0x97, 0x53, 0x60, 0x13, 0x0b,
3613cfb9290SDarrick J. Wong 0xa6, 0x61, 0x83, 0x89, 0x42, 0xd4, 0x17, 0x0c,
3623cfb9290SDarrick J. Wong 0x6c, 0x26, 0x52, 0xc3, 0xb3, 0xd4, 0x67, 0xf5,
3633cfb9290SDarrick J. Wong 0xe3, 0x04, 0xb7, 0xf4, 0xcb, 0x80, 0xb8, 0xcb,
3643cfb9290SDarrick J. Wong 0x77, 0x56, 0x3e, 0xaa, 0x57, 0x54, 0xee, 0xb4,
3653cfb9290SDarrick J. Wong 0x2c, 0x67, 0xcf, 0xf2, 0xdc, 0xbe, 0x55, 0xf9,
3663cfb9290SDarrick J. Wong 0x43, 0x1f, 0x6e, 0x22, 0x97, 0x67, 0x7f, 0xc4,
3673cfb9290SDarrick J. Wong 0xef, 0xb1, 0x26, 0x31, 0x1e, 0x27, 0xdf, 0x41,
3683cfb9290SDarrick J. Wong 0x80, 0x47, 0x6c, 0xe2, 0xfa, 0xa9, 0x8c, 0x2a,
3693cfb9290SDarrick J. Wong 0xf6, 0xf2, 0xab, 0xf0, 0x15, 0xda, 0x6c, 0xc8,
3703cfb9290SDarrick J. Wong 0xfe, 0xb5, 0x23, 0xde, 0xa9, 0x05, 0x3f, 0x06,
3713cfb9290SDarrick J. Wong 0x54, 0x4c, 0xcd, 0xe1, 0xab, 0xfc, 0x0e, 0x62,
3723cfb9290SDarrick J. Wong 0x33, 0x31, 0x73, 0x2c, 0x76, 0xcb, 0xb4, 0x47,
3733cfb9290SDarrick J. Wong 0x1e, 0x20, 0xad, 0xd8, 0xf2, 0x31, 0xdd, 0xc4,
3743cfb9290SDarrick J. Wong 0x8b, 0x0c, 0x77, 0xbe, 0xe1, 0x8b, 0x26, 0x00,
3753cfb9290SDarrick J. Wong 0x02, 0x58, 0xd6, 0x8d, 0xef, 0xad, 0x74, 0x67,
3763cfb9290SDarrick J. Wong 0xab, 0x3f, 0xef, 0xcb, 0x6f, 0xb0, 0xcc, 0x81,
3773cfb9290SDarrick J. Wong 0x44, 0x4c, 0xaf, 0xe9, 0x49, 0x4f, 0xdb, 0xa0,
3783cfb9290SDarrick J. Wong 0x25, 0xa4, 0xf0, 0x89, 0xf1, 0xbe, 0xd8, 0x10,
3793cfb9290SDarrick J. Wong 0xff, 0xb1, 0x3b, 0x4b, 0xfa, 0x98, 0xf5, 0x79,
3803cfb9290SDarrick J. Wong 0x6d, 0x1e, 0x69, 0x4d, 0x57, 0xb1, 0xc8, 0x19,
3813cfb9290SDarrick J. Wong 0x1b, 0xbd, 0x1e, 0x8c, 0x84, 0xb7, 0x7b, 0xe8,
3823cfb9290SDarrick J. Wong 0xd2, 0x2d, 0x09, 0x41, 0x41, 0x37, 0x3d, 0xb1,
3833cfb9290SDarrick J. Wong 0x6f, 0x26, 0x5d, 0x71, 0x16, 0x3d, 0xb7, 0x83,
3843cfb9290SDarrick J. Wong 0x27, 0x2c, 0xa7, 0xb6, 0x50, 0xbd, 0x91, 0x86,
3853cfb9290SDarrick J. Wong 0xab, 0x24, 0xa1, 0x38, 0xfd, 0xea, 0x71, 0x55,
3863cfb9290SDarrick J. Wong 0x7e, 0x9a, 0x07, 0x77, 0x4b, 0xfa, 0x61, 0x66,
3873cfb9290SDarrick J. Wong 0x20, 0x1e, 0x28, 0x95, 0x18, 0x1b, 0xa4, 0xa0,
3883cfb9290SDarrick J. Wong 0xfd, 0xc0, 0x89, 0x72, 0x43, 0xd9, 0x3b, 0x49,
3893cfb9290SDarrick J. Wong 0x5a, 0x3f, 0x9d, 0xbf, 0xdb, 0xb4, 0x46, 0xea,
3903cfb9290SDarrick J. Wong 0x42, 0x01, 0x77, 0x23, 0x68, 0x95, 0xb6, 0x24,
3913cfb9290SDarrick J. Wong 0xb3, 0xa8, 0x6c, 0x28, 0x3b, 0x11, 0x40, 0x7e,
3923cfb9290SDarrick J. Wong 0x18, 0x65, 0x6d, 0xd8, 0x24, 0x42, 0x7d, 0x88,
3933cfb9290SDarrick J. Wong 0xc0, 0x52, 0xd9, 0x05, 0xe4, 0x95, 0x90, 0x87,
3943cfb9290SDarrick J. Wong 0x8c, 0xf4, 0xd0, 0x6b, 0xb9, 0x83, 0x99, 0x34,
3953cfb9290SDarrick J. Wong 0x6d, 0xfe, 0x54, 0x40, 0x94, 0x52, 0x21, 0x4f,
3963cfb9290SDarrick J. Wong 0x14, 0x25, 0xc5, 0xd6, 0x5e, 0x95, 0xdc, 0x0a,
3973cfb9290SDarrick J. Wong 0x2b, 0x89, 0x20, 0x11, 0x84, 0x48, 0xd6, 0x3a,
3983cfb9290SDarrick J. Wong 0xcd, 0x5c, 0x24, 0xad, 0x62, 0xe3, 0xb1, 0x93,
3993cfb9290SDarrick J. Wong 0x25, 0x8d, 0xcd, 0x7e, 0xfc, 0x27, 0xa3, 0x37,
4003cfb9290SDarrick J. Wong 0xfd, 0x84, 0xfc, 0x1b, 0xb2, 0xf1, 0x27, 0x38,
4013cfb9290SDarrick J. Wong 0x5a, 0xb7, 0xfc, 0xf2, 0xfa, 0x95, 0x66, 0xd4,
4023cfb9290SDarrick J. Wong 0xfb, 0xba, 0xa7, 0xd7, 0xa3, 0x72, 0x69, 0x48,
4033cfb9290SDarrick J. Wong 0x48, 0x8c, 0xeb, 0x28, 0x89, 0xfe, 0x33, 0x65,
4043cfb9290SDarrick J. Wong 0x5a, 0x36, 0x01, 0x7e, 0x06, 0x79, 0x0a, 0x09,
4053cfb9290SDarrick J. Wong 0x3b, 0x74, 0x11, 0x9a, 0x6e, 0xbf, 0xd4, 0x9e,
4063cfb9290SDarrick J. Wong 0x58, 0x90, 0x49, 0x4f, 0x4d, 0x08, 0xd4, 0xe5,
4073cfb9290SDarrick J. Wong 0x4a, 0x09, 0x21, 0xef, 0x8b, 0xb8, 0x74, 0x3b,
4083cfb9290SDarrick J. Wong 0x91, 0xdd, 0x36, 0x85, 0x60, 0x2d, 0xfa, 0xd4,
4093cfb9290SDarrick J. Wong 0x45, 0x7b, 0x45, 0x53, 0xf5, 0x47, 0x87, 0x7e,
4103cfb9290SDarrick J. Wong 0xa6, 0x37, 0xc8, 0x78, 0x7a, 0x68, 0x9d, 0x8d,
4113cfb9290SDarrick J. Wong 0x65, 0x2c, 0x0e, 0x91, 0x5c, 0xa2, 0x60, 0xf0,
4123cfb9290SDarrick J. Wong 0x8e, 0x3f, 0xe9, 0x1a, 0xcd, 0xaa, 0xe7, 0xd5,
4133cfb9290SDarrick J. Wong 0x77, 0x18, 0xaf, 0xc9, 0xbc, 0x18, 0xea, 0x48,
4143cfb9290SDarrick J. Wong 0x1b, 0xfb, 0x22, 0x48, 0x70, 0x16, 0x29, 0x9e,
4153cfb9290SDarrick J. Wong 0x5b, 0xc1, 0x2c, 0x66, 0x23, 0xbc, 0xf0, 0x1f,
4163cfb9290SDarrick J. Wong 0xef, 0xaf, 0xe4, 0xd6, 0x04, 0x19, 0x82, 0x7a,
4173cfb9290SDarrick J. Wong 0x0b, 0xba, 0x4b, 0x46, 0xb1, 0x6a, 0x85, 0x5d,
4183cfb9290SDarrick J. Wong 0xb4, 0x73, 0xd6, 0x21, 0xa1, 0x71, 0x60, 0x14,
4193cfb9290SDarrick J. Wong 0xee, 0x0a, 0x77, 0xc4, 0x66, 0x2e, 0xf9, 0x69,
4203cfb9290SDarrick J. Wong 0x30, 0xaf, 0x41, 0x0b, 0xc8, 0x83, 0x3c, 0x53,
4213cfb9290SDarrick J. Wong 0x99, 0x19, 0x27, 0x46, 0xf7, 0x41, 0x6e, 0x56,
4223cfb9290SDarrick J. Wong 0xdc, 0x94, 0x28, 0x67, 0x4e, 0xb7, 0x25, 0x48,
4233cfb9290SDarrick J. Wong 0x8a, 0xc2, 0xe0, 0x60, 0x96, 0xcc, 0x18, 0xf4,
4243cfb9290SDarrick J. Wong 0x84, 0xdd, 0xa7, 0x5e, 0x3e, 0x05, 0x0b, 0x26,
4253cfb9290SDarrick J. Wong 0x26, 0xb2, 0x5c, 0x1f, 0x57, 0x1a, 0x04, 0x7e,
4263cfb9290SDarrick J. Wong 0x6a, 0xe3, 0x2f, 0xb4, 0x35, 0xb6, 0x38, 0x40,
4273cfb9290SDarrick J. Wong 0x40, 0xcd, 0x6f, 0x87, 0x2e, 0xef, 0xa3, 0xd7,
4283cfb9290SDarrick J. Wong 0xa9, 0xc2, 0xe8, 0x0d, 0x27, 0xdf, 0x44, 0x62,
4293cfb9290SDarrick J. Wong 0x99, 0xa0, 0xfc, 0xcf, 0x81, 0x78, 0xcb, 0xfe,
4303cfb9290SDarrick J. Wong 0xe5, 0xa0, 0x03, 0x4e, 0x6c, 0xd7, 0xf4, 0xaf,
4313cfb9290SDarrick J. Wong 0x7a, 0xbb, 0x61, 0x82, 0xfe, 0x71, 0x89, 0xb2,
4323cfb9290SDarrick J. Wong 0x22, 0x7c, 0x8e, 0x83, 0x04, 0xce, 0xf6, 0x5d,
4333cfb9290SDarrick J. Wong 0x84, 0x8f, 0x95, 0x6a, 0x7f, 0xad, 0xfd, 0x32,
4343cfb9290SDarrick J. Wong 0x9c, 0x5e, 0xe4, 0x9c, 0x89, 0x60, 0x54, 0xaa,
4353cfb9290SDarrick J. Wong 0x96, 0x72, 0xd2, 0xd7, 0x36, 0x85, 0xa9, 0x45,
4363cfb9290SDarrick J. Wong 0xd2, 0x2a, 0xa1, 0x81, 0x49, 0x6f, 0x7e, 0x04,
4373cfb9290SDarrick J. Wong 0xfa, 0xe2, 0xfe, 0x90, 0x26, 0x77, 0x5a, 0x33,
4383cfb9290SDarrick J. Wong 0xb8, 0x04, 0x9a, 0x7a, 0xe6, 0x4c, 0x4f, 0xad,
4393cfb9290SDarrick J. Wong 0x72, 0x96, 0x08, 0x28, 0x58, 0x13, 0xf8, 0xc4,
4403cfb9290SDarrick J. Wong 0x1c, 0xf0, 0xc3, 0x45, 0x95, 0x49, 0x20, 0x8c,
4413cfb9290SDarrick J. Wong 0x9f, 0x39, 0x70, 0xe1, 0x77, 0xfe, 0xd5, 0x4b,
4423cfb9290SDarrick J. Wong 0xaf, 0x86, 0xda, 0xef, 0x22, 0x06, 0x83, 0x36,
4433cfb9290SDarrick J. Wong 0x29, 0x12, 0x11, 0x40, 0xbc, 0x3b, 0x86, 0xaa,
4443cfb9290SDarrick J. Wong 0xaa, 0x65, 0x60, 0xc3, 0x80, 0xca, 0xed, 0xa9,
4453cfb9290SDarrick J. Wong 0xf3, 0xb0, 0x79, 0x96, 0xa2, 0x55, 0x27, 0x28,
4463cfb9290SDarrick J. Wong 0x55, 0x73, 0x26, 0xa5, 0x50, 0xea, 0x92, 0x4b,
4473cfb9290SDarrick J. Wong 0x3c, 0x5c, 0x82, 0x33, 0xf0, 0x01, 0x3f, 0x03,
4483cfb9290SDarrick J. Wong 0xc1, 0x08, 0x05, 0xbf, 0x98, 0xf4, 0x9b, 0x6d,
4493cfb9290SDarrick J. Wong 0xa5, 0xa8, 0xb4, 0x82, 0x0c, 0x06, 0xfa, 0xff,
4503cfb9290SDarrick J. Wong 0x2d, 0x08, 0xf3, 0x05, 0x4f, 0x57, 0x2a, 0x39,
4513cfb9290SDarrick J. Wong 0xd4, 0x83, 0x0d, 0x75, 0x51, 0xd8, 0x5b, 0x1b,
4523cfb9290SDarrick J. Wong 0xd3, 0x51, 0x5a, 0x32, 0x2a, 0x9b, 0x32, 0xb2,
4533cfb9290SDarrick J. Wong 0xf2, 0xa4, 0x96, 0x12, 0xf2, 0xae, 0x40, 0x34,
4543cfb9290SDarrick J. Wong 0x67, 0xa8, 0xf5, 0x44, 0xd5, 0x35, 0x53, 0xfe,
4553cfb9290SDarrick J. Wong 0xa3, 0x60, 0x96, 0x63, 0x0f, 0x1f, 0x6e, 0xb0,
4563cfb9290SDarrick J. Wong 0x5a, 0x42, 0xa6, 0xfc, 0x51, 0x0b, 0x60, 0x27,
4573cfb9290SDarrick J. Wong 0xbc, 0x06, 0x71, 0xed, 0x65, 0x5b, 0x23, 0x86,
4583cfb9290SDarrick J. Wong 0x4a, 0x07, 0x3b, 0x22, 0x07, 0x46, 0xe6, 0x90,
4593cfb9290SDarrick J. Wong 0x3e, 0xf3, 0x25, 0x50, 0x1b, 0x4c, 0x7f, 0x03,
4603cfb9290SDarrick J. Wong 0x08, 0xa8, 0x36, 0x6b, 0x87, 0xe5, 0xe3, 0xdb,
4613cfb9290SDarrick J. Wong 0x9a, 0x38, 0x83, 0xff, 0x9f, 0x1a, 0x9f, 0x57,
4623cfb9290SDarrick J. Wong 0xa4, 0x2a, 0xf6, 0x37, 0xbc, 0x1a, 0xff, 0xc9,
4633cfb9290SDarrick J. Wong 0x1e, 0x35, 0x0c, 0xc3, 0x7c, 0xa3, 0xb2, 0xe5,
4643cfb9290SDarrick J. Wong 0xd2, 0xc6, 0xb4, 0x57, 0x47, 0xe4, 0x32, 0x16,
4653cfb9290SDarrick J. Wong 0x6d, 0xa9, 0xae, 0x64, 0xe6, 0x2d, 0x8d, 0xc5,
4663cfb9290SDarrick J. Wong 0x8d, 0x50, 0x8e, 0xe8, 0x1a, 0x22, 0x34, 0x2a,
4673cfb9290SDarrick J. Wong 0xd9, 0xeb, 0x51, 0x90, 0x4a, 0xb1, 0x41, 0x7d,
4683cfb9290SDarrick J. Wong 0x64, 0xf9, 0xb9, 0x0d, 0xf6, 0x23, 0x33, 0xb0,
4693cfb9290SDarrick J. Wong 0x33, 0xf4, 0xf7, 0x3f, 0x27, 0x84, 0xc6, 0x0f,
4703cfb9290SDarrick J. Wong 0x54, 0xa5, 0xc0, 0x2e, 0xec, 0x0b, 0x3a, 0x48,
4713cfb9290SDarrick J. Wong 0x6e, 0x80, 0x35, 0x81, 0x43, 0x9b, 0x90, 0xb1,
4723cfb9290SDarrick J. Wong 0xd0, 0x2b, 0xea, 0x21, 0xdc, 0xda, 0x5b, 0x09,
4733cfb9290SDarrick J. Wong 0xf4, 0xcc, 0x10, 0xb4, 0xc7, 0xfe, 0x79, 0x51,
4743cfb9290SDarrick J. Wong 0xc3, 0xc5, 0xac, 0x88, 0x74, 0x84, 0x0b, 0x4b,
4753cfb9290SDarrick J. Wong 0xca, 0x79, 0x16, 0x29, 0xfb, 0x69, 0x54, 0xdf,
4763cfb9290SDarrick J. Wong 0x41, 0x7e, 0xe9, 0xc7, 0x8e, 0xea, 0xa5, 0xfe,
4773cfb9290SDarrick J. Wong 0xfc, 0x76, 0x0e, 0x90, 0xc4, 0x92, 0x38, 0xad,
4783cfb9290SDarrick J. Wong 0x7b, 0x48, 0xe6, 0x6e, 0xf7, 0x21, 0xfd, 0x4e,
4793cfb9290SDarrick J. Wong 0x93, 0x0a, 0x7b, 0x41, 0x83, 0x68, 0xfb, 0x57,
4803cfb9290SDarrick J. Wong 0x51, 0x76, 0x34, 0xa9, 0x6c, 0x00, 0xaa, 0x4f,
4813cfb9290SDarrick J. Wong 0x66, 0x65, 0x98, 0x4a, 0x4f, 0xa3, 0xa0, 0xef,
4823cfb9290SDarrick J. Wong 0x69, 0x3f, 0xe3, 0x1c, 0x92, 0x8c, 0xfd, 0xd8,
4833cfb9290SDarrick J. Wong 0xe8, 0xde, 0x7c, 0x7f, 0x3e, 0x84, 0x8e, 0x69,
4843cfb9290SDarrick J. Wong 0x3c, 0xf1, 0xf2, 0x05, 0x46, 0xdc, 0x2f, 0x9d,
4853cfb9290SDarrick J. Wong 0x5e, 0x6e, 0x4c, 0xfb, 0xb5, 0x99, 0x2a, 0x59,
4863cfb9290SDarrick J. Wong 0x63, 0xc1, 0x34, 0xbc, 0x57, 0xc0, 0x0d, 0xb9,
4873cfb9290SDarrick J. Wong 0x61, 0x25, 0xf3, 0x33, 0x23, 0x51, 0xb6, 0x0d,
4883cfb9290SDarrick J. Wong 0x07, 0xa6, 0xab, 0x94, 0x4a, 0xb7, 0x2a, 0xea,
4893cfb9290SDarrick J. Wong 0xee, 0xac, 0xa3, 0xc3, 0x04, 0x8b, 0x0e, 0x56,
4903cfb9290SDarrick J. Wong 0xfe, 0x44, 0xa7, 0x39, 0xe2, 0xed, 0xed, 0xb4,
4913cfb9290SDarrick J. Wong 0x22, 0x2b, 0xac, 0x12, 0x32, 0x28, 0x91, 0xd8,
4923cfb9290SDarrick J. Wong 0xa5, 0xab, 0xff, 0x5f, 0xe0, 0x4b, 0xda, 0x78,
4933cfb9290SDarrick J. Wong 0x17, 0xda, 0xf1, 0x01, 0x5b, 0xcd, 0xe2, 0x5f,
4943cfb9290SDarrick J. Wong 0x50, 0x45, 0x73, 0x2b, 0xe4, 0x76, 0x77, 0xf4,
4953cfb9290SDarrick J. Wong 0x64, 0x1d, 0x43, 0xfb, 0x84, 0x7a, 0xea, 0x91,
4963cfb9290SDarrick J. Wong 0xae, 0xf9, 0x9e, 0xb7, 0xb4, 0xb0, 0x91, 0x5f,
4973cfb9290SDarrick J. Wong 0x16, 0x35, 0x9a, 0x11, 0xb8, 0xc7, 0xc1, 0x8c,
4983cfb9290SDarrick J. Wong 0xc6, 0x10, 0x8d, 0x2f, 0x63, 0x4a, 0xa7, 0x57,
4993cfb9290SDarrick J. Wong 0x3a, 0x51, 0xd6, 0x32, 0x2d, 0x64, 0x72, 0xd4,
5003cfb9290SDarrick J. Wong 0x66, 0xdc, 0x10, 0xa6, 0x67, 0xd6, 0x04, 0x23,
5013cfb9290SDarrick J. Wong 0x9d, 0x0a, 0x11, 0x77, 0xdd, 0x37, 0x94, 0x17,
5023cfb9290SDarrick J. Wong 0x3c, 0xbf, 0x8b, 0x65, 0xb0, 0x2e, 0x5e, 0x66,
5033cfb9290SDarrick J. Wong 0x47, 0x64, 0xac, 0xdd, 0xf0, 0x84, 0xfd, 0x39,
5043cfb9290SDarrick J. Wong 0xfa, 0x15, 0x5d, 0xef, 0xae, 0xca, 0xc1, 0x36,
5053cfb9290SDarrick J. Wong 0xa7, 0x5c, 0xbf, 0xc7, 0x08, 0xc2, 0x66, 0x00,
5063cfb9290SDarrick J. Wong 0x74, 0x74, 0x4e, 0x27, 0x3f, 0x55, 0x8a, 0xb7,
5073cfb9290SDarrick J. Wong 0x38, 0x66, 0x83, 0x6d, 0xcf, 0x99, 0x9e, 0x60,
5083cfb9290SDarrick J. Wong 0x8f, 0xdd, 0x2e, 0x62, 0x22, 0x0e, 0xef, 0x0c,
5093cfb9290SDarrick J. Wong 0x98, 0xa7, 0x85, 0x74, 0x3b, 0x9d, 0xec, 0x9e,
5103cfb9290SDarrick J. Wong 0xa9, 0x19, 0x72, 0xa5, 0x7f, 0x2c, 0x39, 0xb7,
5113cfb9290SDarrick J. Wong 0x7d, 0xb7, 0xf1, 0x12, 0x65, 0x27, 0x4b, 0x5a,
5123cfb9290SDarrick J. Wong 0xde, 0x17, 0xfe, 0xad, 0x44, 0xf3, 0x20, 0x4d,
5133cfb9290SDarrick J. Wong 0xfd, 0xe4, 0x1f, 0xb5, 0x81, 0xb0, 0x36, 0x37,
5143cfb9290SDarrick J. Wong 0x08, 0x6f, 0xc3, 0x0c, 0xe9, 0x85, 0x98, 0x82,
5153cfb9290SDarrick J. Wong 0xa9, 0x62, 0x0c, 0xc4, 0x97, 0xc0, 0x50, 0xc8,
5163cfb9290SDarrick J. Wong 0xa7, 0x3c, 0x50, 0x9f, 0x43, 0xb9, 0xcd, 0x5e,
5173cfb9290SDarrick J. Wong 0x4d, 0xfa, 0x1c, 0x4b, 0x0b, 0xa9, 0x98, 0x85,
5183cfb9290SDarrick J. Wong 0x38, 0x92, 0xac, 0x8d, 0xe4, 0xad, 0x9b, 0x98,
5193cfb9290SDarrick J. Wong 0xab, 0xd9, 0x38, 0xac, 0x62, 0x52, 0xa3, 0x22,
5203cfb9290SDarrick J. Wong 0x63, 0x0f, 0xbf, 0x95, 0x48, 0xdf, 0x69, 0xe7,
5213cfb9290SDarrick J. Wong 0x8b, 0x33, 0xd5, 0xb2, 0xbd, 0x05, 0x49, 0x49,
5223cfb9290SDarrick J. Wong 0x9d, 0x57, 0x73, 0x19, 0x33, 0xae, 0xfa, 0x33,
5233cfb9290SDarrick J. Wong 0xf1, 0x19, 0xa8, 0x80, 0xce, 0x04, 0x9f, 0xbc,
5243cfb9290SDarrick J. Wong 0x1d, 0x65, 0x82, 0x1b, 0xe5, 0x3a, 0x51, 0xc8,
5253cfb9290SDarrick J. Wong 0x1c, 0x21, 0xe3, 0x5d, 0xf3, 0x7d, 0x9b, 0x2f,
5263cfb9290SDarrick J. Wong 0x2c, 0x1d, 0x4a, 0x7f, 0x9b, 0x68, 0x35, 0xa3,
5273cfb9290SDarrick J. Wong 0xb2, 0x50, 0xf7, 0x62, 0x79, 0xcd, 0xf4, 0x98,
5283cfb9290SDarrick J. Wong 0x4f, 0xe5, 0x63, 0x7c, 0x3e, 0x45, 0x31, 0x8c,
5293cfb9290SDarrick J. Wong 0x16, 0xa0, 0x12, 0xc8, 0x58, 0xce, 0x39, 0xa6,
5303cfb9290SDarrick J. Wong 0xbc, 0x54, 0xdb, 0xc5, 0xe0, 0xd5, 0xba, 0xbc,
5313cfb9290SDarrick J. Wong 0xb9, 0x04, 0xf4, 0x8d, 0xe8, 0x2f, 0x15, 0x9d,
5323cfb9290SDarrick J. Wong };
5333cfb9290SDarrick J. Wong
5343cfb9290SDarrick J. Wong /* 100 test cases */
5353cfb9290SDarrick J. Wong static struct dahash_test {
5363cfb9290SDarrick J. Wong uint16_t start; /* random 12 bit offset in buf */
5373cfb9290SDarrick J. Wong uint16_t length; /* random 8 bit length of test */
5383cfb9290SDarrick J. Wong xfs_dahash_t dahash; /* expected dahash result */
539*6db09a8dSDarrick J. Wong xfs_dahash_t ascii_ci_dahash; /* expected ascii-ci dahash result */
5403cfb9290SDarrick J. Wong } test[] __initdata =
5413cfb9290SDarrick J. Wong {
542*6db09a8dSDarrick J. Wong {0x0567, 0x0097, 0x96951389, 0xc153aa0d},
543*6db09a8dSDarrick J. Wong {0x0869, 0x0055, 0x6455ab4f, 0xd07f69bf},
544*6db09a8dSDarrick J. Wong {0x0c51, 0x00be, 0x8663afde, 0xf9add90c},
545*6db09a8dSDarrick J. Wong {0x044a, 0x00fc, 0x98fbe432, 0xbf2abb76},
546*6db09a8dSDarrick J. Wong {0x0f29, 0x0079, 0x42371997, 0x282588b3},
547*6db09a8dSDarrick J. Wong {0x08ba, 0x0052, 0x942be4f7, 0x2e023547},
548*6db09a8dSDarrick J. Wong {0x01f2, 0x0013, 0x5262687e, 0x5266287e},
549*6db09a8dSDarrick J. Wong {0x09e3, 0x00e2, 0x8ffb0908, 0x1da892f3},
550*6db09a8dSDarrick J. Wong {0x007c, 0x0051, 0xb3158491, 0xb67f9e63},
551*6db09a8dSDarrick J. Wong {0x0854, 0x001f, 0x83bb20d9, 0x22bb21db},
552*6db09a8dSDarrick J. Wong {0x031b, 0x0008, 0x98970bdf, 0x9cd70adf},
553*6db09a8dSDarrick J. Wong {0x0de7, 0x0027, 0xbfbf6f6c, 0xae3f296c},
554*6db09a8dSDarrick J. Wong {0x0f76, 0x0005, 0x906a7105, 0x906a7105},
555*6db09a8dSDarrick J. Wong {0x092e, 0x00d0, 0x86631850, 0xa3f6ac04},
556*6db09a8dSDarrick J. Wong {0x0233, 0x0082, 0xdbdd914e, 0x5d8c7aac},
557*6db09a8dSDarrick J. Wong {0x04c9, 0x0075, 0x5a400a9e, 0x12f60711},
558*6db09a8dSDarrick J. Wong {0x0b66, 0x0099, 0xae128b45, 0x7551310d},
559*6db09a8dSDarrick J. Wong {0x000d, 0x00ed, 0xe61c216a, 0xc22d3c4c},
560*6db09a8dSDarrick J. Wong {0x0a31, 0x003d, 0xf69663b9, 0x51960bf8},
561*6db09a8dSDarrick J. Wong {0x00a3, 0x0052, 0x643c39ae, 0xa93c73a8},
562*6db09a8dSDarrick J. Wong {0x0125, 0x00d5, 0x7c310b0d, 0xf221cbb3},
563*6db09a8dSDarrick J. Wong {0x0105, 0x004a, 0x06a77e74, 0xa4ef4561},
564*6db09a8dSDarrick J. Wong {0x0858, 0x008e, 0x265bc739, 0xd6c36d9b},
565*6db09a8dSDarrick J. Wong {0x045e, 0x0095, 0x13d6b192, 0x5f5c1d62},
566*6db09a8dSDarrick J. Wong {0x0dab, 0x003c, 0xc4498704, 0x10414654},
567*6db09a8dSDarrick J. Wong {0x00cd, 0x00b5, 0x802a4e2d, 0xfbd17c9d},
568*6db09a8dSDarrick J. Wong {0x069b, 0x008c, 0x5df60f71, 0x91ddca5f},
569*6db09a8dSDarrick J. Wong {0x0454, 0x006c, 0x5f03d8bb, 0x5c59fce0},
570*6db09a8dSDarrick J. Wong {0x040e, 0x0032, 0x0ce513b5, 0xa8cd99b1},
571*6db09a8dSDarrick J. Wong {0x0874, 0x00e2, 0x6a811fb3, 0xca028316},
572*6db09a8dSDarrick J. Wong {0x0521, 0x00b4, 0x93296833, 0x2c4d4880},
573*6db09a8dSDarrick J. Wong {0x0ddc, 0x00cf, 0xf9305338, 0x2c94210d},
574*6db09a8dSDarrick J. Wong {0x0a70, 0x0023, 0x239549ea, 0x22b561aa},
575*6db09a8dSDarrick J. Wong {0x083e, 0x0027, 0x2d88ba97, 0x5cd8bb9d},
576*6db09a8dSDarrick J. Wong {0x0241, 0x00a7, 0xfe0b32e1, 0x17b506b8},
577*6db09a8dSDarrick J. Wong {0x0dfc, 0x0096, 0x1a11e815, 0xee4141bd},
578*6db09a8dSDarrick J. Wong {0x023e, 0x001e, 0xebc9a1f3, 0x5689a1f3},
579*6db09a8dSDarrick J. Wong {0x067e, 0x0066, 0xb1067f81, 0xd9952571},
580*6db09a8dSDarrick J. Wong {0x09ea, 0x000e, 0x46fd7247, 0x42b57245},
581*6db09a8dSDarrick J. Wong {0x036b, 0x008c, 0x1a39acdf, 0x58bf1586},
582*6db09a8dSDarrick J. Wong {0x078f, 0x0030, 0x964042ab, 0xb04218b9},
583*6db09a8dSDarrick J. Wong {0x085c, 0x008f, 0x1829edab, 0x9ceca89c},
584*6db09a8dSDarrick J. Wong {0x02ec, 0x009f, 0x6aefa72d, 0x634cc2a7},
585*6db09a8dSDarrick J. Wong {0x043b, 0x00ce, 0x65642ff5, 0x6c8a584e},
586*6db09a8dSDarrick J. Wong {0x0a32, 0x00b8, 0xbd82759e, 0x0f96a34f},
587*6db09a8dSDarrick J. Wong {0x0d3c, 0x0087, 0xf4d66d54, 0xb71ba5f4},
588*6db09a8dSDarrick J. Wong {0x09ec, 0x008a, 0x06bfa1ff, 0x576ca80f},
589*6db09a8dSDarrick J. Wong {0x0902, 0x0015, 0x755025d2, 0x517225c2},
590*6db09a8dSDarrick J. Wong {0x08fe, 0x000e, 0xf690ce2d, 0xf690cf3d},
591*6db09a8dSDarrick J. Wong {0x00fb, 0x00dc, 0xe55f1528, 0x707d7d92},
592*6db09a8dSDarrick J. Wong {0x0eaa, 0x003a, 0x0fe0a8d7, 0x87638cc5},
593*6db09a8dSDarrick J. Wong {0x05fb, 0x0006, 0x86281cfb, 0x86281cf9},
594*6db09a8dSDarrick J. Wong {0x0dd1, 0x00a7, 0x60ab51b4, 0xe28ef00c},
595*6db09a8dSDarrick J. Wong {0x0005, 0x001b, 0xf51d969b, 0xe71dd6d3},
596*6db09a8dSDarrick J. Wong {0x077c, 0x00dd, 0xc2fed268, 0xdc30c555},
597*6db09a8dSDarrick J. Wong {0x0575, 0x00f5, 0x432c0b1a, 0x81dd7d16},
598*6db09a8dSDarrick J. Wong {0x05be, 0x0088, 0x78baa04b, 0xd69b433e},
599*6db09a8dSDarrick J. Wong {0x0c89, 0x0068, 0xeda9e428, 0xe9b4fa0a},
600*6db09a8dSDarrick J. Wong {0x0f5c, 0x0068, 0xec143c76, 0x9947067a},
601*6db09a8dSDarrick J. Wong {0x06a8, 0x0009, 0xd72651ce, 0xd72651ee},
602*6db09a8dSDarrick J. Wong {0x060f, 0x008e, 0x765426cd, 0x2099626f},
603*6db09a8dSDarrick J. Wong {0x07b1, 0x0047, 0x2cfcfa0c, 0x1a4baa07},
604*6db09a8dSDarrick J. Wong {0x04f1, 0x0041, 0x55b172f9, 0x15331a79},
605*6db09a8dSDarrick J. Wong {0x0e05, 0x00ac, 0x61efde93, 0x320568cc},
606*6db09a8dSDarrick J. Wong {0x0bf7, 0x0097, 0x05b83eee, 0xc72fb7a3},
607*6db09a8dSDarrick J. Wong {0x04e9, 0x00f3, 0x9928223a, 0xe8c77de2},
608*6db09a8dSDarrick J. Wong {0x023a, 0x0005, 0xdfada9bc, 0xdfadb9be},
609*6db09a8dSDarrick J. Wong {0x0acb, 0x000e, 0x2217cecd, 0x0017d6cd},
610*6db09a8dSDarrick J. Wong {0x0148, 0x0060, 0xbc3f7405, 0xf5fd6615},
611*6db09a8dSDarrick J. Wong {0x0764, 0x0059, 0xcbc201b1, 0xbb089bf4},
612*6db09a8dSDarrick J. Wong {0x021f, 0x0059, 0x5d6b2256, 0xa16a0a59},
613*6db09a8dSDarrick J. Wong {0x0f1e, 0x006c, 0xdefeeb45, 0xfc34f9d6},
614*6db09a8dSDarrick J. Wong {0x071c, 0x00b9, 0xb9b59309, 0xb645eae2},
615*6db09a8dSDarrick J. Wong {0x0564, 0x0063, 0xae064271, 0x954dc6d1},
616*6db09a8dSDarrick J. Wong {0x0b14, 0x0044, 0xdb867d9b, 0xdf432309},
617*6db09a8dSDarrick J. Wong {0x0e5a, 0x0055, 0xff06b685, 0xa65ff257},
618*6db09a8dSDarrick J. Wong {0x015e, 0x00ba, 0x1115ccbc, 0x11c365f4},
619*6db09a8dSDarrick J. Wong {0x0379, 0x00e6, 0x5f4e58dd, 0x2d176d31},
620*6db09a8dSDarrick J. Wong {0x013b, 0x0067, 0x4897427e, 0xc40532fe},
621*6db09a8dSDarrick J. Wong {0x0e64, 0x0071, 0x7af2b7a4, 0x1fb7bf43},
622*6db09a8dSDarrick J. Wong {0x0a11, 0x0050, 0x92105726, 0xb1185e51},
623*6db09a8dSDarrick J. Wong {0x0109, 0x0055, 0xd0d000f9, 0x60a60bfd},
624*6db09a8dSDarrick J. Wong {0x00aa, 0x0022, 0x815d229d, 0x215d379c},
625*6db09a8dSDarrick J. Wong {0x09ac, 0x004f, 0x02f9d985, 0x10b90b20},
626*6db09a8dSDarrick J. Wong {0x0e1b, 0x00ce, 0x5cf92ab4, 0x6a477573},
627*6db09a8dSDarrick J. Wong {0x08af, 0x00d8, 0x17ca72d1, 0x385af156},
628*6db09a8dSDarrick J. Wong {0x0e33, 0x000a, 0xda2dba6b, 0xda2dbb69},
629*6db09a8dSDarrick J. Wong {0x0ee3, 0x006a, 0xb00048e5, 0xa9a2decc},
630*6db09a8dSDarrick J. Wong {0x0648, 0x001a, 0x2364b8cb, 0x3364b1cb},
631*6db09a8dSDarrick J. Wong {0x0315, 0x0085, 0x0596fd0d, 0xa651740f},
632*6db09a8dSDarrick J. Wong {0x0fbb, 0x003e, 0x298230ca, 0x7fc617c7},
633*6db09a8dSDarrick J. Wong {0x0422, 0x006a, 0x78ada4ab, 0xc576ae2a},
634*6db09a8dSDarrick J. Wong {0x04ba, 0x0073, 0xced1fbc2, 0xaac8455b},
635*6db09a8dSDarrick J. Wong {0x007d, 0x0061, 0x4b7ff236, 0x347d5739},
636*6db09a8dSDarrick J. Wong {0x070b, 0x00d0, 0x261cf0ae, 0xc7fb1c10},
637*6db09a8dSDarrick J. Wong {0x0c1a, 0x0035, 0x8be92ee2, 0x8be9b4e1},
638*6db09a8dSDarrick J. Wong {0x0af8, 0x0063, 0x824dcf03, 0x53010388},
639*6db09a8dSDarrick J. Wong {0x08f8, 0x006d, 0xd289710c, 0x30418edd},
640*6db09a8dSDarrick J. Wong {0x021b, 0x00ee, 0x6ac1c41d, 0x2557e9a3},
641*6db09a8dSDarrick J. Wong {0x05b5, 0x00da, 0x8e52f0e2, 0x98531012},
6423cfb9290SDarrick J. Wong };
6433cfb9290SDarrick J. Wong
6443cfb9290SDarrick J. Wong int __init
xfs_dahash_test(void)6453cfb9290SDarrick J. Wong xfs_dahash_test(void)
6463cfb9290SDarrick J. Wong {
6473cfb9290SDarrick J. Wong unsigned int i;
6483cfb9290SDarrick J. Wong unsigned int errors = 0;
6493cfb9290SDarrick J. Wong
6503cfb9290SDarrick J. Wong for (i = 0; i < ARRAY_SIZE(test); i++) {
651*6db09a8dSDarrick J. Wong struct xfs_name xname = { };
6523cfb9290SDarrick J. Wong xfs_dahash_t hash;
6533cfb9290SDarrick J. Wong
6543cfb9290SDarrick J. Wong hash = xfs_da_hashname(test_buf + test[i].start,
6553cfb9290SDarrick J. Wong test[i].length);
6563cfb9290SDarrick J. Wong if (hash != test[i].dahash)
6573cfb9290SDarrick J. Wong errors++;
658*6db09a8dSDarrick J. Wong
659*6db09a8dSDarrick J. Wong xname.name = test_buf + test[i].start;
660*6db09a8dSDarrick J. Wong xname.len = test[i].length;
661*6db09a8dSDarrick J. Wong hash = xfs_ascii_ci_hashname(&xname);
662*6db09a8dSDarrick J. Wong if (hash != test[i].ascii_ci_dahash)
663*6db09a8dSDarrick J. Wong errors++;
6643cfb9290SDarrick J. Wong }
6653cfb9290SDarrick J. Wong
6663cfb9290SDarrick J. Wong if (errors) {
6673cfb9290SDarrick J. Wong printk(KERN_ERR "xfs dir/attr hash test failed %u times!",
6683cfb9290SDarrick J. Wong errors);
6693cfb9290SDarrick J. Wong return -ERANGE;
6703cfb9290SDarrick J. Wong }
6713cfb9290SDarrick J. Wong
6723cfb9290SDarrick J. Wong return 0;
6733cfb9290SDarrick J. Wong }
674