Skip to content

Instantly share code, notes, and snippets.

@xrivendell7
Last active March 7, 2024 07:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save xrivendell7/f63413f598c2c0a9afc9f053fca8fb1b to your computer and use it in GitHub Desktop.
Save xrivendell7/f63413f598c2c0a9afc9f053fca8fb1b to your computer and use it in GitHub Desktop.
general protection fault, probably for non-canonical address 0xdffffc0000000104: 0000 [#1] PREEMPT SMP KASAN
KASAN: null-ptr-deref in range [0x0000000000000820-0x0000000000000827]
CPU: 0 PID: 11048 Comm: syz-executor.0 Not tainted 6.8.0-rc1-00037-g443b349019f2-dirty #2
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.2-debian-1.16.2-1 04/01/2014
RIP: 0010:diIAGRead fs/jfs/jfs_imap.c:2662 [inline]
RIP: 0010:diRead+0x15f/0xb40 fs/jfs/jfs_imap.c:316
Code: d8 48 c1 e8 03 42 80 3c 38 00 74 08 48 89 df e8 77 d5 d1 fe 4c 89 6c 24 28 4c 8b 2b 49 8d 9d 20 08 00 00 48 89 d8 48 c1 e8 03 <42> 80 3c 38 00 74 08 48 89 df e8 52 d5 d1 fe 4c 8b 3b 49 8d 5f 28
RSP: 0018:ffffc90007387678 EFLAGS: 00010202
RAX: 0000000000000104 RBX: 0000000000000820 RCX: 0000000000000001
RDX: 0000000000000001 RSI: 0000000000000008 RDI: 0000000000000001
RBP: ffff888117a6a930 R08: ffff888117a6a5d7 R09: 1ffff11022f4d4ba
R10: dffffc0000000000 R11: ffffed1022f4d4bb R12: 0000000000000004
R13: 0000000000000000 R14: ffff888117a6a5c8 R15: dffffc0000000000
FS: 00007ff0e162d6c0(0000) GS:ffff888063800000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007ff0e160b7c0 CR3: 0000000019447000 CR4: 0000000000750ef0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
PKRU: 55555554
Call Trace:
<TASK>
jfs_iget+0x9b/0x3d0 fs/jfs/inode.c:35
jfs_lookup+0x231/0x420 fs/jfs/namei.c:1469
lookup_open fs/namei.c:3474 [inline]
open_last_lookups fs/namei.c:3565 [inline]
path_openat+0x103c/0x3320 fs/namei.c:3795
do_filp_open+0x23b/0x4a0 fs/namei.c:3825
do_sys_openat2+0x122/0x1b0 fs/open.c:1404
do_sys_open fs/open.c:1419 [inline]
__do_sys_open fs/open.c:1427 [inline]
__se_sys_open fs/open.c:1423 [inline]
__x64_sys_open+0x22a/0x270 fs/open.c:1423
do_syscall_x64 arch/x86/entry/common.c:52 [inline]
do_syscall_64+0xf5/0x230 arch/x86/entry/common.c:83
entry_SYSCALL_64_after_hwframe+0x63/0x6b
RIP: 0033:0x7ff0e087dde9
Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 e1 20 00 00 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b0 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ff0e162d0c8 EFLAGS: 00000246 ORIG_RAX: 0000000000000002
RAX: ffffffffffffffda RBX: 00007ff0e09ac120 RCX: 00007ff0e087dde9
RDX: 0000000000000000 RSI: 0000000000088043 RDI: 00000000200022c0
RBP: 00007ff0e08ca47a R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 000000000000000b R14: 00007ff0e09ac120 R15: 00007ffdd8434bc8
</TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:diIAGRead fs/jfs/jfs_imap.c:2662 [inline]
RIP: 0010:diRead+0x15f/0xb40 fs/jfs/jfs_imap.c:316
Code: d8 48 c1 e8 03 42 80 3c 38 00 74 08 48 89 df e8 77 d5 d1 fe 4c 89 6c 24 28 4c 8b 2b 49 8d 9d 20 08 00 00 48 89 d8 48 c1 e8 03 <42> 80 3c 38 00 74 08 48 89 df e8 52 d5 d1 fe 4c 8b 3b 49 8d 5f 28
RSP: 0018:ffffc90007387678 EFLAGS: 00010202
RAX: 0000000000000104 RBX: 0000000000000820 RCX: 0000000000000001
RDX: 0000000000000001 RSI: 0000000000000008 RDI: 0000000000000001
RBP: ffff888117a6a930 R08: ffff888117a6a5d7 R09: 1ffff11022f4d4ba
R10: dffffc0000000000 R11: ffffed1022f4d4bb R12: 0000000000000004
R13: 0000000000000000 R14: ffff888117a6a5c8 R15: dffffc0000000000
FS: 00007ff0e162d6c0(0000) GS:ffff888135c00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007ff0e164df38 CR3: 0000000019447000 CR4: 0000000000750ef0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
PKRU: 55555554
----------------
Code disassembly (best guess):
0: d8 48 c1 fmuls -0x3f(%rax)
3: e8 03 42 80 3c call 0x3c80420b
8: 38 00 cmp %al,(%rax)
a: 74 08 je 0x14
c: 48 89 df mov %rbx,%rdi
f: e8 77 d5 d1 fe call 0xfed1d58b
14: 4c 89 6c 24 28 mov %r13,0x28(%rsp)
19: 4c 8b 2b mov (%rbx),%r13
1c: 49 8d 9d 20 08 00 00 lea 0x820(%r13),%rbx
23: 48 89 d8 mov %rbx,%rax
26: 48 c1 e8 03 shr $0x3,%rax
* 2a: 42 80 3c 38 00 cmpb $0x0,(%rax,%r15,1) <-- trapping instruction
2f: 74 08 je 0x39
31: 48 89 df mov %rbx,%rdi
34: e8 52 d5 d1 fe call 0xfed1d58b
39: 4c 8b 3b mov (%rbx),%r15
3c: 49 8d 5f 28 lea 0x28(%r15),%rbx
TITLE: KASAN: out-of-bounds Read in diRead
CORRUPTED: false ()
MAINTAINERS (TO): [linux-kernel@vger.kernel.org]
MAINTAINERS (CC): [brauner@kernel.org eadavis@qq.com ghandatmanas@gmail.com jack@suse.cz jfs-discussion@lists.sourceforge.net jlayton@kernel.org shaggy@kernel.o]
==================================================================
BUG: KASAN: out-of-bounds in diRead+0x794/0xb20 fs/jfs/jfs_imap.c:329
Read of size 4 at addr ffff88802ea30010 by task ede/66331
CPU: 0 PID: 66331 Comm: ede Not tainted 6.8.0-rc7 #18
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.2-1.fc38 04/01/2014
Call Trace:
<TASK>
__dump_stack lib/dump_stack.c:88 [inline]
dump_stack_lvl+0x5c/0xb0 lib/dump_stack.c:106
print_address_description mm/kasan/report.c:377 [inline]
print_report+0xc4/0x620 mm/kasan/report.c:488
kasan_report+0xda/0x110 mm/kasan/report.c:601
diRead+0x794/0xb20 fs/jfs/jfs_imap.c:329
jfs_iget+0x5c/0x410 fs/jfs/inode.c:35
jfs_lookup+0x218/0x2b0 fs/jfs/namei.c:1469
lookup_open.isra.0+0x7ef/0x1280 fs/namei.c:3478
open_last_lookups fs/namei.c:3569 [inline]
path_openat+0x851/0x2740 fs/namei.c:3799
do_filp_open+0x1bc/0x400 fs/namei.c:3829
do_sys_openat2+0x12c/0x170 fs/open.c:1404
do_sys_open fs/open.c:1419 [inline]
__do_sys_open fs/open.c:1427 [inline]
__se_sys_open fs/open.c:1423 [inline]
__x64_sys_open+0x117/0x1a0 fs/open.c:1423
do_syscall_x64 arch/x86/entry/common.c:52 [inline]
do_syscall_64+0x78/0x1c0 arch/x86/entry/common.c:83
entry_SYSCALL_64_after_hwframe+0x63/0x6b
RIP: 0033:0x43d169
Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 61 1a 00 00 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 8
RSP: 002b:00007fd85b36a108 EFLAGS: 00000246 ORIG_RAX: 0000000000000002
RAX: ffffffffffffffda RBX: 00007fd85b36a6c0 RCX: 000000000043d169
RDX: 0000000000000000 RSI: 0000000000088043 RDI: 00000000200022c0
RBP: 00007fd85b36a160 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: ffffffffffffffb0
R13: 0000000000000006 R14: 00007fff29559820 R15: 00007fff29559908
</TASK>
The buggy address belongs to the physical page:
page:ffffea0000ba8c00 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x2ea30
head:ffffea0000ba8c00 order:3 entire_mapcount:0 nr_pages_mapped:0 pincount:0
flags: 0xfff00000000040(head|node=0|zone=1|lastcpupid=0x7ff)
page_type: 0xffffffff()
raw: 00fff00000000040 0000000000000000 dead000000000122 0000000000000000
raw: 0000000000000000 0000000000000000 00000001ffffffff 0000000000000000
page dumped because: kasan: bad access detected
page_owner tracks the page as allocated
page last allocated via order 3, migratetype Unmovable, gfp_mask 0x40cc0(GFP_KERNEL|__GFP_COMP), pid 66315, tgid 66311 (ede), ts 153307492
set_page_owner include/linux/page_owner.h:31 [inline]
post_alloc_hook+0x2cf/0x340 mm/page_alloc.c:1533
prep_new_page mm/page_alloc.c:1540 [inline]
get_page_from_freelist+0xa28/0x3770 mm/page_alloc.c:3311
__alloc_pages+0x1d0/0x4a0 mm/page_alloc.c:4567
__alloc_pages_node include/linux/gfp.h:238 [inline]
alloc_pages_node include/linux/gfp.h:261 [inline]
__kmalloc_large_node+0x7f/0x1a0 mm/slub.c:3926
kmalloc_large+0x1c/0xe0 mm/slub.c:3943
kmalloc include/linux/slab.h:587 [inline]
diMount+0x24/0x900 fs/jfs/jfs_imap.c:105
jfs_mount_rw+0x203/0x630 fs/jfs/jfs_mount.c:240
jfs_remount+0x440/0x5b0 fs/jfs/super.c:454
reconfigure_super+0x373/0x990 fs/super.c:1071
vfs_cmd_reconfigure fs/fsopen.c:267 [inline]
vfs_fsconfig_locked fs/fsopen.c:296 [inline]
__do_sys_fsconfig+0x739/0x8d0 fs/fsopen.c:476
do_syscall_x64 arch/x86/entry/common.c:52 [inline]
do_syscall_64+0x78/0x1c0 arch/x86/entry/common.c:83
entry_SYSCALL_64_after_hwframe+0x63/0x6b
page last free pid 66315 tgid 66311 stack trace:
reset_page_owner include/linux/page_owner.h:24 [inline]
free_pages_prepare mm/page_alloc.c:1140 [inline]
free_unref_page_prepare+0x51e/0xb10 mm/page_alloc.c:2346
free_unref_page+0x33/0x3c0 mm/page_alloc.c:2486
diUnmount+0xdc/0x150 fs/jfs/jfs_imap.c:195
jfs_mount_rw+0x1df/0x630 fs/jfs/jfs_mount.c:239
jfs_remount+0x440/0x5b0 fs/jfs/super.c:454
reconfigure_super+0x373/0x990 fs/super.c:1071
vfs_cmd_reconfigure fs/fsopen.c:267 [inline]
vfs_fsconfig_locked fs/fsopen.c:296 [inline]
__do_sys_fsconfig+0x739/0x8d0 fs/fsopen.c:476
do_syscall_x64 arch/x86/entry/common.c:52 [inline]
do_syscall_64+0x78/0x1c0 arch/x86/entry/common.c:83
entry_SYSCALL_64_after_hwframe+0x63/0x6b
Memory state around the buggy address:
ffff88802ea2ff00: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
ffff88802ea2ff80: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
>ffff88802ea30000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
ffff88802ea30080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ffff88802ea30100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
==================================================================
TITLE: kernel panic: KASAN: panic_on_warn set ...
CORRUPTED: false ()
MAINTAINERS (TO): [linux-kernel@vger.kernel.org]
MAINTAINERS (CC): [brauner@kernel.org eadavis@qq.com ghandatmanas@gmail.com jack@suse.cz jfs-discussion@lists.sourceforge.net jlayton@kernel.org shaggy@kernel.o]
entry_SYSCALL_64_after_hwframe+0x63/0x6b
RIP: 0033:0x43d169
Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 61 1a 00 00 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 8
RSP: 002b:00007fd85b36a108 EFLAGS: 00000246 ORIG_RAX: 0000000000000002
RAX: ffffffffffffffda RBX: 00007fd85b36a6c0 RCX: 000000000043d169
RDX: 0000000000000000 RSI: 0000000000088043 RDI: 00000000200022c0
RBP: 00007fd85b36a160 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: ffffffffffffffb0
R13: 0000000000000006 R14: 00007fff29559820 R15: 00007fff29559908
</TASK>
The buggy address belongs to the physical page:
page:ffffea0000ba8c00 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x2ea30
head:ffffea0000ba8c00 order:3 entire_mapcount:0 nr_pages_mapped:0 pincount:0
flags: 0xfff00000000040(head|node=0|zone=1|lastcpupid=0x7ff)
page_type: 0xffffffff()
raw: 00fff00000000040 0000000000000000 dead000000000122 0000000000000000
raw: 0000000000000000 0000000000000000 00000001ffffffff 0000000000000000
page dumped because: kasan: bad access detected
page_owner tracks the page as allocated
page last allocated via order 3, migratetype Unmovable, gfp_mask 0x40cc0(GFP_KERNEL|__GFP_COMP), pid 66315, tgid 66311 (ede), ts 153307492
set_page_owner include/linux/page_owner.h:31 [inline]
post_alloc_hook+0x2cf/0x340 mm/page_alloc.c:1533
prep_new_page mm/page_alloc.c:1540 [inline]
get_page_from_freelist+0xa28/0x3770 mm/page_alloc.c:3311
__alloc_pages+0x1d0/0x4a0 mm/page_alloc.c:4567
__alloc_pages_node include/linux/gfp.h:238 [inline]
alloc_pages_node include/linux/gfp.h:261 [inline]
__kmalloc_large_node+0x7f/0x1a0 mm/slub.c:3926
kmalloc_large+0x1c/0xe0 mm/slub.c:3943
kmalloc include/linux/slab.h:587 [inline]
diMount+0x24/0x900 fs/jfs/jfs_imap.c:105
jfs_mount_rw+0x203/0x630 fs/jfs/jfs_mount.c:240
jfs_remount+0x440/0x5b0 fs/jfs/super.c:454
reconfigure_super+0x373/0x990 fs/super.c:1071
vfs_cmd_reconfigure fs/fsopen.c:267 [inline]
vfs_fsconfig_locked fs/fsopen.c:296 [inline]
__do_sys_fsconfig+0x739/0x8d0 fs/fsopen.c:476
do_syscall_x64 arch/x86/entry/common.c:52 [inline]
do_syscall_64+0x78/0x1c0 arch/x86/entry/common.c:83
entry_SYSCALL_64_after_hwframe+0x63/0x6b
page last free pid 66315 tgid 66311 stack trace:
reset_page_owner include/linux/page_owner.h:24 [inline]
free_pages_prepare mm/page_alloc.c:1140 [inline]
free_unref_page_prepare+0x51e/0xb10 mm/page_alloc.c:2346
free_unref_page+0x33/0x3c0 mm/page_alloc.c:2486
diUnmount+0xdc/0x150 fs/jfs/jfs_imap.c:195
jfs_mount_rw+0x1df/0x630 fs/jfs/jfs_mount.c:239
jfs_remount+0x440/0x5b0 fs/jfs/super.c:454
reconfigure_super+0x373/0x990 fs/super.c:1071
vfs_cmd_reconfigure fs/fsopen.c:267 [inline]
vfs_fsconfig_locked fs/fsopen.c:296 [inline]
__do_sys_fsconfig+0x739/0x8d0 fs/fsopen.c:476
do_syscall_x64 arch/x86/entry/common.c:52 [inline]
do_syscall_64+0x78/0x1c0 arch/x86/entry/common.c:83
entry_SYSCALL_64_after_hwframe+0x63/0x6b
Memory state around the buggy address:
ffff88802ea2ff00: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
ffff88802ea2ff80: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
>ffff88802ea30000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
ffff88802ea30080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ffff88802ea30100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
==================================================================
Kernel panic - not syncing: KASAN: panic_on_warn set ...
CPU: 0 PID: 66331 Comm: ede Not tainted 6.8.0-rc7 #18
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.2-1.fc38 04/01/2014
Call Trace:
<TASK>
__dump_stack lib/dump_stack.c:88 [inline]
dump_stack_lvl+0x5c/0xb0 lib/dump_stack.c:106
panic+0x50c/0x5b0 kernel/panic.c:344
check_panic_on_warn+0x58/0x70 kernel/panic.c:237
end_report+0x108/0x150 mm/kasan/report.c:226
kasan_report+0xea/0x110 mm/kasan/report.c:603
diRead+0x794/0xb20 fs/jfs/jfs_imap.c:329
jfs_iget+0x5c/0x410 fs/jfs/inode.c:35
jfs_lookup+0x218/0x2b0 fs/jfs/namei.c:1469
lookup_open.isra.0+0x7ef/0x1280 fs/namei.c:3478
open_last_lookups fs/namei.c:3569 [inline]
path_openat+0x851/0x2740 fs/namei.c:3799
do_filp_open+0x1bc/0x400 fs/namei.c:3829
do_sys_openat2+0x12c/0x170 fs/open.c:1404
do_sys_open fs/open.c:1419 [inline]
__do_sys_open fs/open.c:1427 [inline]
__se_sys_open fs/open.c:1423 [inline]
__x64_sys_open+0x117/0x1a0 fs/open.c:1423
do_syscall_x64 arch/x86/entry/common.c:52 [inline]
do_syscall_64+0x78/0x1c0 arch/x86/entry/common.c:83
entry_SYSCALL_64_after_hwframe+0x63/0x6b
RIP: 0033:0x43d169
Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 61 1a 00 00 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 8
RSP: 002b:00007fd85b36a108 EFLAGS: 00000246 ORIG_RAX: 0000000000000002
RAX: ffffffffffffffda RBX: 00007fd85b36a6c0 RCX: 000000000043d169
RDX: 0000000000000000 RSI: 0000000000088043 RDI: 00000000200022c0
RBP: 00007fd85b36a160 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: ffffffffffffffb0
R13: 0000000000000006 R14: 00007fff29559820 R15: 00007fff29559908
</TASK>
Kernel Offset: disabled
Rebooting in 86400 seconds..
#define _GNU_SOURCE
#include <arpa/inet.h>
#include <dirent.h>
#include <endian.h>
#include <errno.h>
#include <fcntl.h>
#include <net/if.h>
#include <netinet/in.h>
#include <pthread.h>
#include <setjmp.h>
#include <signal.h>
#include <stdarg.h>
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
#include <sys/mount.h>
#include <sys/prctl.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/syscall.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <time.h>
#include <unistd.h>
#include <linux/futex.h>
#include <linux/genetlink.h>
#include <linux/if_addr.h>
#include <linux/if_link.h>
#include <linux/in6.h>
#include <linux/loop.h>
#include <linux/neighbour.h>
#include <linux/net.h>
#include <linux/netlink.h>
#include <linux/rtnetlink.h>
#include <linux/veth.h>
#ifndef __NR_fsconfig
#define __NR_fsconfig 431
#endif
#ifndef __NR_fspick
#define __NR_fspick 433
#endif
#ifndef __NR_memfd_create
#define __NR_memfd_create 319
#endif
static unsigned long long procid;
static __thread int clone_ongoing;
static __thread int skip_segv;
static __thread jmp_buf segv_env;
static void segv_handler(int sig, siginfo_t* info, void* ctx) {
if (__atomic_load_n(&clone_ongoing, __ATOMIC_RELAXED) != 0) {
exit(sig);
}
uintptr_t addr = (uintptr_t)info->si_addr;
const uintptr_t prog_start = 1 << 20;
const uintptr_t prog_end = 100 << 20;
int skip = __atomic_load_n(&skip_segv, __ATOMIC_RELAXED) != 0;
int valid = addr < prog_start || addr > prog_end;
if (skip && valid) {
_longjmp(segv_env, 1);
}
exit(sig);
}
static void install_segv_handler(void) {
struct sigaction sa;
memset(&sa, 0, sizeof(sa));
sa.sa_handler = SIG_IGN;
syscall(SYS_rt_sigaction, 0x20, &sa, NULL, 8);
syscall(SYS_rt_sigaction, 0x21, &sa, NULL, 8);
memset(&sa, 0, sizeof(sa));
sa.sa_sigaction = segv_handler;
sa.sa_flags = SA_NODEFER | SA_SIGINFO;
sigaction(SIGSEGV, &sa, NULL);
sigaction(SIGBUS, &sa, NULL);
}
#define NONFAILING(...) \
({ \
int ok = 1; \
__atomic_fetch_add(&skip_segv, 1, __ATOMIC_SEQ_CST); \
if (_setjmp(segv_env) == 0) { \
__VA_ARGS__; \
} else \
ok = 0; \
__atomic_fetch_sub(&skip_segv, 1, __ATOMIC_SEQ_CST); \
ok; \
})
static void sleep_ms(uint64_t ms) {
usleep(ms * 1000);
}
static uint64_t current_time_ms(void) {
struct timespec ts;
if (clock_gettime(CLOCK_MONOTONIC, &ts))
exit(1);
return (uint64_t)ts.tv_sec * 1000 + (uint64_t)ts.tv_nsec / 1000000;
}
static void use_temporary_dir(void) {
char tmpdir_template[] = "./syzkaller.XXXXXX";
char* tmpdir = mkdtemp(tmpdir_template);
if (!tmpdir)
exit(1);
if (chmod(tmpdir, 0777))
exit(1);
if (chdir(tmpdir))
exit(1);
}
static void thread_start(void* (*fn)(void*), void* arg) {
pthread_t th;
pthread_attr_t attr;
pthread_attr_init(&attr);
pthread_attr_setstacksize(&attr, 128 << 10);
int i = 0;
for (; i < 100; i++) {
if (pthread_create(&th, &attr, fn, arg) == 0) {
pthread_attr_destroy(&attr);
return;
}
if (errno == EAGAIN) {
usleep(50);
continue;
}
break;
}
exit(1);
}
typedef struct {
int state;
} event_t;
static void event_init(event_t* ev) {
ev->state = 0;
}
static void event_reset(event_t* ev) {
ev->state = 0;
}
static void event_set(event_t* ev) {
if (ev->state)
exit(1);
__atomic_store_n(&ev->state, 1, __ATOMIC_RELEASE);
syscall(SYS_futex, &ev->state, FUTEX_WAKE | FUTEX_PRIVATE_FLAG, 1000000);
}
static void event_wait(event_t* ev) {
while (!__atomic_load_n(&ev->state, __ATOMIC_ACQUIRE))
syscall(SYS_futex, &ev->state, FUTEX_WAIT | FUTEX_PRIVATE_FLAG, 0, 0);
}
static int event_isset(event_t* ev) {
return __atomic_load_n(&ev->state, __ATOMIC_ACQUIRE);
}
static int event_timedwait(event_t* ev, uint64_t timeout) {
uint64_t start = current_time_ms();
uint64_t now = start;
for (;;) {
uint64_t remain = timeout - (now - start);
struct timespec ts;
ts.tv_sec = remain / 1000;
ts.tv_nsec = (remain % 1000) * 1000 * 1000;
syscall(SYS_futex, &ev->state, FUTEX_WAIT | FUTEX_PRIVATE_FLAG, 0, &ts);
if (__atomic_load_n(&ev->state, __ATOMIC_ACQUIRE))
return 1;
now = current_time_ms();
if (now - start > timeout)
return 0;
}
}
static bool write_file(const char* file, const char* what, ...) {
char buf[1024];
va_list args;
va_start(args, what);
vsnprintf(buf, sizeof(buf), what, args);
va_end(args);
buf[sizeof(buf) - 1] = 0;
int len = strlen(buf);
int fd = open(file, O_WRONLY | O_CLOEXEC);
if (fd == -1)
return false;
if (write(fd, buf, len) != len) {
int err = errno;
close(fd);
errno = err;
return false;
}
close(fd);
return true;
}
struct nlmsg {
char* pos;
int nesting;
struct nlattr* nested[8];
char buf[4096];
};
static void netlink_init(struct nlmsg* nlmsg,
int typ,
int flags,
const void* data,
int size) {
memset(nlmsg, 0, sizeof(*nlmsg));
struct nlmsghdr* hdr = (struct nlmsghdr*)nlmsg->buf;
hdr->nlmsg_type = typ;
hdr->nlmsg_flags = NLM_F_REQUEST | NLM_F_ACK | flags;
memcpy(hdr + 1, data, size);
nlmsg->pos = (char*)(hdr + 1) + NLMSG_ALIGN(size);
}
static void netlink_attr(struct nlmsg* nlmsg,
int typ,
const void* data,
int size) {
struct nlattr* attr = (struct nlattr*)nlmsg->pos;
attr->nla_len = sizeof(*attr) + size;
attr->nla_type = typ;
if (size > 0)
memcpy(attr + 1, data, size);
nlmsg->pos += NLMSG_ALIGN(attr->nla_len);
}
static void netlink_nest(struct nlmsg* nlmsg, int typ) {
struct nlattr* attr = (struct nlattr*)nlmsg->pos;
attr->nla_type = typ;
nlmsg->pos += sizeof(*attr);
nlmsg->nested[nlmsg->nesting++] = attr;
}
static void netlink_done(struct nlmsg* nlmsg) {
struct nlattr* attr = nlmsg->nested[--nlmsg->nesting];
attr->nla_len = nlmsg->pos - (char*)attr;
}
static int netlink_send_ext(struct nlmsg* nlmsg,
int sock,
uint16_t reply_type,
int* reply_len,
bool dofail) {
if (nlmsg->pos > nlmsg->buf + sizeof(nlmsg->buf) || nlmsg->nesting)
exit(1);
struct nlmsghdr* hdr = (struct nlmsghdr*)nlmsg->buf;
hdr->nlmsg_len = nlmsg->pos - nlmsg->buf;
struct sockaddr_nl addr;
memset(&addr, 0, sizeof(addr));
addr.nl_family = AF_NETLINK;
ssize_t n = sendto(sock, nlmsg->buf, hdr->nlmsg_len, 0,
(struct sockaddr*)&addr, sizeof(addr));
if (n != (ssize_t)hdr->nlmsg_len) {
if (dofail)
exit(1);
return -1;
}
n = recv(sock, nlmsg->buf, sizeof(nlmsg->buf), 0);
if (reply_len)
*reply_len = 0;
if (n < 0) {
if (dofail)
exit(1);
return -1;
}
if (n < (ssize_t)sizeof(struct nlmsghdr)) {
errno = EINVAL;
if (dofail)
exit(1);
return -1;
}
if (hdr->nlmsg_type == NLMSG_DONE)
return 0;
if (reply_len && hdr->nlmsg_type == reply_type) {
*reply_len = n;
return 0;
}
if (n < (ssize_t)(sizeof(struct nlmsghdr) + sizeof(struct nlmsgerr))) {
errno = EINVAL;
if (dofail)
exit(1);
return -1;
}
if (hdr->nlmsg_type != NLMSG_ERROR) {
errno = EINVAL;
if (dofail)
exit(1);
return -1;
}
errno = -((struct nlmsgerr*)(hdr + 1))->error;
return -errno;
}
static int netlink_send(struct nlmsg* nlmsg, int sock) {
return netlink_send_ext(nlmsg, sock, 0, NULL, true);
}
static int netlink_query_family_id(struct nlmsg* nlmsg,
int sock,
const char* family_name,
bool dofail) {
struct genlmsghdr genlhdr;
memset(&genlhdr, 0, sizeof(genlhdr));
genlhdr.cmd = CTRL_CMD_GETFAMILY;
netlink_init(nlmsg, GENL_ID_CTRL, 0, &genlhdr, sizeof(genlhdr));
netlink_attr(nlmsg, CTRL_ATTR_FAMILY_NAME, family_name,
strnlen(family_name, GENL_NAMSIZ - 1) + 1);
int n = 0;
int err = netlink_send_ext(nlmsg, sock, GENL_ID_CTRL, &n, dofail);
if (err < 0) {
return -1;
}
uint16_t id = 0;
struct nlattr* attr = (struct nlattr*)(nlmsg->buf + NLMSG_HDRLEN +
NLMSG_ALIGN(sizeof(genlhdr)));
for (; (char*)attr < nlmsg->buf + n;
attr = (struct nlattr*)((char*)attr + NLMSG_ALIGN(attr->nla_len))) {
if (attr->nla_type == CTRL_ATTR_FAMILY_ID) {
id = *(uint16_t*)(attr + 1);
break;
}
}
if (!id) {
errno = EINVAL;
return -1;
}
recv(sock, nlmsg->buf, sizeof(nlmsg->buf), 0);
return id;
}
static void netlink_add_device_impl(struct nlmsg* nlmsg,
const char* type,
const char* name,
bool up) {
struct ifinfomsg hdr;
memset(&hdr, 0, sizeof(hdr));
if (up)
hdr.ifi_flags = hdr.ifi_change = IFF_UP;
netlink_init(nlmsg, RTM_NEWLINK, NLM_F_EXCL | NLM_F_CREATE, &hdr,
sizeof(hdr));
if (name)
netlink_attr(nlmsg, IFLA_IFNAME, name, strlen(name));
netlink_nest(nlmsg, IFLA_LINKINFO);
netlink_attr(nlmsg, IFLA_INFO_KIND, type, strlen(type));
}
static void netlink_device_change(struct nlmsg* nlmsg,
int sock,
const char* name,
bool up,
const char* master,
const void* mac,
int macsize,
const char* new_name) {
struct ifinfomsg hdr;
memset(&hdr, 0, sizeof(hdr));
if (up)
hdr.ifi_flags = hdr.ifi_change = IFF_UP;
hdr.ifi_index = if_nametoindex(name);
netlink_init(nlmsg, RTM_NEWLINK, 0, &hdr, sizeof(hdr));
if (new_name)
netlink_attr(nlmsg, IFLA_IFNAME, new_name, strlen(new_name));
if (master) {
int ifindex = if_nametoindex(master);
netlink_attr(nlmsg, IFLA_MASTER, &ifindex, sizeof(ifindex));
}
if (macsize)
netlink_attr(nlmsg, IFLA_ADDRESS, mac, macsize);
int err = netlink_send(nlmsg, sock);
if (err < 0) {
}
}
static struct nlmsg nlmsg;
//% This code is derived from puff.{c,h}, found in the zlib development. The
//% original files come with the following copyright notice:
//% Copyright (C) 2002-2013 Mark Adler, all rights reserved
//% version 2.3, 21 Jan 2013
//% This software is provided 'as-is', without any express or implied
//% warranty. In no event will the author be held liable for any damages
//% arising from the use of this software.
//% Permission is granted to anyone to use this software for any purpose,
//% including commercial applications, and to alter it and redistribute it
//% freely, subject to the following restrictions:
//% 1. The origin of this software must not be misrepresented; you must not
//% claim that you wrote the original software. If you use this software
//% in a product, an acknowledgment in the product documentation would be
//% appreciated but is not required.
//% 2. Altered source versions must be plainly marked as such, and must not be
//% misrepresented as being the original software.
//% 3. This notice may not be removed or altered from any source distribution.
//% Mark Adler madler@alumni.caltech.edu
//% BEGIN CODE DERIVED FROM puff.{c,h}
#define MAXBITS 15
#define MAXLCODES 286
#define MAXDCODES 30
#define MAXCODES (MAXLCODES + MAXDCODES)
#define FIXLCODES 288
struct puff_state {
unsigned char* out;
unsigned long outlen;
unsigned long outcnt;
const unsigned char* in;
unsigned long inlen;
unsigned long incnt;
int bitbuf;
int bitcnt;
jmp_buf env;
};
static int puff_bits(struct puff_state* s, int need) {
long val = s->bitbuf;
while (s->bitcnt < need) {
if (s->incnt == s->inlen)
longjmp(s->env, 1);
val |= (long)(s->in[s->incnt++]) << s->bitcnt;
s->bitcnt += 8;
}
s->bitbuf = (int)(val >> need);
s->bitcnt -= need;
return (int)(val & ((1L << need) - 1));
}
static int puff_stored(struct puff_state* s) {
s->bitbuf = 0;
s->bitcnt = 0;
if (s->incnt + 4 > s->inlen)
return 2;
unsigned len = s->in[s->incnt++];
len |= s->in[s->incnt++] << 8;
if (s->in[s->incnt++] != (~len & 0xff) ||
s->in[s->incnt++] != ((~len >> 8) & 0xff))
return -2;
if (s->incnt + len > s->inlen)
return 2;
if (s->outcnt + len > s->outlen)
return 1;
for (; len--; s->outcnt++, s->incnt++) {
if (s->in[s->incnt])
s->out[s->outcnt] = s->in[s->incnt];
}
return 0;
}
struct puff_huffman {
short* count;
short* symbol;
};
static int puff_decode(struct puff_state* s, const struct puff_huffman* h) {
int first = 0;
int index = 0;
int bitbuf = s->bitbuf;
int left = s->bitcnt;
int code = first = index = 0;
int len = 1;
short* next = h->count + 1;
while (1) {
while (left--) {
code |= bitbuf & 1;
bitbuf >>= 1;
int count = *next++;
if (code - count < first) {
s->bitbuf = bitbuf;
s->bitcnt = (s->bitcnt - len) & 7;
return h->symbol[index + (code - first)];
}
index += count;
first += count;
first <<= 1;
code <<= 1;
len++;
}
left = (MAXBITS + 1) - len;
if (left == 0)
break;
if (s->incnt == s->inlen)
longjmp(s->env, 1);
bitbuf = s->in[s->incnt++];
if (left > 8)
left = 8;
}
return -10;
}
static int puff_construct(struct puff_huffman* h, const short* length, int n) {
int len;
for (len = 0; len <= MAXBITS; len++)
h->count[len] = 0;
int symbol;
for (symbol = 0; symbol < n; symbol++)
(h->count[length[symbol]])++;
if (h->count[0] == n)
return 0;
int left = 1;
for (len = 1; len <= MAXBITS; len++) {
left <<= 1;
left -= h->count[len];
if (left < 0)
return left;
}
short offs[MAXBITS + 1];
offs[1] = 0;
for (len = 1; len < MAXBITS; len++)
offs[len + 1] = offs[len] + h->count[len];
for (symbol = 0; symbol < n; symbol++)
if (length[symbol] != 0)
h->symbol[offs[length[symbol]]++] = symbol;
return left;
}
static int puff_codes(struct puff_state* s,
const struct puff_huffman* lencode,
const struct puff_huffman* distcode) {
static const short lens[29] = {3, 4, 5, 6, 7, 8, 9, 10, 11, 13,
15, 17, 19, 23, 27, 31, 35, 43, 51, 59,
67, 83, 99, 115, 131, 163, 195, 227, 258};
static const short lext[29] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2,
2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0};
static const short dists[30] = {
1, 2, 3, 4, 5, 7, 9, 13, 17, 25,
33, 49, 65, 97, 129, 193, 257, 385, 513, 769,
1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577};
static const short dext[30] = {0, 0, 0, 0, 1, 1, 2, 2, 3, 3,
4, 4, 5, 5, 6, 6, 7, 7, 8, 8,
9, 9, 10, 10, 11, 11, 12, 12, 13, 13};
int symbol;
do {
symbol = puff_decode(s, lencode);
if (symbol < 0)
return symbol;
if (symbol < 256) {
if (s->outcnt == s->outlen)
return 1;
if (symbol)
s->out[s->outcnt] = symbol;
s->outcnt++;
} else if (symbol > 256) {
symbol -= 257;
if (symbol >= 29)
return -10;
int len = lens[symbol] + puff_bits(s, lext[symbol]);
symbol = puff_decode(s, distcode);
if (symbol < 0)
return symbol;
unsigned dist = dists[symbol] + puff_bits(s, dext[symbol]);
if (dist > s->outcnt)
return -11;
if (s->outcnt + len > s->outlen)
return 1;
while (len--) {
if (dist <= s->outcnt && s->out[s->outcnt - dist])
s->out[s->outcnt] = s->out[s->outcnt - dist];
s->outcnt++;
}
}
} while (symbol != 256);
return 0;
}
static int puff_fixed(struct puff_state* s) {
static int virgin = 1;
static short lencnt[MAXBITS + 1], lensym[FIXLCODES];
static short distcnt[MAXBITS + 1], distsym[MAXDCODES];
static struct puff_huffman lencode, distcode;
if (virgin) {
lencode.count = lencnt;
lencode.symbol = lensym;
distcode.count = distcnt;
distcode.symbol = distsym;
short lengths[FIXLCODES];
int symbol;
for (symbol = 0; symbol < 144; symbol++)
lengths[symbol] = 8;
for (; symbol < 256; symbol++)
lengths[symbol] = 9;
for (; symbol < 280; symbol++)
lengths[symbol] = 7;
for (; symbol < FIXLCODES; symbol++)
lengths[symbol] = 8;
puff_construct(&lencode, lengths, FIXLCODES);
for (symbol = 0; symbol < MAXDCODES; symbol++)
lengths[symbol] = 5;
puff_construct(&distcode, lengths, MAXDCODES);
virgin = 0;
}
return puff_codes(s, &lencode, &distcode);
}
static int puff_dynamic(struct puff_state* s) {
static const short order[19] = {16, 17, 18, 0, 8, 7, 9, 6, 10, 5,
11, 4, 12, 3, 13, 2, 14, 1, 15};
int nlen = puff_bits(s, 5) + 257;
int ndist = puff_bits(s, 5) + 1;
int ncode = puff_bits(s, 4) + 4;
if (nlen > MAXLCODES || ndist > MAXDCODES)
return -3;
short lengths[MAXCODES];
int index;
for (index = 0; index < ncode; index++)
lengths[order[index]] = puff_bits(s, 3);
for (; index < 19; index++)
lengths[order[index]] = 0;
short lencnt[MAXBITS + 1], lensym[MAXLCODES];
struct puff_huffman lencode = {lencnt, lensym};
int err = puff_construct(&lencode, lengths, 19);
if (err != 0)
return -4;
index = 0;
while (index < nlen + ndist) {
int symbol;
int len;
symbol = puff_decode(s, &lencode);
if (symbol < 0)
return symbol;
if (symbol < 16)
lengths[index++] = symbol;
else {
len = 0;
if (symbol == 16) {
if (index == 0)
return -5;
len = lengths[index - 1];
symbol = 3 + puff_bits(s, 2);
} else if (symbol == 17)
symbol = 3 + puff_bits(s, 3);
else
symbol = 11 + puff_bits(s, 7);
if (index + symbol > nlen + ndist)
return -6;
while (symbol--)
lengths[index++] = len;
}
}
if (lengths[256] == 0)
return -9;
err = puff_construct(&lencode, lengths, nlen);
if (err && (err < 0 || nlen != lencode.count[0] + lencode.count[1]))
return -7;
short distcnt[MAXBITS + 1], distsym[MAXDCODES];
struct puff_huffman distcode = {distcnt, distsym};
err = puff_construct(&distcode, lengths + nlen, ndist);
if (err && (err < 0 || ndist != distcode.count[0] + distcode.count[1]))
return -8;
return puff_codes(s, &lencode, &distcode);
}
static int puff(unsigned char* dest,
unsigned long* destlen,
const unsigned char* source,
unsigned long sourcelen) {
struct puff_state s = {
.out = dest,
.outlen = *destlen,
.outcnt = 0,
.in = source,
.inlen = sourcelen,
.incnt = 0,
.bitbuf = 0,
.bitcnt = 0,
};
int err;
if (setjmp(s.env) != 0)
err = 2;
else {
int last;
do {
last = puff_bits(&s, 1);
int type = puff_bits(&s, 2);
err = type == 0 ? puff_stored(&s)
: (type == 1 ? puff_fixed(&s)
: (type == 2 ? puff_dynamic(&s) : -1));
if (err != 0)
break;
} while (!last);
}
*destlen = s.outcnt;
return err;
}
//% END CODE DERIVED FROM puff.{c,h}
#define ZLIB_HEADER_WIDTH 2
static int puff_zlib_to_file(const unsigned char* source,
unsigned long sourcelen,
int dest_fd) {
if (sourcelen < ZLIB_HEADER_WIDTH)
return 0;
source += ZLIB_HEADER_WIDTH;
sourcelen -= ZLIB_HEADER_WIDTH;
const unsigned long max_destlen = 132 << 20;
void* ret = mmap(0, max_destlen, PROT_WRITE | PROT_READ,
MAP_PRIVATE | MAP_ANON, -1, 0);
if (ret == MAP_FAILED)
return -1;
unsigned char* dest = (unsigned char*)ret;
unsigned long destlen = max_destlen;
int err = puff(dest, &destlen, source, sourcelen);
if (err) {
munmap(dest, max_destlen);
errno = -err;
return -1;
}
if (write(dest_fd, dest, destlen) != (ssize_t)destlen) {
munmap(dest, max_destlen);
return -1;
}
return munmap(dest, max_destlen);
}
static int setup_loop_device(unsigned char* data,
unsigned long size,
const char* loopname,
int* loopfd_p) {
int err = 0, loopfd = -1;
int memfd = syscall(__NR_memfd_create, "syzkaller", 0);
if (memfd == -1) {
err = errno;
goto error;
}
if (puff_zlib_to_file(data, size, memfd)) {
err = errno;
goto error_close_memfd;
}
loopfd = open(loopname, O_RDWR);
if (loopfd == -1) {
err = errno;
goto error_close_memfd;
}
if (ioctl(loopfd, LOOP_SET_FD, memfd)) {
if (errno != EBUSY) {
err = errno;
goto error_close_loop;
}
ioctl(loopfd, LOOP_CLR_FD, 0);
usleep(1000);
if (ioctl(loopfd, LOOP_SET_FD, memfd)) {
err = errno;
goto error_close_loop;
}
}
close(memfd);
*loopfd_p = loopfd;
return 0;
error_close_loop:
close(loopfd);
error_close_memfd:
close(memfd);
error:
errno = err;
return -1;
}
static void reset_loop_device(const char* loopname) {
int loopfd = open(loopname, O_RDWR);
if (loopfd == -1) {
return;
}
if (ioctl(loopfd, LOOP_CLR_FD, 0)) {
}
close(loopfd);
}
static long syz_mount_image(volatile long fsarg,
volatile long dir,
volatile long flags,
volatile long optsarg,
volatile long change_dir,
volatile unsigned long size,
volatile long image) {
unsigned char* data = (unsigned char*)image;
int res = -1, err = 0, need_loop_device = !!size;
char* mount_opts = (char*)optsarg;
char* target = (char*)dir;
char* fs = (char*)fsarg;
char* source = NULL;
char loopname[64];
if (need_loop_device) {
int loopfd;
memset(loopname, 0, sizeof(loopname));
snprintf(loopname, sizeof(loopname), "/dev/loop%llu", procid);
if (setup_loop_device(data, size, loopname, &loopfd) == -1)
return -1;
close(loopfd);
source = loopname;
}
mkdir(target, 0777);
char opts[256];
memset(opts, 0, sizeof(opts));
if (strlen(mount_opts) > (sizeof(opts) - 32)) {
}
strncpy(opts, mount_opts, sizeof(opts) - 32);
if (strcmp(fs, "iso9660") == 0) {
flags |= MS_RDONLY;
} else if (strncmp(fs, "ext", 3) == 0) {
bool has_remount_ro = false;
char* remount_ro_start = strstr(opts, "errors=remount-ro");
if (remount_ro_start != NULL) {
char after = *(remount_ro_start + strlen("errors=remount-ro"));
char before = remount_ro_start == opts ? '\0' : *(remount_ro_start - 1);
has_remount_ro = ((before == '\0' || before == ',') &&
(after == '\0' || after == ','));
}
if (strstr(opts, "errors=panic") || !has_remount_ro)
strcat(opts, ",errors=continue");
} else if (strcmp(fs, "xfs") == 0) {
strcat(opts, ",nouuid");
}
res = mount(source, target, fs, flags, opts);
if (res == -1) {
err = errno;
goto error_clear_loop;
}
res = open(target, O_RDONLY | O_DIRECTORY);
if (res == -1) {
err = errno;
goto error_clear_loop;
}
if (change_dir) {
res = chdir(target);
if (res == -1) {
err = errno;
}
}
error_clear_loop:
if (need_loop_device)
reset_loop_device(loopname);
errno = err;
return res;
}
#define FS_IOC_SETFLAGS _IOW('f', 2, long)
static void remove_dir(const char* dir) {
int iter = 0;
DIR* dp = 0;
retry:
while (umount2(dir, MNT_DETACH | UMOUNT_NOFOLLOW) == 0) {
}
dp = opendir(dir);
if (dp == NULL) {
if (errno == EMFILE) {
exit(1);
}
exit(1);
}
struct dirent* ep = 0;
while ((ep = readdir(dp))) {
if (strcmp(ep->d_name, ".") == 0 || strcmp(ep->d_name, "..") == 0)
continue;
char filename[FILENAME_MAX];
snprintf(filename, sizeof(filename), "%s/%s", dir, ep->d_name);
while (umount2(filename, MNT_DETACH | UMOUNT_NOFOLLOW) == 0) {
}
struct stat st;
if (lstat(filename, &st))
exit(1);
if (S_ISDIR(st.st_mode)) {
remove_dir(filename);
continue;
}
int i;
for (i = 0;; i++) {
if (unlink(filename) == 0)
break;
if (errno == EPERM) {
int fd = open(filename, O_RDONLY);
if (fd != -1) {
long flags = 0;
if (ioctl(fd, FS_IOC_SETFLAGS, &flags) == 0) {
}
close(fd);
continue;
}
}
if (errno == EROFS) {
break;
}
if (errno != EBUSY || i > 100)
exit(1);
if (umount2(filename, MNT_DETACH | UMOUNT_NOFOLLOW))
exit(1);
}
}
closedir(dp);
for (int i = 0;; i++) {
if (rmdir(dir) == 0)
break;
if (i < 100) {
if (errno == EPERM) {
int fd = open(dir, O_RDONLY);
if (fd != -1) {
long flags = 0;
if (ioctl(fd, FS_IOC_SETFLAGS, &flags) == 0) {
}
close(fd);
continue;
}
}
if (errno == EROFS) {
break;
}
if (errno == EBUSY) {
if (umount2(dir, MNT_DETACH | UMOUNT_NOFOLLOW))
exit(1);
continue;
}
if (errno == ENOTEMPTY) {
if (iter < 100) {
iter++;
goto retry;
}
}
}
exit(1);
}
}
static void kill_and_wait(int pid, int* status) {
kill(-pid, SIGKILL);
kill(pid, SIGKILL);
for (int i = 0; i < 100; i++) {
if (waitpid(-1, status, WNOHANG | __WALL) == pid)
return;
usleep(1000);
}
DIR* dir = opendir("/sys/fs/fuse/connections");
if (dir) {
for (;;) {
struct dirent* ent = readdir(dir);
if (!ent)
break;
if (strcmp(ent->d_name, ".") == 0 || strcmp(ent->d_name, "..") == 0)
continue;
char abort[300];
snprintf(abort, sizeof(abort), "/sys/fs/fuse/connections/%s/abort",
ent->d_name);
int fd = open(abort, O_WRONLY);
if (fd == -1) {
continue;
}
if (write(fd, abort, 1) < 0) {
}
close(fd);
}
closedir(dir);
} else {
}
while (waitpid(-1, status, __WALL) != pid) {
}
}
static void reset_loop() {
char buf[64];
snprintf(buf, sizeof(buf), "/dev/loop%llu", procid);
int loopfd = open(buf, O_RDWR);
if (loopfd != -1) {
ioctl(loopfd, LOOP_CLR_FD, 0);
close(loopfd);
}
}
static void setup_test() {
prctl(PR_SET_PDEATHSIG, SIGKILL, 0, 0, 0);
setpgrp();
write_file("/proc/self/oom_score_adj", "1000");
if (symlink("/dev/binderfs", "./binderfs")) {
}
}
#define NL802154_CMD_SET_SHORT_ADDR 11
#define NL802154_ATTR_IFINDEX 3
#define NL802154_ATTR_SHORT_ADDR 10
static void setup_802154() {
int sock_route = socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
if (sock_route == -1)
exit(1);
int sock_generic = socket(AF_NETLINK, SOCK_RAW, NETLINK_GENERIC);
if (sock_generic < 0)
exit(1);
int nl802154_family_id =
netlink_query_family_id(&nlmsg, sock_generic, "nl802154", true);
for (int i = 0; i < 2; i++) {
char devname[] = "wpan0";
devname[strlen(devname) - 1] += i;
uint64_t hwaddr = 0xaaaaaaaaaaaa0002 + (i << 8);
uint16_t shortaddr = 0xaaa0 + i;
int ifindex = if_nametoindex(devname);
struct genlmsghdr genlhdr;
memset(&genlhdr, 0, sizeof(genlhdr));
genlhdr.cmd = NL802154_CMD_SET_SHORT_ADDR;
netlink_init(&nlmsg, nl802154_family_id, 0, &genlhdr, sizeof(genlhdr));
netlink_attr(&nlmsg, NL802154_ATTR_IFINDEX, &ifindex, sizeof(ifindex));
netlink_attr(&nlmsg, NL802154_ATTR_SHORT_ADDR, &shortaddr,
sizeof(shortaddr));
int err = netlink_send(&nlmsg, sock_generic);
if (err < 0) {
}
netlink_device_change(&nlmsg, sock_route, devname, true, 0, &hwaddr,
sizeof(hwaddr), 0);
if (i == 0) {
netlink_add_device_impl(&nlmsg, "lowpan", "lowpan0", false);
netlink_done(&nlmsg);
netlink_attr(&nlmsg, IFLA_LINK, &ifindex, sizeof(ifindex));
int err = netlink_send(&nlmsg, sock_route);
if (err < 0) {
}
}
}
close(sock_route);
close(sock_generic);
}
struct thread_t {
int created, call;
event_t ready, done;
};
static struct thread_t threads[16];
static void execute_call(int call);
static int running;
static void* thr(void* arg) {
struct thread_t* th = (struct thread_t*)arg;
for (;;) {
event_wait(&th->ready);
event_reset(&th->ready);
execute_call(th->call);
__atomic_fetch_sub(&running, 1, __ATOMIC_RELAXED);
event_set(&th->done);
}
return 0;
}
static void execute_one(void) {
int i, call, thread;
for (call = 0; call < 12; call++) {
for (thread = 0; thread < (int)(sizeof(threads) / sizeof(threads[0]));
thread++) {
struct thread_t* th = &threads[thread];
if (!th->created) {
th->created = 1;
event_init(&th->ready);
event_init(&th->done);
event_set(&th->done);
thread_start(thr, th);
}
if (!event_isset(&th->done))
continue;
event_reset(&th->done);
th->call = call;
__atomic_fetch_add(&running, 1, __ATOMIC_RELAXED);
event_set(&th->ready);
if (call == 2 || call == 7 || call == 8)
break;
event_timedwait(&th->done, 50 + (call == 0 ? 4000 : 0));
break;
}
}
for (i = 0; i < 100 && __atomic_load_n(&running, __ATOMIC_RELAXED); i++)
sleep_ms(1);
}
static void execute_one(void);
#define WAIT_FLAGS __WALL
static void loop(void) {
int iter = 0;
for (;; iter++) {
char cwdbuf[32];
sprintf(cwdbuf, "./%d", iter);
if (mkdir(cwdbuf, 0777))
exit(1);
reset_loop();
int pid = fork();
if (pid < 0)
exit(1);
if (pid == 0) {
if (chdir(cwdbuf))
exit(1);
setup_test();
execute_one();
exit(0);
}
int status = 0;
uint64_t start = current_time_ms();
for (;;) {
if (waitpid(-1, &status, WNOHANG | WAIT_FLAGS) == pid)
break;
sleep_ms(1);
if (current_time_ms() - start < 5000)
continue;
kill_and_wait(pid, &status);
break;
}
remove_dir(cwdbuf);
}
}
uint64_t r[2] = {0xffffffffffffffff, 0xffffffffffffffff};
void execute_call(int call) {
intptr_t res = 0;
switch (call) {
case 0:
NONFAILING(memcpy((void*)0x20005d40, "jfs\000", 4));
NONFAILING(memcpy((void*)0x20005d80, "./file0\000", 8));
NONFAILING(memcpy(
(void*)0x200001c0,
"\x00\xb9\xea\xe7\x03\x19\x7b\xde\x2c\x85\x74\xfc\x40\xb9\x1b\x27\x17"
"\xb1\x5f\xe0\x58\x09\x34\x06\x25\xf2\xc2\x22\x74\x21\x59\x76\xeb\x88"
"\xff\x37\x12\x7f\x64\xaf\x21\x88\x0f\xe8\x32\x18\x4f\xb1\xaa\xb0\xde"
"\xb8\xa5\xfc\xef\xde\x16\x02\x07\x76\xa8\x0f\xa6\xa7\x72\x82\x94\x66"
"\x70\xaf\x1d\x5d\xf5\x2f\x5d\x9b\x99\xd7\x84\x6a\x5b\xdf\x29\x34\x5c"
"\x5e\x78\x13\x75\xd6\x2b\x06\x89\xec\xa1\x7c\xa6\x2c\x25\x54\xee\xb5"
"\x17\x94\x04\xc6\xc7\x05\x91\x82\x8b\x22\xcb\x4a\x7f\x3e\x76\xfc\xd5"
"\x58\x08\x27\x06\xfa\x24\xf9\xf0\x5a\xa0\x6b\x0c\x81\x8e\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
147));
NONFAILING(memcpy(
(void*)0x20005e00,
"\x78\x9c\xec\xdd\xdb\x6f\x1c\x57\x1d\x07\xf0\xdf\x5e\xbc\xbe\x94\xa6"
"\x56\x1f\xaa\x10\x71\x49\x53\x2e\x2d\xa5\x49\xe3\xa4\x4d\xcb\xad\xa9"
"\x90\x78\x00\x01\x95\xaa\xbc\x27\x32\x6e\x15\x91\x02\x4a\x42\x45\x2b"
"\x8b\xb8\x8a\xc4\x3b\x12\xcf\xa8\xfc\x11\x3c\x83\x50\x1f\x8b\xc4\x9f"
"\xc0\x3f\x10\x29\xee\x53\x05\xa2\x83\xc6\x3e\x27\x19\x4f\xd6\xde\xa4"
"\x89\x77\xd6\x3e\x9f\x8f\xe4\xcc\xfc\xe6\xec\x78\xcf\xe4\xeb\xf1\xec"
"\x7a\x66\xf6\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x10\x3f\xfe\xd1\x9b\xa7\x7b\x11\x71\xf1\xdd\xb4\x60\x39\xe2\x0b"
"\x31\x88\xe8\x47\x2c\xd6\xf5\xf1\xa8\x67\xce\xe7\xc7\x0f\x23\xe2\x68"
"\x6c\x35\xc7\x53\x11\x71\x64\x3e\xa2\x5e\x7f\xeb\x9f\x27\x22\xce\x46"
"\xc4\xc7\x47\x22\x6e\x6f\xae\xaf\xd6\x8b\x57\xee\xb3\x1f\x2f\xbd\x71"
"\xeb\x9f\x3f\x7d\xf3\x67\x1b\x7f\xfc\xea\x3f\xfe\xf5\xdf\x8f\xfe\xfc"
"\xb7\x76\xfb\x1b\x1f\xfd\xf0\x27\x7f\xbd\x11\xb1\x7c\xf4\x0f\x7f\xfa"
"\xdf\x8d\x47\xb3\xed\x00\x00\x00\x50\x8a\xaa\xaa\xaa\x5e\x7a\x9b\x7f"
"\x2c\xbd\xbf\xef\x77\xdd\x29\x00\x60\x2a\xf2\xf1\xbf\x4a\xf2\x72\xb5"
"\x5a\xad\x56\xab\xd5\x87\xaf\x6e\xaa\xc6\xbb\xd1\x2c\x22\x62\xa3\xb9"
"\x4e\xfd\x9a\xc1\xe9\x78\x00\x38\x60\x36\xe2\xd3\xae\xbb\x40\x87\xe4"
"\x5f\xb4\x61\x44\x3c\xd6\x75\x27\x80\x99\xd6\xeb\xba\x03\xec\x8b\xdb"
"\x9b\xeb\xab\xbd\x94\x6f\xaf\x79\x3c\x38\xbe\xdd\x9e\xaf\x05\xd9\x91"
"\xff\x46\xef\xce\xfd\x1d\xbb\x4d\x27\x69\x5f\x63\x32\xad\x9f\xaf\x9b"
"\x31\x88\x27\x77\xe9\xcf\xe2\x94\xfa\x30\x4b\x72\xfe\xfd\x76\xfe\x17"
"\xb7\xdb\x47\xe9\x71\xfb\x9d\xff\xb4\xec\x96\xff\x68\xfb\xd6\xa7\xe2"
"\xe4\xfc\x07\xed\xfc\x5b\x0e\x4f\xfe\xfd\xb1\xf9\x97\x2a\xe7\x3f\x7c"
"\xa0\xfc\x07\xf2\x07\x00\x00\x00\x00\x80\x19\x96\xff\xfe\xbf\xdc\xf1"
"\xf9\xdf\xf9\x87\xdf\x94\xfb\xb2\xd7\xf9\xdf\xe3\x53\xea\x03\x00\x00"
"\x00\x00\x00\x00\x00\x3c\x6a\x0f\x3b\xfe\xdf\x1d\xc6\xff\x03\x00\x00"
"\x80\x99\x55\xbf\x57\xaf\x7d\x78\xe4\xee\xb2\xdd\x3e\x8b\xad\x5e\x7e"
"\xa1\x17\xf1\x78\xeb\xf1\x40\x61\xd2\xcd\x32\x4b\x5d\xf7\x03\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x32\xdc\xbe\x86\xf7\x42\x2f\x62"
"\x2e\x22\x1e\x5f\x5a\xaa\xaa\xaa\xfe\x6a\x6a\xd7\x0f\xea\x61\xd7\x3f"
"\xe8\x4a\xdf\x7e\x28\x59\xd7\xbf\xe4\x01\x00\x60\xdb\xc7\x47\x5a\xf7"
"\xf2\xf7\x22\x16\x22\xe2\x42\xfa\xac\xbf\xb9\xa5\xa5\xa5\xaa\x5a\x58"
"\x5c\xaa\x96\xaa\xc5\xf9\xfc\x7a\x76\x34\xbf\x50\x2d\x36\xde\xd7\xe6"
"\x69\xbd\x6c\x7e\x74\x1f\x2f\x88\x87\xa3\xaa\xfe\x66\x0b\x8d\xf5\x9a"
"\x26\xbd\x5f\x9e\xd4\xde\xfe\x7e\xf5\x73\x8d\xaa\xc1\x7d\x74\x6c\x3a"
"\x3a\x0c\x1c\x00\x22\x62\xfb\x68\x74\xdb\x11\xe9\x90\xa9\xaa\x27\xa2"
"\xeb\x57\x39\x1c\x0c\xf6\xff\xc3\xc7\xfe\xcf\xfd\xe8\xfa\xe7\x14\x00"
"\x00\x00\xd8\x7f\x55\x55\x55\xbd\xf4\x71\xde\xc7\xd2\x39\xff\x7e\xd7"
"\x9d\x02\x00\xa6\x22\x1f\xff\xdb\xe7\x05\xd4\x6a\xb5\x5a\xad\x56\x1f"
"\xbe\xba\xa9\x1a\xef\x46\xb3\x88\x88\x8d\xe6\x3a\xf5\x6b\x06\xc3\xf1"
"\x03\xc0\x01\xb3\x11\x9f\x76\xdd\x05\x3a\x24\xff\xa2\x0d\x23\xe2\x68"
"\xd7\x9d\x00\x66\x5a\xaf\xeb\x0e\xb0\x2f\x6e\x6f\xae\xaf\xf6\x52\xbe"
"\xbd\xe6\xf1\x20\x8d\xef\x9e\xaf\x05\xd9\x91\xff\x46\x6f\x6b\xbd\xbc"
"\xfe\xb8\xe9\x24\xed\x6b\x4c\xa6\xf5\xf3\x75\x33\x06\xf1\xe4\x2e\xfd"
"\x79\x6a\x4a\x7d\x98\x25\x39\xff\x7e\x3b\xff\x8b\xdb\xed\xa3\xf4\xb8"
"\xfd\xce\x7f\x5a\x76\xcb\xbf\xde\xce\xe5\x0e\xfa\xd3\xb5\x9c\xff\xa0"
"\x9d\x7f\xcb\xe1\xc9\xbf\x3f\x36\xff\x52\xe5\xfc\x87\x0f\x94\xff\x40"
"\xfe\x00\x00\x00\x00\x00\x30\xc3\xf2\xdf\xff\x97\x9d\xff\xcd\x9b\x0c"
"\x00\x00\x00\x00\x00\x00\x00\x07\xce\xed\xcd\xf5\xd5\x7c\xdf\x6b\x3e"
"\xff\xff\xa5\x31\x8f\x73\xff\xe7\xe1\x94\xf3\xef\xc9\xbf\x48\x39\xff"
"\x7e\x3b\xff\xd6\x05\x39\x83\xc6\xfc\xad\xd7\xef\xe6\xff\xc9\xe6\xfa"
"\xea\x87\x5f\x3c\xf7\x95\x3c\x9d\xf9\xfc\xe7\x06\xa3\xfa\xb9\xe7\x7a"
"\xfd\xc1\x30\x5d\xf3\x53\xcd\xbd\x15\x97\xe3\x4a\xac\xc5\x8b\xf7\x3c"
"\x7e\xb8\xa3\xfd\xf4\x3d\xed\x73\x3b\xda\x57\x26\xb4\x9f\xb9\xa7\x7d"
"\x54\xb7\x2f\xe6\xf6\x93\xb1\x1a\xbf\x8e\x2b\xf1\x8b\x3b\xed\xf3\x13"
"\x2e\x8c\x5a\x98\xd0\x5e\x4d\x68\xcf\xf9\x0f\xec\xff\x45\xca\xf9\x0f"
"\x1b\x5f\x75\xfe\x4b\xa9\xbd\xd7\x9a\xd6\x6e\x7d\xd0\xbf\x67\xbf\x6f"
"\x4e\xc7\x3d\xcf\xf9\x9f\x7f\x76\xee\xde\xbd\x6b\xfa\x6e\xc6\xe0\xce"
"\xb6\x35\xd5\xdb\x77\xa2\x83\xfe\x6c\xfd\x9f\x3c\x36\x8a\xdf\x5e\x5b"
"\xbb\x7a\xf2\x77\x97\xae\x5f\xbf\x7a\x3a\xd2\x64\xc7\xd2\x95\x48\x93"
"\x47\x2c\xe7\x3f\x97\xbe\x72\xfe\xcf\x3e\xb3\xdd\x9e\x7f\xef\x37\xf7"
"\xd7\x5b\x1f\x8c\x1e\x38\xff\x59\x71\x33\x86\xbb\xe6\xff\x4c\x63\xbe"
"\xde\xde\xe7\xa6\xdc\xb7\x2e\xe4\xfc\x47\xe9\x2b\xe7\x9f\x8f\x40\xe3"
"\xf7\xff\x83\x9c\xff\xee\xfb\xff\xf3\x1d\xf4\x07\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\xf6\x52\x55\xd5\xd6\x2d\xa2\xe7\x23\xe2"
"\xe5\x74\xff\x4f\x57\xf7\x66\x02\x00\xd3\x95\x8f\xff\x55\x92\x97\xab"
"\xd5\x6a\xb5\x5a\xad\x3e\x7c\x75\x53\x35\xde\x6b\xcd\x22\x22\xfe\xde"
"\x5c\xa7\x7e\xcd\xf0\xfb\x71\xdf\x0c\x00\x98\x65\x9f\x45\xc4\xbf\xbb"
"\xee\x04\x9d\x91\x7f\xc1\xf2\xe7\xfd\xd5\xd3\xaf\x75\xdd\x19\x60\xaa"
"\xae\xbd\xf7\xfe\x2f\x2f\x5d\xb9\xb2\x76\xf5\x5a\xd7\x3d\x01\x00\x00"
"\x00\x00\x00\x00\x00\x3e\xaf\x3c\xfe\xe7\xf1\xc6\xf8\xcf\x5b\xd7\x01"
"\xb5\xc6\x8d\xde\x31\xfe\xeb\xeb\x71\xfc\x93\xcd\xf5\xd5\x77\x97\xff"
"\xf3\xe5\x03\x37\xfe\x67\x7f\x34\xd8\x1a\xeb\x3c\x6d\xd0\xd3\xb1\xf7"
"\xf8\xdf\x27\x62\xef\xf1\xbf\x87\x13\x9e\x6f\x6e\x42\xfb\x68\x42\xfb"
"\xfc\x84\xf6\x85\x09\xed\x63\x6f\xf4\x68\xc8\xf9\x3f\x9d\x32\xce\xf9"
"\x1f\x4b\x1b\xb6\xd7\xf8\xaf\x39\xff\xf6\x74\xc2\x53\x76\x6a\xaf\xf1"
"\x5f\x9f\xed\xa0\x3f\x5d\xcb\xf9\x9f\x48\x63\x3d\xe7\xfc\xbf\xd9\x7a"
"\x5c\x33\xff\xea\x2f\x07\x79\xfc\xdf\xfe\x8e\xfc\x4f\x5d\x7f\xe7\x37"
"\xa7\xae\xbd\xf7\xfe\x0b\x97\xdf\xb9\xf4\xf6\xda\xdb\x6b\xbf\x3a\x73"
"\x76\xe5\xd5\xd3\x2b\xe7\xce\xbe\xf2\xe2\xa9\xb7\x2e\x5f\x59\x4b\xff"
"\x76\xd8\xe3\xfd\x95\xf3\xcf\x63\x5f\xbb\x0e\xb4\x2c\x39\xff\x9c\xb9"
"\xfc\xcb\x92\xf3\xff\x7a\xaa\xe5\x5f\x96\x9c\xff\x37\x52\x2d\xff\xb2"
"\xe4\xfc\xf3\xeb\x3d\xf9\x97\x25\xe7\x9f\xdf\xfb\xc8\xbf\x2c\x39\xff"
"\xe7\x52\x2d\xff\xb2\xe4\xfc\xbf\x95\x6a\xf9\x97\x25\xe7\xff\x7c\xaa"
"\xe5\x5f\x96\x9c\xff\xb7\x53\x2d\xff\xb2\xe4\xfc\x5f\x48\xb5\xfc\xcb"
"\x92\xf3\x3f\x99\x6a\xf9\x97\x25\xe7\x7f\x2a\xd5\xf2\x2f\x4b\xce\x3f"
"\x9f\xe1\x92\x7f\x59\x72\xfe\xf9\xca\x06\xf9\x97\x25\xe7\xbf\x92\x6a"
"\xf9\x97\x25\xe7\x7f\x26\xd5\xf2\x2f\x4b\xce\xff\x6c\xaa\xe5\x5f\x96"
"\x9c\xff\x4b\xa9\x96\x7f\x59\x72\xfe\x2f\xa7\x5a\xfe\x65\xc9\xf9\x9f"
"\x4b\xb5\xfc\xcb\x92\xf3\x7f\x25\xd5\xf2\x2f\x4b\xce\xff\xd5\x54\xcb"
"\xbf\x2c\x39\xff\xef\xa4\x5a\xfe\x65\xc9\xf9\x7f\x37\xd5\xf2\x2f\x4b"
"\xce\xff\x7b\xa9\x96\x7f\x59\x72\xfe\xdf\x4f\xb5\xfc\xcb\x92\xf3\xff"
"\x41\xaa\xe5\x5f\x96\x9c\xff\x6b\xa9\x96\x7f\x59\xee\x7e\xfe\xbf\x19"
"\x33\x66\xcc\xe4\x99\xae\x7f\x33\x01\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x6d\xd3\xb8\x9c\xb8\xeb\x6d\x04\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\xf8\x3f\x3b\x70\x20\x00\x00\x00\x00\x00\xe4\xff\xda\x08\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55"
"\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\xd8\x81\x03\x01"
"\x00\x00\x00\x00\x20\xff\xd7\x46\xa8\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xc2\xce\xbd\xc5\xc8\x59\xde\x67\x00\xff"
"\xf6\x64\xaf\x0d\xb1\x37\x89\x21\x1c\x0c\xd8\xc6\x80\x81\xc5\xbb\x3e"
"\xe0\x43\x5b\x27\x06\x42\x4a\xa1\x6d\x08\x09\xe9\x89\xd4\xb8\xf6\xda"
"\x38\xf1\xa9\x5e\x9b\x93\x90\xd8\x08\x9a\x22\x81\x54\x2e\xb8\xa0\x95"
"\x92\x02\x42\x55\x2e\x5a\x05\xb5\x89\x1a\x24\x1a\x71\x51\xa9\x4d\x6f"
"\xda\xab\xf6\xa6\x4a\x2b\x35\xaa\x50\x14\x2a\x27\xea\x4d\xa3\x82\xa3"
"\x6f\xe6\x7d\x5f\xcf\xcc\xae\xe7\x5b\x63\x0f\x99\xf9\xde\xdf\x2f\xc2"
"\x7f\x7b\xe7\x9b\x99\x77\xbe\x79\x67\x76\x9f\x8d\x9e\x01\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x68\xb5\xf6\xae\x99\x3f\x1e\x2a\x8a\xa2\xfc\xaf\xf1\xc7\x44"
"\x51\x5c\x5a\xfe\x7d\x59\xb1\xbb\xfc\xe7\xdc\xb6\x5f\xf4\x0a\x01\x00"
"\x00\x80\x0b\xf5\x5e\xe3\xcf\xbf\x5c\x99\xbe\xb0\x7b\x11\x57\x6a\x39"
"\xe6\x1f\xae\xfd\xe7\x6f\x9f\x39\x73\xe6\x4c\x51\xfc\xd9\xaa\x4f\xbc"
"\x54\xce\x60\x4d\x51\xac\x58\x5a\x14\xcd\xcb\x82\xf1\x1f\x1d\x6f\x3b"
"\x26\x78\xa6\x18\x1f\x1a\x6e\xf9\xf7\x70\xc5\xdd\x8f\x54\x5c\x3e\x5a"
"\x71\xf9\x58\xc5\xe5\x4b\x2a\x2e\x5f\x5a\x71\xf9\x78\xc5\xe5\xf3\x4e"
"\xc0\x3c\xcb\x9a\xbf\x8f\x69\xdc\xd8\xfa\xc6\x5f\x27\x9a\xa7\xb4\x58"
"\x55\x8c\x35\x2e\x5b\xbf\xc0\xb5\x9e\x19\x5a\x3a\x3c\x1c\x7f\x97\xd3"
"\x30\xd4\xb8\xce\x99\xb1\x03\xc5\xa1\xe2\x70\x31\x53\x4c\xcf\xbb\xce"
"\x50\xe3\x7f\x45\xf1\xd6\xda\xf2\xbe\xee\x29\xe2\x7d\x0d\xb7\xdc\xd7"
"\xea\xa2\x28\x4e\xff\xe4\xa9\x7d\x71\x0d\x43\xe1\x1c\xaf\x2f\xda\xee"
"\xac\xa1\xf5\xb9\x7b\xf7\x8e\x62\xcd\x4f\x7f\xf2\xd4\xbe\x47\x27\x7e"
"\x76\xcd\x42\xb3\xf2\x34\xcc\x5b\x69\x51\x6c\x58\x57\xae\xf3\xd9\xa2"
"\x38\xfb\xeb\xaa\x62\xa8\x58\x9a\xce\x49\x5c\xe7\x70\xcb\x3a\x57\x2f"
"\xb0\xce\x91\xb6\x75\x0e\x35\xae\x57\xfe\xbd\x73\x9d\xa7\x17\xb9\xce"
"\xf8\xb8\xc7\xc3\x3a\xff\xa5\xcb\x3a\x57\x87\xaf\x3d\x7e\x7d\x51\x14"
"\x73\xc5\x39\x8f\xe9\xf4\x4c\x31\x5c\x2c\xef\xb8\xd7\x74\xbe\xc7\x9b"
"\x3b\xa2\xbc\x8d\xf2\xa9\xfc\x58\x31\x7a\x5e\xfb\x64\xed\x22\xf6\x49"
"\x79\x9d\x1f\x5e\xdf\xbe\x4f\x3a\xf7\x64\x3c\xff\x6b\xc3\x39\x19\x3d"
"\xc7\x1a\x5a\x9f\x8e\x77\xbf\xba\x64\xde\x79\xff\xa0\xfb\xa4\x7c\xd4"
"\xfd\xb0\x57\xcb\xdb\xbe\xbf\xbc\xd3\xf1\xf1\xd6\x5f\xad\xb6\xed\xd5"
"\xf2\x98\xa7\x6e\x38\xf7\x1e\x58\xf0\xb9\x5b\x60\x0f\xa4\xbd\xdc\xb2"
"\x07\xd6\x55\xed\x81\xe1\x25\x23\x8d\x3d\x30\x7c\x76\xcd\xeb\xda\xf6"
"\xc0\xa6\x79\xd7\x19\x2e\x86\x1a\xf7\xf5\xce\x0d\xdd\xf7\xc0\xd4\xc9"
"\x23\xc7\xa7\x66\x9f\x78\xf2\xb6\x43\x47\xf6\x1e\x9c\x39\x38\x73\x74"
"\xcb\xd6\xcd\x3b\x37\x6d\xde\xbe\x75\xc7\xf4\xd4\x81\x43\x87\x67\xc2"
"\x9f\xe7\x77\x4a\x07\xc8\xf2\x62\x38\xed\xc1\x75\xe1\xbd\x26\xee\xc1"
"\x9b\x3a\x8e\x6d\xdd\x92\x67\x5e\x6d\xbe\x0e\x5e\xb9\x72\xfb\xb5\x0b"
"\xcd\xf3\x59\xc3\xf8\x45\x7a\x1d\x5c\xc8\x1a\x8a\xb0\x5f\xbe\x70\x63"
"\xb9\xa0\x4b\x87\x8b\x73\xec\xf1\xf2\x98\x67\x37\x5c\xf8\xeb\x20\x7d"
"\xdf\x6f\x79\x1d\x8c\xb6\xbc\x0e\x16\x7c\x4f\x5d\xe0\x75\x30\xba\x88"
"\xd7\x41\x79\xcc\xe9\x0d\x8b\xfb\x9e\x39\xda\xf2\xdf\x42\x6b\x58\xe8"
"\xbd\xf0\x62\xec\x81\x89\x96\x3d\x70\x21\xdf\x0f\x5b\xd7\xf0\x41\xbe"
"\x1f\x96\xf7\xf9\xd0\xcd\xe7\x7e\x2f\x5c\x1d\xd6\xf5\xdc\x2d\xe7\xfb"
"\xfd\x70\x64\xde\x1e\x88\x0f\x6b\x28\xbc\xf6\xca\xaf\xa4\x9f\xf7\xc6"
"\x77\x84\xf3\x32\x7f\x5f\x5c\x55\x5e\x70\xc9\x92\xe2\xd4\xec\xcc\x89"
"\x8d\x8f\xef\x3d\x79\xf2\xc4\xa6\x22\x8c\x0f\xc5\xc7\x5b\x9e\xab\xce"
"\xfd\xb2\xbc\xe5\x31\x15\xf3\xf6\xcb\xf0\x79\xef\x97\xdd\x9f\x7d\x7f"
"\xfb\x55\x0b\x7c\x7d\x22\x9c\xab\xf1\x5b\xbb\x3f\x57\xe5\x31\x5b\x27"
"\xbb\x3f\x57\x8d\x77\xf7\x85\xcf\x67\xdb\x57\x37\x17\x61\x5c\x64\x1f"
"\xf6\xf9\x5c\xe8\xbb\x59\x79\x3e\x53\x96\xe8\x72\x3e\xcb\x63\x9e\xbd"
"\xed\xc2\x7f\x16\x4c\xb9\xa4\xe5\xfd\x6f\xac\xea\xfd\x6f\x64\x6c\xb4"
"\xf9\xfe\x37\x92\xce\xc6\x58\xdb\xfb\xdf\xfc\xa7\x66\xa4\xb1\xb2\xa2"
"\x38\x7d\xdb\xe2\xde\xff\xc6\xc2\x7f\x1f\xf6\xfb\xdf\xaa\x3e\x79\xff"
"\x2b\xcf\xd5\x43\x1b\xbb\xef\x81\xf2\x98\xe7\xa6\xce\x77\x0f\x8c\x76"
"\x7d\xff\xbb\x3e\xcc\xa1\xb0\x9e\x9b\x43\x62\x18\x6f\xc9\xfd\xef\x37"
"\x2e\x9f\x6b\x6e\xd3\x96\xe7\xb2\x72\xdf\x8c\x8e\x8e\x85\x7d\x33\x1a"
"\xef\xb1\x7d\xdf\x6c\x99\x77\x9d\xf2\xd6\xca\xfb\xde\x30\xfd\xc1\xf6"
"\xcd\x86\xeb\xdb\x9f\xab\xb6\x9f\x5b\x6a\xb8\x6f\xca\x73\xf5\xd2\x74"
"\xf7\x7d\x53\x1e\xf3\xf6\xa6\x0b\x7f\xef\x58\x16\xff\xda\xf2\xde\xb1"
"\xa4\x6a\x0f\x8c\x8d\x2c\x29\xd7\x3b\x96\x36\x41\xf3\xfd\xee\xcc\xb2"
"\xb8\x07\x36\x16\xfb\x8a\x63\xc5\xe1\x62\x7f\xba\x4e\xf9\x2c\x97\xf7"
"\x35\xb9\x79\x71\x7b\x60\x49\xf8\xef\xc3\x7e\xef\xb8\xa2\x4f\xf6\x40"
"\x79\xae\x5e\xde\xdc\x7d\x0f\x94\xc7\xfc\xfd\x96\x8b\xfb\xb3\xd3\x86"
"\xf0\x95\x74\x4c\xcb\xcf\x4e\x9d\xbf\x5f\x38\x57\xe6\xbf\x6a\xf4\xec"
"\xed\x75\x9e\xb6\x8b\x9d\xf9\xcb\x75\x7e\x7a\x6b\xf7\xdf\x0d\x95\xc7"
"\xfc\x78\xeb\xf9\xe6\x8c\xee\xe7\xe9\xd6\xf0\x95\x4b\x16\x38\x4f\x9d"
"\xaf\x9f\x73\xed\xe9\xfd\x45\xf5\x79\xba\x58\x7b\xba\x5c\xe7\xe1\xdb"
"\xbb\xff\x6e\xaa\x3c\x66\xd5\xb6\x45\xee\xa7\xdd\x45\x51\xbc\xf9\xfc"
"\xeb\xcd\xdf\x77\x35\x7f\xbf\xfb\xd7\xa7\xfe\xf5\xdb\x6d\xbf\xf7\x5d"
"\xe8\x77\xca\x6f\x3e\xff\xfa\xe7\xae\xfc\xfe\xf7\xcf\x67\xfd\x00\x00"
"\x7c\x70\xef\x37\xfe\x9c\x5b\xd2\xfc\x59\xb3\xe5\xff\xb1\x5e\xcc\xff"
"\xff\x0f\x00\x00\x00\x0c\x84\x98\xfb\x87\xc3\x4c\xe4\x7f\x00\x00\x00"
"\xa8\x8d\x98\xfb\x47\xc2\x4c\xe4\x7f\x00\x00\x00\xa8\x8d\x98\xfb\x47"
"\xc3\x4c\x32\xc9\xff\x8f\x0c\x7d\xed\xa5\xf7\x9e\x2e\xd2\xa7\x01\x9e"
"\x09\xe2\xe5\xf1\x34\xdc\xbf\xb4\x79\x5c\xec\x78\xcf\x85\x7f\xaf\x39"
"\x73\x56\xf9\xf5\x3b\x5f\x1f\xbb\xef\x3b\x4f\x2f\xee\xbe\x87\x8b\xa2"
"\xf8\xff\x7b\xaf\x5e\xf0\xf8\x47\x96\xc6\x75\x35\x1d\x8f\xeb\x1c\x69"
"\xff\xfa\x3c\x57\x5c\xb7\xa8\xfb\x7f\xf8\xc1\xb3\xc7\xb5\x7e\x7e\xc2"
"\xe9\xe1\xe6\xed\xc7\xc7\xb3\xd8\x6d\x10\xbb\xca\x6f\xfd\xc7\x9d\x8d"
"\xdb\x5d\x73\x73\x73\xbe\x7d\x6f\xd1\x98\x0f\xcc\x3d\xf7\x4c\xe3\xf6"
"\x77\x36\xff\x1d\x8f\x7f\xe7\xbf\x9a\xc7\x7d\x3d\x7c\x68\xc9\xee\x03"
"\x43\x6d\xd7\xdf\x10\xd6\xb3\x3e\xcc\x35\xe1\x33\x65\xee\x5f\x76\xf6"
"\x3c\x94\x33\x5e\xef\x5b\x6f\x1d\xfc\xc7\x4f\x7e\xf1\xec\xfd\xc5\xeb"
"\x0d\xad\x5b\xd1\x78\x98\x2f\x6f\x6c\xde\x6e\xfc\x8c\xa8\x17\xff\xa6"
"\x79\x7c\x7c\xdc\xe7\x5a\xff\xdf\x3d\xff\xcd\x6f\x95\xc7\x3f\x7e\xc3"
"\xc2\xeb\x7f\x7a\x78\xe1\xf5\xbf\x13\x6e\xf7\x87\x61\xfe\xdf\xbb\xcd"
"\xaf\xb7\x9e\xf3\xef\xb4\xac\xff\x8f\xc2\xfa\xe3\xfd\xc5\xeb\x6d\x7c"
"\xed\x7b\x0b\xae\xff\x8d\xbf\x6d\x1e\xff\x46\xd8\x17\xaf\x84\xd9\xb9"
"\xfe\x3b\xfe\xe4\x9a\xf7\x16\x7a\xbe\xe2\xfd\xec\x1e\x6d\x5e\x2f\xde"
"\xff\xf4\x5f\xdc\xdd\xb8\x5e\xbc\xbd\x78\xfb\x9d\xeb\x1f\x9f\xba\xb3"
"\xed\x7c\x74\xde\xfe\xdb\xaf\x35\x6f\x67\xd7\xa3\xff\x3b\xd2\x7a\x7c"
"\xfc\x7a\xbc\x9f\xe8\xe1\xd1\xf6\xfd\x3d\x14\x9e\xdf\xb6\x1e\x79\x51"
"\x14\xdf\xfc\x5a\xd1\x76\x9e\x8b\xb1\xe6\xf5\xde\xec\x58\x7f\xbc\xbd"
"\xe3\xa3\x0b\xaf\xff\xd6\x8e\x75\x1e\x7f\xf5\x91\xc6\xf5\x3b\x1f\x4f"
"\xf4\x8d\x07\xef\x5a\xf0\xf1\xc6\xf5\xec\xfe\xab\x89\xb6\xc7\xf3\xe2"
"\x8a\x70\xfe\x86\x97\xfd\x53\x79\xbb\xef\x5c\x1d\xf6\x63\xb8\xfc\x67"
"\x73\xcd\xdb\xeb\xfc\x2c\xd3\x37\x56\xb4\xbf\xdf\xc4\xe3\x5f\x99\x68"
"\xbe\x6e\xe3\xed\x4d\x75\xac\xff\xc5\x8e\xf5\xcf\x5d\x57\x9e\xbb\xea"
"\xf5\xdf\xf3\xd3\xe6\xfa\xdf\xf8\xd4\xd2\xb6\xf5\xef\x5e\x19\xf6\xd3"
"\x47\x9b\xb3\x6a\xfd\x07\xff\x7c\x65\xdb\xf5\x5f\xfd\x4c\x73\x3d\x27"
"\x1e\x9b\x3c\x7a\x6c\xf6\xd4\xa1\xf8\x19\x07\x13\x1d\xaf\xe3\xa5\xe3"
"\xcb\x96\x5f\x72\xe9\x47\x56\xac\x0c\xef\xa5\x9d\xff\xde\x73\xec\xe4"
"\x23\x33\x27\xd6\x4c\xaf\x99\x2e\x8a\x35\x03\xf8\x91\x81\xbd\x5e\xff"
"\x6b\x61\xfe\x4f\x73\xcc\x5d\xfc\x7b\x68\xfa\xb7\xd1\xe6\xbe\x7b\xe1"
"\xbe\xe6\xf7\xad\x9b\xc6\x9a\xff\x7e\x31\x7c\xfd\xe1\xf0\x7c\xc6\xef"
"\x8f\xdf\xf8\xd3\xb1\xb6\xfd\xda\xf9\xbc\xcf\x8d\x37\xe7\x85\xae\xff"
"\x96\xb0\x8e\xc5\x5a\xbd\xfe\x47\x3b\x16\x75\xe0\x7f\x6f\x7d\xe3\xa5"
"\x7f\x7f\xe0\x4b\x9d\x3f\x17\xc4\xc7\x73\xfc\xb2\xf1\xc6\xe3\x7b\x79"
"\xed\xe5\x8d\xcb\x86\xde\x6e\x5e\xde\xf9\x7e\x55\xe5\x3f\x2f\x6b\x7f"
"\x5d\xff\x60\x55\x73\x7e\x37\x9c\xd7\x33\xe1\x93\x99\xd7\x5d\xde\xbc"
"\xbf\xce\xdb\x8f\x9f\x4d\xf2\xc2\xe7\x9b\xaf\xdf\xf8\x93\x5c\xbc\x7e"
"\xd1\xf1\x79\x22\x13\x23\xed\x8f\xe3\x42\xd7\xff\x83\xf0\x73\xcc\xf7"
"\xae\x68\x7f\xff\x8b\xfb\xe3\xbb\x4f\x77\x7c\x9a\xf3\x44\x31\x54\x2e"
"\x61\x2e\xbc\x3f\x14\x73\xcd\xcb\xe3\x51\xf1\x7c\xbf\x70\xfa\xf2\x05"
"\xef\x2f\x7e\x0e\x4f\x31\x77\xe5\xf9\x2c\xf3\x9c\x66\x9f\x98\x9d\x3a"
"\x7c\xe8\xe8\xa9\xc7\xa7\x4e\xce\xcc\x9e\x9c\x9a\x7d\xe2\xc9\x3d\x47"
"\x8e\x9d\x3a\x7a\x72\x4f\xe3\xb3\x4b\xf7\x7c\xb9\xea\xfa\x67\x5f\xdf"
"\xcb\x1b\xaf\xef\xfd\x33\xdb\xb6\x16\x8d\x57\xfb\xb1\xe6\xe8\xb1\x5f"
"\xf4\xfa\x8f\x3f\xb8\x6f\xff\xf6\xe9\x1b\xf7\xcf\x1c\xd8\x7b\xea\xc0"
"\xc9\x07\x8f\xcf\x9c\x38\xb8\x6f\x76\x76\xdf\xcc\xfe\xd9\x1b\xf7\x1e"
"\x38\x30\xf3\x58\xd5\xf5\x0f\xed\xdf\xb5\x69\xf3\xce\x2d\xdb\x37\x4f"
"\x1e\x3c\xb4\x7f\xd7\x8e\x9d\x3b\xb7\xec\x9c\x3c\x74\xf4\x58\xb9\x8c"
"\xe6\xa2\x2a\x6c\x9b\xfe\xca\xe4\xd1\x13\x7b\x1a\x57\x99\xdd\xb5\x75"
"\xe7\xa6\xdb\x6f\xdf\x3a\x3d\x79\xe4\xd8\xfe\x99\x5d\xdb\xa7\xa7\x27"
"\x4f\x55\x5d\xbf\xf1\xbd\x69\xb2\xbc\xf6\xa3\x93\x27\x66\x0e\xef\x3d"
"\x79\xe8\xc8\xcc\xe4\xec\xa1\x27\x67\x76\x6d\xda\xb9\x6d\xdb\xe6\xca"
"\x4f\x7f\x3c\x72\xfc\xc0\xec\x9a\xa9\x13\xa7\x8e\x4e\x9d\x9a\x9d\x39"
"\x31\xd5\x7c\x2c\x6b\x4e\x36\xbe\x5c\x7e\xef\xab\xba\x3e\x79\x98\x5d"
"\x19\xde\xef\x3a\x0c\x85\x9f\xce\xef\xbe\x75\x5b\xfa\x7c\xdc\xd2\xeb"
"\x5f\x3d\xe7\x4d\x35\x0f\x99\x68\xff\xe2\x8f\xc3\x67\x41\x7d\x7d\x7c"
"\xcb\x8e\xc5\xfc\x3b\xe6\xfe\xb1\x30\x93\x4c\xf2\x3f\x00\x00\x00\xe4"
"\x20\xe6\xfe\xf0\xc1\xff\x67\x2f\x90\xff\x01\x00\x00\xa0\x36\x62\xee"
"\x5f\x1a\x66\x22\xff\x03\x00\x00\x40\x6d\xc4\xdc\x3f\x1e\x66\x92\x49"
"\xfe\xd7\xff\xd7\xff\xd7\xff\xd7\xff\xd7\xff\xd7\xff\xef\x25\xfd\x7f"
"\xfd\xff\x6e\xf4\xff\xf5\xff\x07\x79\xfd\xfa\xff\xfa\xff\x54\xeb\xb7"
"\xfe\x7f\xcc\xfd\xcb\x8a\x22\xcb\xfc\x0f\x00\x00\x00\x39\x88\xb9\x7f"
"\x79\x98\x89\xfc\x0f\x00\x00\x00\xb5\x11\x73\xff\x25\x61\x26\xf2\x3f"
"\x00\x00\x00\xd4\x46\xcc\xfd\x97\x86\x99\x64\x92\xff\xf5\xff\xf5\xff"
"\xf5\xff\xf5\xff\xf5\xff\xf5\xff\x7b\x49\xff\x5f\xff\xbf\x1b\xfd\x7f"
"\xfd\xff\x41\x5e\xbf\xfe\xbf\xfe\x3f\xd5\xfa\xad\xff\x1f\x73\xff\x47"
"\xc2\x4c\x32\xc9\xff\x00\x00\x00\x90\x83\x98\xfb\x57\x84\x99\xc8\xff"
"\x00\x00\x00\x50\x1b\x31\xf7\xaf\x0c\x33\x91\xff\x01\x00\x00\xa0\x36"
"\x62\xee\x9f\x08\x33\xc9\x24\xff\xeb\xff\xeb\xff\xeb\xff\xeb\xff\xeb"
"\xff\xeb\xff\xf7\x92\xfe\xbf\xfe\x7f\x37\xfa\xff\xfa\xff\x83\xbc\x7e"
"\xfd\x7f\xfd\x7f\xaa\xf5\x5b\xff\x3f\xe6\xfe\x8f\x86\x99\x64\x92\xff"
"\x01\x00\x00\x20\x07\x31\xf7\x7f\x2c\xcc\x44\xfe\x07\x00\x00\x80\xda"
"\x88\xb9\xff\xe3\x61\x26\xf2\x3f\x00\x00\x00\xd4\x46\xcc\xfd\xab\xc2"
"\x4c\x32\xc9\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xbd"
"\xa4\xff\xaf\xff\xdf\x8d\xfe\xbf\xfe\xff\x20\xaf\x5f\xff\x5f\xff\x9f"
"\x6a\xfd\xd6\xff\x8f\xb9\xff\xb2\x30\x93\x4c\xf2\x3f\x00\x00\x00\xe4"
"\x20\xe6\xfe\xcb\xc3\x4c\xe4\x7f\x00\x00\x00\xa8\x8d\x98\xfb\x3f\x11"
"\x66\x22\xff\x03\x00\x00\x40\x6d\xc4\xdc\x7f\x45\x98\x49\x26\xf9\x5f"
"\xff\x5f\xff\x5f\xff\x5f\xff\x5f\xff\x5f\xff\xbf\x97\xf4\xff\xf5\xff"
"\xbb\xd1\xff\xd7\xff\x1f\xe4\xf5\xeb\xff\xeb\xff\x53\xad\xdf\xfa\xff"
"\x31\xf7\x5f\x19\x66\x92\x49\xfe\x07\x00\x00\x80\x1c\xc4\xdc\x7f\x55"
"\x98\x89\xfc\x0f\x00\x00\x00\xb5\x11\x73\xff\xd5\x61\x26\xf2\x3f\x00"
"\x00\x00\xd4\x46\xcc\xfd\xab\xc3\x4c\x32\xc9\xff\xfa\xff\xfa\xff\xfa"
"\xff\xfa\xff\xfa\xff\xfa\xff\xbd\xa4\xff\xaf\xff\xdf\x8d\xfe\xbf\xfe"
"\xff\x20\xaf\x5f\xff\x5f\xff\x9f\x6a\xfd\xd6\xff\x8f\xb9\xff\x9a\x30"
"\x93\x4c\xf2\x3f\x00\x00\x00\xe4\x20\xe6\xfe\x6b\xc3\x4c\xe4\x7f\x00"
"\x00\x00\xa8\x8d\x98\xfb\xaf\x0b\x33\x91\xff\x01\x00\x00\xa0\x36\x62"
"\xee\x5f\x13\x66\x92\x49\xfe\xd7\xff\xd7\xff\xd7\xff\xd7\xff\xd7\xff"
"\xd7\xff\xef\x25\xfd\x7f\xfd\xff\x6e\xf4\xff\xf5\xff\x07\x79\xfd\xfa"
"\xff\xfa\xff\x54\xeb\xb7\xfe\x7f\xcc\xfd\x6b\xc3\x4c\x32\xc9\xff\x00"
"\x00\x00\x90\x83\x98\xfb\xd7\x85\x99\xc8\xff\x00\x00\x00\x50\x1b\x31"
"\xf7\x5f\x1f\x66\x22\xff\x03\x00\x00\x40\x6d\xc4\xdc\xbf\x3e\xcc\x24"
"\x93\xfc\xaf\xff\xaf\xff\xaf\xff\xaf\xff\xaf\xff\xaf\xff\xdf\x4b\xfa"
"\xff\xfa\xff\xdd\xe8\xff\xeb\xff\x0f\xf2\xfa\xf5\xff\xf5\xff\xa9\xd6"
"\x6f\xfd\xff\x98\xfb\x6f\x08\x33\xc9\x24\xff\x03\x00\x00\x40\x0e\x62"
"\xee\xbf\x31\xcc\x44\xfe\x07\x00\x00\x80\xda\x88\xb9\xff\xa6\x30\x13"
"\xf9\x1f\x00\x00\x00\x6a\x23\xe6\xfe\x0d\x61\x26\x99\xe4\x7f\xfd\x7f"
"\xfd\x7f\xfd\x7f\xfd\x7f\xfd\x7f\xfd\xff\x5e\xd2\xff\xd7\xff\xef\x46"
"\xff\x5f\xff\x7f\x90\xd7\xaf\xff\xaf\xff\x4f\xb5\x7e\xeb\xff\xc7\xdc"
"\x7f\x73\x98\x49\x26\xf9\x1f\x00\x00\x00\x72\x10\x73\xff\x2d\x61\x26"
"\xf2\x3f\x00\x00\x00\xd4\x46\xcc\xfd\xb7\x86\x99\xc8\xff\x00\x00\x00"
"\x50\x1b\x31\xf7\x4f\x86\x99\x64\x92\xff\xf5\xff\xf5\xff\xf5\xff\xf5"
"\xff\xf5\xff\xf5\xff\x7b\x49\xff\x5f\xff\xbf\x1b\xfd\x7f\xfd\xff\x41"
"\x5e\xbf\xfe\xbf\xfe\x3f\xd5\xfa\xad\xff\x1f\x73\xff\x6d\x61\x26\x99"
"\xe4\x7f\x00\x00\x00\xc8\x41\xcc\xfd\x1b\xc3\x4c\xe4\x7f\x00\x00\x00"
"\xa8\x8d\x98\xfb\xa7\xc2\x4c\xe4\x7f\x00\x00\x00\xa8\x8d\x98\xfb\xa7"
"\xc3\x4c\x32\xc9\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff"
"\xbd\xa4\xff\xaf\xff\xdf\x8d\xfe\xbf\xfe\xff\x20\xaf\x5f\xff\x5f\xff"
"\x9f\x6a\xfd\xd6\xff\x8f\xb9\x7f\x53\x98\x49\x26\xf9\x1f\x00\x00\x00"
"\x72\x10\x73\xff\xe6\x30\x13\xf9\x1f\x00\x00\x00\x6a\x23\xe6\xfe\x2d"
"\x61\x26\xf2\x3f\x00\x00\x00\xd4\x46\xcc\xfd\x5b\xc3\x4c\x32\xc9\xff"
"\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xfa\xff\xbd\xa4\xff\xaf\xff"
"\xdf\x8d\xfe\xbf\xfe\xff\x20\xaf\x5f\xff\x5f\xff\x9f\x6a\xfd\xd6\xff"
"\x8f\xb9\xff\xf6\x30\x93\x4c\xf2\x3f\x00\x00\x00\xe4\x20\xe6\xfe\x6d"
"\x61\x26\xf2\x3f\x00\x00\x00\xd4\x46\xcc\xfd\xdb\xc3\x4c\xe4\x7f\x00"
"\x00\x00\xa8\x8d\x98\xfb\x77\x84\x99\x64\x92\xff\xf5\xff\xf5\xff\xf5"
"\xff\xf5\xff\xf5\xff\xf5\xff\x7b\x49\xff\x5f\xff\xbf\x1b\xfd\x7f\xfd"
"\xff\x41\x5e\xbf\xfe\xbf\xfe\x3f\xd5\xfa\xad\xff\x1f\x73\xff\xce\x30"
"\x93\x4c\xf2\x3f\x00\x00\x00\xe4\x20\xe6\xfe\x5f\x0a\x33\x91\xff\x01"
"\x00\x00\xa0\x36\x62\xee\xff\xe5\x30\x13\xf9\x1f\x00\x00\x00\x6a\x23"
"\xe6\xfe\x5f\x09\x33\xc9\x24\xff\xeb\xff\xeb\xff\xeb\xff\xeb\xff\xeb"
"\xff\xeb\xff\xf7\x92\xfe\xbf\xfe\x7f\x37\xfa\xff\xfa\xff\x83\xbc\x7e"
"\xfd\x7f\xfd\x7f\xaa\xf5\x5b\xff\x3f\xe6\xfe\x5d\x61\x26\x99\xe4\x7f"
"\x00\x00\x00\xc8\x41\xcc\xfd\x9f\x0c\x33\x91\xff\x01\x00\x00\xa0\x36"
"\x62\xee\xff\x54\x98\x89\xfc\x0f\x00\x00\x00\xb5\x11\x73\xff\xee\x30"
"\x93\x4c\xf2\xbf\xfe\xbf\xfe\xbf\xfe\xbf\xfe\xbf\xfe\xbf\xfe\x7f\x2f"
"\xe9\xff\xeb\xff\x77\xa3\xff\xaf\xff\x3f\xc8\xeb\xd7\xff\xd7\xff\xa7"
"\x5a\xbf\xf5\xff\x63\xee\xbf\x23\xcc\x24\x93\xfc\x0f\x00\x00\x00\x39"
"\x88\xb9\xff\xce\x30\x13\xf9\x1f\x00\x00\x00\x6a\x23\xe6\xfe\xbb\xc2"
"\x4c\xe4\x7f\x00\x00\x00\xa8\x8d\x98\xfb\x3f\x1d\x66\x92\x49\xfe\xd7"
"\xff\xd7\xff\xd7\xff\xd7\xff\xd7\xff\xd7\xff\xef\x25\xfd\x7f\xfd\xff"
"\x6e\xf4\xff\xf5\xff\x07\x79\xfd\xfa\xff\xfa\xff\x54\xeb\xb7\xfe\x7f"
"\xcc\xfd\x77\x87\x99\x64\x92\xff\x01\x00\x00\x20\x07\x31\xf7\x7f\x26"
"\xcc\x44\xfe\x07\x00\x00\x80\xda\x88\xb9\xff\x57\xc3\x4c\xe4\x7f\x00"
"\x00\x00\xa8\x8d\x98\xfb\xef\x09\x33\xc9\x24\xff\xeb\xff\xeb\xff\xeb"
"\xff\xeb\xff\xeb\xff\xeb\xff\xf7\x92\xfe\xbf\xfe\x7f\x37\xfa\xff\xfa"
"\xff\x83\xbc\x7e\xfd\x7f\xfd\x7f\xaa\xf5\x5b\xff\x3f\xe6\xfe\x5f\x0b"
"\x33\xc9\x24\xff\x03\x00\x00\x40\x0e\x62\xee\xbf\x37\xcc\x44\xfe\x07"
"\x00\x00\x80\xda\x88\xb9\xff\xbe\x30\x13\xf9\x1f\x00\x00\x00\x6a\x23"
"\xe6\xfe\x5f\x0f\x33\xc9\x24\xff\xeb\xff\xeb\xff\xeb\xff\xeb\xff\xeb"
"\xff\xeb\xff\xf7\x92\xfe\xbf\xfe\x7f\x37\xfa\xff\xfa\xff\x83\xbc\x7e"
"\xfd\x7f\xfd\x7f\xaa\xf5\x5b\xff\x3f\xe6\xfe\xdf\x08\x33\xc9\x24\xff"
"\x03\x00\x00\x40\x0e\x62\xee\xff\xcd\x30\x13\xf9\x1f\x00\x00\x00\x6a"
"\x23\xe6\xfe\xcf\x86\x99\xc8\xff\x00\x00\x00\x50\x1b\x31\xf7\xdf\x1f"
"\x66\x92\x49\xfe\xd7\xff\xd7\xff\xd7\xff\xd7\xff\xd7\xff\xd7\xff\xef"
"\x25\xfd\x7f\xfd\xff\x6e\xf4\xff\xf5\xff\x07\x79\xfd\xfa\xff\xfa\xff"
"\x54\xeb\xb7\xfe\x7f\xcc\xfd\x9f\x0b\x33\xc9\x24\xff\x03\x00\x00\x40"
"\x0e\x62\xee\x7f\x20\xcc\x44\xfe\x07\x00\x00\x80\xda\x88\xb9\xff\xf3"
"\x61\x26\xf2\x3f\x00\x00\x00\xd4\x46\xcc\xfd\x5f\x08\x33\xc9\x24\xff"
"\xeb\xff\xeb\xff\xeb\xff\xeb\xff\xeb\xff\xeb\xff\xf7\x92\xfe\xbf\xfe"
"\x7f\x37\xfa\xff\xfa\xff\x83\xbc\x7e\xfd\x7f\xfd\x7f\xaa\xf5\x5b\xff"
"\x3f\xe6\xfe\x07\xc3\x4c\x32\xc9\xff\x00\x00\x00\x90\x83\x98\xfb\xbf"
"\x18\x66\x22\xff\x03\x00\x00\x40\x6d\xc4\xdc\xff\x5b\x61\x26\xf2\x3f"
"\x00\x00\x00\xd4\x46\xcc\xfd\xbf\x1d\x66\x92\x49\xfe\xd7\xff\xd7\xff"
"\xd7\xff\xd7\xff\xd7\xff\xd7\xff\xef\x25\xfd\x7f\xfd\xff\x6e\xf4\xff"
"\xf5\xff\x07\x79\xfd\xfa\xff\xfa\xff\x54\xeb\xb7\xfe\x7f\xcc\xfd\xbf"
"\x13\x66\x92\x49\xfe\x07\x00\x00\x80\x1c\xc4\xdc\xff\xbb\x61\x26\xf2"
"\x3f\x00\x00\x00\xd4\x46\xcc\xfd\xbf\x17\x66\x22\xff\x03\x00\x00\x40"
"\x6d\xc4\xdc\xff\x50\x98\x49\x26\xf9\x5f\xff\x5f\xff\x5f\xff\x5f\xff"
"\x5f\xff\x5f\xff\xbf\x97\xf4\xff\xf5\xff\xbb\xd1\xff\xd7\xff\x1f\xe4"
"\xf5\xeb\xff\xeb\xff\x53\xad\xdf\xfa\xff\x31\xf7\x7f\x29\xcc\x24\x93"
"\xfc\x0f\x00\x00\x00\x39\x88\xb9\xff\xf7\xc3\x4c\xe4\x7f\x00\x00\x00"
"\xa8\x8d\x98\xfb\xf7\x84\x99\xc8\xff\x00\x00\x00\x50\x1b\x31\xf7\x3f"
"\x1c\x66\x92\x49\xfe\xd7\xff\xd7\xff\xd7\xff\xd7\xff\xd7\xff\xd7\xff"
"\xef\x25\xfd\x7f\xfd\xff\x6e\xf4\xff\xf5\xff\x07\x79\xfd\xfa\xff\xfa"
"\xff\x54\xeb\xb7\xfe\x7f\xcc\xfd\x7b\xc3\x4c\x32\xc9\xff\x00\x00\x00"
"\x90\x83\x98\xfb\xff\x20\xcc\x44\xfe\x07\x00\x00\x80\xda\x88\xb9\x7f"
"\x5f\x98\x89\xfc\x0f\x00\x00\x00\xb5\x11\x73\xff\xfe\x30\x93\x4c\xf2"
"\xbf\xfe\xbf\xfe\xbf\xfe\xbf\xfe\xbf\xfe\xbf\xfe\x7f\x2f\xe9\xff\xeb"
"\xff\x77\xa3\xff\xaf\xff\x3f\xc8\xeb\xd7\xff\xd7\xff\xa7\x5a\xbf\xf5"
"\xff\x63\xee\x9f\x09\x33\xc9\x24\xff\x03\x00\x00\x40\x0e\x62\xee\x3f"
"\x10\x66\x22\xff\x03\x00\x00\x40\x6d\xc4\xdc\x7f\x30\xcc\x44\xfe\x07"
"\x00\x00\x80\xda\x88\xb9\xff\x91\x30\x93\x4c\xf2\xbf\xfe\xbf\xfe\xbf"
"\xfe\xbf\xfe\xbf\xfe\xbf\xfe\x7f\x2f\xe9\xff\xeb\xff\x77\xa3\xff\xaf"
"\xff\x3f\xc8\xeb\xd7\xff\xd7\xff\xa7\x5a\xbf\xf5\xff\x63\xee\x3f\x14"
"\x66\x92\x49\xfe\x07\x00\x00\x80\x1c\xc4\xdc\xff\xe5\x30\x13\xf9\x1f"
"\x00\x00\x00\x6a\x23\xe6\xfe\xaf\x84\x99\xc8\xff\x00\x00\x00\x50\x1b"
"\x31\xf7\x1f\x0e\x33\xc9\x24\xff\xeb\xff\xeb\xff\xeb\xff\xeb\xff\xeb"
"\xff\xeb\xff\xf7\x92\xfe\xbf\xfe\x7f\x37\xfa\xff\xfa\xff\x83\xbc\x7e"
"\xfd\x7f\xfd\x7f\xaa\xf5\x5b\xff\x3f\xe6\xfe\x23\x61\x26\x99\xe4\x7f"
"\x00\x00\x00\xc8\x41\xcc\xfd\x47\xc3\x4c\xe4\x7f\x00\x00\x00\xa8\x8d"
"\x98\xfb\x8f\x85\x99\xc8\xff\x00\x00\x00\x50\x1b\x31\xf7\x1f\x0f\x33"
"\xc9\x24\xff\xeb\xff\xeb\xff\xeb\xff\xeb\xff\xeb\xff\xeb\xff\xf7\x92"
"\xfe\xbf\xfe\x7f\x37\xfa\xff\xfa\xff\x83\xbc\x7e\xfd\x7f\xfd\x7f\xaa"
"\xf5\x5b\xff\x3f\xe6\xfe\x3f\x0c\x33\xc9\x24\xff\x03\x00\x00\x40\x0e"
"\x62\xee\x3f\x11\x66\x22\xff\x03\x00\x00\x40\x6d\xc4\xdc\x3f\x1b\x66"
"\x22\xff\x03\x00\x00\x40\x6d\xc4\xdc\x7f\x32\xcc\x24\x93\xfc\xaf\xff"
"\xaf\xff\xaf\xff\xaf\xff\xaf\xff\xaf\xff\xdf\x4b\xfa\xff\xfa\xff\xdd"
"\xe8\xff\xeb\xff\x0f\xf2\xfa\xf5\xff\xf5\xff\xa9\xd6\x6f\xfd\xff\x98"
"\xfb\x4f\x85\x99\x64\x92\xff\x01\x00\x00\x20\x07\x31\xf7\x3f\x1a\x66"
"\x22\xff\x03\x00\x00\x40\x6d\xc4\xdc\xff\x58\x98\x89\xfc\x0f\x00\x00"
"\x00\xb5\x11\x73\xff\xe3\x61\x26\x99\xe4\x7f\xfd\x7f\xfd\x7f\xfd\x7f"
"\xfd\x7f\xfd\x7f\xfd\xff\x5e\xd2\xff\xd7\xff\xef\x46\xff\x5f\xff\x7f"
"\x90\xd7\xaf\xff\xaf\xff\x4f\xb5\x7e\xeb\xff\xc7\xdc\xff\x44\x98\x49"
"\x26\xf9\x1f\x00\x00\x00\x72\x10\x73\xff\x93\x3f\x67\xdf\x9e\xb9\x00"
"\xd8\x7a\x30\x8c\xfe\xf0\xcf\xb6\x6d\xdb\xb6\x6d\x9b\xd7\xb6\x51\xdc"
"\x26\x49\x39\x53\xcd\x5a\xe7\x24\x7b\x37\x69\xd3\xbe\xc5\x13\xb7\xd8"
"\xff\x00\x00\x00\xd0\x46\xee\xfe\x67\xc5\x2d\xf6\x3f\x00\x00\x00\xb4"
"\x91\xbb\xff\xd9\x71\xcb\x90\xfd\xaf\xff\xd7\xff\xeb\xff\xf5\xff\xfa"
"\x7f\xfd\xff\x95\xf4\xff\xfa\xff\x23\xfa\x7f\xfd\xff\xce\xff\xeb\xff"
"\xf5\xff\x9c\x5b\xad\xff\xcf\xdd\xff\x9c\xb8\x65\xc8\xfe\x07\x00\x00"
"\x80\x09\x72\xf7\x3f\x37\x6e\xb1\xff\x01\x00\x00\xa0\x8d\xdc\xfd\xcf"
"\x8b\x5b\xec\x7f\x00\x00\x00\x68\x23\x77\xff\xf3\xe3\x96\x21\xfb\x5f"
"\xff\xaf\xff\xd7\xff\xeb\xff\xf5\xff\xfa\xff\x2b\xe9\xff\xf5\xff\x47"
"\xf4\xff\xfa\xff\x9d\xff\xd7\xff\xeb\xff\x39\xb7\x5a\xff\x9f\xbb\xff"
"\x05\x71\xcb\x90\xfd\x0f\x00\x00\x00\x13\xe4\xee\x7f\x61\xdc\x62\xff"
"\x03\x00\x00\x40\x1b\xb9\xfb\x5f\x14\xb7\xd8\xff\x00\x00\x00\xd0\x46"
"\xee\xfe\x17\xc7\x2d\x43\xf6\xbf\xfe\x5f\xff\xaf\xff\xd7\xff\xeb\xff"
"\xf5\xff\x57\xd2\xff\xeb\xff\x8f\xe8\xff\xf5\xff\x3b\xff\xaf\xff\xd7"
"\xff\x73\x6e\xb5\xfe\x3f\x77\xff\x4b\xe2\x96\x21\xfb\x1f\x00\x00\x00"
"\x26\xc8\xdd\xff\xd2\xb8\xc5\xfe\x07\x00\x00\x80\x36\x72\xf7\xbf\x2c"
"\x6e\xb1\xff\x01\x00\x00\xa0\x8d\xdc\xfd\x2f\x8f\x5b\x86\xec\x7f\xfd"
"\xbf\xfe\x5f\xff\xaf\xff\xd7\xff\xeb\xff\xaf\xa4\xff\xd7\xff\x1f\xd1"
"\xff\xeb\xff\x77\xfe\x5f\xff\xaf\xff\xe7\xdc\x6a\xfd\x7f\xee\xfe\x57"
"\xc4\x2d\x43\xf6\x3f\x00\x00\x00\x4c\x90\xbb\xff\x95\x71\x8b\xfd\x0f"
"\x00\x00\x00\x6d\xe4\xee\x7f\x55\xdc\x62\xff\x03\x00\x00\x40\x1b\xb9"
"\xfb\x5f\x1d\xb7\x0c\xd9\xff\xfa\x7f\xfd\xbf\xfe\x5f\xff\xaf\xff\xd7"
"\xff\x5f\x49\xff\xaf\xff\x3f\xa2\xff\xd7\xff\xef\xfc\xbf\xfe\x5f\xff"
"\xcf\xb9\xd5\xfa\xff\xdc\xfd\xaf\x89\x5b\x86\xec\x7f\x00\x00\x00\x98"
"\x20\x77\xff\x6b\xe3\x16\xfb\x1f\x00\x00\x00\xda\xc8\xdd\xff\xba\xb8"
"\xc5\xfe\x07\x00\x00\x80\x36\x72\xf7\xbf\x3e\x6e\x19\xb2\xff\xf5\xff"
"\xfa\x7f\xfd\xbf\xfe\x5f\xff\xaf\xff\xbf\x92\xfe\x5f\xff\x7f\x44\xff"
"\xaf\xff\xdf\xf9\x7f\xfd\xbf\xfe\x9f\x73\xab\xf5\xff\xb9\xfb\xdf\x10"
"\xb7\x0c\xd9\xff\x00\x00\x00\x30\x41\xee\xfe\x37\xc6\x2d\xf6\x3f\x00"
"\x00\x00\xb4\x91\xbb\xff\x4d\x71\x8b\xfd\x0f\x00\x00\x00\x6d\xe4\xee"
"\x7f\x73\xdc\x32\x64\xff\xeb\xff\xf5\xff\xfa\x7f\xfd\xbf\xfe\x5f\xff"
"\x7f\x25\xfd\xbf\xfe\xff\x88\xfe\x5f\xff\xbf\xf3\xff\xfa\x7f\xfd\x3f"
"\xe7\x56\xeb\xff\x73\xf7\xbf\x25\x6e\x19\xb2\xff\x01\x00\x00\x60\x82"
"\xdc\xfd\x6f\x8d\x5b\xec\x7f\x00\x00\x00\x68\x23\x77\xff\xdb\xe2\x16"
"\xfb\x1f\x00\x00\x00\xda\xc8\xdd\xff\xf6\xb8\x65\xc8\xfe\xd7\xff\xeb"
"\xff\xf5\xff\xfa\x7f\xfd\xbf\xfe\xff\x4a\xfa\x7f\xfd\xff\x11\xfd\xbf"
"\xfe\x7f\xe7\xff\xf5\xff\xfa\x7f\xce\xad\xd6\xff\xe7\xee\x7f\x47\xdc"
"\x32\x64\xff\x03\x00\x00\xc0\x04\xb9\xfb\xdf\x19\xb7\xd8\xff\x00\x00"
"\x00\xd0\x46\xee\xfe\x77\xc5\x2d\xf6\x3f\x00\x00\x00\xb4\x91\xbb\xff"
"\xdd\x71\xcb\x90\xfd\xaf\xff\xd7\xff\xeb\xff\xf5\xff\xfa\x7f\xfd\xff"
"\x95\xf4\xff\xfa\xff\x23\xfa\x7f\xfd\xff\xce\xff\xeb\xff\xf5\xff\x9c"
"\x5b\xad\xff\xcf\xdd\xff\x9e\xb8\x65\xc8\xfe\x07\x00\x00\x80\x09\x72"
"\xf7\xbf\x37\x6e\xb1\xff\x01\x00\x00\xa0\x8d\xdc\xfd\xef\x8b\x5b\xec"
"\x7f\x00\x00\x00\x68\x23\x77\xff\xfb\xe3\x96\x21\xfb\x5f\xff\xaf\xff"
"\xd7\xff\xeb\xff\xf5\xff\xfa\xff\x2b\xe9\xff\xf5\xff\x47\xf4\xff\xfa"
"\xff\x9d\xff\xd7\xff\xeb\xff\x39\xb7\x5a\xff\x9f\xbb\xff\x03\x71\xcb"
"\x90\xfd\x0f\x00\x00\x00\x13\xe4\xee\xff\x60\xdc\x62\xff\x03\x00\x00"
"\x40\x1b\xb9\xfb\x3f\x14\xb7\xd8\xff\x00\x00\x00\xd0\x46\xee\xfe\x0f"
"\xc7\x2d\x43\xf6\xbf\xfe\x5f\xff\xaf\xff\xd7\xff\xeb\xff\xf5\xff\x57"
"\xd2\xff\xeb\xff\x8f\xe8\xff\xf5\xff\x3b\xff\xaf\xff\xd7\xff\x73\x6e"
"\xb5\xfe\x3f\x77\xff\x47\xe2\x96\x21\xfb\x1f\x00\x00\x00\x26\xc8\xdd"
"\xff\xd1\xb8\xc5\xfe\x07\x00\x00\x80\x36\x72\xf7\x7f\x2c\x6e\xb1\xff"
"\x01\x00\x00\xa0\x8d\xdc\xfd\x1f\x8f\x5b\x86\xec\x7f\xfd\xbf\xfe\x5f"
"\xff\xaf\xff\xd7\xff\xeb\xff\xaf\xa4\xff\xd7\xff\x1f\xd1\xff\xeb\xff"
"\x77\xfe\x5f\xff\xaf\xff\xe7\xdc\x6a\xfd\x7f\xee\xfe\x4f\xc4\x2d\x43"
"\xf6\x3f\x00\x00\x00\x4c\x90\xbb\xff\x93\x71\x8b\xfd\x0f\x00\x00\x00"
"\x6d\xe4\xee\xff\x54\xdc\x62\xff\x03\x00\x00\x40\x1b\xb9\xfb\x3f\x1d"
"\xb7\x0c\xd9\xff\xfa\x7f\xfd\xbf\xfe\x5f\xff\xaf\xff\xd7\xff\x5f\x49"
"\xff\xaf\xff\x3f\xa2\xff\xd7\xff\xef\xfc\xbf\xfe\x5f\xff\xcf\xb9\xd5"
"\xfa\xff\xdc\xfd\x9f\x89\x5b\x86\xec\x7f\x00\x00\x00\x98\x20\x77\xff"
"\x67\xe3\x16\xfb\x1f\x00\x00\x00\xda\xc8\xdd\xff\xb9\xb8\xc5\xfe\x07"
"\x00\x00\x80\x36\x72\xf7\x7f\x3e\x6e\x19\xb2\xff\xf5\xff\xfa\x7f\xfd"
"\xbf\xfe\x5f\xff\xaf\xff\xbf\x92\xfe\x5f\xff\x7f\x44\xff\xaf\xff\xdf"
"\xf9\x7f\xfd\xbf\xfe\x9f\x73\xab\xf5\xff\xb9\xfb\xbf\x10\xb7\x0c\xd9"
"\xff\x00\x00\x00\x30\x41\xee\xfe\x2f\xc6\x2d\xf6\x3f\x00\x00\x00\xb4"
"\x91\xbb\xff\x4b\x71\x8b\xfd\x0f\x00\x00\x00\x6d\xe4\xee\xff\x72\xdc"
"\x32\x64\xff\xeb\xff\xf5\xff\xfa\x7f\xfd\xbf\xfe\x5f\xff\x7f\x25\xfd"
"\xbf\xfe\xff\x88\xfe\x5f\xff\xbf\xf3\xff\xfa\x7f\xfd\x3f\xe7\x56\xeb"
"\xff\x73\xf7\x7f\x25\x6e\x19\xb2\xff\x01\x00\x00\x60\x82\xdc\xfd\x5f"
"\x8d\x5b\xec\x7f\x00\x00\x00\x68\x23\x77\xff\xd7\xe2\x16\xfb\x1f\x00"
"\x00\x00\xda\xc8\xdd\xff\xf5\xb8\x65\xc8\xfe\xd7\xff\xeb\xff\xf5\xff"
"\xfa\x7f\xfd\xbf\xfe\xff\x4a\xfa\x7f\xfd\xff\x11\xfd\xbf\xfe\x7f\xe7"
"\xff\xf5\xff\xfa\x7f\xce\xad\xd6\xff\xe7\xee\xff\x46\xdc\x32\x64\xff"
"\x03\x00\x00\xc0\x04\xb9\xfb\xbf\x19\xb7\xd8\xff\x00\x00\x00\xd0\x46"
"\xee\xfe\x6f\xc5\x2d\xf6\x3f\x00\x00\x00\xb4\x91\xbb\xff\xdb\x71\xcb"
"\x90\xfd\xaf\xff\xd7\xff\xeb\xff\xf5\xff\xfa\x7f\xfd\xff\x95\xf4\xff"
"\xfa\xff\x23\xfa\x7f\xfd\xff\xce\xff\xeb\xff\xf5\xff\x9c\x5b\xad\xff"
"\xcf\xdd\xff\x9d\xb8\x65\xc8\xfe\x07\x00\x00\x80\x09\x72\xf7\x7f\x37"
"\x6e\xb1\xff\x01\x00\x00\xa0\x8d\xdc\xfd\xdf\x8b\x5b\xec\x7f\x00\x00"
"\x00\x68\x23\x77\xff\xf7\xe3\x96\x21\xfb\x5f\xff\xaf\xff\xd7\xff\xeb"
"\xff\xf5\xff\xfa\xff\x2b\xe9\xff\xf5\xff\x47\xf4\xff\xfa\xff\x9d\xff"
"\xd7\xff\xeb\xff\x39\xb7\x5a\xff\x9f\xbb\xff\x07\x71\xcb\x90\xfd\x0f"
"\x00\x00\x00\x13\xe4\xee\xff\x61\xdc\x62\xff\x03\x00\x00\x40\x1b\xb9"
"\xfb\x7f\x14\xb7\xd8\xff\x00\x00\x00\xd0\x46\xee\xfe\x1f\xc7\x2d\x43"
"\xf6\xbf\xfe\x5f\xff\xaf\xff\xd7\xff\xeb\xff\xf5\xff\x57\xd2\xff\xeb"
"\xff\x8f\xe8\xff\xf5\xff\x3b\xff\xaf\xff\xd7\xff\x73\x6e\xb5\xfe\x3f"
"\x77\xff\x4f\xe2\x96\x21\xfb\x1f\x00\x00\x00\x26\xc8\xdd\xff\xd3\xb8"
"\xc5\xfe\x07\x00\x00\x80\x36\x72\xf7\xff\x2c\x6e\xb1\xff\x01\x00\x00"
"\xa0\x8d\xdc\xfd\x3f\x8f\x5b\x86\xec\x7f\xfd\xbf\xfe\x5f\xff\xaf\xff"
"\xd7\xff\xeb\xff\xaf\xa4\xff\xd7\xff\x1f\xd1\xff\xeb\xff\x77\xfe\x5f"
"\xff\xaf\xff\xe7\xdc\x6a\xfd\x7f\xee\xfe\x5f\xc4\x2d\x43\xf6\x3f\x00"
"\x00\x00\x4c\x90\xbb\xff\x97\x71\x8b\xfd\x0f\x00\x00\x00\x6d\xe4\xee"
"\xff\x55\xdc\x62\xff\x03\x00\x00\x40\x1b\xb9\xfb\x7f\x1d\xb7\x0c\xd9"
"\xff\xfa\x7f\xfd\xbf\xfe\x5f\xff\xaf\xff\xd7\xff\x5f\x49\xff\xaf\xff"
"\x3f\xa2\xff\xd7\xff\xef\xfc\xbf\xfe\x5f\xff\xcf\xb9\xd5\xfa\xff\xdc"
"\xfd\xbf\x89\x5b\x86\xec\x7f\x00\x00\x00\x98\x20\x77\xff\x6f\xe3\x16"
"\xfb\x1f\x00\x00\x00\xda\xc8\xdd\xff\xbb\xb8\xc5\xfe\x07\x00\x00\x80"
"\x36\x72\xf7\xff\x3e\x6e\x19\xb2\xff\xf5\xff\xfa\x7f\xfd\xbf\xfe\x5f"
"\xff\xaf\xff\xbf\x92\xfe\x5f\xff\x7f\x44\xff\xaf\xff\xdf\xf9\x7f\xfd"
"\xbf\xfe\x9f\x73\xab\xf5\xff\xb9\xfb\xff\x10\xb7\x0c\xd9\xff\x00\x00"
"\x00\x30\x41\xee\xfe\x3f\xc6\x2d\xf6\x3f\x00\x00\x00\xb4\x91\xbb\xff"
"\x4f\x71\x8b\xfd\x0f\x00\x00\x00\x6d\xe4\xee\xff\x73\xdc\x32\x64\xff"
"\xeb\xff\xf5\xff\xfa\x7f\xfd\xbf\xfe\x5f\xff\x7f\x25\xfd\xbf\xfe\xff"
"\x88\xfe\x5f\xff\xbf\xf3\xff\xfa\x7f\xfd\x3f\xe7\x56\xeb\xff\x73\xf7"
"\xff\x25\x6e\x19\xb2\xff\x01\x00\x00\x60\x82\xdc\xfd\x7f\x8d\x5b\xec"
"\x7f\x00\x00\x00\x68\x23\x77\xff\xdf\xe2\x16\xfb\x1f\x00\x00\x00\xda"
"\xc8\xdd\xff\xf7\xb8\x65\xc8\xfe\xd7\xff\xeb\xff\xf5\xff\xfa\x7f\xfd"
"\xbf\xfe\xff\x4a\xfa\x7f\xfd\xff\x11\xfd\xbf\xfe\x7f\xe7\xff\xf5\xff"
"\xfa\x7f\xce\xad\xd6\xff\xe7\xee\xff\x47\xdc\x32\x64\xff\x03\x00\x00"
"\xc0\x04\xb9\xfb\xff\x19\xb7\xd8\xff\x00\x00\x00\xd0\x46\xee\xfe\x7f"
"\xc5\x2d\xf6\x3f\x00\x00\x00\xb4\x91\xbb\xff\xdf\x71\xcb\x90\xfd\xaf"
"\xff\xd7\xff\xeb\xff\xf5\xff\xfa\x7f\xfd\xff\x95\xf4\xff\xfa\xff\x23"
"\xfa\x7f\xfd\xff\xce\xff\xeb\xff\xf5\xff\x9c\x5b\xad\xff\xcf\xdd\xff"
"\x9f\xb8\x65\xc8\xfe\x07\x00\x00\x80\x09\x72\xf7\xff\x37\x6e\xb1\xff"
"\x01\x00\x00\xa0\x8d\xdc\xfd\xff\x8b\x5b\xec\x7f\x00\x00\x00\x68\x23"
"\x77\xff\xff\xe3\x96\x21\xfb\x5f\xff\xaf\xff\xd7\xff\xeb\xff\xf5\xff"
"\xfa\xff\x2b\xe9\xff\xf5\xff\x47\xf4\xff\xfa\xff\x9d\xff\xd7\xff\xeb"
"\xff\x39\xb7\x5a\xff\x9f\xbb\xff\x86\xb8\x65\xc8\xfe\x07\x00\x00\x80"
"\x09\x72\xf7\xdf\x18\xb7\xd8\xff\x00\x00\x00\xd0\x46\xee\xfe\x9b\xe2"
"\x16\xfb\x1f\x00\x00\x00\xda\xc8\xdd\x7f\x73\xdc\x32\x64\xff\xeb\xff"
"\xf5\xff\xfa\x7f\xfd\xbf\xfe\x5f\xff\x7f\x25\xfd\xbf\xfe\xff\x88\xfe"
"\x5f\xff\xbf\xf3\xff\xfa\x7f\xfd\x3f\xe7\x56\xeb\xff\x73\xf7\xdf\x12"
"\xb7\x0c\xd9\xff\x00\x00\x00\x30\x41\xee\xfe\x5b\xe3\x16\xfb\x1f\x00"
"\x00\x00\xda\xc8\xdd\x7f\x5b\xdc\x62\xff\x03\x00\x00\x40\x1b\xb9\xfb"
"\x6f\x8f\x5b\x86\xec\x7f\xfd\xbf\xfe\x5f\xff\xaf\xff\xd7\xff\xeb\xff"
"\xaf\xa4\xff\xd7\xff\x1f\xd1\xff\xeb\xff\x77\xfe\x5f\xff\xaf\xff\xe7"
"\xdc\x6a\xfd\x7f\xee\xfe\x3b\xe2\x96\x21\xfb\x1f\x00\x00\x00\x26\xc8"
"\xdd\x7f\x67\xdc\x62\xff\x03\x00\x00\x40\x1b\xb9\xfb\xef\x8a\x5b\xec"
"\x7f\x00\x00\x00\x68\x23\x77\xff\xdd\x71\xcb\x90\xfd\xaf\xff\xd7\xff"
"\xeb\xff\xf5\xff\xfa\x7f\xfd\xff\x95\xf4\xff\xfa\xff\x23\xfa\x7f\xfd"
"\xff\xce\xff\xeb\xff\xf5\xff\x9c\x5b\xad\xff\xcf\xdd\x7f\x4f\xdc\x32"
"\x64\xff\x03\x00\x00\xc0\x04\xb9\xfb\xef\x8d\x5b\xec\x7f\x00\x00\x00"
"\x68\x23\x77\xff\x7d\x71\x8b\xfd\x0f\x00\x00\x00\x6d\xe4\xee\xbf\x3f"
"\x6e\x19\xb2\xff\xf5\xff\xfa\x7f\xfd\xbf\xfe\x5f\xff\xaf\xff\xbf\x92"
"\xfe\x5f\xff\x7f\x44\xff\xaf\xff\xdf\xf9\x7f\xfd\xbf\xfe\x9f\x73\xab"
"\xf5\xff\xb9\xfb\x1f\x88\x5b\x86\xec\x7f\x00\x00\x00\x98\x20\x77\xff"
"\x83\x71\x8b\xfd\x0f\x00\x00\x00\x6d\xe4\xee\x7f\x28\x6e\xb1\xff\x01"
"\x00\x00\xa0\x8d\xdc\xfd\x0f\xc7\x2d\x43\xf6\xbf\xfe\x5f\xff\xaf\xff"
"\xd7\xff\xeb\xff\xf5\xff\x57\xd2\xff\xeb\xff\x8f\xe8\xff\xf5\xff\x3b"
"\xff\xaf\xff\xd7\xff\x73\x6e\xb5\xfe\x3f\x77\xff\x23\x71\xcb\x90\xfd"
"\x0f\x00\x00\x00\x13\xe4\xee\x7f\x34\x6e\xb1\xff\x01\x00\x00\xa0\x8d"
"\xdc\xfd\x8f\xc5\x2d\xf6\x3f\x00\x00\x00\xb4\x91\xbb\xff\xf1\xb8\x65"
"\xc8\xfe\xd7\xff\xeb\xff\xf5\xff\xfa\x7f\xfd\xbf\xfe\xff\x4a\xfa\x7f"
"\xfd\xff\x11\xfd\xbf\xfe\x7f\xe7\xff\xf5\xff\xfa\x7f\xce\xad\xd6\xff"
"\xe7\xee\x7f\x22\x6e\x19\xb2\xff\x01\x00\x00\x60\x82\xdc\xfd\x4f\xc6"
"\x2d\xf6\x3f\x00\x00\x00\xb4\x91\xbb\xff\xa9\xb8\xc5\xfe\x07\x00\x00"
"\x80\x36\x72\xf7\x3f\x1d\xb7\x0c\xd9\xff\xfa\x7f\xfd\xbf\xfe\x5f\xff"
"\xaf\xff\xd7\xff\x5f\x49\xff\xaf\xff\x3f\xa2\xff\xd7\xff\xef\xfc\xbf"
"\xfe\x5f\xff\xcf\xb9\xd5\xfa\xff\xdc\xfd\xcf\x04\x00\x00\xff\xff\x5e"
"\x68\x98\xcb",
23820));
NONFAILING(syz_mount_image(
/*fs=*/0x20005d40, /*dir=*/0x20005d80,
/*flags=MS_RDONLY|MS_NOSUID*/ 3,
/*opts=*/0x200001c0, /*chdir=*/1, /*size=*/0x5d0c,
/*img=*/0x20005e00));
break;
case 1:
res = syscall(__NR_openat, /*fd=*/0xffffffffffffff9cul, /*file=*/0ul,
/*flags=*/2ul, /*mode=*/0ul);
if (res != -1)
r[0] = res;
break;
case 2:
syscall(__NR_prctl, /*option=*/0x3aul, 0, 0, 0, 0);
break;
case 3:
NONFAILING(syz_mount_image(/*fs=*/0, /*dir=*/0, /*flags=*/0, /*opts=*/0,
/*chdir=*/0, /*size=*/0, /*img=*/0));
break;
case 4:
syscall(__NR_read, /*fd=*/r[0], /*buf=*/0ul, /*len=*/0ul);
break;
case 5:
syscall(__NR_write, /*fd=*/r[0], /*arg=*/0ul, /*len=*/0ul);
break;
case 6:
NONFAILING(memcpy((void*)0x20000000, ".\000", 2));
res = syscall(__NR_fspick, /*dfd=*/0xffffff9c, /*path=*/0x20000000ul,
/*flags=*/0ul);
if (res != -1)
r[1] = res;
break;
case 7:
syscall(__NR_fsconfig, /*fd=*/r[1], /*cmd=*/7ul, /*key=*/0ul,
/*value=*/0ul,
/*aux=*/0ul);
break;
case 8:
NONFAILING(memcpy((void*)0x200022c0, "./file1\000", 8));
syscall(__NR_open, /*file=*/0x200022c0ul,
/*flags=O_LARGEFILE|O_CREAT|O_CLOEXEC|O_RDWR|0x1*/ 0x88043ul,
/*mode=*/0ul);
break;
case 9:
syscall(__NR_read, /*fd=*/-1, /*buf=*/0ul, /*len=*/0ul);
break;
case 10:
NONFAILING(*(uint32_t*)0x200063c0 = 0x10);
NONFAILING(*(uint32_t*)0x200063c4 = 0);
NONFAILING(*(uint64_t*)0x200063c8 = 0);
syscall(__NR_write, /*fd=*/-1, /*arg=*/0x200063c0ul, /*len=*/0x10ul);
break;
case 11:
syscall(__NR_write, /*fd=*/r[0], /*arg=*/0ul, /*len=*/0ul);
break;
}
}
int main(void) {
syscall(__NR_mmap, /*addr=*/0x1ffff000ul, /*len=*/0x1000ul, /*prot=*/0ul,
/*flags=MAP_FIXED|MAP_ANONYMOUS|MAP_PRIVATE*/ 0x32ul, /*fd=*/-1,
/*offset=*/0ul);
syscall(__NR_mmap, /*addr=*/0x20000000ul, /*len=*/0x1000000ul,
/*prot=PROT_WRITE|PROT_READ|PROT_EXEC*/ 7ul,
/*flags=MAP_FIXED|MAP_ANONYMOUS|MAP_PRIVATE*/ 0x32ul, /*fd=*/-1,
/*offset=*/0ul);
syscall(__NR_mmap, /*addr=*/0x21000000ul, /*len=*/0x1000ul, /*prot=*/0ul,
/*flags=MAP_FIXED|MAP_ANONYMOUS|MAP_PRIVATE*/ 0x32ul, /*fd=*/-1,
/*offset=*/0ul);
setup_802154();
install_segv_handler();
for (procid = 0; procid < 4; procid++) {
if (fork() == 0) {
use_temporary_dir();
loop();
}
}
sleep(1000000);
return 0;
}
syz_mount_image$jfs(&(0x7f0000005d40), &(0x7f0000005d80)='./file0\x00', 0x3, &(0x7f00000001c0)=ANY=[@ANYBLOB="00b9eae703197bde2c8574fc40b91b2717b15fe05809340625f2c22274215976eb88ff37127f64af21880fe832184fb1aab0deb8a5fcefde16020776a80fa6a77282946670af1d5df52f5d9b99d7846a5bdf29345c5e781375d62b0689eca17ca62c2554eeb5179404c6c70591828b22cb4a7f3e76fcd558082706fa24f9f05aa06b0c818e00"/147], 0x1, 0x5d0c, &(0x7f0000005e00)="$eJzs3dtvHFcdB/DfXry+lKZWH6oQcUlTLi2lSeOkTcutqZB4AAGVqrwnMm4VkQJKQkUri7iKxDsSz6j8ETyDUB+LxJ/APxAp7lMFooPGPicZT9bepIl31j6fj+TM/ObseM/k6/Hsemb2BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQP/7Rm6d7EXHx3bRgOeILMYjoRyzW9fGoZ87nxw8j4mhsNcdTEXFkPqJef+ufJyLORsTHRyJub66v1otX7rMfL71x658/ffNnG3/86j/+9d+P/vy3dvsbH/3wJ3+9EbF89A9/+t+NR7PtAAAAUIqqqqpeept/LL2/73fdKQBgKvLxv0rycrVarVar1YevbqrGu9EsImKjuU79msHpeAA4YDbi0667QIfkX7RhRDzWdSeAmdbrugPsi9ub66u9lG+veTw4vt2erwXZkf9G7879HbtNJ2lfYzKtn6+bMYgnd+nP4pT6MEty/v12/he320fpcfud/7Tslv9o+9an4uT8B+38Ww5P/v2x+Zcq5z98oPwH8gcAAAAAgBmW//6/3PH53/mH35T7stf53+NT6gMAAAAAAAAAPGoPO/7fHcb/AwAAgJlVv1evfXjk7rLdPoutXn6hF/F46/FAYdLNMktd9wMAAAAAAAAAAAAASjLcvob3Qi9iLiIeX1qqqqr+amrXD+ph1z/oSt9+KFnXv+QBAGDbx0da9/L3IhYi4kL6rL+5paWlqlpYXKqWqsX5/Hp2NL9QLTbe1+ZpvWx+dB8viIejqv5mC431mia9X57U3v5+9XONqsF9dGw6OgwcACJi+2h02xHpkKmqJ6LrVzkcDPb/w8f+z/3o+ucUAAAA2H9VVVW99HHex9I5/37XnQIApiIf/9vnBdRqtVqtVh++uqka70aziIiN5jr1awbD8QPAAbMRn3bdBTok/6INI+Jo150AZlqv6w6wL25vrq/2Ur695vEgje+erwXZkf9Gb2u9vP646STta0ym9fN1Mwbx5C79eWpKfZglOf9+O/+L2+2j9Lj9zn9adsu/3s7lDvrTtZz/oJ1/y+HJvz82/1Ll/IcPlP9A/gAAAAAAMMPy3/+Xnf/NmwwAAAAAAAAAB87tzfXVfN9rPv//pTGPc//n4ZTz78m/SDn/fjv/1gU5g8b8rdfv5v/J5vrqh18895U8nfn85waj+rnnev3BMF3zU829FZfjSqzFi/c8frij/fQ97XM72lcmtJ+5p31Uty/m9pOxGr+OK/GLO+3zEy6MWpjQXk1oz/kP7P9FyvkPG191/kupvdea1m590L9nv29Oxz3P+Z9/du7evWv6bsbgzrY11dt3ooP+bP2fPDaK315bu3ryd5euX796OtJkx9KVSJNHLOc/l75y/s8+s92ef+8399dbH4weOP9ZcTOGu+b/TGO+3t7npty3LuT8R+kr55+PQOP3/4Oc/+77//Md9AcAAAAAAAAAAAAAAAD2UlXV1i2i5yPi5XT/T1f3ZgIA05WP/1WSl6vVarVarT58dVM13mvNIiL+3lynfs3w+3HfDACYZZ9FxL+77gSdkX/B8uf91dOvdd0ZYKquvff+Ly9dubJ29VrXPQEAAAAAAAAAPq88/ufxxvjPW9cBtcaN3jH+6+tx/JPN9dV3l//z5QM3/md/NNga6zxt0NOx9/jfJ2Lv8b+HE55vbkL7aEL7/IT2hQntY2/0aMj5P50yzvkfSxu21/ivOf/2dMJTdmqv8V+f7aA/Xcv5n0hjPef8v9l6XDP/6i8Hefzf/o78T11/5zenrr33/guX37n09trba786c3bl1dMr586+8uKpty5fWUv/dtjj/ZXzz2Nfuw60LDn/nLn8y5Lz/3qq5V+WnP83Ui3/suT88+s9+Zcl55/f+8i/LDn/51It/7Lk/L+VavmXJef/fKrlX5ac/7dTLf+y5PxfSLX8y5LzP5lq+Zcl538q1fIvS84/n+GSf1ly/vnKBvmXJee/kmr5lyXnfybV8i9Lzv9squVflpz/S6mWf1ly/i+nWv5lyfmfS7X8y5LzfyXV8i9Lzv/VVMu/LDn/76Ra/mXJ+X831fIvS87/e6mWf1ly/t9PtfzLkvP/QarlX5ac/2upln9Z7n7+vxkzZszkma5/MwEAAAAAAAAAAAAAbdO4nLjrbQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+D87cCAAAAAAAOT/2ghVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV2IEDAQAAAAAg/9dGqKqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsLOvcXIWd5nAP/2ZK8NsTeJIRwM2MaAgcW7PuBDWycGQkqhbQgJ6YnUuPbaOPGpXpuTkNgImiKBVC64oJWSAkJVLloFtYkaJBpxUalNb9qr9qZKKzWqUBQqJ+pNo4Kjb+Z9X8/MrudbYw+Z+d7fL8J/e+ebmXe+eWd2n42eAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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")
r0 = openat$fuse(0xffffffffffffff9c, 0x0, 0x2, 0x0)
prctl$PR_GET_IO_FLUSHER(0x3a) (async)
syz_mount_image$fuse(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
read$FUSE(r0, 0x0, 0x0)
write$FUSE_ENTRY(r0, 0x0, 0x0)
r1 = fspick(0xffffffffffffff9c, &(0x7f0000000000)='.\x00', 0x0)
fsconfig$FSCONFIG_CMD_RECONFIGURE(r1, 0x7, 0x0, 0x0, 0x0) (async)
open(&(0x7f00000022c0)='./file1\x00', 0x88043, 0x0) (async)
read$FUSE(0xffffffffffffffff, 0x0, 0x0)
write$FUSE_INTERRUPT(0xffffffffffffffff, &(0x7f00000063c0)={0x10}, 0x10)
write$FUSE_IOCTL(r0, 0x0, 0x0)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment