diff mbox series

[v2,1/3] lib/tst_rand_data: Add statically defined data pattern

Message ID 20221212135524.1333-1-rpalethorpe@suse.com
State Accepted
Headers show
Series [v2,1/3] lib/tst_rand_data: Add statically defined data pattern | expand

Commit Message

Richard Palethorpe Dec. 12, 2022, 1:55 p.m. UTC
Often we need to write some pattern to memory or a block device. There
are a number of requirements:

* It can be identified
* It can't be compressed in a degenerate way
* It can be reproduced

We could generate the data at runtime with a pseudo RNG and constant
seed. However the storage and bandwidth cost of statically defining
4KB of random data is negligible.

Signed-off-by: Richard Palethorpe <rpalethorpe@suse.com>
---

V2:
* Add static random data instead of reading /dev/urandom.
* Add alternate fill method

 include/tst_rand_data.h |  15 +++
 lib/tst_rand_data.c     | 211 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 226 insertions(+)
 create mode 100644 include/tst_rand_data.h
 create mode 100644 lib/tst_rand_data.c
diff mbox series

Patch

diff --git a/include/tst_rand_data.h b/include/tst_rand_data.h
new file mode 100644
index 000000000..ba747d0f4
--- /dev/null
+++ b/include/tst_rand_data.h
@@ -0,0 +1,15 @@ 
+/* SPDX-License-Identifier: GPL-2.0-or-later
+ * Copyright (c) Linux Test Project, 2022
+ */
+
+#ifndef TST_RAND_DATA_H__
+#define TST_RAND_DATA_H__
+
+#include <stddef.h>
+
+/* Includes null byte */
+extern const size_t tst_rand_data_len;
+/* statically defined random data */
+extern const char *const tst_rand_data;
+
+#endif
diff --git a/lib/tst_rand_data.c b/lib/tst_rand_data.c
new file mode 100644
index 000000000..2543f9660
--- /dev/null
+++ b/lib/tst_rand_data.c
@@ -0,0 +1,211 @@ 
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "tst_rand_data.h"
+
+const size_t tst_rand_data_len = 4096;
+const char *const tst_rand_data =
+"\xa5\xf8\xde\x82\x8a\x94\x8d\xa0\x02\x67\x79\x53\xf9\x77\x34\x69\x8d\xdb\xe6\xfc"
+"\xa2\xca\x15\xd0\x6d\x0c\xc2\x53\x88\xef\x2c\xd9\x9c\x03\x9c\xff\x3f\xff\x43\x87"
+"\x32\x33\x72\x4a\x8b\xc1\xb9\x32\xcc\x63\x3d\xe6\x60\xfb\x3b\x42\x41\xab\xde\x0e"
+"\xe5\x0a\xcd\x57\x09\xee\x53\x52\x6a\x98\x64\xae\xac\x53\x0a\x7c\x51\x12\xc4\xfe"
+"\x03\x34\xf9\x00\xcc\x04\x43\xe3\x9f\x72\x4f\xbc\xa1\x4e\x30\xa4\xac\xda\xdd\x11"
+"\x14\xf3\x3d\x9d\xaa\x35\x11\x66\x2c\x32\x67\xe4\xcb\xc3\xbe\x16\x61\xc3\x9d\xfe"
+"\xad\x88\x12\x9b\x75\x26\xdb\x55\x5d\x3e\xfd\x0e\xd0\x05\x69\x38\x08\x9f\xf3\xa2"
+"\x32\x15\x9c\xcb\x47\x30\x42\xff\x4d\x5c\x86\xda\xb7\x77\x4e\x77\x74\x28\xe1\xe6"
+"\xe2\xde\x4d\x27\xe7\x88\xbc\xc7\x57\x99\x79\x60\xd3\xd9\xb3\x0b\x15\x0d\xd4\xb8"
+"\xaa\x78\x7b\x17\x85\xf6\xa9\x7f\xdb\x17\x7c\x4b\xfc\x9d\xd3\xc2\x7b\xef\x1e\xb0"
+"\xbd\x31\xfe\x69\x3e\xdf\x94\x55\x03\xcf\xc9\x9f\xbf\x04\xdf\x9e\xfc\x78\xb1\xa1"
+"\xf6\x00\x94\xff\x1e\x71\x4e\xca\xd7\x92\xe1\xa4\x58\x42\x12\xc7\x25\x15\x2a\xd8"
+"\x27\x44\xcf\x71\xce\x72\x13\x41\x5a\x6d\x71\x55\x95\x16\xab\x54\x84\x2f\xfe\xc3"
+"\x0f\xc6\xef\x39\x8b\x66\xaf\x8f\x0f\x33\xd6\x1f\xe2\x47\x86\xdf\xac\x1b\x2e\x9c"
+"\xeb\x9a\x4d\x0a\x86\xb3\x5b\x08\x13\xdf\x47\x41\x6b\x71\x9e\x68\xc0\xbf\xdd\x51"
+"\x26\xa2\x61\x1e\xdc\x78\x32\x61\x86\xe4\xcf\x89\x41\x98\x56\xe1\x3f\xe3\x9c\x49"
+"\x56\x6a\xf1\x9c\x84\x22\x02\xaf\xdd\x9a\xa2\x98\x39\x2b\xea\x88\xd9\x42\x0e\x63"
+"\x80\xdb\x64\xfd\xdd\x34\xe4\x01\x48\xce\xee\xf3\x8e\xae\x81\xf0\x39\x74\x6e\xeb"
+"\xc7\x60\x58\x4e\xce\x31\x69\x36\xed\x4a\x52\xae\x5d\x6f\x27\xdf\x46\xa8\xdd\x5e"
+"\x0a\xdb\x4f\x06\xa4\x21\xc7\x9d\x96\x70\x7c\xfc\xcf\x55\x20\xff\x10\xac\x12\xd9"
+"\x22\x58\x18\x7c\x8e\x6c\x3b\x05\x8f\x69\xd3\x15\x6e\x64\x72\xc5\x2a\xef\x97\xd1"
+"\xa3\xf1\xc5\xf1\xb8\x66\x37\xc4\x4d\x69\xea\x4e\x53\xa8\x85\xc7\x5e\xf6\xf9\x55"
+"\x5f\xf9\x74\xcb\x39\x1b\xd1\x56\x88\x54\xd4\x29\xfa\xfc\xcf\x74\xd3\xcc\x5d\x4a"
+"\xb4\x3e\x78\xf5\xa4\x3a\x6d\x74\x6e\x46\x5f\xa3\x2e\xe1\xb9\x78\x35\xad\x67\x5b"
+"\xe4\x0c\xf6\x6e\xff\x24\x2c\x9a\x3a\xff\xb9\x43\x1b\x92\xe2\x66\xc0\x80\x1c\x13"
+"\x03\x97\xd1\x8e\xc0\x17\x24\x14\x71\x16\x35\x92\x5e\x27\x34\x6e\xc0\x07\xb5\xaf"
+"\xc9\xc6\xc0\x50\x28\xe7\xf1\xd2\x34\x1d\x8c\x66\x9a\xb5\xc9\x5c\xf7\xd7\x72\x0b"
+"\x20\x37\x5b\x22\xfa\xa2\xa0\x3c\xe4\x04\x05\x67\x76\x0b\x75\x10\xd6\x9c\xd2\x9b"
+"\x96\x6d\xec\x93\xb8\x26\x8b\xf7\x71\x84\x3e\xf5\x58\x26\x0f\x62\x17\x0c\xa0\x89"
+"\x56\x30\xba\xa5\x5d\xb6\x94\x85\x71\xbe\xb8\x71\x02\x5b\xe1\x4d\xf0\x25\x52\x3a"
+"\xd8\x36\xb9\xe0\x2f\x6b\x3b\x3d\x96\x56\x27\x75\x17\x44\x37\x42\xba\x86\x90\x4c"
+"\x1a\xf3\xcd\xc5\x81\x88\xc5\xa4\x3b\xac\x3e\xd3\x2d\xdf\xed\xab\xe3\x42\x03\xed"
+"\xbf\x11\x8d\x78\xc2\x83\x1a\xed\x97\xe9\x06\x61\x46\xb4\xc2\xa7\xf2\xcb\x96\xa4"
+"\xb4\xcb\x1f\x42\x93\x03\xd7\x26\x76\xba\x36\x74\x98\x59\x5a\x26\xe5\x19\xf9\xcd"
+"\xc2\x36\xb2\xbb\x77\x4c\x3b\x53\x7d\x98\xb5\x02\xde\x70\xa9\x7e\x07\xa2\x56\x7b"
+"\x43\x4d\xdb\x4d\xc4\x02\xfc\x5e\x82\xf8\xcc\x78\x09\x9f\x49\x52\x56\xbe\x3e\x26"
+"\x7a\x97\xef\x50\x6b\xe1\x4a\x3d\xb2\xe1\xac\xae\x3a\x4b\x8f\xf0\x4d\xd7\x7b\x7e"
+"\x77\x62\x36\xba\xfc\xad\xeb\x68\x2a\x92\xe1\x1c\xa6\xeb\x23\x97\x01\xa0\xc5\xb0"
+"\x3c\xd8\xd4\x7e\x08\xcd\x25\x67\xe6\xa5\xf6\x82\xb7\x31\x74\xf7\x4a\x3a\x86\x91"
+"\xe9\x8c\x31\x47\x2c\x77\x17\xfa\xc8\x98\xd2\xa9\xa8\x39\x12\x1a\x59\x6e\x2a\x86"
+"\x72\x71\x9d\x9d\x77\xd9\x27\xac\xb1\xa5\x8b\x41\xca\x4c\x9a\x0d\xac\xfc\xd8\xb9"
+"\x32\xcf\x77\xef\x8f\xf6\x49\xba\x8f\x16\x40\x5c\x51\x5d\xcd\x47\x76\x3f\x08\xdd"
+"\x51\x66\x17\xa7\xa6\xba\x6a\x54\xce\x55\x80\x73\xd5\xdf\x22\x98\x4e\xb5\x64\x3d"
+"\x71\xb6\xeb\x85\xe0\x93\xdc\xe9\x16\xa1\xfb\x77\xa5\xbc\x88\x62\x62\x9e\x9e\x24"
+"\xb2\x3b\xa2\x6b\x18\x7b\xbc\xaa\x2e\xb4\xc1\x3a\x26\x63\x9f\x40\x33\x49\xe1\x4d"
+"\x23\xae\x53\x87\xfb\xaa\x41\x52\xea\x9e\xdb\x36\xee\x35\x3d\xaa\xe5\x54\x8d\x1b"
+"\x0d\x87\xfd\xc2\x13\xf6\x0d\x7f\xe1\x73\x98\x8a\x9d\xe3\x4f\xec\xa0\xf1\xa6\x49"
+"\xa0\x0d\x98\xc9\xd2\x97\x0f\xb5\x84\x90\x26\xcb\x49\xc7\x44\x32\xa9\x13\xbd\x64"
+"\x98\xf0\x29\xeb\x8a\x4a\x36\x00\x8c\xed\x6b\x47\x68\x01\x65\xfc\x33\x9d\xd6\xc3"
+"\x57\xf2\x60\x0c\xaa\xf1\x22\x30\x94\x70\xcb\x77\xe8\xa5\x77\xf9\xa3\x7a\x49\x71"
+"\x60\x8b\x4e\xa3\xd3\x21\x6d\xc4\xdb\x45\x75\x54\xb2\x65\xdf\xc6\x42\xc2\x6b\xab"
+"\x4e\xc4\xef\x80\xe3\xaa\x79\x2c\x77\x5c\x6e\x7f\x1a\x52\xfc\x1c\x32\x6d\xff\x39"
+"\x91\xc5\x17\x57\x00\x19\xb9\xf2\x11\x69\xcb\x34\xa1\xdb\x4f\xc9\x8a\xee\x2d\xac"
+"\x4e\x99\xe2\x0f\xdc\x14\xc9\x1c\x02\x6a\xab\xf3\xa5\xdb\x65\x6e\xd6\xcd\x70\xa8"
+"\x48\xfc\x41\xb9\x86\x0c\x01\xfc\x5e\x5e\x98\xa0\x66\xf3\xbf\xcc\x0c\x76\xf0\x20"
+"\x6d\x97\xf0\x81\xd7\x7c\x64\x6d\xf9\x48\x62\x7c\x54\xfa\x06\x83\x63\x76\x07\x12"
+"\x67\x7f\x1f\x7e\x84\x8c\x2c\xe0\x8e\xcf\xe6\xa3\x7d\x26\xc0\x1f\x2e\x3a\xd2\x04"
+"\xbc\x17\x0f\x28\x79\xff\xa5\xf0\x52\x98\xa4\x3c\x02\x44\x3e\xcb\x4d\xe5\xb8\x60"
+"\x2b\x63\x16\x9c\xc2\x58\x41\xd1\xff\x01\x6b\xbe\x73\xd5\x1e\x01\x2e\x89\x58\x6a"
+"\x25\xf7\x33\xdc\x90\xe8\x05\x07\x54\x3e\x7c\xfe\x45\x27\x1b\xc0\x34\xbb\x1d\x3b"
+"\x59\x13\xe3\xb0\x4e\xc7\xc7\x32\xe5\x54\xe8\x74\xcc\x93\x36\x98\x91\x75\x32\x36"
+"\xda\x5b\x37\xe4\xa0\x91\x77\x16\xa5\xa9\x65\x72\x8b\x28\xe4\x3d\x44\xc2\x20\xa1"
+"\xce\x07\x00\x78\x0d\x0d\xf0\x87\x1b\x1b\x0b\xc2\xb4\x44\xb2\x7d\x36\xef\x01\x12"
+"\xd4\xdd\x02\x69\x70\x72\xe7\x9f\x0d\x63\xbc\x00\xe3\xbc\x04\xb3\xa1\xa2\xd0\x3a"
+"\x88\xd5\xb3\x14\x96\x78\xa4\x29\x31\x44\x0a\xf2\xdf\xe9\x33\x3d\x77\x5d\x63\x1b"
+"\x67\xc2\xa8\xc9\xe8\x27\x18\xed\xf6\xfd\x35\xf8\xff\x0f\x96\x8e\x27\x76\x4c\x4a"
+"\x63\x80\x01\xe8\x6a\x90\x14\x3d\x71\xf7\xa8\xf1\xfd\x46\x53\x75\x0c\xd6\x57\xff"
+"\x33\x43\x9e\xb9\xb2\x83\x1c\x8d\x91\x0e\x4c\xc2\x6d\x3c\xcc\xf9\xe9\xfd\xbe\xd4"
+"\x51\xb8\xe4\xc4\x43\xc9\xd7\x92\x71\x5c\xbc\x91\x7e\x0a\xd3\x6a\x83\xf0\xa9\x1b"
+"\x72\x6a\xd0\x4c\x92\xc5\x10\x86\xfe\x36\x59\x71\x28\x95\xaa\x8a\xdb\x6c\x8c\xdd"
+"\x9e\x3f\xf7\xa8\xfd\x14\xd0\x81\xd6\xf0\x37\x65\x72\x4e\x27\xee\x4a\x8b\xa5\xac"
+"\xe4\x4e\xd3\xe3\xd1\xf6\xfb\x45\x19\x26\xf2\x72\xd3\xe2\x5e\x8b\xe9\x1d\xcf\x47"
+"\x06\xe8\x02\x6b\xdf\xbe\xe3\x01\x74\x3d\xfe\xc9\x41\x04\x6c\xe6\x3c\x96\x59\x37"
+"\x82\xc7\x2a\x55\x8c\xf3\x93\x6e\xa8\x83\xed\xea\x32\x59\x26\xc8\xec\xd2\x76\x36"
+"\x39\xd7\x2c\x04\x88\x75\x32\x5a\xec\x62\x6a\x01\xa9\xb8\x9d\x0a\x30\x7e\xab\xe6"
+"\x7d\xfb\x54\x4c\x79\xe6\x2d\x89\xbd\x53\x48\xdb\x42\x1b\x76\x09\x40\x54\x6c\x28"
+"\x9c\x45\x09\x2e\xb1\xc9\x3a\x2e\x32\x0e\xcf\xe3\xbf\xf0\xa9\xf8\x7a\xe1\x02\xc2"
+"\xed\x7d\x46\xe8\xee\x22\xd9\x5b\x86\xa0\x53\x5b\x0f\xd8\x0f\x1b\x7e\x75\x07\xe6"
+"\xa4\x7d\xe2\x21\x0e\x09\x47\x85\x1c\xe5\x78\xd4\xad\x2d\xee\xac\xfd\x48\x7d\xd2"
+"\xab\xb0\xb7\x4e\xba\x4c\x80\x5d\xed\xd3\x5a\x9b\xde\x68\xb4\xd7\x72\xbc\xa3\x1f"
+"\xbf\xa2\x15\x1b\x13\x5c\x6c\xce\x53\xf4\xc9\x50\xf8\xa0\xde\xcf\x9e\xe3\x1c\xc7"
+"\x8e\x4c\xab\xe9\xfc\x3e\x23\xe9\x30\xb3\x32\x06\xd4\x28\xc7\xae\x3b\xdc\x0c\xf6"
+"\xdd\xc4\x56\xb6\xfd\x70\xb4\xc7\xff\xf1\xd9\x5b\x17\x7f\x0c\xa4\x85\x7d\x52\xcf"
+"\xbd\x4e\xb9\xd5\xd6\x55\xb5\x23\x1c\x20\x4a\x5b\xfc\x75\x89\x34\x5e\x13\x63\xae"
+"\x66\x7a\x65\x83\x35\x4f\xf6\x94\xa9\xc4\xab\xb7\x21\x66\x9d\x88\xb3\xe4\xe3\x18"
+"\xb6\xb2\x4a\x6a\x39\x53\x3b\xee\x39\x58\xe3\x28\x33\xab\xcc\x0a\x58\x2d\x12\xe3"
+"\x58\x26\x50\x36\x7d\xee\xb0\xe7\x36\x0f\x18\x88\x8d\x94\xc1\xe7\x68\xea\x34\x07"
+"\x90\x12\xc6\x16\x68\xd5\x93\x71\x4a\x52\xc6\x83\x8a\x36\x89\x50\x63\x93\x1f\xd5"
+"\x29\xaa\x27\x60\x2c\x0b\x96\x38\x91\x4a\x72\x5c\xb0\xd0\x2a\x25\xb8\x4d\x75\xa1"
+"\xfe\x6f\x01\x25\x74\x7d\xed\xd7\x55\x2f\x49\xff\x2a\x59\x50\xc2\xfc\xb9\xfd\x7e"
+"\x8f\x2b\x92\x6f\x94\xc9\x69\x26\x8f\x5f\xeb\x0c\x47\x59\x6a\xbb\x44\x8f\x24\x16"
+"\x94\xab\xb1\x57\x8b\x38\x37\xa1\x7c\x5c\x14\x47\x13\x39\x6e\x8d\x8f\x42\xd4\xb2"
+"\xb3\xbe\x42\xbb\x79\x7a\xd4\xdf\xda\x10\x59\xb8\xbd\x50\x1e\x91\x51\x12\xf0\x38"
+"\xd4\xed\xaf\xec\x83\x77\x88\xaa\xc6\xb5\xb6\x15\xa4\xf2\xcb\x30\x3a\xbe\x50\x68"
+"\x82\xc3\x81\x84\xc3\xfe\x0b\xbf\x10\x2b\x30\xcd\x08\xf1\x88\x0d\xbd\x16\xe0\x07"
+"\x0f\x28\x0e\xf7\x40\xd4\x6f\x5f\xcc\xfb\x6b\x60\x63\x7b\xbc\x75\xa0\xc6\xb3\x73"
+"\xd2\xb2\xd8\x07\x49\xda\x3b\xd9\xd6\x68\x17\xcc\xa0\xab\xd8\x3a\x5d\x08\xeb\x3e"
+"\xd6\x73\xac\x69\x78\x6e\x29\xff\x43\x72\x8c\x2c\x77\x01\x72\xd2\x70\x99\xc1\xbf"
+"\x48\x05\x0c\xa9\x2d\x79\x4a\x7f\xcc\x12\x4a\xfb\x96\x41\x3b\xf0\x55\xf6\x8a\xf5"
+"\xe2\x70\xf8\xf4\xcb\x1e\x80\x0a\x82\xc1\x7b\x90\x71\x78\xf6\xf0\x07\x78\xbd\x1a"
+"\xf0\x7a\x4b\x2e\x13\xd6\x69\x57\x08\x2a\x6f\x89\xf7\x5a\x60\xb7\xce\xbd\xba\x2d"
+"\xd6\x4f\xb9\xfb\x0a\xb2\xa4\x6d\x00\xb2\x77\x0c\xcd\xdc\xf4\x8d\x7d\xd8\x3b\xe8"
+"\x34\x7b\x0d\x50\x7e\xe9\xa3\x53\x6c\xd7\x7a\xc9\xc3\xf7\xa8\x26\x59\xf5\x32\x96"
+"\x31\x9d\xc8\x2a\x16\x7a\x38\x84\x3d\xf2\x2b\x27\x6a\x97\xf1\x72\x56\x39\xdd\x36"
+"\x26\x12\x80\x08\x91\x69\x44\x9d\xc1\xca\x8a\x1d\x67\x15\x01\x8a\x25\xde\xe6\xde"
+"\x81\x53\x3a\x3e\x69\xa0\x1c\x1a\x47\x5d\x61\x1d\x2c\x9e\x43\x97\x98\x9b\xe2\xf1"
+"\xa6\x4a\x4b\x50\x19\x01\xb6\xfc\x15\x53\x88\x1e\x18\x86\x5b\xf5\x4d\x3e\x5d\x07"
+"\x93\xcf\xb9\xa4\x7e\x7f\x82\xe6\xae\xb6\xb1\xb0\xe9\x07\xb1\x94\x92\x5c\x3e\x51"
+"\x8d\x51\x9d\xaa\xb7\xb3\xb7\x9d\x4d\x7d\x79\x34\x3b\xea\x88\xa6\x67\x12\xf6\xfe"
+"\xa2\xd3\x35\x1c\x81\xe8\x6e\xc2\xa3\x23\x95\x57\x87\x12\x4b\x3b\xc8\xd7\x2a\xfb"
+"\x64\xc8\xab\x23\xdd\x64\x80\xbf\x21\xca\x32\xf8\xf3\xdb\x23\x45\x6a\x52\x00\x11"
+"\xae\x84\x3c\xe0\x55\x0a\xd1\x78\xff\x16\x4f\x06\xc2\xa6\x16\x94\x45\xeb\xf7\x82"
+"\x1a\x1c\x81\x82\x4e\x60\x1f\xde\x7b\x6f\xfc\x3e\x03\xb3\x59\x46\x5a\x34\x8f\x92"
+"\x97\x48\x37\xcd\x64\xea\x0e\x22\x72\xf5\x2a\x38\x68\xc9\xd7\x3b\xb1\x66\xf1\xc8"
+"\x80\x53\xcd\xb3\xd9\x22\x5b\x9c\x3d\x71\xae\x9e\xe6\xca\x9f\x32\xc6\x38\x28\x6a"
+"\x02\xb4\x70\xf4\x01\xfa\x73\x35\x91\x9a\x7b\x88\xf3\x7f\x8f\xdc\xff\x40\x1e\xeb"
+"\x91\x0b\xfe\x18\xa3\xf9\x83\x55\xd2\x2b\x7c\x32\xc5\x58\xc6\xd9\xeb\xdc\x63\xee"
+"\xd5\x85\x67\x3e\x48\xc9\x77\x85\x6d\x6e\x68\xd9\x6b\xbe\x56\x8a\x2f\xa1\xfb\xac"
+"\xaf\x92\xc9\x9f\xcc\x74\x57\x5c\xce\x95\x24\x6a\x69\xf7\xf6\xe2\x5c\xdf\xe8\x51"
+"\x59\x7c\xeb\x5d\xdb\xee\x23\xcf\x06\xfd\x41\x61\x7c\x0c\x68\xfc\x0d\x3c\x31\xbc"
+"\x21\x47\x30\x8e\x40\xc7\xd5\xf7\x38\x59\xef\x04\xfd\x48\x93\xf6\xa1\x4d\x31\x41"
+"\x25\xf4\xe0\x14\xbe\xd4\xd9\xe5\x09\x0f\xd4\xd8\x14\x01\xe2\xf2\xe5\x63\x92\xea"
+"\x09\xdf\x04\x73\x0f\x1b\x2f\x53\xd4\xf7\xab\xc4\xce\x5c\x69\x08\x66\x51\x96\xc4"
+"\xeb\xe1\xc1\x1e\x2f\xe7\x66\xb9\x6b\x2f\x04\xe2\x91\x5d\xcf\x56\x6a\x92\x93\x82"
+"\xa4\x6f\x9c\xc4\xe2\x51\x5b\xfb\xba\xd9\x07\x56\x2f\xa8\xb8\x9c\x1d\x2c\x72\x8d"
+"\xd4\xcd\x81\x3a\x34\x04\x05\x4d\x1b\xdc\x4d\x06\xf8\x30\xb1\x53\x22\xd8\x5a\xc8"
+"\xf2\xbc\x28\x7f\x24\x25\x46\x4f\xfa\xb2\x2f\x14\x42\x9a\x5c\xe2\x54\xec\xed\x28"
+"\x68\xc1\x0c\xf5\xcc\x59\x81\x05\x33\x1d\xee\x91\xb2\x29\xf0\x6c\x36\x21\x65\xb1"
+"\x62\xf6\x05\x7e\xe2\x0f\xf4\x18\x88\x9f\x6b\xa9\xb7\x51\x7c\x30\xba\xb0\x12\xba"
+"\xa9\x08\xdb\x3c\x03\xaf\x64\xcf\x14\x7a\xe6\xb0\xdf\x05\x61\xf2\xd5\x66\xce\x6d"
+"\x5b\xcf\x4f\x34\xd0\xe9\xa4\xbb\x8e\xff\x12\xef\xf8\x46\x20\x85\xaa\x9a\xe0\xdf"
+"\x15\x58\xbb\x3f\xee\xf0\x94\x83\x34\x8f\xd6\x59\x24\xe2\xbc\x06\x36\x8b\x6b\xd1"
+"\x4b\x8b\xc6\x83\x48\x7d\xed\x7d\x89\x75\x89\x04\xf6\x04\xbf\xf6\x13\xad\xae\x32"
+"\x0c\x6a\xc0\xde\xe0\xfd\x82\xc8\x21\xa1\xdb\xef\x7a\x4f\x82\xfc\x2f\xe2\x52\xe7"
+"\x6c\xdd\x6f\xad\x76\x5f\x0c\xf3\x58\x7d\x22\x24\x43\xfa\x52\x90\xd2\x78\x3f\xdc"
+"\xc9\xf4\x1c\x3f\x1c\xab\x68\x26\x7e\x97\x72\x0f\xd1\x14\x8e\xbb\xc7\xfc\xe9\x11"
+"\x6b\xe2\x6b\xfd\x9c\xf0\x48\xcd\x35\xb6\xc2\x32\x78\xf1\xbc\x2d\x14\x2f\x43\xad"
+"\x15\xee\xfa\xf7\xf8\x2b\x11\xc9\x8a\x3b\x96\xcc\xd9\x2d\x33\x67\xa5\xe3\x09\xe6"
+"\xfe\x68\xd9\x44\x26\x71\xc8\x64\xd3\xf6\x43\x9e\xde\x53\xe9\x8b\x9f\x95\x10\x8e"
+"\x06\x16\x46\x2f\xb2\xaa\xfc\x30\x5f\xc9\xe3\x34\xaa\x42\xbe\x6b\x91\x51\x0e\x1d"
+"\x53\x1f\xa6\x4b\xe2\x4e\x2c\xd4\x3f\xd1\x4f\x63\x16\xae\x3c\x11\xf8\xbe\x06\xdf"
+"\x35\x3a\xe1\x17\x50\xe6\xca\xfa\x07\x6b\x0d\x93\x23\xce\xe0\xf4\x81\x82\x7d\x7b"
+"\xc2\x46\xab\x79\xd7\x43\xa4\x64\x3d\x41\xac\x9b\xd4\x6e\xf2\xaa\x4e\x15\x5b\x25"
+"\x48\xa5\xc5\xa2\x92\x3f\xa0\x57\xcc\xfe\xa6\x16\x22\xd0\x4a\x8e\x3f\x42\x73\x10"
+"\xe2\xc8\x6e\x32\xa1\xb3\x8d\xad\x10\x54\xc1\xf9\x1b\x7a\x42\x1b\xa6\xfb\x66\xf7"
+"\x61\x5d\xee\x3d\x74\xd2\x8e\xf4\xb5\x68\xd7\x67\x06\x1d\xf2\xaa\x7c\x39\x8a\xa6"
+"\x96\x64\x07\xec\x95\xb9\x94\x6c\x0d\xf5\x1d\x52\x46\x43\x2b\x9f\x08\x52\xa9\x3a"
+"\x1f\x84\x32\x4a\xbd\x95\xae\x8e\xd5\x49\x39\xba\xa6\x05\x01\x6b\x68\xcf\xa0\x63"
+"\x75\x86\xd6\x8a\xac\x45\xeb\x4b\xb6\x1f\xec\x38\xb7\xe7\x02\x44\x43\xdc\x3e\x22"
+"\x03\x46\x30\xb9\xf0\x95\xdc\xdf\x99\xf6\x32\x40\x7f\x3d\xc3\x7a\xf7\x5c\xa9\x9e"
+"\xe8\x4a\xf2\xab\x8f\x4b\xda\x06\xda\xcd\x5d\x4e\xfd\x4d\x6b\x71\x76\xe1\xe1\xdf"
+"\x00\xc1\x11\x87\x48\xbd\x45\x1f\x7b\x6e\xd6\xa0\x55\x2d\x39\x6a\x2d\x72\x27\xbd"
+"\x20\xd6\xb4\x24\x76\x89\x78\xf3\x74\xaa\x1d\x14\x73\x5d\x36\x59\xcb\xc3\x55\x37"
+"\x48\xc8\xb6\x94\xed\xbb\x37\x89\xec\x8c\x75\xb1\x1f\x08\x10\xec\x54\x88\x34\x91"
+"\x49\x00\xdd\xbe\xb5\x4b\xe6\xb5\xe9\x2b\x73\x67\x49\x86\xc6\x19\xa7\xb9\x3a\xb4"
+"\x33\x49\x48\xd1\xba\x97\xcb\xda\x04\x8a\x5a\x1e\xae\x4c\xe8\xfa\xfc\x9d\x57\xd9"
+"\x8f\xb7\x35\xf9\x47\x8a\x48\xbc\xb3\x9b\x42\x95\xa9\x6d\x01\xd5\x16\x38\xe0\x88"
+"\xc5\x17\xa1\x6c\xf5\x83\x0d\xc8\xa0\x8d\x20\xf4\xae\xb3\x42\x8b\x41\xc3\x2c\x65"
+"\x60\x92\x63\xb7\xaa\xd9\x73\xcb\xa8\xb1\x9d\x09\x14\x0d\xc9\x71\x5f\x67\x5a\x76"
+"\xf8\x2f\xef\x82\x40\xc4\x6a\xee\x87\x3a\x84\x3c\x09\xfe\xce\x35\x8d\x51\x8b\xfe"
+"\x1a\x7f\xe4\x48\xf9\x04\x81\xb5\x77\xb5\x3f\x13\x40\xd5\x5e\xb6\x95\xe4\x78\x93"
+"\x4e\xf6\xf4\x58\x48\xf7\xdb\xc6\x96\xbe\x38\x36\x05\x08\xe7\x08\x50\xbe\x48\xcc"
+"\xcc\x1b\x30\x4a\xef\x5c\x17\xb9\x62\x18\x40\xf6\x47\x11\x30\x2d\x4b\x9a\xf8\x05"
+"\x9d\x4b\xfe\x19\x32\xb1\x95\xe7\x29\xaf\x79\x06\x93\x19\x62\x91\x28\x1c\xe1\x10"
+"\x15\xde\xc8\x55\x4d\xb5\x4e\x0f\xdc\x9d\x15\x66\x1c\x96\x53\x7a\xce\x0b\x17\xf4"
+"\x9e\xa8\xd4\x93\xc4\x94\xe2\x61\xbb\xbc\x6f\x5b\x1e\x93\x53\x2d\xe9\xe6\x79\x75"
+"\x84\xd8\x17\x28\x17\x5e\x31\x3e\xe4\x82\x1c\x86\x07\x1a\x86\x08\x17\x02\x77\xe6"
+"\x50\xe2\x5b\xd4\xc9\x29\xe0\x80\x46\xa4\xdb\x8d\xa9\x3d\x9a\xd6\x25\x15\xa4\x1e"
+"\x9a\xa0\x58\xde\x5f\x6b\x9e\xaa\x05\xb1\x2d\x8e\xcf\xa3\x6a\x3e\xf6\xef\xc1\xf6"
+"\xe3\xaf\x0f\x41\x94\x0e\x87\x6c\xf1\x21\xab\x31\xaa\x67\x23\x7b\xb6\xd9\xd6\x6e"
+"\x35\x9f\x12\x05\x8e\xe4\xb7\xbd\x10\xe2\x3c\x4b\xc9\xe2\x77\x30\x49\x85\xb8\xa9"
+"\xf1\xba\x06\x5f\x91\x60\xfd\x1e\xf3\x69\x88\x1f\x00\x5c\x59\x0e\xf8\x32\x11\x16"
+"\xd8\x9a\xd8\xce\xdf\xd1\xcf\x34\xe8\x79\x1f\xbc\xa2\x30\x58\x3d\x1c\xf5\x9c\x30"
+"\x5e\xea\x36\x97\x35\xd6\x1b\x3d\x0c\x25\xbc\xe9\xc5\xfc\xec\xd4\x86\x04\x13\xb3"
+"\x1a\x0a\xd3\x0e\x16\xba\x0b\x36\x48\x99\x72\xe3\xe2\x01\xe5\xc0\x64\xce\x26\x72"
+"\xf3\xca\x30\x6b\x6e\xee\xb8\x2c\x76\xd0\x25\xb7\xca\x5d\x97\xfd\xc8\x99\xdf\x51"
+"\x5a\xd6\xb5\x0c\x86\xbc\x06\x26\x75\xd2\xff\x6f\x5c\x39\xe7\xe6\x9f\xdc\x87\x27"
+"\x07\x48\x5c\x1f\x16\x29\x5b\xe0\x02\x2e\x27\xe8\x33\xae\xc1\x68\x39\x2c\x14\x90"
+"\xed\x45\xa7\x33\xce\x6e\x17\x09\x74\x03\x9a\x3f\xd9\xa0\xe4\x9d\xbd\xb4\x7c\x7c"
+"\x2a\x55\xc4\xce\x03\x03\x7e\xfb\x23\x63\x31\x1c\xf6\x47\x01\x34\x9c\x91\x74\x8a"
+"\xe8\x78\x9c\xe3\x4a\x9e\x6e\x53\x63\x39\x7f\xbb\xb1\x09\xf6\x28\x05\x70\x2e\x46"
+"\x24\x98\xd0\xc1\x20\x64\x57\xef\xfd\xb1\x29\xc6\x31\x01\x41\x70\xc7\xf6\xa8\x72"
+"\xe6\xbe\xff\xc9\x19\x8d\xb6\xd6\xe0\x69\x40\xbc\x09\x14\x60\x88\x34\x8f\xba\x6c"
+"\x6d\x75\xa9\x6a\x5d\x2a\x54\x99\xfa\xe8\xa8\x2a\x1e\x96\xef\x4a\xe9\x8d\xd8\xcb"
+"\x34\x0a\xbd\x97\x90\x2a\xde\x50\x05\xdb\x78\x07\x39\x68\x20\xe8\x2d\x7a\x96\xa3"
+"\x5c\xec\xa9\x24\x68\xa5\xc6\xf6\xba\xd9\x14\xa0\x83\x8d\xa6\x1d\x79\x78\x39\x94"
+"\x62\x72\x38\xee\xc1\x76\xc1\xe0\xdc\xf4\x3c\xc6\x26\xfc\xac\xfb\x73\xc0\x17\x82"
+"\x1b\x4b\x4c\xb6\x95\x65\x05\x54\x30\xa0\xca\xb6\x70\xfb\x72\xe6\x11\x9a\x49\xa2"
+"\x92\xab\xda\x86\x25\x21\xa1\xce\x72\xf2\x51\xba\x82\x33\x42\x29\x8c\x83\x86\x6a"
+"\x27\x54\xfd\xe7\x65\x47\x93\x54\xb6\xe4\x6e\xd2\xe7\xe5\x76\xea\x0c\xb4\xbe\xed"
+"\x7d\xbe\x96\xe3\x81\xee\x69\x27\x50\x26\xf2\x5e\xf3\x5c\xcc\xf7\xca\xfd\x07\x92"
+"\x08\x04\xd9\xbd\x4b\xab\x85\x63\x4c\x55\x81\xac\x6e\xd5\x7d\x22\x61\xae\x36\x54"
+"\xb0\x81\xab\xca\x45\x39\x88\xd1\x28\xae\x19\xff\x08\x45\x3b\x7c\xc0\xb3\x62\xcd"
+"\x43\x17\xaf\x72\xe5\x49\x47\x79\x92\x81\x96\x75\x2f\x1a\x76\xc9\x88\x86\xd4\x2b"
+"\x06\x21\x0e\x02\x6a\x9f\xcb\x69\x7d\xe6\x5c\x89\xe6\x3e\x01\x89\x6a\x7e\x8e\x8d"
+"\x5a\x59\x43\x36\x9c\xe7\x6c\x26\xc1\x60\x23\xd0\x86\xfb\x42\xb2\x56\xd2\xd4\xd6"
+"\xc4\x8a\xb6\xc2\x7e\x45\x6c\xe5\x76\xda\x57\xd8\x8b\x76\x2b\xee\x88\x19\xd0\xff"
+"\xf3\xaa\x3f\x86\x70\x53\x28\x57\x44\xde\xce\x2f\x88\x60\xf8\xbc\xb2\xbc\xca\xd7"
+"\xc1\x65\xbd\x56\x6a\xa0\x63\x69\xcd\x26\xf7\x82\xe5\x43\x59\xb7\x5f\x52\xb1\xa5"
+"\x30\xd1\x0d\x07\xc9\xcc\x79\x63\x3f\x00\x97\x28\xdd\x66\xd5\x3f\xe7\x7a\xc9\xe8"
+"\xde\x53\x6a\xa6\x63\xb8\xf1\x91\xde\x53\xed\xe6\xb0\x56\xc9\x47\x14\xdb\x54\x1d"
+"\x3f\xea\x87\x60\x59\x2c\x6f\x9f\x91\x00\x9e\x9b\x79\x5e\x7c\x3f\x33\x83\xe8\x57"
+"\x8f\x8e\xe5\xa7\xc3\x26\x50\xf2\x76\xcd\xbc\x7d\x15\x42\x1f\x7a\x4c\x22\xce\x49"
+"\x5b\xb9\xc4\xe1\xb0\xfa\xfa\x9f\x4c\xd7\x99\x19\x6b\xc9\xde\x32\x05\x27\x19\x33"
+"\xf9\x47\x49\x2a\xf0\x29\x7d\x98\xb1\xf7\x81\x78\x36\x9a\x9b";