]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
2400b5
authorToni Wilen <twilen@winuae.net>
Sun, 18 Dec 2011 14:48:52 +0000 (16:48 +0200)
committerToni Wilen <twilen@winuae.net>
Sun, 18 Dec 2011 14:48:52 +0000 (16:48 +0200)
29 files changed:
audio.cpp
autoconf.cpp
cdrom-handler.cpp [new file with mode: 0644]
custom.cpp
filesys.cpp
filesys_bootrom.cpp
include/autoconf.h
include/filesys.h
include/scsidev.h
include/xwin.h
include/zfile.h
od-win32/blkdev_win32_ioctl.cpp
od-win32/direct3d.cpp
od-win32/direct3d.h
od-win32/dxwrap.cpp
od-win32/dxwrap.h
od-win32/picasso96_win.cpp
od-win32/sounddep/sound.cpp
od-win32/win32.cpp
od-win32/win32.h
od-win32/win32_filesys.cpp
od-win32/win32_scaler.cpp
od-win32/win32gfx.cpp
od-win32/win32gfx.h
od-win32/win32gui.cpp
od-win32/winuae_msvc10/winuae_msvc.vcxproj
od-win32/winuaechangelog.txt
scsiemul.cpp
zfile.cpp

index a9d61cf7838ace4512e2b44166b487f84b84dbc3..457ada09c779c65ae09c60dd48ec01a696730b7f 100644 (file)
--- a/audio.cpp
+++ b/audio.cpp
@@ -1984,12 +1984,13 @@ void led_filter_audio (void)
 
 void audio_vsync (void)
 {
+#if 0
 #if SOUNDSTUFF > 0
        int max, min;
        int vsync = isvsync ();
        static int lastdir;
 
-       if (!vsync) {
+       if (1 || !vsync) {
                extrasamples = 0;
                return;
        }
@@ -2015,6 +2016,7 @@ void audio_vsync (void)
        if (extrasamples < -99)
                extrasamples = -99;
 #endif
+#endif
 }
 
 void restore_audio_finish (void)
index 9c239d2872da02dbde7715bb9d7f76af1cbd84a6..8c6256a38211e9a5b2a71396873fcbdf465854eb 100644 (file)
@@ -167,6 +167,19 @@ uae_u32 ds (const TCHAR *str)
        return v;
 }
 
+uae_u32 ds_bstr_ansi (const uae_char *str)
+{
+       int len;
+       len = strlen (str) + 2;
+       rt_straddr -= len;
+       while (rt_straddr & 3)
+               rt_straddr--;
+       rtarea[rt_straddr] = len - 2;
+       strcpy ((uae_char*)rtarea + rt_straddr + 1, str);
+       return addr (rt_straddr);
+}
+
 void calltrap (uae_u32 n)
 {
        dw (0xA000 + n);
diff --git a/cdrom-handler.cpp b/cdrom-handler.cpp
new file mode 100644 (file)
index 0000000..a25b02c
--- /dev/null
@@ -0,0 +1,1179 @@
+unsigned char cdfs_rom[] = {
+0x1f, 0x8b, 0x08, 0x08, 0x95, 0xa0, 0xed, 0x4e, 0x00, 0x03, 0x63, 0x64, 0x72, 0x6f, 0x6d, 0x2d, 
+0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x2e, 0x68, 0x75, 0x6e, 0x6b, 0x00, 0x9d, 0xbd, 0x0f, 
+0x78, 0x53, 0xc7, 0x95, 0x37, 0x3c, 0x57, 0x92, 0x85, 0x2c, 0x14, 0x23, 0x8c, 0x70, 0x15, 0xe2, 
+0xc2, 0x45, 0x91, 0x15, 0x61, 0x64, 0xcb, 0x71, 0x81, 0x75, 0x5c, 0x87, 0xc8, 0xb2, 0x6c, 0x64, 
+0x61, 0x64, 0x57, 0xb6, 0x89, 0x93, 0x52, 0xb8, 0x01, 0x5b, 0x32, 0xc6, 0x7f, 0x14, 0x21, 0x28, 
+0xc9, 0xe3, 0x2f, 0x95, 0x8d, 0x93, 0x9a, 0x24, 0x6f, 0x4d, 0x80, 0xf0, 0x66, 0xf3, 0xe4, 0xe9, 
+0xe6, 0xcb, 0xd7, 0xaf, 0xa5, 0x26, 0x4d, 0x5d, 0x4a, 0xb3, 0xac, 0x97, 0x2f, 0x38, 0x34, 0x9b, 
+0x97, 0x66, 0xb3, 0x79, 0x4d, 0x4a, 0x59, 0x36, 0x4b, 0x13, 0x42, 0xd9, 0x24, 0x4b, 0x13, 0x20, 
+0x94, 0x10, 0xe2, 0x18, 0xdd, 0xef, 0x77, 0xe6, 0x5e, 0xc9, 0x32, 0x49, 0xba, 0xd9, 0x17, 0x9e, 
+0xd1, 0xbd, 0x33, 0x77, 0xe6, 0xcc, 0x99, 0x33, 0x67, 0xce, 0x9c, 0x73, 0xe6, 0x8f, 0x19, 0xd3, 
+0xfe, 0x85, 0x29, 0xff, 0xb4, 0xea, 0x53, 0xc3, 0xd8, 0xbc, 0xd7, 0xf0, 0x78, 0x4a, 0x79, 0xd7, 
+0xfe, 0x27, 0xc5, 0xdd, 0x65, 0x4c, 0x17, 0xfc, 0x07, 0xc6, 0x2c, 0xaf, 0xb5, 0x0c, 0x05, 0xb7, 
+0xec, 0xdc, 0x19, 0x6c, 0x96, 0x4f, 0xf8, 0xdf, 0x2f, 0x2b, 0xf7, 0x6f, 0x63, 0x76, 0xef, 0xcf, 
+0xfc, 0x5d, 0xf2, 0x09, 0xfa, 0xda, 0xde, 0x22, 0x56, 0xa0, 0xd4, 0xb6, 0x73, 0x83, 0x8b, 0x3d, 
+0xf2, 0xa9, 0xc5, 0xbd, 0x04, 0x4e, 0x3e, 0xbb, 0xb8, 0xb7, 0xca, 0xb7, 0xda, 0x27, 0xbf, 0xc7, 
+0xbf, 0x0d, 0xf2, 0x6f, 0xe7, 0x6f, 0xe9, 0x65, 0x46, 0xf9, 0xa2, 0x9a, 0xe3, 0x8a, 0xf7, 0x17, 
+0xf2, 0x35, 0x84, 0xc9, 0xaa, 0xcf, 0x18, 0xd3, 0x0d, 0xb8, 0x1e, 0x40, 0xa2, 0x2e, 0xf8, 0x42, 
+0x32, 0xa7, 0xfe, 0x22, 0x33, 0x05, 0x12, 0x11, 0x26, 0xe8, 0x57, 0x7c, 0x24, 0xff, 0x31, 0xce, 
+0x9c, 0x80, 0x10, 0x1e, 0x2c, 0xeb, 0x65, 0xb9, 0xff, 0x36, 0x16, 0x5d, 0x1e, 0x13, 0xfc, 0x95, 
+0xa9, 0xbc, 0x72, 0xb9, 0xdd, 0x43, 0x39, 0xd9, 0x69, 0x5b, 0x91, 0x7c, 0x45, 0x2c, 0x92, 0xcf, 
+0x6e, 0x65, 0x92, 0x7e, 0xa4, 0x2f, 0x62, 0xd8, 0x2a, 0x1c, 0xdc, 0xde, 0x7d, 0x55, 0xd2, 0x6c, 
+0x65, 0xa2, 0x76, 0x7c, 0xfb, 0x78, 0x62, 0xd5, 0x27, 0x86, 0x6b, 0x81, 0xbd, 0x61, 0x8b, 0xa8, 
+0x7d, 0x7f, 0x90, 0xe2, 0xee, 0xa5, 0x86, 0xb3, 0xa2, 0x2f, 0xb8, 0xd3, 0x95, 0x68, 0x19, 0x3a, 
+0xb9, 0xfd, 0xe4, 0x76, 0x71, 0x69, 0xd9, 0xb5, 0xb0, 0xc5, 0x16, 0x30, 0x57, 0xb0, 0xe5, 0x69, 
+0xe8, 0xc5, 0x12, 0x63, 0xfd, 0x05, 0xc0, 0x56, 0xf7, 0x14, 0x33, 0xce, 0xdd, 0x24, 0xcb, 0x2c, 
+0xbb, 0x60, 0x93, 0xfc, 0x29, 0xcb, 0x41, 0x9a, 0xc0, 0xf4, 0x2c, 0x97, 0xbe, 0x09, 0xfb, 0x58, 
+0x9e, 0x6d, 0x31, 0x13, 0x22, 0x26, 0x1e, 0x3b, 0xc4, 0xf2, 0x0a, 0x2a, 0x59, 0x21, 0xf2, 0x7d, 
+0xce, 0x1c, 0xb9, 0x73, 0xfc, 0x7d, 0x25, 0x95, 0x05, 0x7e, 0x56, 0x5c, 0xe0, 0x61, 0xcb, 0xa2, 
+0x32, 0x7e, 0xcb, 0xd3, 0xd0, 0x7b, 0xc5, 0x3a, 0x5b, 0x20, 0xdd, 0xea, 0xcb, 0xe9, 0xf4, 0xad, 
+0xa1, 0xfe, 0x15, 0x7f, 0x66, 0xb9, 0x51, 0xcd, 0x48, 0x7f, 0x98, 0xc9, 0xe6, 0xba, 0x8f, 0xd6, 
+0xe4, 0xcb, 0x87, 0x82, 0xdf, 0x0b, 0x6e, 0x71, 0x1b, 0xdd, 0x1a, 0x3b, 0xf3, 0x23, 0x9f, 0xae, 
+0x97, 0xe8, 0xbe, 0x49, 0x6c, 0x19, 0x42, 0xeb, 0x2b, 0xd0, 0x1b, 0x02, 0x0f, 0x04, 0xc1, 0x5a, 
+0x0d, 0x6a, 0x76, 0x1c, 0x0e, 0xee, 0x52, 0xa9, 0x38, 0x1f, 0xfd, 0xb4, 0x4d, 0x96, 0xf9, 0x37, 
+0x43, 0x70, 0x57, 0x70, 0x34, 0x59, 0x41, 0x5f, 0x44, 0x8d, 0x7d, 0x81, 0x7d, 0x5d, 0x70, 0x0b, 
+0x7d, 0x55, 0x4b, 0xb2, 0x54, 0xc9, 0x8c, 0x12, 0xe6, 0xe0, 0xae, 0x8c, 0xfa, 0xec, 0x28, 0x99, 
+0x1f, 0x67, 0xd2, 0x51, 0x77, 0x8e, 0xab, 0x07, 0xd0, 0xd0, 0x06, 0x17, 0x60, 0xb8, 0x73, 0x6c, 
+0x88, 0x21, 0xc5, 0x84, 0x76, 0xac, 0x57, 0x52, 0xc4, 0x74, 0xca, 0x75, 0x89, 0x52, 0xfc, 0xef, 
+0xb3, 0x52, 0x7b, 0x0f, 0xb3, 0x88, 0x1d, 0x4c, 0x67, 0x0b, 0x39, 0x7a, 0x98, 0x39, 0xba, 0x66, 
+0x7c, 0x3f, 0xab, 0x00, 0x45, 0x74, 0xb7, 0x06, 0x98, 0xd1, 0xfb, 0x84, 0xf7, 0xe7, 0x4c, 0x97, 
+0xa6, 0xc6, 0xae, 0xba, 0x77, 0xea, 0x18, 0x95, 0x12, 0x6d, 0x80, 0x64, 0xa6, 0x92, 0xc7, 0x8f, 
+0x1d, 0x3f, 0x16, 0x67, 0x16, 0xab, 0x2d, 0x20, 0x6a, 0x52, 0xf9, 0xae, 0xef, 0xf4, 0x96, 0x3a, 
+0x59, 0xdd, 0x3b, 0x3e, 0x5d, 0xaa, 0x4e, 0x5b, 0x3b, 0x6b, 0xfa, 0x56, 0x2f, 0xcb, 0x66, 0xf9, 
+0xf4, 0x16, 0x15, 0x6e, 0xf5, 0x30, 0x91, 0xde, 0x00, 0xdd, 0x4e, 0xcf, 0x74, 0x0d, 0xa5, 0x0a, 
+0x56, 0x65, 0xcb, 0x0b, 0x7b, 0x98, 0x1d, 0xf0, 0x9d, 0xc0, 0xc9, 0x05, 0x8c, 0x4b, 0xec, 0x8b, 
+0x99, 0x21, 0xda, 0x31, 0xd2, 0xdf, 0xa9, 0x89, 0x77, 0x04, 0xf6, 0x33, 0x5d, 0xc4, 0x10, 0xd3, 
+0xa2, 0x47, 0x75, 0x52, 0x4e, 0x60, 0x77, 0x44, 0x17, 0xd5, 0x48, 0x9a, 0xe8, 0x75, 0xc2, 0x3a, 
+0x2a, 0xa0, 0x7f, 0xca, 0x4c, 0x8b, 0x59, 0x39, 0x33, 0x85, 0x4b, 0x28, 0x45, 0xec, 0x62, 0x4b, 
+0xcc, 0x66, 0x0b, 0xf3, 0xf7, 0xfb, 0x8f, 0xce, 0xf5, 0x30, 0x43, 0xed, 0x79, 0x96, 0xed, 0xd6, 
+0xd8, 0x8a, 0xd8, 0x92, 0x50, 0x9f, 0x5b, 0x70, 0x9b, 0x88, 0x86, 0x1b, 0xe3, 0x44, 0x7d, 0x69, 
+0x5b, 0xe0, 0x17, 0xec, 0x74, 0x24, 0x47, 0xb2, 0x86, 0x12, 0xa6, 0x6f, 0xb1, 0x6f, 0x1b, 0x66, 
+0x86, 0x75, 0x92, 0x31, 0xca, 0x6c, 0xec, 0x60, 0xa2, 0xfb, 0x43, 0x49, 0x63, 0x17, 0xe6, 0x7a, 
+0x53, 0xe5, 0xfd, 0x9b, 0x98, 0x29, 0xb3, 0x6c, 0xa0, 0x8b, 0xbd, 0x19, 0x31, 0xa0, 0xf6, 0x17, 
+0x98, 0x21, 0xe2, 0x44, 0x6c, 0x3c, 0x52, 0x18, 0x78, 0x81, 0x59, 0x23, 0xf9, 0x92, 0x4d, 0xac, 
+0x32, 0x9b, 0xfd, 0x09, 0xff, 0x98, 0xab, 0x8b, 0x28, 0x2f, 0xd7, 0x89, 0x55, 0xa1, 0xed, 0xe6, 
+0xb1, 0xd0, 0x80, 0xa4, 0x73, 0x98, 0xb6, 0xb1, 0x83, 0x03, 0xdd, 0x6f, 0x7b, 0x97, 0x38, 0x59, 
+0x01, 0xfa, 0x80, 0x6d, 0x2b, 0xd8, 0x24, 0x58, 0x58, 0x1c, 0xbf, 0x66, 0xd6, 0x2b, 0x2e, 0x16, 
+0xcc, 0xb1, 0x99, 0x67, 0xf7, 0xa1, 0x15, 0x89, 0x95, 0xe0, 0x82, 0x8d, 0xe3, 0xee, 0x0a, 0x26, 
+0x7c, 0x27, 0xe1, 0x5e, 0x2c, 0x98, 0x82, 0x4f, 0x36, 0x0c, 0x21, 0x7d, 0xa0, 0x96, 0xb8, 0x63, 
+0x4d, 0x46, 0xfa, 0x9e, 0x86, 0x21, 0xf0, 0x4e, 0x85, 0x9b, 0xa9, 0x39, 0x06, 0x79, 0x4c, 0xfd, 
+0x62, 0x63, 0x6f, 0x26, 0xde, 0x4c, 0xbc, 0xbf, 0x63, 0xbc, 0x6f, 0x3c, 0x81, 0x6f, 0x8f, 0xdb, 
+0x17, 0x0b, 0xd6, 0x68, 0x90, 0x53, 0x35, 0x88, 0xb6, 0xed, 0xac, 0x3e, 0xcf, 0x9e, 0xa0, 0xb6, 
+0x09, 0xf9, 0x6e, 0xa3, 0xd2, 0x36, 0xea, 0x49, 0x6a, 0x5f, 0xdd, 0x3b, 0xbd, 0xf9, 0x4a, 0xcf, 
+0xdb, 0xa9, 0xe7, 0xdd, 0xcc, 0xe2, 0xd6, 0x28, 0x79, 0x6e, 0x39, 0x14, 0x33, 0xba, 0x3a, 0x88, 
+0xef, 0xae, 0xc7, 0x1a, 0x88, 0xf3, 0xe7, 0xdb, 0x34, 0x6a, 0x5c, 0x4a, 0xbf, 0x79, 0xd3, 0x79, 
+0x3a, 0x15, 0xbe, 0xa8, 0xbf, 0x28, 0x7f, 0x00, 0x68, 0xa5, 0x69, 0x9e, 0x09, 0xdb, 0x19, 0x24, 
+0xc6, 0x5e, 0xd1, 0x13, 0x2d, 0x49, 0xa7, 0xc5, 0xb8, 0x1c, 0x89, 0x55, 0x92, 0x24, 0x3a, 0x82, 
+0x7e, 0x08, 0xc4, 0x58, 0x9a, 0x53, 0x7c, 0x81, 0x44, 0xb8, 0x6e, 0xc5, 0x45, 0x96, 0x8b, 0xf6, 
+0xe5, 0x79, 0x7f, 0xe6, 0x9e, 0xa9, 0xc8, 0x3c, 0xde, 0x17, 0xbf, 0x64, 0xae, 0xbb, 0xc7, 0xf4, 
+0x18, 0x27, 0x0b, 0x3c, 0x2c, 0x6f, 0x69, 0x2f, 0x9b, 0xc9, 0xf2, 0x0b, 0x56, 0x32, 0x67, 0x34, 
+0x0f, 0x6d, 0xb6, 0x67, 0x8c, 0xee, 0xb2, 0x8c, 0xf7, 0xe5, 0x62, 0xfa, 0xfd, 0x7a, 0xa7, 0xfb, 
+0x0e, 0x7a, 0x73, 0x6b, 0x82, 0xa3, 0x93, 0xaf, 0x37, 0x0c, 0x81, 0xeb, 0x75, 0x80, 0x6b, 0xa5, 
+0xb1, 0x8e, 0xd6, 0x1b, 0x30, 0x5a, 0x9c, 0x0b, 0xdb, 0x99, 0x8b, 0x95, 0x28, 0x14, 0x08, 0xcf, 
+0xc7, 0x88, 0x1f, 0x66, 0x75, 0x11, 0xaf, 0xbb, 0x90, 0x95, 0x50, 0x8a, 0xfb, 0x0d, 0xe4, 0x71, 
+0x21, 0x75, 0x1f, 0xcb, 0x0f, 0x8b, 0xf8, 0x15, 0xc3, 0xf3, 0xf0, 0xad, 0x0e, 0xf9, 0x47, 0x93, 
+0x87, 0xf1, 0xe6, 0xe2, 0xb9, 0x06, 0x39, 0xd7, 0x11, 0xbc, 0x3a, 0xef, 0x3e, 0x66, 0xf0, 0x02, 
+0x86, 0xf7, 0x67, 0xc8, 0x71, 0x0e, 0x6f, 0x28, 0x6d, 0x57, 0x46, 0x68, 0x39, 0x8d, 0x33, 0x47, 
+0x28, 0x6a, 0xb1, 0xa1, 0x97, 0x99, 0x90, 0xc6, 0xb2, 0xc9, 0xe9, 0x41, 0x49, 0x73, 0x08, 0x75, 
+0x28, 0x78, 0x94, 0xbe, 0xb4, 0x08, 0xfc, 0xee, 0x7c, 0x34, 0x9a, 0xc4, 0xd3, 0xa0, 0x8c, 0x64, 
+0xbc, 0x99, 0xc4, 0xc5, 0xac, 0xee, 0xdc, 0x20, 0xde, 0xcc, 0x0a, 0xc7, 0x5a, 0xef, 0x6d, 0x18, 
+0x12, 0xd1, 0xa3, 0x6b, 0x30, 0x96, 0x21, 0xbb, 0xdc, 0xcc, 0x00, 0x1a, 0x96, 0xa3, 0xb5, 0xd4, 
+0x96, 0x2b, 0xbc, 0x0f, 0xf5, 0x3b, 0xfb, 0x43, 0x09, 0x8c, 0x29, 0x66, 0x5f, 0xc0, 0xfb, 0xea, 
+0xb4, 0xff, 0xfd, 0x92, 0xe5, 0xc0, 0xc3, 0x07, 0xdc, 0x9d, 0x94, 0x2f, 0x78, 0x94, 0x4b, 0x39, 
+0x8b, 0x52, 0x73, 0x5b, 0xef, 0x14, 0x4d, 0x5a, 0x86, 0x4a, 0x3a, 0xd8, 0x1b, 0x6e, 0x03, 0x7e, 
+0x5f, 0x77, 0x1b, 0x52, 0xf9, 0x8b, 0xf7, 0x82, 0xf6, 0x2e, 0x6a, 0x2f, 0x66, 0x90, 0xab, 0x51, 
+0x01, 0xb1, 0x33, 0x19, 0x74, 0x4c, 0x51, 0x64, 0x04, 0xe9, 0x80, 0x80, 0x3c, 0x6f, 0x02, 0x27, 
+0x11, 0xfd, 0x7b, 0xab, 0x7b, 0x66, 0xea, 0x6b, 0xe9, 0x48, 0x61, 0x07, 0x5b, 0xe2, 0x9e, 0x49, 
+0x3c, 0xbf, 0xd1, 0x15, 0xdc, 0x33, 0x2f, 0x51, 0xfc, 0x58, 0x70, 0x8f, 0xb8, 0xd2, 0x86, 0xd4, 
+0xd0, 0x8e, 0x29, 0xe9, 0x43, 0x71, 0xd4, 0x64, 0x0e, 0xcc, 0x0e, 0xe7, 0x72, 0xde, 0x79, 0x3d, 
+0x6a, 0x98, 0xfa, 0x8a, 0x5a, 0x97, 0xd0, 0x78, 0xf4, 0x96, 0x30, 0x81, 0x7a, 0x29, 0xd0, 0xa1, 
+0x8e, 0x5c, 0xf4, 0x40, 0xc4, 0x86, 0xd8, 0x78, 0xa4, 0x04, 0x3d, 0x66, 0x8d, 0xe4, 0x49, 0xce, 
+0x7f, 0xfd, 0xad, 0x79, 0x0e, 0x1f, 0xb9, 0x1d, 0xca, 0xc8, 0xcd, 0x4b, 0x28, 0x73, 0x97, 0x83, 
+0x6a, 0xdc, 0xae, 0xcc, 0x23, 0xbf, 0x1a, 0xeb, 0x3e, 0x85, 0xb8, 0x4b, 0xa1, 0xc4, 0xcd, 0xad, 
+0xb7, 0x79, 0x58, 0xfe, 0x54, 0x7c, 0xde, 0x07, 0x88, 0x8b, 0xe9, 0x16, 0xf4, 0x3a, 0x98, 0x58, 
+0x88, 0xb2, 0x09, 0x37, 0x53, 0xbe, 0xe7, 0x3b, 0x1d, 0x1e, 0xe0, 0x6a, 0x01, 0x2d, 0x9d, 0x0a, 
+0xd7, 0x05, 0x47, 0x27, 0xca, 0xc0, 0xad, 0x75, 0xe8, 0xbf, 0x61, 0x56, 0x81, 0xd2, 0x86, 0xa9, 
+0x39, 0xa8, 0x65, 0x08, 0x73, 0xdf, 0xd3, 0x36, 0x82, 0xd0, 0x17, 0x4f, 0x8d, 0x2d, 0xbf, 0xc3, 
+0x03, 0xaa, 0x65, 0xe4, 0xbf, 0x0d, 0x73, 0x7c, 0x4d, 0x23, 0x13, 0xa7, 0xc9, 0x0c, 0x2d, 0xc9, 
+0x03, 0x7c, 0x35, 0x4f, 0x93, 0x18, 0xda, 0xe9, 0xf2, 0x02, 0xdf, 0x2d, 0x3c, 0xa6, 0xbd, 0x51, 
+0x5a, 0xe0, 0x8b, 0xd5, 0x36, 0x53, 0xad, 0xf1, 0xde, 0x74, 0x1b, 0x66, 0xaa, 0x32, 0xa0, 0x89, 
+0xcf, 0x5e, 0x68, 0xf5, 0x42, 0xf0, 0x32, 0xb3, 0x4f, 0xf5, 0x2c, 0xcd, 0x63, 0x18, 0x45, 0xb9, 
+0x2d, 0x18, 0x45, 0xbd, 0x26, 0xe4, 0xb2, 0xa7, 0x46, 0x11, 0x46, 0xcc, 0x99, 0xb0, 0x2b, 0xc5, 
+0x1f, 0x35, 0xa3, 0x9c, 0x9f, 0x44, 0x85, 0x33, 0x68, 0x9c, 0x5c, 0x7f, 0x54, 0x19, 0x55, 0xab, 
+0xc7, 0xa8, 0x07, 0x7c, 0x09, 0x49, 0x1f, 0x15, 0x38, 0x47, 0xf2, 0x99, 0x8c, 0xc3, 0x30, 0x4d, 
+0x95, 0xa6, 0x1a, 0x5b, 0x86, 0x6c, 0x4e, 0xe6, 0x3a, 0xb0, 0x8f, 0x95, 0x44, 0x9a, 0x00, 0x6b, 
+0x99, 0x02, 0x8b, 0x8f, 0x4c, 0x03, 0x41, 0x9c, 0xf4, 0xb6, 0x0c, 0xc5, 0x4a, 0x95, 0x36, 0xc8, 
+0xe5, 0xa9, 0xb2, 0x81, 0xbd, 0x2d, 0x43, 0xee, 0x00, 0x33, 0xd9, 0xd7, 0xb9, 0xd6, 0x49, 0xec, 
+0xba, 0x05, 0x63, 0xef, 0x8c, 0xb7, 0x50, 0x58, 0xc2, 0x4b, 0x98, 0x33, 0xf9, 0x9a, 0x72, 0xd0, 
+0x68, 0x98, 0x84, 0xb6, 0x75, 0x17, 0x46, 0x83, 0x76, 0x8d, 0xc3, 0xad, 0x95, 0x44, 0xed, 0xd8, 
+0x30, 0x93, 0x22, 0x16, 0xd4, 0xe3, 0x8c, 0xe4, 0xe0, 0xf7, 0x68, 0x98, 0xd7, 0x26, 0xaf, 0x69, 
+0x19, 0xe2, 0xdf, 0x5a, 0x22, 0x34, 0x3a, 0x1a, 0xd2, 0x92, 0xe6, 0x71, 0x50, 0xaf, 0x33, 0x44, 
+0xf2, 0xb7, 0x93, 0xca, 0x84, 0x2d, 0x06, 0x7c, 0x88, 0xe4, 0xd0, 0xec, 0xae, 0x50, 0x33, 0x74, 
+0xba, 0x61, 0x88, 0x43, 0xab, 0x08, 0x0c, 0x0b, 0xdb, 0x22, 0xc6, 0xd4, 0x18, 0xe3, 0xf4, 0x68, 
+0xed, 0x71, 0xa0, 0x7c, 0x7b, 0x4c, 0x38, 0x90, 0x08, 0xe7, 0x4d, 0xd5, 0x96, 0xbc, 0xd0, 0x32, 
+0x84, 0x19, 0xa4, 0x95, 0xb5, 0x4b, 0xfa, 0x46, 0x82, 0xdd, 0x4e, 0xa9, 0xd7, 0xfa, 0x15, 0x1c, 
+0x84, 0x78, 0x98, 0xb1, 0x1f, 0x81, 0x77, 0x5e, 0xa1, 0x51, 0xc5, 0x75, 0x88, 0xa7, 0xdc, 0xba, 
+0xe0, 0x6e, 0x9b, 0x37, 0x8d, 0xd5, 0x23, 0x5c, 0x72, 0x16, 0xb2, 0x73, 0x11, 0x07, 0xe4, 0x0c, 
+0xd3, 0xfd, 0xc1, 0x8e, 0x5f, 0xed, 0x47, 0x2a, 0xb5, 0xce, 0xba, 0xa1, 0x23, 0xd9, 0xf4, 0x76, 
+0x9d, 0xca, 0x01, 0xcf, 0x49, 0xad, 0x01, 0xd0, 0x28, 0x92, 0xee, 0x81, 0xba, 0x49, 0x49, 0xcf, 
+0xdf, 0x9f, 0xa4, 0x7e, 0x0c, 0xe7, 0xba, 0xb3, 0xb8, 0x86, 0xf2, 0x16, 0xb0, 0xd8, 0xc3, 0xa5, 
+0xdc, 0x12, 0xca, 0x7f, 0xf7, 0x98, 0x8f, 0xcd, 0xf5, 0x08, 0x4b, 0x24, 0xc7, 0xb6, 0x65, 0xa7, 
+0x86, 0x56, 0x80, 0x13, 0x23, 0x15, 0x85, 0xb3, 0xf4, 0x0f, 0xa3, 0xa6, 0xd5, 0xc4, 0x97, 0xad, 
+0x13, 0xc4, 0xb3, 0xf5, 0x79, 0x2e, 0xa3, 0xfe, 0x11, 0xe0, 0x75, 0x4e, 0xec, 0x10, 0x3a, 0xa7, 
+0xe8, 0x66, 0x67, 0xd0, 0xbc, 0x3c, 0xaf, 0x0e, 0x33, 0x5f, 0x84, 0x65, 0xef, 0x79, 0x48, 0x20, 
+0x0d, 0xd4, 0x30, 0x56, 0x88, 0xdf, 0xac, 0x0f, 0xb7, 0x2e, 0x3b, 0x39, 0x54, 0x7b, 0x51, 0xb3, 
+0xba, 0x30, 0x20, 0xb1, 0xec, 0x5c, 0xd1, 0xe3, 0x68, 0x67, 0xc6, 0xa8, 0x0c, 0xae, 0x35, 0x79, 
+0xf7, 0x33, 0x33, 0x24, 0xa0, 0x01, 0x73, 0xbb, 0x33, 0x3c, 0x2f, 0x96, 0x75, 0x80, 0x34, 0xd3, 
+0xe7, 0xed, 0xab, 0x90, 0x6e, 0xba, 0x8d, 0x74, 0xde, 0x37, 0x99, 0x19, 0x94, 0x79, 0x1c, 0xdf, 
+0x8f, 0x46, 0x0a, 0xe3, 0xb9, 0x07, 0xe9, 0xfb, 0xe3, 0x5d, 0xba, 0x58, 0x96, 0x64, 0x88, 0xdf, 
+0x8c, 0xd8, 0x43, 0xb1, 0x05, 0x28, 0xb3, 0x2d, 0xa3, 0xc4, 0xbb, 0x28, 0x71, 0x2f, 0xf2, 0xd7, 
+0x85, 0xd7, 0xf3, 0x1c, 0x6b, 0xba, 0x2c, 0xb1, 0x59, 0xc8, 0xd3, 0x64, 0xa9, 0x60, 0x54, 0xbe, 
+0x2e, 0xb7, 0x82, 0x65, 0x49, 0xc6, 0xf8, 0x02, 0xbc, 0x7b, 0xba, 0x0c, 0xb1, 0x5b, 0xd0, 0x57, 
+0xb9, 0xd2, 0x32, 0x53, 0x02, 0x0d, 0xd1, 0x46, 0x8a, 0xe9, 0x69, 0xd0, 0x44, 0x1c, 0x0a, 0x44, 
+0xc0, 0x39, 0x73, 0x37, 0x78, 0xbc, 0xa4, 0x97, 0xbd, 0xbb, 0x73, 0xec, 0x36, 0x3f, 0xa4, 0x34, 
+0x8d, 0xaa, 0xd1, 0xab, 0xad, 0x0d, 0x18, 0xed, 0x86, 0xe7, 0x63, 0xdf, 0x24, 0x8c, 0xb5, 0xd7, 
+0xba, 0xd0, 0x83, 0xf1, 0x39, 0x84, 0x5d, 0x96, 0xad, 0xcb, 0x83, 0x1a, 0xb2, 0x29, 0xdd, 0xf0, 
+0x5c, 0x57, 0x3e, 0x6a, 0x9d, 0xc1, 0xd3, 0xcf, 0x75, 0x31, 0xdd, 0x1a, 0xaa, 0x1b, 0xf5, 0x31, 
+0xc3, 0x4e, 0x94, 0x7e, 0x28, 0x3e, 0x8b, 0x7f, 0xa9, 0xe8, 0x66, 0x86, 0x44, 0x6c, 0xf6, 0x81, 
+0x44, 0x17, 0x33, 0x6c, 0x43, 0x7a, 0x67, 0xdc, 0x4a, 0xe9, 0x9a, 0x96, 0xae, 0xbc, 0xd8, 0xdc, 
+0x03, 0x09, 0x7c, 0x5d, 0x0f, 0x28, 0x79, 0x07, 0x13, 0x9d, 0xcc, 0xd0, 0x20, 0x31, 0xcd, 0x8f, 
+0x63, 0xf3, 0x08, 0xba, 0xe6, 0x6a, 0x37, 0xd3, 0x5c, 0x8b, 0xdf, 0x42, 0x79, 0x67, 0xfc, 0x04, 
+0x90, 0xf3, 0x39, 0xe4, 0x65, 0x80, 0x50, 0x48, 0xad, 0xd0, 0x5e, 0x84, 0xa4, 0x7e, 0xae, 0xfb, 
+0xde, 0x78, 0x88, 0x72, 0x08, 0xad, 0x5d, 0x62, 0xcc, 0xc6, 0xb1, 0x32, 0x01, 0x9a, 0x93, 0xd7, 
+0x3c, 0x81, 0x52, 0x0b, 0x78, 0x29, 0x26, 0xb1, 0xac, 0x56, 0x5e, 0xea, 0x43, 0xa4, 0x0f, 0x77, 
+0x9b, 0xe2, 0x77, 0x1f, 0x44, 0xfa, 0x8c, 0x0f, 0x24, 0x36, 0xe3, 0x34, 0x4f, 0xff, 0x08, 0x94, 
+0x1f, 0xe4, 0x6f, 0x17, 0x90, 0x3e, 0x8e, 0xfc, 0x03, 0x9c, 0x66, 0x8c, 0xe0, 0x74, 0xe7, 0xf3, 
+0x2f, 0x97, 0x50, 0xcf, 0x7a, 0x7d, 0x42, 0x96, 0x27, 0xb5, 0x34, 0x06, 0xda, 0xd8, 0x8c, 0x7d, 
+0x28, 0xff, 0x0c, 0xcf, 0x37, 0x03, 0x18, 0x8f, 0x77, 0xe7, 0x28, 0x74, 0x06, 0x04, 0x70, 0xbc, 
+0xfe, 0x02, 0x8f, 0x19, 0x51, 0xea, 0x35, 0x85, 0xee, 0x48, 0xdf, 0xea, 0x5e, 0x8c, 0x39, 0x73, 
+0x31, 0xb3, 0x22, 0x58, 0xdc, 0x37, 0x11, 0xff, 0xae, 0x3e, 0x5b, 0x4a, 0x7a, 0x8e, 0x39, 0xc2, 
+0xf4, 0x87, 0x51, 0xea, 0x05, 0xf7, 0x4d, 0x64, 0x87, 0xb4, 0x0c, 0x95, 0x56, 0xb0, 0xb3, 0x64, 
+0xcb, 0xe8, 0x9f, 0x11, 0x37, 0x31, 0x2b, 0x69, 0xbb, 0x23, 0x93, 0xe0, 0x5a, 0x9d, 0xbd, 0x41, 
+0xd2, 0xd9, 0xbb, 0x58, 0x09, 0xbe, 0xbf, 0x85, 0xf9, 0xc6, 0xfc, 0xeb, 0x8f, 0x98, 0x2b, 0xcc, 
+0xf4, 0x5b, 0xdd, 0x26, 0x82, 0x1d, 0x1c, 0xbd, 0x72, 0x1a, 0x73, 0xed, 0xe8, 0xb5, 0xe7, 0x5a, 
+0x86, 0xfc, 0x71, 0x83, 0x2a, 0xeb, 0x4b, 0x2e, 0xf1, 0x59, 0x89, 0xa0, 0xe5, 0xa3, 0xdc, 0x7f, 
+0x8a, 0x1e, 0xcc, 0x33, 0x06, 0x94, 0x42, 0x6f, 0xca, 0x27, 0xf0, 0xae, 0xc3, 0xfb, 0x12, 0xe8, 
+0xab, 0x2e, 0xcc, 0xe9, 0x22, 0xea, 0x83, 0x76, 0xbd, 0x30, 0x31, 0x88, 0x09, 0x9a, 0xcf, 0x2c, 
+0x67, 0x40, 0x8f, 0x33, 0x94, 0x0a, 0x6e, 0xb6, 0xda, 0x36, 0x31, 0x82, 0xf1, 0x96, 0xdd, 0xc9, 
+0xcc, 0x07, 0x7f, 0x41, 0x75, 0x67, 0x4d, 0xb8, 0xb3, 0x21, 0x91, 0x0d, 0x7c, 0x1e, 0xbd, 0x42, 
+0x9c, 0xcf, 0xc7, 0x1d, 0xc6, 0x86, 0x1d, 0x65, 0x28, 0x2f, 0x69, 0x0b, 0xbf, 0xe2, 0x78, 0x66, 
+0xbd, 0xa1, 0xce, 0x4e, 0xeb, 0x95, 0x27, 0xf4, 0x15, 0xd4, 0xda, 0x88, 0x5a, 0x89, 0xe7, 0xb2, 
+0x46, 0xff, 0x4a, 0x2d, 0x7b, 0x6e, 0x6b, 0x67, 0x16, 0x48, 0xde, 0x74, 0x5d, 0xa5, 0xe3, 0x54, 
+0x0f, 0x72, 0xfd, 0x3b, 0xb5, 0x2c, 0x2b, 0x8e, 0xf2, 0x0f, 0x42, 0x5b, 0xb7, 0x2a, 0xf8, 0x7f, 
+0x19, 0xbd, 0x32, 0xf0, 0xa8, 0xe1, 0x2d, 0x1f, 0x86, 0x3e, 0xcf, 0xb2, 0xca, 0x4f, 0xf4, 0x9f, 
+0xe8, 0x87, 0x56, 0xa9, 0x55, 0xa9, 0x65, 0x55, 0xe1, 0x7e, 0xc0, 0xe1, 0xe6, 0x43, 0xba, 0x98, 
+0xf1, 0x4d, 0x23, 0x85, 0x5c, 0xe8, 0x09, 0x6a, 0x93, 0xda, 0xb3, 0xb9, 0x7f, 0x78, 0xed, 0x0f, 
+0xaf, 0x1d, 0x54, 0x6a, 0x09, 0x7d, 0x59, 0xaf, 0xe8, 0xce, 0xfc, 0xf1, 0x8d, 0x3f, 0xbe, 0xe1, 
+0xdd, 0x9b, 0x86, 0xac, 0xe7, 0x3a, 0x0e, 0xcb, 0xda, 0xaa, 0xc2, 0xcc, 0x01, 0x0f, 0x8c, 0xfe, 
+0xe5, 0x51, 0xea, 0x1d, 0x89, 0xe9, 0x0e, 0x03, 0xb6, 0x15, 0x70, 0x50, 0x03, 0x41, 0x56, 0xac, 
+0x6a, 0xa5, 0x64, 0x7b, 0x4b, 0x49, 0x17, 0x1b, 0x83, 0xe5, 0xa8, 0xe3, 0xd2, 0x92, 0x24, 0x86, 
+0xb1, 0xa0, 0xd7, 0xdb, 0xdc, 0x78, 0x0f, 0x4a, 0x04, 0xdc, 0x37, 0xd9, 0x7c, 0xc1, 0x27, 0xf8, 
+0x3c, 0x56, 0x56, 0xd0, 0xeb, 0xab, 0x6f, 0x84, 0xaa, 0xe5, 0x2e, 0x52, 0x67, 0xfe, 0x3d, 0x90, 
+0xc9, 0xa6, 0x74, 0xec, 0x39, 0xc4, 0x2c, 0x62, 0x11, 0xe9, 0x65, 0x78, 0xcb, 0x8f, 0x36, 0xe0, 
+0xd7, 0x00, 0xda, 0xeb, 0x63, 0x32, 0xac, 0x1a, 0x2b, 0x24, 0xb9, 0x89, 0xe3, 0x52, 0x72, 0x23, 
+0x1f, 0xea, 0x2c, 0x84, 0x17, 0xa8, 0xf6, 0x2f, 0xbc, 0xc5, 0x4c, 0xa7, 0x33, 0xed, 0x27, 0xce, 
+0x87, 0xee, 0xf2, 0x5f, 0xd2, 0x41, 0x7b, 0x4a, 0x6d, 0xff, 0xdb, 0x1c, 0x47, 0x03, 0x49, 0x46, 
+0x89, 0x09, 0x56, 0x35, 0xf5, 0x39, 0x2e, 0xb9, 0x19, 0x4b, 0xa2, 0xd4, 0xbf, 0xc0, 0xe2, 0x16, 
+0x46, 0x7e, 0x21, 0xb4, 0xa3, 0xd4, 0x73, 0x18, 0xc1, 0x11, 0x89, 0x69, 0x9f, 0x4e, 0xb5, 0x2f, 
+0x85, 0x8b, 0x76, 0xf0, 0xaf, 0xf4, 0x31, 0x28, 0x3b, 0xc2, 0x39, 0x46, 0xbb, 0x9e, 0x8f, 0x09, 
+0x6b, 0x70, 0xf4, 0xe3, 0x63, 0x34, 0x26, 0x3e, 0xf9, 0x51, 0xcb, 0x50, 0xe5, 0x45, 0xad, 0x74, 
+0x7c, 0x0c, 0xbd, 0xe0, 0x4c, 0x26, 0xc3, 0x26, 0xb5, 0xfe, 0x42, 0x68, 0x37, 0x39, 0x99, 0xa3, 
+0x85, 0xf7, 0x92, 0x35, 0x73, 0xa4, 0x68, 0xf3, 0xdc, 0xcc, 0x56, 0x1d, 0x7c, 0x02, 0x58, 0xeb, 
+0xc5, 0x22, 0xa1, 0x9d, 0xb8, 0x2e, 0xae, 0xe1, 0x92, 0x6c, 0x12, 0x34, 0x79, 0x13, 0x52, 0x47, 
+0x07, 0xe9, 0x75, 0x0c, 0xbc, 0x6b, 0x89, 0x2c, 0x1f, 0x4f, 0x88, 0x9e, 0xe3, 0x63, 0x0a, 0x6e, 
+0x22, 0x70, 0x13, 0x53, 0x14, 0x69, 0x4f, 0x51, 0x44, 0xf3, 0xaa, 0xc2, 0xc3, 0x54, 0x37, 0x6f, 
+0x51, 0x87, 0x9b, 0x89, 0xd5, 0x41, 0x48, 0x4e, 0xf6, 0x53, 0x92, 0xcd, 0x80, 0xf5, 0x82, 0x0b, 
+0xb0, 0x4e, 0x3f, 0x72, 0xfa, 0x11, 0x5b, 0x8d, 0x7d, 0xb6, 0xe8, 0x75, 0x35, 0xb8, 0xf5, 0x5c, 
+0x87, 0x3e, 0x6f, 0xf3, 0x8a, 0x1b, 0x99, 0x19, 0x63, 0x26, 0xdf, 0x8e, 0x67, 0xcb, 0xd0, 0x6f, 
+0x2e, 0x30, 0x57, 0xa4, 0x06, 0xbc, 0x9c, 0x1f, 0xf6, 0xe0, 0x57, 0x0c, 0x97, 0xa7, 0xf4, 0xb9, 
+0x4b, 0xed, 0xe0, 0x33, 0xbb, 0x3b, 0x27, 0x38, 0x7a, 0x79, 0x6c, 0x4a, 0x97, 0x53, 0xf4, 0x6d, 
+0xb7, 0x3a, 0x12, 0xdd, 0x83, 0xa4, 0xf9, 0x5f, 0x3e, 0x4f, 0x76, 0x86, 0x64, 0x4c, 0x7d, 0x83, 
+0x46, 0x53, 0x93, 0xd6, 0x5c, 0x83, 0xc0, 0x46, 0xe4, 0x2d, 0xcb, 0x51, 0x24, 0xc2, 0x2d, 0xc5, 
+0xe7, 0x06, 0x41, 0x89, 0x63, 0x0a, 0x1f, 0xd1, 0x88, 0x47, 0x2c, 0x09, 0xeb, 0xd8, 0x12, 0x71, 
+0x86, 0xc0, 0x9b, 0x34, 0x43, 0x41, 0xf3, 0x21, 0xde, 0xf6, 0x43, 0xc7, 0xb9, 0x49, 0xb1, 0x55, 
+0x40, 0x05, 0x67, 0x34, 0xb9, 0x10, 0x7a, 0x36, 0x72, 0xef, 0x44, 0xd9, 0xa3, 0x11, 0x68, 0x0c, 
+0x8b, 0x3d, 0x3c, 0xff, 0xd1, 0x30, 0x13, 0x0e, 0x7b, 0x31, 0x23, 0x51, 0xa9, 0xab, 0x4f, 0x23, 
+0x47, 0x77, 0x4a, 0xa2, 0x5d, 0x32, 0x52, 0xef, 0xfd, 0x25, 0x35, 0xda, 0x4f, 0x72, 0x5f, 0xd0, 
+0x23, 0xe8, 0xc9, 0x96, 0xe3, 0x63, 0x7c, 0x14, 0xa3, 0x2f, 0x91, 0x12, 0xc7, 0xfb, 0x49, 0x94, 
+0xeb, 0x9c, 0xce, 0x1b, 0xa2, 0x19, 0xf4, 0x2f, 0x62, 0x25, 0xd3, 0xa5, 0xa8, 0x0d, 0xa9, 0xb0, 
+0xc4, 0x4b, 0x60, 0x87, 0xf3, 0x16, 0x95, 0xae, 0xa6, 0x3e, 0x27, 0x8d, 0xaf, 0xc4, 0x83, 0x99, 
+0x90, 0xda, 0x53, 0x7c, 0x03, 0x8f, 0xa1, 0x84, 0x1d, 0x25, 0x30, 0x0a, 0xf2, 0x21, 0x07, 0x44, 
+0xde, 0x9f, 0x5e, 0xdb, 0xc6, 0x54, 0x8f, 0xb2, 0x2b, 0x2e, 0x92, 0xeb, 0x7a, 0x60, 0xea, 0x80, 
+0xee, 0xe3, 0xf1, 0x47, 0xdb, 0x99, 0x42, 0xcd, 0x92, 0x4b, 0x76, 0xd6, 0x00, 0xcb, 0x82, 0x3d, 
+0xeb, 0xdf, 0x26, 0x30, 0x8c, 0x7a, 0x5e, 0xe3, 0xf7, 0x9e, 0x52, 0x3d, 0x32, 0xc5, 0x6e, 0x6d, 
+0x25, 0xb7, 0x2b, 0xdc, 0x7e, 0x56, 0x1a, 0xdc, 0x09, 0x7d, 0x67, 0x99, 0x8b, 0x7c, 0x04, 0x8f, 
+0x14, 0x3f, 0x22, 0xf6, 0x50, 0x0a, 0xfa, 0x02, 0xcf, 0xca, 0x8f, 0x0d, 0xc2, 0xff, 0x77, 0x6c, 
+0xbd, 0xd5, 0xdf, 0xad, 0xf8, 0x62, 0x74, 0xd7, 0x53, 0x96, 0x32, 0x97, 0xb6, 0x76, 0x93, 0x9b, 
+0x95, 0xb3, 0x65, 0xe1, 0x1c, 0xb7, 0x5e, 0x4d, 0xb7, 0x62, 0x54, 0x6b, 0xbc, 0xb9, 0x29, 0xd9, 
+0xd3, 0x0e, 0xdd, 0xce, 0x5b, 0xfa, 0x81, 0x3c, 0xbd, 0xf7, 0x37, 0xc2, 0xda, 0xa3, 0xfe, 0xc3, 
+0x08, 0xa8, 0x50, 0xf9, 0xfa, 0xcd, 0xb8, 0x0e, 0x7c, 0x6d, 0xa7, 0x91, 0x0e, 0xae, 0xd6, 0xe3, 
+0xdd, 0x4a, 0xf3, 0x1d, 0xf0, 0x7f, 0xb5, 0xb4, 0x42, 0x58, 0x85, 0xb4, 0x6c, 0xcc, 0x9e, 0x3a, 
+0x1a, 0x1d, 0xc4, 0xa9, 0x25, 0x95, 0xa4, 0x39, 0x44, 0xb3, 0x46, 0xf6, 0x43, 0x12, 0x98, 0xa0, 
+0x41, 0xa0, 0xff, 0x2e, 0xd8, 0x50, 0xb7, 0x6e, 0xf1, 0x4a, 0xe6, 0x87, 0x6e, 0xb1, 0xe6, 0xf8, 
+0x47, 0xac, 0x62, 0x4a, 0x97, 0xa2, 0x91, 0x7e, 0xf5, 0xad, 0xc0, 0x8c, 0x70, 0x20, 0xd6, 0xea, 
+0xea, 0x52, 0x35, 0x62, 0x95, 0x5f, 0x3f, 0x3a, 0x84, 0xd1, 0x00, 0x6d, 0x29, 0x52, 0x0a, 0x5e, 
+0xa9, 0xa8, 0xfa, 0x80, 0xc5, 0x7f, 0xfd, 0x01, 0x8b, 0x86, 0xf3, 0x68, 0x8e, 0xe0, 0xbd, 0x30, 
+0x8f, 0xdb, 0xb5, 0x7a, 0xb2, 0x6b, 0x23, 0x39, 0x53, 0x1c, 0xad, 0xe8, 0xe7, 0xd0, 0xf3, 0x27, 
+0xeb, 0x2f, 0x6a, 0x5d, 0xc1, 0x2d, 0xde, 0x19, 0x12, 0x93, 0xbb, 0x89, 0x57, 0xf0, 0x5c, 0x83, 
+0xe7, 0x71, 0x3c, 0x9b, 0x62, 0x32, 0x7e, 0x83, 0x31, 0x48, 0x14, 0xd9, 0x4f, 0x1e, 0x00, 0xf2, 
+0x25, 0x90, 0x37, 0x52, 0x33, 0x5f, 0xb5, 0x6f, 0xbd, 0x69, 0x0f, 0xa2, 0x81, 0x7c, 0x77, 0x59, 
+0x46, 0x56, 0x46, 0xfa, 0xf8, 0xee, 0xdf, 0xd1, 0x97, 0xe4, 0x5b, 0x90, 0x94, 0x15, 0xe4, 0x9b, 
+0xcc, 0x32, 0x47, 0x0b, 0x28, 0xe5, 0xfa, 0x29, 0x92, 0x9d, 0x3c, 0x25, 0x3f, 0x23, 0xc5, 0x04, 
+0x3d, 0x3e, 0x9f, 0xc7, 0xc2, 0x05, 0x1e, 0x8d, 0x9e, 0xdb, 0xd6, 0xc3, 0x42, 0xd2, 0x3b, 0xac, 
+0xd1, 0x70, 0x6a, 0x9c, 0x07, 0x35, 0x08, 0x5e, 0x62, 0x5a, 0xec, 0x71, 0x45, 0x73, 0x04, 0xcf, 
+0xe5, 0x13, 0xcf, 0x41, 0xd2, 0x7b, 0x14, 0xbb, 0x0a, 0xe3, 0xc5, 0xa0, 0xf4, 0xd5, 0x06, 0x3f, 
+0xd7, 0xc3, 0x61, 0xc7, 0x72, 0xdb, 0xc2, 0x80, 0xe7, 0xa9, 0xc0, 0xb0, 0x46, 0x8f, 0xe7, 0xb8, 
+0xc2, 0xdd, 0xfe, 0xe8, 0x20, 0xcb, 0xd0, 0xe4, 0xa9, 0xcf, 0x5e, 0x8c, 0xc9, 0xb7, 0x55, 0x2a, 
+0xba, 0x28, 0x30, 0x39, 0x1a, 0x95, 0x79, 0x6d, 0x2f, 0x92, 0x65, 0x03, 0x5c, 0xd7, 0xc4, 0x84, 
+0x77, 0x7f, 0x0e, 0xb9, 0x2f, 0xe1, 0x5b, 0xcb, 0x94, 0x47, 0x04, 0x5f, 0x1a, 0x50, 0xf6, 0xac, 
+0xe8, 0x89, 0x3a, 0xa7, 0x7c, 0x22, 0x36, 0xb2, 0xf6, 0x9a, 0x22, 0x0d, 0xc4, 0xad, 0x59, 0xae, 
+0xa8, 0x70, 0x83, 0x4f, 0xa4, 0x90, 0x6c, 0x8d, 0x18, 0xcb, 0x75, 0xb2, 0x59, 0x24, 0xc3, 0xff, 
+0x44, 0xde, 0xa3, 0x16, 0xd2, 0x27, 0x3f, 0xdc, 0xaa, 0xd8, 0x07, 0xa8, 0xa3, 0x93, 0xdb, 0x91, 
+0x8f, 0x22, 0x67, 0xd3, 0x17, 0x7c, 0x1e, 0x85, 0xac, 0x21, 0x38, 0xfa, 0xe7, 0x93, 0xe0, 0x9c, 
+0xf6, 0x94, 0xbe, 0x2b, 0xac, 0x62, 0x64, 0x07, 0x79, 0xc8, 0x47, 0xa1, 0xe8, 0xa6, 0x7f, 0x3e, 
+0x46, 0xbe, 0x91, 0x3f, 0xef, 0xe4, 0x63, 0x87, 0xd3, 0x40, 0xd8, 0xa7, 0xb4, 0xb8, 0x75, 0x44, 
+0x2c, 0xd4, 0xe8, 0x61, 0xc1, 0x43, 0x86, 0x61, 0x84, 0x8d, 0xfe, 0xf9, 0xf1, 0x86, 0x21, 0xcc, 
+0x05, 0xa6, 0x74, 0xbc, 0xa3, 0x61, 0x08, 0x6f, 0x85, 0xe0, 0xb8, 0xd1, 0x3f, 0xaf, 0x25, 0x6d, 
+0x43, 0xe8, 0x8e, 0xfe, 0xa0, 0x86, 0x4d, 0xf5, 0xfd, 0xf5, 0x26, 0x60, 0xbc, 0x04, 0xf5, 0x55, 
+0xf0, 0x56, 0x6c, 0x8a, 0x2a, 0x6d, 0xf0, 0xa9, 0x35, 0x07, 0x95, 0x7a, 0xee, 0x7b, 0x95, 0xec, 
+0x34, 0xb5, 0x7e, 0xa7, 0x62, 0xdf, 0x7d, 0xbc, 0xaf, 0x65, 0x68, 0xc5, 0xc4, 0x65, 0x09, 0xf5, 
+0xb5, 0x24, 0x60, 0x25, 0x24, 0x60, 0xf7, 0xe0, 0x29, 0x71, 0x5a, 0x1f, 0xe5, 0x16, 0xf7, 0x6e, 
+0xea, 0x8f, 0xf0, 0xdb, 0x01, 0xb2, 0xca, 0xee, 0xb5, 0x65, 0xb4, 0x3f, 0xe9, 0x42, 0x7a, 0xce, 
+0xb4, 0x14, 0x71, 0x5a, 0xcc, 0x31, 0x2d, 0xb6, 0xfc, 0xab, 0x69, 0x77, 0xfe, 0x69, 0xd5, 0x7a, 
+0xe3, 0x38, 0x7d, 0x44, 0x32, 0xbc, 0x83, 0x2d, 0xe1, 0x2d, 0x0b, 0x02, 0x33, 0x27, 0x28, 0xc1, 
+0x25, 0xcf, 0x8a, 0x6d, 0x2d, 0x44, 0x99, 0x35, 0x31, 0x19, 0xa3, 0x5a, 0xcf, 0x71, 0x1c, 0x49, 
+0xd1, 0x10, 0x90, 0xfc, 0x54, 0xfa, 0xbc, 0xa4, 0xa4, 0xac, 0xb7, 0x11, 0xcd, 0x34, 0x90, 0x6a, 
+0xe7, 0x2b, 0x50, 0x26, 0x9f, 0x66, 0x89, 0x14, 0x45, 0xcf, 0x5b, 0x55, 0x8a, 0x9a, 0x56, 0x4c, 
+0x9c, 0x37, 0x05, 0x77, 0xab, 0xd4, 0xdd, 0x6d, 0x0b, 0x28, 0xa3, 0x6a, 0xca, 0x6f, 0x4e, 0xfa, 
+0x0d, 0x8d, 0xcf, 0x3a, 0x5d, 0xca, 0x3b, 0x2c, 0xba, 0x99, 0xc9, 0xd5, 0xc3, 0xcc, 0xf4, 0x55, 
+0xf5, 0x07, 0x2f, 0x77, 0xf6, 0x30, 0x6b, 0x61, 0x93, 0xa3, 0x39, 0x6a, 0x8e, 0xa5, 0x7d, 0x4d, 
+0xea, 0x78, 0xec, 0x80, 0x1e, 0x54, 0x84, 0x99, 0x9c, 0xfc, 0x16, 0xad, 0x34, 0xea, 0x30, 0x1b, 
+0x71, 0x3f, 0x80, 0x22, 0xc3, 0x42, 0x89, 0xcc, 0x12, 0xe4, 0x7b, 0xa5, 0xfe, 0x09, 0xe7, 0x29, 
+0xd4, 0x81, 0x1e, 0x65, 0xe6, 0x76, 0x31, 0xb7, 0x34, 0xa5, 0xf9, 0xb6, 0xc5, 0xaa, 0x07, 0x56, 
+0x29, 0x6d, 0xb5, 0x3f, 0x5e, 0xb0, 0x49, 0xb8, 0x0a, 0x8e, 0x0b, 0x08, 0x57, 0xc9, 0xe7, 0xd6, 
+0xab, 0x78, 0x9a, 0x4b, 0xc8, 0x2b, 0x2d, 0x36, 0xda, 0x1a, 0xec, 0x1b, 0x85, 0xab, 0x4f, 0x1c, 
+0x93, 0xee, 0xfd, 0xfb, 0x37, 0xc3, 0x0d, 0xc4, 0x51, 0x5c, 0x12, 0xe9, 0x17, 0xd2, 0xac, 0xa7, 
+0xbb, 0xd5, 0x23, 0x5c, 0xe5, 0xad, 0x06, 0xa4, 0x6f, 0x6a, 0xec, 0x85, 0xdc, 0x77, 0xc7, 0x71, 
+0x2a, 0xfe, 0x07, 0xaa, 0x9b, 0xfb, 0x2a, 0x34, 0x2b, 0x26, 0x64, 0x70, 0xc0, 0x34, 0x6c, 0x76, 
+0x93, 0xef, 0x5c, 0x32, 0x89, 0x01, 0x3b, 0x34, 0x2e, 0xd2, 0x9d, 0xc2, 0xcf, 0xd6, 0xbd, 0x63, 
+0xe2, 0xfe, 0xc9, 0xe4, 0x09, 0xf2, 0x79, 0x39, 0x7a, 0x84, 0x3a, 0x3b, 0xf0, 0x8a, 0xb3, 0x55, 
+0x18, 0x6f, 0xed, 0xd7, 0xb6, 0xe6, 0x9f, 0x1c, 0x22, 0x1b, 0xf5, 0x9b, 0xdc, 0x5e, 0x2d, 0xb9, 
+0x24, 0x79, 0x50, 0xaf, 0x2e, 0x4d, 0x87, 0xbd, 0x9c, 0xbf, 0x9c, 0xa1, 0x7e, 0xcc, 0x31, 0x2e, 
+0xc8, 0x7c, 0xc2, 0xe9, 0x49, 0x75, 0x86, 0xc9, 0x47, 0x7c, 0x31, 0x2b, 0x21, 0xcf, 0x0a, 0x62, 
+0x3a, 0x31, 0x24, 0x26, 0xd2, 0xb5, 0x8e, 0x8a, 0x1a, 0xc5, 0x3f, 0x22, 0xb8, 0x14, 0x9f, 0x9f, 
+0x93, 0x7c, 0x7e, 0x4d, 0x5f, 0xd2, 0x07, 0x6b, 0xa7, 0xd3, 0xbc, 0x65, 0x68, 0x3a, 0xd5, 0xed, 
+0x89, 0x1b, 0xe9, 0x9d, 0xcc, 0xe3, 0xf4, 0x76, 0xdc, 0x48, 0xef, 0x82, 0x3a, 0xa6, 0x2b, 0xd8, 
+0xc4, 0xea, 0x98, 0x01, 0x74, 0xbf, 0xcc, 0xe9, 0x7e, 0x99, 0xe8, 0xbe, 0x86, 0x29, 0x7c, 0x50, 
+0x08, 0x3e, 0x70, 0x34, 0xa3, 0xed, 0x97, 0xff, 0xf6, 0x75, 0xa5, 0xed, 0xd2, 0xfa, 0x7f, 0x3c, 
+0x0f, 0x1b, 0x65, 0xb5, 0x3b, 0xf7, 0x86, 0xf6, 0xfa, 0xa8, 0x3f, 0x0e, 0xf1, 0xfe, 0x58, 0xc4, 
+0xfb, 0xe3, 0x36, 0x8f, 0x70, 0xd9, 0x11, 0x52, 0x7c, 0xb2, 0xd3, 0xfa, 0x60, 0xe6, 0x8a, 0x89, 
+0xeb, 0x8f, 0x7c, 0x49, 0x1f, 0x58, 0x25, 0x93, 0x73, 0xaa, 0x0f, 0x9e, 0x4a, 0xf7, 0x7e, 0x19, 
+0x7a, 0xdf, 0x42, 0x38, 0xc4, 0x59, 0xad, 0x82, 0x83, 0x2d, 0xa3, 0x76, 0x4e, 0xc9, 0xb0, 0x29, 
+0xd4, 0x4f, 0xeb, 0x17, 0x0b, 0x37, 0x31, 0x17, 0x33, 0xa7, 0x61, 0x9c, 0x22, 0x8a, 0xe6, 0xa3, 
+0x27, 0xc1, 0xe7, 0x3a, 0xf1, 0x3b, 0x62, 0xbb, 0x70, 0x59, 0x32, 0x63, 0x1e, 0xd3, 0x85, 0xf5, 
+0xa2, 0x13, 0xbd, 0xb2, 0x45, 0x6c, 0x57, 0x78, 0x28, 0x7c, 0x3e, 0xca, 0xeb, 0x2a, 0x29, 0x75, 
+0x50, 0x8b, 0xa1, 0x00, 0x46, 0x4d, 0x5f, 0xa0, 0xfa, 0xf2, 0x82, 0x1e, 0x96, 0x0f, 0xae, 0xd2, 
+0xa6, 0xa8, 0x6e, 0x67, 0xa8, 0x55, 0x33, 0x9d, 0xf2, 0x62, 0x95, 0xcd, 0x93, 0xb9, 0x0a, 0x02, 
+0xba, 0x4e, 0x30, 0x03, 0xe8, 0x3a, 0x81, 0x31, 0x67, 0x52, 0xb8, 0xd9, 0x46, 0xdc, 0x8c, 0x19, 
+0x0f, 0xdc, 0x3c, 0x01, 0x6e, 0x6e, 0x18, 0x81, 0xed, 0xc3, 0xe9, 0x67, 0x48, 0xf3, 0xb3, 0x81, 
+0xf3, 0xf3, 0x84, 0x3d, 0xf7, 0xcb, 0x79, 0x78, 0xb2, 0x26, 0x83, 0x7e, 0xa6, 0x29, 0xfa, 0x71, 
+0x1e, 0x36, 0xf0, 0xb6, 0x0f, 0x2b, 0x3c, 0x4c, 0xb3, 0x2b, 0xa7, 0x9f, 0x9b, 0xec, 0x25, 0x61, 
+0x42, 0x9a, 0x27, 0x86, 0x6c, 0x5e, 0x68, 0x4d, 0xe4, 0xcb, 0x5c, 0x0b, 0xca, 0xe9, 0x51, 0xaf, 
+0x4e, 0x32, 0xa5, 0xcb, 0x9d, 0x49, 0x49, 0x87, 0xe0, 0xfd, 0xc0, 0x51, 0x17, 0x99, 0x1f, 0xf8, 
+0x25, 0x64, 0xbb, 0x5e, 0xf4, 0x10, 0xc5, 0x44, 0x8f, 0xa4, 0x0f, 0xed, 0x04, 0xd5, 0x38, 0xa6, 
+0xe1, 0x2b, 0xc1, 0x2d, 0x51, 0x75, 0x2d, 0x88, 0x66, 0xf0, 0x2f, 0xa1, 0x59, 0x28, 0x2a, 0xd8, 
+0x13, 0xa9, 0x36, 0xdc, 0xc8, 0xa7, 0x24, 0x1d, 0xd4, 0x95, 0x3d, 0xd3, 0x94, 0x84, 0x7a, 0xf2, 
+0x35, 0x29, 0x9f, 0x4b, 0x35, 0xce, 0xa1, 0x90, 0x36, 0x6e, 0xd2, 0x3c, 0xe5, 0x38, 0xc9, 0x1a, 
+0x92, 0x5e, 0xa2, 0x51, 0x59, 0x3d, 0xa0, 0xde, 0xb2, 0xa3, 0xb7, 0x56, 0x70, 0x8d, 0x8d, 0xe3, 
+0xae, 0x93, 0xca, 0xec, 0x5e, 0x8c, 0x7c, 0x83, 0x98, 0xdb, 0x98, 0xc0, 0x28, 0x70, 0x38, 0x0a, 
+0x79, 0x7f, 0xed, 0x86, 0xfc, 0xad, 0x0a, 0x25, 0xa6, 0xea, 0xb0, 0x05, 0xa2, 0x19, 0x35, 0x06, 
+0xfa, 0xc3, 0xc7, 0x52, 0xbd, 0x53, 0xb2, 0x1c, 0x2d, 0x11, 0x31, 0xf2, 0xec, 0xe1, 0x5c, 0xd2, 
+0xed, 0xb2, 0xee, 0x50, 0x57, 0x78, 0x48, 0x87, 0x7b, 0xd0, 0xe1, 0x5d, 0xd2, 0xcb, 0x84, 0x95, 
+0x8a, 0x8e, 0xb8, 0x18, 0xa5, 0x9f, 0x6c, 0x19, 0xaa, 0xbe, 0x6c, 0x10, 0x1c, 0x9b, 0x98, 0xe1, 
+0x45, 0xce, 0x47, 0xbf, 0xb9, 0xc8, 0x9c, 0xdd, 0xab, 0x1d, 0x5e, 0x25, 0x8f, 0x63, 0x31, 0xaf, 
+0x1f, 0xb9, 0x6c, 0xc6, 0x5d, 0xe0, 0x8d, 0xaa, 0x2b, 0x56, 0x79, 0x8a, 0x37, 0x2a, 0xaf, 0xec, 
+0x93, 0x0f, 0x3e, 0x16, 0xd6, 0x79, 0x19, 0x74, 0x26, 0xb7, 0x39, 0x91, 0x82, 0x58, 0x93, 0x00, 
+0x4c, 0x96, 0x86, 0x39, 0x6a, 0x3d, 0xcc, 0xca, 0xd3, 0x7a, 0x95, 0xe9, 0xab, 0xe4, 0xb6, 0xba, 
+0xca, 0xd6, 0xc3, 0x4c, 0xf8, 0x62, 0xc6, 0x17, 0x0b, 0xd5, 0xc1, 0xbf, 0xa4, 0x38, 0x65, 0x58, 
+0x24, 0x7f, 0x29, 0xec, 0x78, 0xd0, 0xf3, 0x30, 0x49, 0x04, 0x7c, 0xc3, 0x8c, 0xea, 0xa0, 0xd4, 
+0x54, 0x9e, 0x67, 0x49, 0xd3, 0xaf, 0x9e, 0x90, 0x9f, 0x09, 0xee, 0x4a, 0xa7, 0x89, 0x18, 0xc5, 
+0xb4, 0x6a, 0x69, 0xb5, 0xaf, 0x73, 0x00, 0xde, 0x3d, 0x43, 0xee, 0x9c, 0xe8, 0xba, 0x1a, 0x96, 
+0xd9, 0x97, 0xe4, 0xb7, 0xcd, 0x80, 0xc1, 0xd0, 0x6b, 0x56, 0xe8, 0xcf, 0x16, 0xd4, 0xd4, 0xce, 
+0x7b, 0x0d, 0xbc, 0xe4, 0x5a, 0x47, 0x6b, 0xd5, 0x22, 0x8d, 0xc5, 0x76, 0xd8, 0xbb, 0xe4, 0x6d, 
+0xd7, 0xdd, 0xad, 0x7a, 0x76, 0xd3, 0xe9, 0x66, 0xf0, 0x99, 0x46, 0x9f, 0x88, 0xbf, 0x61, 0x9e, 
+0x9e, 0x66, 0x89, 0x65, 0x9f, 0xdd, 0x17, 0x63, 0xa5, 0x4e, 0x96, 0x9b, 0x96, 0x5f, 0xcf, 0x37, 
+0x10, 0x3c, 0x9a, 0xe1, 0xd8, 0x14, 0xdc, 0xc0, 0xce, 0x08, 0x8d, 0xee, 0x26, 0xa4, 0x38, 0xd9, 
+0x5a, 0x25, 0x1d, 0xd6, 0x5e, 0xbe, 0x79, 0x11, 0x2b, 0x27, 0x0a, 0x51, 0x9e, 0x11, 0x27, 0x2b, 
+0x0f, 0xdb, 0x4d, 0x50, 0x6b, 0xc2, 0x26, 0xd8, 0x0d, 0x1e, 0xc8, 0x04, 0xcf, 0xdd, 0x63, 0x92, 
+0x11, 0xef, 0x41, 0xbc, 0x07, 0xa7, 0xb0, 0x22, 0xfe, 0x4e, 0xfb, 0xaa, 0x75, 0x91, 0xfc, 0x4c, 
+0xeb, 0x39, 0x6c, 0x84, 0xcc, 0xc9, 0x47, 0x2d, 0x1e, 0xc9, 0x14, 0x65, 0x7c, 0x0d, 0x87, 0x62, 
+0x41, 0xee, 0x9d, 0x56, 0xe9, 0x4a, 0x2b, 0x65, 0xd0, 0x52, 0x74, 0xf6, 0xfd, 0x7c, 0x86, 0xc8, 
+0x6f, 0x48, 0x4b, 0x6d, 0xe2, 0x67, 0x65, 0x54, 0xbb, 0x99, 0xbf, 0x83, 0xaf, 0xd0, 0x28, 0x5f, 
+0x47, 0x93, 0xcb, 0xb8, 0x8f, 0x68, 0x57, 0x24, 0x07, 0xda, 0xaa, 0x99, 0xf4, 0x50, 0x40, 0xf5, 
+0x49, 0xf3, 0xe9, 0x0d, 0xad, 0x33, 0x14, 0xb4, 0xb3, 0x26, 0xc1, 0x2c, 0xe9, 0xf1, 0x5c, 0x9b, 
+0xfe, 0x1e, 0x56, 0x68, 0x56, 0xe0, 0x11, 0x4c, 0x18, 0x73, 0xbc, 0x9f, 0xf8, 0xba, 0x8e, 0x89, 
+0xda, 0x1c, 0x63, 0xa4, 0x1b, 0xb3, 0x43, 0xd2, 0x32, 0xb3, 0xb9, 0xd3, 0xa4, 0x49, 0xd0, 0x22, 
+0xbf, 0xf9, 0x57, 0x86, 0x84, 0x64, 0x03, 0x0d, 0xca, 0xc3, 0x7a, 0xf3, 0x61, 0x56, 0x2c, 0xe5, 
+0xe1, 0xdd, 0xcd, 0xdf, 0x8b, 0x24, 0x23, 0xde, 0x17, 0xac, 0xd7, 0x99, 0x0f, 0xcb, 0x47, 0x42, 
+0x7d, 0xa1, 0xc1, 0x83, 0x7d, 0xdd, 0xaf, 0xd2, 0x2a, 0x90, 0x5b, 0x43, 0x9c, 0xc7, 0xa1, 0xd6, 
+0xa2, 0xc5, 0x79, 0xb9, 0x56, 0x93, 0x00, 0xfd, 0x5f, 0x6f, 0x12, 0xe4, 0x67, 0xc3, 0xfa, 0x39, 
+0x87, 0xd9, 0x3a, 0x03, 0x0b, 0x25, 0x0e, 0x26, 0xba, 0xdf, 0xa3, 0xdc, 0x24, 0xeb, 0x52, 0x6b, 
+0xc4, 0x8e, 0x06, 0xea, 0xc7, 0x28, 0x33, 0x3b, 0x99, 0x9d, 0x64, 0x51, 0x63, 0x3f, 0xad, 0x38, 
+0xda, 0x59, 0x6a, 0x95, 0xcd, 0x6d, 0xf4, 0xb7, 0xb3, 0x82, 0xe0, 0xe8, 0xf5, 0x72, 0x75, 0xb5, 
+0xd1, 0x1c, 0xd8, 0x2f, 0x48, 0x5c, 0xbf, 0x21, 0x7d, 0x61, 0x19, 0xa4, 0xfc, 0x7e, 0xa1, 0x35, 
+0x62, 0x76, 0x7b, 0x99, 0xc5, 0x1d, 0x60, 0x66, 0x92, 0x6e, 0xb0, 0x1e, 0xa2, 0x8a, 0x94, 0xe3, 
+0xeb, 0xef, 0x44, 0x6d, 0x70, 0xbe, 0xa8, 0x39, 0x37, 0x98, 0x5a, 0x59, 0x59, 0xb9, 0x8c, 0xcf, 
+0xb3, 0xb9, 0x51, 0xed, 0x2b, 0x09, 0x48, 0x99, 0xec, 0x77, 0x87, 0x49, 0xda, 0x8d, 0xf7, 0x2b, 
+0xab, 0x5a, 0xbc, 0x9f, 0x34, 0x2a, 0x4f, 0x98, 0xe3, 0x6c, 0x89, 0x93, 0xe5, 0x9f, 0xd8, 0xc7, 
+0x9e, 0x4b, 0x71, 0x1b, 0xe7, 0x62, 0x73, 0x8a, 0xd3, 0xc6, 0xfb, 0x95, 0x36, 0x91, 0xd7, 0x9f, 
+0x95, 0x38, 0x43, 0xbc, 0xb7, 0xcd, 0x11, 0x7d, 0x21, 0x78, 0x4d, 0xd2, 0xe1, 0x77, 0x2d, 0x24, 
+0x8f, 0x65, 0xb4, 0x9f, 0xef, 0x79, 0xe8, 0x60, 0x66, 0xc7, 0x46, 0xa6, 0x23, 0xfb, 0x25, 0x8a, 
+0xcc, 0x6c, 0x40, 0xd2, 0xf3, 0xe7, 0x4e, 0xc0, 0xcc, 0x46, 0x7b, 0x1e, 0x6d, 0x18, 0x42, 0x0d, 
+0xc3, 0x27, 0x12, 0x4e, 0x37, 0x2b, 0xdb, 0xca, 0xf5, 0x8a, 0x95, 0xcb, 0x56, 0x4e, 0x4c, 0x56, 
+0x48, 0xb4, 0xfe, 0xa9, 0xb4, 0x60, 0xa6, 0x3a, 0xb3, 0x9a, 0x7a, 0x35, 0x8b, 0x6a, 0x84, 0xf6, 
+0xad, 0xb0, 0x99, 0xd8, 0x00, 0xf0, 0xb7, 0xd8, 0x98, 0xa6, 0x0f, 0xac, 0x2b, 0x8b, 0x95, 0xae, 
+0xac, 0x67, 0x12, 0xc5, 0xba, 0xc3, 0x03, 0x9d, 0x9a, 0x62, 0x3d, 0x8d, 0x83, 0x04, 0xdb, 0x39, 
+0x68, 0xd3, 0xf4, 0x66, 0x7f, 0xf4, 0x73, 0xca, 0xf1, 0x03, 0x79, 0x67, 0xdf, 0xc8, 0x0f, 0xf1, 
+0x2d, 0x45, 0xe5, 0x19, 0xe8, 0xbd, 0x0a, 0xff, 0xfd, 0x65, 0x2c, 0xaa, 0x1d, 0xeb, 0x8f, 0x65, 
+0xff, 0x69, 0x9f, 0x6d, 0x13, 0xd3, 0xfd, 0x7e, 0xcc, 0x7f, 0xff, 0x20, 0x0b, 0x3e, 0x79, 0xf2, 
+0x87, 0xe2, 0x0c, 0x58, 0x39, 0x16, 0xf2, 0x4a, 0x11, 0xfd, 0x47, 0x13, 0x1b, 0x2c, 0x4f, 0xfd, 
+0xb0, 0xd7, 0x73, 0xe2, 0x91, 0xe8, 0xd8, 0x2b, 0x89, 0xc0, 0x40, 0x98, 0xc9, 0xed, 0xca, 0xca, 
+0x17, 0x59, 0x77, 0x7c, 0x85, 0xbe, 0x0c, 0x33, 0x65, 0x3e, 0xad, 0xee, 0xb8, 0xb5, 0xd5, 0x13, 
+0xc9, 0xde, 0xe0, 0x2e, 0xd1, 0xa3, 0xda, 0x3a, 0xcf, 0x98, 0xcc, 0xac, 0x01, 0x96, 0xf8, 0x1e, 
+0x93, 0x93, 0xad, 0xc2, 0x28, 0x83, 0xa5, 0xe1, 0x74, 0x32, 0x5d, 0x9c, 0x39, 0x03, 0xdc, 0xe3, 
+0x6f, 0x91, 0xe2, 0x21, 0xee, 0xe7, 0x0b, 0xee, 0xb1, 0x2b, 0x65, 0xda, 0x4d, 0xb9, 0x28, 0xb1, 
+0xde, 0x54, 0xc8, 0xf3, 0xdf, 0x0b, 0xa8, 0xd9, 0x5c, 0xfe, 0x7e, 0x1b, 0x63, 0xa3, 0x84, 0xcf, 
+0x6f, 0xd0, 0x9f, 0xc2, 0xcb, 0x49, 0xba, 0x37, 0x29, 0x25, 0x47, 0x93, 0x46, 0x5e, 0xb2, 0x58, 
+0xf4, 0xa0, 0x36, 0x6f, 0xd8, 0x81, 0xba, 0x7c, 0x28, 0x3b, 0x3f, 0x2d, 0x87, 0x9e, 0x43, 0xff, 
+0x39, 0x69, 0x44, 0x4d, 0x9c, 0xe3, 0x7e, 0x3d, 0xfd, 0xa1, 0xfe, 0xee, 0xc1, 0xb8, 0xcc, 0xb5, 
+0x82, 0x7c, 0xcc, 0x70, 0xcd, 0xf2, 0x1a, 0x7f, 0x97, 0xbc, 0x16, 0xfa, 0x2c, 0x2c, 0x11, 0xb9, 
+0x04, 0x7d, 0x42, 0x7a, 0xb8, 0x09, 0x36, 0xae, 0xa9, 0x39, 0x21, 0x26, 0x14, 0x99, 0xcb, 0xf7, 
+0x77, 0x10, 0x97, 0xa8, 0x1c, 0xd2, 0xdc, 0x3f, 0x4d, 0x1a, 0xed, 0xcd, 0x94, 0x46, 0xe3, 0xfd, 
+0xe3, 0xbf, 0x84, 0x2c, 0x25, 0xbe, 0x31, 0x81, 0x97, 0x3b, 0x38, 0x7e, 0xf9, 0x69, 0x7c, 0x5c, 
+0x34, 0x97, 0x71, 0x7c, 0x9a, 0xb8, 0x1e, 0x2e, 0xa4, 0x56, 0x57, 0xfd, 0xef, 0x2f, 0xaf, 0x70, 
+0x01, 0x57, 0xcc, 0x3b, 0x2e, 0xe2, 0xae, 0x42, 0x37, 0x5b, 0x82, 0xb9, 0xcb, 0x12, 0xcd, 0x3e, 
+0xb3, 0xdf, 0x11, 0x88, 0xb3, 0x6d, 0x8c, 0xcf, 0x27, 0xcf, 0x4b, 0x1a, 0x27, 0x03, 0x1f, 0x2d, 
+0x66, 0x4f, 0x71, 0xdf, 0xc5, 0x93, 0xa8, 0x71, 0x60, 0xe4, 0xe1, 0xf5, 0xb9, 0xa1, 0xfe, 0x96, 
+0xc7, 0x62, 0xda, 0x03, 0xfd, 0xca, 0xec, 0x5d, 0xd1, 0x4b, 0x72, 0xab, 0x04, 0x36, 0x42, 0xe5, 
+0x15, 0x43, 0xf2, 0xad, 0x41, 0xf2, 0xa9, 0xfe, 0xe1, 0x28, 0xe2, 0x7b, 0x81, 0x99, 0x36, 0x85, 
+0xeb, 0x5b, 0x89, 0xa7, 0x07, 0xdc, 0xd5, 0xc0, 0xa9, 0x86, 0x39, 0xa9, 0x8c, 0xc4, 0x26, 0x47, 
+0x55, 0x59, 0x69, 0x06, 0x9e, 0x06, 0x77, 0xb6, 0xb8, 0x88, 0x3d, 0xd7, 0x44, 0x1a, 0x87, 0x93, 
+0x3c, 0x02, 0xf2, 0x1a, 0xc2, 0x59, 0xa5, 0x85, 0xc9, 0xe6, 0xa6, 0xd1, 0x5c, 0xc3, 0x76, 0xf6, 
+0x8d, 0x27, 0x4a, 0xa3, 0x06, 0x66, 0x2e, 0x79, 0x8a, 0xf9, 0x13, 0x55, 0x1f, 0x33, 0x41, 0xcc, 
+0xe6, 0x6b, 0x59, 0x1a, 0xe8, 0x2a, 0xbc, 0xdd, 0x71, 0xa1, 0x46, 0xb3, 0xa7, 0xcf, 0xa6, 0x79, 
+0xb3, 0xbf, 0x34, 0x6a, 0x65, 0xbb, 0xc7, 0xdc, 0xd9, 0x34, 0xaa, 0xfc, 0x28, 0x13, 0x1c, 0xfd, 
+0xac, 0x8e, 0x60, 0xaa, 0xb2, 0xa2, 0x82, 0xeb, 0x28, 0xd0, 0xb1, 0xdc, 0xb9, 0x5c, 0x4f, 0x8f, 
+0x07, 0x77, 0x3b, 0x53, 0xfc, 0xf4, 0x2c, 0xb0, 0xd7, 0x85, 0x3c, 0x4b, 0xa1, 0x31, 0x8c, 0x74, 
+0x32, 0x63, 0x78, 0x9e, 0x68, 0x41, 0xea, 0xa3, 0x76, 0xae, 0x0f, 0xa5, 0xf3, 0x6d, 0xf3, 0x42, 
+0x07, 0xe4, 0x2d, 0xd7, 0xc5, 0x58, 0x8d, 0x80, 0x19, 0x57, 0x18, 0xef, 0x2b, 0x27, 0x6f, 0x62, 
+0xaa, 0x07, 0x72, 0xc0, 0x4d, 0x7a, 0x37, 0xac, 0xa4, 0x6b, 0x6f, 0x06, 0x77, 0x57, 0x5e, 0x39, 
+0xa5, 0x7e, 0xa1, 0xb5, 0xe0, 0x52, 0x8f, 0x7f, 0x23, 0x13, 0xf0, 0xfd, 0x41, 0xb7, 0x81, 0xf3, 
+0x9b, 0xa8, 0x40, 0x42, 0x0d, 0x26, 0xa4, 0xd2, 0x4c, 0xa6, 0x27, 0x2e, 0x04, 0x87, 0xce, 0x67, 
+0x89, 0x0d, 0xe6, 0xb9, 0xbd, 0xf4, 0xf4, 0x16, 0xb2, 0xbf, 0x93, 0x50, 0x27, 0x7a, 0x52, 0x00, 
+0x15, 0xb9, 0x5e, 0xc2, 0x2a, 0x48, 0x2f, 0x41, 0x2b, 0xdc, 0xe4, 0xf1, 0x4c, 0x3e, 0xef, 0x00, 
+0x76, 0x51, 0x46, 0x73, 0x79, 0x44, 0xba, 0x01, 0xb7, 0xcd, 0x5f, 0xc0, 0x6d, 0x66, 0xed, 0xc4, 
+0xb5, 0x65, 0xc1, 0x3d, 0x95, 0x7f, 0xf9, 0x4a, 0xdc, 0xf6, 0x4c, 0xc3, 0x6d, 0xa6, 0x82, 0x5b, 
+0xb2, 0x83, 0x70, 0xe3, 0x38, 0x28, 0x9a, 0x2c, 0xd9, 0x70, 0x22, 0xf0, 0xb0, 0x63, 0x8c, 0x3a, 
+0x1d, 0x4d, 0x62, 0x27, 0xe8, 0xec, 0x64, 0x3f, 0xc5, 0xc8, 0x31, 0xad, 0x9c, 0x48, 0x5a, 0x25, 
+0x9f, 0xb9, 0x98, 0x19, 0xc2, 0x2e, 0xf0, 0x70, 0x31, 0x33, 0x56, 0x5d, 0xd0, 0xb0, 0xb8, 0x4c, 
+0x12, 0xbd, 0xe4, 0xbe, 0xca, 0xab, 0x83, 0x2c, 0x60, 0x8e, 0x18, 0x5f, 0xdc, 0xc7, 0x34, 0x1b, 
+0x2c, 0x28, 0xe3, 0x08, 0x25, 0x0e, 0x40, 0xa2, 0x4b, 0x06, 0x13, 0x93, 0xe5, 0x70, 0x5c, 0xb2, 
+0x46, 0xe5, 0x91, 0xfe, 0x48, 0x27, 0x41, 0x0a, 0x3e, 0xe9, 0xe2, 0x94, 0x0f, 0x1f, 0x88, 0x6a, 
+0xa4, 0x6e, 0x7b, 0x3f, 0xd1, 0xff, 0x86, 0xf6, 0xe4, 0xac, 0x9c, 0xf8, 0x34, 0x1c, 0x7c, 0x52, 
+0x6d, 0x4b, 0x31, 0x52, 0x13, 0x25, 0x1e, 0xc8, 0x7a, 0xde, 0x1a, 0x7f, 0x37, 0xcb, 0xe1, 0xb6, 
+0x51, 0xbe, 0xf7, 0x7f, 0xba, 0x73, 0x94, 0x96, 0x5c, 0x7f, 0x96, 0x5a, 0xb2, 0x72, 0xe2, 0xfa, 
+0x05, 0xc8, 0xba, 0xde, 0x17, 0x13, 0x91, 0xf9, 0xad, 0xba, 0xa8, 0x51, 0x82, 0x95, 0xe0, 0xe6, 
+0x3b, 0x5e, 0x50, 0xdb, 0x7b, 0x90, 0xe5, 0x46, 0xd8, 0x17, 0xed, 0xd0, 0x9c, 0x2c, 0x6a, 0x7f, 
+0x18, 0xa7, 0xfa, 0x83, 0xa8, 0x40, 0x7a, 0x12, 0x1f, 0xdf, 0xef, 0xdf, 0x55, 0xee, 0xe8, 0xc2, 
+0x9c, 0x85, 0x31, 0x5d, 0x5c, 0x84, 0xe9, 0xa7, 0xd1, 0x7e, 0x93, 0xbe, 0x5f, 0x96, 0xe5, 0xb5, 
+0xb4, 0x66, 0x68, 0x1f, 0xa7, 0xf5, 0xc3, 0x82, 0xa7, 0x57, 0x4d, 0x24, 0xdf, 0x10, 0x57, 0x38, 
+0xcc, 0x61, 0x5a, 0x71, 0xc9, 0x07, 0xbf, 0x7b, 0xd0, 0xba, 0xc5, 0xe0, 0xf6, 0xbd, 0xe9, 0x1d, 
+0x6f, 0x7b, 0xf3, 0x2a, 0x98, 0x56, 0x6a, 0x12, 0xb5, 0x67, 0x68, 0xbf, 0xdc, 0xda, 0x12, 0xad, 
+0xc6, 0xc3, 0xee, 0xfa, 0xb6, 0x47, 0x5e, 0x1f, 0xbd, 0xab, 0x86, 0xbd, 0x9a, 0xf8, 0xf0, 0xb1, 
+0x40, 0x55, 0xd8, 0xa2, 0x94, 0x22, 0x6f, 0x3d, 0xc7, 0xd3, 0x21, 0x31, 0x61, 0xad, 0x92, 0x46, 
+0x1e, 0x6b, 0x85, 0x97, 0x85, 0x3a, 0x3e, 0x63, 0x17, 0xc9, 0x6f, 0x41, 0xff, 0xf1, 0x84, 0x99, 
+0x50, 0x61, 0x2e, 0x92, 0x63, 0xa4, 0x8b, 0x44, 0xe6, 0xe1, 0x57, 0x13, 0xce, 0x0f, 0x54, 0x45, 
+0xf4, 0x81, 0x5f, 0xc8, 0x8f, 0x87, 0x73, 0xf0, 0xbb, 0x37, 0x62, 0xda, 0x2a, 0x48, 0xc6, 0xad, 
+0x1a, 0x49, 0xef, 0xad, 0x82, 0xfc, 0xd5, 0xf6, 0xb2, 0x8a, 0x22, 0x79, 0xbd, 0xad, 0x48, 0x5e, 
+0xfb, 0xee, 0x0e, 0xb1, 0xe6, 0xf8, 0xcb, 0xa5, 0x5a, 0xff, 0xcb, 0x1f, 0xed, 0x38, 0xfe, 0xb2, 
+0x6d, 0x85, 0x6d, 0xd0, 0x54, 0xc5, 0xb4, 0x11, 0x26, 0x2f, 0x23, 0x8d, 0x83, 0x20, 0xf2, 0x35, 
+0x45, 0x8f, 0x7d, 0xd0, 0xb7, 0x0b, 0x33, 0x6f, 0x91, 0xfc, 0x36, 0xe9, 0x1c, 0x2b, 0xce, 0xa7, 
+0xb4, 0x3d, 0xce, 0x3d, 0x5d, 0xf2, 0x3b, 0xc1, 0xd1, 0x4f, 0x5e, 0xe1, 0x33, 0xee, 0xf3, 0x98, 
+0x71, 0x69, 0x35, 0xd7, 0x80, 0xb9, 0x67, 0xf4, 0xd3, 0xa3, 0xc0, 0xf7, 0x79, 0xcc, 0xb9, 0xe9, 
+0x94, 0x6b, 0x1a, 0xa4, 0xec, 0x8a, 0x18, 0xb9, 0x56, 0x52, 0x24, 0xf7, 0x4a, 0xdd, 0x8a, 0xee, 
+0x1d, 0x37, 0x9d, 0x18, 0x86, 0x7e, 0x54, 0x15, 0x76, 0xd5, 0x7e, 0x28, 0x2c, 0x47, 0x2f, 0xed, 
+0x4e, 0xeb, 0x35, 0x31, 0x27, 0xe3, 0xfe, 0xfe, 0x56, 0x4a, 0x6d, 0x19, 0x3a, 0x8e, 0x7c, 0x05, 
+0x5d, 0xf2, 0xe3, 0xd0, 0x5e, 0x0a, 0x91, 0xb7, 0xfe, 0x4b, 0xf3, 0x96, 0x4d, 0xcb, 0xbb, 0x57, 
+0x30, 0x73, 0xfd, 0xb1, 0x48, 0xfe, 0xf1, 0x94, 0x86, 0xe3, 0x1d, 0xd6, 0xe4, 0xab, 0x1a, 0xf1, 
+0x47, 0x6b, 0x26, 0xe5, 0x25, 0x24, 0xa3, 0x95, 0x1d, 0x90, 0x62, 0xa9, 0x9d, 0x7a, 0xbb, 0x88, 
+0x99, 0x1c, 0xa1, 0xc0, 0x62, 0x61, 0x79, 0xd8, 0x8a, 0xdf, 0x7a, 0x55, 0x97, 0xaf, 0xf6, 0x6f, 
+0x12, 0xea, 0x53, 0xda, 0x3c, 0xdf, 0x13, 0x58, 0x86, 0x31, 0xd3, 0x3c, 0x5d, 0x93, 0x05, 0x8d, 
+0xcc, 0x61, 0x13, 0xf9, 0xcd, 0x54, 0x0e, 0xdb, 0x26, 0x7a, 0x16, 0x7a, 0x21, 0x09, 0xfb, 0xb9, 
+0x57, 0x05, 0x92, 0xf0, 0xd3, 0x5d, 0xca, 0xbc, 0x93, 0x31, 0xcf, 0xd0, 0x1a, 0x12, 0xe4, 0xd9, 
+0x95, 0x5e, 0xda, 0x79, 0xc9, 0x63, 0x6a, 0xde, 0xcf, 0x5e, 0xa5, 0xd1, 0x0a, 0x5e, 0xb0, 0x01, 
+0xa2, 0x86, 0x20, 0x4e, 0x69, 0xe3, 0x94, 0x0f, 0x65, 0x4a, 0xf9, 0xc8, 0x65, 0x12, 0xf9, 0xd7, 
+0xcc, 0x0b, 0xbb, 0xe4, 0x73, 0xec, 0xa7, 0x7c, 0xd7, 0x82, 0xb5, 0xee, 0xa3, 0x3a, 0x9d, 0xfc, 
+0x0a, 0xb5, 0x8d, 0xf6, 0xe8, 0xf1, 0x9d, 0x79, 0xe2, 0xf4, 0xfd, 0x3f, 0x8a, 0x95, 0x15, 0x36, 
+0x44, 0x39, 0xae, 0xd2, 0x32, 0xfb, 0x63, 0xa4, 0x97, 0xdf, 0x98, 0x87, 0x56, 0x97, 0xc2, 0xd6, 
+0x0c, 0x6d, 0x1e, 0x1a, 0xd5, 0x5f, 0xb8, 0xfe, 0x0f, 0x5b, 0x4b, 0x63, 0x7f, 0x8c, 0x2c, 0x2a, 
+0xda, 0xd3, 0x97, 0xb6, 0x05, 0xe6, 0x40, 0xd6, 0xfd, 0xc8, 0xee, 0xe1, 0xeb, 0x21, 0xa5, 0x1c, 
+0x17, 0x5d, 0xc1, 0x4a, 0xee, 0xff, 0xcb, 0x87, 0x6d, 0xaa, 0xe3, 0xb4, 0x5c, 0x49, 0x3e, 0xa8, 
+0xb4, 0x36, 0x6b, 0xa5, 0x6f, 0x51, 0x0d, 0xbe, 0x42, 0x1e, 0x88, 0x46, 0x45, 0xff, 0x44, 0x8f, 
+0xb8, 0x68, 0xfc, 0x39, 0xd1, 0x23, 0x4e, 0xea, 0x11, 0x8c, 0x3f, 0x7b, 0x93, 0x5b, 0xab, 0x8e, 
+0x40, 0x17, 0x97, 0x20, 0xa3, 0x9f, 0x37, 0xa5, 0xc7, 0x98, 0xb4, 0xe2, 0x23, 0xf9, 0x0d, 0x1a, 
+0x97, 0xf3, 0x73, 0x95, 0xd5, 0x7f, 0x61, 0x79, 0xb1, 0x51, 0xff, 0x43, 0x3c, 0xeb, 0x2d, 0x45, 
+0xb2, 0xc7, 0xac, 0x69, 0x64, 0xc4, 0xd5, 0xeb, 0xa1, 0xc9, 0xbe, 0xf8, 0x0b, 0x79, 0x5f, 0xc4, 
+0x18, 0xd5, 0x17, 0x50, 0xbb, 0x99, 0xe0, 0x50, 0x5a, 0xc7, 0xb9, 0xfc, 0x79, 0x95, 0xaf, 0x7f, 
+0x41, 0xab, 0x38, 0x4a, 0x8a, 0x77, 0xa9, 0xe1, 0x0d, 0xce, 0xe1, 0xc3, 0x5c, 0xa7, 0x24, 0xdd, 
+0x6a, 0xf4, 0xca, 0x59, 0xf2, 0xd1, 0x91, 0x4e, 0x39, 0x55, 0x0a, 0xdc, 0x37, 0xbf, 0x61, 0xc8, 
+0xa4, 0x81, 0x16, 0x91, 0x2b, 0xfa, 0x6c, 0x2b, 0xd5, 0x3d, 0x3f, 0x64, 0x27, 0xfb, 0xa4, 0xb5, 
+0x6e, 0xbd, 0xba, 0xc3, 0xec, 0x74, 0xe6, 0x37, 0xce, 0x0b, 0xe5, 0x53, 0xf5, 0xb8, 0x67, 0x7c, 
+0x65, 0xae, 0x79, 0xc0, 0xca, 0x45, 0x6d, 0xfe, 0x2c, 0x97, 0xcb, 0x07, 0x26, 0x17, 0x4a, 0x1d, 
+0x71, 0xcd, 0x36, 0x41, 0xd2, 0xe1, 0x97, 0x29, 0x9e, 0x1a, 0xa2, 0x3b, 0x61, 0xa0, 0x8c, 0x5d, 
+0x5a, 0x67, 0xf4, 0x61, 0x34, 0x17, 0xd4, 0x29, 0xf4, 0x17, 0x07, 0x78, 0x2f, 0x54, 0xa1, 0x17, 
+0xba, 0xe4, 0x37, 0xa6, 0xf7, 0x41, 0xba, 0x87, 0xc3, 0xd1, 0x72, 0x68, 0x72, 0xd0, 0x34, 0x90, 
+0xc7, 0x13, 0x1c, 0xfd, 0xf8, 0x3d, 0xee, 0x1d, 0xd0, 0x3c, 0xf9, 0x1a, 0x7a, 0x9a, 0xc6, 0x8b, 
+0x4e, 0x1d, 0x2f, 0x2e, 0xf2, 0xae, 0xd0, 0x78, 0x71, 0x84, 0x54, 0xdb, 0x45, 0x17, 0xd3, 0x1c, 
+0x48, 0x84, 0x73, 0x14, 0xce, 0xbc, 0x7e, 0x89, 0xfb, 0x88, 0xc7, 0xdc, 0x2c, 0xa3, 0xc7, 0xf8, 
+0x97, 0xcf, 0x9e, 0x4d, 0xf5, 0x19, 0x7b, 0x16, 0xf3, 0x95, 0x8f, 0x97, 0x2e, 0x92, 0xf7, 0x91, 
+0x45, 0x17, 0x31, 0xc6, 0x8c, 0xb7, 0x55, 0x52, 0xaf, 0xb0, 0x01, 0x53, 0x11, 0xd3, 0xca, 0x9e, 
+0x70, 0x7b, 0x46, 0xef, 0x04, 0xdd, 0xac, 0x16, 0xbd, 0x8c, 0x39, 0xb5, 0x4b, 0xae, 0x07, 0x6e, 
+0x01, 0x25, 0x35, 0xdd, 0x43, 0xfb, 0xd5, 0x1e, 0xa2, 0x75, 0x26, 0x8f, 0xaa, 0xf5, 0xe7, 0xa6, 
+0x4a, 0x52, 0x9b, 0x91, 0xfe, 0x60, 0xc3, 0x90, 0xbb, 0x48, 0x0e, 0x50, 0x4c, 0xc5, 0x94, 0xcb, 
+0x69, 0xc9, 0xa2, 0xe2, 0xb7, 0x47, 0xa5, 0x6e, 0x87, 0x22, 0x21, 0xf2, 0x75, 0x72, 0x3e, 0xb5, 
+0x38, 0x65, 0x09, 0xba, 0x17, 0x41, 0xbe, 0xbb, 0x53, 0x96, 0xf0, 0xf5, 0x7b, 0x15, 0x4b, 0x38, 
+0x78, 0xff, 0x97, 0xdb, 0xd5, 0xf5, 0x17, 0x93, 0xa7, 0xa0, 0xeb, 0x96, 0x38, 0xdc, 0x82, 0xc7, 
+0xde, 0x23, 0x34, 0x38, 0x7a, 0x84, 0xa6, 0xa8, 0xd9, 0x91, 0x08, 0xfc, 0x52, 0xf0, 0x45, 0x3c, 
+0xee, 0x2a, 0x66, 0x25, 0x59, 0x01, 0x5b, 0x37, 0x9f, 0xfb, 0xb2, 0x72, 0xbd, 0x3f, 0x8b, 0x8b, 
+0x27, 0x86, 0x14, 0x9f, 0x47, 0x79, 0xd8, 0xed, 0x16, 0xd6, 0x28, 0xef, 0xf7, 0x1c, 0x85, 0x7c, 
+0x23, 0xdd, 0xa9, 0x42, 0x6c, 0x08, 0x92, 0xd7, 0x3c, 0x1f, 0x3a, 0xb5, 0x08, 0x28, 0xfe, 0xc8, 
+0x7c, 0x8c, 0xbc, 0x5c, 0x45, 0x33, 0x93, 0xda, 0x55, 0x4d, 0x37, 0x87, 0xa0, 0x4a, 0xc6, 0xa8, 
+0x56, 0xdd, 0xf3, 0x94, 0x05, 0x4b, 0x27, 0xbf, 0xfe, 0xa2, 0xe0, 0xe4, 0xda, 0x62, 0x09, 0x66, 
+0x76, 0x11, 0xaa, 0xad, 0x1d, 0x9a, 0xa2, 0x13, 0x7a, 0x93, 0x0b, 0xb3, 0x7c, 0x89, 0x8b, 0xb4, 
+0xc6, 0x10, 0x28, 0x96, 0x88, 0x98, 0x53, 0x3b, 0x33, 0x6f, 0xf5, 0x71, 0x5a, 0xac, 0x4d, 0xad, 
+0x3d, 0x95, 0x8d, 0x72, 0x4e, 0x14, 0xa1, 0xf5, 0x2d, 0x01, 0xee, 0x25, 0xb0, 0xa7, 0x5c, 0xd0, 
+0x02, 0x9d, 0x6e, 0x1f, 0xb3, 0xc3, 0xae, 0x12, 0x51, 0x0b, 0x34, 0x41, 0x59, 0x5d, 0x8f, 0x2d, 
+0xe7, 0xfb, 0x98, 0x21, 0x43, 0x01, 0x33, 0x9c, 0x77, 0x03, 0x4c, 0x23, 0xb0, 0xd3, 0x90, 0x5d, 
+0x03, 0xec, 0x74, 0x54, 0x8e, 0xef, 0x12, 0xbc, 0xe2, 0x7f, 0xbf, 0x82, 0x2c, 0xa4, 0x25, 0xc0, 
+0x8a, 0xec, 0x83, 0x0a, 0xf0, 0x16, 0x46, 0xb4, 0xe0, 0xcc, 0x94, 0xb1, 0x4e, 0x92, 0x5a, 0x46, 
+0x55, 0x6a, 0x31, 0x36, 0xe2, 0x7c, 0x6c, 0x51, 0x80, 0xe9, 0xbc, 0xcf, 0x43, 0x0f, 0x78, 0x9e, 
+0x89, 0x0f, 0xba, 0xde, 0x1a, 0x72, 0x67, 0x6d, 0x73, 0x9d, 0x1a, 0x72, 0xeb, 0x56, 0x5e, 0x04, 
+0x7e, 0x37, 0xd1, 0x9a, 0xbf, 0xdb, 0x08, 0x9d, 0x50, 0x1f, 0xdc, 0xbd, 0x48, 0xf1, 0x03, 0x59, 
+0x81, 0x4f, 0x96, 0x5b, 0x97, 0xfa, 0x36, 0x95, 0x2e, 0xba, 0x60, 0xef, 0x6a, 0xa1, 0xc7, 0xe7, 
+0xb5, 0xe9, 0x73, 0x39, 0x0d, 0x63, 0x3a, 0xc4, 0x6c, 0xea, 0x9e, 0x18, 0xd2, 0xc1, 0xa7, 0x82, 
+0x49, 0xe9, 0x25, 0x6e, 0x1d, 0xe4, 0x20, 0xc5, 0xae, 0xa4, 0x2c, 0x52, 0xc6, 0x67, 0xda, 0x8b, 
+0x2a, 0x38, 0x89, 0x1f, 0xaf, 0xf3, 0xb5, 0x86, 0xbf, 0x7d, 0x9d, 0xf6, 0x4d, 0xf6, 0x56, 0xa8, 
+0xfe, 0x93, 0xd4, 0x6e, 0x50, 0x50, 0x8c, 0xfa, 0x35, 0xa3, 0x04, 0xed, 0x5f, 0x7b, 0x81, 0xeb, 
+0xb7, 0xeb, 0xd2, 0xbc, 0x67, 0x72, 0x1b, 0x44, 0xd8, 0x85, 0xb4, 0x92, 0x48, 0x3b, 0x2c, 0x45, 
+0x5a, 0x4f, 0x49, 0xef, 0x29, 0x05, 0xef, 0x5a, 0x15, 0xef, 0x75, 0xcb, 0x10, 0xcd, 0x05, 0xe4, 
+0x9d, 0x44, 0x9f, 0xd0, 0xce, 0x69, 0x82, 0x71, 0x3c, 0xa5, 0x9d, 0xdb, 0x36, 0x32, 0xf2, 0x5a, 
+0x58, 0xbe, 0x90, 0x62, 0xfd, 0x42, 0x4a, 0x7e, 0xf0, 0xf8, 0xd4, 0xdc, 0xf1, 0x05, 0xef, 0x5c, 
+0x93, 0xb8, 0xd2, 0xe6, 0x89, 0x8a, 0x19, 0xfb, 0x22, 0x37, 0xa9, 0xb5, 0x2e, 0xc6, 0x78, 0x6e, 
+0x67, 0x62, 0x70, 0x27, 0xcd, 0x1d, 0x2d, 0x43, 0x37, 0xce, 0x1e, 0x93, 0x27, 0xd5, 0xd9, 0x03, 
+0xdc, 0xce, 0xd7, 0xf5, 0x53, 0xab, 0x01, 0x56, 0x92, 0xfe, 0xd3, 0x67, 0x93, 0x34, 0xcc, 0x99, 
+0xf4, 0x1b, 0xdc, 0xa9, 0xce, 0x2b, 0x16, 0x6e, 0x37, 0x7e, 0xa1, 0xac, 0x32, 0x73, 0xdc, 0xd0, 
+0x0a, 0x7b, 0xf0, 0x38, 0x38, 0x8b, 0x11, 0x67, 0x89, 0x3d, 0x82, 0x13, 0x23, 0xd0, 0xe5, 0x6a, 
+0x28, 0xc4, 0x77, 0xd3, 0x1c, 0x74, 0x1e, 0xad, 0x66, 0x9b, 0xdc, 0x37, 0x01, 0xba, 0x2e, 0x0d, 
+0x5d, 0x07, 0x0d, 0xc8, 0x1a, 0x7a, 0x0c, 0x33, 0x03, 0xed, 0x50, 0x19, 0x4d, 0x4e, 0x2a, 0xe9, 
+0xb0, 0x43, 0x2f, 0x45, 0x85, 0x22, 0x65, 0xce, 0x30, 0x90, 0xbf, 0x23, 0x62, 0xb0, 0xad, 0xac, 
+0xbc, 0xc8, 0xec, 0x52, 0x10, 0xfd, 0x57, 0xad, 0xf6, 0x0b, 0xe6, 0x15, 0x25, 0x0f, 0x3b, 0xcb, 
+0x61, 0x1b, 0x15, 0xcc, 0x9d, 0x0a, 0x6c, 0xc6, 0x5e, 0xe7, 0xb8, 0xa3, 0xb7, 0x48, 0xd3, 0x03, 
+0xdf, 0x59, 0x91, 0xc3, 0x1b, 0xdc, 0x19, 0x7a, 0x4c, 0xd9, 0x6d, 0xc3, 0x06, 0xcd, 0x63, 0x8e, 
+0x5a, 0xf3, 0xcd, 0x11, 0x3d, 0xf7, 0xa8, 0x5c, 0xf6, 0x9a, 0x03, 0x64, 0x0f, 0x3d, 0x46, 0xb0, 
+0xfc, 0xd0, 0xc8, 0x39, 0x3c, 0x03, 0xc1, 0xe3, 0x63, 0x31, 0xc8, 0xd3, 0x08, 0x5a, 0x55, 0x26, 
+0x34, 0x2e, 0x07, 0xe6, 0x44, 0xca, 0x03, 0xcf, 0x33, 0x43, 0xc4, 0xcc, 0xf1, 0x30, 0x91, 0x9f, 
+0x02, 0x73, 0x5a, 0xb6, 0x64, 0x41, 0xaa, 0x4e, 0x6d, 0x79, 0x2a, 0x55, 0xc1, 0x59, 0xcf, 0xf9, 
+0x6e, 0x04, 0x92, 0xdb, 0x6e, 0xaf, 0x93, 0xac, 0x34, 0x9b, 0x96, 0xbc, 0x4d, 0x5a, 0x6e, 0x7e, 
+0x2b, 0xed, 0xe6, 0x73, 0xbf, 0xe1, 0xa0, 0xf7, 0xc7, 0xcd, 0x73, 0x20, 0x1f, 0x99, 0x3a, 0x27, 
+0x70, 0x6e, 0x16, 0xb8, 0xa7, 0x2b, 0xe5, 0x43, 0xb4, 0x03, 0xe6, 0x6f, 0xfe, 0x93, 0x34, 0x21, 
+0xf2, 0xa6, 0xdb, 0x3a, 0x20, 0x65, 0xc0, 0x81, 0xca, 0xce, 0xcb, 0x14, 0x2f, 0xa3, 0x67, 0x5c, 
+0x07, 0xc8, 0xaa, 0xd1, 0xd0, 0x97, 0x69, 0xe9, 0x25, 0x69, 0x4e, 0xe4, 0xfe, 0xb5, 0x69, 0xb1, 
+0x25, 0x5f, 0xe0, 0xd2, 0x32, 0xe2, 0xd2, 0x12, 0x92, 0x69, 0xdc, 0x4f, 0x4d, 0x5e, 0x05, 0x3e, 
+0x23, 0x29, 0x7c, 0x43, 0xd4, 0xaa, 0xe0, 0x3d, 0x43, 0x1e, 0x38, 0x5d, 0xd4, 0x20, 0xcd, 0x0b, 
+0x6c, 0x8f, 0xcc, 0x8f, 0x09, 0x07, 0xb6, 0x47, 0x3c, 0xb0, 0xd8, 0xb7, 0x87, 0x03, 0x81, 0xfe, 
+0x2e, 0xdd, 0x48, 0x7f, 0x6b, 0x5d, 0x74, 0x86, 0xaa, 0xb3, 0xf9, 0x03, 0xfd, 0x9d, 0x26, 0x51, 
+0xe3, 0x4b, 0x8c, 0x0c, 0x33, 0xcb, 0x06, 0x8b, 0x94, 0x13, 0xe8, 0x8f, 0xe4, 0xc0, 0x06, 0x45, 
+0x6c, 0xa4, 0xaf, 0x55, 0x17, 0x9b, 0x21, 0x59, 0xa1, 0xb3, 0x5a, 0x00, 0xa9, 0xbf, 0xfb, 0x35, 
+0x9b, 0xc6, 0xd7, 0x37, 0xd2, 0xd7, 0x76, 0xf4, 0x44, 0x02, 0xb2, 0xc2, 0x40, 0x73, 0x17, 0x64, 
+0x9a, 0xbe, 0xc0, 0x0b, 0xfb, 0x1b, 0x96, 0x84, 0xc9, 0xa4, 0xb4, 0xcc, 0xdd, 0xce, 0xac, 0xe0, 
+0x30, 0xbe, 0xee, 0xf3, 0x55, 0x73, 0xc5, 0x7f, 0xed, 0x83, 0x35, 0xe8, 0xbf, 0xda, 0x07, 0xcb, 
+0xed, 0x82, 0x86, 0xf4, 0x5c, 0x69, 0xa6, 0xdd, 0x55, 0xd5, 0x13, 0xf2, 0xde, 0x0c, 0x4f, 0xac, 
+0x81, 0xef, 0xc3, 0xf8, 0xa2, 0x67, 0xd6, 0xae, 0x8c, 0x9b, 0xf4, 0x58, 0x37, 0x7c, 0x71, 0xcd, 
+0x28, 0x03, 0x06, 0xd7, 0x74, 0xe4, 0x26, 0xb1, 0x91, 0x6a, 0x99, 0xbe, 0x7e, 0x41, 0xf2, 0x2a, 
+0x63, 0xb4, 0x2b, 0xbb, 0x58, 0x2d, 0xea, 0x68, 0x9f, 0x27, 0x36, 0x2a, 0x5f, 0x62, 0x2c, 0xd7, 
+0x4c, 0x7e, 0x0f, 0x1a, 0x5b, 0xb2, 0x29, 0xe5, 0x95, 0xa7, 0x51, 0x4f, 0x2b, 0x2d, 0x81, 0x9f, 
+0xa3, 0x9f, 0x68, 0x67, 0x0c, 0x5a, 0xc3, 0x3d, 0x7e, 0xfa, 0x77, 0xfd, 0x7e, 0x8f, 0xd7, 0xc3, 
+0xd7, 0x72, 0x67, 0xf8, 0x2b, 0xbd, 0x95, 0xfd, 0x09, 0x9e, 0x6e, 0x78, 0x77, 0x30, 0xd1, 0x97, 
+0x70, 0xb2, 0x6c, 0xda, 0x45, 0x43, 0x5c, 0x0c, 0xfd, 0xe1, 0xb9, 0x1b, 0x7c, 0xaf, 0x29, 0xff, 
+0x1c, 0x60, 0xf1, 0xf2, 0xfa, 0x77, 0x6b, 0x09, 0x02, 0x2f, 0x3f, 0x83, 0xa0, 0x26, 0xfa, 0x78, 
+0xba, 0xe1, 0xdd, 0x1d, 0xfd, 0x89, 0x7e, 0x82, 0x45, 0x94, 0x6c, 0xbf, 0xb1, 0xee, 0x38, 0xb3, 
+0x50, 0x7e, 0xaf, 0xd7, 0x3b, 0x30, 0x55, 0x77, 0x3f, 0xd5, 0x3d, 0xd2, 0x97, 0xaa, 0x91, 0xfc, 
+0x10, 0x19, 0x1e, 0xe7, 0xa6, 0xa9, 0x18, 0xf7, 0xdd, 0xf5, 0x4f, 0xf9, 0x98, 0xbf, 0x6e, 0xbb, 
+0xbe, 0x50, 0x22, 0x27, 0xa3, 0xc4, 0xac, 0x8c, 0x12, 0x66, 0xb5, 0xc4, 0xec, 0x29, 0x0f, 0x63, 
+0x31, 0x66, 0x73, 0x67, 0xa8, 0x90, 0x3c, 0x89, 0x5d, 0x18, 0x2d, 0x1d, 0xfc, 0x84, 0xce, 0xd7, 
+0x86, 0x33, 0xb2, 0x03, 0xfa, 0x74, 0xa8, 0xb0, 0x8b, 0x99, 0x97, 0x14, 0x19, 0x74, 0x5b, 0x59, 
+0x9e, 0x93, 0x09, 0xdb, 0x98, 0x95, 0x70, 0xae, 0xf3, 0xfb, 0xbc, 0xbe, 0x0c, 0x9c, 0x07, 0xa6, 
+0xe3, 0x3c, 0xbe, 0x3d, 0xe0, 0x8d, 0x58, 0x4a, 0x35, 0xfe, 0x97, 0x7b, 0x85, 0x3f, 0xbd, 0xd0, 
+0xf8, 0xc8, 0xeb, 0x89, 0xad, 0x33, 0xf7, 0xf6, 0xbd, 0xff, 0x82, 0xa4, 0xe9, 0x65, 0xa7, 0x77, 
+0x38, 0xf4, 0xb1, 0x99, 0x67, 0xf7, 0xfb, 0x8f, 0x9e, 0xdb, 0x77, 0x32, 0xa1, 0x81, 0x86, 0x3e, 
+0x43, 0x2e, 0xe4, 0x7e, 0xc7, 0xa7, 0x1f, 0x11, 0xb5, 0x7f, 0xda, 0x47, 0x9e, 0xe5, 0x1f, 0xc8, 
+0x4f, 0x73, 0xaf, 0x66, 0x7c, 0xca, 0xab, 0x79, 0x1e, 0x32, 0xf1, 0x25, 0xcc, 0xd3, 0x69, 0x8f, 
+0xe6, 0x56, 0xcd, 0xa2, 0x2a, 0xa1, 0x3d, 0x4e, 0x1e, 0xcd, 0x91, 0x43, 0x0f, 0x77, 0x6a, 0x0a, 
+0x75, 0xff, 0x9d, 0xb6, 0xed, 0xa4, 0x51, 0x4c, 0xa5, 0x52, 0x7e, 0xcd, 0x2c, 0x71, 0x85, 0x3f, 
+0xea, 0x64, 0xa7, 0xf7, 0xe3, 0x5d, 0x1f, 0x7c, 0xf2, 0xc4, 0xc3, 0xb6, 0xea, 0xdf, 0x9f, 0x67, 
+0x96, 0x82, 0xda, 0xff, 0x1e, 0xcd, 0x88, 0x8f, 0x47, 0x76, 0x6c, 0xc8, 0x7f, 0xea, 0xe1, 0xa8, 
+0xf9, 0x64, 0x22, 0x76, 0xe9, 0xd5, 0x3e, 0xa5, 0x6d, 0xbd, 0x8c, 0x7b, 0x3f, 0x3d, 0x92, 0x26, 
+0xce, 0xf8, 0x1a, 0xed, 0x64, 0x8a, 0x2f, 0x6d, 0x18, 0xff, 0x51, 0xe7, 0xf8, 0x3e, 0x66, 0x8e, 
+0x67, 0x1d, 0xa4, 0xdd, 0x69, 0x79, 0x7c, 0x4c, 0xd2, 0xc8, 0xe0, 0x7e, 0x63, 0x89, 0xef, 0xf6, 
+0x94, 0x32, 0x67, 0x4f, 0xf2, 0x16, 0x8e, 0x7e, 0x7e, 0x8a, 0xfb, 0xff, 0x44, 0xe2, 0x38, 0xe8, 
+0xe1, 0x67, 0xb8, 0xff, 0x1a, 0xb2, 0x1c, 0x76, 0xab, 0x99, 0xef, 0xce, 0xee, 0x42, 0x9a, 0xe2, 
+0x95, 0xe4, 0x7b, 0x93, 0x24, 0xa3, 0x69, 0x29, 0x13, 0x0d, 0xef, 0x84, 0xf5, 0x8d, 0x09, 0xd0, 
+0xef, 0xf2, 0x08, 0xe4, 0x5d, 0x63, 0x3f, 0x6c, 0x37, 0x16, 0xe8, 0xef, 0xc9, 0xcb, 0xf0, 0xa1, 
+0xa3, 0x1c, 0xa0, 0x3f, 0x48, 0xd0, 0xc9, 0x8f, 0x6e, 0x2f, 0x92, 0x4f, 0xd9, 0xbb, 0xe4, 0xd3, 
+0xa4, 0xfd, 0xde, 0x33, 0x44, 0x72, 0x26, 0xed, 0x8f, 0xef, 0xc1, 0x7c, 0xe3, 0x54, 0x35, 0x25, 
+0xbb, 0xaa, 0x1b, 0x2d, 0x01, 0x3d, 0x0a, 0x81, 0xa3, 0xe2, 0x55, 0x5a, 0x38, 0xad, 0x0d, 0x15, 
+0xdc, 0x77, 0x09, 0x08, 0xca, 0x6e, 0xb9, 0xef, 0x3e, 0xad, 0xec, 0x63, 0xed, 0xb6, 0xab, 0x65, 
+0xa6, 0x3c, 0x0a, 0x54, 0xd2, 0x43, 0x9e, 0xaf, 0x89, 0xcb, 0xea, 0xca, 0x8f, 0xc1, 0xfb, 0x2d, 
+0x03, 0x23, 0x09, 0x45, 0xeb, 0x3f, 0x68, 0xef, 0x24, 0xa4, 0x7d, 0x39, 0xb7, 0x3b, 0x68, 0x46, 
+0xec, 0x92, 0x27, 0x15, 0xbd, 0x72, 0xd5, 0x55, 0xda, 0x9d, 0xd5, 0xe9, 0xf1, 0xee, 0x56, 0x57, 
+0x85, 0xa7, 0x3c, 0xf8, 0x4c, 0xb0, 0x23, 0x8d, 0xef, 0x27, 0xcf, 0x5a, 0x45, 0x3e, 0xfc, 0xf4, 
+0xea, 0xb7, 0x47, 0xd1, 0x97, 0x53, 0x63, 0x18, 0x1c, 0x35, 0xc9, 0xe7, 0xe8, 0x2b, 0xa9, 0x73, 
+0x09, 0xdf, 0x29, 0xe1, 0x10, 0x96, 0x44, 0xcd, 0xe3, 0xbb, 0x6f, 0x58, 0x17, 0x10, 0xff, 0x3a, 
+0xcc, 0x88, 0xbf, 0xb1, 0xdf, 0xa1, 0x39, 0xd9, 0x7f, 0x72, 0xbb, 0xc2, 0xc9, 0xfc, 0xcc, 0x89, 
+0x47, 0x04, 0xbe, 0x62, 0xb4, 0x8c, 0x39, 0x06, 0xfd, 0xed, 0x1c, 0xcb, 0xbd, 0x8a, 0x37, 0xe0, 
+0x4b, 0x60, 0xed, 0x51, 0x75, 0xf9, 0x5c, 0x1b, 0xca, 0x4c, 0xed, 0xe1, 0x83, 0x3e, 0xbf, 0xfa, 
+0x9e, 0xed, 0xdf, 0x79, 0x4d, 0x7e, 0xd1, 0xeb, 0x6d, 0xec, 0x6f, 0x7d, 0x61, 0xfa, 0xd7, 0x2f, 
+0xb4, 0xdd, 0xf9, 0xd7, 0xb1, 0x0c, 0x1b, 0xbc, 0xbb, 0xb9, 0xad, 0xa0, 0x78, 0x43, 0x4c, 0xf2, 
+0x39, 0xe5, 0x44, 0x22, 0x69, 0x94, 0x7f, 0x05, 0x56, 0x63, 0x34, 0x1b, 0x36, 0xa2, 0xee, 0x2b, 
+0xa8, 0xa8, 0x9e, 0xb1, 0x80, 0x7d, 0x48, 0x27, 0x8f, 0xac, 0x8e, 0x10, 0xf7, 0x96, 0xf4, 0x42, 
+0xb2, 0xd2, 0x7e, 0x7b, 0xfd, 0x17, 0xfc, 0x25, 0x39, 0x19, 0xfe, 0x12, 0x26, 0xd0, 0x3a, 0x8c, 
+0xfd, 0xc4, 0x2f, 0x99, 0x58, 0xcb, 0xe9, 0xa6, 0xfa, 0x42, 0x14, 0xab, 0xcc, 0x10, 0xd3, 0x70, 
+0xeb, 0xb0, 0x9d, 0xd6, 0xeb, 0x49, 0x67, 0x33, 0x9b, 0x73, 0x59, 0xa3, 0x60, 0x12, 0x60, 0xd7, 
+0x7b, 0xd2, 0xb3, 0x24, 0xe3, 0x3e, 0x14, 0xf0, 0xff, 0xb5, 0x17, 0xb8, 0x57, 0xa4, 0x87, 0xb9, 
+0x0c, 0x8c, 0xde, 0x88, 0xa3, 0x48, 0x16, 0x9b, 0x3c, 0x1a, 0x16, 0xf1, 0x99, 0x3c, 0x3a, 0x46, 
+0x38, 0xfb, 0x3c, 0xb7, 0x7b, 0x0c, 0x3a, 0xa9, 0x9c, 0x3c, 0x94, 0x11, 0x83, 0xa9, 0x9f, 0x31, 
+0xed, 0x07, 0x3d, 0x62, 0x54, 0x9b, 0xe9, 0x6f, 0x31, 0xe8, 0x15, 0x5b, 0xf1, 0x5a, 0x8d, 0xea, 
+0x6f, 0x69, 0x0d, 0xf5, 0xc3, 0xd2, 0x69, 0xbd, 0xbd, 0x97, 0x69, 0x0c, 0x3a, 0x5a, 0x7d, 0xe7, 
+0x63, 0xc1, 0xa3, 0x8c, 0x85, 0x48, 0x99, 0x1d, 0xb9, 0x1b, 0xfa, 0x41, 0x2f, 0xc5, 0xdf, 0x71, 
+0x8f, 0x5b, 0xc3, 0xbd, 0x5d, 0x9e, 0xd4, 0x5a, 0x44, 0x24, 0x2f, 0x4d, 0xcb, 0xb5, 0xe4, 0x83, 
+0x4e, 0xf5, 0x86, 0xe2, 0xbb, 0x91, 0x68, 0xb7, 0x99, 0x95, 0xf4, 0x87, 0x35, 0x8a, 0x4f, 0xb8, 
+0x9c, 0x56, 0xe1, 0xff, 0x0b, 0xff, 0xcd, 0x56, 0xfb, 0x63, 0xd3, 0x67, 0x6e, 0xa7, 0x87, 0xfb, 
+0x6e, 0xf2, 0xa6, 0x6b, 0xdf, 0x9f, 0x0e, 0x70, 0x99, 0x50, 0x83, 0x91, 0x65, 0x9d, 0x96, 0x3b, 
+0x41, 0xd2, 0x2e, 0xb0, 0x33, 0x5c, 0xac, 0xc0, 0xcb, 0x98, 0xc5, 0x0b, 0x59, 0xfe, 0x8a, 0x89, 
+0x4f, 0xeb, 0x32, 0x76, 0x0d, 0x88, 0xa9, 0x5d, 0x03, 0x8a, 0x06, 0xb8, 0x46, 0xd5, 0xd8, 0x69, 
+0x15, 0x8d, 0xe8, 0xcc, 0x25, 0xe3, 0x33, 0x18, 0x2f, 0xb9, 0x90, 0x41, 0x5e, 0x87, 0xa2, 0xa9, 
+0x96, 0x12, 0x5c, 0xa6, 0xbb, 0x2d, 0x00, 0xe9, 0xb2, 0x9f, 0xcb, 0x56, 0x73, 0x5a, 0x5b, 0xe1, 
+0xb9, 0x69, 0xaf, 0xb8, 0x7b, 0x36, 0xc6, 0xc5, 0x33, 0xc1, 0xd1, 0xab, 0x57, 0xf8, 0xe8, 0x9f, 
+0xa9, 0x68, 0x26, 0x8a, 0xfe, 0x5e, 0x52, 0xee, 0xec, 0x11, 0xf2, 0x61, 0x45, 0xdb, 0x1d, 0x4d, 
+0xb4, 0x03, 0x93, 0x76, 0xd2, 0x60, 0x5e, 0x70, 0x2b, 0xf6, 0xd5, 0xe7, 0x6b, 0xed, 0x4c, 0xac, 
+0xb2, 0x05, 0xd4, 0xdd, 0x09, 0x2d, 0x8a, 0x84, 0x09, 0xeb, 0x03, 0x90, 0x64, 0x91, 0x60, 0x54, 
+0x3b, 0x02, 0x4d, 0x38, 0x2c, 0x56, 0x5e, 0x14, 0xac, 0xc7, 0x8f, 0x9a, 0x9c, 0xec, 0xdb, 0xc9, 
+0x64, 0xb8, 0x02, 0xcf, 0xdb, 0x93, 0x72, 0x78, 0x89, 0x64, 0x30, 0xfd, 0x0d, 0xfb, 0xb6, 0xd3, 
+0x1a, 0xd1, 0x37, 0xf6, 0x77, 0x5c, 0x91, 0xec, 0x04, 0x47, 0xd4, 0xa4, 0x20, 0xd1, 0x18, 0x24, 
+0x28, 0x77, 0xdf, 0x70, 0x8e, 0x08, 0xed, 0x36, 0x29, 0x9a, 0x6f, 0x4a, 0xff, 0x24, 0x9a, 0xda, 
+0xb9, 0xfe, 0x69, 0xd3, 0x6c, 0x9d, 0xf9, 0xde, 0xcf, 0xa9, 0x8d, 0x5b, 0xd9, 0x32, 0xa7, 0x41, 
+0xf7, 0xde, 0x3e, 0xb1, 0x92, 0x56, 0x2d, 0x38, 0x2f, 0xa7, 0x47, 0x14, 0xf7, 0x14, 0x6a, 0x54, 
+0xce, 0x2f, 0x23, 0x9e, 0xd6, 0xf4, 0xd3, 0xac, 0x48, 0x9c, 0x7d, 0xfc, 0x28, 0xe9, 0x57, 0xb4, 
+0x7f, 0x39, 0x25, 0x1d, 0x21, 0x1b, 0x9d, 0xc4, 0xd5, 0x9f, 0x70, 0xf9, 0x2f, 0xe9, 0xbc, 0x85, 
+0xcc, 0x89, 0xf9, 0xe3, 0x51, 0x45, 0xcb, 0xc4, 0xcc, 0x4f, 0x7b, 0x5d, 0x9c, 0xb0, 0xe9, 0x5d, 
+0xae, 0x39, 0x64, 0x37, 0x8d, 0x42, 0x1f, 0x0a, 0x1b, 0xea, 0xde, 0xc9, 0x9f, 0x94, 0x58, 0x72, 
+0x3d, 0x6c, 0xad, 0x2c, 0xf7, 0x4c, 0x68, 0x84, 0x4d, 0xe9, 0x33, 0xc4, 0x4c, 0xd0, 0x88, 0x1e, 
+0x55, 0x57, 0xcc, 0x22, 0x5d, 0x50, 0x4c, 0xc9, 0x2e, 0xc6, 0x3e, 0xf8, 0x2a, 0x7d, 0x89, 0x6b, 
+0x03, 0x86, 0x77, 0x1f, 0x7b, 0x24, 0xf1, 0x08, 0xe6, 0x7b, 0x9e, 0x2b, 0x27, 0x23, 0xd7, 0x2c, 
+0x25, 0x17, 0xd7, 0x98, 0xcc, 0xef, 0x3e, 0x3a, 0x90, 0x18, 0xc0, 0xdc, 0xb8, 0x8d, 0x39, 0x03, 
+0x07, 0x07, 0x36, 0x30, 0xb6, 0x0b, 0x36, 0x37, 0xcd, 0xe4, 0x7b, 0xec, 0xa9, 0x9a, 0x1e, 0x9a, 
+0x9f, 0x1b, 0x36, 0x69, 0x7c, 0xd7, 0x98, 0x7e, 0x80, 0xd1, 0x09, 0x8f, 0x53, 0x7c, 0x46, 0x98, 
+0xd2, 0x8d, 0x0a, 0x33, 0x74, 0xa3, 0x42, 0x55, 0xcf, 0x28, 0xe4, 0xf5, 0xce, 0x18, 0x85, 0xa5, 
+0x76, 0xaa, 0x4f, 0xfa, 0x29, 0x66, 0x45, 0x3d, 0xac, 0xca, 0xb7, 0x54, 0x8b, 0x08, 0xfc, 0x4b, 
+0xa7, 0x18, 0x17, 0xad, 0x04, 0x9f, 0x3d, 0xcf, 0x2c, 0x69, 0x1e, 0xcb, 0x75, 0x33, 0xb1, 0x13, 
+0x1c, 0xc6, 0xf7, 0x34, 0x5d, 0xd9, 0xc3, 0x69, 0xa8, 0x51, 0xec, 0xf1, 0xfc, 0xc9, 0xa9, 0xbd, 
+0x42, 0x7c, 0x9d, 0x9c, 0xce, 0x07, 0x97, 0x8a, 0x0d, 0xbc, 0x15, 0xc2, 0xd7, 0xd3, 0xd6, 0xa0, 
+0xff, 0xeb, 0xec, 0x4e, 0xa6, 0x03, 0x9d, 0xb9, 0xcf, 0xbe, 0x76, 0xe2, 0xfa, 0xf9, 0x8c, 0x76, 
+0x76, 0x73, 0x98, 0x4b, 0x14, 0x3c, 0xd4, 0xf5, 0x81, 0xa9, 0xaf, 0x0d, 0xd4, 0x5f, 0xe0, 0x51, 
+0xd2, 0x02, 0xcc, 0xa9, 0x59, 0x52, 0x2a, 0xa5, 0xf6, 0x74, 0x3a, 0xbe, 0x1e, 0x45, 0x00, 0x75, 
+0x31, 0xf7, 0x48, 0x5d, 0xa3, 0xfd, 0xc2, 0xc4, 0x9d, 0xf9, 0x5c, 0x76, 0x54, 0xd0, 0x5a, 0x0e, 
+0xe7, 0x8a, 0x42, 0x5a, 0xc7, 0x81, 0x3e, 0xc3, 0x35, 0xb9, 0xaf, 0xd9, 0xaa, 0x53, 0x89, 0xaf, 
+0xd7, 0xc3, 0x68, 0xb5, 0xce, 0xed, 0x62, 0xe6, 0xea, 0x89, 0xc9, 0x2b, 0x19, 0xfc, 0xe5, 0x13, 
+0x3d, 0xe0, 0x17, 0x3a, 0x21, 0xc1, 0xbf, 0x66, 0x7c, 0x29, 0x54, 0x38, 0xef, 0x64, 0x62, 0xd5, 
+0xc4, 0xa4, 0xed, 0xe0, 0xf6, 0xf5, 0xb0, 0x9a, 0x17, 0x2b, 0x96, 0x75, 0x46, 0x6e, 0xc7, 0x14, 
+0x3f, 0x4e, 0x04, 0xe6, 0x80, 0x4f, 0xaa, 0xc0, 0x27, 0xdb, 0x39, 0x9f, 0xbc, 0x6e, 0x58, 0xcc, 
+0x34, 0xec, 0x66, 0x3a, 0x27, 0x86, 0x96, 0xbb, 0xa6, 0x56, 0x5b, 0x20, 0x0f, 0x99, 0x79, 0xce, 
+0xc9, 0x84, 0x34, 0x4c, 0xab, 0x56, 0x90, 0xca, 0x44, 0x53, 0x1b, 0xa4, 0x13, 0xa7, 0xe9, 0xba, 
+0x24, 0xd1, 0xb4, 0x2b, 0x17, 0x3a, 0x86, 0xcb, 0x8d, 0xef, 0xb4, 0x7a, 0xd9, 0x5b, 0x21, 0xb1, 
+0x49, 0x1a, 0x6d, 0x73, 0x00, 0xe9, 0x26, 0x68, 0x1e, 0x3b, 0xed, 0xa9, 0x95, 0xc3, 0x47, 0x90, 
+0xba, 0x98, 0xdd, 0x1c, 0xd3, 0x1c, 0x4d, 0xd0, 0x59, 0x71, 0xda, 0x67, 0x8a, 0x7a, 0x19, 0xea, 
+0x05, 0x85, 0x69, 0x8f, 0x30, 0xd5, 0xa1, 0xf6, 0x9b, 0x48, 0xfb, 0x30, 0x52, 0xf5, 0x7c, 0x4f, 
+0xa7, 0x62, 0x6e, 0x8c, 0x09, 0x28, 0x49, 0x27, 0x73, 0x75, 0x69, 0x4e, 0x44, 0x3d, 0x24, 0x6b, 
+0xc1, 0x89, 0xb0, 0xa4, 0x2e, 0x1b, 0x0b, 0x08, 0x0f, 0xda, 0xe7, 0x61, 0x51, 0xbc, 0xcc, 0xb0, 
+0xcd, 0x4d, 0xdc, 0x4f, 0xeb, 0x63, 0xba, 0x29, 0x1b, 0x9b, 0x4b, 0xc1, 0x4b, 0xea, 0xb9, 0xc5, 
+0x7c, 0x68, 0x62, 0xa2, 0xd7, 0x83, 0xde, 0xf8, 0xc6, 0x5d, 0x1e, 0x66, 0xe4, 0x6f, 0x79, 0x77, 
+0xd1, 0x9e, 0x65, 0x7a, 0x9b, 0x8b, 0xb7, 0x1c, 0xfe, 0x66, 0xc1, 0x9b, 0xd9, 0xdb, 0xc3, 0xf2, 
+0x78, 0x6c, 0x0e, 0x62, 0xb9, 0xfc, 0x2d, 0x57, 0xef, 0x99, 0xd1, 0x89, 0x98, 0xa5, 0xf2, 0x22, 
+0x33, 0xaa, 0x5e, 0xe6, 0x5e, 0x60, 0x9b, 0x93, 0x11, 0x57, 0xf6, 0x39, 0xac, 0x73, 0xad, 0x53, 
+0x56, 0x6e, 0x33, 0x57, 0x05, 0x0b, 0xc1, 0x51, 0xae, 0x26, 0xf2, 0x22, 0x44, 0xf4, 0xdc, 0xc3, 
+0x60, 0x8a, 0x1a, 0x8a, 0xd4, 0xf9, 0x5b, 0xd3, 0x1a, 0x78, 0x32, 0xcc, 0xd8, 0xb0, 0xc2, 0x6b, 
+0xde, 0x9f, 0xfd, 0x77, 0xc6, 0x90, 0xe8, 0xe5, 0x32, 0x12, 0xbd, 0xb9, 0x62, 0x62, 0xe2, 0xf9, 
+0xf4, 0x5c, 0xc9, 0x34, 0x39, 0x22, 0xd9, 0x60, 0x66, 0x05, 0xa6, 0x5b, 0xa3, 0x58, 0x24, 0x5f, 
+0x13, 0x66, 0x55, 0x0a, 0xe6, 0x14, 0x3c, 0xe1, 0x25, 0x85, 0xfb, 0xc6, 0xfb, 0x0b, 0x13, 0xe4, 
+0xd7, 0xb8, 0xb3, 0x41, 0x81, 0x6c, 0x6b, 0xfe, 0x7a, 0xba, 0xfe, 0xaf, 0xc7, 0x5a, 0x99, 0xf0, 
+0xa0, 0x3b, 0xfb, 0xff, 0x0c, 0x0f, 0xf2, 0xcf, 0x4c, 0x71, 0xb6, 0x50, 0x6a, 0x9e, 0x13, 0xce, 
+0x15, 0xe7, 0x6a, 0x3c, 0xe0, 0x6d, 0x3a, 0x5f, 0xc6, 0x0a, 0x13, 0xb4, 0x37, 0x45, 0xd9, 0x67, 
+0x73, 0xfc, 0x49, 0x95, 0xcf, 0x99, 0xbc, 0x96, 0xe6, 0x3c, 0x95, 0xc7, 0x5c, 0x7c, 0xed, 0xa7, 
+0x33, 0xb5, 0xab, 0xed, 0x46, 0xbe, 0x14, 0x2c, 0xd3, 0xf9, 0x52, 0xb0, 0x7c, 0x05, 0x5f, 0xea, 
+0xbc, 0xbb, 0xa4, 0x8a, 0x69, 0x79, 0x49, 0x23, 0x69, 0x4d, 0x8f, 0x96, 0xb3, 0x6a, 0x6e, 0xce, 
+0xbf, 0x31, 0x41, 0xca, 0xa1, 0xe7, 0xd4, 0x98, 0xb0, 0xf7, 0xf1, 0xf7, 0x29, 0x7a, 0x2d, 0xce, 
+0xa0, 0xd7, 0x62, 0x95, 0x5e, 0x8b, 0xd9, 0x6c, 0x60, 0x44, 0x67, 0x12, 0x73, 0x20, 0x9d, 0x2a, 
+0x68, 0x05, 0x8e, 0x6a, 0x6c, 0x18, 0x52, 0xeb, 0xb4, 0x2b, 0xed, 0x12, 0xf2, 0x33, 0xf1, 0x5c, 
+0x53, 0xa8, 0x9c, 0x69, 0xee, 0xa1, 0x35, 0x1a, 0x2b, 0xe6, 0xba, 0x61, 0xc1, 0x5a, 0xb0, 0x32, 
+0xbd, 0x6e, 0xc7, 0x57, 0x68, 0x53, 0x7b, 0x7b, 0x69, 0xe6, 0xa5, 0x91, 0x74, 0x51, 0x39, 0x51, 
+0x5e, 0xcc, 0x75, 0x28, 0xc3, 0xdc, 0x5e, 0xba, 0xc1, 0xc1, 0x9e, 0xa0, 0xf5, 0x46, 0x2e, 0x19, 
+0xff, 0x81, 0x4e, 0x4f, 0x2b, 0xeb, 0x7f, 0x82, 0x85, 0xe0, 0xf1, 0xf5, 0x89, 0x9f, 0x92, 0xbc, 
+0xb7, 0x9b, 0xd3, 0xb4, 0x55, 0x24, 0xf3, 0xe8, 0x5f, 0xcc, 0x04, 0x83, 0xf6, 0x5d, 0x15, 0x6c, 
+0x42, 0x97, 0xe8, 0x14, 0xef, 0xca, 0xd7, 0xe3, 0x0e, 0x6a, 0x2d, 0x5f, 0x09, 0x36, 0xd3, 0x5a, 
+0xd8, 0x64, 0x80, 0xea, 0x04, 0x14, 0x93, 0x40, 0x73, 0x0b, 0xe9, 0xa0, 0xd6, 0x2f, 0x6d, 0xb9, 
+0xe6, 0xab, 0x5b, 0xce, 0x3d, 0x49, 0xba, 0xe9, 0x7b, 0xb2, 0xa0, 0x83, 0x5a, 0x6d, 0x9e, 0xdf, 
+0x8f, 0xfd, 0xfe, 0x77, 0xe3, 0x3b, 0xe8, 0x69, 0xb6, 0xf2, 0x1d, 0x14, 0xe3, 0x62, 0x76, 0xa8, 
+0xef, 0x60, 0x5f, 0xf7, 0x39, 0xf5, 0xdc, 0xfd, 0x25, 0xd2, 0x1e, 0x45, 0xba, 0x0b, 0xa3, 0xc1, 
+0xd9, 0xce, 0xed, 0x43, 0x8d, 0xbf, 0x53, 0x7b, 0xc7, 0x8a, 0x09, 0xf9, 0x20, 0xed, 0x65, 0x27, 
+0x89, 0xa0, 0xa6, 0xfd, 0x8d, 0x1a, 0xb7, 0xa8, 0xf1, 0xa5, 0x6a, 0x3c, 0x4f, 0x8d, 0x7f, 0x4b, 
+0x8d, 0x5b, 0x21, 0x4f, 0xe6, 0xab, 0x69, 0xb7, 0xab, 0x69, 0xf3, 0xb8, 0xa6, 0xdb, 0xa9, 0x2d, 
+0x52, 0xe3, 0xf9, 0x90, 0x23, 0xb9, 0x37, 0xc8, 0x95, 0xdc, 0x4c, 0xb9, 0x42, 0x3a, 0xa3, 0xba, 
+0x23, 0x24, 0xe3, 0x96, 0x91, 0xeb, 0x41, 0xd5, 0x0f, 0x56, 0x6b, 0xdb, 0xc8, 0x2a, 0x60, 0x61, 
+0x4a, 0xe9, 0xfd, 0xf2, 0x87, 0xa3, 0xcc, 0x95, 0x71, 0x6e, 0x1b, 0xf2, 0xd1, 0x07, 0xdd, 0xfb, 
+0x26, 0x96, 0x6f, 0xc3, 0xdb, 0xd4, 0x7d, 0x0c, 0x90, 0xff, 0xb4, 0xf3, 0xdf, 0x57, 0xd0, 0xce, 
+0x44, 0xe6, 0x42, 0x8e, 0x9c, 0x2f, 0xc9, 0x91, 0x4b, 0x39, 0xe8, 0xec, 0xc9, 0x74, 0x8b, 0x45, 
+0xd9, 0xbf, 0x2e, 0x96, 0x91, 0xcd, 0x42, 0x3b, 0x52, 0xf5, 0xd0, 0xc5, 0xd8, 0x5e, 0x68, 0x64, 
+0xb2, 0x2c, 0x73, 0xeb, 0x6d, 0xdc, 0xbf, 0x6d, 0xf6, 0x1e, 0x68, 0xeb, 0xb0, 0x45, 0x2c, 0x09, 
+0xd2, 0xe7, 0x3b, 0xd6, 0xa8, 0x29, 0x68, 0xb5, 0x9d, 0x81, 0x06, 0x2b, 0x95, 0x3d, 0xc5, 0x73, 
+0x3d, 0xfc, 0xe6, 0x96, 0x95, 0xca, 0x17, 0xc4, 0xd4, 0x9d, 0xc4, 0x19, 0xd8, 0xb7, 0xf3, 0xdd, 
+0xba, 0xe5, 0xd1, 0xbc, 0x85, 0x1e, 0x7e, 0xda, 0xbd, 0xbd, 0xea, 0x3c, 0xeb, 0x5c, 0x58, 0xcb, 
+0x9c, 0xf4, 0x0e, 0xbc, 0xe7, 0x72, 0xbc, 0xdb, 0xa7, 0xf0, 0x4e, 0x9f, 0x10, 0x68, 0x0f, 0x8e, 
+0x26, 0x5f, 0xc7, 0xfc, 0xd4, 0xc1, 0xc2, 0x91, 0x9c, 0x69, 0x6d, 0xa3, 0x33, 0x05, 0x3e, 0x0e, 
+0xd7, 0x38, 0x75, 0xb2, 0x80, 0xce, 0x5d, 0xdc, 0x90, 0x46, 0xe7, 0x1b, 0xca, 0x22, 0x39, 0x29, 
+0xbd, 0x12, 0xf0, 0x7a, 0xf9, 0x19, 0x8b, 0x25, 0xd3, 0xd2, 0xda, 0x79, 0x9a, 0x61, 0x5a, 0x5a, 
+0x13, 0x4f, 0x33, 0x4f, 0x4b, 0xf3, 0xa8, 0xe7, 0x33, 0x32, 0xd3, 0x5c, 0x0d, 0x43, 0x6a, 0x8c, 
+0x56, 0x25, 0xe7, 0x37, 0x0c, 0xa5, 0xa8, 0x5b, 0x46, 0x1e, 0xc6, 0x7c, 0x07, 0x2c, 0x3c, 0xa7, 
+0xba, 0xf6, 0x14, 0xfd, 0xbf, 0x6a, 0x98, 0x4d, 0xc7, 0xfa, 0xa6, 0xdf, 0x4c, 0xa1, 0xdc, 0xff, 
+0x23, 0x9c, 0xb6, 0x3f, 0xb6, 0xd4, 0xcb, 0x0a, 0x45, 0x4d, 0x6c, 0xd6, 0x9f, 0xf6, 0x8d, 0xf7, 
+0xd1, 0x8a, 0x4c, 0xff, 0xc0, 0x54, 0x2e, 0x9a, 0x81, 0x91, 0xeb, 0x45, 0x6e, 0x57, 0x02, 0xca, 
+0xb4, 0x2f, 0x66, 0x7c, 0x79, 0x86, 0x76, 0x2f, 0x65, 0xee, 0xb2, 0xe6, 0x5f, 0xe8, 0xb4, 0xc9, 
+0x17, 0x53, 0x97, 0x44, 0xe8, 0xcc, 0x99, 0xe6, 0xc6, 0x3b, 0x32, 0xf0, 0xa5, 0x8c, 0xbc, 0x61, 
+0xa0, 0xa3, 0x21, 0x3a, 0x0b, 0x56, 0xaf, 0x29, 0x7e, 0xe9, 0x95, 0x84, 0x48, 0x3b, 0xc6, 0x97, 
+0x44, 0x65, 0x31, 0x11, 0x25, 0xb9, 0x28, 0x52, 0x2c, 0x2e, 0x2f, 0xec, 0xe7, 0x76, 0xa6, 0xc1, 
+0x5e, 0x62, 0x98, 0x24, 0xee, 0x49, 0x30, 0x4a, 0x09, 0xf5, 0xb5, 0x24, 0x4a, 0x3a, 0x58, 0xe1, 
+0xaf, 0x5e, 0xee, 0x3e, 0x35, 0xed, 0x6c, 0x8e, 0x87, 0xf4, 0x1a, 0xcc, 0x44, 0x65, 0x37, 0x9c, 
+0xcd, 0xf1, 0xf1, 0x33, 0x3b, 0x98, 0x6b, 0x45, 0xed, 0x0d, 0x67, 0x73, 0x18, 0x7b, 0x6d, 0x29, 
+0xdd, 0x51, 0x14, 0x86, 0x36, 0xd9, 0xda, 0x19, 0x83, 0xf5, 0x50, 0x76, 0x43, 0x2b, 0xda, 0x23, 
+0x24, 0xd3, 0xc0, 0x07, 0xb6, 0x4c, 0xb8, 0x3b, 0x21, 0x0d, 0x35, 0x2c, 0xce, 0x4f, 0x43, 0x45, 
+0xd8, 0xd6, 0x82, 0x95, 0xec, 0x41, 0x7a, 0xaf, 0xf9, 0x31, 0x7b, 0x88, 0xf8, 0xed, 0x2b, 0xb9, 
+0xd0, 0x72, 0x03, 0x17, 0x96, 0xaa, 0xe3, 0x2e, 0xeb, 0xc6, 0x51, 0xc5, 0xef, 0x40, 0x72, 0xc5, 
+0x92, 0x98, 0x53, 0xe8, 0xc6, 0x06, 0xa3, 0xb2, 0x1e, 0xd9, 0xe1, 0xe2, 0x77, 0x43, 0xa8, 0xe7, 
+0x55, 0x3a, 0x1e, 0x6f, 0x18, 0x5a, 0xea, 0x61, 0x4e, 0xcc, 0x21, 0x15, 0x92, 0x91, 0xaf, 0x04, 
+0x5d, 0x6a, 0x19, 0x52, 0xf4, 0x9b, 0xba, 0xfc, 0x94, 0x57, 0x8c, 0x4b, 0xb6, 0x1c, 0x5b, 0x3b, 
+0xd1, 0xf3, 0xd6, 0x7e, 0x2b, 0x0b, 0x25, 0x5a, 0xfa, 0x4a, 0xdb, 0x59, 0xe1, 0xaf, 0xc7, 0xba, 
+0xcf, 0xab, 0x7b, 0xbd, 0xf8, 0x0d, 0x32, 0x36, 0xd8, 0x59, 0xb0, 0xb7, 0x88, 0xf2, 0xbe, 0xf8, 
+0xcc, 0xff, 0xd8, 0xa7, 0xb6, 0xc0, 0x07, 0x6b, 0xdf, 0xc2, 0xf1, 0xf7, 0x89, 0x02, 0x4f, 0x75, 
+0xd1, 0xbb, 0xb7, 0xd2, 0x5f, 0x79, 0xbe, 0x76, 0x61, 0xa5, 0x92, 0x9f, 0x9f, 0x3b, 0xd3, 0x45, 
+0xad, 0x18, 0xf7, 0x9a, 0xdb, 0x3d, 0x5f, 0x94, 0x10, 0x11, 0x13, 0xf7, 0x5c, 0x47, 0x5b, 0x86, 
+0x52, 0x7b, 0xb3, 0x94, 0x3d, 0xe3, 0x65, 0x24, 0x1b, 0x88, 0x7b, 0x45, 0x47, 0xa8, 0x14, 0x3d, 
+0xfa, 0xc4, 0xb1, 0x28, 0x8b, 0x5d, 0x3a, 0xba, 0x5d, 0x6a, 0xb2, 0x1b, 0x5a, 0xfa, 0x9d, 0xe0, 
+0x81, 0x03, 0x07, 0x07, 0x59, 0x44, 0x1f, 0x4a, 0x88, 0x5e, 0xc9, 0x63, 0xe3, 0x1c, 0xf3, 0x6a, 
+0x22, 0x36, 0xf3, 0x4f, 0xfb, 0x4f, 0xfe, 0x6a, 0x90, 0x15, 0x54, 0xc1, 0xaa, 0x3b, 0xcf, 0xca, 
+0x9a, 0x76, 0x3e, 0x71, 0x0c, 0x9a, 0x52, 0x2e, 0xbe, 0x97, 0xfd, 0xfe, 0x98, 0x6d, 0x76, 0x44, 
+0xd7, 0xd8, 0x67, 0xeb, 0x43, 0x3b, 0x07, 0x09, 0x26, 0xda, 0xf9, 0x1e, 0x66, 0x39, 0xc6, 0x46, 
+0xf1, 0xb6, 0x2f, 0xca, 0xe2, 0xc8, 0x49, 0xdc, 0x65, 0x2b, 0x31, 0xb0, 0x96, 0xc4, 0x36, 0xf9, 
+0x50, 0x1f, 0xe0, 0xf7, 0xff, 0xfa, 0x68, 0xf7, 0x79, 0xa7, 0xe6, 0xd7, 0x47, 0xc3, 0x0e, 0x29, 
+0x8f, 0xe0, 0xd8, 0xee, 0xb7, 0xb2, 0x5f, 0xfd, 0x6e, 0x83, 0x4e, 0xac, 0xb5, 0x73, 0x8a, 0x49, 
+0xc6, 0x18, 0x2b, 0xe9, 0x95, 0xe5, 0x38, 0xa8, 0x79, 0x28, 0xd1, 0x7d, 0x7a, 0xdb, 0xa5, 0x63, 
+0xdb, 0xc5, 0xc5, 0xcc, 0x15, 0xc9, 0x53, 0xcf, 0x49, 0xee, 0x51, 0x4e, 0xf0, 0xee, 0x1c, 0xa0, 
+0x7b, 0x07, 0x3a, 0x35, 0x51, 0x33, 0x3f, 0x3b, 0xcd, 0xdc, 0xdc, 0x7f, 0x42, 0x3c, 0xec, 0x2e, 
+0x71, 0x2a, 0x7b, 0x0a, 0x76, 0xa6, 0x6e, 0x17, 0x21, 0x2c, 0x16, 0x42, 0xd9, 0xa7, 0xaf, 0xdb, 
+0x66, 0xbd, 0x3a, 0xc0, 0xdb, 0x35, 0xe2, 0xe4, 0xed, 0x42, 0x5a, 0xd9, 0xc2, 0xc3, 0xe4, 0x39, 
+0xa1, 0x7b, 0x9b, 0xf2, 0xf3, 0xd3, 0x37, 0x43, 0x99, 0xd1, 0xa7, 0x9c, 0xbe, 0xd1, 0xf9, 0xb7, 
+0xd2, 0xdd, 0x39, 0x78, 0x5b, 0x71, 0x9e, 0xf9, 0x6f, 0x5d, 0xc9, 0x9c, 0xf4, 0xfe, 0xad, 0x5e, 
+0x96, 0xcf, 0xf2, 0x0b, 0xa8, 0xcf, 0xfc, 0xf8, 0xb5, 0xb2, 0x3a, 0x18, 0xa3, 0xb7, 0xa1, 0x27, 
+0x34, 0x90, 0x9a, 0x6b, 0xaa, 0x14, 0x3f, 0xec, 0xda, 0xa5, 0xc4, 0x89, 0xeb, 0xbd, 0x1d, 0xac, 
+0xb5, 0xc0, 0xcf, 0x9a, 0x96, 0xf6, 0x30, 0x1b, 0x6b, 0x29, 0x81, 0xf5, 0xeb, 0x1f, 0xfb, 0xf3, 
+0x60, 0x1f, 0x34, 0xb0, 0x2f, 0x48, 0x78, 0x7d, 0xa0, 0x90, 0x7d, 0x4f, 0xe9, 0xc5, 0xeb, 0xc3, 
+0x53, 0xbd, 0x48, 0x6b, 0x0c, 0xc1, 0x66, 0x7e, 0x3b, 0xd9, 0x84, 0xb7, 0x4b, 0x4e, 0xde, 0xd2, 
+0xcb, 0x6e, 0x91, 0x27, 0xd4, 0x7b, 0xb6, 0xf4, 0xfe, 0x2e, 0xa4, 0xfe, 0x8c, 0x9f, 0x50, 0x22, 
+0xdf, 0xa9, 0x87, 0xdf, 0xd8, 0xa3, 0xec, 0x75, 0xb8, 0xc2, 0x7d, 0x30, 0x5d, 0xcc, 0x50, 0xfb, 
+0x91, 0x7c, 0x95, 0x38, 0x1a, 0xb9, 0x4c, 0xca, 0x79, 0x6e, 0x3b, 0xe6, 0x74, 0xc0, 0xa9, 0x92, 
+0xaf, 0xe2, 0x57, 0x27, 0x27, 0x55, 0x68, 0x46, 0xb7, 0x89, 0xe6, 0x44, 0xd8, 0x72, 0xd0, 0x4c, 
+0x92, 0xe4, 0xcd, 0xb0, 0x83, 0x86, 0x51, 0xb2, 0xff, 0xa0, 0x27, 0x14, 0x32, 0xa1, 0x09, 0x7c, 
+0x71, 0x20, 0xd1, 0x66, 0xe1, 0x56, 0x9c, 0x96, 0xdb, 0x75, 0x9a, 0x9d, 0x7d, 0xef, 0x0f, 0xc6, 
+0x2c, 0xe3, 0x7d, 0xfc, 0x9e, 0x01, 0x34, 0xd8, 0xc6, 0xce, 0xec, 0xb8, 0xa5, 0x52, 0xbe, 0x7e, 
+0x8b, 0x67, 0x0a, 0x2e, 0xb0, 0xbc, 0x4a, 0x9e, 0x48, 0x0e, 0xf7, 0x19, 0xc2, 0x91, 0x7c, 0x04, 
+0x62, 0xc0, 0xd6, 0xc5, 0x4c, 0x51, 0x5d, 0xc6, 0x6a, 0xac, 0xb1, 0x25, 0xa1, 0x7a, 0xf5, 0x98, 
+0xe2, 0xd5, 0x4b, 0xf9, 0x4e, 0xd3, 0x7e, 0x53, 0xa5, 0x9d, 0xb6, 0xd4, 0x2e, 0xc9, 0x65, 0x45, 
+0xf2, 0xe4, 0x7b, 0x2b, 0x35, 0xb0, 0xaf, 0x64, 0xd9, 0xee, 0x21, 0x0d, 0x19, 0xbc, 0x97, 0x67, 
+0x72, 0xb2, 0x0d, 0x4c, 0xb3, 0xde, 0x68, 0x70, 0x42, 0x82, 0x08, 0x11, 0x4d, 0xa8, 0x3f, 0x94, 
+0x68, 0x18, 0x7c, 0x31, 0xd1, 0xfd, 0x5e, 0xa0, 0x3f, 0x02, 0x79, 0x39, 0xde, 0x3f, 0x9e, 0xc8, 
+0x94, 0x41, 0x8e, 0x44, 0xa4, 0xe9, 0x89, 0x63, 0xbb, 0x7f, 0x27, 0xf9, 0x4d, 0x85, 0xbc, 0x64, 
+0x85, 0xa1, 0x90, 0x97, 0x54, 0xfc, 0xc3, 0xba, 0x0c, 0x3b, 0x36, 0x2b, 0xc3, 0x8e, 0xd5, 0x93, 
+0xf6, 0xe4, 0x6c, 0xb4, 0x19, 0xde, 0x1c, 0x7c, 0x93, 0xec, 0xd9, 0x19, 0x8b, 0x12, 0x18, 0xfb, 
+0x83, 0xa1, 0x1d, 0x0d, 0x8f, 0xbe, 0xb8, 0xa3, 0xfb, 0xa0, 0xa4, 0xe1, 0x3b, 0x6f, 0xd3, 0x1e, 
+0x4a, 0x6a, 0x8b, 0x5b, 0x33, 0xd5, 0x8a, 0xe4, 0x1a, 0xc5, 0xc7, 0x54, 0x4a, 0x6d, 0xa8, 0x8d, 
+0xb3, 0x25, 0x82, 0x88, 0x3a, 0xa4, 0xf9, 0xd0, 0xcb, 0x34, 0x26, 0xc6, 0x36, 0xac, 0x37, 0x2b, 
+0xf8, 0x87, 0x0d, 0x8a, 0x5e, 0x2d, 0x19, 0x43, 0x7d, 0x0d, 0xb4, 0x33, 0xfd, 0xed, 0x28, 0xf9, 
+0xb9, 0xaf, 0xa9, 0x30, 0xa1, 0x2d, 0x95, 0x89, 0xf6, 0x22, 0xee, 0xfb, 0x34, 0xf2, 0x9b, 0xf0, 
+0x2e, 0x2b, 0xbd, 0x8c, 0xbe, 0x5d, 0x21, 0x5f, 0xe6, 0xf5, 0x69, 0xc0, 0x53, 0x17, 0x6c, 0xa9, 
+0x3b, 0x77, 0x18, 0x7b, 0xa3, 0x84, 0xea, 0x44, 0x81, 0x32, 0x26, 0xd6, 0xa2, 0x4e, 0x9f, 0x4a, 
+0xb1, 0x32, 0xb5, 0xc6, 0x12, 0x6e, 0x25, 0xe8, 0xde, 0x5d, 0xe9, 0xaf, 0xf2, 0x56, 0x71, 0x4d, 
+0x31, 0x8b, 0x5b, 0xd0, 0xdb, 0x79, 0xba, 0x5e, 0xf5, 0xa4, 0xcc, 0x88, 0xca, 0x23, 0xdb, 0x21, 
+0xdf, 0x1f, 0x97, 0x7a, 0x09, 0xb3, 0x43, 0x7d, 0xdd, 0x87, 0xa4, 0x98, 0xc9, 0x9c, 0xc2, 0x5c, 
+0x96, 0xc3, 0x06, 0x35, 0xfd, 0xfc, 0xfb, 0x3b, 0x60, 0xc1, 0xdf, 0x6e, 0xd5, 0x29, 0x6b, 0x31, 
+0x80, 0x78, 0xbb, 0x55, 0x81, 0x38, 0xc0, 0xd3, 0xf5, 0xef, 0x3e, 0x3e, 0x98, 0x18, 0xbc, 0xdd, 
+0x3a, 0x03, 0xd8, 0x7e, 0x42, 0x7b, 0xab, 0x3f, 0x75, 0x05, 0x77, 0xe1, 0xfd, 0x9a, 0xe8, 0xf3, 
+0xb7, 0xcb, 0x32, 0xde, 0xa7, 0x38, 0xe9, 0x32, 0xe7, 0x77, 0xba, 0xa5, 0x2a, 0x84, 0xf6, 0x38, 
+0x15, 0x7e, 0xd1, 0xe5, 0xcb, 0x67, 0xf8, 0x8e, 0x17, 0xe1, 0xfd, 0xc1, 0xca, 0x8f, 0x0d, 0x1a, 
+0x58, 0x23, 0xdb, 0x68, 0xd4, 0x70, 0xed, 0x05, 0x63, 0x20, 0x63, 0xf4, 0xe4, 0xca, 0x13, 0xf8, 
+0x95, 0xd2, 0xdc, 0xc9, 0xc7, 0x10, 0x9e, 0x12, 0xf7, 0xc0, 0x62, 0xf4, 0x7d, 0x3e, 0x91, 0xe6, 
+0xd0, 0x0e, 0xc8, 0x6c, 0xe2, 0x51, 0xfb, 0x14, 0x8f, 0xaa, 0x7b, 0x98, 0xbb, 0xe4, 0x4b, 0xae, 
+0x2e, 0xf9, 0x8a, 0xda, 0x07, 0x1f, 0x66, 0xec, 0xc3, 0x33, 0xa7, 0xea, 0x5a, 0xf1, 0x91, 0x7c, 
+0x81, 0x4e, 0x2b, 0x4d, 0xdd, 0xd3, 0x85, 0x7a, 0xe7, 0xf2, 0xda, 0xcd, 0xf2, 0xe7, 0xfc, 0xfe, 
+0x41, 0xc2, 0xc7, 0x20, 0x7f, 0x7c, 0x4b, 0x17, 0x9b, 0x25, 0x5f, 0x16, 0x35, 0x7e, 0x8f, 0x7f, 
+0x0c, 0xe3, 0xe6, 0x53, 0x51, 0x73, 0x26, 0x81, 0xe7, 0xb5, 0x5b, 0xbc, 0xf2, 0x67, 0xfc, 0xa6, 
+0x27, 0xf3, 0xd4, 0xe9, 0x9d, 0xeb, 0x3b, 0xf9, 0x3d, 0x79, 0x29, 0xac, 0x4d, 0x69, 0xac, 0x7d, 
+0x34, 0x5e, 0xf9, 0x0e, 0x3a, 0xbe, 0xfa, 0xa1, 0xec, 0x4c, 0x61, 0x15, 0x64, 0xff, 0x42, 0x7f, 
+0xb1, 0xaf, 0x54, 0x6e, 0x0d, 0x23, 0x29, 0x70, 0x93, 0x2a, 0x05, 0x60, 0xd1, 0x2c, 0x80, 0x14, 
+0x60, 0xf3, 0x17, 0xd0, 0xfc, 0x2c, 0x7a, 0x77, 0xe3, 0x69, 0x62, 0x8e, 0xb4, 0x34, 0xb8, 0x49, 
+0x39, 0x6b, 0x45, 0x9e, 0xca, 0x89, 0xf7, 0x54, 0x69, 0xb0, 0x9c, 0x73, 0x7e, 0x56, 0x4c, 0x5b, 
+0x23, 0x8c, 0x91, 0x6e, 0x63, 0x39, 0x90, 0x08, 0x17, 0xab, 0x5e, 0x9d, 0xa9, 0x51, 0x92, 0x4d, 
+0xa3, 0x84, 0xfb, 0x78, 0x66, 0xf2, 0xb8, 0xf1, 0xdd, 0x1d, 0x89, 0x3e, 0x47, 0x22, 0x63, 0xdf, 
+0x30, 0x4b, 0xed, 0x41, 0xfa, 0xce, 0x90, 0xea, 0x85, 0xb5, 0x40, 0xc6, 0x46, 0xd1, 0x9a, 0x53, 
+0x08, 0xb4, 0xa3, 0xf0, 0x55, 0xe8, 0x1f, 0x63, 0x6e, 0x43, 0x6a, 0x55, 0xc3, 0xbf, 0x0d, 0xb3, 
+0xb5, 0x93, 0x9f, 0x01, 0x2d, 0x76, 0x33, 0xd2, 0x64, 0x6b, 0x46, 0x69, 0xd7, 0x24, 0x24, 0xa7, 
+0x85, 0xdf, 0xc1, 0xc3, 0xdf, 0x57, 0x4f, 0x69, 0xc7, 0xfc, 0x1e, 0x24, 0x3a, 0x5d, 0x00, 0xad, 
+0xf3, 0xb5, 0xc8, 0x3c, 0xb1, 0x50, 0x58, 0xc6, 0xcf, 0x92, 0x9b, 0x81, 0xb5, 0x06, 0x4f, 0x03, 
+0x9e, 0x5a, 0x60, 0x1f, 0xa7, 0x2f, 0x8d, 0x09, 0xda, 0x33, 0xd3, 0xd6, 0x39, 0x9e, 0x28, 0xf9, 
+0xb6, 0x41, 0x1f, 0xfc, 0x1c, 0xa3, 0xc0, 0xc8, 0xf2, 0x20, 0xb3, 0x8b, 0x59, 0x8d, 0x9f, 0xd6, 
+0x15, 0xc8, 0xc6, 0xdc, 0x2a, 0x95, 0xa7, 0xdf, 0x8f, 0x48, 0xc5, 0xe9, 0xf7, 0x3f, 0x4a, 0x36, 
+0xf7, 0x4a, 0x66, 0xe0, 0xf8, 0xfa, 0xf9, 0x8e, 0x07, 0x9e, 0xae, 0xd7, 0x49, 0xc6, 0xf4, 0xfb, 
+0x7c, 0xf5, 0x94, 0xeb, 0x04, 0xf7, 0x64, 0xeb, 0x52, 0xb7, 0x3a, 0x39, 0xd6, 0x35, 0xf0, 0x15, 
+0xa2, 0xe4, 0x98, 0xff, 0xfd, 0x0a, 0xbe, 0x42, 0xe4, 0x24, 0x49, 0xb7, 0x8d, 0x79, 0xf8, 0x48, 
+0x3e, 0xac, 0xf4, 0x14, 0xf7, 0xdf, 0xcb, 0x23, 0x8f, 0x47, 0x98, 0x76, 0x1c, 0x76, 0xa8, 0x8e, 
+0x4e, 0x69, 0x63, 0xdc, 0x98, 0x63, 0xf5, 0x07, 0x06, 0xda, 0x98, 0xf6, 0xb0, 0xa3, 0x93, 0x19, 
+0xfe, 0xf5, 0x9f, 0xff, 0xf5, 0x9f, 0x43, 0x83, 0x98, 0x7d, 0xa2, 0x62, 0x86, 0x44, 0xf5, 0x96, 
+0xfa, 0xa3, 0x4b, 0x3b, 0xd1, 0x9a, 0xb1, 0x02, 0x3a, 0x29, 0x78, 0x82, 0xff, 0x9e, 0xc2, 0x6f, 
+0x09, 0x7b, 0x15, 0x73, 0xd3, 0x6b, 0x08, 0x6f, 0x72, 0xed, 0x6c, 0x9c, 0xff, 0xbe, 0xce, 0x7f, 
+0xdf, 0x80, 0xb6, 0x73, 0x1a, 0x36, 0x5c, 0xa2, 0xf6, 0xbc, 0xb0, 0x9c, 0x63, 0x5f, 0xe7, 0x36, 
+0xd1, 0x8a, 0xd0, 0x46, 0x6b, 0x70, 0xaf, 0xd3, 0x48, 0x5e, 0x4f, 0xa1, 0x9e, 0xa7, 0x87, 0xdc, 
+0xba, 0xe0, 0x5e, 0xe4, 0x94, 0x10, 0x5a, 0xa3, 0x5a, 0x50, 0xbc, 0xd5, 0x5b, 0xc8, 0xce, 0x15, 
+0xf4, 0x92, 0xc0, 0x12, 0xce, 0xab, 0xcf, 0x0b, 0xb0, 0x21, 0xfd, 0x7c, 0xad, 0x91, 0xdf, 0xde, 
+0xa1, 0xd5, 0x10, 0xfe, 0x0f, 0xb2, 0x79, 0x66, 0xd3, 0xc3, 0xf8, 0xfc, 0xd9, 0x06, 0xdd, 0x83, 
+0xfa, 0x9a, 0x2c, 0xe0, 0xfe, 0x51, 0xf2, 0xa8, 0x98, 0x95, 0x71, 0x5a, 0xec, 0x93, 0x16, 0xe6, 
+0x75, 0x26, 0x8f, 0x52, 0xfa, 0x13, 0xc7, 0xa4, 0x7c, 0xf3, 0xcd, 0x90, 0x8a, 0x62, 0x24, 0x17, 
+0xbf, 0xb6, 0x70, 0x6e, 0xe5, 0x27, 0x83, 0x6c, 0x76, 0x2f, 0x13, 0x93, 0x47, 0x25, 0x7d, 0x68, 
+0x70, 0x74, 0xb0, 0xfb, 0x8c, 0x98, 0xd5, 0x98, 0xa8, 0x44, 0x5e, 0xc9, 0x9e, 0x0b, 0xbd, 0x83, 
+0x9f, 0xd3, 0xa1, 0xd3, 0x3a, 0xb6, 0xb0, 0xb1, 0xf2, 0x13, 0x83, 0x9a, 0x37, 0xca, 0x78, 0x8e, 
+0xe5, 0xe8, 0x6f, 0x19, 0x7d, 0x7f, 0x52, 0xba, 0x50, 0x85, 0x6f, 0xb9, 0x8b, 0x92, 0x47, 0x91, 
+0x73, 0x71, 0xd8, 0x66, 0x83, 0xe6, 0x3b, 0xda, 0xd7, 0x63, 0xa9, 0xfa, 0xc4, 0xca, 0x4c, 0x8b, 
+0xd8, 0xe2, 0xe4, 0xd1, 0xb0, 0xc1, 0x3c, 0xc9, 0x16, 0x8b, 0x82, 0x44, 0x4f, 0x51, 0xd2, 0x98, 
+0x5f, 0x0e, 0x25, 0x46, 0x13, 0xdd, 0xc7, 0xcc, 0x87, 0x31, 0x96, 0x30, 0x8f, 0xc7, 0xb2, 0xe2, 
+0x4c, 0xbd, 0x2f, 0x2a, 0xdf, 0xc1, 0x2d, 0x00, 0x8d, 0x31, 0xaa, 0xeb, 0xdb, 0x0f, 0x7b, 0x12, 
+0x35, 0x39, 0x06, 0x15, 0x0b, 0x59, 0xbd, 0xeb, 0x40, 0xe7, 0xdd, 0xcf, 0x0c, 0x74, 0xd3, 0x94, 
+0xbe, 0x25, 0x7e, 0xf8, 0xc4, 0xff, 0x70, 0xa8, 0x77, 0x8b, 0x4d, 0xf2, 0x9b, 0x45, 0x84, 0x44, 
+0xe0, 0x17, 0xf2, 0x61, 0xe2, 0x60, 0x68, 0x9c, 0xaf, 0xf9, 0xd0, 0x3b, 0x88, 0x8f, 0xad, 0x7e, 
+0xd9, 0xdf, 0xe7, 0xab, 0x5c, 0x5a, 0xc9, 0xde, 0x44, 0xec, 0x95, 0xd5, 0x7c, 0xed, 0x07, 0xdf, 
+0xc7, 0x03, 0x95, 0x91, 0xf9, 0x01, 0x0f, 0xdf, 0x61, 0x39, 0x49, 0x7d, 0x31, 0xa3, 0x3a, 0x93, 
+0xc3, 0x1e, 0xc4, 0x38, 0x7b, 0x50, 0x40, 0x89, 0x63, 0x2a, 0xbc, 0xd7, 0x01, 0xef, 0x75, 0xc4, 
+0x5f, 0x57, 0xe3, 0x6f, 0x20, 0xfe, 0x06, 0xe2, 0xa7, 0x56, 0xa7, 0x76, 0x5d, 0x9e, 0xf6, 0xa1, 
+0xd7, 0x91, 0x72, 0x3a, 0x95, 0x22, 0x24, 0x7c, 0xe0, 0x01, 0xb1, 0x4b, 0x3e, 0xc3, 0xfb, 0xcd, 
+0x2e, 0x92, 0x7f, 0xe1, 0x54, 0x77, 0xbe, 0xb8, 0x6a, 0x21, 0x8d, 0x50, 0xce, 0xd7, 0x33, 0xba, 
+0xa7, 0xd7, 0x2a, 0x16, 0xc9, 0xe7, 0x22, 0x26, 0xbe, 0x9b, 0xf1, 0x1f, 0x94, 0x5d, 0xc7, 0x48, 
+0xf9, 0x80, 0xa7, 0xe8, 0x52, 0x29, 0xa8, 0x63, 0x3c, 0x5d, 0x87, 0x84, 0x3a, 0x24, 0xa4, 0x9c, 
+0x48, 0xa7, 0xb4, 0x22, 0xa5, 0x15, 0xb5, 0x7e, 0xa8, 0xdc, 0x7d, 0x51, 0xd0, 0xc0, 0x5a, 0x9d, 
+0x45, 0xf2, 0xa5, 0x48, 0x99, 0x0a, 0x01, 0x94, 0x04, 0xdf, 0x27, 0x5a, 0xa7, 0x5a, 0xbe, 0xeb, 
+0x86, 0x96, 0xe7, 0x40, 0x23, 0xec, 0x60, 0xe7, 0xd2, 0x18, 0x40, 0x4e, 0xa7, 0x60, 0x09, 0xe7, 
+0x11, 0xbb, 0x96, 0x8e, 0x5d, 0x48, 0xdd, 0xee, 0x36, 0xf9, 0x53, 0xc9, 0x53, 0x08, 0x19, 0xe6, 
+0xaa, 0x26, 0xeb, 0xdf, 0xc6, 0xc8, 0xc3, 0x36, 0xe3, 0x57, 0x8e, 0x9b, 0xf4, 0xdb, 0x65, 0x39, 
+0x79, 0x74, 0x5b, 0x56, 0x8d, 0x8e, 0xbe, 0x24, 0x5d, 0xe2, 0xaa, 0xa6, 0xed, 0x0b, 0xb5, 0x6a, 
+0xdb, 0x0f, 0x4c, 0xaf, 0x37, 0x96, 0x65, 0x57, 0xa1, 0xc9, 0x79, 0x81, 0x87, 0xc3, 0xf3, 0x24, 
+0x5b, 0x1a, 0xc3, 0xf7, 0xa7, 0x8d, 0x7e, 0x6e, 0x47, 0x7c, 0x6e, 0x68, 0x19, 0x52, 0x75, 0x9d, 
+0x8a, 0xe4, 0xb3, 0xe9, 0x33, 0x37, 0x7c, 0x2f, 0x0d, 0x9d, 0x35, 0x21, 0xfb, 0x50, 0xfb, 0x7e, 
+0x5c, 0x7f, 0x70, 0x47, 0x5b, 0xf0, 0xf7, 0xbf, 0x2b, 0xf9, 0xf6, 0x53, 0x8a, 0x54, 0xca, 0x81, 
+0x56, 0x39, 0x8f, 0x89, 0xcc, 0x81, 0x71, 0xbc, 0xe4, 0x76, 0x70, 0x85, 0x54, 0xbc, 0xb0, 0x52, 
+0x90, 0x24, 0x27, 0x7e, 0x5b, 0x25, 0x1b, 0xac, 0x85, 0xd3, 0x52, 0x3e, 0xde, 0x13, 0x52, 0x9e, 
+0x5b, 0xf0, 0xb7, 0x0b, 0xcb, 0x25, 0x3d, 0x7f, 0xa6, 0x77, 0x81, 0x2b, 0xe7, 0x6f, 0xdc, 0x1a, 
+0xd4, 0x61, 0xe0, 0x36, 0xe8, 0x77, 0xe2, 0xdf, 0x3c, 0xd8, 0x07, 0xae, 0xf5, 0x76, 0x31, 0xc1, 
+0xc8, 0x53, 0xee, 0xb7, 0x54, 0xb0, 0x39, 0x3c, 0xad, 0xb8, 0x6b, 0x2b, 0x4f, 0xf9, 0x19, 0xbf, 
+0x79, 0x83, 0x52, 0xf2, 0xbb, 0x0a, 0x29, 0x25, 0xfb, 0x56, 0x7e, 0xff, 0x16, 0xa5, 0x28, 0x65, 
+0x3a, 0x0f, 0xf6, 0xa1, 0x7c, 0x92, 0xde, 0x67, 0x7c, 0x62, 0xa1, 0x9b, 0xc0, 0x52, 0xd0, 0xbe, 
+0x1b, 0x37, 0x53, 0x3e, 0xe1, 0x6c, 0x57, 0x0e, 0x8f, 0x3f, 0x80, 0xaf, 0xb3, 0x20, 0x97, 0x3f, 
+0xe4, 0xb1, 0xa7, 0xe2, 0xb3, 0xf9, 0xd7, 0x57, 0x78, 0xec, 0xd7, 0x74, 0x97, 0x98, 0x44, 0x77, 
+0x4a, 0x50, 0x6c, 0x51, 0xdc, 0xca, 0xbf, 0xed, 0xeb, 0x2a, 0xe7, 0xf1, 0x7e, 0x7c, 0x9d, 0xcb, 
+0x53, 0xf6, 0xf2, 0xf8, 0x4b, 0xd0, 0x85, 0x98, 0xf0, 0x28, 0x7f, 0x57, 0x6e, 0xf2, 0xa2, 0x6f, 
+0x0f, 0xf2, 0xf8, 0x32, 0xc4, 0xbf, 0x01, 0x48, 0x8f, 0xf0, 0x98, 0x37, 0x3e, 0x8f, 0x7f, 0x5b, 
+0xcb, 0x63, 0x2b, 0x78, 0x39, 0xbe, 0x4b, 0xd3, 0xf0, 0x3a, 0xf2, 0xdd, 0xc2, 0xbf, 0x79, 0x79, 
+0xfc, 0x7f, 0x20, 0x9e, 0x2f, 0x05, 0xf9, 0xfb, 0x7c, 0x53, 0x9f, 0x7a, 0xdb, 0x97, 0xa3, 0x9b, 
+0xb1, 0x9d, 0x3c, 0xcd, 0x1a, 0xbf, 0x9b, 0xe7, 0xb6, 0x74, 0x2d, 0xe1, 0xf1, 0x3f, 0xf3, 0x3b, 
+0xbf, 0xfa, 0xf8, 0xba, 0x14, 0xc5, 0xe7, 0x20, 0x1e, 0xa2, 0x38, 0xbb, 0xcc, 0xe3, 0x7f, 0x87, 
+0xf8, 0x82, 0x83, 0x7d, 0xd0, 0x92, 0x4e, 0x03, 0x9b, 0xb7, 0x39, 0x7d, 0x3e, 0xe3, 0x70, 0x3f, 
+0x24, 0x3d, 0xac, 0x9b, 0xdf, 0x02, 0x62, 0x78, 0x93, 0xa7, 0x9c, 0x45, 0xae, 0x17, 0x91, 0xeb, 
+0x10, 0x4f, 0x13, 0x78, 0x1a, 0xdd, 0x0e, 0xb6, 0x8f, 0xc7, 0x8d, 0x3c, 0x7e, 0x01, 0x79, 0x76, 
+0x21, 0xcf, 0x1e, 0x9e, 0xf6, 0x47, 0x4a, 0xd3, 0x69, 0x91, 0x67, 0xa0, 0x7b, 0x39, 0xef, 0x97, 
+0x0a, 0x9e, 0xeb, 0x7a, 0x24, 0xd6, 0xcd, 0x39, 0xc8, 0x60, 0xe7, 0xf1, 0x4b, 0xe1, 0x35, 0x92, 
+0xc4, 0xbf, 0x97, 0xf2, 0x12, 0x2c, 0xc2, 0x5b, 0x9f, 0x9d, 0xc7, 0x63, 0x9a, 0xf0, 0x72, 0x89, 
+0xb7, 0x3e, 0x9b, 0xd7, 0xa9, 0x9b, 0x11, 0x59, 0xa2, 0x96, 0xfe, 0x84, 0xc7, 0xf5, 0xe1, 0xf9, 
+0x92, 0x8d, 0x7f, 0x9f, 0xc9, 0xe3, 0xc6, 0x08, 0xc7, 0x3a, 0xbb, 0x86, 0x62, 0x06, 0x4d, 0x84, 
+0x9f, 0xc4, 0xcb, 0x5e, 0xc9, 0xf7, 0x76, 0xdc, 0xff, 0xd5, 0x3b, 0xc2, 0x68, 0x67, 0x90, 0xf7, 
+0x67, 0xfc, 0xb4, 0xd5, 0x22, 0xf6, 0x9c, 0x22, 0x17, 0xef, 0x6c, 0x50, 0xbd, 0xb5, 0x61, 0x51, 
+0xf1, 0x4e, 0x8a, 0xb6, 0xca, 0xca, 0xff, 0x64, 0x0b, 0x6d, 0x06, 0x83, 0x40, 0x63, 0x14, 0xef, 
+0x36, 0x1b, 0x7d, 0x99, 0x7d, 0x60, 0xb0, 0xc7, 0x5b, 0x79, 0x09, 0x72, 0xdd, 0xcc, 0x1a, 0xc3, 
+0x65, 0xd0, 0x57, 0x1b, 0x48, 0x4f, 0xc5, 0x73, 0x06, 0xd3, 0x84, 0x9d, 0x78, 0x0a, 0x4c, 0x1b, 
+0x16, 0x4d, 0x4e, 0xf9, 0x25, 0xa6, 0x0b, 0x5b, 0xa3, 0x0c, 0x6f, 0x17, 0x59, 0x56, 0x38, 0x97, 
+0xfc, 0xdc, 0x7c, 0x47, 0x55, 0x22, 0x2a, 0x28, 0x3b, 0xac, 0x52, 0xba, 0xd1, 0x5d, 0xcb, 0x1d, 
+0xb4, 0x37, 0xb9, 0x87, 0x79, 0xa0, 0x23, 0xf9, 0xec, 0x6e, 0xd6, 0xc0, 0xd7, 0x15, 0x61, 0x7d, 
+0xa3, 0x8c, 0x68, 0xf7, 0x60, 0x2e, 0x5d, 0xe8, 0xc8, 0x36, 0x68, 0x09, 0x0f, 0xbc, 0xdb, 0xc8, 
+0x6a, 0x2a, 0xcc, 0x7e, 0x6b, 0xd8, 0xc0, 0x5c, 0x86, 0x6d, 0x25, 0xa7, 0x86, 0xaa, 0x27, 0x64, 
+0xcb, 0xaa, 0x8b, 0xcc, 0xb5, 0x92, 0xaf, 0xf9, 0xa3, 0x4f, 0xce, 0x88, 0x35, 0xc0, 0xb4, 0xa4, 
+0x45, 0x73, 0xfc, 0x9f, 0xcc, 0xe6, 0x87, 0xd8, 0x7c, 0x96, 0x67, 0xf1, 0x6f, 0x2f, 0xad, 0xfa, 
+0xf5, 0xff, 0x0a, 0x7b, 0x6d, 0x35, 0x88, 0xdf, 0xde, 0x22, 0xe4, 0xb9, 0xa0, 0x5b, 0x29, 0x69, 
+0xc5, 0xb0, 0x45, 0x68, 0x4f, 0x8b, 0xba, 0x93, 0xff, 0xc0, 0x2f, 0x59, 0x43, 0x8f, 0x0e, 0xa3, 
+0xb2, 0xc1, 0x2d, 0xb8, 0xe9, 0x97, 0x2c, 0x84, 0x83, 0xea, 0xa9, 0x39, 0xf4, 0x39, 0x66, 0xbd, 
+0xaa, 0x70, 0x87, 0x58, 0x63, 0x2a, 0x61, 0xd5, 0x2d, 0x42, 0x38, 0x9a, 0x5e, 0xd7, 0xd6, 0x41, 
+0xda, 0x45, 0x5b, 0x0c, 0x19, 0x7b, 0xe4, 0x74, 0xd0, 0x3a, 0xea, 0x6c, 0x35, 0xfe, 0xfb, 0x5b, 
+0x94, 0xd5, 0xab, 0x7c, 0xe5, 0xc4, 0x09, 0xcf, 0x9b, 0x23, 0xd6, 0x20, 0xb7, 0x15, 0xb9, 0xdd, 
+0xcc, 0xa3, 0x9c, 0xbf, 0x56, 0xb5, 0x5d, 0x17, 0x66, 0x69, 0x9d, 0x0b, 0x5a, 0x3f, 0x9d, 0xc5, 
+0x93, 0x68, 0x96, 0x6d, 0x0c, 0x1b, 0x6d, 0x35, 0xa6, 0xdb, 0x59, 0x53, 0x8b, 0x10, 0xc9, 0x79, 
+0xab, 0x4f, 0xcc, 0x5a, 0x9d, 0x18, 0xf9, 0x25, 0x73, 0xb5, 0x31, 0xd9, 0x9a, 0xba, 0xf1, 0x86, 
+0x74, 0x38, 0x50, 0xd3, 0x49, 0xd4, 0x2c, 0xec, 0x11, 0x0c, 0xce, 0x1e, 0xc1, 0x54, 0xe8, 0x16, 
+0xcc, 0x0e, 0xb7, 0x60, 0xa1, 0x53, 0x7c, 0xbd, 0x45, 0xa7, 0x87, 0x56, 0x4c, 0x24, 0x77, 0x16, 
+0xeb, 0xef, 0xfd, 0x61, 0xf5, 0xc4, 0xf5, 0x73, 0x64, 0xab, 0xb3, 0x7f, 0x75, 0xeb, 0x49, 0x2a, 
+0x66, 0x6f, 0x70, 0x9b, 0xa0, 0x8b, 0xee, 0x56, 0xeb, 0xa7, 0x13, 0x05, 0x98, 0x26, 0xbe, 0x9b, 
+0x70, 0x55, 0x8d, 0x6c, 0xef, 0xd4, 0xb8, 0x3c, 0x87, 0x49, 0x4a, 0xe7, 0xaa, 0x3e, 0xb9, 0x1c, 
+0x77, 0x96, 0x7b, 0x06, 0x6f, 0x8d, 0xf9, 0xc4, 0x8f, 0x0c, 0x6e, 0xa4, 0xdd, 0x1e, 0x31, 0xbe, 
+0xf5, 0xa3, 0xbd, 0x3f, 0x0a, 0x0d, 0x48, 0xc3, 0xca, 0x09, 0x47, 0x8e, 0xcf, 0x29, 0x8e, 0x8f, 
+0x48, 0xf8, 0x14, 0xbb, 0x05, 0x2b, 0x70, 0xc9, 0x07, 0x2e, 0x22, 0xe1, 0x52, 0x7d, 0x91, 0xdd, 
+0xbe, 0x6a, 0x22, 0xa9, 0xab, 0x3d, 0xcf, 0xb2, 0x5c, 0xb3, 0xf8, 0x69, 0x0b, 0xc3, 0x8a, 0x89, 
+0xeb, 0x0d, 0x2b, 0xe9, 0x6e, 0x63, 0x05, 0x2f, 0x23, 0xc7, 0x8b, 0xf6, 0xb0, 0xdb, 0x29, 0xf0, 
+0xf5, 0x39, 0xc2, 0x6d, 0x1b, 0xaf, 0x71, 0x69, 0xc4, 0x96, 0x41, 0x75, 0x3d, 0x9d, 0xda, 0x89, 
+0x4e, 0x8c, 0xfd, 0x52, 0xb0, 0x8a, 0x2b, 0x44, 0xbe, 0x8f, 0xd0, 0xb6, 0x4a, 0xd2, 0xd8, 0xea, 
+0x90, 0x57, 0x40, 0x5e, 0x9f, 0x79, 0x36, 0xcd, 0x68, 0x8d, 0x83, 0x2f, 0x0e, 0x76, 0x6a, 0xc4, 
+0x2a, 0x3e, 0xe7, 0xa8, 0x27, 0x23, 0xa1, 0xd5, 0x66, 0xd1, 0xf9, 0x36, 0x68, 0x8b, 0x15, 0xbc, 
+0xfd, 0xe4, 0x71, 0x70, 0x9d, 0x18, 0x44, 0x49, 0x0d, 0x4a, 0x9a, 0xde, 0x1a, 0xdc, 0x3b, 0x88, 
+0x76, 0x31, 0xb9, 0x23, 0xa3, 0x65, 0x67, 0xb8, 0xa5, 0x71, 0x9a, 0xdb, 0x33, 0x66, 0x6e, 0x03, 
+0xd8, 0x31, 0xbf, 0x9c, 0xe6, 0x18, 0x6f, 0x84, 0x45, 0x69, 0x52, 0xac, 0xca, 0xeb, 0x76, 0x15, 
+0xe7, 0x35, 0xde, 0x5d, 0x34, 0x1b, 0x1b, 0xa0, 0x6c, 0x84, 0x75, 0x31, 0x8d, 0xbd, 0x0f, 0x6f, 
+0x06, 0xbc, 0x19, 0xb6, 0xef, 0xf2, 0x8d, 0x75, 0xe8, 0x59, 0x87, 0x86, 0x31, 0x8d, 0x81, 0x9c, 
+0x6b, 0x78, 0x37, 0x28, 0xef, 0x8c, 0xde, 0x45, 0xbc, 0xfb, 0xc6, 0xc2, 0x78, 0x83, 0xf6, 0xa6, 
+0x81, 0xed, 0xa9, 0xbd, 0xc4, 0xc8, 0xba, 0x7f, 0x96, 0x4d, 0xf3, 0x3d, 0x77, 0xc9, 0xa7, 0x14, 
+0x3b, 0xe3, 0xf3, 0x0f, 0x88, 0xda, 0xce, 0x1e, 0x9d, 0xdf, 0xe5, 0xd6, 0x35, 0x78, 0xdd, 0xac, 
+0x34, 0xce, 0x8a, 0x67, 0xd1, 0x29, 0x16, 0x8d, 0x0f, 0x34, 0x2f, 0xe5, 0x9a, 0x23, 0x1f, 0x25, 
+0x25, 0xcf, 0x39, 0x66, 0xd1, 0x5a, 0xa8, 0xd6, 0x07, 0x3b, 0x98, 0xee, 0xa3, 0x9a, 0xc1, 0xb1, 
+0xef, 0x54, 0xd7, 0xb8, 0xf9, 0x0a, 0xd1, 0x64, 0xab, 0x82, 0x7f, 0x38, 0x27, 0xd0, 0x9f, 0xd6, 
+0xe6, 0x99, 0xf0, 0xd6, 0xb2, 0x5e, 0x96, 0x45, 0x7b, 0x8f, 0x5a, 0x86, 0x08, 0x17, 0x81, 0xad, 
+0xc7, 0x9c, 0x11, 0xe8, 0x87, 0x34, 0x7c, 0x3b, 0x9a, 0x35, 0xf2, 0x18, 0x9e, 0x27, 0x89, 0x7f, 
+0x34, 0xb5, 0xc0, 0x7c, 0x35, 0x9d, 0x9b, 0x2b, 0x64, 0xfc, 0x46, 0xdd, 0x67, 0xe9, 0xd4, 0xa8, 
+0x53, 0x79, 0xdf, 0x93, 0x79, 0x07, 0xd6, 0xb7, 0xba, 0xd3, 0xab, 0x59, 0xbd, 0xee, 0xac, 0x42, 
+0xbe, 0x53, 0x98, 0xf6, 0x43, 0xbb, 0x75, 0x74, 0x72, 0x8d, 0x4e, 0x0f, 0xd0, 0x1e, 0x62, 0x3a, 
+0xd3, 0xc2, 0x77, 0x26, 0x9b, 0x25, 0x09, 0x54, 0xe3, 0xf3, 0x7e, 0xf6, 0xfd, 0x92, 0x09, 0xb4, 
+0xd2, 0x45, 0xcc, 0x3c, 0xb6, 0x35, 0x75, 0xc7, 0x95, 0xd4, 0x40, 0xf5, 0xaa, 0x75, 0x39, 0xbf, 
+0xa2, 0x2e, 0xb3, 0xa2, 0xc5, 0xb8, 0xdf, 0xf8, 0x42, 0x0d, 0xa6, 0x80, 0x9b, 0x7d, 0x2b, 0x92, 
+0xc3, 0x61, 0xf6, 0xb8, 0x8d, 0x74, 0xeb, 0x1c, 0x74, 0x25, 0x50, 0x33, 0xe2, 0x52, 0xda, 0x5d, 
+0x79, 0x51, 0xe7, 0x3b, 0x3e, 0x66, 0x76, 0x7e, 0xfe, 0x11, 0x9d, 0x61, 0x8f, 0xf0, 0xd3, 0xeb, 
+0x2a, 0x0e, 0x3d, 0x53, 0xf7, 0x6c, 0xf1, 0x5c, 0xff, 0x0c, 0xfb, 0x3b, 0x2b, 0xc9, 0xd4, 0xaf, 
+0xdb, 0xa6, 0xbe, 0x12, 0xa4, 0x42, 0xa6, 0xc8, 0x83, 0xaa, 0x8b, 0xba, 0xda, 0xca, 0x8f, 0x0f, 
+0x31, 0xb2, 0xef, 0x93, 0x8c, 0xce, 0xa3, 0xb5, 0x30, 0xff, 0xe6, 0x6d, 0xfc, 0x8e, 0xfb, 0x7b, 
+0xf6, 0x81, 0x37, 0x97, 0x13, 0x0e, 0xe0, 0xcc, 0xe5, 0x24, 0x99, 0x93, 0x0c, 0x90, 0x9b, 0x8e, 
+0xff, 0xd3, 0xf1, 0x97, 0xbd, 0xce, 0xcf, 0x2f, 0xac, 0xf8, 0x8b, 0x55, 0xc3, 0xe9, 0xbd, 0x9a, 
+0xeb, 0xf5, 0x8f, 0x75, 0xb3, 0x64, 0x2b, 0x8d, 0x11, 0x8d, 0x9f, 0x3c, 0x7d, 0x12, 0x4b, 0xaa, 
+0xfb, 0xe3, 0x20, 0x6d, 0x60, 0xbf, 0xbb, 0xdd, 0xba, 0x26, 0xa5, 0x45, 0x62, 0x8f, 0x6e, 0x8d, 
+0xb7, 0xa4, 0x5d, 0x9e, 0x3a, 0x0d, 0xac, 0x70, 0xb7, 0xce, 0x4a, 0xf7, 0xbf, 0x73, 0xcb, 0x9e, 
+0xee, 0x51, 0x50, 0x03, 0xec, 0xce, 0xd5, 0xdc, 0xa3, 0xc5, 0xfd, 0x59, 0x9c, 0xe7, 0xc9, 0x0b, 
+0x74, 0x85, 0xb7, 0xea, 0xa1, 0x29, 0x9e, 0x9f, 0x28, 0x51, 0x79, 0x5e, 0x0f, 0x8e, 0x9f, 0x04, 
+0x54, 0x39, 0xe5, 0x03, 0xbb, 0xa1, 0x4c, 0xdf, 0x54, 0x99, 0xcf, 0x26, 0xbf, 0xb4, 0xcc, 0xfd, 
+0xb0, 0xe4, 0x69, 0xcd, 0x38, 0x9f, 0x6e, 0xc5, 0x58, 0xd2, 0xcb, 0x66, 0xab, 0x7b, 0x3a, 0xf9, 
+0x4e, 0x28, 0xf5, 0xc4, 0x9e, 0xb2, 0xff, 0x6d, 0x35, 0xac, 0x2e, 0x5d, 0x6a, 0x47, 0x54, 0xf6, 
+0x80, 0x7f, 0x13, 0x13, 0x52, 0xb7, 0xde, 0x84, 0xcb, 0xcd, 0x73, 0xf8, 0xce, 0xac, 0x52, 0x7e, 
+0xbe, 0xd1, 0x69, 0xda, 0x54, 0xe0, 0x66, 0x2d, 0x61, 0xd1, 0xbc, 0x98, 0xdd, 0x8b, 0x14, 0x4f, 
+0xc4, 0x44, 0xd2, 0x9c, 0xef, 0x96, 0xaf, 0x0e, 0xd3, 0x0e, 0x45, 0xbb, 0xf8, 0x28, 0xa8, 0xa1, 
+0x0f, 0x3d, 0x2a, 0x3d, 0xc3, 0x29, 0xa2, 0x78, 0x6e, 0x19, 0xad, 0xe8, 0x38, 0x40, 0x07, 0xd8, 
+0x7a, 0x6e, 0xb6, 0x80, 0xef, 0x43, 0xd1, 0xf0, 0xdb, 0x41, 0xd0, 0x7f, 0xeb, 0xf9, 0x49, 0x0b, 
+0x6e, 0xc5, 0xd8, 0x6c, 0x55, 0xa2, 0x17, 0x96, 0x75, 0x6e, 0xc0, 0x1c, 0xd6, 0x63, 0x0e, 0x05, 
+0x5d, 0x63, 0xeb, 0x72, 0x61, 0xa7, 0x34, 0x0d, 0xd2, 0x6d, 0xc6, 0x87, 0xfa, 0xba, 0xdf, 0xab, 
+0x7b, 0x87, 0xa9, 0xfe, 0xcd, 0xdd, 0xbf, 0x4b, 0x7b, 0x1d, 0xdf, 0x42, 0xfb, 0xd6, 0xfc, 0x61, 
+0x6c, 0xea, 0x0e, 0xf0, 0x64, 0x22, 0xe3, 0xfd, 0x71, 0x9b, 0xc7, 0xbe, 0x91, 0xa5, 0x57, 0x60, 
+0x92, 0x8f, 0x90, 0xcd, 0xbd, 0x3e, 0x4a, 0xbb, 0xa8, 0x68, 0xbe, 0x2f, 0x99, 0xf2, 0xf2, 0x1f, 
+0x6d, 0x19, 0xc2, 0x78, 0x30, 0x45, 0xce, 0x65, 0xfc, 0x3d, 0x81, 0x0e, 0x8d, 0xbe, 0xea, 0xbc, 
+0x66, 0xaa, 0xb4, 0x7a, 0x8b, 0x7e, 0x6a, 0x35, 0x89, 0x6c, 0x20, 0x61, 0x4c, 0xd1, 0x96, 0x93, 
+0x39, 0x05, 0x1e, 0x21, 0x19, 0x29, 0x2f, 0x40, 0x19, 0x8d, 0xb5, 0x20, 0xa0, 0xb1, 0xf0, 0xdb, 
+0xc9, 0xc6, 0xa6, 0x97, 0x27, 0x88, 0x19, 0x78, 0x66, 0xc6, 0x1e, 0x57, 0x56, 0x6a, 0xd2, 0xb0, 
+0x3b, 0x84, 0x24, 0xdf, 0xa5, 0xbf, 0x8c, 0xf0, 0x34, 0x4f, 0xe1, 0x79, 0xf8, 0xaf, 0xc1, 0x88, 
+0xb5, 0xa6, 0xee, 0x48, 0x9e, 0x0e, 0x8d, 0xdf, 0x6d, 0x58, 0x48, 0xb7, 0x49, 0x64, 0xff, 0x5d, 
+0x34, 0x0d, 0x8b, 0xdf, 0xb6, 0x96, 0x1f, 0xe1, 0x37, 0x6d, 0x67, 0x8f, 0x80, 0xa6, 0x1e, 0x94, 
+0x7c, 0xba, 0xc0, 0xa3, 0xd1, 0xa4, 0xee, 0x4b, 0xe6, 0x67, 0x33, 0xc9, 0xeb, 0x5f, 0x91, 0xeb, 
+0x66, 0x2b, 0xa3, 0xb2, 0x9b, 0xee, 0xf7, 0x2a, 0xd4, 0x68, 0x22, 0xdd, 0xee, 0xde, 0xe4, 0xef, 
+0x84, 0xcf, 0xc1, 0x87, 0x74, 0x37, 0x39, 0xbd, 0x5f, 0x65, 0x16, 0x37, 0xb4, 0x10, 0x74, 0x32, 
+0xc5, 0x3e, 0x61, 0xf9, 0x18, 0x59, 0x74, 0xbe, 0x4a, 0xe4, 0xf1, 0x09, 0x66, 0x8f, 0x2e, 0x19, 
+0x1f, 0x72, 0xd3, 0x2a, 0x04, 0x66, 0xdf, 0x4a, 0x70, 0x18, 0x30, 0xcd, 0xa7, 0x33, 0x76, 0x76, 
+0x16, 0x11, 0x45, 0x0f, 0x74, 0x2d, 0x1f, 0x74, 0xad, 0x25, 0x19, 0x7e, 0x54, 0x2f, 0x30, 0x52, 
+0xf2, 0xfc, 0x94, 0xbe, 0xd0, 0x5a, 0x00, 0xb8, 0xc5, 0xa5, 0xe8, 0x67, 0x4a, 0xbb, 0x78, 0x8b, 
+0xfe, 0x3e, 0x5a, 0x30, 0xad, 0x45, 0x66, 0x9e, 0xfa, 0xbb, 0x1b, 0x52, 0xad, 0x3c, 0xf5, 0xdf, 
+0x6f, 0x48, 0xb5, 0x44, 0xcc, 0xbc, 0xf5, 0x1f, 0xf0, 0xb6, 0x1f, 0x40, 0x1f, 0xf6, 0xa2, 0x4e, 
+0x0b, 0x9f, 0xb5, 0x4d, 0x62, 0x87, 0xd0, 0xcb, 0x6f, 0xcc, 0x81, 0x2e, 0x7f, 0xa3, 0x37, 0xc0, 
+0xdb, 0x21, 0x0c, 0x20, 0x3c, 0xb2, 0xb4, 0x97, 0xb9, 0x85, 0x41, 0xfc, 0xda, 0x85, 0x47, 0xf1, 
+0xab, 0x15, 0x1e, 0xe7, 0x7b, 0x2e, 0xaf, 0x08, 0x3f, 0x6a, 0x38, 0x2f, 0xec, 0xf2, 0x16, 0x0a, 
+0xbb, 0xbd, 0xc3, 0xc2, 0x9e, 0xa5, 0xbd, 0x7f, 0x32, 0x0b, 0xcf, 0x90, 0x5f, 0x42, 0xf8, 0x31, 
+0xe2, 0xcf, 0xa2, 0xe4, 0x4f, 0x10, 0x7e, 0xca, 0x4b, 0xef, 0xc3, 0x6f, 0x81, 0x30, 0x8c, 0x5f, 
+0x9d, 0xf0, 0x3c, 0x87, 0xf1, 0x02, 0xcf, 0x39, 0x52, 0x79, 0x5e, 0x18, 0x80, 0x2d, 0x79, 0x00, 
+0x25, 0x5e, 0x44, 0x18, 0x45, 0x78, 0x09, 0xe1, 0x28, 0x4a, 0xbe, 0x8a, 0xe7, 0x31, 0x40, 0x7f, 
+0x9d, 0x6a, 0xcb, 0xfe, 0x58, 0x78, 0x03, 0x79, 0x9f, 0x42, 0xde, 0x37, 0x55, 0xfc, 0x4e, 0xaa, 
+0xcf, 0xb7, 0x90, 0xef, 0x6d, 0x84, 0xb3, 0x08, 0xef, 0x21, 0xcf, 0x33, 0xc8, 0xd3, 0x2b, 0xe5, 
+0x89, 0xed, 0x6c, 0x19, 0xa7, 0xc7, 0x65, 0xb4, 0xfa, 0x59, 0x3a, 0x79, 0x43, 0xab, 0x6d, 0xc8, 
+0xd3, 0x89, 0x10, 0x47, 0x88, 0xde, 0xc8, 0x8d, 0xcc, 0x7a, 0x60, 0xda, 0x5a, 0x66, 0x72, 0x3d, 
+0xed, 0x6d, 0xff, 0x92, 0x34, 0xf3, 0x8d, 0x69, 0x69, 0x5e, 0xfa, 0x90, 0x46, 0x2e, 0xe6, 0x52, 
+0xf2, 0x0c, 0x59, 0x48, 0xde, 0x08, 0x67, 0x14, 0x99, 0x1e, 0x21, 0xfd, 0xb5, 0xc4, 0xd5, 0xce, 
+0xd7, 0xe8, 0x4d, 0x87, 0x95, 0x7b, 0x0a, 0x5f, 0x60, 0x15, 0x11, 0xe2, 0x28, 0x27, 0xb3, 0x3e, 
+0x71, 0xcc, 0x16, 0x78, 0xf2, 0x35, 0xfa, 0x7b, 0x12, 0xe8, 0xb5, 0x83, 0x34, 0x06, 0xc9, 0x07, 
+0x3c, 0x75, 0xd7, 0x55, 0x94, 0xc5, 0x98, 0xd8, 0xc5, 0xca, 0x6c, 0x5d, 0x42, 0x27, 0xf2, 0x75, 
+0x09, 0xbd, 0x7f, 0xfb, 0xba, 0xab, 0x0b, 0x12, 0xf7, 0x05, 0xf9, 0x95, 0xc5, 0x1e, 0x21, 0xaa, 
+0xdc, 0x49, 0xc5, 0x3d, 0xd7, 0xaa, 0x27, 0x15, 0xe3, 0x81, 0x6e, 0x22, 0x18, 0xc0, 0xd3, 0x1a, 
+0xe9, 0x0d, 0xa0, 0xbd, 0x91, 0x3c, 0xc8, 0xd7, 0x24, 0x61, 0x65, 0x9c, 0xcb, 0xd7, 0xa0, 0xb8, 
+0x4e, 0x0f, 0x7b, 0x03, 0x3c, 0xb0, 0xb0, 0x43, 0x38, 0xcf, 0xca, 0xd5, 0xb7, 0x0b, 0x53, 0x7f, 
+0xcf, 0x84, 0xd6, 0x12, 0x85, 0x4e, 0x60, 0xaf, 0xee, 0x49, 0x50, 0xee, 0xbb, 0x13, 0xe2, 0xbc, 
+0x7c, 0x2b, 0x9d, 0x7c, 0x11, 0xa2, 0xe1, 0x79, 0x99, 0x37, 0x61, 0x5f, 0x27, 0x1f, 0x53, 0x27, 
+0x79, 0xf5, 0x84, 0x6d, 0x7c, 0x87, 0xc1, 0x36, 0x68, 0x20, 0x57, 0x5c, 0x5d, 0x8a, 0x1f, 0x3c, 
+0x45, 0x6d, 0x4a, 0xe7, 0x18, 0x86, 0xc0, 0x8b, 0x56, 0x4e, 0x0f, 0x3f, 0xa0, 0x44, 0x15, 0x8b, 
+0x1f, 0xad, 0x7a, 0x09, 0x90, 0x3b, 0xc3, 0x06, 0xc9, 0x61, 0xf3, 0x90, 0x4c, 0x9b, 0x7e, 0xd7, 
+0xb6, 0xf2, 0x06, 0xf9, 0x7d, 0x96, 0xd2, 0x53, 0x75, 0x7e, 0xb1, 0x5f, 0xa3, 0x39, 0x53, 0x6b, 
+0x9c, 0xea, 0x69, 0x93, 0x80, 0x37, 0xd7, 0x5b, 0x08, 0x23, 0xb2, 0x90, 0x69, 0xe6, 0xd2, 0x0a, 
+0xbe, 0x16, 0x6f, 0xb4, 0xdb, 0x31, 0x0b, 0x41, 0x8f, 0x30, 0x63, 0x69, 0x6f, 0xf0, 0x33, 0x66, 
+0x28, 0x00, 0x8e, 0xcc, 0x58, 0x79, 0x9e, 0x19, 0xa2, 0x7a, 0x92, 0x81, 0x86, 0xa9, 0x3b, 0xfa, 
+0x1f, 0xa2, 0xd5, 0x8f, 0x73, 0x83, 0x53, 0xeb, 0xfa, 0x18, 0xab, 0xe9, 0xbd, 0x13, 0xa2, 0x21, 
+0xd7, 0x1c, 0x1a, 0x3c, 0x28, 0x44, 0xf4, 0x01, 0x21, 0x7c, 0x59, 0xb1, 0xe1, 0xe9, 0x3b, 0x79, 
+0x0a, 0xf8, 0xb9, 0x1c, 0xc0, 0x95, 0x34, 0x8d, 0x7d, 0x51, 0x16, 0xe8, 0x8b, 0x18, 0xcd, 0x37, 
+0xd3, 0x5f, 0x27, 0xd9, 0xd9, 0x1f, 0xb9, 0xa0, 0xe4, 0xf3, 0xbf, 0x5f, 0x51, 0x02, 0x39, 0xc0, 
+0xe7, 0x34, 0x94, 0xb0, 0x93, 0xb5, 0xca, 0x6f, 0xfc, 0x9e, 0x74, 0x78, 0x37, 0xc4, 0x1c, 0x9a, 
+0x47, 0x12, 0xdb, 0xb4, 0xaf, 0x0e, 0x44, 0x96, 0x38, 0x34, 0xbf, 0xda, 0xfe, 0xea, 0x40, 0x38, 
+0xf7, 0x50, 0x5f, 0x6b, 0x0e, 0x9d, 0xfe, 0x7f, 0xb5, 0xbf, 0x14, 0x23, 0x6b, 0xf7, 0x6f, 0xa1, 
+0xd5, 0x56, 0xee, 0xda, 0x21, 0xd6, 0xda, 0x3d, 0x96, 0x7f, 0x6f, 0x1c, 0xe4, 0xe3, 0xfa, 0x6a, 
+0xe5, 0xc7, 0x06, 0x76, 0x62, 0x87, 0xa4, 0x11, 0x3d, 0x0e, 0xe1, 0xdc, 0x63, 0x11, 0xab, 0xad, 
+0xca, 0xe1, 0xb5, 0xfb, 0xed, 0xff, 0xde, 0xb8, 0xe3, 0x00, 0xff, 0x4e, 0x7f, 0xc9, 0xe6, 0xc4, 
+0xf6, 0xe3, 0xbf, 0x7d, 0x50, 0x7b, 0xf4, 0x61, 0xd4, 0xb4, 0xcb, 0xe6, 0x35, 0xff, 0x5b, 0x63, 
+0x5f, 0x78, 0x82, 0x6c, 0xf2, 0x13, 0x7d, 0x0e, 0x76, 0xb2, 0xcf, 0xa9, 0x1d, 0xec, 0x7f, 0x50, 
+0x7b, 0xec, 0xe1, 0x48, 0x89, 0x53, 0xfb, 0x9b, 0x81, 0x63, 0x0f, 0x87, 0x73, 0xac, 0x15, 0x4c, 
+0x87, 0xba, 0xf5, 0xaf, 0xf5, 0x8b, 0xd5, 0x80, 0x5c, 0xb9, 0x6b, 0xd0, 0x69, 0xf0, 0x0d, 0x9c, 
+0x18, 0x38, 0x39, 0x30, 0x7b, 0xc4, 0x29, 0x97, 0xc9, 0x6a, 0xdd, 0x97, 0x9d, 0xc2, 0xb9, 0xc7, 
+0x23, 0xf3, 0x6d, 0xbe, 0x27, 0x8e, 0x2d, 0x1c, 0x71, 0x4e, 0x96, 0x4d, 0x36, 0xee, 0xb8, 0x67, 
+0x90, 0xd7, 0x7a, 0xc9, 0x37, 0x70, 0x0a, 0xff, 0xa9, 0xc4, 0x36, 0xed, 0xd1, 0x81, 0xc8, 0x3c, 
+0xb1, 0xd2, 0xd7, 0x67, 0xf7, 0xfe, 0xe1, 0x65, 0x5b, 0xd5, 0xef, 0x5f, 0x9e, 0x3d, 0xb2, 0x4f, 
+0x7e, 0x2a, 0x0d, 0xa3, 0xee, 0x1d, 0x53, 0x85, 0x42, 0x9b, 0x92, 0x12, 0x7e, 0x37, 0x19, 0xe6, 
+0x59, 0xbe, 0xee, 0xe7, 0x91, 0x74, 0xb9, 0x47, 0x1b, 0x07, 0x6d, 0xd9, 0xdc, 0x02, 0x55, 0xee, 
+0xfd, 0xba, 0x20, 0x05, 0xed, 0xfe, 0x98, 0xee, 0xc0, 0x60, 0x6b, 0xcd, 0x56, 0x56, 0x03, 0xba, 
+0xd8, 0xb4, 0xef, 0xee, 0xe8, 0xdf, 0xee, 0x10, 0x68, 0x7d, 0xe4, 0x91, 0x3e, 0x47, 0xad, 0xe3, 
+0xb7, 0xf7, 0x0c, 0xd2, 0xf7, 0xb6, 0xab, 0x36, 0xe3, 0x77, 0xfb, 0xce, 0xed, 0x70, 0x08, 0xa1, 
+0xed, 0x62, 0xd5, 0xf1, 0xdf, 0x3a, 0x0c, 0x27, 0x07, 0x7d, 0x7d, 0x6f, 0xf6, 0x89, 0x95, 0xc7, 
+0x5f, 0xae, 0xbc, 0x3c, 0x38, 0xf9, 0xfb, 0xdf, 0x2a, 0xd0, 0x15, 0x1a, 0x2a, 0xbb, 0x60, 0x95, 
+0x7b, 0xc7, 0x6c, 0x1e, 0xb1, 0x36, 0xb4, 0x03, 0x33, 0xf8, 0x35, 0xea, 0xcf, 0xdc, 0x9b, 0xcd, 
+0x2f, 0x87, 0x27, 0xd4, 0x3e, 0x56, 0xfb, 0x37, 0xf7, 0x66, 0x9a, 0x17, 0x94, 0x9e, 0x0d, 0xeb, 
+0xc0, 0x07, 0xbc, 0x77, 0x79, 0x59, 0xca, 0xe1, 0x99, 0x2a, 0xc3, 0x4f, 0x9b, 0x19, 0x44, 0x21, 
+0xd4, 0x67, 0xf3, 0x04, 0x66, 0x87, 0xaf, 0xee, 0x1c, 0x04, 0xdf, 0x6a, 0x39, 0xb7, 0x58, 0xb8, 
+0x65, 0xde, 0x43, 0xfb, 0x48, 0x1b, 0xfb, 0xc0, 0x2b, 0x16, 0x0b, 0x41, 0xa5, 0xdd, 0x69, 0xd6, 
+0x9d, 0xdb, 0xc3, 0x86, 0x80, 0x26, 0xfc, 0x81, 0x72, 0x47, 0x8b, 0x63, 0x81, 0x72, 0xcb, 0x10, 
+0x9d, 0xf8, 0xa2, 0x72, 0x7c, 0x5d, 0xd4, 0x43, 0xa5, 0x6c, 0x7e, 0x94, 0x33, 0x59, 0xe6, 0x99, 
+0x8f, 0x86, 0x2f, 0x63, 0x24, 0xde, 0x4c, 0x70, 0xc2, 0xd7, 0x94, 0xdb, 0x85, 0x82, 0xf7, 0x93, 
+0x85, 0x5d, 0x02, 0x9c, 0xc6, 0x2e, 0x32, 0x63, 0xa9, 0x9b, 0xe9, 0x8f, 0x5e, 0x64, 0x86, 0xf1, 
+0x4a, 0x5a, 0x19, 0x50, 0x63, 0xc6, 0xf1, 0xbe, 0x34, 0xef, 0x92, 0x8f, 0xc0, 0x60, 0xa2, 0x7d, 
+0x14, 0xac, 0x35, 0xcf, 0xce, 0xbc, 0x5e, 0xbf, 0x77, 0xe0, 0xe5, 0x12, 0x8d, 0xdf, 0xb3, 0xc4, 
+0xcd, 0x8c, 0xf4, 0x26, 0x95, 0xd8, 0x85, 0xb3, 0x3b, 0xce, 0x0e, 0xaa, 0x79, 0xae, 0x24, 0x5e, 
+0xa6, 0xb5, 0x30, 0x59, 0xb6, 0x69, 0x8e, 0x8e, 0xf9, 0xbd, 0xaf, 0x20, 0x04, 0xbc, 0x61, 0xe3, 
+0x9b, 0xfd, 0x6d, 0x7a, 0xd8, 0xcf, 0x86, 0x0d, 0x9a, 0xc6, 0x84, 0xe2, 0xdd, 0x8a, 0x0b, 0x04, 
+0xbd, 0x43, 0xe7, 0xeb, 0xf3, 0x51, 0x0b, 0x0c, 0x78, 0x4b, 0xf8, 0x34, 0xe9, 0x9b, 0x6b, 0xc6, 
+0xa1, 0xc1, 0x69, 0x3a, 0x34, 0xca, 0x09, 0xa8, 0xe0, 0xfd, 0xdc, 0x17, 0x06, 0x9c, 0x33, 0xbf, 
+0x53, 0x5a, 0xe6, 0x4d, 0x37, 0x88, 0xeb, 0xe8, 0x0e, 0x93, 0x2f, 0xcb, 0x4f, 0x7b, 0x06, 0xfe, 
+0x5a, 0x7e, 0x8c, 0x3f, 0xda, 0x83, 0x68, 0x75, 0x62, 0x0c, 0xc2, 0xba, 0x16, 0x03, 0x03, 0x9d, 
+0x3a, 0x7b, 0xae, 0x94, 0x17, 0x17, 0xa0, 0xb3, 0x3d, 0x1c, 0x31, 0x04, 0x77, 0x42, 0xe6, 0xe8, 
+0xa4, 0xd2, 0xe0, 0xce, 0x13, 0xdb, 0x25, 0xa3, 0x43, 0x77, 0x72, 0xfb, 0xff, 0xdc, 0x1e, 0x15, 
+0x1e, 0x49, 0x28, 0x2b, 0x95, 0x62, 0xcc, 0xc0, 0x02, 0x03, 0x5d, 0x9c, 0x13, 0x57, 0xbf, 0x2c, 
+0xe9, 0x60, 0x17, 0xbd, 0xec, 0x13, 0xc2, 0xaf, 0xa6, 0xf4, 0x67, 0x1d, 0xe7, 0x63, 0xf2, 0x6e, 
+0x04, 0xb7, 0x40, 0x96, 0x30, 0xed, 0x87, 0xf8, 0x89, 0xd2, 0x14, 0xc6, 0x58, 0xdb, 0x73, 0x08, 
+0x50, 0x33, 0x5b, 0x7f, 0x84, 0xd0, 0xc4, 0xd8, 0x86, 0xf7, 0x10, 0xf6, 0x22, 0x3c, 0x84, 0xd0, 
+0x8e, 0x10, 0x82, 0x4e, 0xf7, 0x14, 0x02, 0xa8, 0x7a, 0xdf, 0x38, 0x63, 0xd2, 0x33, 0x08, 0x5e, 
+0x84, 0x1c, 0xc6, 0xd6, 0x95, 0x21, 0xcc, 0x63, 0x6c, 0xed, 0x79, 0x04, 0x94, 0x59, 0x3b, 0xc8, 
+0xd8, 0xf7, 0x4e, 0x21, 0x20, 0x6d, 0x0d, 0xca, 0x7e, 0x17, 0xf9, 0xef, 0xf9, 0x31, 0xc2, 0x4e, 
+0x84, 0x7e, 0x84, 0x18, 0xc2, 0x7a, 0x04, 0xc0, 0xbc, 0xc7, 0x87, 0xb0, 0x04, 0xc1, 0x8e, 0x90, 
+0xcb, 0x58, 0x4b, 0x12, 0xe1, 0x02, 0xc2, 0x5b, 0x08, 0xc7, 0x10, 0x0e, 0x22, 0xfc, 0x04, 0x61, 
+0x0f, 0xc2, 0x00, 0x02, 0xf0, 0x6d, 0x69, 0x45, 0x00, 0x8e, 0x2d, 0x7e, 0x84, 0x72, 0x04, 0x17, 
+0x42, 0x3e, 0x82, 0x19, 0x01, 0xcd, 0xb9, 0xfb, 0x12, 0xc2, 0x59, 0x84, 0x13, 0x08, 0xaf, 0x22, 
+0xbc, 0x88, 0xb0, 0x0f, 0x01, 0x38, 0xdf, 0xfd, 0x38, 0xc2, 0x83, 0x08, 0xc0, 0xeb, 0xee, 0xd5, 
+0xa0, 0xd3, 0x28, 0x02, 0xf0, 0x5a, 0x0d, 0xb8, 0xab, 0xad, 0x8c, 0x35, 0xa3, 0x9e, 0xe6, 0xf9, 
+0x8c, 0x35, 0xbd, 0xce, 0x58, 0xe3, 0x2e, 0x04, 0xe4, 0x0d, 0x1d, 0x46, 0x18, 0x41, 0x40, 0xfb, 
+0x43, 0x28, 0x1f, 0x02, 0x0d, 0x6a, 0x27, 0x18, 0xf3, 0xa1, 0xce, 0x6f, 0x3f, 0x8a, 0xd0, 0x0d, 
+0x33, 0x0b, 0x6d, 0x2a, 0x5f, 0xce, 0xd8, 0x1d, 0x97, 0x11, 0x90, 0xef, 0x8e, 0x3a, 0xc6, 0xca, 
+0xae, 0x31, 0x56, 0x08, 0xfa, 0x2d, 0x42, 0x1b, 0x17, 0x95, 0x32, 0x66, 0x03, 0x4d, 0x45, 0x3c, 
+0xbf, 0x09, 0x65, 0x27, 0x0f, 0x8a, 0xf0, 0xdc, 0x3c, 0x04, 0x1d, 0x63, 0x16, 0xf4, 0xc3, 0x1c, 
+0xc0, 0x31, 0x02, 0x47, 0x23, 0xe8, 0x62, 0x04, 0x5d, 0x67, 0x14, 0x43, 0xd8, 0x03, 0x96, 0x46, 
+0x8f, 0xee, 0x49, 0x92, 0x56, 0x84, 0x00, 0x9c, 0x04, 0xe0, 0x21, 0x80, 0xc6, 0x02, 0xd2, 0x19, 
+0xda, 0xc0, 0x6a, 0x10, 0x0a, 0x11, 0x4e, 0x33, 0xfe, 0xaf, 0x63, 0x18, 0xe1, 0x69, 0x04, 0xe0, 
+0xdd, 0xd1, 0x81, 0x10, 0x40, 0xbf, 0x5a, 0xd0, 0x67, 0xa0, 0xdd, 0x7d, 0xe8, 0x2b, 0x09, 0xb8, 
+0x4b, 0xf8, 0xb6, 0xae, 0x13, 0xc1, 0x83, 0x60, 0x43, 0x7f, 0x9d, 0x44, 0x00, 0xec, 0xb5, 0xa0, 
+0xc5, 0x5a, 0xf4, 0xd3, 0xda, 0x38, 0x02, 0xc4, 0xef, 0xda, 0x20, 0xfa, 0xf0, 0x28, 0x02, 0xda, 
+0x7f, 0x2f, 0x68, 0x77, 0x0f, 0xd1, 0x13, 0xb8, 0xad, 0x46, 0xda, 0x6a, 0xb4, 0x71, 0x35, 0xfa, 
+0x6d, 0xb5, 0x88, 0x00, 0x5c, 0x9a, 0x5f, 0x41, 0x38, 0x80, 0x80, 0x7c, 0xcd, 0x0e, 0xd0, 0x0f, 
+0x65, 0x1a, 0xd1, 0xd7, 0x21, 0xd0, 0x20, 0x84, 0x6f, 0x21, 0xf4, 0xcd, 0x77, 0xd0, 0x8e, 0xef, 
+0x00, 0x66, 0xc3, 0x18, 0x63, 0xf5, 0x68, 0xdf, 0x2a, 0xf4, 0x1f, 0xc8, 0xc4, 0x02, 0xa8, 0x2f, 
+0x00, 0x9a, 0x04, 0x00, 0x67, 0x05, 0xda, 0xb3, 0x02, 0x70, 0xab, 0xd1, 0x06, 0xdf, 0x55, 0x84, 
+0x67, 0x11, 0x00, 0xaf, 0x0a, 0x70, 0xaa, 0x80, 0x7f, 0x25, 0xf0, 0xf2, 0xe0, 0xfd, 0x2e, 0xf0, 
+0xc4, 0x9d, 0x68, 0xcb, 0xb7, 0xb7, 0x82, 0xee, 0xa0, 0x5b, 0x39, 0x00, 0x95, 0x03, 0x26, 0xd8, 
+0x81, 0xdd, 0x81, 0xbe, 0xbf, 0x03, 0xe9, 0x77, 0xa0, 0x4f, 0xef, 0xb8, 0x17, 0x01, 0xf3, 0xe7, 
+0x1d, 0x4e, 0x04, 0xc0, 0x2f, 0x43, 0x1f, 0x94, 0xbd, 0x89, 0x80, 0x7e, 0x29, 0x03, 0xfd, 0xfe, 
+0x06, 0x70, 0x96, 0xfd, 0x14, 0x96, 0x37, 0x68, 0x52, 0x8a, 0x7c, 0xa5, 0xcb, 0x10, 0x4a, 0x10, 
+0x40, 0xd3, 0x12, 0xd0, 0xa4, 0x04, 0xbc, 0xe1, 0x06, 0x2f, 0xba, 0xd7, 0x20, 0x80, 0x96, 0xc5, 
+0xc8, 0x57, 0x0c, 0xfe, 0x2b, 0x46, 0xbe, 0x62, 0xe0, 0x55, 0x04, 0xda, 0x15, 0xa1, 0x4f, 0x8a, 
+0x00, 0xc7, 0x85, 0x36, 0x2e, 0x06, 0xbe, 0x8b, 0x91, 0xa7, 0x10, 0xfd, 0x51, 0x08, 0x5e, 0x59, 
+0x04, 0x98, 0x4e, 0x8c, 0x87, 0xdb, 0x50, 0xf6, 0x36, 0xf0, 0x01, 0xad, 0x17, 0xdc, 0x8a, 0x7e, 
+0xbd, 0x15, 0x70, 0x6d, 0xa0, 0xd1, 0x42, 0x8c, 0x8d, 0x85, 0xe8, 0x8b, 0x85, 0xe0, 0xff, 0x05, 
+0x2f, 0x21, 0x40, 0xd7, 0x5c, 0xa0, 0x01, 0x8f, 0x60, 0x3c, 0x7e, 0x13, 0x38, 0x7e, 0x13, 0xbc, 
+0xf5, 0x4d, 0x8c, 0xcb, 0xfc, 0x73, 0x08, 0xa8, 0xe7, 0x16, 0xf0, 0xca, 0x2d, 0x48, 0x9f, 0x07, 
+0x1a, 0xcc, 0x7b, 0x1e, 0x01, 0xb4, 0x9b, 0x87, 0x3e, 0x99, 0x07, 0x7e, 0xba, 0x19, 0xf5, 0xdc, 
+0x0c, 0x9a, 0xdf, 0xbc, 0x0d, 0x01, 0xed, 0xbd, 0x19, 0xfc, 0x69, 0x45, 0x5b, 0xad, 0xe0, 0x69, 
+0x2b, 0xd2, 0xbf, 0x81, 0x71, 0xf1, 0x8d, 0xb7, 0x11, 0xd0, 0x1f, 0xdf, 0x40, 0x1d, 0x79, 0xa0, 
+0xf1, 0x5c, 0xd0, 0x0e, 0x7a, 0x08, 0x9b, 0x03, 0x3c, 0xe6, 0x60, 0xbc, 0xcd, 0x01, 0x0f, 0xcc, 
+0x01, 0x0f, 0xcd, 0x01, 0xef, 0xcf, 0x01, 0xed, 0xe6, 0x00, 0xef, 0x39, 0xe8, 0x8f, 0x5c, 0x8c, 
+0xe7, 0x5c, 0x10, 0x37, 0x17, 0x34, 0x9c, 0x0d, 0x1a, 0xce, 0x06, 0xdc, 0xd9, 0xaf, 0x21, 0x00, 
+0xee, 0xec, 0x06, 0x58, 0x4f, 0xc0, 0xcf, 0x0c, 0xfe, 0x30, 0x63, 0x5c, 0x9a, 0x31, 0x0e, 0x66, 
+0xa1, 0x8f, 0x67, 0x81, 0x1f, 0x66, 0x01, 0x97, 0x59, 0x88, 0xe7, 0xe0, 0x7b, 0x0e, 0xe8, 0x91, 
+0x83, 0xbc, 0x39, 0xe8, 0xf7, 0x1c, 0xf0, 0xcd, 0x4d, 0x57, 0x10, 0x30, 0x36, 0x6f, 0x82, 0x1c, 
+0x98, 0x09, 0xda, 0xcd, 0x34, 0x82, 0xf7, 0x81, 0x9f, 0x11, 0x75, 0x19, 0x01, 0xdb, 0x08, 0x1c, 
+0xb2, 0x91, 0x27, 0x1b, 0x69, 0xd9, 0xe8, 0xdf, 0x6c, 0x33, 0x79, 0xc0, 0x11, 0x40, 0x3b, 0x03, 
+0x78, 0xd7, 0x80, 0x3e, 0x9a, 0x81, 0x7c, 0x33, 0x0e, 0x21, 0x00, 0xe7, 0x19, 0x68, 0xcf, 0x0c, 
+0xb4, 0x4b, 0x0f, 0xbe, 0xd1, 0x03, 0x86, 0x1e, 0xf5, 0xeb, 0x91, 0x97, 0x76, 0xab, 0xe9, 0xd1, 
+0x16, 0x3d, 0xf0, 0xd0, 0x63, 0xcc, 0x65, 0x41, 0x26, 0x64, 0xa1, 0x9f, 0xb2, 0x20, 0xeb, 0xb2, 
+0x30, 0xe6, 0x75, 0xc0, 0x4b, 0x07, 0x5e, 0xd0, 0x81, 0xbf, 0xb4, 0x28, 0xab, 0x45, 0x5c, 0x0b, 
+0x3c, 0x69, 0x73, 0x85, 0x00, 0x9a, 0x09, 0xc0, 0x51, 0x00, 0x5f, 0x33, 0xd0, 0x97, 0x0b, 0x18, 
+0xf4, 0x3d, 0x43, 0x7f, 0x31, 0xbd, 0x32, 0xe6, 0xb4, 0xe8, 0x4f, 0xed, 0x79, 0xf5, 0xef, 0x10, 
+0xfe, 0xf5, 0x7f, 0xf6, 0xd5, 0xd5, 0xa1, 0x72, 0x71, 0x43, 0x6b, 0xac, 0xa7, 0xab, 0xb8, 0xfd, 
+0xbe, 0xee, 0xd6, 0xce, 0xb6, 0x98, 0x78, 0x7b, 0xf1, 0x32, 0xd1, 0x79, 0xfb, 0xb2, 0xe2, 0xdb, 
+0x4b, 0x8b, 0x4b, 0x4b, 0x6e, 0xbf, 0x7d, 0xd1, 0x4d, 0x46, 0xc6, 0x33, 0x14, 0xa9, 0x19, 0x58, 
+0x00, 0xf2, 0x9c, 0x41, 0x56, 0x6d, 0xdc, 0x27, 0x08, 0x06, 0x19, 0xef, 0xa0, 0x1f, 0xed, 0x23, 
+0x12, 0x7e, 0x94, 0x02, 0x6b, 0xaa, 0xf2, 0xd5, 0x6c, 0xec, 0x6c, 0x6b, 0x7c, 0x60, 0x73, 0xbc, 
+0xad, 0x0b, 0xf1, 0x9b, 0xa6, 0x03, 0x60, 0x18, 0x28, 0x0b, 0x29, 0x1f, 0x9e, 0x36, 0xf5, 0x79, 
+0xab, 0x22, 0xf7, 0x95, 0x7f, 0xaf, 0xfc, 0xd3, 0xff, 0xfa, 0xdd, 0xf1, 0x93, 0xa7, 0xdf, 0x3d, 
+0x73, 0xf6, 0xdc, 0x9f, 0xfe, 0xe3, 0xfd, 0xff, 0xfc, 0xe0, 0xfc, 0x9f, 0x3f, 0xfa, 0xf0, 0xc2, 
+0xc5, 0x8f, 0xff, 0x72, 0xf9, 0xca, 0xd5, 0x4f, 0x26, 0x3e, 0xfb, 0x7c, 0xf2, 0xc8, 0xc8, 0x73, 
+0xff, 0xcf, 0xcf, 0xfe, 0xfe, 0xc5, 0x77, 0x5e, 0xf8, 0xf9, 0x91, 0x83, 0xfb, 0x8e, 0xbc, 0x7a, 
+0xea, 0xc8, 0xaf, 0x8e, 0x1c, 0xf9, 0x7f, 0x7f, 0x73, 0xe9, 0x08, 0xfe, 0x0d, 0x8f, 0x1e, 0x79, 
+0xef, 0xda, 0x91, 0xff, 0xfb, 0x79, 0x7a, 0xdf, 0xff, 0x8f, 0x47, 0x9e, 0x1d, 0xfb, 0xed, 0x1f, 
+0x8e, 0x1c, 0xf9, 0x45, 0x91, 0xcd, 0x26, 0x1d, 0xfc, 0xf4, 0x88, 0x7c, 0xc4, 0xfd, 0x13, 0xfa, 
+0x70, 0xa4, 0xf8, 0xd0, 0x91, 0x23, 0x47, 0x5f, 0x7b, 0xf9, 0x9f, 0x8f, 0xfd, 0xcb, 0x1b, 0xff, 
+0xfb, 0xf5, 0xdf, 0x9f, 0x38, 0xf2, 0xe6, 0x5b, 0xff, 0xfe, 0x6f, 0x47, 0xd6, 0x3e, 0xf4, 0x8b, 
+0x23, 0x7f, 0x3f, 0x72, 0xc4, 0x56, 0x7c, 0x84, 0xb1, 0xf9, 0x90, 0xe1, 0x85, 0xe0, 0x9d, 0x22, 
+0xf0, 0x9a, 0x0b, 0xfc, 0x3c, 0x1f, 0x6d, 0x5c, 0x08, 0xde, 0x59, 0x80, 0x7e, 0xba, 0x0d, 0xb4, 
+0x9e, 0x0f, 0x1e, 0x9d, 0x0f, 0xde, 0x5c, 0x80, 0x3e, 0x9f, 0x0f, 0x1e, 0x98, 0x4f, 0xb2, 0x14, 
+0x63, 0x6e, 0x01, 0xc6, 0xce, 0x02, 0xcc, 0x1b, 0x0b, 0xc0, 0x3b, 0xdf, 0xc2, 0xf8, 0xa8, 0x00, 
+0x8c, 0xbb, 0xd0, 0x17, 0x77, 0x41, 0xe6, 0x7d, 0x0b, 0xe3, 0x77, 0x29, 0xc6, 0xae, 0x0f, 0xfd, 
+0xed, 0x05, 0xdc, 0x25, 0xe8, 0xfb, 0x25, 0xe8, 0xa3, 0x25, 0x1f, 0x40, 0xbe, 0x20, 0x2c, 0x45, 
+0x5f, 0xfe, 0x0d, 0xf8, 0x67, 0x29, 0x64, 0xc5, 0x52, 0x8c, 0x83, 0xa5, 0xe1, 0x04, 0xd3, 0xfe, 
+0x19, 0x72, 0xd2, 0x87, 0x27, 0xf1, 0xdd, 0xa3, 0x09, 0xfe, 0x37, 0x27, 0xcd, 0x99, 0x3d, 0x68, 
+0x51, 0x1e, 0xd9, 0x9f, 0x2b, 0x4f, 0xe3, 0xac, 0x69, 0xfd, 0x2b, 0x7c, 0x73, 0x1d, 0x31, 0x4e, 
+0x82, 0xde, 0x95, 0xdf, 0xf9, 0xff, 0xf0, 0x31, 0x58, 0xa8, 0xe4, 0xe2, 0x2c, 0x30, 0x5a, 0xf1, 
+0xf0, 0x65, 0x54, 0x5b, 0x7c, 0xe1, 0x2a, 0x18, 0xb6, 0x78, 0xff, 0x3c, 0x7c, 0x2f, 0xfe, 0xf9, 
+0xf9, 0x43, 0xfc, 0x17, 0xe9, 0x25, 0xc3, 0xb7, 0x20, 0xcf, 0x82, 0x3b, 0x28, 0xff, 0x17, 0xff, 
+0x69, 0xe5, 0xfd, 0x4f, 0x98, 0xd9, 0x2c, 0xdd, 0x1f, 0x36, 0x96, 0xf8, 0x4a, 0x86, 0x87, 0x1f, 
+0xfb, 0x09, 0xf3, 0x34, 0x9d, 0x68, 0xf2, 0x34, 0xed, 0x33, 0xee, 0xdb, 0xd7, 0x9b, 0xdd, 0xec, 
+0xfb, 0x43, 0x93, 0x3f, 0x34, 0xfc, 0x6c, 0x61, 0xc2, 0x62, 0x1b, 0xfe, 0xd9, 0x09, 0xb6, 0xbe, 
+0x41, 0x58, 0xd5, 0x31, 0x7c, 0x62, 0x78, 0x78, 0xc6, 0x3b, 0xcd, 0x81, 0x50, 0xc3, 0xa0, 0x3b, 
+0x79, 0xe2, 0x50, 0xd6, 0xdd, 0xdf, 0xb8, 0x3e, 0xd1, 0x5c, 0xf8, 0xc2, 0xcc, 0xcf, 0x4f, 0x5c, 
+0x7c, 0x72, 0x4d, 0xf5, 0x9f, 0x2e, 0x7c, 0x6f, 0xfd, 0x21, 0xe3, 0x82, 0x35, 0xf2, 0x1f, 0x9b, 
+0x9b, 0x3f, 0x4f, 0x7e, 0xff, 0xfb, 0x9f, 0x7e, 0xff, 0x5f, 0xb7, 0xca, 0x49, 0x39, 0xf9, 0x83, 
+0xa4, 0x4c, 0xff, 0x92, 0xd3, 0xab, 0xb7, 0xdc, 0x64, 0x66, 0x4d, 0xcd, 0x1e, 0xa6, 0x6b, 0x52, 
+0xb8, 0xa6, 0xb9, 0xb2, 0x53, 0x97, 0xd5, 0x34, 0x38, 0x64, 0xbe, 0x74, 0x66, 0xb0, 0xf9, 0xbb, 
+0xcd, 0x59, 0x73, 0x9b, 0x86, 0x9f, 0x98, 0x7d, 0xbf, 0x66, 0xb8, 0xf9, 0x3b, 0x4d, 0xff, 0xd1, 
+0xdc, 0x74, 0xe1, 0x78, 0xf3, 0x93, 0x35, 0x17, 0x9a, 0xbf, 0xdb, 0x34, 0x77, 0x6e, 0x93, 0xfc, 
+0xbf, 0x9b, 0xcf, 0xbd, 0x9f, 0x6c, 0xf6, 0x50, 0x7e, 0x05, 0xf2, 0x1f, 0xe9, 0xdf, 0x69, 0xe5, 
+0x5d, 0x9e, 0x6c, 0x4e, 0x76, 0x5f, 0x90, 0xaf, 0xbe, 0xf0, 0xf9, 0xdb, 0x17, 0xfe, 0xf1, 0xef, 
+0xe4, 0x4f, 0xb7, 0xdc, 0x2b, 0xcb, 0x2f, 0x5d, 0xf8, 0xe5, 0x4b, 0xc3, 0xf2, 0xa7, 0x7f, 0x5c, 
+0x77, 0xf4, 0x53, 0x79, 0x62, 0x54, 0x7e, 0xf1, 0xe7, 0xb2, 0xfc, 0xa9, 0x7c, 0xfe, 0x9d, 0xe6, 
+0x96, 0xbb, 0xe4, 0xc3, 0xc3, 0xc3, 0x2f, 0xbe, 0x23, 0x0f, 0x37, 0x7e, 0xf2, 0xf9, 0xf0, 0xf0, 
+0x89, 0xfd, 0x17, 0x7f, 0x70, 0x25, 0x2b, 0x50, 0xfd, 0xf9, 0xf5, 0x09, 0xcd, 0x2b, 0xfb, 0xdf, 
+0xf9, 0xec, 0xfa, 0x4d, 0x85, 0xe6, 0x8b, 0x97, 0x5f, 0x1a, 0x35, 0x3f, 0xf7, 0xc7, 0xff, 0xf8, 
+0xf4, 0xfc, 0x73, 0x6c, 0xce, 0xc4, 0x7e, 0x3f, 0x1b, 0xfc, 0xa1, 0xe1, 0x51, 0x3f, 0xc6, 0xed, 
+0xb8, 0x31, 0xa1, 0xb6, 0x44, 0xad, 0x57, 0xf9, 0x4d, 0x9e, 0x7d, 0xf6, 0x97, 0xc0, 0xe1, 0x07, 
+0x1c, 0x13, 0xfe, 0x7b, 0xa6, 0x26, 0x67, 0x56, 0x52, 0x1e, 0xaf, 0xce, 0xfa, 0x46, 0x52, 0x1e, 
+0xf3, 0x99, 0x66, 0x24, 0xe5, 0x57, 0x7c, 0xa6, 0x15, 0xf8, 0xad, 0xb6, 0x80, 0x32, 0xaf, 0xd4, 
+0xe8, 0xf0, 0x3e, 0x56, 0xa3, 0x43, 0xfa, 0xb8, 0x6f, 0x2e, 0xf2, 0x9c, 0x79, 0x95, 0xf2, 0x67, 
+0xc2, 0x4c, 0xfd, 0xee, 0xa7, 0xdf, 0xef, 0xfc, 0x01, 0xa5, 0x2e, 0xb1, 0x7d, 0x8f, 0xbd, 0x24, 
+0x8f, 0x55, 0x1e, 0x6f, 0x7a, 0x48, 0xde, 0x67, 0x78, 0x6e, 0xdf, 0x43, 0x72, 0x73, 0xf5, 0x3f, 
+0x35, 0x3d, 0x94, 0xa4, 0xfe, 0x5a, 0x9e, 0x1c, 0xfe, 0x49, 0x13, 0x7b, 0xe8, 0x7a, 0xf3, 0xca, 
+0xe1, 0xe1, 0x64, 0xd2, 0xa8, 0x5b, 0xd7, 0xbc, 0x3c, 0x69, 0xde, 0xe7, 0x4e, 0xbe, 0x94, 0xd4, 
+0x69, 0xef, 0xbe, 0xbe, 0x3c, 0x29, 0xea, 0xf7, 0x4f, 0x3c, 0x24, 0x9b, 0x6f, 0x6a, 0x3e, 0x97, 
+0x94, 0x9f, 0x9b, 0x37, 0x3c, 0x3b, 0x29, 0x7f, 0xd4, 0xdc, 0xfc, 0xc3, 0xa4, 0x7c, 0x4d, 0x9e, 
+0xbc, 0x0b, 0xf0, 0x99, 0x20, 0xdf, 0xd0, 0x5f, 0x53, 0x82, 0xa0, 0x38, 0xd6, 0xb6, 0xb9, 0x67, 
+0x4b, 0x6c, 0x43, 0xdb, 0xd7, 0x15, 0x3b, 0x1b, 0xbb, 0xa3, 0x5b, 0xe2, 0xc5, 0xad, 0x6d, 0x5b, 
+0x37, 0xa2, 0xcc, 0x8c, 0xe6, 0xee, 0xee, 0xfb, 0xba, 0xda, 0x5a, 0x59, 0xb0, 0xb6, 0xae, 0x9c, 
+0x55, 0xdd, 0xd7, 0xdd, 0xdd, 0x13, 0x17, 0xa3, 0x6d, 0xb1, 0x70, 0x4f, 0xac, 0x4b, 0x8c, 0x76, 
+0xde, 0xf7, 0x80, 0x78, 0xdf, 0x96, 0xd6, 0x8d, 0x3d, 0xe2, 0x86, 0x9e, 0xae, 0x2e, 0x80, 0x5c, 
+0xc8, 0x36, 0x76, 0x76, 0xb6, 0x45, 0xee, 0xeb, 0x5c, 0xd7, 0xb9, 0xb1, 0x7b, 0x13, 0xab, 0xf2, 
+0x15, 0xf9, 0x2a, 0x59, 0x6b, 0xcf, 0xe6, 0xe2, 0xce, 0x8d, 0xeb, 0x63, 0xf7, 0xc5, 0x1e, 0x60, 
+0x5b, 0xe2, 0x1b, 0x3b, 0x37, 0xc6, 0x1f, 0x48, 0xc7, 0xe3, 0x1b, 0xbb, 0xda, 0x62, 0xa9, 0xca, 
+0xca, 0x59, 0x65, 0x34, 0xda, 0xd9, 0xb6, 0xce, 0x5f, 0xd3, 0xc8, 0x8a, 0x63, 0x9b, 0x63, 0x1b, 
+0x90, 0x52, 0xe5, 0x2b, 0x29, 0xb9, 0x1d, 0xbf, 0xa1, 0xfa, 0x55, 0xf8, 0x6d, 0x5a, 0xcd, 0x2a, 
+0x57, 0xd5, 0xae, 0xa8, 0x64, 0x55, 0x75, 0x8c, 0xfe, 0x80, 0x9b, 0x58, 0x85, 0x86, 0x44, 0xda, 
+0x6a, 0xbb, 0xe3, 0xac, 0x7e, 0x4b, 0x5c, 0xec, 0x09, 0x8b, 0x5d, 0x6d, 0x5d, 0x3d, 0xb1, 0x07, 
+0xd0, 0x4c, 0x05, 0xd5, 0xfb, 0x3a, 0x3b, 0x7b, 0x36, 0xdc, 0x17, 0x6f, 0x13, 0xd7, 0x6f, 0x09, 
+0x87, 0xdb, 0x62, 0x9b, 0x8d, 0xce, 0xa6, 0xd8, 0x03, 0xe2, 0x06, 0x2a, 0xb5, 0xb1, 0x3b, 0x22, 
+0x7a, 0xb7, 0x84, 0x57, 0xb5, 0x75, 0x35, 0x3d, 0x10, 0x6d, 0x13, 0x7b, 0xa2, 0xf1, 0x8d, 0x3d, 
+0xdd, 0xc5, 0x8b, 0x52, 0x8d, 0xec, 0x89, 0xb6, 0x75, 0x8b, 0xf1, 0xf6, 0x36, 0x40, 0xdc, 0xbc, 
+0xf9, 0xbe, 0x48, 0x9b, 0x18, 0xed, 0x89, 0xc5, 0x8b, 0xbf, 0xf0, 0xb5, 0xd6, 0x5d, 0x2f, 0xc6, 
+0xda, 0xee, 0xdf, 0xd2, 0xb6, 0x39, 0x2e, 0x6e, 0x8e, 0xc7, 0xb6, 0x6c, 0x88, 0x6f, 0x89, 0xb5, 
+0x4d, 0xcf, 0x66, 0x2b, 0xd8, 0x6c, 0x13, 0xb7, 0x74, 0x6f, 0x8c, 0x8b, 0x05, 0x9d, 0xad, 0xa9, 
+0x2f, 0xf7, 0x6d, 0xd8, 0x00, 0xb8, 0x22, 0x6f, 0x98, 0xd8, 0x1a, 0xdb, 0xb8, 0xb5, 0xad, 0x5c, 
+0x54, 0x69, 0x27, 0xae, 0x07, 0xce, 0x9b, 0x36, 0x6f, 0x7c, 0x10, 0x70, 0x5a, 0x41, 0xe8, 0x4d, 
+0x2c, 0xc6, 0x7f, 0x43, 0xd5, 0x4d, 0xa1, 0x7b, 0xdc, 0x8d, 0xae, 0xba, 0x3b, 0xeb, 0xea, 0xef, 
+0xae, 0x0e, 0x55, 0x55, 0x36, 0x56, 0x23, 0xb6, 0xaa, 0xee, 0xce, 0x55, 0x95, 0xf7, 0x78, 0xab, 
+0x33, 0xd3, 0x42, 0x77, 0x86, 0xea, 0xab, 0x56, 0x86, 0x6a, 0x7d, 0x2b, 0x28, 0x16, 0xb8, 0x33, 
+0x50, 0x5f, 0x57, 0x5b, 0xdd, 0x44, 0x99, 0x6b, 0x91, 0xb9, 0xaa, 0xa9, 0xbe, 0xb6, 0xb1, 0x1e, 
+0xb1, 0xaa, 0xc6, 0x3b, 0xab, 0xea, 0x83, 0xe0, 0x8a, 0xa6, 0xc6, 0x86, 0xca, 0xaa, 0xea, 0x46, 
+0x24, 0x35, 0xae, 0xbe, 0xb3, 0xd1, 0x5f, 0x7f, 0x37, 0xd2, 0x1a, 0x6b, 0xeb, 0x83, 0x48, 0xf0, 
+0xd7, 0xdc, 0x89, 0xee, 0xa8, 0xa9, 0x0d, 0x35, 0x52, 0xf9, 0x1a, 0xef, 0x9d, 0x35, 0xb5, 0x75, 
+0xd5, 0xde, 0xe6, 0x9a, 0x1a, 0xe4, 0x70, 0xaf, 0x74, 0x07, 0x5d, 0xbe, 0xea, 0x3b, 0x7d, 0x95, 
+0x4d, 0x95, 0xd5, 0x2d, 0x4d, 0xee, 0x95, 0xae, 0x50, 0xf5, 0x9d, 0xa1, 0xea, 0xc6, 0xfa, 0xe6, 
+0x50, 0x55, 0xb5, 0x92, 0xd0, 0x58, 0x7b, 0x67, 0x63, 0x55, 0x65, 0xb0, 0x36, 0xd8, 0x54, 0x1d, 
+0x5a, 0x5d, 0x59, 0xc7, 0x4b, 0x34, 0x54, 0xdd, 0xd9, 0x50, 0x57, 0x79, 0x4f, 0x95, 0xcf, 0x57, 
+0x89, 0x1c, 0x2d, 0x77, 0xb6, 0x34, 0xd4, 0x2b, 0xa0, 0xee, 0xb9, 0xf3, 0x9e, 0xd4, 0x2b, 0xab, 
+0xe7, 0xdd, 0xb1, 0x59, 0xac, 0x13, 0xc1, 0x56, 0xe2, 0x2a, 0x3c, 0x62, 0xe8, 0x8a, 0x2d, 0xf1, 
+0x2d, 0xe8, 0xd1, 0x07, 0xc4, 0xb6, 0x6d, 0x1b, 0x3a, 0xb7, 0x6c, 0x06, 0xd1, 0x16, 0xb2, 0x5a, 
+0x95, 0x68, 0xdd, 0x5b, 0xba, 0xd6, 0x83, 0xa1, 0xc1, 0x02, 0x61, 0xf0, 0x7e, 0xaa, 0xbf, 0xcb, 
+0x39, 0xcd, 0x53, 0xd5, 0xa5, 0xd8, 0x54, 0x24, 0x9e, 0x16, 0xe3, 0x3d, 0x3d, 0x62, 0x67, 0x4f, 
+0x77, 0x04, 0xf3, 0x40, 0x2c, 0xd6, 0x13, 0x13, 0xbf, 0xdf, 0x4e, 0x05, 0xa3, 0xf7, 0xc5, 0x36, 
+0x13, 0x6b, 0xd8, 0xaa, 0x7a, 0xba, 0xe3, 0xb1, 0x9e, 0x4e, 0x1b, 0xe0, 0xb5, 0x75, 0xb6, 0x8a, 
+0x1b, 0xbb, 0xc5, 0x55, 0x3d, 0x5b, 0xba, 0xe3, 0x9d, 0x1b, 0x37, 0xc7, 0xcb, 0x8d, 0x05, 0x9b, 
+0xa7, 0x33, 0x1c, 0xf3, 0xd5, 0x56, 0xb3, 0xfa, 0x86, 0xea, 0x60, 0x51, 0xe8, 0x6e, 0xe5, 0x59, 
+0x5f, 0xe7, 0x53, 0x5e, 0x82, 0xd5, 0x77, 0xa3, 0xeb, 0x2a, 0x7d, 0xec, 0xee, 0x50, 0x6d, 0x53, 
+0x35, 0x38, 0xb7, 0xbe, 0xb1, 0x9a, 0x35, 0x56, 0x57, 0xaf, 0x64, 0xd5, 0x2d, 0x60, 0xe6, 0x60, 
+0xb5, 0x18, 0x04, 0xad, 0xd2, 0x91, 0x7a, 0x6f, 0x80, 0xd5, 0x06, 0x6b, 0xea, 0x01, 0xb1, 0x71, 
+0xa5, 0xc8, 0xdf, 0x1a, 0x2a, 0x43, 0xd5, 0xc1, 0x26, 0x5f, 0x6d, 0x88, 0xf9, 0xaa, 0xeb, 0xaa, 
+0x09, 0x06, 0xe0, 0x35, 0x55, 0x53, 0x42, 0x1d, 0xfa, 0x99, 0xf9, 0x9a, 0x1b, 0xf8, 0xb3, 0x26, 
+0x54, 0x5d, 0xcd, 0x5f, 0x1a, 0xab, 0x9b, 0x1a, 0x42, 0xf5, 0x4d, 0xd5, 0x55, 0x4d, 0xf4, 0x5a, 
+0x55, 0xbf, 0x6a, 0x15, 0xca, 0x03, 0x89, 0x60, 0xe5, 0xaa, 0x6a, 0x00, 0xf7, 0xd7, 0x7a, 0x6b, 
+0x53, 0x51, 0x91, 0xaa, 0x61, 0xab, 0xea, 0x43, 0xd5, 0x62, 0x55, 0x65, 0x95, 0xbf, 0x9a, 0xdd, 
+0x5d, 0x59, 0xdb, 0x24, 0xd6, 0xd4, 0x87, 0xc4, 0x2a, 0x7f, 0x65, 0x88, 0xd5, 0xd4, 0x35, 0x37, 
+0xfa, 0x59, 0x23, 0x2a, 0xac, 0x0e, 0xae, 0xaa, 0xf7, 0xa1, 0x74, 0xe3, 0x3a, 0xe2, 0x80, 0xc6, 
+0x7b, 0x1a, 0x9b, 0xaa, 0x57, 0xb1, 0x46, 0x40, 0x58, 0xc7, 0xab, 0xac, 0xaa, 0x6f, 0xb8, 0x67, 
+0x1d, 0x30, 0x5a, 0x57, 0xe3, 0x57, 0xf1, 0xa5, 0x37, 0xb5, 0x51, 0xf4, 0x5a, 0xe3, 0x5f, 0x57, 
+0x03, 0x5e, 0x57, 0x73, 0x37, 0x87, 0x78, 0x96, 0xd5, 0xf5, 0x75, 0xcd, 0x40, 0x89, 0xc8, 0x23, 
+0xd6, 0xd5, 0x06, 0x81, 0x48, 0xe5, 0xca, 0x6a, 0xe5, 0xad, 0xb9, 0xb1, 0x3a, 0xc4, 0x8a, 0x52, 
+0xff, 0x9a, 0x83, 0x2b, 0x83, 0xf5, 0x77, 0x07, 0xd5, 0x18, 0x0b, 0xae, 0x62, 0x95, 0x8d, 0xac, 
+0xa1, 0x85, 0x35, 0xd6, 0x31, 0x37, 0xdb, 0xfc, 0xc0, 0xe6, 0x72, 0x12, 0x1e, 0x29, 0xc9, 0xd0, 
+0x50, 0x97, 0x16, 0x1b, 0xab, 0x49, 0x48, 0x44, 0x63, 0x6d, 0xe1, 0xcd, 0x62, 0x57, 0x0f, 0x86, 
+0x60, 0x4f, 0x8c, 0x6d, 0xe8, 0x69, 0x6d, 0xdb, 0xdc, 0x16, 0x9f, 0x92, 0x49, 0xcd, 0x4d, 0x35, 
+0x45, 0xb7, 0x2f, 0x83, 0xdc, 0x8b, 0x6f, 0xd9, 0xc8, 0x65, 0x40, 0xea, 0xc3, 0xf7, 0x31, 0xea, 
+0xd6, 0xb7, 0x75, 0x6f, 0x68, 0x4f, 0xa7, 0x6c, 0xdc, 0x90, 0xf1, 0xb9, 0xad, 0x7b, 0x6b, 0xf9, 
+0x86, 0xd6, 0xd6, 0xfb, 0x60, 0x07, 0x62, 0x18, 0x71, 0xda, 0x2a, 0xc3, 0xd9, 0xaf, 0x0a, 0x57, 
+0xce, 0x56, 0xac, 0x72, 0x3d, 0x04, 0x07, 0x6b, 0x6c, 0xef, 0xf9, 0xfe, 0x3a, 0xe2, 0xc1, 0x75, 
+0xb5, 0x80, 0x01, 0xf1, 0x04, 0xb6, 0x6d, 0x15, 0xe3, 0xdf, 0x87, 0xdc, 0x5b, 0xf8, 0x25, 0x1a, 
+0x22, 0x42, 0x81, 0xfa, 0xcc, 0x0c, 0x29, 0x35, 0x80, 0x6c, 0x76, 0xbd, 0xa2, 0xbb, 0x71, 0xdd, 
+0xf4, 0x03, 0xc5, 0x2e, 0xe4, 0xb6, 0x20, 0xec, 0x12, 0xae, 0x9f, 0x16, 0xa8, 0xca, 0x08, 0xf4, 
+0x7c, 0xe1, 0x30, 0xff, 0xfb, 0xce, 0x4c, 0x38, 0xa8, 0xda, 0x8e, 0xcf, 0xf3, 0xbf, 0xfe, 0xcc, 
+0x04, 0xe8, 0x4e, 0xc2, 0xb3, 0x8a, 0x5e, 0x2b, 0x40, 0x27, 0x12, 0x60, 0x23, 0x08, 0xd0, 0x95, 
+0x05, 0xe8, 0xbe, 0x02, 0xe6, 0x4b, 0x81, 0xf6, 0xee, 0x25, 0xf8, 0xcd, 0x06, 0x74, 0x3d, 0x0a, 
+0x13, 0x60, 0x67, 0x08, 0xb0, 0xa7, 0x04, 0xe8, 0x5b, 0x02, 0xea, 0x12, 0x50, 0x17, 0x6d, 0x37, 
+0x10, 0x60, 0x17, 0x09, 0xa8, 0x53, 0x80, 0xde, 0x25, 0x40, 0xf5, 0x11, 0xa0, 0xa7, 0x0b, 0xd0, 
+0xdd, 0x04, 0xd8, 0x3a, 0x82, 0x07, 0xa1, 0x82, 0xdf, 0x25, 0xc9, 0x18, 0xca, 0xb1, 0x35, 0x6a, 
+0x1b, 0x54, 0x7d, 0x99, 0xfe, 0x66, 0x77, 0xba, 0x5d, 0x97, 0xff, 0x7f, 0xe3, 0x21, 0x4e, 0x37, 
+0xe0, 0x7b, 0x00, 0x00
+};
+unsigned int cdfs_rom_len = 18804;
index 9840e7acdb4ee69d2fca99e778fbbc8130a11751..df6ae35deae65fcdd9c4d842d35c5e9d10cb4ed9 100644 (file)
@@ -5116,7 +5116,7 @@ static void framewait (void)
                
                if (vs == -2) {
 
-                       vsync_busywait_end ();
+                       curr_time = vsync_busywait_end ();
                        vsync_busywait_do (&freetime);
                        curr_time = read_processor_time ();
                        vsyncmintime = curr_time + vsynctime;
@@ -5203,8 +5203,6 @@ static void fpscounter (void)
 // vsync functions that are not hardware timing related
 static void vsync_handler_pre (void)
 {
-       vsync_rendered = false;
-
        if (bogusframe > 0)
                bogusframe--;
 
@@ -5234,7 +5232,9 @@ static void vsync_handler_pre (void)
 
        sampler_vsync ();
 
-       vsync_handle_redraw (lof_store, lof_changed);
+       if (!vsync_rendered)
+               vsync_handle_redraw (lof_store, lof_changed);
+       vsync_rendered = true;
 }
 
 // emulated hardware vsync
@@ -5242,6 +5242,8 @@ static void vsync_handler_post (void)
 {
        static frame_time_t prevtime;
 
+       vsync_rendered = false;
+
        //write_log (L"%d %d %d\n", vsynctime, read_processor_time () - vsyncmintime, read_processor_time () - prevtime);
        prevtime = read_processor_time ();
 
@@ -5757,10 +5759,6 @@ static void hsync_handler_post (bool onvsync)
 #ifdef JIT
        }
 #endif
-       if (is_lastline && isvsync () == -2 && !vsync_rendered) {
-               vsync_rendered = true;
-               render_screen ();
-       }
 
        if (!nocustom ()) {
                int lineno = vpos;
@@ -5862,6 +5860,13 @@ static void hsync_handler_post (bool onvsync)
                diw_change--;
 
 
+       if (is_lastline && isvsync () == -2 && !vsync_rendered) {
+               /* last line, render the frame as early as possible */
+               vsync_rendered = true;
+               vsync_handle_redraw (lof_store, lof_changed);
+               render_screen ();
+       }
+
 #if 0
        {
                static int skip;
@@ -7312,6 +7317,8 @@ STATIC_INLINE int dma_cycle (void)
        blitter_nasty = 1;
        if (cpu_tracer == -1)
                return current_hpos ();
+       if (!currprefs.cpu_cycle_exact)
+               return current_hpos ();
        while (currprefs.cpu_cycle_exact) {
                int bpldma;
                int blitpri = dmacon & DMA_BLITPRI;
index df62665f29ed865f2df44dd985a80d1e3065c332..ab90caf09bca7ae08f3167496d50df7e9e915956 100644 (file)
@@ -103,6 +103,7 @@ static void aino_test_init (a_inode *aino)
 
 uaecptr filesys_initcode;
 static uae_u32 fsdevname, filesys_configdev;
+static uae_u32 cdfs_devname, cdfs_control;
 static int filesys_in_interrupt;
 static uae_u32 mountertask;
 static int automountunit = -1;
@@ -5202,7 +5203,11 @@ static void init_filesys_diagentry (void)
        do_put_mem_long ((uae_u32 *)(filesysory + 0x2100), EXPANSION_explibname);
        do_put_mem_long ((uae_u32 *)(filesysory + 0x2104), filesys_configdev);
        do_put_mem_long ((uae_u32 *)(filesysory + 0x2108), EXPANSION_doslibname);
-       do_put_mem_long ((uae_u32 *)(filesysory + 0x210c), nr_units ());
+       if (currprefs.scsi && currprefs.win32_automount_cddrives)
+               do_put_mem_word ((uae_u16 *)(filesysory + 0x210c),  scsi_get_cd_drive_mask ());
+       else
+               do_put_mem_word ((uae_u16 *)(filesysory + 0x210c), 0);
+       do_put_mem_word ((uae_u16 *)(filesysory + 0x210e), nr_units ());
        native2amiga_startup ();
 }
 
@@ -5402,15 +5407,22 @@ static uae_u32 REGPARAM2 filesys_diagentry (TrapContext *context)
 
 static uae_u32 REGPARAM2 filesys_dev_bootfilesys (TrapContext *context)
 {
+       int iscd = (m68k_dreg (regs, 6) & 0x80000000) != 0;
        uaecptr devicenode = m68k_areg (regs, 3);
        uaecptr parmpacket = m68k_areg (regs, 1);
        uaecptr fsres = get_long (parmpacket + PP_FSRES);
        uaecptr fsnode;
        uae_u32 dostype, dostype2;
        UnitInfo *uip = mountinfo.ui;
-       int no = m68k_dreg (regs, 6);
+       int no = m68k_dreg (regs, 6) & 0x7fffffff;
        int unit_no = no & 65535;
-       int type = is_hardfile (unit_no);
+       int type;
+       
+       if (iscd) {
+               type = FILESYS_CD;
+       } else {
+               type = is_hardfile (unit_no);
+       }
 
        if (type == FILESYS_VIRTUAL)
                return 0;
@@ -5452,28 +5464,51 @@ static uae_u32 REGPARAM2 filesys_init_storeinfo (TrapContext *context)
        return ret;
 }
 
+
+#define CDFS_DOSTYPE 0x43445644
+static uae_u8 *cdfs_handler;
+static int cdfs_handler_len;
+
 /* Remember a pointer AmigaOS gave us so we can later use it to identify
 * which unit a given startup message belongs to.  */
 static uae_u32 REGPARAM2 filesys_dev_remember (TrapContext *context)
 {
-       int no = m68k_dreg (regs, 6);
+       int iscd = (m68k_dreg (regs, 6) & 0x80000000) != 0;
+       int no = m68k_dreg (regs, 6) & 0x7fffffff;
        int unit_no = no & 65535;
        int sub_no = no >> 16;
-       UnitInfo *uip = &mountinfo.ui[unit_no];
+       UnitInfo *uip = NULL;
        int i;
        uaecptr devicenode = m68k_areg (regs, 3);
        uaecptr parmpacket = m68k_areg (regs, 1);
+       int fssize;
+       uae_u8 *fs;
+
+       if (iscd) {
+               fssize = cdfs_handler_len;
+               fs = cdfs_handler;
+               if (get_long (devicenode + 5 * 4) < 10000)  // stack
+                       put_long (devicenode + 5 * 4, 10000);
+       } else {
+               uip = &mountinfo.ui[unit_no];
+               fssize = uip->rdb_filesyssize;
+               fs = uip->rdb_filesysstore;
+       }
 
        /* copy filesystem loaded from RDB */
        if (get_long (parmpacket + PP_FSPTR)) {
-               for (i = 0; i < uip->rdb_filesyssize; i++)
-                       put_byte (get_long (parmpacket + PP_FSPTR) + i, uip->rdb_filesysstore[i]);
-               xfree (uip->rdb_filesysstore);
+               for (i = 0; i < fssize; i++)
+                       put_byte (get_long (parmpacket + PP_FSPTR) + i, fs[i]);
+       }
+
+       if (!iscd) {
+               xfree (fs);
                uip->rdb_filesysstore = 0;
                uip->rdb_filesyssize = 0;
+               if (m68k_dreg (regs, 3) >= 0)
+                       uip->startup = get_long (devicenode + 28);
        }
-       if (m68k_dreg (regs, 3) >= 0)
-               uip->startup = get_long (devicenode + 28);
+
        return devicenode;
 }
 
@@ -5905,7 +5940,7 @@ static void get_new_device (int type, uaecptr parmpacket, TCHAR **devname, uaecp
        if (*devname == 0 || _tcslen (*devname) == 0) {
                int un = unit_no;
                for (;;) {
-                       _stprintf (buffer, L"DH%d", un++);
+                       _stprintf (buffer, type == FILESYS_CD ? L"CD%d" : L"DH%d", un++);
                        if (!device_isdup (expbase, buffer))
                                break;
                }
@@ -5913,7 +5948,9 @@ static void get_new_device (int type, uaecptr parmpacket, TCHAR **devname, uaecp
                _tcscpy (buffer, *devname);
        }
        *devname_amiga = ds (device_dupfix (expbase, buffer));
-       if (type == FILESYS_VIRTUAL)
+       if (type == FILESYS_CD)
+               write_log (L"FS: mounted CD unit %s\n", buffer);
+       else if (type == FILESYS_VIRTUAL)
                write_log (L"FS: mounted virtual unit %s (%s)\n", buffer, mountinfo.ui[unit_no].rootdir);
        else
                write_log (L"FS: mounted HDF unit %s (%04x-%08x, %s)\n", buffer,
@@ -5926,61 +5963,121 @@ static void get_new_device (int type, uaecptr parmpacket, TCHAR **devname, uaecp
 static uae_u32 REGPARAM2 filesys_dev_storeinfo (TrapContext *context)
 {
        UnitInfo *uip = mountinfo.ui;
-       int no = m68k_dreg (regs, 6);
+       int no = m68k_dreg (regs, 6) & 0x7fffffff;
+       int iscd = (m68k_dreg (regs, 6) & 0x80000000) != 0;
        int unit_no = no & 65535;
        int sub_no = no >> 16;
-       int type = is_hardfile (unit_no);
+       int type;
        uaecptr parmpacket = m68k_areg (regs, 0);
 
-       if (type == FILESYS_HARDFILE_RDB || type == FILESYS_HARDDRIVE) {
-               /* RDB hardfile */
-               uip[unit_no].devno = unit_no;
-               return rdb_mount (&uip[unit_no], unit_no, sub_no, parmpacket);
-       }
-       if (sub_no)
-               return -2;
-       write_log (L"Mounting uaehf.device %d (%d):\n", unit_no, sub_no);
-       get_new_device (type, parmpacket, &uip[unit_no].devname, &uip[unit_no].devname_amiga, unit_no);
-       uip[unit_no].devno = unit_no;
-       put_long (parmpacket, uip[unit_no].devname_amiga);
-       put_long (parmpacket + 8, uip[unit_no].devno);
-       put_long (parmpacket + 12, 0); /* Device flags */
-       put_long (parmpacket + 16, 16); /* Env. size */
-       put_long (parmpacket + 24, 0); /* unused */
-       put_long (parmpacket + 44, 0); /* unused */
-       put_long (parmpacket + 48, 0); /* interleave */
-       put_long (parmpacket + 60, 50); /* Number of buffers */
-       put_long (parmpacket + 64, 0); /* Buffer mem type */
-       put_long (parmpacket + 68, 0x7FFFFFFF); /* largest transfer */
-       put_long (parmpacket + 72, ~1); /* addMask (?) */
-       put_long (parmpacket + 76, uip[unit_no].bootpri); /* bootPri */
-       put_long (parmpacket + 80, 0x444f5300); /* DOS\0 */
-       if (type == FILESYS_VIRTUAL) {
-               put_long (parmpacket + 4, fsdevname);
-               put_long (parmpacket + 20, 1024 >> 2); /* longwords per block */
-               put_long (parmpacket + 28, 15); /* heads */
+       if (iscd) {
+
+               TCHAR *cdname = NULL;
+               uaecptr cdname_amiga;
+               type = FILESYS_CD;
+               write_log (L"Mounting uaescsi.device %d:\n", unit_no);
+               get_new_device (type, parmpacket, &cdname, &cdname_amiga, unit_no);
+               put_long (parmpacket, cdname_amiga);
+               put_long (parmpacket + 4, cdfs_devname);
+               put_long (parmpacket + 8, unit_no);
+               put_long (parmpacket + 12, 0); /* Device flags */
+               put_long (parmpacket + 16, 19); /* Env. size */
+               put_long (parmpacket + 20, 2048 >> 2); /* longwords per block */
+               put_long (parmpacket + 24, 0); /* unused */
+               put_long (parmpacket + 28, 1); /* heads */
                put_long (parmpacket + 32, 1); /* sectors per block */
-               put_long (parmpacket + 36, 127); /* sectors per track */
-               put_long (parmpacket + 40, 2); /* reserved blocks */
+               put_long (parmpacket + 36, 1); /* sectors per track */
+               put_long (parmpacket + 40, 0); /* reserved blocks */
+               put_long (parmpacket + 44, 0); /* unused */
+               put_long (parmpacket + 48, 0); /* interleave */
                put_long (parmpacket + 52, 0); /* lowCyl */
-               put_long (parmpacket + 56, 1); /* hiCyl */
+               put_long (parmpacket + 56, 0); /* hiCyl */
+               put_long (parmpacket + 60, 50); /* Number of buffers */
+               put_long (parmpacket + 64, 0); /* Buffer mem type */
+               put_long (parmpacket + 68, 0x7FFFFFFF); /* largest transfer */
+               put_long (parmpacket + 72, ~1); /* addMask (?) */
+               put_long (parmpacket + 76, -128); /* bootPri */
+               put_long (parmpacket + 80, CDFS_DOSTYPE);
+               put_long (parmpacket + 84, 0); /* baud */
+               put_long (parmpacket + 88, cdfs_control >> 2); /* Control. BSTR! */
+               put_long (parmpacket + 92, 0); /* bootblocks */
+
+               uaecptr fsres = get_long (parmpacket + PP_FSRES);
+               bool cdfs = false;
+               if (fsres) {
+                       uaecptr fsnode = get_long (fsres + 18);
+                       while (get_long (fsnode)) {
+                               if (get_long (fsnode + 14) == CDFS_DOSTYPE) {
+                                       cdfs = true;
+                                       break;
+                               }
+                               fsnode = get_long (fsnode);
+                       }
+               } else {
+                       write_log (L"CDFS: FileSystem.resource not found, this shouldn't happen!\n");
+                       cdfs = true;
+               }
+
+               if (!cdfs) {
+                       put_long (parmpacket + PP_FSSIZE, cdfs_handler_len);
+                       addfakefilesys (parmpacket, CDFS_DOSTYPE);
+               }
+
+               return type;
+
        } else {
-               put_long (parmpacket + 4, ROM_hardfile_resname);
-               put_long (parmpacket + 20, uip[unit_no].hf.blocksize >> 2); /* longwords per block */
-               put_long (parmpacket + 28, uip[unit_no].hf.surfaces); /* heads */
-               put_long (parmpacket + 32, 1); /* sectors per block */
-               put_long (parmpacket + 36, uip[unit_no].hf.secspertrack); /* sectors per track */
-               put_long (parmpacket + 40, uip[unit_no].hf.reservedblocks); /* reserved blocks */
-               put_long (parmpacket + 52, 0); /* lowCyl */
-               put_long (parmpacket + 56, uip[unit_no].hf.nrcyls <= 0 ? 0 : uip[unit_no].hf.nrcyls - 1); /* hiCyl */
+
+               type = is_hardfile (unit_no);
+               if (type == FILESYS_HARDFILE_RDB || type == FILESYS_HARDDRIVE) {
+                       /* RDB hardfile */
+                       uip[unit_no].devno = unit_no;
+                       return rdb_mount (&uip[unit_no], unit_no, sub_no, parmpacket);
+               }
+               if (sub_no)
+                       return -2;
+               write_log (L"Mounting uaehf.device %d (%d):\n", unit_no, sub_no);
+               get_new_device (type, parmpacket, &uip[unit_no].devname, &uip[unit_no].devname_amiga, unit_no);
+               uip[unit_no].devno = unit_no;
+               put_long (parmpacket, uip[unit_no].devname_amiga);
+               put_long (parmpacket + 8, uip[unit_no].devno);
+               put_long (parmpacket + 12, 0); /* Device flags */
+               put_long (parmpacket + 16, 16); /* Env. size */
+               put_long (parmpacket + 24, 0); /* unused */
+               put_long (parmpacket + 44, 0); /* unused */
+               put_long (parmpacket + 48, 0); /* interleave */
+               put_long (parmpacket + 60, 50); /* Number of buffers */
+               put_long (parmpacket + 64, 0); /* Buffer mem type */
+               put_long (parmpacket + 68, 0x7FFFFFFF); /* largest transfer */
+               put_long (parmpacket + 72, ~1); /* addMask (?) */
+               put_long (parmpacket + 76, uip[unit_no].bootpri); /* bootPri */
+               put_long (parmpacket + 80, 0x444f5300); /* DOS\0 */
+               if (type == FILESYS_VIRTUAL) {
+                       put_long (parmpacket + 4, fsdevname);
+                       put_long (parmpacket + 20, 1024 >> 2); /* longwords per block */
+                       put_long (parmpacket + 28, 15); /* heads */
+                       put_long (parmpacket + 32, 1); /* sectors per block */
+                       put_long (parmpacket + 36, 127); /* sectors per track */
+                       put_long (parmpacket + 40, 2); /* reserved blocks */
+                       put_long (parmpacket + 52, 0); /* lowCyl */
+                       put_long (parmpacket + 56, 1); /* hiCyl */
+               } else {
+                       put_long (parmpacket + 4, ROM_hardfile_resname);
+                       put_long (parmpacket + 20, uip[unit_no].hf.blocksize >> 2); /* longwords per block */
+                       put_long (parmpacket + 28, uip[unit_no].hf.surfaces); /* heads */
+                       put_long (parmpacket + 32, 1); /* sectors per block */
+                       put_long (parmpacket + 36, uip[unit_no].hf.secspertrack); /* sectors per track */
+                       put_long (parmpacket + 40, uip[unit_no].hf.reservedblocks); /* reserved blocks */
+                       put_long (parmpacket + 52, 0); /* lowCyl */
+                       put_long (parmpacket + 56, uip[unit_no].hf.nrcyls <= 0 ? 0 : uip[unit_no].hf.nrcyls - 1); /* hiCyl */
+               }
+               if (type == FILESYS_HARDFILE)
+                       type = dofakefilesys (&uip[unit_no], parmpacket);
+               if (uip[unit_no].bootpri < -127)
+                       m68k_dreg (regs, 7) = m68k_dreg (regs, 7) & ~1; /* do not boot */
+               if (uip[unit_no].bootpri < -128)
+                       return -1; /* do not mount */
+               return type;
        }
-       if (type == FILESYS_HARDFILE)
-               type = dofakefilesys (&uip[unit_no], parmpacket);
-       if (uip[unit_no].bootpri < -127)
-               m68k_dreg (regs, 7) = m68k_dreg (regs, 7) & ~1; /* do not boot */
-       if (uip[unit_no].bootpri < -128)
-               return -1; /* do not mount */
-       return type;
 }
 
 static uae_u32 REGPARAM2 mousehack_done (TrapContext *context)
@@ -6052,10 +6149,12 @@ void filesys_install (void)
        uae_sem_init (&singlethread_int_sem, 0, 1);
        uae_sem_init (&test_sem, 0, 1);
 
-       ROM_filesys_resname = ds(L"UAEunixfs.resource");
-       ROM_filesys_resid = ds(L"UAE unixfs 0.4");
+       ROM_filesys_resname = ds_ansi ("UAEunixfs.resource");
+       ROM_filesys_resid = ds_ansi ("UAE unixfs 0.4");
 
-       fsdevname = ds (L"uae.device"); /* does not really exist */
+       fsdevname = ds_ansi ("uae.device"); /* does not really exist */
+       cdfs_devname = ds_ansi ("uaescsi.device");
+       cdfs_control = ds_bstr_ansi ("ROCKRIDGE JOLIET MAYBELOWERCASE SCANINTERVAL=-1 DE=.1 RE=.2");
 
        ROM_filesys_diagentry = here ();
        calltrap (deftrap2 (filesys_diagentry, 0, L"filesys_diagentry"));
@@ -6103,6 +6202,9 @@ void filesys_install (void)
        org (loop);
 }
 
+extern unsigned char cdfs_rom[];
+extern unsigned int cdfs_rom_len;
+
 void filesys_install_code (void)
 {
        uae_u32 a, b;
@@ -6117,8 +6219,13 @@ void filesys_install_code (void)
        EXPANSION_bootcode = a + bootrom_header + bootrom_items * 4 - 4;
        b = a + bootrom_header + 3 * 4 - 4;
        filesys_initcode = a + dlg (b) + bootrom_header - 4;
+
+       cdfs_handler = zfile_load_data (L"cdfs.gz", cdfs_rom, cdfs_rom_len, &cdfs_handler_len);
+
 }
 
+#include "cdrom-handler.cpp"
+
 #include "od-win32/win32_filesys.cpp"
 
 static uae_u8 *restore_filesys_hardfile (UnitInfo *ui, uae_u8 *src)
index 4a40c40e65c30cc1c7c01cb27ec7356d41d97304..191e5c1890dfd2c51296a20b53591a22cafcea06 100644 (file)
@@ -1,13 +1,13 @@
  db(0x00); db(0x00); db(0x00); db(0x10); db(0x00); db(0x00); db(0x00); db(0x00);
- db(0x00); db(0x00); db(0x00); db(0x09); db(0x60); db(0x00); db(0x0a); db(0x66);
- db(0x00); db(0x00); db(0x08); db(0x48); db(0x00); db(0x00); db(0x00); db(0xe0);
- db(0x00); db(0x00); db(0x02); db(0x70); db(0x00); db(0x00); db(0x00); db(0x24);
- db(0x00); db(0x00); db(0x03); db(0x2c); db(0x00); db(0x00); db(0x0e); db(0x42);
- db(0x00); db(0x00); db(0x12); db(0xd2); db(0x43); db(0xfa); db(0x17); db(0xc0);
+ db(0x00); db(0x00); db(0x00); db(0x09); db(0x60); db(0x00); db(0x0b); db(0x4a);
+ db(0x00); db(0x00); db(0x09); db(0x2c); db(0x00); db(0x00); db(0x00); db(0xe0);
+ db(0x00); db(0x00); db(0x02); db(0x9c); db(0x00); db(0x00); db(0x00); db(0x24);
+ db(0x00); db(0x00); db(0x03); db(0x58); db(0x00); db(0x00); db(0x0f); db(0x26);
+ db(0x00); db(0x00); db(0x13); db(0xb6); db(0x43); db(0xfa); db(0x18); db(0xa4);
  db(0x4e); db(0xae); db(0xff); db(0xa0); db(0x20); db(0x40); db(0x20); db(0x28);
  db(0x00); db(0x16); db(0x20); db(0x40); db(0x4e); db(0x90); db(0x4e); db(0x75);
  db(0x48); db(0xe7); db(0xe0); db(0xe2); db(0x30); db(0x3c); db(0xff); db(0x38);
- db(0x72); db(0x11); db(0x61); db(0x00); db(0x0c); db(0x6a); db(0x4e); db(0x90);
+ db(0x72); db(0x11); db(0x61); db(0x00); db(0x0d); db(0x4e); db(0x4e); db(0x90);
  db(0x4a); db(0x80); db(0x67); db(0x4c); db(0x2c); db(0x78); db(0x00); db(0x04);
  db(0x0c); db(0x6e); db(0x00); db(0x25); db(0x00); db(0x14); db(0x65); db(0x40);
  db(0x70); db(0x14); db(0x24); db(0x00); db(0x72); db(0x01); db(0x4e); db(0xae);
  db(0x20); db(0x68); db(0x00); db(0x02); db(0x2f); db(0x08); db(0x4e); db(0x90);
  db(0x20); db(0x5f); db(0x58); db(0x8f); db(0x48); db(0xe7); db(0xff); db(0x7e);
  db(0x22); db(0x4e); db(0x20); db(0x08); db(0x30); db(0x7c); db(0xff); db(0xb8);
- db(0x4e); db(0xae); db(0xfe); db(0x5c); db(0x61); db(0x00); db(0x12); db(0x14);
- db(0x61); db(0x00); db(0x15); db(0xdc); db(0x4c); db(0xdf); db(0x7e); db(0xff);
+ db(0x4e); db(0xae); db(0xfe); db(0x5c); db(0x61); db(0x00); db(0x12); db(0xf8);
+ db(0x61); db(0x00); db(0x16); db(0xc0); db(0x4c); db(0xdf); db(0x7e); db(0xff);
  db(0x4e); db(0x75); db(0x00); db(0x00); db(0x08); db(0x00); db(0x00); db(0x02);
  db(0x67); db(0x06); db(0x4e); db(0xb9); db(0x00); db(0xf0); db(0x00); db(0x00);
  db(0x4e); db(0xf9); db(0x00); db(0xf0); db(0x00); db(0x00); db(0x00); db(0x00);
  db(0x48); db(0xe7); db(0xff); db(0xfe); db(0x2c); db(0x78); db(0x00); db(0x04);
- db(0x30); db(0x3c); db(0xff); db(0xfc); db(0x61); db(0x00); db(0x0b); db(0xc0);
- db(0x2a); db(0x50); db(0x43); db(0xfa); db(0x17); db(0x21); db(0x70); db(0x24);
+ db(0x30); db(0x3c); db(0xff); db(0xfc); db(0x61); db(0x00); db(0x0c); db(0xa4);
+ db(0x2a); db(0x50); db(0x43); db(0xfa); db(0x18); db(0x05); db(0x70); db(0x24);
  db(0x7a); db(0x01); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x4a); db(0x80);
- db(0x66); db(0x0c); db(0x43); db(0xfa); db(0x17); db(0x11); db(0x70); db(0x00);
+ db(0x66); db(0x0c); db(0x43); db(0xfa); db(0x17); db(0xf5); db(0x70); db(0x00);
  db(0x7a); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x28); db(0x40);
- db(0x4a); db(0xad); db(0x01); db(0x0c); db(0x67); db(0x5a); db(0x20); db(0x3c);
- db(0x00); db(0x00); db(0x02); db(0x2c); db(0x22); db(0x3c); db(0x00); db(0x01);
- db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x26); db(0x40);
- db(0x27); db(0x4c); db(0x01); db(0x9c); db(0x7c); db(0x00); db(0xbc); db(0xad);
- db(0x01); db(0x0c); db(0x64); db(0x2c); db(0x2f); db(0x06); db(0x7e); db(0x01);
- db(0x4a); db(0x45); db(0x67); db(0x04); db(0x08); db(0xc7); db(0x00); db(0x02);
- db(0x2f); db(0x0b); db(0x20); db(0x4b); db(0x61); db(0x00); db(0x07); db(0x02);
- db(0x26); db(0x5f); db(0x0c); db(0x80); db(0xff); db(0xff); db(0xff); db(0xfe);
- db(0x67); db(0x08); db(0x48); db(0x46); db(0x52); db(0x46); db(0x48); db(0x46);
- db(0x60); db(0xdc); db(0x2c); db(0x1f); db(0x52); db(0x46); db(0x60); db(0xce);
- db(0x2c); db(0x78); db(0x00); db(0x04); db(0x22); db(0x4b); db(0x20); db(0x3c);
- db(0x00); db(0x00); db(0x02); db(0x2c); db(0x4e); db(0xae); db(0xff); db(0x2e);
- db(0x2c); db(0x78); db(0x00); db(0x04); db(0x22); db(0x4c); db(0x4e); db(0xae);
- db(0xfe); db(0x62); db(0x78); db(0x03); db(0x0c); db(0x6e); db(0x00); db(0x24);
- db(0x00); db(0x14); db(0x65); db(0x04); db(0x00); db(0x44); db(0x01); db(0x00);
- db(0x43); db(0xf9); db(0x00); db(0x21); db(0x00); db(0x00); db(0x4e); db(0xae);
- db(0xfd); db(0xea); db(0x4a); db(0x80); db(0x66); db(0x20); db(0x30); db(0x3c);
- db(0xff); db(0x80); db(0x61); db(0x00); db(0x0b); db(0x12); db(0x4e); db(0x90);
- db(0x22); db(0x04); db(0x74); db(0xf6); db(0x20); db(0x7c); db(0x00); db(0x20);
- db(0x00); db(0x00); db(0x90); db(0x88); db(0x65); db(0x08); db(0x67); db(0x06);
- db(0x93); db(0xc9); db(0x4e); db(0xae); db(0xfd); db(0x96); db(0x30); db(0x3c);
- db(0xff); db(0x80); db(0x61); db(0x00); db(0x0a); db(0xf2); db(0x4e); db(0x90);
- db(0x20); db(0x49); db(0x20); db(0x01); db(0x67); db(0x0c); db(0x22); db(0x04);
- db(0x74); db(0xfb); db(0x43); db(0xfa); db(0x16); db(0x6f); db(0x4e); db(0xae);
- db(0xfd); db(0x96); db(0x41); db(0xfa); db(0x15); db(0xe6); db(0x43); db(0xfa);
- db(0x00); db(0x54); db(0x70); db(0x0a); db(0x61); db(0x00); db(0x0b); db(0xac);
- db(0x22); db(0x40); db(0x72); db(0x01); db(0x30); db(0x3c); db(0xff); db(0x48);
- db(0x61); db(0x00); db(0x0a); db(0xc4); db(0x4e); db(0x90); db(0x4c); db(0xdf);
- db(0x7f); db(0xff); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x38); db(0x22);
- db(0x2c); db(0x78); db(0x00); db(0x04); db(0x24); db(0x00); db(0x28); db(0x01);
- db(0x26); db(0x09); db(0x24); db(0x48); db(0x43); db(0xfa); db(0x15); db(0xe0);
- db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x4a); db(0x80);
- db(0x67); db(0x14); db(0x2c); db(0x40); db(0x22); db(0x0a); db(0xe4); db(0x8b);
- db(0x4e); db(0xae); db(0xff); db(0x76); db(0x22); db(0x4e); db(0x2c); db(0x78);
- db(0x00); db(0x04); db(0x4e); db(0xae); db(0xfe); db(0x62); db(0x4c); db(0xdf);
- db(0x44); db(0x1c); db(0x4e); db(0x75); db(0x2c); db(0x78); db(0x00); db(0x04);
- db(0x70); db(0x00); db(0x08); db(0xc0); db(0x00); db(0x0d); db(0x4e); db(0xae);
- db(0xfe); db(0xc2); db(0x41); db(0xfa); db(0x15); db(0x91); db(0x43); db(0xfa);
- db(0x00); db(0x14); db(0x70); db(0x0f); db(0x22); db(0x3c); db(0x00); db(0x00);
- db(0x1f); db(0x40); db(0x61); db(0x00); db(0xff); db(0xa8); db(0x60); db(0xdc);
- db(0x00); db(0x00); db(0x00); db(0x10); db(0x00); db(0x00); db(0x00); db(0x00);
- db(0x72); db(0x02); db(0x30); db(0x3c); db(0xff); db(0x48); db(0x61); db(0x00);
- db(0x0a); db(0x4e); db(0x4e); db(0x90); db(0x22); db(0x00); db(0x6b); db(0x04);
- db(0x61); db(0x00); db(0x07); db(0x8a); db(0x70); db(0x00); db(0x4e); db(0x75);
- db(0x48); db(0xe7); db(0x00); db(0x20); db(0x30); db(0x3c); db(0xff); db(0x50);
- db(0x61); db(0x00); db(0x0a); db(0x34); db(0x70); db(0x00); db(0x4e); db(0x90);
- db(0x4a); db(0x80); db(0x67); db(0x00); db(0x00); db(0xa2); db(0x2c); db(0x78);
- db(0x00); db(0x04); db(0x30); db(0x3c); db(0xff); db(0x50); db(0x61); db(0x00);
- db(0x0a); db(0x1e); db(0x70); db(0x02); db(0x4e); db(0x90); db(0x0c); db(0x40);
- db(0x00); db(0x01); db(0x6d); db(0x00); db(0x00); db(0x7c); db(0x6e); db(0x06);
- db(0x4e); db(0xae); db(0xfe); db(0x92); db(0x60); db(0xe4); db(0x0c); db(0x40);
- db(0x00); db(0x02); db(0x6e); db(0x08); db(0x20); db(0x01); db(0x4e); db(0xae);
- db(0xfe); db(0xbc); db(0x60); db(0xd6); db(0x0c); db(0x40); db(0x00); db(0x03);
- db(0x6e); db(0x06); db(0x4e); db(0xae); db(0xfe); db(0x86); db(0x60); db(0xca);
- db(0x0c); db(0x40); db(0x00); db(0x04); db(0x6e); db(0x06); db(0x4e); db(0xae);
- db(0xff); db(0x4c); db(0x60); db(0xbe); db(0x0c); db(0x40); db(0x00); db(0x05);
- db(0x6e); db(0x46); db(0x48); db(0xe7); db(0x00); db(0xc0); db(0x70); db(0x26);
- db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae);
- db(0xff); db(0x3a); db(0x4c); db(0xdf); db(0x03); db(0x00); db(0x24); db(0x40);
- db(0x15); db(0x7c); db(0x00); db(0x08); db(0x00); db(0x08); db(0x25); db(0x48);
- db(0x00); db(0x0e); db(0x35); db(0x7c); db(0x00); db(0x26); db(0x00); db(0x12);
- db(0x25); db(0x7c); db(0x40); db(0x00); db(0x00); db(0x00); db(0x00); db(0x14);
- db(0x35); db(0x7c); db(0x12); db(0x34); db(0x00); db(0x18); db(0x25); db(0x49);
- db(0x00); db(0x1a); db(0x20); db(0x69); db(0x00); db(0x10); db(0x22); db(0x4a);
- db(0x4e); db(0xae); db(0xfe); db(0x92); db(0x60); db(0x00); db(0xff); db(0x74);
- db(0x30); db(0x3c); db(0xff); db(0x50); db(0x61); db(0x00); db(0x09); db(0x90);
- db(0x70); db(0x04); db(0x4e); db(0x90); db(0x70); db(0x01); db(0x4c); db(0xdf);
- db(0x04); db(0x00); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0xc0); db(0xc0);
- db(0x61); db(0x00); db(0xfd); db(0x06); db(0x70); db(0x1a); db(0x22); db(0x3c);
+ db(0x4a); db(0xad); db(0x01); db(0x0c); db(0x67); db(0x00); db(0x00); db(0x84);
+ db(0x20); db(0x3c); db(0x00); db(0x00); db(0x02); db(0x2c); db(0x22); db(0x3c);
  db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a);
- db(0x22); db(0x40); db(0x41); db(0xfa); db(0x14); db(0x67); db(0x23); db(0x48);
- db(0x00); db(0x0a); db(0x41); db(0xfa); db(0xff); db(0x24); db(0x23); db(0x48);
- db(0x00); db(0x0e); db(0x41); db(0xfa); db(0xff); db(0x1c); db(0x23); db(0x48);
- db(0x00); db(0x12); db(0x33); db(0x7c); db(0x02); db(0x14); db(0x00); db(0x08);
- db(0x70); db(0x03); db(0x4e); db(0xae); db(0xff); db(0x58); db(0x30); db(0x3a);
- db(0x0a); db(0xda); db(0x67); db(0x04); db(0x61); db(0x00); db(0x0a); db(0x78);
- db(0x4c); db(0xdf); db(0x03); db(0x03); db(0x4e); db(0x75); db(0x48); db(0xe7);
- db(0xc0); db(0xf2); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x24); db(0x48);
- db(0x26); db(0x49); db(0x20); db(0x3c); db(0x00); db(0x00); db(0x00); db(0xbe);
+ db(0x26); db(0x40); db(0x27); db(0x4c); db(0x01); db(0x9c); db(0x7c); db(0x00);
+ db(0xbc); db(0x6d); db(0x01); db(0x0e); db(0x64); db(0x2c); db(0x2f); db(0x06);
+ db(0x7e); db(0x01); db(0x4a); db(0x45); db(0x67); db(0x04); db(0x08); db(0xc7);
+ db(0x00); db(0x02); db(0x2f); db(0x0b); db(0x20); db(0x4b); db(0x61); db(0x00);
+ db(0x07); db(0xe4); db(0x26); db(0x5f); db(0x0c); db(0x80); db(0xff); db(0xff);
+ db(0xff); db(0xfe); db(0x67); db(0x08); db(0x48); db(0x46); db(0x52); db(0x46);
+ db(0x48); db(0x46); db(0x60); db(0xdc); db(0x2c); db(0x1f); db(0x52); db(0x46);
+ db(0x60); db(0xce); db(0x4a); db(0x45); db(0x67); db(0x24); db(0x7c); db(0x00);
+ db(0x30); db(0x2d); db(0x01); db(0x0c); db(0x0d); db(0x00); db(0x67); db(0x12);
+ db(0x48); db(0xe7); db(0x02); db(0x10); db(0x20); db(0x4b); db(0x08); db(0xc6);
+ db(0x00); db(0x1f); db(0x61); db(0x00); db(0x06); db(0xf8); db(0x4c); db(0xdf);
+ db(0x08); db(0x40); db(0x52); db(0x46); db(0x0c); db(0x46); db(0x00); db(0x08);
+ db(0x66); db(0xde); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x22); db(0x4b);
+ db(0x20); db(0x3c); db(0x00); db(0x00); db(0x02); db(0x2c); db(0x4e); db(0xae);
+ db(0xff); db(0x2e); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x22); db(0x4c);
+ db(0x4e); db(0xae); db(0xfe); db(0x62); db(0x78); db(0x03); db(0x0c); db(0x6e);
+ db(0x00); db(0x24); db(0x00); db(0x14); db(0x65); db(0x04); db(0x00); db(0x44);
+ db(0x01); db(0x00); db(0x43); db(0xf9); db(0x00); db(0x21); db(0x00); db(0x00);
+ db(0x4e); db(0xae); db(0xfd); db(0xea); db(0x4a); db(0x80); db(0x66); db(0x20);
+ db(0x30); db(0x3c); db(0xff); db(0x80); db(0x61); db(0x00); db(0x0b); db(0xcc);
+ db(0x4e); db(0x90); db(0x22); db(0x04); db(0x74); db(0xf6); db(0x20); db(0x7c);
+ db(0x00); db(0x20); db(0x00); db(0x00); db(0x90); db(0x88); db(0x65); db(0x08);
+ db(0x67); db(0x06); db(0x93); db(0xc9); db(0x4e); db(0xae); db(0xfd); db(0x96);
+ db(0x30); db(0x3c); db(0xff); db(0x80); db(0x61); db(0x00); db(0x0b); db(0xac);
+ db(0x4e); db(0x90); db(0x20); db(0x49); db(0x20); db(0x01); db(0x67); db(0x0c);
+ db(0x22); db(0x04); db(0x74); db(0xfb); db(0x43); db(0xfa); db(0x17); db(0x29);
+ db(0x4e); db(0xae); db(0xfd); db(0x96); db(0x41); db(0xfa); db(0x16); db(0xa0);
+ db(0x43); db(0xfa); db(0x00); db(0x54); db(0x70); db(0x0a); db(0x61); db(0x00);
+ db(0x0c); db(0x66); db(0x22); db(0x40); db(0x72); db(0x01); db(0x30); db(0x3c);
+ db(0xff); db(0x48); db(0x61); db(0x00); db(0x0b); db(0x7e); db(0x4e); db(0x90);
+ db(0x4c); db(0xdf); db(0x7f); db(0xff); db(0x4e); db(0x75); db(0x48); db(0xe7);
+ db(0x38); db(0x22); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x24); db(0x00);
+ db(0x28); db(0x01); db(0x26); db(0x09); db(0x24); db(0x48); db(0x43); db(0xfa);
+ db(0x16); db(0x9a); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8);
+ db(0x4a); db(0x80); db(0x67); db(0x14); db(0x2c); db(0x40); db(0x22); db(0x0a);
+ db(0xe4); db(0x8b); db(0x4e); db(0xae); db(0xff); db(0x76); db(0x22); db(0x4e);
+ db(0x2c); db(0x78); db(0x00); db(0x04); db(0x4e); db(0xae); db(0xfe); db(0x62);
+ db(0x4c); db(0xdf); db(0x44); db(0x1c); db(0x4e); db(0x75); db(0x2c); db(0x78);
+ db(0x00); db(0x04); db(0x70); db(0x00); db(0x08); db(0xc0); db(0x00); db(0x0d);
+ db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x41); db(0xfa); db(0x16); db(0x4b);
+ db(0x43); db(0xfa); db(0x00); db(0x16); db(0x70); db(0x0f); db(0x22); db(0x3c);
+ db(0x00); db(0x00); db(0x1f); db(0x40); db(0x61); db(0x00); db(0xff); db(0xa8);
+ db(0x60); db(0xdc); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x10);
+ db(0x00); db(0x00); db(0x00); db(0x00); db(0x72); db(0x02); db(0x30); db(0x3c);
+ db(0xff); db(0x48); db(0x61); db(0x00); db(0x0b); db(0x06); db(0x4e); db(0x90);
+ db(0x22); db(0x00); db(0x6b); db(0x04); db(0x61); db(0x00); db(0x08); db(0x42);
+ db(0x70); db(0x00); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x00); db(0x20);
+ db(0x30); db(0x3c); db(0xff); db(0x50); db(0x61); db(0x00); db(0x0a); db(0xec);
+ db(0x70); db(0x00); db(0x4e); db(0x90); db(0x4a); db(0x80); db(0x67); db(0x00);
+ db(0x00); db(0xa2); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x30); db(0x3c);
+ db(0xff); db(0x50); db(0x61); db(0x00); db(0x0a); db(0xd6); db(0x70); db(0x02);
+ db(0x4e); db(0x90); db(0x0c); db(0x40); db(0x00); db(0x01); db(0x6d); db(0x00);
+ db(0x00); db(0x7c); db(0x6e); db(0x06); db(0x4e); db(0xae); db(0xfe); db(0x92);
+ db(0x60); db(0xe4); db(0x0c); db(0x40); db(0x00); db(0x02); db(0x6e); db(0x08);
+ db(0x20); db(0x01); db(0x4e); db(0xae); db(0xfe); db(0xbc); db(0x60); db(0xd6);
+ db(0x0c); db(0x40); db(0x00); db(0x03); db(0x6e); db(0x06); db(0x4e); db(0xae);
+ db(0xfe); db(0x86); db(0x60); db(0xca); db(0x0c); db(0x40); db(0x00); db(0x04);
+ db(0x6e); db(0x06); db(0x4e); db(0xae); db(0xff); db(0x4c); db(0x60); db(0xbe);
+ db(0x0c); db(0x40); db(0x00); db(0x05); db(0x6e); db(0x46); db(0x48); db(0xe7);
+ db(0x00); db(0xc0); db(0x70); db(0x26); db(0x22); db(0x3c); db(0x00); db(0x01);
+ db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x4c); db(0xdf);
+ db(0x03); db(0x00); db(0x24); db(0x40); db(0x15); db(0x7c); db(0x00); db(0x08);
+ db(0x00); db(0x08); db(0x25); db(0x48); db(0x00); db(0x0e); db(0x35); db(0x7c);
+ db(0x00); db(0x26); db(0x00); db(0x12); db(0x25); db(0x7c); db(0x40); db(0x00);
+ db(0x00); db(0x00); db(0x00); db(0x14); db(0x35); db(0x7c); db(0x12); db(0x34);
+ db(0x00); db(0x18); db(0x25); db(0x49); db(0x00); db(0x1a); db(0x20); db(0x69);
+ db(0x00); db(0x10); db(0x22); db(0x4a); db(0x4e); db(0xae); db(0xfe); db(0x92);
+ db(0x60); db(0x00); db(0xff); db(0x74); db(0x30); db(0x3c); db(0xff); db(0x50);
+ db(0x61); db(0x00); db(0x0a); db(0x48); db(0x70); db(0x04); db(0x4e); db(0x90);
+ db(0x70); db(0x01); db(0x4c); db(0xdf); db(0x04); db(0x00); db(0x4e); db(0x75);
+ db(0x48); db(0xe7); db(0xc0); db(0xc0); db(0x61); db(0x00); db(0xfc); db(0xda);
+ db(0x70); db(0x1a); db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01);
+ db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x22); db(0x40); db(0x41); db(0xfa);
+ db(0x15); db(0x1f); db(0x23); db(0x48); db(0x00); db(0x0a); db(0x41); db(0xfa);
+ db(0xff); db(0x24); db(0x23); db(0x48); db(0x00); db(0x0e); db(0x41); db(0xfa);
+ db(0xff); db(0x1c); db(0x23); db(0x48); db(0x00); db(0x12); db(0x33); db(0x7c);
+ db(0x02); db(0x14); db(0x00); db(0x08); db(0x70); db(0x03); db(0x4e); db(0xae);
+ db(0xff); db(0x58); db(0x30); db(0x3a); db(0x0b); db(0x92); db(0x67); db(0x04);
+ db(0x61); db(0x00); db(0x0b); db(0x30); db(0x4c); db(0xdf); db(0x03); db(0x03);
+ db(0x4e); db(0x75); db(0x48); db(0xe7); db(0xc0); db(0xf2); db(0x2c); db(0x78);
+ db(0x00); db(0x04); db(0x24); db(0x48); db(0x26); db(0x49); db(0x20); db(0x3c);
+ db(0x00); db(0x00); db(0x00); db(0xbe); db(0x22); db(0x3c); db(0x00); db(0x01);
+ db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x20); db(0x40);
+ db(0x70); db(0x00); db(0x43); db(0xeb); db(0x01); db(0xa0); db(0x11); db(0xb1);
+ db(0x00); db(0x00); db(0x00); db(0x0e); db(0x52); db(0x40); db(0x0c); db(0x40);
+ db(0x00); db(0x8c); db(0x66); db(0xf2); db(0x20); db(0x0a); db(0xe4); db(0x88);
+ db(0x21); db(0x40); db(0x00); db(0x36); db(0x22); db(0x48); db(0x41); db(0xfa);
+ db(0x14); db(0xaf); db(0x23); db(0x48); db(0x00); db(0x0a); db(0x20); db(0x6b);
+ db(0x01); db(0x98); db(0x41); db(0xe8); db(0x00); db(0x12); db(0x4e); db(0xae);
+ db(0xff); db(0x10); db(0x4c); db(0xdf); db(0x4f); db(0x03); db(0x4e); db(0x75);
+ db(0x48); db(0xe7); db(0x7f); db(0x7e); db(0x2c); db(0x78); db(0x00); db(0x04);
+ db(0x24); db(0x48); db(0x0c); db(0x9a); db(0x00); db(0x00); db(0x03); db(0xf3);
+ db(0x66); db(0x00); db(0x00); db(0xe4); db(0x50); db(0x8a); db(0x2e); db(0x2a);
+ db(0x00); db(0x04); db(0x9e); db(0x92); db(0x50); db(0x8a); db(0x52); db(0x87);
+ db(0x26); db(0x4a); db(0x20); db(0x07); db(0xd0); db(0x80); db(0xd0); db(0x80);
+ db(0xd7); db(0xc0); db(0x28); db(0x4a); db(0x9b); db(0xcd); db(0x7c); db(0x00);
+ db(0x24); db(0x12); db(0x72); db(0x01); db(0x08); db(0x02); db(0x00); db(0x1e);
+ db(0x67); db(0x04); db(0x08); db(0xc1); db(0x00); db(0x01); db(0x08); db(0xc1);
+ db(0x00); db(0x10); db(0xe5); db(0x8a); db(0x20); db(0x02); db(0x66); db(0x04);
+ db(0x42); db(0x9a); db(0x60); db(0x1e); db(0x50); db(0x80); db(0x4e); db(0xae);
+ db(0xff); db(0x3a); db(0x4a); db(0x80); db(0x67); db(0x00); db(0x00); db(0xa0);
+ db(0x20); db(0x40); db(0x20); db(0xc2); db(0x24); db(0xc8); db(0x22); db(0x0d);
+ db(0x67); db(0x06); db(0x20); db(0x08); db(0xe4); db(0x88); db(0x2a); db(0x80);
+ db(0x2a); db(0x48); db(0x52); db(0x86); db(0xbe); db(0x86); db(0x66); db(0xc0);
+ db(0x7c); db(0x00); db(0x22); db(0x06); db(0xd2); db(0x81); db(0xd2); db(0x81);
+ db(0x20); db(0x74); db(0x18); db(0x00); db(0x58); db(0x88); db(0x26); db(0x1b);
+ db(0x28); db(0x1b); db(0xe5); db(0x8c); db(0x0c); db(0x83); db(0x00); db(0x00);
+ db(0x03); db(0xe9); db(0x67); db(0x08); db(0x0c); db(0x83); db(0x00); db(0x00);
+ db(0x03); db(0xea); db(0x66); db(0x0c); db(0x20); db(0x04); db(0x4a); db(0x80);
+ db(0x67); db(0x0e); db(0x10); db(0xdb); db(0x53); db(0x80); db(0x60); db(0xf6);
+ db(0x0c); db(0x83); db(0x00); db(0x00); db(0x03); db(0xeb); db(0x66); db(0x4e);
+ db(0x26); db(0x1b); db(0x0c); db(0x83); db(0x00); db(0x00); db(0x03); db(0xec);
+ db(0x66); db(0x28); db(0x22); db(0x06); db(0xd2); db(0x81); db(0xd2); db(0x81);
+ db(0x20); db(0x74); db(0x18); db(0x00); db(0x58); db(0x88); db(0x20); db(0x1b);
+ db(0x67); db(0xe6); db(0x22); db(0x1b); db(0xd2); db(0x81); db(0xd2); db(0x81);
+ db(0x26); db(0x34); db(0x18); db(0x00); db(0x58); db(0x83); db(0x24); db(0x1b);
+ db(0xd7); db(0xb0); db(0x28); db(0x00); db(0x53); db(0x80); db(0x66); db(0xf6);
+ db(0x60); db(0xe4); db(0x0c); db(0x83); db(0x00); db(0x00); db(0x03); db(0xf2);
+ db(0x66); db(0x14); db(0x52); db(0x86); db(0xbe); db(0x86); db(0x66); db(0x00);
+ db(0xff); db(0x8a); db(0x7e); db(0x01); db(0x20); db(0x54); db(0x20); db(0x07);
+ db(0x4c); db(0xdf); db(0x7e); db(0xfe); db(0x4e); db(0x75); db(0x7e); db(0x00);
+ db(0x60); db(0xf4); db(0x48); db(0xe7); db(0x40); db(0xe2); db(0x2c); db(0x78);
+ db(0x00); db(0x04); db(0x41); db(0xee); db(0x01); db(0x50); db(0x20); db(0x50);
+ db(0x4a); db(0x90); db(0x67); db(0x1a); db(0x22); db(0x68); db(0x00); db(0x0a);
+ db(0x45); db(0xfa); db(0x14); db(0x01); db(0x10); db(0x19); db(0x12); db(0x1a);
+ db(0xb0); db(0x01); db(0x66); db(0x06); db(0x4a); db(0x00); db(0x67); db(0x42);
+ db(0x60); db(0xf2); db(0x20); db(0x50); db(0x60); db(0xe2); db(0x70); db(0x20);
  db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae);
- db(0xff); db(0x3a); db(0x20); db(0x40); db(0x70); db(0x00); db(0x43); db(0xeb);
- db(0x01); db(0xa0); db(0x11); db(0xb1); db(0x00); db(0x00); db(0x00); db(0x0e);
- db(0x52); db(0x40); db(0x0c); db(0x40); db(0x00); db(0x8c); db(0x66); db(0xf2);
- db(0x20); db(0x0a); db(0xe4); db(0x88); db(0x21); db(0x40); db(0x00); db(0x36);
- db(0x22); db(0x48); db(0x41); db(0xfa); db(0x13); db(0xf7); db(0x23); db(0x48);
- db(0x00); db(0x0a); db(0x20); db(0x6b); db(0x01); db(0x98); db(0x41); db(0xe8);
- db(0x00); db(0x12); db(0x4e); db(0xae); db(0xff); db(0x10); db(0x4c); db(0xdf);
- db(0x4f); db(0x03); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x7f); db(0x7e);
- db(0x2c); db(0x78); db(0x00); db(0x04); db(0x24); db(0x48); db(0x0c); db(0x9a);
- db(0x00); db(0x00); db(0x03); db(0xf3); db(0x66); db(0x00); db(0x00); db(0xe4);
- db(0x50); db(0x8a); db(0x2e); db(0x2a); db(0x00); db(0x04); db(0x9e); db(0x92);
- db(0x50); db(0x8a); db(0x52); db(0x87); db(0x26); db(0x4a); db(0x20); db(0x07);
- db(0xd0); db(0x80); db(0xd0); db(0x80); db(0xd7); db(0xc0); db(0x28); db(0x4a);
- db(0x9b); db(0xcd); db(0x7c); db(0x00); db(0x24); db(0x12); db(0x72); db(0x01);
- db(0x08); db(0x02); db(0x00); db(0x1e); db(0x67); db(0x04); db(0x08); db(0xc1);
- db(0x00); db(0x01); db(0x08); db(0xc1); db(0x00); db(0x10); db(0xe5); db(0x8a);
- db(0x20); db(0x02); db(0x66); db(0x04); db(0x42); db(0x9a); db(0x60); db(0x1e);
- db(0x50); db(0x80); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x4a); db(0x80);
- db(0x67); db(0x00); db(0x00); db(0xa0); db(0x20); db(0x40); db(0x20); db(0xc2);
- db(0x24); db(0xc8); db(0x22); db(0x0d); db(0x67); db(0x06); db(0x20); db(0x08);
- db(0xe4); db(0x88); db(0x2a); db(0x80); db(0x2a); db(0x48); db(0x52); db(0x86);
- db(0xbe); db(0x86); db(0x66); db(0xc0); db(0x7c); db(0x00); db(0x22); db(0x06);
- db(0xd2); db(0x81); db(0xd2); db(0x81); db(0x20); db(0x74); db(0x18); db(0x00);
- db(0x58); db(0x88); db(0x26); db(0x1b); db(0x28); db(0x1b); db(0xe5); db(0x8c);
- db(0x0c); db(0x83); db(0x00); db(0x00); db(0x03); db(0xe9); db(0x67); db(0x08);
- db(0x0c); db(0x83); db(0x00); db(0x00); db(0x03); db(0xea); db(0x66); db(0x0c);
- db(0x20); db(0x04); db(0x4a); db(0x80); db(0x67); db(0x0e); db(0x10); db(0xdb);
- db(0x53); db(0x80); db(0x60); db(0xf6); db(0x0c); db(0x83); db(0x00); db(0x00);
- db(0x03); db(0xeb); db(0x66); db(0x4e); db(0x26); db(0x1b); db(0x0c); db(0x83);
- db(0x00); db(0x00); db(0x03); db(0xec); db(0x66); db(0x28); db(0x22); db(0x06);
- db(0xd2); db(0x81); db(0xd2); db(0x81); db(0x20); db(0x74); db(0x18); db(0x00);
- db(0x58); db(0x88); db(0x20); db(0x1b); db(0x67); db(0xe6); db(0x22); db(0x1b);
- db(0xd2); db(0x81); db(0xd2); db(0x81); db(0x26); db(0x34); db(0x18); db(0x00);
- db(0x58); db(0x83); db(0x24); db(0x1b); db(0xd7); db(0xb0); db(0x28); db(0x00);
- db(0x53); db(0x80); db(0x66); db(0xf6); db(0x60); db(0xe4); db(0x0c); db(0x83);
- db(0x00); db(0x00); db(0x03); db(0xf2); db(0x66); db(0x14); db(0x52); db(0x86);
- db(0xbe); db(0x86); db(0x66); db(0x00); db(0xff); db(0x8a); db(0x7e); db(0x01);
- db(0x20); db(0x54); db(0x20); db(0x07); db(0x4c); db(0xdf); db(0x7e); db(0xfe);
- db(0x4e); db(0x75); db(0x7e); db(0x00); db(0x60); db(0xf4); db(0x48); db(0xe7);
- db(0x40); db(0xe2); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x41); db(0xee);
- db(0x01); db(0x50); db(0x20); db(0x50); db(0x4a); db(0x90); db(0x67); db(0x1a);
- db(0x22); db(0x68); db(0x00); db(0x0a); db(0x45); db(0xfa); db(0x13); db(0x49);
- db(0x10); db(0x19); db(0x12); db(0x1a); db(0xb0); db(0x01); db(0x66); db(0x06);
- db(0x4a); db(0x00); db(0x67); db(0x42); db(0x60); db(0xf2); db(0x20); db(0x50);
- db(0x60); db(0xe2); db(0x70); db(0x20); db(0x22); db(0x3c); db(0x00); db(0x01);
- db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x24); db(0x40);
- db(0x15); db(0x7c); db(0x00); db(0x08); db(0x00); db(0x08); db(0x41); db(0xfa);
- db(0x13); db(0x1f); db(0x25); db(0x48); db(0x00); db(0x0a); db(0x41); db(0xfa);
- db(0x12); db(0x9b); db(0x25); db(0x48); db(0x00); db(0x0e); db(0x41); db(0xea);
- db(0x00); db(0x12); db(0x20); db(0x88); db(0x58); db(0x90); db(0x21); db(0x48);
- db(0x00); db(0x08); db(0x41); db(0xee); db(0x01); db(0x50); db(0x22); db(0x4a);
- db(0x4e); db(0xae); db(0xff); db(0x0a); db(0x20); db(0x4a); db(0x20); db(0x08);
- db(0x4c); db(0xdf); db(0x47); db(0x02); db(0x4e); db(0x75); db(0x48); db(0xe7);
- db(0x01); db(0x02); db(0x2e); db(0x00); db(0x4a); db(0x2b); db(0x00); db(0x4c);
- db(0x67); db(0x7c); db(0x2c); db(0x6b); db(0x00); db(0xa0); db(0x0c); db(0x6e);
- db(0x00); db(0x25); db(0x00); db(0x14); db(0x65); db(0x3e); db(0x72); db(0x0e);
- db(0x4e); db(0xae); db(0xfd); db(0x66); db(0x02); db(0x80); db(0xff); db(0xff);
- db(0xff); db(0xfe); db(0x67); db(0x62); db(0x08); db(0x07); db(0x00); db(0x00);
- db(0x67); db(0x0a); db(0x41); db(0xeb); db(0x00); db(0x20); db(0x22); db(0x08);
- db(0x4e); db(0xae); db(0xfd); db(0x5a); db(0x08); db(0x07); db(0x00); db(0x01);
- db(0x67); db(0x12); db(0x4a); db(0x2b); db(0x00); db(0x9e); db(0x66); db(0x0c);
- db(0x50); db(0xeb); db(0x00); db(0x9e); db(0x22); db(0x2b); db(0x00); db(0xb4);
- db(0x4e); db(0xae); db(0xfd); db(0x5a); db(0x72); db(0x0e); db(0x4e); db(0xae);
- db(0xfd); db(0x6c); db(0x60); db(0x32); db(0x2c); db(0x78); db(0x00); db(0x04);
- db(0x4e); db(0xae); db(0xff); db(0x7c); db(0x08); db(0x07); db(0x00); db(0x00);
- db(0x67); db(0x08); db(0x41); db(0xeb); db(0x00); db(0x20); db(0x61); db(0x00);
- db(0x00); db(0xac); db(0x08); db(0x07); db(0x00); db(0x01); db(0x67); db(0x12);
- db(0x4a); db(0x2b); db(0x00); db(0x9e); db(0x66); db(0x0c); db(0x50); db(0xeb);
- db(0x00); db(0x9e); db(0x20); db(0x6b); db(0x00); db(0xb4); db(0x61); db(0x00);
- db(0x00); db(0x94); db(0x4e); db(0xae); db(0xff); db(0x76); db(0x4c); db(0xdf);
- db(0x40); db(0x80); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x01); db(0x22);
- db(0x2e); db(0x00); db(0x2c); db(0x6b); db(0x00); db(0xa0); db(0x0c); db(0x6e);
- db(0x00); db(0x25); db(0x00); db(0x14); db(0x65); db(0x3e); db(0x72); db(0x0e);
- db(0x4e); db(0xae); db(0xfd); db(0x66); db(0x02); db(0x80); db(0xff); db(0xff);
- db(0xff); db(0xfe); db(0x67); db(0x62); db(0x08); db(0x07); db(0x00); db(0x00);
- db(0x67); db(0x0a); db(0x41); db(0xeb); db(0x00); db(0x20); db(0x22); db(0x08);
- db(0x4e); db(0xae); db(0xfd); db(0x60); db(0x08); db(0x07); db(0x00); db(0x01);
- db(0x67); db(0x12); db(0x4a); db(0x2b); db(0x00); db(0x9e); db(0x67); db(0x0c);
- db(0x42); db(0x2b); db(0x00); db(0x9e); db(0x22); db(0x2b); db(0x00); db(0xb4);
- db(0x4e); db(0xae); db(0xfd); db(0x60); db(0x72); db(0x0e); db(0x4e); db(0xae);
- db(0xfd); db(0x6c); db(0x60); db(0x32); db(0x2c); db(0x78); db(0x00); db(0x04);
- db(0x4e); db(0xae); db(0xff); db(0x7c); db(0x08); db(0x07); db(0x00); db(0x00);
- db(0x67); db(0x08); db(0x41); db(0xeb); db(0x00); db(0x20); db(0x61); db(0x00);
- db(0x00); db(0x44); db(0x08); db(0x07); db(0x00); db(0x01); db(0x67); db(0x12);
- db(0x4a); db(0x2b); db(0x00); db(0x9e); db(0x67); db(0x0c); db(0x42); db(0x2b);
- db(0x00); db(0x9e); db(0x20); db(0x6b); db(0x00); db(0xb4); db(0x61); db(0x00);
- db(0x00); db(0x2c); db(0x4e); db(0xae); db(0xff); db(0x76); db(0x4c); db(0xdf);
- db(0x44); db(0x80); db(0x4e); db(0x75); db(0x22); db(0x48); db(0x20); db(0x6b);
- db(0x00); db(0xa0); db(0x20); db(0x68); db(0x00); db(0x22); db(0x20); db(0x68);
- db(0x00); db(0x18); db(0xd1); db(0xc8); db(0xd1); db(0xc8); db(0x22); db(0xa8);
- db(0x00); db(0x04); db(0x20); db(0x09); db(0xe4); db(0x88); db(0x21); db(0x40);
- db(0x00); db(0x04); db(0x4e); db(0x75); db(0x24); db(0x48); db(0x20); db(0x6b);
- db(0x00); db(0xa0); db(0x20); db(0x68); db(0x00); db(0x22); db(0x20); db(0x68);
- db(0x00); db(0x18); db(0xd1); db(0xc8); db(0xd1); db(0xc8); db(0x22); db(0x68);
- db(0x00); db(0x04); db(0xd3); db(0xc9); db(0xd3); db(0xc9); db(0xb3); db(0xca);
- db(0x66); db(0x06); db(0x21); db(0x52); db(0x00); db(0x04); db(0x60); db(0x18);
- db(0x20); db(0x09); db(0x67); db(0x0e); db(0x20); db(0x11); db(0xd0); db(0x80);
- db(0xd0); db(0x80); db(0xb5); db(0xc0); db(0x67); db(0x04); db(0x22); db(0x40);
- db(0x60); db(0xee); db(0x20); db(0x09); db(0x67); db(0x02); db(0x22); db(0x92);
- db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x20); db(0x22); db(0x74); db(0x16);
- db(0x9f); db(0xc2); db(0x24); db(0x4f); db(0x32); db(0x02); db(0x42); db(0x32);
- db(0x10); db(0xff); db(0x53); db(0x41); db(0x66); db(0xf8); db(0x2c); db(0x78);
- db(0x00); db(0x04); db(0x72); db(0x0f); db(0x4a); db(0x80); db(0x67); db(0x02);
- db(0x72); db(0x10); db(0x15); db(0x41); db(0x00); db(0x04); db(0x35); db(0x7c);
- db(0x08); db(0x00); db(0x00); db(0x08); db(0x22); db(0x6b); db(0x00); db(0xa4);
- db(0x33); db(0x7c); db(0x00); db(0x0b); db(0x00); db(0x1c); db(0x23); db(0x7c);
- db(0x00); db(0x00); db(0x00); db(0x16); db(0x00); db(0x24); db(0x23); db(0x4a);
- db(0x00); db(0x28); db(0x13); db(0x7c); db(0x00); db(0x01); db(0x00); db(0x1e);
- db(0x22); db(0x6b); db(0x00); db(0xa8); db(0x33); db(0x7c); db(0x00); db(0x0a);
- db(0x00); db(0x1c); db(0x13); db(0x7c); db(0x00); db(0x01); db(0x00); db(0x1e);
- db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x22); db(0x6b); db(0x00); db(0xa8);
- db(0x25); db(0x69); db(0x00); db(0x20); db(0x00); db(0x0e); db(0x25); db(0x69);
- db(0x00); db(0x24); db(0x00); db(0x12); db(0x22); db(0x6b); db(0x00); db(0xa4);
- db(0x4e); db(0xae); db(0xfe); db(0x38); db(0xdf); db(0xc2); db(0x4c); db(0xdf);
- db(0x44); db(0x04); db(0x4e); db(0x75); db(0x4a); db(0x00); db(0x67); db(0x26);
- db(0x4a); db(0x2b); db(0x00); db(0x4c); db(0x66); db(0x36); db(0x70); db(0x00);
- db(0x4a); db(0x33); db(0x00); db(0x4d); db(0x67); db(0x04); db(0x52); db(0x00);
- db(0x60); db(0xf6); db(0x17); db(0x40); db(0x00); db(0x4c); db(0x67); db(0x24);
- db(0x20); db(0x01); db(0x61); db(0x00); db(0xfd); db(0xf2); db(0x70); db(0x01);
- db(0x61); db(0x00); db(0xff); db(0x60); db(0x60); db(0x16); db(0x4a); db(0x2b);
- db(0x00); db(0x4c); db(0x67); db(0x10); db(0x42); db(0x2b); db(0x00); db(0x4c);
- db(0x20); db(0x01); db(0x61); db(0x00); db(0xfe); db(0x68); db(0x70); db(0x00);
- db(0x61); db(0x00); db(0xff); db(0x48); db(0x4e); db(0x75); db(0x4a); db(0xac);
- db(0x00); db(0x14); db(0x67); db(0x0a); db(0x70); db(0x00); db(0x72); db(0x01);
- db(0x61); db(0x00); db(0xff); db(0xb2); db(0x4e); db(0x75); db(0x70); db(0x01);
- db(0x72); db(0x03); db(0x61); db(0x00); db(0xff); db(0xa8); db(0x4e); db(0x75);
- db(0x10); db(0x2b); db(0x00); db(0xac); db(0x6b); db(0x0a); db(0x70); db(0x01);
- db(0x72); db(0x03); db(0x61); db(0x00); db(0xff); db(0x98); db(0x4e); db(0x75);
- db(0x72); db(0x01); db(0x0c); db(0x00); db(0x00); db(0xfe); db(0x66); db(0x02);
- db(0x72); db(0x03); db(0x70); db(0x00); db(0x61); db(0x00); db(0xff); db(0x86);
- db(0x4e); db(0x75); db(0x20); db(0x6c); db(0x00); db(0x24); db(0x4a); db(0x90);
- db(0x67); db(0x0c); db(0x4a); db(0xa8); db(0x00); db(0x08); db(0x66); db(0x0a);
- db(0x4a); db(0xa8); db(0x00); db(0x0c); db(0x66); db(0x04); db(0x70); db(0x01);
- db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x3f); db(0x3e); db(0x2a); db(0x48);
- db(0x24); db(0x6c); db(0x00); db(0x18); db(0x2e); db(0x15); db(0x7a); db(0x00);
- db(0x4a); db(0x87); db(0x67); db(0x70); db(0x20); db(0x0a); db(0x67); db(0x6c);
- db(0x7c); db(0x00); db(0x22); db(0x2d); db(0x00); db(0x08); db(0x67); db(0x12);
- db(0x24); db(0x2a); db(0x00); db(0x04); db(0x2c); db(0x6b); db(0x00); db(0xa0);
- db(0x4e); db(0xae); db(0xfc); db(0x34); db(0x4a); db(0x80); db(0x66); db(0x02);
- db(0x50); db(0xc6); db(0x22); db(0x2d); db(0x00); db(0x0c); db(0x67); db(0x1c);
- db(0x20); db(0x41); db(0x22); db(0x4a); db(0x2f); db(0x0a); db(0x45); db(0xec);
- db(0x00); db(0x20); db(0x48); db(0x7a); db(0x00); db(0x08); db(0x2f); db(0x28);
- db(0x00); db(0x08); db(0x4e); db(0x75); db(0x24); db(0x5f); db(0x4a); db(0x80);
- db(0x66); db(0x02); db(0x50); db(0xc6); db(0x4a); db(0x06); db(0x67); db(0x24);
- db(0x20); db(0x2a); db(0x00); db(0x04); db(0x90); db(0x8a); db(0x4a); db(0x92);
- db(0x66); db(0x0a); db(0x20); db(0x05); db(0x67); db(0x10); db(0x20); db(0x40);
- db(0x42); db(0x90); db(0x60); db(0x0a); db(0x20); db(0x52); db(0x22); db(0x4a);
- db(0x22); db(0xd8); db(0x59); db(0x80); db(0x6a); db(0xfa); db(0x53); db(0x95);
- db(0x53); db(0x87); db(0x60); db(0x94); db(0x2a); db(0x0a); db(0x24); db(0x52);
- db(0x53); db(0x87); db(0x60); db(0x8c); db(0x4c); db(0xdf); db(0x7c); db(0xfc);
- db(0x20); db(0x6c); db(0x00); db(0x24); db(0x4a); db(0x90); db(0x4e); db(0x75);
- db(0x61); db(0x00); db(0xfc); db(0x7c); db(0x21); db(0x40); db(0x01); db(0x98);
- db(0x2f); db(0x08); db(0x30); db(0x3c); db(0xff); db(0xfc); db(0x61); db(0x00);
- db(0x04); db(0x56); db(0x2a); db(0x50); db(0x30); db(0x3c); db(0xff); db(0x28);
- db(0x61); db(0x00); db(0x04); db(0x4c); db(0x22); db(0x48); db(0x20); db(0x5f);
- db(0x42); db(0xa8); db(0x01); db(0x90); db(0x42); db(0xa8); db(0x01); db(0x94);
- db(0x4e); db(0x91); db(0x26); db(0x00); db(0x0c); db(0x43); db(0xff); db(0xfe);
- db(0x67); db(0x00); db(0xf9); db(0x78); db(0x20); db(0x28); db(0x01); db(0x90);
- db(0x67); db(0x14); db(0x6b); db(0x12); db(0x2f); db(0x08); db(0x72); db(0x01);
+ db(0xff); db(0x3a); db(0x24); db(0x40); db(0x15); db(0x7c); db(0x00); db(0x08);
+ db(0x00); db(0x08); db(0x41); db(0xfa); db(0x13); db(0xd7); db(0x25); db(0x48);
+ db(0x00); db(0x0a); db(0x41); db(0xfa); db(0x13); db(0x53); db(0x25); db(0x48);
+ db(0x00); db(0x0e); db(0x41); db(0xea); db(0x00); db(0x12); db(0x20); db(0x88);
+ db(0x58); db(0x90); db(0x21); db(0x48); db(0x00); db(0x08); db(0x41); db(0xee);
+ db(0x01); db(0x50); db(0x22); db(0x4a); db(0x4e); db(0xae); db(0xff); db(0x0a);
+ db(0x20); db(0x4a); db(0x20); db(0x08); db(0x4c); db(0xdf); db(0x47); db(0x02);
+ db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x01); db(0x02); db(0x2e); db(0x00);
+ db(0x4a); db(0x2b); db(0x00); db(0x4c); db(0x67); db(0x7c); db(0x2c); db(0x6b);
+ db(0x00); db(0xa0); db(0x0c); db(0x6e); db(0x00); db(0x25); db(0x00); db(0x14);
+ db(0x65); db(0x3e); db(0x72); db(0x0e); db(0x4e); db(0xae); db(0xfd); db(0x66);
+ db(0x02); db(0x80); db(0xff); db(0xff); db(0xff); db(0xfe); db(0x67); db(0x62);
+ db(0x08); db(0x07); db(0x00); db(0x00); db(0x67); db(0x0a); db(0x41); db(0xeb);
+ db(0x00); db(0x20); db(0x22); db(0x08); db(0x4e); db(0xae); db(0xfd); db(0x5a);
+ db(0x08); db(0x07); db(0x00); db(0x01); db(0x67); db(0x12); db(0x4a); db(0x2b);
+ db(0x00); db(0x9e); db(0x66); db(0x0c); db(0x50); db(0xeb); db(0x00); db(0x9e);
+ db(0x22); db(0x2b); db(0x00); db(0xb4); db(0x4e); db(0xae); db(0xfd); db(0x5a);
+ db(0x72); db(0x0e); db(0x4e); db(0xae); db(0xfd); db(0x6c); db(0x60); db(0x32);
+ db(0x2c); db(0x78); db(0x00); db(0x04); db(0x4e); db(0xae); db(0xff); db(0x7c);
+ db(0x08); db(0x07); db(0x00); db(0x00); db(0x67); db(0x08); db(0x41); db(0xeb);
+ db(0x00); db(0x20); db(0x61); db(0x00); db(0x00); db(0xac); db(0x08); db(0x07);
+ db(0x00); db(0x01); db(0x67); db(0x12); db(0x4a); db(0x2b); db(0x00); db(0x9e);
+ db(0x66); db(0x0c); db(0x50); db(0xeb); db(0x00); db(0x9e); db(0x20); db(0x6b);
+ db(0x00); db(0xb4); db(0x61); db(0x00); db(0x00); db(0x94); db(0x4e); db(0xae);
+ db(0xff); db(0x76); db(0x4c); db(0xdf); db(0x40); db(0x80); db(0x4e); db(0x75);
+ db(0x48); db(0xe7); db(0x01); db(0x22); db(0x2e); db(0x00); db(0x2c); db(0x6b);
+ db(0x00); db(0xa0); db(0x0c); db(0x6e); db(0x00); db(0x25); db(0x00); db(0x14);
+ db(0x65); db(0x3e); db(0x72); db(0x0e); db(0x4e); db(0xae); db(0xfd); db(0x66);
+ db(0x02); db(0x80); db(0xff); db(0xff); db(0xff); db(0xfe); db(0x67); db(0x62);
+ db(0x08); db(0x07); db(0x00); db(0x00); db(0x67); db(0x0a); db(0x41); db(0xeb);
+ db(0x00); db(0x20); db(0x22); db(0x08); db(0x4e); db(0xae); db(0xfd); db(0x60);
+ db(0x08); db(0x07); db(0x00); db(0x01); db(0x67); db(0x12); db(0x4a); db(0x2b);
+ db(0x00); db(0x9e); db(0x67); db(0x0c); db(0x42); db(0x2b); db(0x00); db(0x9e);
+ db(0x22); db(0x2b); db(0x00); db(0xb4); db(0x4e); db(0xae); db(0xfd); db(0x60);
+ db(0x72); db(0x0e); db(0x4e); db(0xae); db(0xfd); db(0x6c); db(0x60); db(0x32);
+ db(0x2c); db(0x78); db(0x00); db(0x04); db(0x4e); db(0xae); db(0xff); db(0x7c);
+ db(0x08); db(0x07); db(0x00); db(0x00); db(0x67); db(0x08); db(0x41); db(0xeb);
+ db(0x00); db(0x20); db(0x61); db(0x00); db(0x00); db(0x44); db(0x08); db(0x07);
+ db(0x00); db(0x01); db(0x67); db(0x12); db(0x4a); db(0x2b); db(0x00); db(0x9e);
+ db(0x67); db(0x0c); db(0x42); db(0x2b); db(0x00); db(0x9e); db(0x20); db(0x6b);
+ db(0x00); db(0xb4); db(0x61); db(0x00); db(0x00); db(0x2c); db(0x4e); db(0xae);
+ db(0xff); db(0x76); db(0x4c); db(0xdf); db(0x44); db(0x80); db(0x4e); db(0x75);
+ db(0x22); db(0x48); db(0x20); db(0x6b); db(0x00); db(0xa0); db(0x20); db(0x68);
+ db(0x00); db(0x22); db(0x20); db(0x68); db(0x00); db(0x18); db(0xd1); db(0xc8);
+ db(0xd1); db(0xc8); db(0x22); db(0xa8); db(0x00); db(0x04); db(0x20); db(0x09);
+ db(0xe4); db(0x88); db(0x21); db(0x40); db(0x00); db(0x04); db(0x4e); db(0x75);
+ db(0x24); db(0x48); db(0x20); db(0x6b); db(0x00); db(0xa0); db(0x20); db(0x68);
+ db(0x00); db(0x22); db(0x20); db(0x68); db(0x00); db(0x18); db(0xd1); db(0xc8);
+ db(0xd1); db(0xc8); db(0x22); db(0x68); db(0x00); db(0x04); db(0xd3); db(0xc9);
+ db(0xd3); db(0xc9); db(0xb3); db(0xca); db(0x66); db(0x06); db(0x21); db(0x52);
+ db(0x00); db(0x04); db(0x60); db(0x18); db(0x20); db(0x09); db(0x67); db(0x0e);
+ db(0x20); db(0x11); db(0xd0); db(0x80); db(0xd0); db(0x80); db(0xb5); db(0xc0);
+ db(0x67); db(0x04); db(0x22); db(0x40); db(0x60); db(0xee); db(0x20); db(0x09);
+ db(0x67); db(0x02); db(0x22); db(0x92); db(0x4e); db(0x75); db(0x48); db(0xe7);
+ db(0x20); db(0x22); db(0x74); db(0x16); db(0x9f); db(0xc2); db(0x24); db(0x4f);
+ db(0x32); db(0x02); db(0x42); db(0x32); db(0x10); db(0xff); db(0x53); db(0x41);
+ db(0x66); db(0xf8); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x72); db(0x0f);
+ db(0x4a); db(0x80); db(0x67); db(0x02); db(0x72); db(0x10); db(0x15); db(0x41);
+ db(0x00); db(0x04); db(0x35); db(0x7c); db(0x08); db(0x00); db(0x00); db(0x08);
+ db(0x22); db(0x6b); db(0x00); db(0xa4); db(0x33); db(0x7c); db(0x00); db(0x0b);
+ db(0x00); db(0x1c); db(0x23); db(0x7c); db(0x00); db(0x00); db(0x00); db(0x16);
+ db(0x00); db(0x24); db(0x23); db(0x4a); db(0x00); db(0x28); db(0x13); db(0x7c);
+ db(0x00); db(0x01); db(0x00); db(0x1e); db(0x22); db(0x6b); db(0x00); db(0xa8);
+ db(0x33); db(0x7c); db(0x00); db(0x0a); db(0x00); db(0x1c); db(0x13); db(0x7c);
+ db(0x00); db(0x01); db(0x00); db(0x1e); db(0x4e); db(0xae); db(0xfe); db(0x38);
+ db(0x22); db(0x6b); db(0x00); db(0xa8); db(0x25); db(0x69); db(0x00); db(0x20);
+ db(0x00); db(0x0e); db(0x25); db(0x69); db(0x00); db(0x24); db(0x00); db(0x12);
+ db(0x22); db(0x6b); db(0x00); db(0xa4); db(0x4e); db(0xae); db(0xfe); db(0x38);
+ db(0xdf); db(0xc2); db(0x4c); db(0xdf); db(0x44); db(0x04); db(0x4e); db(0x75);
+ db(0x4a); db(0x00); db(0x67); db(0x26); db(0x4a); db(0x2b); db(0x00); db(0x4c);
+ db(0x66); db(0x36); db(0x70); db(0x00); db(0x4a); db(0x33); db(0x00); db(0x4d);
+ db(0x67); db(0x04); db(0x52); db(0x00); db(0x60); db(0xf6); db(0x17); db(0x40);
+ db(0x00); db(0x4c); db(0x67); db(0x24); db(0x20); db(0x01); db(0x61); db(0x00);
+ db(0xfd); db(0xf2); db(0x70); db(0x01); db(0x61); db(0x00); db(0xff); db(0x60);
+ db(0x60); db(0x16); db(0x4a); db(0x2b); db(0x00); db(0x4c); db(0x67); db(0x10);
+ db(0x42); db(0x2b); db(0x00); db(0x4c); db(0x20); db(0x01); db(0x61); db(0x00);
+ db(0xfe); db(0x68); db(0x70); db(0x00); db(0x61); db(0x00); db(0xff); db(0x48);
+ db(0x4e); db(0x75); db(0x4a); db(0xac); db(0x00); db(0x14); db(0x67); db(0x0a);
+ db(0x70); db(0x00); db(0x72); db(0x01); db(0x61); db(0x00); db(0xff); db(0xb2);
+ db(0x4e); db(0x75); db(0x70); db(0x01); db(0x72); db(0x03); db(0x61); db(0x00);
+ db(0xff); db(0xa8); db(0x4e); db(0x75); db(0x10); db(0x2b); db(0x00); db(0xac);
+ db(0x6b); db(0x0a); db(0x70); db(0x01); db(0x72); db(0x03); db(0x61); db(0x00);
+ db(0xff); db(0x98); db(0x4e); db(0x75); db(0x72); db(0x01); db(0x0c); db(0x00);
+ db(0x00); db(0xfe); db(0x66); db(0x02); db(0x72); db(0x03); db(0x70); db(0x00);
+ db(0x61); db(0x00); db(0xff); db(0x86); db(0x4e); db(0x75); db(0x20); db(0x6c);
+ db(0x00); db(0x24); db(0x4a); db(0x90); db(0x67); db(0x0c); db(0x4a); db(0xa8);
+ db(0x00); db(0x08); db(0x66); db(0x0a); db(0x4a); db(0xa8); db(0x00); db(0x0c);
+ db(0x66); db(0x04); db(0x70); db(0x01); db(0x4e); db(0x75); db(0x48); db(0xe7);
+ db(0x3f); db(0x3e); db(0x2a); db(0x48); db(0x24); db(0x6c); db(0x00); db(0x18);
+ db(0x2e); db(0x15); db(0x7a); db(0x00); db(0x4a); db(0x87); db(0x67); db(0x70);
+ db(0x20); db(0x0a); db(0x67); db(0x6c); db(0x7c); db(0x00); db(0x22); db(0x2d);
+ db(0x00); db(0x08); db(0x67); db(0x12); db(0x24); db(0x2a); db(0x00); db(0x04);
+ db(0x2c); db(0x6b); db(0x00); db(0xa0); db(0x4e); db(0xae); db(0xfc); db(0x34);
+ db(0x4a); db(0x80); db(0x66); db(0x02); db(0x50); db(0xc6); db(0x22); db(0x2d);
+ db(0x00); db(0x0c); db(0x67); db(0x1c); db(0x20); db(0x41); db(0x22); db(0x4a);
+ db(0x2f); db(0x0a); db(0x45); db(0xec); db(0x00); db(0x20); db(0x48); db(0x7a);
+ db(0x00); db(0x08); db(0x2f); db(0x28); db(0x00); db(0x08); db(0x4e); db(0x75);
+ db(0x24); db(0x5f); db(0x4a); db(0x80); db(0x66); db(0x02); db(0x50); db(0xc6);
+ db(0x4a); db(0x06); db(0x67); db(0x24); db(0x20); db(0x2a); db(0x00); db(0x04);
+ db(0x90); db(0x8a); db(0x4a); db(0x92); db(0x66); db(0x0a); db(0x20); db(0x05);
+ db(0x67); db(0x10); db(0x20); db(0x40); db(0x42); db(0x90); db(0x60); db(0x0a);
+ db(0x20); db(0x52); db(0x22); db(0x4a); db(0x22); db(0xd8); db(0x59); db(0x80);
+ db(0x6a); db(0xfa); db(0x53); db(0x95); db(0x53); db(0x87); db(0x60); db(0x94);
+ db(0x2a); db(0x0a); db(0x24); db(0x52); db(0x53); db(0x87); db(0x60); db(0x8c);
+ db(0x4c); db(0xdf); db(0x7c); db(0xfc); db(0x20); db(0x6c); db(0x00); db(0x24);
+ db(0x4a); db(0x90); db(0x4e); db(0x75); db(0x61); db(0x00); db(0xfc); db(0x7c);
+ db(0x21); db(0x40); db(0x01); db(0x98); db(0x2f); db(0x08); db(0x30); db(0x3c);
+ db(0xff); db(0xfc); db(0x61); db(0x00); db(0x05); db(0x0e); db(0x2a); db(0x50);
+ db(0x30); db(0x3c); db(0xff); db(0x28); db(0x61); db(0x00); db(0x05); db(0x04);
+ db(0x22); db(0x48); db(0x20); db(0x5f); db(0x42); db(0xa8); db(0x01); db(0x90);
+ db(0x42); db(0xa8); db(0x01); db(0x94); db(0x4e); db(0x91); db(0x4a); db(0x80);
+ db(0x67); db(0x00); db(0x00); db(0x88); db(0x20); db(0x28); db(0x01); db(0x90);
+ db(0x67); db(0x16); db(0x6b); db(0x14); db(0x2f); db(0x08); db(0x72); db(0x01);
  db(0x2c); db(0x78); db(0x00); db(0x04); db(0x4e); db(0xae); db(0xff); db(0x3a);
- db(0x20); db(0x5f); db(0x21); db(0x40); db(0x01); db(0x94); db(0x4a); db(0x83);
- db(0x6a); db(0x0e); db(0x22); db(0x48); db(0x30); db(0x3c); db(0xff); db(0x20);
- db(0x61); db(0x00); db(0x04); db(0x0c); db(0x4e); db(0x90); db(0x60); db(0x26);
+ db(0x20); db(0x5f); db(0x21); db(0x40); db(0x01); db(0x94); db(0x67); db(0x6a);
  db(0x2c); db(0x4c); db(0x2f); db(0x08); db(0x4e); db(0xae); db(0xff); db(0x70);
  db(0x20); db(0x5f); db(0x22); db(0x48); db(0x26); db(0x40); db(0x30); db(0x3c);
- db(0xff); db(0x20); db(0x61); db(0x00); db(0x03); db(0xf2); db(0x4e); db(0x90);
+ db(0xff); db(0x20); db(0x61); db(0x00); db(0x04); db(0xbe); db(0x4e); db(0x90);
  db(0x70); db(0x00); db(0x27); db(0x40); db(0x00); db(0x08); db(0x27); db(0x40);
- db(0x00); db(0x10); db(0x27); db(0x40); db(0x00); db(0x20); db(0x4a); db(0xa9);
- db(0x01); db(0x94); db(0x67); db(0x28); db(0x20); db(0x69); db(0x01); db(0x94);
- db(0x61); db(0x00); db(0xfa); db(0xf2); db(0x48); db(0xe7); db(0x80); db(0xc0);
- db(0x20); db(0x29); db(0x01); db(0x90); db(0x22); db(0x69); db(0x01); db(0x94);
- db(0x2c); db(0x78); db(0x00); db(0x04); db(0x4e); db(0xae); db(0xff); db(0x2e);
- db(0x4c); db(0xdf); db(0x03); db(0x01); db(0x4a); db(0x80); db(0x67); db(0x04);
- db(0x61); db(0x00); db(0xfa); db(0x7c); db(0x4a); db(0x83); db(0x6b); db(0x00);
- db(0xf8); db(0xf2); db(0x30); db(0x3c); db(0xff); db(0x18); db(0x61); db(0x00);
- db(0x03); db(0xa6); db(0x4e); db(0x90); db(0x20); db(0x03); db(0x16); db(0x29);
- db(0x00); db(0x4f); db(0x4a); db(0x80); db(0x66); db(0x1a); db(0x27); db(0x7c);
- db(0x00); db(0x00); db(0x17); db(0x70); db(0x00); db(0x14); db(0x41); db(0xfa);
- db(0xf6); db(0xdc); db(0x20); db(0x08); db(0xe4); db(0x88); db(0x27); db(0x40);
- db(0x00); db(0x20); db(0x70); db(0xff); db(0x27); db(0x40); db(0x00); db(0x24);
- db(0x08); db(0x07); db(0x00); db(0x00); db(0x67); db(0x3a); db(0x2c); db(0x78);
- db(0x00); db(0x04); db(0x70); db(0x14); db(0x72); db(0x00); db(0x4e); db(0xae);
- db(0xff); db(0x3a); db(0x22); db(0x40); db(0x70); db(0x00); db(0x22); db(0x80);
- db(0x23); db(0x40); db(0x00); db(0x04); db(0x33); db(0x40); db(0x00); db(0x0e);
- db(0x30); db(0x3c); db(0x10); db(0x00); db(0x80); db(0x03); db(0x33); db(0x40);
- db(0x00); db(0x08); db(0x23); db(0x6d); db(0x01); db(0x04); db(0x00); db(0x0a);
- db(0x23); db(0x4b); db(0x00); db(0x10); db(0x41); db(0xec); db(0x00); db(0x4a);
- db(0x4e); db(0xae); db(0xfe); db(0xf2); db(0x70); db(0x00); db(0x4e); db(0x75);
+ db(0x00); db(0x10); db(0x27); db(0x40); db(0x00); db(0x20); db(0x20); db(0x29);
+ db(0x01); db(0x94); db(0x67); db(0x22); db(0x20); db(0x40); db(0x61); db(0x00);
+ db(0xfb); db(0x08); db(0x48); db(0xe7); db(0x80); db(0xc0); db(0x20); db(0x29);
+ db(0x01); db(0x90); db(0x22); db(0x69); db(0x01); db(0x94); db(0x2c); db(0x78);
+ db(0x00); db(0x04); db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x4c); db(0xdf);
+ db(0x03); db(0x01); db(0x61); db(0x00); db(0xfa); db(0x96); db(0x30); db(0x3c);
+ db(0xff); db(0x18); db(0x61); db(0x00); db(0x04); db(0x7e); db(0x4e); db(0x90);
  db(0x24); db(0x49); db(0x20); db(0x4b); db(0x72); db(0x00); db(0x22); db(0x41);
- db(0x08); db(0x07); db(0x00); db(0x01); db(0x67); db(0x08); db(0x08); db(0x07);
- db(0x00); db(0x02); db(0x67); db(0x02); db(0x72); db(0x01); db(0x70); db(0xec);
- db(0x2c); db(0x4c); db(0x4e); db(0xae); db(0xff); db(0x6a); db(0x08); db(0x07);
- db(0x00); db(0x01); db(0x67); db(0x5c); db(0x08); db(0x07); db(0x00); db(0x02);
- db(0x66); db(0x56); db(0x20); db(0x52); db(0x74); db(0x02); db(0x52); db(0x82);
- db(0x4a); db(0x30); db(0x28); db(0xfd); db(0x66); db(0xf8); db(0x2c); db(0x78);
- db(0x00); db(0x04); db(0x20); db(0x02); db(0x72); db(0x01); db(0x4e); db(0xae);
- db(0xff); db(0x3a); db(0x4a); db(0x80); db(0x67); db(0x3a); db(0x20); db(0x52);
- db(0x24); db(0x40); db(0x22); db(0x4a); db(0x12); db(0xd8); db(0x66); db(0xfc);
- db(0x13); db(0x7c); db(0x00); db(0x3a); db(0xff); db(0xff); db(0x42); db(0x11);
- db(0x2c); db(0x78); db(0x00); db(0x04); db(0x43); db(0xfa); db(0x0e); db(0x18);
- db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x2c); db(0x40);
- db(0x22); db(0x0a); db(0x4e); db(0xae); db(0xff); db(0x52); db(0x22); db(0x4e);
- db(0x2c); db(0x78); db(0x00); db(0x04); db(0x4e); db(0xae); db(0xfe); db(0x62);
- db(0x22); db(0x4a); db(0x20); db(0x02); db(0x4e); db(0xae); db(0xff); db(0x2e);
- db(0x70); db(0x00); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x3f); db(0x3e);
- db(0x2c); db(0x01); db(0x7e); db(0x06); db(0x2c); db(0x78); db(0x00); db(0x04);
- db(0x43); db(0xfa); db(0x0e); db(0x13); db(0x70); db(0x24); db(0x4e); db(0xae);
- db(0xfd); db(0xd8); db(0x4a); db(0x80); db(0x66); db(0x0e); db(0x08); db(0x87);
- db(0x00); db(0x02); db(0x43); db(0xfa); db(0x0e); db(0x01); db(0x70); db(0x00);
- db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x28); db(0x40); db(0x20); db(0x3c);
- db(0x00); db(0x00); db(0x02); db(0x2c); db(0x22); db(0x3c); db(0x00); db(0x01);
- db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x20); db(0x40);
- db(0x4a); db(0x80); db(0x67); db(0x2c); db(0x21); db(0x4c); db(0x01); db(0x9c);
- db(0x48); db(0xe7); db(0x00); db(0x8a); db(0x61); db(0x00); db(0xfe); db(0x0a);
- db(0x4c); db(0xdf); db(0x51); db(0x00); db(0x0c); db(0x80); db(0xff); db(0xff);
- db(0xff); db(0xfe); db(0x67); db(0x08); db(0x48); db(0x46); db(0x52); db(0x46);
- db(0x48); db(0x46); db(0x60); db(0xe4); db(0x22); db(0x48); db(0x20); db(0x3c);
- db(0x00); db(0x00); db(0x02); db(0x2c); db(0x4e); db(0xae); db(0xff); db(0x2e);
- db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x62); db(0x4c); db(0xdf);
- db(0x7c); db(0xfc); db(0x4e); db(0x75); db(0x2c); db(0x78); db(0x00); db(0x04);
- db(0x93); db(0xc9); db(0x4e); db(0xae); db(0xfe); db(0xda); db(0x20); db(0x40);
- db(0x4b); db(0xe8); db(0x00); db(0x5c); db(0x43); db(0xfa); db(0x0d); db(0x68);
- db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x24); db(0x40);
- db(0x20); db(0x3c); db(0x00); db(0x00); db(0x00); db(0xb9); db(0x22); db(0x3c);
- db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a);
- db(0x26); db(0x40); db(0x7c); db(0x00); db(0x26); db(0x86); db(0x27); db(0x46);
- db(0x00); db(0x04); db(0x27); db(0x46); db(0x00); db(0x08); db(0x27); db(0x4a);
- db(0x00); db(0xa0); db(0x50); db(0xeb); db(0x00); db(0x9e); db(0x93); db(0xc9);
- db(0x4e); db(0xae); db(0xfe); db(0xda); db(0x27); db(0x40); db(0x00); db(0xb0);
- db(0x41); db(0xfa); db(0x0c); db(0x50); db(0x70); db(0x00); db(0x72); db(0x00);
- db(0x61); db(0x00); db(0x02); db(0x8e); db(0x27); db(0x40); db(0x00); db(0xa4);
- db(0x41); db(0xfa); db(0x0c); db(0x4d); db(0x70); db(0x00); db(0x72); db(0x00);
- db(0x61); db(0x00); db(0x02); db(0x7e); db(0x27); db(0x40); db(0x00); db(0xa8);
- db(0x7a); db(0x00); db(0x20); db(0x4d); db(0x4e); db(0xae); db(0xfe); db(0x80);
- db(0x20); db(0x4d); db(0x4e); db(0xae); db(0xfe); db(0x8c); db(0x28); db(0x40);
- db(0x26); db(0x2c); db(0x00); db(0x0a); db(0x30); db(0x3c); db(0xff); db(0x40);
- db(0x61); db(0x00); db(0x01); db(0xbc); db(0x70); db(0x00); db(0x4e); db(0x90);
- db(0x24); db(0x00); db(0x70); db(0x01); db(0x61); db(0x00); db(0xfa); db(0x38);
- db(0x08); db(0x02); db(0x00); db(0x01); db(0x67); db(0x06); db(0x70); db(0x01);
- db(0x61); db(0x00); db(0xfb); db(0xa0); db(0x60); db(0x00); db(0x01); db(0x02);
- db(0x20); db(0x4d); db(0x4e); db(0xae); db(0xfe); db(0x8c); db(0x28); db(0x40);
- db(0x4a); db(0x80); db(0x66); db(0x10); db(0x70); db(0x00); db(0x12); db(0x2d);
- db(0x00); db(0x0f); db(0x03); db(0xc0); db(0x08); db(0xc0); db(0x00); db(0x0d);
- db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x4a); db(0x2b); db(0x00); db(0xac);
- db(0x67); db(0x08); db(0x61); db(0x00); db(0xfc); db(0x4c); db(0x42); db(0x2b);
- db(0x00); db(0xac); db(0x20); db(0x0c); db(0x67); db(0x54); db(0x0c); db(0x6c);
- db(0x00); db(0x26); db(0x00); db(0x12); db(0x66); db(0x4c); db(0x0c); db(0xac);
- db(0x40); db(0x00); db(0x00); db(0x00); db(0x00); db(0x14); db(0x66); db(0x42);
- db(0x0c); db(0x6c); db(0x12); db(0x34); db(0x00); db(0x18); db(0x66); db(0x3a);
- db(0x20); db(0x6c); db(0x00); db(0x1a); db(0x20); db(0x28); db(0x00); db(0x0c);
- db(0x02); db(0x80); db(0x80); db(0x00); db(0x00); db(0x08); db(0x0c); db(0x80);
- db(0x80); db(0x00); db(0x00); db(0x08); db(0x66); db(0x18); db(0x02); db(0xa8);
- db(0x7f); db(0xff); db(0xff); db(0xff); db(0x00); db(0x0c); db(0x20); db(0x68);
- db(0x00); db(0x10); db(0x22); db(0x4c); db(0x12); db(0xbc); db(0x00); db(0x08);
- db(0x4e); db(0xae); db(0xfe); db(0x92); db(0x60); db(0x8a); db(0x22); db(0x4c);
- db(0x70); db(0x26); db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x60); db(0x00);
- db(0xff); db(0x80); db(0x74); db(0xfe); db(0x20); db(0x0c); db(0x67); db(0x14);
- db(0x26); db(0x2c); db(0x00); db(0x0a); db(0x66); db(0x42); db(0x74); db(0xff);
- db(0x30); db(0x3c); db(0xff); db(0x50); db(0x61); db(0x00); db(0x01); db(0x08);
- db(0x70); db(0x01); db(0x4e); db(0x90); db(0x45); db(0xeb); db(0x00); db(0x04);
- db(0x20); db(0x52); db(0x20); db(0x08); db(0x67); db(0x00); db(0xff); db(0x5a);
- db(0x22); db(0x50); db(0x20); db(0x40); db(0x20); db(0x28); db(0x00); db(0x04);
- db(0xb4); db(0x80); db(0x66); db(0x16); db(0x48); db(0xe7); db(0x00); db(0xc0);
- db(0x28); db(0x68); db(0x00); db(0x0a); db(0x61); db(0x4a); db(0x53); db(0x85);
- db(0x4c); db(0xdf); db(0x03); db(0x00); db(0x24); db(0x89); db(0x20); db(0x49);
- db(0x60); db(0xd8); db(0x24); db(0x48); db(0x20); db(0x49); db(0x60); db(0xd2);
- db(0x0c); db(0x85); db(0x00); db(0x00); db(0x00); db(0x14); db(0x65); db(0x00);
- db(0x00); db(0x0a); db(0x70); db(0x01); db(0x29); db(0x40); db(0x00); db(0x04);
- db(0x60); db(0x12); db(0x61); db(0x5c); db(0x30); db(0x3c); db(0xff); db(0x30);
- db(0x61); db(0x00); db(0x00); db(0xb4); db(0x4e); db(0x90); db(0x4a); db(0x80);
- db(0x67); db(0x0e); db(0x52); db(0x85); db(0x28); db(0xab); db(0x00); db(0x04);
- db(0x27); db(0x4c); db(0x00); db(0x04); db(0x60); db(0x00); db(0xff); db(0x02);
- db(0x28); db(0x43); db(0x61); db(0x04); db(0x60); db(0x00); db(0xfe); db(0xfa);
- db(0x0c); db(0xac); db(0x00); db(0x00); db(0x00); db(0x1f); db(0x00); db(0x08);
- db(0x66); db(0x04); db(0x61); db(0x00); db(0xfb); db(0x42); db(0x0c); db(0xac);
- db(0x00); db(0x00); db(0x04); db(0x09); db(0x00); db(0x08); db(0x66); db(0x12);
- db(0x61); db(0x00); db(0xfb); db(0x70); db(0x66); db(0x0c); db(0x30); db(0x3c);
- db(0xff); db(0x58); db(0x61); db(0x00); db(0x00); db(0x72); db(0x4e); db(0x90);
- db(0x60); db(0xee); db(0x22); db(0x54); db(0x20); db(0x6c); db(0x00); db(0x04);
- db(0x29); db(0x4d); db(0x00); db(0x04); db(0x4e); db(0xee); db(0xfe); db(0x92);
- db(0x2f); db(0x05); db(0x7a); db(0xfc); db(0x24); db(0x53); db(0x2e); db(0x0a);
- db(0x22); db(0x0a); db(0x67); db(0x00); db(0x00); db(0x0c); db(0x52); db(0x85);
- db(0x67); db(0x1e); db(0x22); db(0x4a); db(0x24); db(0x52); db(0x60); db(0xf0);
- db(0x52); db(0x85); db(0x67); db(0x3c); db(0x24); db(0x47); db(0x70); db(0x18);
- db(0x72); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x52); db(0x46);
- db(0x24); db(0x40); db(0x24); db(0x87); db(0x2e); db(0x0a); db(0x60); db(0xe8);
- db(0x20); db(0x12); db(0x67); db(0x24); db(0x20); db(0x40); db(0x20); db(0x10);
- db(0x67); db(0x1e); db(0x20); db(0x40); db(0x20); db(0x10); db(0x67); db(0x18);
- db(0x70); db(0x00); db(0x22); db(0x80); db(0x22); db(0x4a); db(0x24); db(0x51);
- db(0x70); db(0x18); db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x06); db(0x86);
- db(0x00); db(0x01); db(0x00); db(0x00); db(0x20); db(0x0a); db(0x66); db(0xec);
- db(0x26); db(0x87); db(0x2a); db(0x1f); db(0x4e); db(0x75); db(0x41); db(0xfa);
- db(0xf3); db(0x44); db(0x02); db(0x80); db(0x00); db(0x00); db(0xff); db(0xff);
- db(0xd1); db(0xc0); db(0x4e); db(0x75); db(0x20); db(0x88); db(0x58); db(0x90);
- db(0x42); db(0xa8); db(0x00); db(0x04); db(0x21); db(0x48); db(0x00); db(0x08);
- db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x20); db(0x22); db(0x2c); db(0x78);
- db(0x00); db(0x04); db(0x70); db(0xff); db(0x4e); db(0xae); db(0xfe); db(0xb6);
- db(0x91); db(0xc8); db(0x24); db(0x00); db(0x6b); db(0x32); db(0x70); db(0x22);
+ db(0x72); db(0x01); db(0x70); db(0xec); db(0x2c); db(0x4c); db(0x4e); db(0xae);
+ db(0xff); db(0x6a); db(0x4e); db(0x75); db(0x61); db(0x00); db(0xfb); db(0xc4);
+ db(0x21); db(0x40); db(0x01); db(0x98); db(0x2f); db(0x08); db(0x30); db(0x3c);
+ db(0xff); db(0xfc); db(0x61); db(0x00); db(0x04); db(0x56); db(0x2a); db(0x50);
+ db(0x30); db(0x3c); db(0xff); db(0x28); db(0x61); db(0x00); db(0x04); db(0x4c);
+ db(0x22); db(0x48); db(0x20); db(0x5f); db(0x42); db(0xa8); db(0x01); db(0x90);
+ db(0x42); db(0xa8); db(0x01); db(0x94); db(0x4e); db(0x91); db(0x26); db(0x00);
+ db(0x0c); db(0x43); db(0xff); db(0xfe); db(0x67); db(0x00); db(0xf8); db(0xbe);
+ db(0x20); db(0x28); db(0x01); db(0x90); db(0x67); db(0x14); db(0x6b); db(0x12);
+ db(0x2f); db(0x08); db(0x72); db(0x01); db(0x2c); db(0x78); db(0x00); db(0x04);
+ db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x20); db(0x5f); db(0x21); db(0x40);
+ db(0x01); db(0x94); db(0x4a); db(0x83); db(0x6a); db(0x0e); db(0x22); db(0x48);
+ db(0x30); db(0x3c); db(0xff); db(0x20); db(0x61); db(0x00); db(0x04); db(0x0c);
+ db(0x4e); db(0x90); db(0x60); db(0x26); db(0x2c); db(0x4c); db(0x2f); db(0x08);
+ db(0x4e); db(0xae); db(0xff); db(0x70); db(0x20); db(0x5f); db(0x22); db(0x48);
+ db(0x26); db(0x40); db(0x30); db(0x3c); db(0xff); db(0x20); db(0x61); db(0x00);
+ db(0x03); db(0xf2); db(0x4e); db(0x90); db(0x70); db(0x00); db(0x27); db(0x40);
+ db(0x00); db(0x08); db(0x27); db(0x40); db(0x00); db(0x10); db(0x27); db(0x40);
+ db(0x00); db(0x20); db(0x4a); db(0xa9); db(0x01); db(0x94); db(0x67); db(0x28);
+ db(0x20); db(0x69); db(0x01); db(0x94); db(0x61); db(0x00); db(0xfa); db(0x3a);
+ db(0x48); db(0xe7); db(0x80); db(0xc0); db(0x20); db(0x29); db(0x01); db(0x90);
+ db(0x22); db(0x69); db(0x01); db(0x94); db(0x2c); db(0x78); db(0x00); db(0x04);
+ db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x4c); db(0xdf); db(0x03); db(0x01);
+ db(0x4a); db(0x80); db(0x67); db(0x04); db(0x61); db(0x00); db(0xf9); db(0xc4);
+ db(0x4a); db(0x83); db(0x6b); db(0x00); db(0xf8); db(0x38); db(0x30); db(0x3c);
+ db(0xff); db(0x18); db(0x61); db(0x00); db(0x03); db(0xa6); db(0x4e); db(0x90);
+ db(0x20); db(0x03); db(0x16); db(0x29); db(0x00); db(0x4f); db(0x4a); db(0x80);
+ db(0x66); db(0x1a); db(0x27); db(0x7c); db(0x00); db(0x00); db(0x17); db(0x70);
+ db(0x00); db(0x14); db(0x41); db(0xfa); db(0xf5); db(0xf8); db(0x20); db(0x08);
+ db(0xe4); db(0x88); db(0x27); db(0x40); db(0x00); db(0x20); db(0x70); db(0xff);
+ db(0x27); db(0x40); db(0x00); db(0x24); db(0x08); db(0x07); db(0x00); db(0x00);
+ db(0x67); db(0x3a); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x70); db(0x14);
+ db(0x72); db(0x00); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x22); db(0x40);
+ db(0x70); db(0x00); db(0x22); db(0x80); db(0x23); db(0x40); db(0x00); db(0x04);
+ db(0x33); db(0x40); db(0x00); db(0x0e); db(0x30); db(0x3c); db(0x10); db(0x00);
+ db(0x80); db(0x03); db(0x33); db(0x40); db(0x00); db(0x08); db(0x23); db(0x6d);
+ db(0x01); db(0x04); db(0x00); db(0x0a); db(0x23); db(0x4b); db(0x00); db(0x10);
+ db(0x41); db(0xec); db(0x00); db(0x4a); db(0x4e); db(0xae); db(0xfe); db(0xf2);
+ db(0x70); db(0x00); db(0x4e); db(0x75); db(0x24); db(0x49); db(0x20); db(0x4b);
+ db(0x72); db(0x00); db(0x22); db(0x41); db(0x08); db(0x07); db(0x00); db(0x01);
+ db(0x67); db(0x08); db(0x08); db(0x07); db(0x00); db(0x02); db(0x67); db(0x02);
+ db(0x72); db(0x01); db(0x70); db(0xec); db(0x2c); db(0x4c); db(0x4e); db(0xae);
+ db(0xff); db(0x6a); db(0x08); db(0x07); db(0x00); db(0x01); db(0x67); db(0x5c);
+ db(0x08); db(0x07); db(0x00); db(0x02); db(0x66); db(0x56); db(0x20); db(0x52);
+ db(0x74); db(0x02); db(0x52); db(0x82); db(0x4a); db(0x30); db(0x28); db(0xfd);
+ db(0x66); db(0xf8); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x20); db(0x02);
+ db(0x72); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x4a); db(0x80);
+ db(0x67); db(0x3a); db(0x20); db(0x52); db(0x24); db(0x40); db(0x22); db(0x4a);
+ db(0x12); db(0xd8); db(0x66); db(0xfc); db(0x13); db(0x7c); db(0x00); db(0x3a);
+ db(0xff); db(0xff); db(0x42); db(0x11); db(0x2c); db(0x78); db(0x00); db(0x04);
+ db(0x43); db(0xfa); db(0x0e); db(0x18); db(0x70); db(0x00); db(0x4e); db(0xae);
+ db(0xfd); db(0xd8); db(0x2c); db(0x40); db(0x22); db(0x0a); db(0x4e); db(0xae);
+ db(0xff); db(0x52); db(0x22); db(0x4e); db(0x2c); db(0x78); db(0x00); db(0x04);
+ db(0x4e); db(0xae); db(0xfe); db(0x62); db(0x22); db(0x4a); db(0x20); db(0x02);
+ db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x70); db(0x00); db(0x4e); db(0x75);
+ db(0x48); db(0xe7); db(0x3f); db(0x3e); db(0x2c); db(0x01); db(0x7e); db(0x06);
+ db(0x2c); db(0x78); db(0x00); db(0x04); db(0x43); db(0xfa); db(0x0e); db(0x13);
+ db(0x70); db(0x24); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x4a); db(0x80);
+ db(0x66); db(0x0e); db(0x08); db(0x87); db(0x00); db(0x02); db(0x43); db(0xfa);
+ db(0x0e); db(0x01); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8);
+ db(0x28); db(0x40); db(0x20); db(0x3c); db(0x00); db(0x00); db(0x02); db(0x2c);
  db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae);
- db(0xff); db(0x3a); db(0x91); db(0xc8); db(0x24); db(0x40); db(0x4a); db(0x80);
- db(0x67); db(0x1e); db(0x15); db(0x7c); db(0x00); db(0x04); db(0x00); db(0x08);
- db(0x15); db(0x42); db(0x00); db(0x0f); db(0x93); db(0xc9); db(0x4e); db(0xae);
- db(0xfe); db(0xda); db(0x25); db(0x40); db(0x00); db(0x10); db(0x41); db(0xea);
- db(0x00); db(0x14); db(0x61); db(0x00); db(0xff); db(0xb0); db(0x20); db(0x4a);
- db(0x20); db(0x08); db(0x4c); db(0xdf); db(0x44); db(0x04); db(0x4e); db(0x75);
- db(0x48); db(0xe7); db(0x20); db(0x22); db(0x2c); db(0x78); db(0x00); db(0x04);
- db(0x4a); db(0x80); db(0x67); db(0x24); db(0x24); db(0x40); db(0x24); db(0x01);
- db(0x66); db(0x02); db(0x74); db(0x30); db(0x20); db(0x02); db(0x22); db(0x3c);
- db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a);
- db(0x20); db(0x40); db(0x11); db(0x7c); db(0x00); db(0x0a); db(0x00); db(0x08);
- db(0x31); db(0x42); db(0x00); db(0x12); db(0x21); db(0x4a); db(0x00); db(0x0e);
- db(0x4a); db(0x80); db(0x4c); db(0xdf); db(0x44); db(0x04); db(0x4e); db(0x75);
- db(0x48); db(0xe7); db(0x30); db(0x22); db(0x24); db(0x48); db(0x24); db(0x00);
- db(0x26); db(0x01); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x61); db(0x00);
- db(0xff); db(0x6a); db(0x22); db(0x03); db(0x61); db(0x00); db(0xff); db(0xb2);
- db(0x67); db(0x18); db(0x20); db(0x4a); db(0x22); db(0x40); db(0x24); db(0x40);
- db(0x20); db(0x02); db(0x72); db(0x00); db(0x4e); db(0xae); db(0xfe); db(0x44);
- db(0x22); db(0x00); db(0x70); db(0x00); db(0x4a); db(0x81); db(0x66); db(0x02);
- db(0x20); db(0x0a); db(0x4a); db(0x80); db(0x4c); db(0xdf); db(0x44); db(0x0c);
- db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x38); db(0x32); db(0x2c); db(0x78);
- db(0x00); db(0x04); db(0x28); db(0x00); db(0x24); db(0x08); db(0x26); db(0x09);
- db(0x20); db(0x3c); db(0x00); db(0x00); db(0x08); db(0x5c); db(0x22); db(0x3c);
- db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a);
- db(0x4a); db(0x80); db(0x67); db(0x00); db(0x00); db(0x34); db(0x24); db(0x40);
- db(0x15); db(0x7c); db(0x00); db(0x01); db(0x00); db(0x08); db(0x15); db(0x44);
- db(0x00); db(0x09); db(0x25); db(0x42); db(0x00); db(0x0a); db(0x47); db(0xea);
- db(0x00); db(0x5c); db(0x25); db(0x4b); db(0x00); db(0x3a); db(0x47); db(0xeb);
- db(0x08); db(0x00); db(0x25); db(0x4b); db(0x00); db(0x3e); db(0x25); db(0x4b);
- db(0x00); db(0x36); db(0x22); db(0x4a); db(0x24); db(0x43); db(0x97); db(0xcb);
- db(0x24); db(0x09); db(0x4e); db(0xae); db(0xfe); db(0xe6); db(0x20); db(0x02);
- db(0x4c); db(0xdf); db(0x4c); db(0x1c); db(0x4e); db(0x75); db(0x41); db(0xfa);
- db(0x09); db(0xb2); db(0x43); db(0xfa); db(0x01); db(0x5c); db(0x70); db(0x13);
- db(0x61); db(0x00); db(0xff); db(0x98); db(0x4e); db(0x75); db(0x22); db(0x6d);
- db(0x02); db(0x0c); db(0x33); db(0x7c); db(0x00); db(0x0a); db(0x00); db(0x1c);
- db(0x13); db(0x7c); db(0x00); db(0x01); db(0x00); db(0x1e); db(0x4e); db(0xae);
- db(0xfe); db(0x38); db(0x22); db(0x6d); db(0x02); db(0x0c); db(0x25); db(0x69);
- db(0x00); db(0x20); db(0x00); db(0x0e); db(0x25); db(0x69); db(0x00); db(0x24);
- db(0x00); db(0x12); db(0x22); db(0x6d); db(0x02); db(0x08); db(0x13); db(0x7c);
- db(0x00); db(0x01); db(0x00); db(0x1e); db(0x4e); db(0xae); db(0xfe); db(0x38);
- db(0x4e); db(0x75); db(0x42); db(0xaa); db(0x00); db(0x0e); db(0x42); db(0xaa);
- db(0x00); db(0x12); db(0x22); db(0x6d); db(0x02); db(0x08); db(0x13); db(0x7c);
- db(0x00); db(0x01); db(0x00); db(0x1e); db(0x4e); db(0xae); db(0xfe); db(0x38);
- db(0x4e); db(0x75); db(0x00); db(0x00); db(0xff); db(0xff); db(0x00); db(0x00);
+ db(0xff); db(0x3a); db(0x20); db(0x40); db(0x4a); db(0x80); db(0x67); db(0x2c);
+ db(0x21); db(0x4c); db(0x01); db(0x9c); db(0x48); db(0xe7); db(0x00); db(0x8a);
+ db(0x61); db(0x00); db(0xfe); db(0x0a); db(0x4c); db(0xdf); db(0x51); db(0x00);
+ db(0x0c); db(0x80); db(0xff); db(0xff); db(0xff); db(0xfe); db(0x67); db(0x08);
+ db(0x48); db(0x46); db(0x52); db(0x46); db(0x48); db(0x46); db(0x60); db(0xe4);
+ db(0x22); db(0x48); db(0x20); db(0x3c); db(0x00); db(0x00); db(0x02); db(0x2c);
+ db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x22); db(0x4c); db(0x4e); db(0xae);
+ db(0xfe); db(0x62); db(0x4c); db(0xdf); db(0x7c); db(0xfc); db(0x4e); db(0x75);
+ db(0x2c); db(0x78); db(0x00); db(0x04); db(0x93); db(0xc9); db(0x4e); db(0xae);
+ db(0xfe); db(0xda); db(0x20); db(0x40); db(0x4b); db(0xe8); db(0x00); db(0x5c);
+ db(0x43); db(0xfa); db(0x0d); db(0x68); db(0x70); db(0x00); db(0x4e); db(0xae);
+ db(0xfd); db(0xd8); db(0x24); db(0x40); db(0x20); db(0x3c); db(0x00); db(0x00);
+ db(0x00); db(0xb9); db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01);
+ db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x26); db(0x40); db(0x7c); db(0x00);
+ db(0x26); db(0x86); db(0x27); db(0x46); db(0x00); db(0x04); db(0x27); db(0x46);
+ db(0x00); db(0x08); db(0x27); db(0x4a); db(0x00); db(0xa0); db(0x50); db(0xeb);
+ db(0x00); db(0x9e); db(0x93); db(0xc9); db(0x4e); db(0xae); db(0xfe); db(0xda);
+ db(0x27); db(0x40); db(0x00); db(0xb0); db(0x41); db(0xfa); db(0x0c); db(0x50);
+ db(0x70); db(0x00); db(0x72); db(0x00); db(0x61); db(0x00); db(0x02); db(0x8e);
+ db(0x27); db(0x40); db(0x00); db(0xa4); db(0x41); db(0xfa); db(0x0c); db(0x4d);
+ db(0x70); db(0x00); db(0x72); db(0x00); db(0x61); db(0x00); db(0x02); db(0x7e);
+ db(0x27); db(0x40); db(0x00); db(0xa8); db(0x7a); db(0x00); db(0x20); db(0x4d);
+ db(0x4e); db(0xae); db(0xfe); db(0x80); db(0x20); db(0x4d); db(0x4e); db(0xae);
+ db(0xfe); db(0x8c); db(0x28); db(0x40); db(0x26); db(0x2c); db(0x00); db(0x0a);
+ db(0x30); db(0x3c); db(0xff); db(0x40); db(0x61); db(0x00); db(0x01); db(0xbc);
+ db(0x70); db(0x00); db(0x4e); db(0x90); db(0x24); db(0x00); db(0x70); db(0x01);
+ db(0x61); db(0x00); db(0xf9); db(0x80); db(0x08); db(0x02); db(0x00); db(0x01);
+ db(0x67); db(0x06); db(0x70); db(0x01); db(0x61); db(0x00); db(0xfa); db(0xe8);
+ db(0x60); db(0x00); db(0x01); db(0x02); db(0x20); db(0x4d); db(0x4e); db(0xae);
+ db(0xfe); db(0x8c); db(0x28); db(0x40); db(0x4a); db(0x80); db(0x66); db(0x10);
+ db(0x70); db(0x00); db(0x12); db(0x2d); db(0x00); db(0x0f); db(0x03); db(0xc0);
+ db(0x08); db(0xc0); db(0x00); db(0x0d); db(0x4e); db(0xae); db(0xfe); db(0xc2);
+ db(0x4a); db(0x2b); db(0x00); db(0xac); db(0x67); db(0x08); db(0x61); db(0x00);
+ db(0xfb); db(0x94); db(0x42); db(0x2b); db(0x00); db(0xac); db(0x20); db(0x0c);
+ db(0x67); db(0x54); db(0x0c); db(0x6c); db(0x00); db(0x26); db(0x00); db(0x12);
+ db(0x66); db(0x4c); db(0x0c); db(0xac); db(0x40); db(0x00); db(0x00); db(0x00);
+ db(0x00); db(0x14); db(0x66); db(0x42); db(0x0c); db(0x6c); db(0x12); db(0x34);
+ db(0x00); db(0x18); db(0x66); db(0x3a); db(0x20); db(0x6c); db(0x00); db(0x1a);
+ db(0x20); db(0x28); db(0x00); db(0x0c); db(0x02); db(0x80); db(0x80); db(0x00);
+ db(0x00); db(0x08); db(0x0c); db(0x80); db(0x80); db(0x00); db(0x00); db(0x08);
+ db(0x66); db(0x18); db(0x02); db(0xa8); db(0x7f); db(0xff); db(0xff); db(0xff);
+ db(0x00); db(0x0c); db(0x20); db(0x68); db(0x00); db(0x10); db(0x22); db(0x4c);
+ db(0x12); db(0xbc); db(0x00); db(0x08); db(0x4e); db(0xae); db(0xfe); db(0x92);
+ db(0x60); db(0x8a); db(0x22); db(0x4c); db(0x70); db(0x26); db(0x4e); db(0xae);
+ db(0xff); db(0x2e); db(0x60); db(0x00); db(0xff); db(0x80); db(0x74); db(0xfe);
+ db(0x20); db(0x0c); db(0x67); db(0x14); db(0x26); db(0x2c); db(0x00); db(0x0a);
+ db(0x66); db(0x42); db(0x74); db(0xff); db(0x30); db(0x3c); db(0xff); db(0x50);
+ db(0x61); db(0x00); db(0x01); db(0x08); db(0x70); db(0x01); db(0x4e); db(0x90);
+ db(0x45); db(0xeb); db(0x00); db(0x04); db(0x20); db(0x52); db(0x20); db(0x08);
+ db(0x67); db(0x00); db(0xff); db(0x5a); db(0x22); db(0x50); db(0x20); db(0x40);
+ db(0x20); db(0x28); db(0x00); db(0x04); db(0xb4); db(0x80); db(0x66); db(0x16);
+ db(0x48); db(0xe7); db(0x00); db(0xc0); db(0x28); db(0x68); db(0x00); db(0x0a);
+ db(0x61); db(0x4a); db(0x53); db(0x85); db(0x4c); db(0xdf); db(0x03); db(0x00);
+ db(0x24); db(0x89); db(0x20); db(0x49); db(0x60); db(0xd8); db(0x24); db(0x48);
+ db(0x20); db(0x49); db(0x60); db(0xd2); db(0x0c); db(0x85); db(0x00); db(0x00);
+ db(0x00); db(0x14); db(0x65); db(0x00); db(0x00); db(0x0a); db(0x70); db(0x01);
+ db(0x29); db(0x40); db(0x00); db(0x04); db(0x60); db(0x12); db(0x61); db(0x5c);
+ db(0x30); db(0x3c); db(0xff); db(0x30); db(0x61); db(0x00); db(0x00); db(0xb4);
+ db(0x4e); db(0x90); db(0x4a); db(0x80); db(0x67); db(0x0e); db(0x52); db(0x85);
+ db(0x28); db(0xab); db(0x00); db(0x04); db(0x27); db(0x4c); db(0x00); db(0x04);
+ db(0x60); db(0x00); db(0xff); db(0x02); db(0x28); db(0x43); db(0x61); db(0x04);
+ db(0x60); db(0x00); db(0xfe); db(0xfa); db(0x0c); db(0xac); db(0x00); db(0x00);
+ db(0x00); db(0x1f); db(0x00); db(0x08); db(0x66); db(0x04); db(0x61); db(0x00);
+ db(0xfa); db(0x8a); db(0x0c); db(0xac); db(0x00); db(0x00); db(0x04); db(0x09);
+ db(0x00); db(0x08); db(0x66); db(0x12); db(0x61); db(0x00); db(0xfa); db(0xb8);
+ db(0x66); db(0x0c); db(0x30); db(0x3c); db(0xff); db(0x58); db(0x61); db(0x00);
+ db(0x00); db(0x72); db(0x4e); db(0x90); db(0x60); db(0xee); db(0x22); db(0x54);
+ db(0x20); db(0x6c); db(0x00); db(0x04); db(0x29); db(0x4d); db(0x00); db(0x04);
+ db(0x4e); db(0xee); db(0xfe); db(0x92); db(0x2f); db(0x05); db(0x7a); db(0xfc);
+ db(0x24); db(0x53); db(0x2e); db(0x0a); db(0x22); db(0x0a); db(0x67); db(0x00);
+ db(0x00); db(0x0c); db(0x52); db(0x85); db(0x67); db(0x1e); db(0x22); db(0x4a);
+ db(0x24); db(0x52); db(0x60); db(0xf0); db(0x52); db(0x85); db(0x67); db(0x3c);
+ db(0x24); db(0x47); db(0x70); db(0x18); db(0x72); db(0x01); db(0x4e); db(0xae);
+ db(0xff); db(0x3a); db(0x52); db(0x46); db(0x24); db(0x40); db(0x24); db(0x87);
+ db(0x2e); db(0x0a); db(0x60); db(0xe8); db(0x20); db(0x12); db(0x67); db(0x24);
+ db(0x20); db(0x40); db(0x20); db(0x10); db(0x67); db(0x1e); db(0x20); db(0x40);
+ db(0x20); db(0x10); db(0x67); db(0x18); db(0x70); db(0x00); db(0x22); db(0x80);
+ db(0x22); db(0x4a); db(0x24); db(0x51); db(0x70); db(0x18); db(0x4e); db(0xae);
+ db(0xff); db(0x2e); db(0x06); db(0x86); db(0x00); db(0x01); db(0x00); db(0x00);
+ db(0x20); db(0x0a); db(0x66); db(0xec); db(0x26); db(0x87); db(0x2a); db(0x1f);
+ db(0x4e); db(0x75); db(0x41); db(0xfa); db(0xf2); db(0x60); db(0x02); db(0x80);
+ db(0x00); db(0x00); db(0xff); db(0xff); db(0xd1); db(0xc0); db(0x4e); db(0x75);
+ db(0x20); db(0x88); db(0x58); db(0x90); db(0x42); db(0xa8); db(0x00); db(0x04);
+ db(0x21); db(0x48); db(0x00); db(0x08); db(0x4e); db(0x75); db(0x48); db(0xe7);
+ db(0x20); db(0x22); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x70); db(0xff);
+ db(0x4e); db(0xae); db(0xfe); db(0xb6); db(0x91); db(0xc8); db(0x24); db(0x00);
+ db(0x6b); db(0x32); db(0x70); db(0x22); db(0x22); db(0x3c); db(0x00); db(0x01);
+ db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x91); db(0xc8);
+ db(0x24); db(0x40); db(0x4a); db(0x80); db(0x67); db(0x1e); db(0x15); db(0x7c);
+ db(0x00); db(0x04); db(0x00); db(0x08); db(0x15); db(0x42); db(0x00); db(0x0f);
+ db(0x93); db(0xc9); db(0x4e); db(0xae); db(0xfe); db(0xda); db(0x25); db(0x40);
+ db(0x00); db(0x10); db(0x41); db(0xea); db(0x00); db(0x14); db(0x61); db(0x00);
+ db(0xff); db(0xb0); db(0x20); db(0x4a); db(0x20); db(0x08); db(0x4c); db(0xdf);
+ db(0x44); db(0x04); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x20); db(0x22);
+ db(0x2c); db(0x78); db(0x00); db(0x04); db(0x4a); db(0x80); db(0x67); db(0x24);
+ db(0x24); db(0x40); db(0x24); db(0x01); db(0x66); db(0x02); db(0x74); db(0x30);
+ db(0x20); db(0x02); db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01);
+ db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x20); db(0x40); db(0x11); db(0x7c);
+ db(0x00); db(0x0a); db(0x00); db(0x08); db(0x31); db(0x42); db(0x00); db(0x12);
+ db(0x21); db(0x4a); db(0x00); db(0x0e); db(0x4a); db(0x80); db(0x4c); db(0xdf);
+ db(0x44); db(0x04); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x30); db(0x22);
+ db(0x24); db(0x48); db(0x24); db(0x00); db(0x26); db(0x01); db(0x2c); db(0x78);
+ db(0x00); db(0x04); db(0x61); db(0x00); db(0xff); db(0x6a); db(0x22); db(0x03);
+ db(0x61); db(0x00); db(0xff); db(0xb2); db(0x67); db(0x18); db(0x20); db(0x4a);
+ db(0x22); db(0x40); db(0x24); db(0x40); db(0x20); db(0x02); db(0x72); db(0x00);
+ db(0x4e); db(0xae); db(0xfe); db(0x44); db(0x22); db(0x00); db(0x70); db(0x00);
+ db(0x4a); db(0x81); db(0x66); db(0x02); db(0x20); db(0x0a); db(0x4a); db(0x80);
+ db(0x4c); db(0xdf); db(0x44); db(0x0c); db(0x4e); db(0x75); db(0x48); db(0xe7);
+ db(0x38); db(0x32); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x28); db(0x00);
+ db(0x24); db(0x08); db(0x26); db(0x09); db(0x20); db(0x3c); db(0x00); db(0x00);
+ db(0x08); db(0x5c); db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01);
+ db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x4a); db(0x80); db(0x67); db(0x00);
+ db(0x00); db(0x34); db(0x24); db(0x40); db(0x15); db(0x7c); db(0x00); db(0x01);
+ db(0x00); db(0x08); db(0x15); db(0x44); db(0x00); db(0x09); db(0x25); db(0x42);
+ db(0x00); db(0x0a); db(0x47); db(0xea); db(0x00); db(0x5c); db(0x25); db(0x4b);
+ db(0x00); db(0x3a); db(0x47); db(0xeb); db(0x08); db(0x00); db(0x25); db(0x4b);
+ db(0x00); db(0x3e); db(0x25); db(0x4b); db(0x00); db(0x36); db(0x22); db(0x4a);
+ db(0x24); db(0x43); db(0x97); db(0xcb); db(0x24); db(0x09); db(0x4e); db(0xae);
+ db(0xfe); db(0xe6); db(0x20); db(0x02); db(0x4c); db(0xdf); db(0x4c); db(0x1c);
+ db(0x4e); db(0x75); db(0x41); db(0xfa); db(0x09); db(0xb2); db(0x43); db(0xfa);
+ db(0x01); db(0x5c); db(0x70); db(0x13); db(0x61); db(0x00); db(0xff); db(0x98);
+ db(0x4e); db(0x75); db(0x22); db(0x6d); db(0x02); db(0x0c); db(0x33); db(0x7c);
+ db(0x00); db(0x0a); db(0x00); db(0x1c); db(0x13); db(0x7c); db(0x00); db(0x01);
+ db(0x00); db(0x1e); db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x22); db(0x6d);
+ db(0x02); db(0x0c); db(0x25); db(0x69); db(0x00); db(0x20); db(0x00); db(0x0e);
+ db(0x25); db(0x69); db(0x00); db(0x24); db(0x00); db(0x12); db(0x22); db(0x6d);
+ db(0x02); db(0x08); db(0x13); db(0x7c); db(0x00); db(0x01); db(0x00); db(0x1e);
+ db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x4e); db(0x75); db(0x42); db(0xaa);
+ db(0x00); db(0x0e); db(0x42); db(0xaa); db(0x00); db(0x12); db(0x22); db(0x6d);
+ db(0x02); db(0x08); db(0x13); db(0x7c); db(0x00); db(0x01); db(0x00); db(0x1e);
+ db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x4e); db(0x75); db(0x00); db(0x00);
+ db(0xff); db(0xff); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00);
  db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00);
  db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00);
  db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00);
  db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00);
- db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x48); db(0xe7);
- db(0xf8); db(0xfe); db(0x2a); db(0x48); db(0x95); db(0xca); db(0x97); db(0xcb);
- db(0x99); db(0xcc); db(0x78); db(0x00); db(0x2c); db(0x6d); db(0x00); db(0x18);
- db(0x20); db(0x6d); db(0x00); db(0x14); db(0x20); db(0x28); db(0x00); db(0x3c);
- db(0x67); db(0x5c); db(0x20); db(0x40); db(0x41); db(0xe8); db(0x00); db(0x2c);
- db(0x28); db(0x48); db(0x4e); db(0xae); db(0xfc); db(0xe8); db(0x72); db(0xff);
- db(0x74); db(0xff); db(0xb2); db(0x80); db(0x67); db(0x48); db(0x26); db(0x00);
- db(0x2c); db(0x6d); db(0x00); db(0x14); db(0x41); db(0xed); db(0x00); db(0xc0);
- db(0x70); db(0x66); db(0x4e); db(0xae); db(0xff); db(0x7c); db(0x41); db(0xed);
- db(0x00); db(0xc0); db(0x38); db(0x28); db(0x00); db(0x64); db(0x2c); db(0x6d);
- db(0x00); db(0x18); db(0x91); db(0xc8); db(0x43); db(0xed); db(0x00); db(0x38);
- db(0x70); db(0x00); db(0x30); db(0x3c); db(0x00); db(0x58); db(0x22); db(0x3c);
- db(0x80); db(0x00); db(0x10); db(0x00); db(0x24); db(0x03); db(0x4e); db(0xae);
- db(0xfd); db(0x0c); db(0x72); db(0xff); db(0x74); db(0xff); db(0x4a); db(0x80);
- db(0x6b); db(0x0c); db(0x45); db(0xed); db(0x00); db(0x38); db(0x22); db(0x2a);
- db(0x00); db(0x32); db(0x24); db(0x2a); db(0x00); db(0x36); db(0x20); db(0x2c);
- db(0x00); db(0x1c); db(0xb8); db(0x6d); db(0x00); db(0x2c); db(0x66); db(0x12);
- db(0xb0); db(0xad); db(0x00); db(0x28); db(0x66); db(0x0c); db(0xb2); db(0xad);
- db(0x00); db(0x20); db(0x66); db(0x06); db(0xb4); db(0xad); db(0x00); db(0x24);
- db(0x67); db(0x40); db(0x2b); db(0x40); db(0x00); db(0x28); db(0x2b); db(0x41);
- db(0x00); db(0x20); db(0x2b); db(0x42); db(0x00); db(0x24); db(0x3b); db(0x44);
- db(0x00); db(0x2c); db(0x91); db(0xc8); db(0x43); db(0xed); db(0x00); db(0x90);
- db(0x70); db(0x00); db(0x30); db(0x3c); db(0x00); db(0x58); db(0x22); db(0x3c);
- db(0x80); db(0x00); db(0x00); db(0x00); db(0x24); db(0x03); db(0x4e); db(0xae);
- db(0xfd); db(0x0c); db(0x4a); db(0x80); db(0x6b); db(0x04); db(0x47); db(0xed);
- db(0x00); db(0x90); db(0x34); db(0x2d); db(0x00); db(0x2c); db(0x30); db(0x3c);
- db(0xff); db(0x38); db(0x72); db(0x01); db(0x61); db(0x00); db(0xfd); db(0x70);
- db(0x4e); db(0x90); db(0x4c); db(0xdf); db(0x7f); db(0x1f); db(0x4e); db(0x75);
- db(0x2c); db(0x78); db(0x00); db(0x04); db(0x3e); db(0x2e); db(0x00); db(0x14);
- db(0x70); db(0xff); db(0x4e); db(0xae); db(0xfe); db(0xb6); db(0x7c); db(0x00);
- db(0x01); db(0xc6); db(0x93); db(0xc9); db(0x4e); db(0xae); db(0xfe); db(0xda);
- db(0x28); db(0x40); db(0x70); db(0x14); db(0x22); db(0x4c); db(0x4e); db(0xae);
- db(0xfe); db(0xd4); db(0x70); db(0x00); db(0x30); db(0x3c); db(0x02); db(0x10);
- db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae);
- db(0xff); db(0x3a); db(0x2a); db(0x40); db(0x47); db(0xed); db(0x00); db(0x16);
- db(0x27); db(0x4e); db(0x00); db(0x10); db(0x27); db(0x4c); db(0x00); db(0x08);
- db(0x27); db(0x46); db(0x00); db(0x0c); db(0x70); db(0xff); db(0x37); db(0x40);
- db(0x00); db(0x00); db(0x43); db(0xed); db(0x00); db(0x00); db(0x13); db(0x7c);
- db(0x00); db(0x02); db(0x00); db(0x08); db(0x13); db(0x7c); db(0x00); db(0x05);
- db(0x00); db(0x09); db(0x41); db(0xfa); db(0x07); db(0xf6); db(0x23); db(0x48);
- db(0x00); db(0x0a); db(0x41); db(0xfa); db(0x02); db(0xda); db(0x23); db(0x48);
- db(0x00); db(0x12); db(0x23); db(0x4d); db(0x00); db(0x0e); db(0x70); db(0x05);
- db(0x4e); db(0xae); db(0xff); db(0x58); db(0x20); db(0x06); db(0x4e); db(0xae);
- db(0xfe); db(0xc2); db(0x70); db(0x00); db(0x53); db(0xab); db(0x00); db(0x1c);
- db(0x6a); db(0x06); db(0x70); db(0x0a); db(0x27); db(0x40); db(0x00); db(0x1c);
- db(0x4a); db(0xab); db(0x00); db(0x14); db(0x66); db(0x16); db(0x4a); db(0xab);
- db(0x00); db(0x1c); db(0x66); db(0xe0); db(0x43); db(0xfa); db(0x08); db(0x14);
+ db(0x00); db(0x00); db(0x48); db(0xe7); db(0xf8); db(0xfe); db(0x2a); db(0x48);
+ db(0x95); db(0xca); db(0x97); db(0xcb); db(0x99); db(0xcc); db(0x78); db(0x00);
+ db(0x2c); db(0x6d); db(0x00); db(0x18); db(0x20); db(0x6d); db(0x00); db(0x14);
+ db(0x20); db(0x28); db(0x00); db(0x3c); db(0x67); db(0x5c); db(0x20); db(0x40);
+ db(0x41); db(0xe8); db(0x00); db(0x2c); db(0x28); db(0x48); db(0x4e); db(0xae);
+ db(0xfc); db(0xe8); db(0x72); db(0xff); db(0x74); db(0xff); db(0xb2); db(0x80);
+ db(0x67); db(0x48); db(0x26); db(0x00); db(0x2c); db(0x6d); db(0x00); db(0x14);
+ db(0x41); db(0xed); db(0x00); db(0xc0); db(0x70); db(0x66); db(0x4e); db(0xae);
+ db(0xff); db(0x7c); db(0x41); db(0xed); db(0x00); db(0xc0); db(0x38); db(0x28);
+ db(0x00); db(0x64); db(0x2c); db(0x6d); db(0x00); db(0x18); db(0x91); db(0xc8);
+ db(0x43); db(0xed); db(0x00); db(0x38); db(0x70); db(0x00); db(0x30); db(0x3c);
+ db(0x00); db(0x58); db(0x22); db(0x3c); db(0x80); db(0x00); db(0x10); db(0x00);
+ db(0x24); db(0x03); db(0x4e); db(0xae); db(0xfd); db(0x0c); db(0x72); db(0xff);
+ db(0x74); db(0xff); db(0x4a); db(0x80); db(0x6b); db(0x0c); db(0x45); db(0xed);
+ db(0x00); db(0x38); db(0x22); db(0x2a); db(0x00); db(0x32); db(0x24); db(0x2a);
+ db(0x00); db(0x36); db(0x20); db(0x2c); db(0x00); db(0x1c); db(0xb8); db(0x6d);
+ db(0x00); db(0x2c); db(0x66); db(0x12); db(0xb0); db(0xad); db(0x00); db(0x28);
+ db(0x66); db(0x0c); db(0xb2); db(0xad); db(0x00); db(0x20); db(0x66); db(0x06);
+ db(0xb4); db(0xad); db(0x00); db(0x24); db(0x67); db(0x40); db(0x2b); db(0x40);
+ db(0x00); db(0x28); db(0x2b); db(0x41); db(0x00); db(0x20); db(0x2b); db(0x42);
+ db(0x00); db(0x24); db(0x3b); db(0x44); db(0x00); db(0x2c); db(0x91); db(0xc8);
+ db(0x43); db(0xed); db(0x00); db(0x90); db(0x70); db(0x00); db(0x30); db(0x3c);
+ db(0x00); db(0x58); db(0x22); db(0x3c); db(0x80); db(0x00); db(0x00); db(0x00);
+ db(0x24); db(0x03); db(0x4e); db(0xae); db(0xfd); db(0x0c); db(0x4a); db(0x80);
+ db(0x6b); db(0x04); db(0x47); db(0xed); db(0x00); db(0x90); db(0x34); db(0x2d);
+ db(0x00); db(0x2c); db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x01);
+ db(0x61); db(0x00); db(0xfd); db(0x70); db(0x4e); db(0x90); db(0x4c); db(0xdf);
+ db(0x7f); db(0x1f); db(0x4e); db(0x75); db(0x2c); db(0x78); db(0x00); db(0x04);
+ db(0x3e); db(0x2e); db(0x00); db(0x14); db(0x70); db(0xff); db(0x4e); db(0xae);
+ db(0xfe); db(0xb6); db(0x7c); db(0x00); db(0x01); db(0xc6); db(0x93); db(0xc9);
+ db(0x4e); db(0xae); db(0xfe); db(0xda); db(0x28); db(0x40); db(0x70); db(0x14);
+ db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0xd4); db(0x70); db(0x00);
+ db(0x30); db(0x3c); db(0x02); db(0x10); db(0x22); db(0x3c); db(0x00); db(0x01);
+ db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x2a); db(0x40);
+ db(0x47); db(0xed); db(0x00); db(0x16); db(0x27); db(0x4e); db(0x00); db(0x10);
+ db(0x27); db(0x4c); db(0x00); db(0x08); db(0x27); db(0x46); db(0x00); db(0x0c);
+ db(0x70); db(0xff); db(0x37); db(0x40); db(0x00); db(0x00); db(0x43); db(0xed);
+ db(0x00); db(0x00); db(0x13); db(0x7c); db(0x00); db(0x02); db(0x00); db(0x08);
+ db(0x13); db(0x7c); db(0x00); db(0x05); db(0x00); db(0x09); db(0x41); db(0xfa);
+ db(0x07); db(0xf6); db(0x23); db(0x48); db(0x00); db(0x0a); db(0x41); db(0xfa);
+ db(0x02); db(0xda); db(0x23); db(0x48); db(0x00); db(0x12); db(0x23); db(0x4d);
+ db(0x00); db(0x0e); db(0x70); db(0x05); db(0x4e); db(0xae); db(0xff); db(0x58);
+ db(0x20); db(0x06); db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x70); db(0x00);
+ db(0x53); db(0xab); db(0x00); db(0x1c); db(0x6a); db(0x06); db(0x70); db(0x0a);
+ db(0x27); db(0x40); db(0x00); db(0x1c); db(0x4a); db(0xab); db(0x00); db(0x14);
+ db(0x66); db(0x16); db(0x4a); db(0xab); db(0x00); db(0x1c); db(0x66); db(0xe0);
+ db(0x43); db(0xfa); db(0x08); db(0x14); db(0x70); db(0x00); db(0x4e); db(0xae);
+ db(0xfd); db(0xd8); db(0x27); db(0x40); db(0x00); db(0x14); db(0x67); db(0xd0);
+ db(0x4a); db(0xab); db(0x00); db(0x18); db(0x66); db(0x18); db(0x4a); db(0xab);
+ db(0x00); db(0x1c); db(0x66); db(0xc4); db(0x43); db(0xfa); db(0x08); db(0x0a);
  db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x27); db(0x40);
- db(0x00); db(0x14); db(0x67); db(0xd0); db(0x4a); db(0xab); db(0x00); db(0x18);
- db(0x66); db(0x18); db(0x4a); db(0xab); db(0x00); db(0x1c); db(0x66); db(0xc4);
- db(0x43); db(0xfa); db(0x08); db(0x0a); db(0x70); db(0x00); db(0x4e); db(0xae);
- db(0xfd); db(0xd8); db(0x27); db(0x40); db(0x00); db(0x18); db(0x67); db(0x00);
- db(0xff); db(0xb4); db(0x4a); db(0xad); db(0x02); db(0x08); db(0x66); db(0x38);
- db(0x4a); db(0xab); db(0x00); db(0x1c); db(0x66); db(0xa6); db(0x4e); db(0xae);
- db(0xff); db(0x7c); db(0x41); db(0xee); db(0x01); db(0x5e); db(0x43); db(0xfa);
- db(0x06); db(0xea); db(0x4e); db(0xae); db(0xfe); db(0xec); db(0x24); db(0x00);
- db(0x4e); db(0xae); db(0xff); db(0x76); db(0x4a); db(0x82); db(0x67); db(0x8c);
- db(0x41); db(0xfa); db(0x06); db(0xd8); db(0x70); db(0x00); db(0x72); db(0x00);
- db(0x61); db(0x00); db(0xfd); db(0x16); db(0x2b); db(0x40); db(0x02); db(0x08);
- db(0x67); db(0x00); db(0x02); db(0x42); db(0x60); db(0x00); db(0xff); db(0x76);
- db(0x4a); db(0xad); db(0x02); db(0x0c); db(0x66); db(0x48); db(0x4a); db(0xab);
- db(0x00); db(0x1c); db(0x66); db(0x00); db(0xff); db(0x68); db(0x4e); db(0xae);
- db(0xff); db(0x7c); db(0x41); db(0xee); db(0x01); db(0x5e); db(0x43); db(0xfa);
- db(0x06); db(0xb7); db(0x4e); db(0xae); db(0xfe); db(0xec); db(0x24); db(0x00);
- db(0x4e); db(0xae); db(0xff); db(0x76); db(0x4a); db(0x82); db(0x67); db(0x00);
- db(0xff); db(0x4c); db(0x41); db(0xfa); db(0x06); db(0xa3); db(0x70); db(0x00);
- db(0x72); db(0x00); db(0x61); db(0x00); db(0xfc); db(0xd4); db(0x2b); db(0x40);
- db(0x02); db(0x0c); db(0x67); db(0x00); db(0x02); db(0x00); db(0x30); db(0x3c);
- db(0xff); db(0x38); db(0x72); db(0x00); db(0x61); db(0x00); db(0xfc); db(0x20);
- db(0x4e); db(0x90); db(0x60); db(0x00); db(0xff); db(0x28); db(0x0c); db(0x47);
- db(0x00); db(0x24); db(0x65); db(0x12); db(0x53); db(0xab); db(0x00); db(0x34);
- db(0x6a); db(0x0c); db(0x20); db(0x4b); db(0x61); db(0x00); db(0xfd); db(0xc8);
- db(0x70); db(0x32); db(0x27); db(0x40); db(0x00); db(0x34); db(0x22); db(0x6d);
- db(0x02); db(0x08); db(0x45); db(0xed); db(0x01); db(0x3c); db(0x33); db(0x7c);
- db(0x00); db(0x0b); db(0x00); db(0x1c); db(0x23); db(0x7c); db(0x00); db(0x00);
- db(0x00); db(0x16); db(0x00); db(0x24); db(0x23); db(0x4a); db(0x00); db(0x28);
- db(0x10); db(0x3a); db(0xfd); db(0x78); db(0x0c); db(0x47); db(0x00); db(0x27);
- db(0x65); db(0x00); db(0x01); db(0x62); db(0x08); db(0x00); db(0x00); db(0x01);
- db(0x67); db(0x00); db(0x01); db(0x5a); db(0x41); db(0xed); db(0x01); db(0x68);
- db(0x25); db(0x48); db(0x00); db(0x0a); db(0x15); db(0x7c); db(0x00); db(0x13);
- db(0x00); db(0x04); db(0x15); db(0x7c); db(0x00); db(0x03); db(0x00); db(0x05);
- db(0x42); db(0x90); db(0x42); db(0xa8); db(0x00); db(0x04); db(0x42); db(0x6a);
- db(0x00); db(0x06); db(0x42); db(0xa8); db(0x00); db(0x08); db(0x42); db(0x68);
- db(0x00); db(0x0c); db(0x22); db(0x3a); db(0xfd); db(0x60); db(0x02); db(0x41);
- db(0x00); db(0x07); db(0x70); db(0x07); db(0x90); db(0x41); db(0xe1); db(0x48);
- db(0xe9); db(0x48); db(0x35); db(0x40); db(0x00); db(0x08); db(0x31); db(0x7a);
- db(0xfd); db(0x34); db(0x00); db(0x0e); db(0x42); db(0x68); db(0x00); db(0x10);
- db(0x31); db(0x7a); db(0xfd); db(0x2c); db(0x00); db(0x12); db(0x42); db(0x68);
- db(0x00); db(0x14); db(0x31); db(0x7a); db(0xfd); db(0x1a); db(0x00); db(0x16);
- db(0x42); db(0x68); db(0x00); db(0x18); db(0x31); db(0x7a); db(0xfd); db(0x12);
- db(0x00); db(0x1a); db(0x43); db(0xed); db(0x01); db(0x88); db(0x21); db(0x49);
- db(0x00); db(0x1c); db(0x22); db(0xfc); db(0x80); db(0x03); db(0xa0); db(0x06);
- db(0x30); db(0x3a); db(0xfd); db(0x18); db(0x48); db(0xc0); db(0xe1); db(0x80);
- db(0x22); db(0xc0); db(0x22); db(0xfc); db(0x80); db(0x03); db(0xa0); db(0x07);
- db(0x22); db(0xfa); db(0xfd); db(0x0a); db(0x70); db(0x00); db(0x30); db(0x3a);
- db(0xfc); db(0xf2); db(0x6b); db(0x08); db(0x22); db(0xfc); db(0x80); db(0x03);
- db(0xa0); db(0x09); db(0x22); db(0xc0); db(0x30); db(0x3a); db(0xfc); db(0xe6);
- db(0x6b); db(0x08); db(0x22); db(0xfc); db(0x80); db(0x03); db(0xa0); db(0x0a);
- db(0x22); db(0xc0); db(0x30); db(0x3a); db(0xfc); db(0xce); db(0x6b); db(0x14);
- db(0x22); db(0xfc); db(0x80); db(0x03); db(0xa0); db(0x02); db(0x22); db(0xc0);
- db(0x30); db(0x3a); db(0xfc); db(0xc6); db(0x22); db(0xfc); db(0x80); db(0x03);
- db(0xa0); db(0x01); db(0x22); db(0xc0); db(0x30); db(0x3a); db(0xfc); db(0xc0);
- db(0x6b); db(0x10); db(0x22); db(0xfc); db(0x80); db(0x03); db(0xa0); db(0x03);
- db(0x30); db(0x3a); db(0xfc); db(0xba); db(0x48); db(0xc0); db(0xe1); db(0x80);
- db(0x22); db(0xc0); db(0x30); db(0x3a); db(0xfc); db(0xac); db(0x6b); db(0x10);
- db(0x22); db(0xfc); db(0x80); db(0x03); db(0xa0); db(0x04); db(0x30); db(0x3a);
- db(0xfc); db(0xa6); db(0x48); db(0xc0); db(0xe1); db(0x80); db(0x22); db(0xc0);
- db(0x30); db(0x3a); db(0xfc); db(0x98); db(0x6b); db(0x10); db(0x22); db(0xfc);
- db(0x80); db(0x03); db(0xa0); db(0x05); db(0x30); db(0x3a); db(0xfc); db(0x92);
- db(0x48); db(0xc0); db(0xe1); db(0x80); db(0x22); db(0xc0); db(0x70); db(0x00);
- db(0x30); db(0x3a); db(0xfc); db(0x8e); db(0x6b); db(0x08); db(0x22); db(0xfc);
- db(0x80); db(0x03); db(0xa0); db(0x08); db(0x22); db(0xc0); db(0x42); db(0x91);
- db(0x61); db(0x00); db(0xfc); db(0x40); db(0x36); db(0x3c); db(0x00); db(0x68);
- db(0x74); db(0x01); db(0x28); db(0x3a); db(0xfc); db(0x70); db(0x20); db(0x04);
- db(0xc0); db(0x82); db(0x22); db(0x2b); db(0x00); db(0x04); db(0xc2); db(0x82);
- db(0xb2); db(0x80); db(0x67); db(0x22); db(0x42); db(0x92); db(0x35); db(0x7c);
- db(0x02); db(0x00); db(0x00); db(0x04); db(0x42); db(0xaa); db(0x00); db(0x0a);
- db(0x32); db(0x03); db(0x4a); db(0x00); db(0x66); db(0x04); db(0x08); db(0xc1);
- db(0x00); db(0x07); db(0x35); db(0x41); db(0x00); db(0x06); db(0x42); db(0x6a);
- db(0x00); db(0x08); db(0x61); db(0x00); db(0xfc); db(0x06); db(0x52); db(0x43);
- db(0xd4); db(0x42); db(0x0c); db(0x42); db(0x00); db(0x08); db(0x66); db(0xc6);
- db(0x27); db(0x44); db(0x00); db(0x04); db(0x10); db(0x3a); db(0xfc); db(0x0c);
- db(0x08); db(0x00); db(0x00); db(0x00); db(0x67); db(0x00); db(0xfd); db(0x7e);
- db(0x42); db(0x92); db(0x35); db(0x7c); db(0x04); db(0x00); db(0x00); db(0x04);
- db(0x42); db(0x6a); db(0x00); db(0x06); db(0x42); db(0x6a); db(0x00); db(0x08);
- db(0x20); db(0x6b); db(0x00); db(0x14); db(0x30); db(0x3a); db(0xfc); db(0x14);
- db(0x32); db(0x28); db(0x00); db(0x30); db(0xd2); db(0x41); db(0x90); db(0x41);
- db(0x6a); db(0x02); db(0x70); db(0x00); db(0x35); db(0x40); db(0x00); db(0x0a);
- db(0x30); db(0x3a); db(0xfc); db(0x02); db(0x32); db(0x28); db(0x00); db(0x2e);
+ db(0x00); db(0x18); db(0x67); db(0x00); db(0xff); db(0xb4); db(0x4a); db(0xad);
+ db(0x02); db(0x08); db(0x66); db(0x38); db(0x4a); db(0xab); db(0x00); db(0x1c);
+ db(0x66); db(0xa6); db(0x4e); db(0xae); db(0xff); db(0x7c); db(0x41); db(0xee);
+ db(0x01); db(0x5e); db(0x43); db(0xfa); db(0x06); db(0xea); db(0x4e); db(0xae);
+ db(0xfe); db(0xec); db(0x24); db(0x00); db(0x4e); db(0xae); db(0xff); db(0x76);
+ db(0x4a); db(0x82); db(0x67); db(0x8c); db(0x41); db(0xfa); db(0x06); db(0xd8);
+ db(0x70); db(0x00); db(0x72); db(0x00); db(0x61); db(0x00); db(0xfd); db(0x16);
+ db(0x2b); db(0x40); db(0x02); db(0x08); db(0x67); db(0x00); db(0x02); db(0x42);
+ db(0x60); db(0x00); db(0xff); db(0x76); db(0x4a); db(0xad); db(0x02); db(0x0c);
+ db(0x66); db(0x48); db(0x4a); db(0xab); db(0x00); db(0x1c); db(0x66); db(0x00);
+ db(0xff); db(0x68); db(0x4e); db(0xae); db(0xff); db(0x7c); db(0x41); db(0xee);
+ db(0x01); db(0x5e); db(0x43); db(0xfa); db(0x06); db(0xb7); db(0x4e); db(0xae);
+ db(0xfe); db(0xec); db(0x24); db(0x00); db(0x4e); db(0xae); db(0xff); db(0x76);
+ db(0x4a); db(0x82); db(0x67); db(0x00); db(0xff); db(0x4c); db(0x41); db(0xfa);
+ db(0x06); db(0xa3); db(0x70); db(0x00); db(0x72); db(0x00); db(0x61); db(0x00);
+ db(0xfc); db(0xd4); db(0x2b); db(0x40); db(0x02); db(0x0c); db(0x67); db(0x00);
+ db(0x02); db(0x00); db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x00);
+ db(0x61); db(0x00); db(0xfc); db(0x20); db(0x4e); db(0x90); db(0x60); db(0x00);
+ db(0xff); db(0x28); db(0x0c); db(0x47); db(0x00); db(0x24); db(0x65); db(0x12);
+ db(0x53); db(0xab); db(0x00); db(0x34); db(0x6a); db(0x0c); db(0x20); db(0x4b);
+ db(0x61); db(0x00); db(0xfd); db(0xc8); db(0x70); db(0x32); db(0x27); db(0x40);
+ db(0x00); db(0x34); db(0x22); db(0x6d); db(0x02); db(0x08); db(0x45); db(0xed);
+ db(0x01); db(0x3c); db(0x33); db(0x7c); db(0x00); db(0x0b); db(0x00); db(0x1c);
+ db(0x23); db(0x7c); db(0x00); db(0x00); db(0x00); db(0x16); db(0x00); db(0x24);
+ db(0x23); db(0x4a); db(0x00); db(0x28); db(0x10); db(0x3a); db(0xfd); db(0x78);
+ db(0x0c); db(0x47); db(0x00); db(0x27); db(0x65); db(0x00); db(0x01); db(0x62);
+ db(0x08); db(0x00); db(0x00); db(0x01); db(0x67); db(0x00); db(0x01); db(0x5a);
+ db(0x41); db(0xed); db(0x01); db(0x68); db(0x25); db(0x48); db(0x00); db(0x0a);
+ db(0x15); db(0x7c); db(0x00); db(0x13); db(0x00); db(0x04); db(0x15); db(0x7c);
+ db(0x00); db(0x03); db(0x00); db(0x05); db(0x42); db(0x90); db(0x42); db(0xa8);
+ db(0x00); db(0x04); db(0x42); db(0x6a); db(0x00); db(0x06); db(0x42); db(0xa8);
+ db(0x00); db(0x08); db(0x42); db(0x68); db(0x00); db(0x0c); db(0x22); db(0x3a);
+ db(0xfd); db(0x60); db(0x02); db(0x41); db(0x00); db(0x07); db(0x70); db(0x07);
+ db(0x90); db(0x41); db(0xe1); db(0x48); db(0xe9); db(0x48); db(0x35); db(0x40);
+ db(0x00); db(0x08); db(0x31); db(0x7a); db(0xfd); db(0x34); db(0x00); db(0x0e);
+ db(0x42); db(0x68); db(0x00); db(0x10); db(0x31); db(0x7a); db(0xfd); db(0x2c);
+ db(0x00); db(0x12); db(0x42); db(0x68); db(0x00); db(0x14); db(0x31); db(0x7a);
+ db(0xfd); db(0x1a); db(0x00); db(0x16); db(0x42); db(0x68); db(0x00); db(0x18);
+ db(0x31); db(0x7a); db(0xfd); db(0x12); db(0x00); db(0x1a); db(0x43); db(0xed);
+ db(0x01); db(0x88); db(0x21); db(0x49); db(0x00); db(0x1c); db(0x22); db(0xfc);
+ db(0x80); db(0x03); db(0xa0); db(0x06); db(0x30); db(0x3a); db(0xfd); db(0x18);
+ db(0x48); db(0xc0); db(0xe1); db(0x80); db(0x22); db(0xc0); db(0x22); db(0xfc);
+ db(0x80); db(0x03); db(0xa0); db(0x07); db(0x22); db(0xfa); db(0xfd); db(0x0a);
+ db(0x70); db(0x00); db(0x30); db(0x3a); db(0xfc); db(0xf2); db(0x6b); db(0x08);
+ db(0x22); db(0xfc); db(0x80); db(0x03); db(0xa0); db(0x09); db(0x22); db(0xc0);
+ db(0x30); db(0x3a); db(0xfc); db(0xe6); db(0x6b); db(0x08); db(0x22); db(0xfc);
+ db(0x80); db(0x03); db(0xa0); db(0x0a); db(0x22); db(0xc0); db(0x30); db(0x3a);
+ db(0xfc); db(0xce); db(0x6b); db(0x14); db(0x22); db(0xfc); db(0x80); db(0x03);
+ db(0xa0); db(0x02); db(0x22); db(0xc0); db(0x30); db(0x3a); db(0xfc); db(0xc6);
+ db(0x22); db(0xfc); db(0x80); db(0x03); db(0xa0); db(0x01); db(0x22); db(0xc0);
+ db(0x30); db(0x3a); db(0xfc); db(0xc0); db(0x6b); db(0x10); db(0x22); db(0xfc);
+ db(0x80); db(0x03); db(0xa0); db(0x03); db(0x30); db(0x3a); db(0xfc); db(0xba);
+ db(0x48); db(0xc0); db(0xe1); db(0x80); db(0x22); db(0xc0); db(0x30); db(0x3a);
+ db(0xfc); db(0xac); db(0x6b); db(0x10); db(0x22); db(0xfc); db(0x80); db(0x03);
+ db(0xa0); db(0x04); db(0x30); db(0x3a); db(0xfc); db(0xa6); db(0x48); db(0xc0);
+ db(0xe1); db(0x80); db(0x22); db(0xc0); db(0x30); db(0x3a); db(0xfc); db(0x98);
+ db(0x6b); db(0x10); db(0x22); db(0xfc); db(0x80); db(0x03); db(0xa0); db(0x05);
+ db(0x30); db(0x3a); db(0xfc); db(0x92); db(0x48); db(0xc0); db(0xe1); db(0x80);
+ db(0x22); db(0xc0); db(0x70); db(0x00); db(0x30); db(0x3a); db(0xfc); db(0x8e);
+ db(0x6b); db(0x08); db(0x22); db(0xfc); db(0x80); db(0x03); db(0xa0); db(0x08);
+ db(0x22); db(0xc0); db(0x42); db(0x91); db(0x61); db(0x00); db(0xfc); db(0x40);
+ db(0x36); db(0x3c); db(0x00); db(0x68); db(0x74); db(0x01); db(0x28); db(0x3a);
+ db(0xfc); db(0x70); db(0x20); db(0x04); db(0xc0); db(0x82); db(0x22); db(0x2b);
+ db(0x00); db(0x04); db(0xc2); db(0x82); db(0xb2); db(0x80); db(0x67); db(0x22);
+ db(0x42); db(0x92); db(0x35); db(0x7c); db(0x02); db(0x00); db(0x00); db(0x04);
+ db(0x42); db(0xaa); db(0x00); db(0x0a); db(0x32); db(0x03); db(0x4a); db(0x00);
+ db(0x66); db(0x04); db(0x08); db(0xc1); db(0x00); db(0x07); db(0x35); db(0x41);
+ db(0x00); db(0x06); db(0x42); db(0x6a); db(0x00); db(0x08); db(0x61); db(0x00);
+ db(0xfc); db(0x06); db(0x52); db(0x43); db(0xd4); db(0x42); db(0x0c); db(0x42);
+ db(0x00); db(0x08); db(0x66); db(0xc6); db(0x27); db(0x44); db(0x00); db(0x04);
+ db(0x10); db(0x3a); db(0xfc); db(0x0c); db(0x08); db(0x00); db(0x00); db(0x00);
+ db(0x67); db(0x00); db(0xfd); db(0x7e); db(0x42); db(0x92); db(0x35); db(0x7c);
+ db(0x04); db(0x00); db(0x00); db(0x04); db(0x42); db(0x6a); db(0x00); db(0x06);
+ db(0x42); db(0x6a); db(0x00); db(0x08); db(0x20); db(0x6b); db(0x00); db(0x14);
+ db(0x30); db(0x3a); db(0xfc); db(0x14); db(0x32); db(0x28); db(0x00); db(0x30);
  db(0xd2); db(0x41); db(0x90); db(0x41); db(0x6a); db(0x02); db(0x70); db(0x00);
- db(0x35); db(0x40); db(0x00); db(0x0c); db(0x61); db(0x00); db(0xfb); db(0x78);
- db(0x60); db(0x00); db(0xfd); db(0x3a); db(0x4e); db(0x75); db(0x4a); db(0xa9);
- db(0x02); db(0x08); db(0x67); db(0x14); db(0x4a); db(0xa9); db(0x02); db(0x0c);
- db(0x67); db(0x0e); db(0x30); db(0x3a); db(0xfb); db(0xb0); db(0xb0); db(0x69);
- db(0x00); db(0x16); db(0x67); db(0x14); db(0x33); db(0x40); db(0x00); db(0x16);
- db(0x2c); db(0x69); db(0x00); db(0x26); db(0x20); db(0x29); db(0x00); db(0x22);
- db(0x22); db(0x69); db(0x00); db(0x1e); db(0x4e); db(0xae); db(0xfe); db(0xbc);
- db(0x53); db(0x69); db(0x00); db(0x46); db(0x6a); db(0x12); db(0x33); db(0x7c);
- db(0x00); db(0x32); db(0x00); db(0x46); db(0x30); db(0x3c); db(0xff); db(0x38);
- db(0x72); db(0x02); db(0x61); db(0x00); db(0xf9); db(0xea); db(0x4e); db(0x90);
- db(0x41); db(0xf9); db(0x00); db(0xdf); db(0xf0); db(0x00); db(0x70); db(0x00);
- db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x00); db(0x06); db(0x30); db(0x3c);
- db(0xff); db(0x38); db(0x72); db(0x11); db(0x61); db(0x00); db(0xf9); db(0xd0);
- db(0x4e); db(0x90); db(0x08); db(0x00); db(0x00); db(0x00); db(0x67); db(0x42);
- db(0x2c); db(0x78); db(0x00); db(0x04); db(0x20); db(0x3c); db(0x00); db(0x00);
- db(0x00); db(0x88); db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01);
- db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x4a); db(0x80); db(0x67); db(0x00);
- db(0x00); db(0x40); db(0x2a); db(0x40); db(0x2b); db(0x4e); db(0x00); db(0x14);
- db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x0e); db(0x61); db(0x00);
- db(0xf9); db(0x9e); db(0x20); db(0x0d); db(0x4e); db(0x90); db(0x41); db(0xfa);
- db(0x04); db(0x6c); db(0x43); db(0xfa); db(0x01); db(0x14); db(0x70); db(0xf6);
- db(0x22); db(0x3c); db(0x00); db(0x00); db(0x27); db(0x10); db(0x61); db(0x00);
- db(0xee); db(0xcc); db(0x70); db(0x00); db(0x4c); db(0xdf); db(0x60); db(0x00);
- db(0x4e); db(0x75); db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x0a);
- db(0x61); db(0x00); db(0xf9); db(0x74); db(0x4e); db(0x90); db(0x4e); db(0x75);
- db(0x61); db(0xf0); db(0x20); db(0x0d); db(0x67); db(0x1c); db(0x2c); db(0x6d);
- db(0x00); db(0x14); db(0x20); db(0x2d); db(0x00); db(0x18); db(0x67); db(0x06);
- db(0x22); db(0x40); db(0x4e); db(0xae); db(0xfe); db(0x62); db(0x22); db(0x4d);
- db(0x20); db(0x3c); db(0x00); db(0x00); db(0x00); db(0x88); db(0x4e); db(0xae);
- db(0xff); db(0x2e); db(0x70); db(0x00); db(0x4e); db(0x75); db(0x48); db(0xe7);
- db(0x38); db(0x3e); db(0x2c); db(0x6d); db(0x00); db(0x18); db(0x41); db(0xfa);
- db(0x03); db(0xfa); db(0x22); db(0x08); db(0x24); db(0x3c); db(0x00); db(0x00);
- db(0x03); db(0xed); db(0x4e); db(0xae); db(0xff); db(0xe2); db(0x28); db(0x00);
- db(0x67); db(0x4c); db(0x45); db(0xed); db(0x00); db(0x68); db(0x42); db(0x92);
- db(0x34); db(0xaa); db(0x00); db(0x02); db(0x24); db(0x0a); db(0x54); db(0x82);
- db(0x76); db(0x02); db(0x22); db(0x04); db(0x4e); db(0xae); db(0xff); db(0xd6);
- db(0xb6); db(0x80); db(0x66); db(0x32); db(0x0c); db(0x92); db(0x50); db(0x4e);
- db(0x54); db(0x52); db(0x66); db(0xe4); db(0x24); db(0x0a); db(0x76); db(0x04);
- db(0x22); db(0x04); db(0x4e); db(0xae); db(0xff); db(0xd6); db(0x24); db(0x0a);
- db(0x76); db(0x20); db(0x22); db(0x04); db(0x4e); db(0xae); db(0xff); db(0xd6);
- db(0xb6); db(0x80); db(0x66); db(0x12); db(0x4a); db(0x6a); db(0x00); db(0x10);
- db(0x66); db(0xc4); db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x10);
- db(0x61); db(0x00); db(0xf8); db(0xe4); db(0x4e); db(0x90); db(0x22); db(0x04);
- db(0x67); db(0x04); db(0x4e); db(0xae); db(0xff); db(0xdc); db(0x4c); db(0xdf);
- db(0x7c); db(0x1c); db(0x4e); db(0x75); db(0x2c); db(0x6d); db(0x00); db(0x18);
- db(0x41); db(0xfa); db(0x03); db(0x72); db(0x22); db(0x08); db(0x74); db(0xfe);
- db(0x4e); db(0xae); db(0xff); db(0xac); db(0x22); db(0x00); db(0x67); db(0x34);
- db(0x4e); db(0xae); db(0xff); db(0xa6); db(0x2c); db(0x6d); db(0x00); db(0x14);
- db(0x45); db(0xed); db(0x00); db(0x38); db(0x70); db(0xff); db(0x4e); db(0xae);
- db(0xfe); db(0xb6); db(0x15); db(0x40); db(0x00); db(0x14); db(0x41); db(0xfa);
- db(0x03); db(0x62); db(0x24); db(0x88); db(0x25); db(0x7c); db(0x00); db(0x00);
- db(0x00); db(0x12); db(0x00); db(0x0c); db(0x25); db(0x6d); db(0x00); db(0x08);
- db(0x00); db(0x10); db(0x2c); db(0x6d); db(0x00); db(0x18); db(0x22); db(0x0a);
- db(0x4e); db(0xae); db(0xfc); db(0x88); db(0x2c); db(0x6d); db(0x00); db(0x14);
- db(0x4e); db(0x75); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x10);
- db(0x00); db(0x00); db(0x00); db(0x00); db(0x30); db(0x3c); db(0xff); db(0x38);
- db(0x72); db(0x0d); db(0x61); db(0x00); db(0xf8); db(0x72); db(0x4e); db(0x90);
- db(0x4a); db(0x80); db(0x67); db(0x00); db(0xfe); db(0xfc); db(0x2a); db(0x40);
- db(0x2c); db(0x6d); db(0x00); db(0x14); db(0x93); db(0xc9); db(0x4e); db(0xae);
- db(0xfe); db(0xda); db(0x2b); db(0x40); db(0x00); db(0x08); db(0x43); db(0xfa);
- db(0x03); db(0x8e); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8);
- db(0x2b); db(0x40); db(0x00); db(0x18); db(0x67); db(0x00); db(0xfe); db(0xda);
- db(0x2c); db(0x40); db(0x72); db(0x32); db(0x4e); db(0xae); db(0xff); db(0x3a);
- db(0x41); db(0xfa); db(0x02); db(0xc6); db(0x22); db(0x08); db(0x74); db(0xfe);
- db(0x4e); db(0xae); db(0xff); db(0xac); db(0x4a); db(0x80); db(0x67); db(0xea);
- db(0x22); db(0x00); db(0x4e); db(0xae); db(0xff); db(0xa6); db(0x72); db(0x32);
- db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x41); db(0xfa); db(0x02); db(0xb0);
+ db(0x35); db(0x40); db(0x00); db(0x0a); db(0x30); db(0x3a); db(0xfc); db(0x02);
+ db(0x32); db(0x28); db(0x00); db(0x2e); db(0xd2); db(0x41); db(0x90); db(0x41);
+ db(0x6a); db(0x02); db(0x70); db(0x00); db(0x35); db(0x40); db(0x00); db(0x0c);
+ db(0x61); db(0x00); db(0xfb); db(0x78); db(0x60); db(0x00); db(0xfd); db(0x3a);
+ db(0x4e); db(0x75); db(0x4a); db(0xa9); db(0x02); db(0x08); db(0x67); db(0x14);
+ db(0x4a); db(0xa9); db(0x02); db(0x0c); db(0x67); db(0x0e); db(0x30); db(0x3a);
+ db(0xfb); db(0xb0); db(0xb0); db(0x69); db(0x00); db(0x16); db(0x67); db(0x14);
+ db(0x33); db(0x40); db(0x00); db(0x16); db(0x2c); db(0x69); db(0x00); db(0x26);
+ db(0x20); db(0x29); db(0x00); db(0x22); db(0x22); db(0x69); db(0x00); db(0x1e);
+ db(0x4e); db(0xae); db(0xfe); db(0xbc); db(0x53); db(0x69); db(0x00); db(0x46);
+ db(0x6a); db(0x12); db(0x33); db(0x7c); db(0x00); db(0x32); db(0x00); db(0x46);
+ db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x02); db(0x61); db(0x00);
+ db(0xf9); db(0xea); db(0x4e); db(0x90); db(0x41); db(0xf9); db(0x00); db(0xdf);
+ db(0xf0); db(0x00); db(0x70); db(0x00); db(0x4e); db(0x75); db(0x48); db(0xe7);
+ db(0x00); db(0x06); db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x11);
+ db(0x61); db(0x00); db(0xf9); db(0xd0); db(0x4e); db(0x90); db(0x08); db(0x00);
+ db(0x00); db(0x00); db(0x67); db(0x42); db(0x2c); db(0x78); db(0x00); db(0x04);
+ db(0x20); db(0x3c); db(0x00); db(0x00); db(0x00); db(0x88); db(0x22); db(0x3c);
+ db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a);
+ db(0x4a); db(0x80); db(0x67); db(0x00); db(0x00); db(0x40); db(0x2a); db(0x40);
+ db(0x2b); db(0x4e); db(0x00); db(0x14); db(0x30); db(0x3c); db(0xff); db(0x38);
+ db(0x72); db(0x0e); db(0x61); db(0x00); db(0xf9); db(0x9e); db(0x20); db(0x0d);
+ db(0x4e); db(0x90); db(0x41); db(0xfa); db(0x04); db(0x6c); db(0x43); db(0xfa);
+ db(0x01); db(0x14); db(0x70); db(0xf6); db(0x22); db(0x3c); db(0x00); db(0x00);
+ db(0x27); db(0x10); db(0x61); db(0x00); db(0xee); db(0x12); db(0x70); db(0x00);
+ db(0x4c); db(0xdf); db(0x60); db(0x00); db(0x4e); db(0x75); db(0x30); db(0x3c);
+ db(0xff); db(0x38); db(0x72); db(0x0a); db(0x61); db(0x00); db(0xf9); db(0x74);
+ db(0x4e); db(0x90); db(0x4e); db(0x75); db(0x61); db(0xf0); db(0x20); db(0x0d);
+ db(0x67); db(0x1c); db(0x2c); db(0x6d); db(0x00); db(0x14); db(0x20); db(0x2d);
+ db(0x00); db(0x18); db(0x67); db(0x06); db(0x22); db(0x40); db(0x4e); db(0xae);
+ db(0xfe); db(0x62); db(0x22); db(0x4d); db(0x20); db(0x3c); db(0x00); db(0x00);
+ db(0x00); db(0x88); db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x70); db(0x00);
+ db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x38); db(0x3e); db(0x2c); db(0x6d);
+ db(0x00); db(0x18); db(0x41); db(0xfa); db(0x03); db(0xfa); db(0x22); db(0x08);
+ db(0x24); db(0x3c); db(0x00); db(0x00); db(0x03); db(0xed); db(0x4e); db(0xae);
+ db(0xff); db(0xe2); db(0x28); db(0x00); db(0x67); db(0x4c); db(0x45); db(0xed);
+ db(0x00); db(0x68); db(0x42); db(0x92); db(0x34); db(0xaa); db(0x00); db(0x02);
+ db(0x24); db(0x0a); db(0x54); db(0x82); db(0x76); db(0x02); db(0x22); db(0x04);
+ db(0x4e); db(0xae); db(0xff); db(0xd6); db(0xb6); db(0x80); db(0x66); db(0x32);
+ db(0x0c); db(0x92); db(0x50); db(0x4e); db(0x54); db(0x52); db(0x66); db(0xe4);
+ db(0x24); db(0x0a); db(0x76); db(0x04); db(0x22); db(0x04); db(0x4e); db(0xae);
+ db(0xff); db(0xd6); db(0x24); db(0x0a); db(0x76); db(0x20); db(0x22); db(0x04);
+ db(0x4e); db(0xae); db(0xff); db(0xd6); db(0xb6); db(0x80); db(0x66); db(0x12);
+ db(0x4a); db(0x6a); db(0x00); db(0x10); db(0x66); db(0xc4); db(0x30); db(0x3c);
+ db(0xff); db(0x38); db(0x72); db(0x10); db(0x61); db(0x00); db(0xf8); db(0xe4);
+ db(0x4e); db(0x90); db(0x22); db(0x04); db(0x67); db(0x04); db(0x4e); db(0xae);
+ db(0xff); db(0xdc); db(0x4c); db(0xdf); db(0x7c); db(0x1c); db(0x4e); db(0x75);
+ db(0x2c); db(0x6d); db(0x00); db(0x18); db(0x41); db(0xfa); db(0x03); db(0x72);
  db(0x22); db(0x08); db(0x74); db(0xfe); db(0x4e); db(0xae); db(0xff); db(0xac);
- db(0x4a); db(0x80); db(0x67); db(0x00); db(0xfe); db(0xa4); db(0x22); db(0x00);
- db(0x4e); db(0xae); db(0xff); db(0xa6); db(0x2c); db(0x6d); db(0x00); db(0x14);
- db(0x61); db(0x00); db(0xf8); db(0x20); db(0x72); db(0x00); db(0x32); db(0x3c);
- db(0x00); db(0x34); db(0x61); db(0x00); db(0xf8); db(0x64); db(0x28); db(0x40);
- db(0x4a); db(0x80); db(0x67); db(0x00); db(0xfe); db(0x84); db(0x70); db(0x00);
- db(0x08); db(0xc0); db(0x00); db(0x0d); db(0x4e); db(0xae); db(0xfe); db(0xc2);
- db(0x72); db(0x00); db(0x20); db(0x2d); db(0x00); db(0x0c); db(0x41); db(0xfa);
- db(0x02); db(0x89); db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x44);
- db(0x4a); db(0x80); db(0x66); db(0xe2); db(0x20); db(0x6c); db(0x00); db(0x14);
- db(0x0c); db(0x68); db(0x00); db(0x25); db(0x00); db(0x14); db(0x64); db(0x0c);
- db(0x61); db(0x00); db(0xfe); db(0x48); db(0x70); db(0x00); db(0x4e); db(0xae);
- db(0xfe); db(0xc2); db(0x60); db(0xf8); db(0x61); db(0x00); db(0xfe); db(0xe6);
- db(0x41); db(0xed); db(0x00); db(0x1c); db(0x29); db(0x48); db(0x00); db(0x28);
- db(0x70); db(0x01); db(0x29); db(0x40); db(0x00); db(0x24); db(0x39); db(0x7c);
- db(0x00); db(0x0c); db(0x00); db(0x1c); db(0x2b); db(0x4d); db(0x00); db(0x2c);
- db(0x41); db(0xfa); db(0x01); db(0x60); db(0x2b); db(0x48); db(0x00); db(0x24);
- db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x30); db(0x3c);
- db(0xff); db(0x38); db(0x72); db(0x0f); db(0x61); db(0x00); db(0xf7); db(0x88);
- db(0x4e); db(0x90); db(0x4a); db(0xad); db(0x00); db(0x00); db(0x66); db(0x1c);
- db(0x70); db(0x00); db(0x74); db(0x00); db(0x14); db(0x2d); db(0x00); db(0x4c);
- db(0x05); db(0xc0); db(0x08); db(0xc0); db(0x00); db(0x0d); db(0x4e); db(0xae);
- db(0xfe); db(0xc2); db(0x05); db(0x00); db(0x67); db(0x06); db(0x61); db(0x00);
- db(0xfe); db(0x1e); db(0x60); db(0xe4); db(0x20); db(0x2d); db(0x00); db(0x00);
- db(0x67); db(0x00); db(0x00); db(0x76); db(0x72); db(0x01); db(0x4e); db(0xae);
- db(0xff); db(0x3a); db(0x2b); db(0x40); db(0x00); db(0x04); db(0x30); db(0x3c);
- db(0xff); db(0x38); db(0x72); db(0x0c); db(0x61); db(0x00); db(0xf7); db(0x48);
- db(0x4e); db(0x90); db(0x4a); db(0x80); db(0x67); db(0x40); db(0x4a); db(0xad);
- db(0x00); db(0x04); db(0x67); db(0x3a); db(0x39); db(0x7c); db(0x00); db(0x03);
- db(0x00); db(0x1c); db(0x42); db(0x2c); db(0x00); db(0x1f); db(0x42); db(0xac);
- db(0x00); db(0x20); db(0x29); db(0x6d); db(0x00); db(0x00); db(0x00); db(0x24);
- db(0x29); db(0x6d); db(0x00); db(0x04); db(0x00); db(0x28); db(0x42); db(0xac);
- db(0x00); db(0x2c); db(0x42); db(0xac); db(0x00); db(0x30); db(0x22); db(0x4c);
- db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x2b); db(0x6c); db(0x00); db(0x30);
- db(0x00); db(0x10); db(0x39); db(0x7c); db(0x00); db(0x04); db(0x00); db(0x1c);
- db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x20); db(0x2d);
- db(0x00); db(0x00); db(0x42); db(0xad); db(0x00); db(0x00); db(0x22); db(0x2d);
- db(0x00); db(0x04); db(0x67); db(0x00); db(0xff); db(0x74); db(0x22); db(0x41);
- db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x60); db(0x00); db(0xff); db(0x6a);
- db(0x39); db(0x7c); db(0x00); db(0x02); db(0x00); db(0x1c); db(0x41); db(0xed);
- db(0x00); db(0x30); db(0x42); db(0x90); db(0x42); db(0xa8); db(0x00); db(0x04);
- db(0x42); db(0x2c); db(0x00); db(0x1f); db(0x42); db(0xac); db(0x00); db(0x2c);
- db(0x42); db(0xac); db(0x00); db(0x30); db(0x29); db(0x48); db(0x00); db(0x28);
- db(0x70); db(0x08); db(0x29); db(0x40); db(0x00); db(0x24); db(0x22); db(0x4c);
- db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x0c); db(0xad); db(0x46); db(0x4f);
- db(0x52); db(0x4d); db(0x00); db(0x30); db(0x66); db(0x52); db(0x20); db(0x2d);
- db(0x00); db(0x34); db(0x67); db(0x4c); db(0x6b); db(0x4a); db(0x2b); db(0x6c);
- db(0x00); db(0x30); db(0x00); db(0x10); db(0x50); db(0x80); db(0x24); db(0x00);
- db(0x72); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x4a); db(0x80);
- db(0x67); db(0x36); db(0x24); db(0x40); db(0x20); db(0x4a); db(0x20); db(0xed);
- db(0x00); db(0x30); db(0x20); db(0xed); db(0x00); db(0x34); db(0x29); db(0x48);
- db(0x00); db(0x28); db(0x20); db(0x02); db(0x51); db(0x80); db(0x29); db(0x40);
+ db(0x22); db(0x00); db(0x67); db(0x34); db(0x4e); db(0xae); db(0xff); db(0xa6);
+ db(0x2c); db(0x6d); db(0x00); db(0x14); db(0x45); db(0xed); db(0x00); db(0x38);
+ db(0x70); db(0xff); db(0x4e); db(0xae); db(0xfe); db(0xb6); db(0x15); db(0x40);
+ db(0x00); db(0x14); db(0x41); db(0xfa); db(0x03); db(0x62); db(0x24); db(0x88);
+ db(0x25); db(0x7c); db(0x00); db(0x00); db(0x00); db(0x12); db(0x00); db(0x0c);
+ db(0x25); db(0x6d); db(0x00); db(0x08); db(0x00); db(0x10); db(0x2c); db(0x6d);
+ db(0x00); db(0x18); db(0x22); db(0x0a); db(0x4e); db(0xae); db(0xfc); db(0x88);
+ db(0x2c); db(0x6d); db(0x00); db(0x14); db(0x4e); db(0x75); db(0x00); db(0x00);
+ db(0x00); db(0x00); db(0x00); db(0x10); db(0x00); db(0x00); db(0x00); db(0x00);
+ db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x0d); db(0x61); db(0x00);
+ db(0xf8); db(0x72); db(0x4e); db(0x90); db(0x4a); db(0x80); db(0x67); db(0x00);
+ db(0xfe); db(0xfc); db(0x2a); db(0x40); db(0x2c); db(0x6d); db(0x00); db(0x14);
+ db(0x93); db(0xc9); db(0x4e); db(0xae); db(0xfe); db(0xda); db(0x2b); db(0x40);
+ db(0x00); db(0x08); db(0x43); db(0xfa); db(0x03); db(0x8e); db(0x70); db(0x00);
+ db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x2b); db(0x40); db(0x00); db(0x18);
+ db(0x67); db(0x00); db(0xfe); db(0xda); db(0x2c); db(0x40); db(0x72); db(0x32);
+ db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x41); db(0xfa); db(0x02); db(0xc6);
+ db(0x22); db(0x08); db(0x74); db(0xfe); db(0x4e); db(0xae); db(0xff); db(0xac);
+ db(0x4a); db(0x80); db(0x67); db(0xea); db(0x22); db(0x00); db(0x4e); db(0xae);
+ db(0xff); db(0xa6); db(0x72); db(0x32); db(0x4e); db(0xae); db(0xff); db(0x3a);
+ db(0x41); db(0xfa); db(0x02); db(0xb0); db(0x22); db(0x08); db(0x74); db(0xfe);
+ db(0x4e); db(0xae); db(0xff); db(0xac); db(0x4a); db(0x80); db(0x67); db(0x00);
+ db(0xfe); db(0xa4); db(0x22); db(0x00); db(0x4e); db(0xae); db(0xff); db(0xa6);
+ db(0x2c); db(0x6d); db(0x00); db(0x14); db(0x61); db(0x00); db(0xf8); db(0x20);
+ db(0x72); db(0x00); db(0x32); db(0x3c); db(0x00); db(0x34); db(0x61); db(0x00);
+ db(0xf8); db(0x64); db(0x28); db(0x40); db(0x4a); db(0x80); db(0x67); db(0x00);
+ db(0xfe); db(0x84); db(0x70); db(0x00); db(0x08); db(0xc0); db(0x00); db(0x0d);
+ db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x72); db(0x00); db(0x20); db(0x2d);
+ db(0x00); db(0x0c); db(0x41); db(0xfa); db(0x02); db(0x89); db(0x22); db(0x4c);
+ db(0x4e); db(0xae); db(0xfe); db(0x44); db(0x4a); db(0x80); db(0x66); db(0xe2);
+ db(0x20); db(0x6c); db(0x00); db(0x14); db(0x0c); db(0x68); db(0x00); db(0x25);
+ db(0x00); db(0x14); db(0x64); db(0x0c); db(0x61); db(0x00); db(0xfe); db(0x48);
+ db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x60); db(0xf8);
+ db(0x61); db(0x00); db(0xfe); db(0xe6); db(0x41); db(0xed); db(0x00); db(0x1c);
+ db(0x29); db(0x48); db(0x00); db(0x28); db(0x70); db(0x01); db(0x29); db(0x40);
+ db(0x00); db(0x24); db(0x39); db(0x7c); db(0x00); db(0x0c); db(0x00); db(0x1c);
+ db(0x2b); db(0x4d); db(0x00); db(0x2c); db(0x41); db(0xfa); db(0x01); db(0x60);
+ db(0x2b); db(0x48); db(0x00); db(0x24); db(0x22); db(0x4c); db(0x4e); db(0xae);
+ db(0xfe); db(0x38); db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x0f);
+ db(0x61); db(0x00); db(0xf7); db(0x88); db(0x4e); db(0x90); db(0x4a); db(0xad);
+ db(0x00); db(0x00); db(0x66); db(0x1c); db(0x70); db(0x00); db(0x74); db(0x00);
+ db(0x14); db(0x2d); db(0x00); db(0x4c); db(0x05); db(0xc0); db(0x08); db(0xc0);
+ db(0x00); db(0x0d); db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x05); db(0x00);
+ db(0x67); db(0x06); db(0x61); db(0x00); db(0xfe); db(0x1e); db(0x60); db(0xe4);
+ db(0x20); db(0x2d); db(0x00); db(0x00); db(0x67); db(0x00); db(0x00); db(0x76);
+ db(0x72); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x2b); db(0x40);
+ db(0x00); db(0x04); db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x0c);
+ db(0x61); db(0x00); db(0xf7); db(0x48); db(0x4e); db(0x90); db(0x4a); db(0x80);
+ db(0x67); db(0x40); db(0x4a); db(0xad); db(0x00); db(0x04); db(0x67); db(0x3a);
+ db(0x39); db(0x7c); db(0x00); db(0x03); db(0x00); db(0x1c); db(0x42); db(0x2c);
+ db(0x00); db(0x1f); db(0x42); db(0xac); db(0x00); db(0x20); db(0x29); db(0x6d);
+ db(0x00); db(0x00); db(0x00); db(0x24); db(0x29); db(0x6d); db(0x00); db(0x04);
+ db(0x00); db(0x28); db(0x42); db(0xac); db(0x00); db(0x2c); db(0x42); db(0xac);
+ db(0x00); db(0x30); db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x38);
+ db(0x2b); db(0x6c); db(0x00); db(0x30); db(0x00); db(0x10); db(0x39); db(0x7c);
+ db(0x00); db(0x04); db(0x00); db(0x1c); db(0x22); db(0x4c); db(0x4e); db(0xae);
+ db(0xfe); db(0x38); db(0x20); db(0x2d); db(0x00); db(0x00); db(0x42); db(0xad);
+ db(0x00); db(0x00); db(0x22); db(0x2d); db(0x00); db(0x04); db(0x67); db(0x00);
+ db(0xff); db(0x74); db(0x22); db(0x41); db(0x4e); db(0xae); db(0xff); db(0x2e);
+ db(0x60); db(0x00); db(0xff); db(0x6a); db(0x39); db(0x7c); db(0x00); db(0x02);
+ db(0x00); db(0x1c); db(0x41); db(0xed); db(0x00); db(0x30); db(0x42); db(0x90);
+ db(0x42); db(0xa8); db(0x00); db(0x04); db(0x42); db(0x2c); db(0x00); db(0x1f);
+ db(0x42); db(0xac); db(0x00); db(0x2c); db(0x42); db(0xac); db(0x00); db(0x30);
+ db(0x29); db(0x48); db(0x00); db(0x28); db(0x70); db(0x08); db(0x29); db(0x40);
  db(0x00); db(0x24); db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x38);
- db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x0b); db(0x61); db(0x00);
- db(0xf6); db(0x6e); db(0x20); db(0x2c); db(0x00); db(0x20); db(0x4e); db(0x90);
- db(0x22); db(0x4a); db(0x20); db(0x02); db(0x4e); db(0xae); db(0xff); db(0x2e);
- db(0x4a); db(0xac); db(0x00); db(0x20); db(0x67); db(0x00); db(0xfe); db(0xda);
- db(0x41); db(0xed); db(0x00); db(0x30); db(0x29); db(0x48); db(0x00); db(0x28);
- db(0x70); db(0x01); db(0x29); db(0x40); db(0x00); db(0x24); db(0x42); db(0xac);
- db(0x00); db(0x20); db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x38);
- db(0x60); db(0xde); db(0x41); db(0xe8); db(0xff); db(0xe4); db(0x20); db(0x29);
- db(0x00); db(0x08); db(0xb0); db(0xa8); db(0x00); db(0x10); db(0x67); db(0x1a);
- db(0x21); db(0x40); db(0x00); db(0x10); db(0x2f); db(0x0e); db(0x2c); db(0x68);
- db(0x00); db(0x14); db(0x22); db(0x68); db(0x00); db(0x08); db(0x70); db(0x00);
- db(0x08); db(0xc0); db(0x00); db(0x0d); db(0x4e); db(0xae); db(0xfe); db(0xbc);
- db(0x2c); db(0x5f); db(0x70); db(0x00); db(0x4e); db(0x75); db(0x2c); db(0x78);
- db(0x00); db(0x04); db(0x74); db(0xff); db(0x30); db(0x3c); db(0xff); db(0x38);
- db(0x72); db(0x11); db(0x61); db(0x00); db(0xf6); db(0x02); db(0x4e); db(0x90);
- db(0x08); db(0x00); db(0x00); db(0x01); db(0x67); db(0x38); db(0x74); db(0x00);
- db(0x4e); db(0xae); db(0xff); db(0x7c); db(0x41); db(0xee); db(0x01); db(0x5e);
- db(0x43); db(0xfa); db(0x00); db(0x62); db(0x4e); db(0xae); db(0xfe); db(0xec);
- db(0x4a); db(0x80); db(0x67); db(0x1e); db(0x20); db(0x40); db(0x43); db(0xfa);
- db(0x00); db(0x22); db(0x24); db(0x68); db(0xff); db(0xe4); db(0x21); db(0x49);
- db(0xff); db(0xe4); db(0x22); db(0x48); db(0x30); db(0x3c); db(0xff); db(0x38);
- db(0x72); db(0x65); db(0x61); db(0x00); db(0xf5); db(0xca); db(0x4e); db(0x90);
- db(0x74); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x76); db(0x20); db(0x02);
- db(0x4e); db(0x75); db(0x59); db(0x8f); db(0x48); db(0xe7); db(0xc0); db(0x80);
- db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x66); db(0x61); db(0x00);
- db(0xf5); db(0xae); db(0x4e); db(0x90); db(0x4c); db(0xdf); db(0x01); db(0x03);
- db(0x4e); db(0x75); db(0x69); db(0x6e); db(0x70); db(0x75); db(0x74); db(0x2e);
- db(0x64); db(0x65); db(0x76); db(0x69); db(0x63); db(0x65); db(0x00); db(0x74);
- db(0x69); db(0x6d); db(0x65); db(0x72); db(0x2e); db(0x64); db(0x65); db(0x76);
- db(0x69); db(0x63); db(0x65); db(0x00); db(0x63); db(0x6f); db(0x6e); db(0x73);
- db(0x6f); db(0x6c); db(0x65); db(0x2e); db(0x64); db(0x65); db(0x76); db(0x69);
- db(0x63); db(0x65); db(0x00); db(0x44); db(0x45); db(0x56); db(0x53); db(0x00);
- db(0x44); db(0x45); db(0x56); db(0x53); db(0x3a); db(0x00); db(0x44); db(0x45);
- db(0x56); db(0x53); db(0x3a); db(0x63); db(0x6c); db(0x69); db(0x70); db(0x62);
- db(0x6f); db(0x61); db(0x72); db(0x64); db(0x2e); db(0x64); db(0x65); db(0x76);
- db(0x69); db(0x63); db(0x65); db(0x00); db(0x52); db(0x41); db(0x4d); db(0x3a);
- db(0x00); db(0x63); db(0x6c); db(0x69); db(0x70); db(0x62); db(0x6f); db(0x61);
- db(0x72); db(0x64); db(0x2e); db(0x64); db(0x65); db(0x76); db(0x69); db(0x63);
- db(0x65); db(0x00); db(0x52); db(0x41); db(0x4d); db(0x3a); db(0x45); db(0x6e);
- db(0x76); db(0x2f); db(0x53); db(0x79); db(0x73); db(0x2f); db(0x50); db(0x6f);
- db(0x69); db(0x6e); db(0x74); db(0x65); db(0x72); db(0x2e); db(0x70); db(0x72);
- db(0x65); db(0x66); db(0x73); db(0x00); db(0x55); db(0x41); db(0x45); db(0x20);
- db(0x63); db(0x6c); db(0x69); db(0x70); db(0x62); db(0x6f); db(0x61); db(0x72);
- db(0x64); db(0x20); db(0x73); db(0x68); db(0x61); db(0x72); db(0x69); db(0x6e);
- db(0x67); db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x6d); db(0x6f);
- db(0x75); db(0x73); db(0x65); db(0x20); db(0x64); db(0x72); db(0x69); db(0x76);
- db(0x65); db(0x72); db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x66);
- db(0x69); db(0x6c); db(0x65); db(0x73); db(0x79); db(0x73); db(0x74); db(0x65);
- db(0x6d); db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x66); db(0x73);
- db(0x20); db(0x61); db(0x75); db(0x74); db(0x6f); db(0x6d); db(0x6f); db(0x75);
- db(0x6e); db(0x74); db(0x65); db(0x72); db(0x00); db(0x55); db(0x41); db(0x45);
- db(0x20); db(0x66); db(0x73); db(0x20); db(0x61); db(0x75); db(0x74); db(0x6f);
- db(0x6d); db(0x6f); db(0x75); db(0x6e); db(0x74); db(0x20); db(0x70); db(0x72);
- db(0x6f); db(0x63); db(0x65); db(0x73); db(0x73); db(0x00); db(0x64); db(0x6f);
- db(0x73); db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61); db(0x72);
- db(0x79); db(0x00); db(0x69); db(0x6e); db(0x74); db(0x75); db(0x69); db(0x74);
- db(0x69); db(0x6f); db(0x6e); db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72);
- db(0x61); db(0x72); db(0x79); db(0x00); db(0x67); db(0x72); db(0x61); db(0x70);
- db(0x68); db(0x69); db(0x63); db(0x73); db(0x2e); db(0x6c); db(0x69); db(0x62);
- db(0x72); db(0x61); db(0x72); db(0x79); db(0x00); db(0x65); db(0x78); db(0x70);
- db(0x61); db(0x6e); db(0x73); db(0x69); db(0x6f); db(0x6e); db(0x2e); db(0x6c);
- db(0x69); db(0x62); db(0x72); db(0x61); db(0x72); db(0x79); db(0x00); db(0x46);
- db(0x69); db(0x6c); db(0x65); db(0x53); db(0x79); db(0x73); db(0x74); db(0x65);
- db(0x6d); db(0x2e); db(0x72); db(0x65); db(0x73); db(0x6f); db(0x75); db(0x72);
- db(0x63); db(0x65); db(0x00); db(0x6d); db(0x65); db(0x67); db(0x61); db(0x63);
- db(0x68); db(0x69); db(0x70); db(0x20); db(0x6d); db(0x65); db(0x6d); db(0x6f);
- db(0x72); db(0x79); db(0x00); db(0x00); db(0x00); db(0x00); db(0x03); db(0xf2);
+ db(0x0c); db(0xad); db(0x46); db(0x4f); db(0x52); db(0x4d); db(0x00); db(0x30);
+ db(0x66); db(0x52); db(0x20); db(0x2d); db(0x00); db(0x34); db(0x67); db(0x4c);
+ db(0x6b); db(0x4a); db(0x2b); db(0x6c); db(0x00); db(0x30); db(0x00); db(0x10);
+ db(0x50); db(0x80); db(0x24); db(0x00); db(0x72); db(0x01); db(0x4e); db(0xae);
+ db(0xff); db(0x3a); db(0x4a); db(0x80); db(0x67); db(0x36); db(0x24); db(0x40);
+ db(0x20); db(0x4a); db(0x20); db(0xed); db(0x00); db(0x30); db(0x20); db(0xed);
+ db(0x00); db(0x34); db(0x29); db(0x48); db(0x00); db(0x28); db(0x20); db(0x02);
+ db(0x51); db(0x80); db(0x29); db(0x40); db(0x00); db(0x24); db(0x22); db(0x4c);
+ db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x30); db(0x3c); db(0xff); db(0x38);
+ db(0x72); db(0x0b); db(0x61); db(0x00); db(0xf6); db(0x6e); db(0x20); db(0x2c);
+ db(0x00); db(0x20); db(0x4e); db(0x90); db(0x22); db(0x4a); db(0x20); db(0x02);
+ db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x4a); db(0xac); db(0x00); db(0x20);
+ db(0x67); db(0x00); db(0xfe); db(0xda); db(0x41); db(0xed); db(0x00); db(0x30);
+ db(0x29); db(0x48); db(0x00); db(0x28); db(0x70); db(0x01); db(0x29); db(0x40);
+ db(0x00); db(0x24); db(0x42); db(0xac); db(0x00); db(0x20); db(0x22); db(0x4c);
+ db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x60); db(0xde); db(0x41); db(0xe8);
+ db(0xff); db(0xe4); db(0x20); db(0x29); db(0x00); db(0x08); db(0xb0); db(0xa8);
+ db(0x00); db(0x10); db(0x67); db(0x1a); db(0x21); db(0x40); db(0x00); db(0x10);
+ db(0x2f); db(0x0e); db(0x2c); db(0x68); db(0x00); db(0x14); db(0x22); db(0x68);
+ db(0x00); db(0x08); db(0x70); db(0x00); db(0x08); db(0xc0); db(0x00); db(0x0d);
+ db(0x4e); db(0xae); db(0xfe); db(0xbc); db(0x2c); db(0x5f); db(0x70); db(0x00);
+ db(0x4e); db(0x75); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x74); db(0xff);
+ db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x11); db(0x61); db(0x00);
+ db(0xf6); db(0x02); db(0x4e); db(0x90); db(0x08); db(0x00); db(0x00); db(0x01);
+ db(0x67); db(0x38); db(0x74); db(0x00); db(0x4e); db(0xae); db(0xff); db(0x7c);
+ db(0x41); db(0xee); db(0x01); db(0x5e); db(0x43); db(0xfa); db(0x00); db(0x62);
+ db(0x4e); db(0xae); db(0xfe); db(0xec); db(0x4a); db(0x80); db(0x67); db(0x1e);
+ db(0x20); db(0x40); db(0x43); db(0xfa); db(0x00); db(0x22); db(0x24); db(0x68);
+ db(0xff); db(0xe4); db(0x21); db(0x49); db(0xff); db(0xe4); db(0x22); db(0x48);
+ db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x65); db(0x61); db(0x00);
+ db(0xf5); db(0xca); db(0x4e); db(0x90); db(0x74); db(0x01); db(0x4e); db(0xae);
+ db(0xff); db(0x76); db(0x20); db(0x02); db(0x4e); db(0x75); db(0x59); db(0x8f);
+ db(0x48); db(0xe7); db(0xc0); db(0x80); db(0x30); db(0x3c); db(0xff); db(0x38);
+ db(0x72); db(0x66); db(0x61); db(0x00); db(0xf5); db(0xae); db(0x4e); db(0x90);
+ db(0x4c); db(0xdf); db(0x01); db(0x03); db(0x4e); db(0x75); db(0x69); db(0x6e);
+ db(0x70); db(0x75); db(0x74); db(0x2e); db(0x64); db(0x65); db(0x76); db(0x69);
+ db(0x63); db(0x65); db(0x00); db(0x74); db(0x69); db(0x6d); db(0x65); db(0x72);
+ db(0x2e); db(0x64); db(0x65); db(0x76); db(0x69); db(0x63); db(0x65); db(0x00);
+ db(0x63); db(0x6f); db(0x6e); db(0x73); db(0x6f); db(0x6c); db(0x65); db(0x2e);
+ db(0x64); db(0x65); db(0x76); db(0x69); db(0x63); db(0x65); db(0x00); db(0x44);
+ db(0x45); db(0x56); db(0x53); db(0x00); db(0x44); db(0x45); db(0x56); db(0x53);
+ db(0x3a); db(0x00); db(0x44); db(0x45); db(0x56); db(0x53); db(0x3a); db(0x63);
+ db(0x6c); db(0x69); db(0x70); db(0x62); db(0x6f); db(0x61); db(0x72); db(0x64);
+ db(0x2e); db(0x64); db(0x65); db(0x76); db(0x69); db(0x63); db(0x65); db(0x00);
+ db(0x52); db(0x41); db(0x4d); db(0x3a); db(0x00); db(0x63); db(0x6c); db(0x69);
+ db(0x70); db(0x62); db(0x6f); db(0x61); db(0x72); db(0x64); db(0x2e); db(0x64);
+ db(0x65); db(0x76); db(0x69); db(0x63); db(0x65); db(0x00); db(0x52); db(0x41);
+ db(0x4d); db(0x3a); db(0x45); db(0x6e); db(0x76); db(0x2f); db(0x53); db(0x79);
+ db(0x73); db(0x2f); db(0x50); db(0x6f); db(0x69); db(0x6e); db(0x74); db(0x65);
+ db(0x72); db(0x2e); db(0x70); db(0x72); db(0x65); db(0x66); db(0x73); db(0x00);
+ db(0x55); db(0x41); db(0x45); db(0x20); db(0x63); db(0x6c); db(0x69); db(0x70);
+ db(0x62); db(0x6f); db(0x61); db(0x72); db(0x64); db(0x20); db(0x73); db(0x68);
+ db(0x61); db(0x72); db(0x69); db(0x6e); db(0x67); db(0x00); db(0x55); db(0x41);
+ db(0x45); db(0x20); db(0x6d); db(0x6f); db(0x75); db(0x73); db(0x65); db(0x20);
+ db(0x64); db(0x72); db(0x69); db(0x76); db(0x65); db(0x72); db(0x00); db(0x55);
+ db(0x41); db(0x45); db(0x20); db(0x66); db(0x69); db(0x6c); db(0x65); db(0x73);
+ db(0x79); db(0x73); db(0x74); db(0x65); db(0x6d); db(0x00); db(0x55); db(0x41);
+ db(0x45); db(0x20); db(0x66); db(0x73); db(0x20); db(0x61); db(0x75); db(0x74);
+ db(0x6f); db(0x6d); db(0x6f); db(0x75); db(0x6e); db(0x74); db(0x65); db(0x72);
+ db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x66); db(0x73); db(0x20);
+ db(0x61); db(0x75); db(0x74); db(0x6f); db(0x6d); db(0x6f); db(0x75); db(0x6e);
+ db(0x74); db(0x20); db(0x70); db(0x72); db(0x6f); db(0x63); db(0x65); db(0x73);
+ db(0x73); db(0x00); db(0x64); db(0x6f); db(0x73); db(0x2e); db(0x6c); db(0x69);
+ db(0x62); db(0x72); db(0x61); db(0x72); db(0x79); db(0x00); db(0x69); db(0x6e);
+ db(0x74); db(0x75); db(0x69); db(0x74); db(0x69); db(0x6f); db(0x6e); db(0x2e);
+ db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61); db(0x72); db(0x79); db(0x00);
+ db(0x67); db(0x72); db(0x61); db(0x70); db(0x68); db(0x69); db(0x63); db(0x73);
+ db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61); db(0x72); db(0x79);
+ db(0x00); db(0x65); db(0x78); db(0x70); db(0x61); db(0x6e); db(0x73); db(0x69);
+ db(0x6f); db(0x6e); db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61);
+ db(0x72); db(0x79); db(0x00); db(0x46); db(0x69); db(0x6c); db(0x65); db(0x53);
+ db(0x79); db(0x73); db(0x74); db(0x65); db(0x6d); db(0x2e); db(0x72); db(0x65);
+ db(0x73); db(0x6f); db(0x75); db(0x72); db(0x63); db(0x65); db(0x00); db(0x6d);
+ db(0x65); db(0x67); db(0x61); db(0x63); db(0x68); db(0x69); db(0x70); db(0x20);
+ db(0x6d); db(0x65); db(0x6d); db(0x6f); db(0x72); db(0x79); db(0x00); db(0x00);
+ db(0x00); db(0x00); db(0x03); db(0xf2);
 
index 4cb9cb557613f662f0ede5c34559cde5897bb22b..d1b8bbbc7c766f97c5ad7ab875021e9fdb630736 100644 (file)
@@ -15,6 +15,7 @@ extern void dw (uae_u16);
 extern void dl (uae_u32);
 extern uae_u32 ds_ansi (const uae_char*);
 extern uae_u32 ds (const TCHAR*);
+extern uae_u32 ds_bstr_ansi (const uae_char*);
 extern uae_u8 dbg (uaecptr);
 extern void calltrap (uae_u32);
 extern void org (uae_u32);
index 94ad61b80cdf164d08de8fa05c04e372ce7f3c05..dbed529ced0ce5d81b016c9bc5e443c00af9d354 100644 (file)
@@ -88,6 +88,7 @@ struct hd_hardfiledata {
 #define FILESYS_HARDFILE 1
 #define FILESYS_HARDFILE_RDB 2
 #define FILESYS_HARDDRIVE 3
+#define FILESYS_CD 4
 
 #define MAX_FILESYSTEM_UNITS 30
 
index ddd14cb2aed743da14b1eb6a2fa6622c8aaae38e..495f0c597b2d1f7b670db2afefeea71f2202bf8e 100644 (file)
@@ -14,6 +14,7 @@ void scsidev_reset (void);
 void scsidev_start_threads (void);
 int scsi_do_disk_change (int unitnum, int insert, int *pollmode);
 int scsi_do_disk_device_change (void);
+uae_u16 scsi_get_cd_drive_mask (void);
 
 extern int log_scsi;
 
index b5e43d0b3ab033a570c2ae87e3a0964f98674583..85440ea1a536b08f2c69fdec0ec1dac4a6839805 100644 (file)
@@ -6,6 +6,8 @@
   * Copyright 1995-1997 Bernd Schmidt
   */
 
+#include "machdep/rpt.h"
+
 typedef uae_u32 xcolnr;
 
 typedef int (*allocfunc_type)(int, int, int, xcolnr *);
@@ -26,7 +28,7 @@ extern void toggle_fullscreen (int);
 extern void toggle_mousegrab (void);
 extern void desktop_coords (int *dw, int *dh, int *x, int *y, int *w, int *h);
 extern bool vsync_switchmode (int);
-extern void vsync_busywait_end (void);
+extern frame_time_t vsync_busywait_end (void);
 extern bool vsync_busywait_do (int*);
 extern void vsync_busywait_start (void);
 extern double vblank_calibrate (double, bool);
index 5a9cd702fc98b6b842f53375c63c7b86bea4267f..bba717a8cb810bbefeedae2e00d13dd187a3d6b5 100644 (file)
@@ -34,7 +34,8 @@ extern struct zfile *zfile_fopen (const TCHAR *, const TCHAR *);
 extern struct zfile *zfile_fopen (const TCHAR *, const TCHAR *, int mask, int index);
 extern struct zfile *zfile_fopen_empty (struct zfile*, const TCHAR *name, uae_u64 size);
 extern struct zfile *zfile_fopen_empty (struct zfile*, const TCHAR *name);
-extern struct zfile *zfile_fopen_data (const TCHAR *name, uae_u64 size, uae_u8 *data);
+extern struct zfile *zfile_fopen_data (const TCHAR *name, uae_u64 size, const uae_u8 *data);
+extern uae_u8 *zfile_load_data (const TCHAR *name, const uae_u8 *data,int datalen, int *outlen);
 extern struct zfile *zfile_fopen_parent (struct zfile*, const TCHAR*, uae_u64 offset, uae_u64 size);
 
 extern int zfile_exists (const TCHAR *name);
index cdcacc05d47685b56619d2dc84faff43dcc0abec..d97daff4ebf74940645c33d865eb0387438017e6 100644 (file)
@@ -1038,8 +1038,11 @@ static int fetch_geometry (struct dev_info_ioctl *ciw, int unitnum, struct devic
        seterrormode (ciw);
        while (cnt-- > 0) {
                if (!DeviceIoControl (ciw->h, IOCTL_CDROM_GET_DRIVE_GEOMETRY, NULL, 0, &geom, sizeof (geom), &len, NULL)) {
-                       if (win32_error (ciw, unitnum, L"IOCTL_CDROM_GET_DRIVE_GEOMETRY") < 0)
-                               continue;
+                       DWORD err = GetLastError ();
+                       if (err == ERROR_WRONG_DISK) {
+                               if (win32_error (ciw, unitnum, L"IOCTL_CDROM_GET_DRIVE_GEOMETRY") < 0)
+                                       continue;
+                       }
                        reseterrormode (ciw);
                        uae_sem_post (&ciw->sub_sem);
                        return 0;
@@ -1084,7 +1087,7 @@ static int eject (int unitnum, bool eject)
 }
 
 /* read toc */
-static int ioctl_command_toc (int unitnum, struct cd_toc_head *tocout)
+static int ioctl_command_toc2 (int unitnum, struct cd_toc_head *tocout, bool hide_errors)
 {
        struct dev_info_ioctl *ciw = unitisopen (unitnum);
        if (!ciw)
@@ -1105,9 +1108,12 @@ static int ioctl_command_toc (int unitnum, struct cd_toc_head *tocout)
        while (cnt-- > 0) {
                seterrormode (ciw);
                if (!DeviceIoControl (ciw->h, IOCTL_CDROM_READ_TOC, NULL, 0, toc, sizeof (CDROM_TOC), &len, NULL)) {
+                       DWORD err = GetLastError ();
                        reseterrormode (ciw);
-                       if (win32_error (ciw, unitnum, L"IOCTL_CDROM_READ_TOC") < 0)
-                               continue;
+                       if (!hide_errors || (hide_errors && err == ERROR_WRONG_DISK)) {
+                               if (win32_error (ciw, unitnum, L"IOCTL_CDROM_READ_TOC") < 0)
+                                       continue;
+                       }
                        return 0;
                }
                reseterrormode (ciw);
@@ -1151,6 +1157,10 @@ static int ioctl_command_toc (int unitnum, struct cd_toc_head *tocout)
        memcpy (tocout, th, sizeof (struct cd_toc_head));
        return 1;
 }
+static int ioctl_command_toc (int unitnum, struct cd_toc_head *tocout)
+{
+       return ioctl_command_toc2 (unitnum, tocout, false);
+}
 
 static void update_device_info (int unitnum)
 {
@@ -1167,7 +1177,7 @@ static void update_device_info (int unitnum)
        if (fetch_geometry (ciw, unitnum, di)) { // || ioctl_command_toc (unitnum))
                di->media_inserted = 1;
        }
-       ioctl_command_toc (unitnum, &di->toc);
+       ioctl_command_toc2 (unitnum, &di->toc, true);
        di->removable = ciw->type == DRIVE_CDROM ? 1 : 0;
        di->write_protected = ciw->type == DRIVE_CDROM ? 1 : 0;
        di->type = ciw->type == DRIVE_CDROM ? INQ_ROMD : INQ_DASD;
index 7012c8d34e5434ffd5e8bfea0eeab9b4d98a1ecf..3d1f1f0f245124af20422bd15dd9b8dfebe14e8a 100644 (file)
@@ -1838,12 +1838,14 @@ void D3D_free (void)
        ddraw_fs_hack_free ();
 }
 
-static bool getvblankstate (int *vpos)
+static int prevvblankpos;
+
+bool D3D_getvblankpos (int *vpos)
 {
        HRESULT hr;
        D3DRASTER_STATUS rt;
 
-       *vpos = 0;
+       *vpos = -2;
        if (!isd3d ())
                return false;
        hr = d3ddev->GetRasterStatus (0, &rt);
@@ -1851,24 +1853,30 @@ static bool getvblankstate (int *vpos)
                write_log (L"%s: GetRasterStatus %s\n", D3DHEAD, D3D_ErrorString (hr));
                return false;
        }
+       if (rt.ScanLine > maxscanline)
+               maxscanline = rt.ScanLine;
        *vpos = rt.ScanLine;
+       prevvblankpos = rt.ScanLine;
        if (rt.InVBlank != 0)
                *vpos = -1;
        return true;
 }
 
-bool D3D_waitvblankstate (bool state)
+bool D3D_waitvblankstate (bool state, int *maxvpos)
 {
        int vpos;
        for (;;) {
-               if (!getvblankstate (&vpos))
+               int omax = maxscanline;
+               if (!D3D_getvblankpos (&vpos))
                        return false;
-               while (vpos > maxscanline) {
-                       maxscanline = vpos;
-                       if (!getvblankstate (&vpos))
+               while (omax != maxscanline) {
+                       omax = maxscanline;
+                       if (!D3D_getvblankpos (&vpos))
                                return false;
                }
-               if (vpos < 0 || vpos >= maxscanline - 5) {
+               if (maxvpos)
+                       *maxvpos = maxscanline;
+               if (vpos < 0) {
                        if (state)
                                return true;
                } else {
@@ -1883,19 +1891,28 @@ bool D3D_vblank_busywait (void)
        int vpos;
 
        for (;;) {
-               if (!getvblankstate (&vpos))
+               int opos = prevvblankpos;
+               if (!D3D_getvblankpos (&vpos))
                        return false;
-               if (vpos <= 0 || vpos >= maxscanline - 5)
+               if (opos > maxscanline / 2 && vpos < maxscanline / 5)
+                       return true;
+               if (vpos <= 0)
                        return true;
        }
 }
 
 bool D3D_vblank_getstate (bool *state)
 {
-       int vpos;
-       if (!getvblankstate (&vpos))
+       int vpos, opos;
+
+       opos = prevvblankpos;
+       if (!D3D_getvblankpos (&vpos))
                return false;
-       if (vpos <= 0 || vpos >= maxscanline - 5) {
+       if (opos > maxscanline / 2 && vpos < maxscanline / 5) {
+               *state = true;
+               return true;
+       }
+       if (vpos <= 0) {
                *state = true;
                return true;
        }
index f903b5cd7216e48e883d4ab60e243071b4b51bae..25b01f2a7d764b1c3a3649a209de6501e41c973c 100644 (file)
@@ -17,8 +17,9 @@ extern int D3D_canshaders (void);
 extern int D3D_goodenough (void);
 extern void D3D_setcursor (int x, int y, int visible);
 extern bool D3D_vblank_busywait (void);
-extern bool D3D_waitvblankstate (bool);
+extern bool D3D_waitvblankstate (bool, int*);
 extern bool D3D_vblank_getstate (bool *state);
+extern bool D3D_getvblankpos (int *vpos);
 extern double D3D_getrefreshrate (void);
 extern LPDIRECT3DTEXTURE9 cursorsurfaced3d;
 
index 0d4a1556259b76f73b9f497b4b5e47e671c673c2..4b5ce79090cad4bd72d5038d464f74f99e7f3c16 100644 (file)
@@ -1075,15 +1075,70 @@ static void getcaps (void)
        showcaps (&hc);
 }
 
-int DirectDraw_Start (GUID *guid)
+static int guidcounter;
+static GUID monitorguids[MAX_DISPLAYS];
+
+static BOOL CALLBACK displaysCallback (GUID *guid, char *adesc, char *aname, LPVOID ctx, HMONITOR hm)
 {
-       static int d3ddone;
-       static int first;
+       if (guidcounter >= MAX_DISPLAYS)
+               return FALSE;
+       if (guid == NULL)
+               return TRUE;
+       memcpy (&monitorguids[guidcounter], guid, sizeof GUID);
+       guidcounter++;
+       return TRUE;
+}
+
+int DirectDraw_Start (void)
+{
+       static int first, firstdd;
        HRESULT ddrval;
        LPDIRECT3D9 d3d;
        D3DCAPS9 d3dCaps;
        HINSTANCE d3dDLL;
+       GUID *guid;
+
+       dxdata.statuswidth = 800;
+       dxdata.statusheight = TD_TOTAL_HEIGHT;
+
+       if (!first) {
+               d3dDLL = LoadLibrary (L"D3D9.DLL");
+               if (d3dDLL) {
+                       d3d = Direct3DCreate9 (D3D9b_SDK_VERSION);
+                       if (d3d) {
+                               if (SUCCEEDED (IDirect3D9_GetDeviceCaps (d3d, 0, D3DDEVTYPE_HAL, &d3dCaps))) {
+                                       dxcaps.maxwidth = d3dCaps.MaxTextureWidth;
+                                       dxcaps.maxheight = d3dCaps.MaxTextureHeight;
+                                       write_log (L"Max hardware surface size: %dx%d\n", dxcaps.maxwidth, dxcaps.maxheight);
+                               }
+                               IDirect3D9_Release (d3d);
+                       }
+                       FreeLibrary (d3dDLL);
+               }
+               if (dxcaps.maxwidth < 2048)
+                       dxcaps.maxwidth = 2048;
+               if (dxcaps.maxheight < 2048)
+                       dxcaps.maxheight = 2048;
+
+               first = 1;
+       }
+
+       if (currprefs.gfx_api) {
+               return 1;
+       }
 
+       if (!guidcounter)
+               DirectDrawEnumerateExA (displaysCallback, 0, DDENUM_DETACHEDSECONDARYDEVICES | DDENUM_ATTACHEDSECONDARYDEVICES);
+
+       guid = NULL;
+       if (isfullscreen () > 0) {
+               int disp = currprefs.gfx_display - 1;
+               if (disp < 0)
+                       disp = 0;
+               if (disp >= guidcounter)
+                       disp = 0;
+               guid = &monitorguids[disp];
+       }
        dxdata.islost = 0;
        if (dxdata.ddinit) {
                if (guid == NULL && dxdata.ddzeroguid)
@@ -1117,33 +1172,9 @@ int DirectDraw_Start (GUID *guid)
        }
 #endif
 
-       dxdata.statuswidth = 800;
-       dxdata.statusheight = TD_TOTAL_HEIGHT;
-       if (!d3ddone) {
-               d3dDLL = LoadLibrary (L"D3D9.DLL");
-               if (d3dDLL) {
-                       d3d = Direct3DCreate9 (D3D9b_SDK_VERSION);
-                       if (d3d) {
-                               if (SUCCEEDED (IDirect3D9_GetDeviceCaps (d3d, 0, D3DDEVTYPE_HAL, &d3dCaps))) {
-                                       dxcaps.maxwidth = d3dCaps.MaxTextureWidth;
-                                       dxcaps.maxheight = d3dCaps.MaxTextureHeight;
-                                       write_log (L"Max hardware surface size: %dx%d\n", dxcaps.maxwidth, dxcaps.maxheight);
-                               }
-                               IDirect3D9_Release (d3d);
-                       }
-                       FreeLibrary (d3dDLL);
-               }
-               d3ddone = 1;
-       }
-       if (dxcaps.maxwidth < 2048)
-               dxcaps.maxwidth = 2048;
-       if (dxcaps.maxheight < 2048)
-               dxcaps.maxheight = 2048;
-
-       if (!first) {
-               first = 1;
+       if (!firstdd)
                getcaps ();
-       }
+       firstdd = 1;
 
        if (SUCCEEDED (DirectDraw_GetDisplayMode ())) {
                dxdata.ddinit = 1;
@@ -1177,11 +1208,13 @@ void dx_check (void)
        dxdata.islost = 1;
 }
 
-bool DirectDraw_waitvblankstate (bool state)
+bool DirectDraw_waitvblankstate (bool state, int *maxvpos)
 {
        BOOL vb;
        HRESULT hr;
 
+       if (maxvpos)
+               *maxvpos = -1;
        if ((dxdata.primary == NULL && dxdata.fsmodeset > 0) || dxdata.islost || !dxdata.maindd)
                return false;
        for (;;) {
@@ -1197,7 +1230,7 @@ bool DirectDraw_waitvblankstate (bool state)
 
 bool DirectDraw_vblank_busywait (void)
 {
-       if (!DirectDraw_waitvblankstate (true))
+       if (!DirectDraw_waitvblankstate (true, NULL))
                return false;
        return true;
 }
index f683b9da61d671ea8635dde21413214f4988f9aa..ba67a1f893fec9c4d6686e870629d0547ce3758e 100644 (file)
@@ -5,6 +5,8 @@
 #include <ddraw.h>
 #include <d3d9.h>
 
+#define MAX_DISPLAYS 10
+
 extern int ddforceram;
 extern int useoverlay;
 
@@ -56,15 +58,14 @@ struct PicassoResolution
        int depth;   /* depth in bytes-per-pixel */
        int residx;
        int refresh[MAX_REFRESH_RATES]; /* refresh-rates in Hz */
-       int refreshtype[MAX_REFRESH_RATES]; /* 0=dx,1=enumdisplaysettings */
+       int refreshtype[MAX_REFRESH_RATES]; /* 0=normal,1=enumdisplaysettings+raw */
        TCHAR name[25];
        /* Bit mask of RGBFF_xxx values.  */
        uae_u32 colormodes;
-       int nondx;
+       int rawmode;
 };
 extern GUID *displayGUID;
 
-#define MAX_DISPLAYS 10
 struct MultiDisplay {
        int primary, disabled, gdi;
        GUID guid;
@@ -86,7 +87,7 @@ extern TCHAR *outGUID (const GUID *guid);
 
 HRESULT DirectDraw_GetDisplayMode (void);
 void DirectDraw_Release(void);
-int DirectDraw_Start(GUID *guid);
+int DirectDraw_Start(void);
 void clearsurface(LPDIRECTDRAWSURFACE7 surf);
 int locksurface (LPDIRECTDRAWSURFACE7 surf, LPDDSURFACEDESC2 desc);
 void unlocksurface (LPDIRECTDRAWSURFACE7 surf);
@@ -102,8 +103,6 @@ HRESULT DirectDraw_SetCooperativeLevel (HWND window, int fullscreen, int doset);
 HRESULT DirectDraw_CreateClipper (void);
 HRESULT DirectDraw_SetClipper(HWND hWnd);
 RGBFTYPE DirectDraw_GetSurfacePixelFormat(LPDDSURFACEDESC2 surface);
-HRESULT DirectDraw_EnumDisplayModes(DWORD flags, LPDDENUMMODESCALLBACK2 callback, void *context);
-HRESULT DirectDraw_EnumDisplays(LPDDENUMCALLBACKEXA callback);
 DWORD DirectDraw_CurrentWidth (void);
 DWORD DirectDraw_CurrentHeight (void);
 DWORD DirectDraw_GetCurrentDepth (void);
@@ -131,7 +130,7 @@ void DirectDraw_FillSurface (LPDIRECTDRAWSURFACE7 dst, RECT *rect, uae_u32 color
 void DirectDraw_Fill (RECT *rect, uae_u32 color);
 void DirectDraw_FillPrimary (void);
 bool DirectDraw_vblank_busywait (void);
-bool DirectDraw_waitvblankstate (bool);
+bool DirectDraw_waitvblankstate (bool, int*);
 bool DirectDraw_getvblankstate (bool*);
 
 void dx_check (void);
index 448054b04986322890c73b42b8627ea01268a282..05d9fda827381c4b45bb1154325fc17c4683a859 100644 (file)
@@ -1964,12 +1964,10 @@ static void picasso96_alloc2 (TrapContext *ctx)
 
        i = 0;
        while (DisplayModes[i].depth >= 0) {
-               if (DisplayModes[i].nondx == 0) {
-                       for (j = 0; missmodes[j * 2] >= 0; j++) {
-                               if (DisplayModes[i].res.width == missmodes[j * 2 + 0] && DisplayModes[i].res.height == missmodes[j * 2 + 1]) {
-                                       missmodes[j * 2 + 0] = 0;
-                                       missmodes[j * 2 + 1] = 0;
-                               }
+               for (j = 0; missmodes[j * 2] >= 0; j++) {
+                       if (DisplayModes[i].res.width == missmodes[j * 2 + 0] && DisplayModes[i].res.height == missmodes[j * 2 + 1]) {
+                               missmodes[j * 2 + 0] = 0;
+                               missmodes[j * 2 + 1] = 0;
                        }
                }
                i++;
@@ -1977,10 +1975,6 @@ static void picasso96_alloc2 (TrapContext *ctx)
 
        i = 0;
        while (DisplayModes[i].depth >= 0) {
-               if (DisplayModes[i].nondx) {
-                       i++;
-                       continue;
-               }
                j = i;
                size += PSSO_LibResolution_sizeof;
                while (missmodes[misscnt * 2] == 0)
index 6a8e1d66e20580f6fbd0225c8bd31a94fde70b8b..e2e54459c6ccf820b7e1c7cda43e286314d7b507 100644 (file)
@@ -46,6 +46,9 @@
 
 #include "sounddep/sound.h"
 
+#define PA_BUFFERSIZE (262144 * 4)
+#define PA_CALLBACKBUFFERS 8
+
 struct sound_dp
 {
        // directsound
@@ -77,16 +80,15 @@ struct sound_dp
 
        // portaudio
 
-       volatile int patoggle;
-       volatile int pacounter;
-       uae_u8 *pasoundbuffer[2];
+       uae_u8 *pasoundbuffer;
+       volatile int pareadoffset, pawriteoffset;
        int pasndbufsize;
        int paframesperbuffer;
        PaStream *pastream;
-       HANDLE paevent;
-       int opacounter;
        int pablocking;
        int pavolume;
+       int pacallbacksize;
+       bool pafinishsb;
 
        // wasapi
 
@@ -103,17 +105,22 @@ struct sound_dp
        UINT32 bufferFrameCount;
        UINT64 wasapiframes;
        int wasapiexclusive;
-       int framecounter;
        int sndbuf;
        int wasapigoodsize;
        int sndbufframes;
+
+
+       double avg_correct;
+       double cnt_correct;
 };
 
+#define SND_STATUSCNT 10
+
 #define ADJUST_SIZE 30
 #define EXP 2.1
 
 #define ADJUST_VSSIZE 10
-#define EXPVS 1.3
+#define EXPVS 1.7
 
 int sound_debug = 0;
 int sound_mode_skip = 0;
@@ -134,6 +141,7 @@ static uae_sem_t sound_sem, sound_init_sem;
 struct sound_device *sound_devices[MAX_SOUND_DEVICES];
 struct sound_device *record_devices[MAX_SOUND_DEVICES];
 static int num_sound_devices, num_record_devices;
+static time_t delayed_start;
 
 static struct sound_data sdpaula;
 static struct sound_data *sdp = &sdpaula;
@@ -183,6 +191,65 @@ void update_sound (double freq, int longframe, int linetoggle)
 #endif
 }
 
+extern int vsynctime_orig;
+
+#ifndef AVIOUTPUT
+static int avioutput_audio;
+#endif
+
+void sound_setadjust (double v)
+{
+       float mult;
+
+       if (v < -5)
+               v = -5;
+       if (v > 5)
+               v = 5;
+
+       mult = (1000.0 + v);
+       if (avioutput_audio && avioutput_enabled && avioutput_nosoundsync)
+               mult = 1000.0;
+       if (isvsync () || (avioutput_audio && avioutput_enabled && !currprefs.cachesize)) {
+               vsynctime = vsynctime_orig;
+               scaled_sample_evtime = scaled_sample_evtime_orig * mult / 1000.0;
+       } else if (currprefs.cachesize || currprefs.m68k_speed != 0) {
+               vsynctime = (long)(((double)vsynctime_orig) * mult / 1000.0);
+               scaled_sample_evtime = scaled_sample_evtime_orig;
+       } else {
+               vsynctime = (long)(((double)vsynctime_orig) * mult / 1000.0);
+               scaled_sample_evtime = scaled_sample_evtime_orig;
+       }
+}
+
+static void docorrection (struct sound_dp *s, int sndbuf, double sync, int granulaty)
+{
+       static int tfprev;
+
+       s->avg_correct += sync;
+       s->cnt_correct++;
+
+       if (granulaty < 10)
+               granulaty = 10;
+
+       if (tfprev != timeframes) {
+               double skipmode;
+               double avg = s->avg_correct / s->cnt_correct;
+               if ((0 || sound_debug) && (tfprev % 10) == 0) {
+                       write_log (L"%+4d %7.1f %7.1f %6d\n", sndbuf, avg, sync, granulaty);
+               }
+               gui_data.sndbuf = sndbuf;
+               skipmode = sync / 100.0;
+
+               if (skipmode > 1)
+                       skipmode = 1;
+               if (skipmode < -1)
+                       skipmode = -1;
+
+               sound_setadjust (avg / (5000 / granulaty));
+               tfprev = timeframes;
+       }
+}
+
 static void clearbuffer_ds (struct sound_data *sd)
 {
        void *buffer;
@@ -236,7 +303,6 @@ static void resume_audio_wasapi (struct sound_data *sd)
        if (FAILED (hr))
                write_log (L"WASAPI: Start() %08X\n", hr);
        s->wasapiframes = 0;
-       s->framecounter = 0;
        s->sndbuf = 0;
 }
 
@@ -256,9 +322,12 @@ static void pause_audio_ds (struct sound_data *sd)
 }
 static void resume_audio_ds (struct sound_data *sd)
 {
+       struct sound_dp *s = sd->data;
        sd->paused = 0;
        clearbuffer (sd);
        sd->waiting_for_buffer = 1;
+       s->avg_correct = 0;
+       s->cnt_correct = 0;
 }
 static void pause_audio_pa (struct sound_data *sd)
 {
@@ -270,6 +339,10 @@ static void pause_audio_pa (struct sound_data *sd)
 static void resume_audio_pa (struct sound_data *sd)
 {
        struct sound_dp *s = sd->data;
+       s->pawriteoffset = 0;
+       s->pareadoffset = 0;
+       s->pacallbacksize = 0;
+       s->pafinishsb = false;
        PaError err = Pa_StartStream (s->pastream);
        if (err != paNoError)
                write_log (L"PASOUND: Pa_StartStream() error %d (%s)\n", err, Pa_GetErrorText (err));
@@ -472,10 +545,23 @@ static DWORD fillsupportedmodes (struct sound_data *sd, int freq, struct dsaudio
        return speakerconfig;
 }
 
+static int padiff (int write, int read)
+{
+       int diff;
+       diff = write - read;
+       if (diff > PA_BUFFERSIZE / 2)
+               diff = PA_BUFFERSIZE - write + read;
+       else if (diff < -PA_BUFFERSIZE / 2)
+               diff = PA_BUFFERSIZE - read + write;
+       return diff;
+}
 
 static void finish_sound_buffer_pa (struct sound_data *sd, uae_u16 *sndbuffer)
 {
        struct sound_dp *s = sd->data;
+
+       s->pafinishsb = true;
+
        if (s->pavolume) {
                int vol = 65536 - s->pavolume * 655;
                for (int i = 0; i < sd->sndbufsize / sizeof (uae_u16); i++) {
@@ -484,17 +570,52 @@ static void finish_sound_buffer_pa (struct sound_data *sd, uae_u16 *sndbuffer)
                }
        }
        if (s->pablocking) {
-               if (s->paframesperbuffer != sd->sndbufsize / (sd->channels * 2)) {
-                       write_log (L"sound buffer size mistmatch %d <> %d\n", s->paframesperbuffer, sd->sndbufsize / (sd->channels * 2));
-               } else {
-                       Pa_WriteStream (s->pastream, sndbuffer, s->paframesperbuffer); 
+
+               int avail;
+               time_t t = 0;
+               for (;;) {
+                       avail = Pa_GetStreamWriteAvailable (s->pastream);
+                       if (avail < 0 || avail >= s->pasndbufsize)
+                               break;
+                       if (!t) {
+                               t = time (NULL) + 2;
+                       } else if (time (NULL) >= t) {
+                               write_log (L"PA: audio stuck!? %d\n", avail);
+                               break;
+                       }
+                       sleep_millis (1);
                }
+               int pos = avail - s->paframesperbuffer;
+               docorrection (s, -pos * 1000 / (s->paframesperbuffer), -pos, 100);
+               Pa_WriteStream (s->pastream, sndbuffer, s->pasndbufsize); 
+
        } else {
-               int cnt = 2000 / 10;
-               while (s->opacounter == s->pacounter && s->pastream && !sd->paused && cnt-- >= 0)
-                       WaitForSingleObject (s->paevent, 10);
-               s->opacounter = s->pacounter;
-               memcpy (s->pasoundbuffer[s->patoggle], sndbuffer, sd->sndbufsize);
+
+               if (!s->pacallbacksize)
+                       return;
+
+               int diff = padiff (s->pawriteoffset, s->pareadoffset);
+               int samplediff = diff / sd->samplesize;
+               samplediff -= s->pacallbacksize * PA_CALLBACKBUFFERS;
+               docorrection (s, samplediff * 1000 / (s->pacallbacksize * PA_CALLBACKBUFFERS / 2), samplediff, s->pacallbacksize);
+
+               while (diff > PA_BUFFERSIZE / 4 && s->pastream && !sd->paused) {
+                       gui_data.sndbuf_status = 1;
+                       statuscnt = SND_STATUSCNT;
+                       sleep_millis (1);
+                       diff = padiff (s->pawriteoffset, s->pareadoffset);
+               }
+
+               if (sd->sndbufsize + s->pawriteoffset > PA_BUFFERSIZE) {
+                       int partsize = PA_BUFFERSIZE - s->pawriteoffset;
+                       memcpy (s->pasoundbuffer + s->pawriteoffset, sndbuffer, partsize);
+                       memcpy (s->pasoundbuffer, (uae_u8*)sndbuffer + partsize, sd->sndbufsize - partsize);
+                       s->pawriteoffset = sd->sndbufsize - partsize;
+               } else {
+                       memcpy (s->pasoundbuffer + s->pawriteoffset, sndbuffer, sd->sndbufsize);
+                       s->pawriteoffset = s->pawriteoffset + sd->sndbufsize;
+               }
+
        }
 }
 
@@ -506,44 +627,56 @@ static int _cdecl portAudioCallback (const void *inputBuffer, void *outputBuffer
 {
        struct sound_data *sd = (struct sound_data*)userData;
        struct sound_dp *s = sd->data;
+       int bytestocopy;
+       int diff;
 
-       if (framesPerBuffer != sd->sndbufsize / (sd->channels * 2)) {
-               write_log (L"sound buffer size mistmatch %d <> %d\n", framesPerBuffer, sd->sndbufsize / (sd->channels * 2));
-       } else {
-               memcpy (outputBuffer, s->pasoundbuffer[s->patoggle], sd->sndbufsize);
+       if (!framesPerBuffer || !s->pafinishsb)
+               return paContinue;
+
+       if (!s->pacallbacksize)
+               s->pawriteoffset = (PA_CALLBACKBUFFERS + 1) * framesPerBuffer * sd->samplesize;
+       
+       s->pacallbacksize = framesPerBuffer;
+
+       bytestocopy = framesPerBuffer * sd->samplesize;
+       diff = padiff (s->pawriteoffset, s->pareadoffset + bytestocopy);
+       if (diff <= 0) {
+               memset (outputBuffer, 0, bytestocopy);
+               gui_data.sndbuf_status = 2;
+               bytestocopy -= -diff;
+               statuscnt = SND_STATUSCNT;
        }
-       s->patoggle ^= 1;
-       s->pacounter++;
-       SetEvent (s->paevent);
+       if (bytestocopy > 0) {
+               if (bytestocopy + s->pareadoffset > PA_BUFFERSIZE) {
+                       int partsize = PA_BUFFERSIZE - s->pareadoffset;
+                       memcpy (outputBuffer, s->pasoundbuffer + s->pareadoffset, partsize);
+                       memcpy ((uae_u8*)outputBuffer + partsize, s->pasoundbuffer, bytestocopy - partsize);
+                       s->pareadoffset = bytestocopy - partsize;
+               } else {
+                       memcpy (outputBuffer, s->pasoundbuffer + s->pareadoffset, bytestocopy);
+                       s->pareadoffset = s->pareadoffset + bytestocopy;
+               }
+       }
+
        return paContinue;
 }
 
 static void close_audio_pa (struct sound_data *sd)
 {
        struct sound_dp *s = sd->data;
-       int i;
 
        if (s->pastream)
                Pa_CloseStream (s->pastream);
        s->pastream = NULL;
-       for (i = 0; i < 2; i++) {
-               xfree (s->pasoundbuffer[i]);
-               s->pasoundbuffer[i] = NULL;
-       }
-       if (s->paevent) {
-               SetEvent (s->paevent);
-               CloseHandle (s->paevent);
-       }
-       s->paevent = NULL;
+       xfree (s->pasoundbuffer);
+       s->pasoundbuffer = NULL;
 }
 
 static int open_audio_pa (struct sound_data *sd, int index)
 {
        struct sound_dp *s = sd->data;
-       int i;
        int freq = sd->freq;
        int ch = sd->channels;
-       int size;
        int dev = sound_devices[index]->panum;
        const PaDeviceInfo *di;
        PaStreamParameters p;
@@ -552,71 +685,89 @@ static int open_audio_pa (struct sound_data *sd, int index)
        TCHAR *errtxt;
        int defaultrate = 0;
 
-       size = sd->sndbufsize;
-       s->paframesperbuffer = size;
+       s->paframesperbuffer = sd->sndbufsize; 
+       s->pasndbufsize = sd->sndbufsize / 32;
+       sd->sndbufsize = s->pasndbufsize * ch * 2;
+       if (sd->sndbufsize > SND_MAX_BUFFER)
+               sd->sndbufsize = SND_MAX_BUFFER;
+
        sd->devicetype = SOUND_DEVICE_PA;
        memset (&p, 0, sizeof p);
        di = Pa_GetDeviceInfo (dev);
        for (;;) {
-               int err2;
-               p.channelCount = ch;
-               p.device = dev;
-               p.hostApiSpecificStreamInfo = NULL;
-               p.sampleFormat = paInt16;
-               p.suggestedLatency = di->defaultLowOutputLatency;
-               p.hostApiSpecificStreamInfo = NULL; 
-
-               err = Pa_IsFormatSupported (NULL, &p, freq);
-               if (err == paFormatIsSupported)
-                       break;
-               err2 = err;
-               errtxt = au (Pa_GetErrorText (err));
-               write_log (L"PASOUND: sound format not supported, ch=%d, rate=%d. %s\n", freq, ch, errtxt);
-               xfree (errtxt);
-               if (err == paInvalidChannelCount) {
-                       if (ch > 2) {
-                               ch = sd->channels = 2;
+               for (;;) {
+                       int err2;
+                       p.channelCount = ch;
+                       p.device = dev;
+                       p.hostApiSpecificStreamInfo = NULL;
+                       p.sampleFormat = paInt16;
+                       p.suggestedLatency = di->defaultLowOutputLatency;
+                       p.hostApiSpecificStreamInfo = NULL; 
+
+                       err = Pa_IsFormatSupported (NULL, &p, freq);
+                       if (err == paFormatIsSupported)
+                               break;
+fixfreq:
+                       err2 = err;
+                       errtxt = au (Pa_GetErrorText (err));
+                       write_log (L"PASOUND: sound format not supported, ch=%d, rate=%d. %s\n", freq, ch, errtxt);
+                       xfree (errtxt);
+                       if (err == paInvalidChannelCount) {
+                               if (ch > 2) {
+                                       ch = sd->channels = 2;
+                                       continue;
+                               }
+                               goto end;
+                       }
+                       if (freq < 44000 && err == paInvalidSampleRate) {
+                               freq = 44000;
+                               sd->freq = freq;
+                               continue;
+                       }
+                       if (freq < 48000 && err == paInvalidSampleRate) {
+                               freq = 48000;
+                               sd->freq = freq;
+                               continue;
+                       }
+                       if (freq != di->defaultSampleRate && err == paInvalidSampleRate && !defaultrate) {
+                               freq = di->defaultSampleRate;
+                               sd->freq = freq;
+                               defaultrate = 1;
                                continue;
                        }
                        goto end;
                }
-               if (freq < 44000 && err == paInvalidSampleRate) {
-                       freq = 44000;
-                       sd->freq = freq;
-                       continue;
-               }
-               if (freq < 48000 && err == paInvalidSampleRate) {
-                       freq = 48000;
-                       sd->freq = freq;
-                       continue;
+
+               sd->samplesize = ch * 16 / 8;
+#if 0
+               s->pablocking = 1;
+               err = Pa_OpenStream (&s->pastream, NULL, &p, freq, s->paframesperbuffer, paNoFlag, NULL, NULL);
+#else
+               err = paUnanticipatedHostError;
+#endif
+               if (err == paUnanticipatedHostError) { // could be "blocking not supported"
+                       s->pablocking = 0;
+                       err = Pa_OpenStream (&s->pastream, NULL, &p, freq, paFramesPerBufferUnspecified, paNoFlag, portAudioCallback, sd);
                }
-               if (freq != di->defaultSampleRate && err == paInvalidSampleRate && !defaultrate) {
-                       freq = di->defaultSampleRate;
-                       sd->freq = freq;
-                       defaultrate = 1;
-                       continue;
+               if (err == paInvalidSampleRate || err == paInvalidChannelCount)
+                       goto fixfreq;
+               if (err != paNoError) {
+                       errtxt = au (Pa_GetErrorText (err));
+                       write_log (L"PASOUND: Pa_OpenStream() error %d (%s)\n", err, errtxt);
+                       xfree (errtxt);
+                       goto end;
                }
-               goto end;
-       }
-       sd->sndbufsize = size * ch * 2;
-       //    s->pablocking = 1;
-       //    err = Pa_OpenStream (&s->pastream, NULL, &p, freq, s->paframesperbuffer, paNoFlag, NULL, NULL);
-       //    if (err != paNoError) {
-       s->pablocking = 0;
-       err = Pa_OpenStream (&s->pastream, NULL, &p, freq, s->paframesperbuffer, paNoFlag, portAudioCallback, sd);
-       if (err != paNoError) {
-               errtxt = au (Pa_GetErrorText (err));
-               write_log (L"PASOUND: Pa_OpenStream() error %d (%s)\n", err, errtxt);
-               xfree (errtxt);
-               goto end;
+               break;
        }
-       //    }
-       s->paevent = CreateEvent (NULL, FALSE, FALSE, NULL);
-       for (i = 0; i < 2; i++)
-               s->pasoundbuffer[i] = xcalloc (uae_u8, sd->sndbufsize);
+
+       if (!s->pablocking) {
+               s->pasoundbuffer = xcalloc (uae_u8, PA_BUFFERSIZE);
+       }
+
        name = au (di->name);
-       write_log (L"PASOUND: CH=%d,FREQ=%d (%s) '%s' buffer %d\n",
-               ch, freq, sound_devices[index]->name, name, sd->sndbufsize);
+       write_log (L"PASOUND: CH=%d,FREQ=%d (%s) '%s' buffer %d/%d (%s)\n",
+               ch, freq, sound_devices[index]->name, name,
+               s->pasndbufsize, s->paframesperbuffer, s->pablocking ? L"push" : L"pull");
        xfree (name);
        return 1;
 end:
@@ -868,10 +1019,11 @@ static int open_audio_wasapi (struct sound_data *sd, int index, int exclusive)
                sd->freq = pwfx_saved->nSamplesPerSec;
        }
 
-       size = sd->sndbufsize * sd->channels * 16 / 8;
+       sd->samplesize = sd->channels * 16 / 8;
+       size = sd->sndbufsize * sd->samplesize;
        s->snd_configsize = size;
        sd->sndbufsize = size / 32;
-       size /= (sd->channels * 16 / 8);
+       size /= sd->samplesize;
 
        s->bufferFrameCount = (UINT32)( // frames =
                1.0 * s->hnsRequestedDuration * // hns *
@@ -959,12 +1111,12 @@ static int open_audio_wasapi (struct sound_data *sd, int index, int exclusive)
                }
        }
 #endif
-       v = s->bufferFrameCount * sd->channels * 16 / 8;
+       v = s->bufferFrameCount * sd->samplesize;
        v /= 2;
        if (sd->sndbufsize > v)
                sd->sndbufsize = v;
        s->wasapigoodsize =s->bufferFrameCount / 2;
-       s->sndbufframes = sd->sndbufsize / (sd->channels * 16 / 8);
+       s->sndbufframes = sd->sndbufsize / sd->samplesize;
 
        write_log(L"WASAPI: '%s'\nWASAPI: EX=%d CH=%d FREQ=%d BUF=%d (%d)\n",
                name, s->wasapiexclusive, sd->channels, sd->freq, sd->sndbufsize, s->bufferFrameCount);
@@ -1265,6 +1417,7 @@ int init_sound (void)
                return 0;
        sdp->paused = 1;
        driveclick_reset ();
+       reset_sound ();
        resume_sound ();
        return 1;
 }
@@ -1292,6 +1445,10 @@ void reset_sound (void)
        if (!have_sound)
                return;
        clearbuffer (sdp);
+       if (isvsync ())
+               delayed_start = time (NULL) + 1;
+       else
+               delayed_start = 0;
 }
 
 static void disable_sound (void)
@@ -1306,37 +1463,6 @@ static void reopen_sound (void)
        open_sound ();
 }
 
-
-extern int vsynctime_orig;
-
-#ifndef AVIOUTPUT
-static int avioutput_audio;
-#endif
-
-void sound_setadjust (double v)
-{
-       float mult;
-
-       if (v >= -5 && v <= 5)
-               v = 0;
-
-       mult = (1000.0 + v);
-       if (avioutput_audio && avioutput_enabled && avioutput_nosoundsync)
-               mult = 1000.0;
-       if (isvsync () || (avioutput_audio && avioutput_enabled && !currprefs.cachesize)) {
-               vsynctime = vsynctime_orig;
-               scaled_sample_evtime = scaled_sample_evtime_orig * mult / 1000.0;
-       } else if (currprefs.cachesize || currprefs.m68k_speed != 0) {
-               vsynctime = (long)(((double)vsynctime_orig) * mult / 1000.0);
-               scaled_sample_evtime = scaled_sample_evtime_orig;
-       } else {
-               vsynctime = (long)(((double)vsynctime_orig) * mult / 1000.0);
-               scaled_sample_evtime = scaled_sample_evtime_orig;
-       }
-}
-
-#define SND_STATUSCNT 10
-
 #define cf(x) if ((x) >= s->dsoundbuf) (x) -= s->dsoundbuf;
 
 static void restart_sound_buffer2 (struct sound_data *sd)
@@ -1386,24 +1512,13 @@ static void finish_sound_buffer_al (struct sound_data *sd, uae_u16 *sndbuffer)
 {
        struct sound_dp *s = sd->data;
        static int tfprev;
-       static int statuscnt;
        int v, v2;
-       double m, skipmode;
 
        if (!sd->waiting_for_buffer)
                return;
        if (savestate_state)
                return;
 
-       if (sd == sdp) {
-               if (statuscnt > 0) {
-                       statuscnt--;
-                       if (statuscnt == 0)
-                               gui_data.sndbuf_status = 0;
-               }
-               if (gui_data.sndbuf_status == 3)
-                       gui_data.sndbuf_status = 0;
-       }
        alGetError ();
 
        memcpy (s->al_bigbuffer + s->al_offset, sndbuffer, sd->sndbufsize);
@@ -1463,6 +1578,10 @@ static void finish_sound_buffer_al (struct sound_data *sd, uae_u16 *sndbuffer)
                alGetSourcei (s->al_Source, AL_BYTE_OFFSET, &v);
                alcheck (sd, 7);
                v -= s->al_offset;
+
+               docorrection (s, 100 * v / sd->sndbufsize, v / sd->samplesize, 100);
+
+#if 0
                gui_data.sndbuf = 100 * v / sd->sndbufsize;
                m = gui_data.sndbuf / 100.0;
 
@@ -1493,6 +1612,7 @@ static void finish_sound_buffer_al (struct sound_data *sd, uae_u16 *sndbuffer)
                        tfprev = timeframes;
                        sound_setadjust (skipmode);
                }
+#endif
        }
 
        alcheck (sd, 0);
@@ -1572,9 +1692,9 @@ int get_offset_sound_device (struct sound_data *sd)
 static double sync_sound (double m)
 {
        double skipmode;
-       if (isvsync ()) {
+       if (isvsync () || 1) {
 
-               skipmode = pow (m < 0 ? -m : m, EXP) / 10;
+               skipmode = pow (m < 0 ? -m : m, EXPVS) / 10;
                if (m < 0)
                        skipmode = -skipmode;
                if (skipmode < -ADJUST_VSSIZE)
@@ -1601,7 +1721,6 @@ static void finish_sound_buffer_wasapi (struct sound_data *sd, uae_u16 *sndbuffe
        struct sound_dp *s = sd->data;
        HRESULT hr;
        BYTE *pData;
-       double skipmode;
        UINT32 numFramesPadding;
        int avail;
        int stuck = 2000;
@@ -1610,12 +1729,6 @@ static void finish_sound_buffer_wasapi (struct sound_data *sd, uae_u16 *sndbuffe
        if (sd->paused)
                return;
 
-       s->framecounter++;
-       if (s->framecounter > 50) {
-               s->sndbuf = s->sndbuf / s->framecounter;
-               s->framecounter = 2;
-       }
-
        for (;;) {
                hr = s->pAudioClient->GetCurrentPadding (&numFramesPadding);
                if (FAILED (hr)) {
@@ -1623,8 +1736,13 @@ static void finish_sound_buffer_wasapi (struct sound_data *sd, uae_u16 *sndbuffe
                        return;
                }
                avail = s->bufferFrameCount - numFramesPadding;
-               if (avail >= s->sndbufframes)
+               if (avail >= s->sndbufframes) {
+                       if (avail >= s->wasapigoodsize * 2 - s->sndbufframes * 1) {
+                               statuscnt = SND_STATUSCNT;
+                               gui_data.sndbuf_status = 2;
+                       }
                        break;
+               }
                gui_data.sndbuf_status = 1;
                statuscnt = SND_STATUSCNT;
                sleep_millis (1);
@@ -1637,12 +1755,9 @@ static void finish_sound_buffer_wasapi (struct sound_data *sd, uae_u16 *sndbuffe
                }
                oldpadding = numFramesPadding;
        }
-       s->sndbuf += (s->wasapigoodsize - avail) * 1000 / s->wasapigoodsize;
-       gui_data.sndbuf = s->sndbuf / s->framecounter;
-       if (s->framecounter == 2) {
-               skipmode = sync_sound (gui_data.sndbuf / 70.0);
-               sound_setadjust (skipmode);
-       }
+
+       docorrection (s, (s->wasapigoodsize - avail) * 1000 / s->wasapigoodsize, s->wasapigoodsize - avail, 100);
+
        hr = s->pRenderClient->GetBuffer (s->sndbufframes, &pData);
        if (SUCCEEDED (hr)) {
                memcpy (pData, sndbuffer, sd->sndbufsize);
@@ -1809,18 +1924,25 @@ static void finish_sound_buffer_ds (struct sound_data *sd, uae_u16 *sndbuffer)
        if (sd == sdp) {
                double vdiff, m, skipmode;
 
-               vdiff = diff - s->snd_writeoffset;
-               m = 100.0 * vdiff / s->max_sndbufsize;
+               vdiff = (diff - s->snd_writeoffset) / sd->samplesize;
+               m = 100.0 * vdiff / (s->max_sndbufsize / sd->samplesize);
                skipmode = sync_sound (m);
 
                if (tfprev != timeframes) {
                        gui_data.sndbuf = vdiff * 1000 / (s->snd_maxoffset - s->snd_writeoffset);
+                       s->avg_correct += vdiff;
+                       s->cnt_correct++;
+                       double adj = (s->avg_correct / s->cnt_correct) / 50.0;
                        if ((0 || sound_debug) && !(tfprev % 10))
-                               write_log (L"b=%4d,%5d,%5d,%5d d=%5d vd=%5.0f s=%+02.1f\n",
+                               write_log (L"%d,%d,%d,%d d%5d vd%5.0f s%+02.1f %.0f %+02.1f\n",
                                sd->sndbufsize / sd->samplesize, s->snd_configsize / sd->samplesize, s->max_sndbufsize / sd->samplesize,
-                               s->dsoundbuf / sd->samplesize, diff / sd->samplesize, vdiff, skipmode);
+                               s->dsoundbuf / sd->samplesize, diff / sd->samplesize, vdiff, skipmode, s->avg_correct / s->cnt_correct, adj);
                        tfprev = timeframes;
-                       sound_setadjust (skipmode);
+                       if (skipmode > 1)
+                               skipmode = 1;
+                       if (skipmode < -1)
+                               skipmode = -1;
+                       sound_setadjust (skipmode + adj);
                }
        }
 
@@ -1868,6 +1990,8 @@ void send_sound (struct sound_data *sd, uae_u16 *sndbuffer)
 
 void finish_sound_buffer (void)
 {
+       static unsigned long tframe;
+
        if (currprefs.turbo_emulation)
                return;
        if (currprefs.sound_stereo_swap_paula) {
@@ -1887,7 +2011,15 @@ void finish_sound_buffer (void)
 #endif
        if (!have_sound)
                return;
-       if (statuscnt > 0) {
+
+       if (delayed_start) {
+               if (delayed_start > time (NULL))
+                       return;
+               delayed_start = 0;
+       }
+
+       if (statuscnt > 0 && tframe != timeframes) {
+               tframe = timeframes;
                statuscnt--;
                if (statuscnt == 0)
                        gui_data.sndbuf_status = 0;
index 3772702e0f59814f7dcdecb7f9d5f1cf23b23270..7a0ea4bfe1e2df8f7f2d0b54d88ea1e8e4f875e3 100644 (file)
@@ -175,7 +175,6 @@ TCHAR help_file[MAX_DPATH];
 int af_path_2005;
 int quickstart = 1, configurationcache = 1, relativepaths = 0;
 
-static int multi_display = 1;
 static TCHAR *inipath = NULL;
 
 static int guijoybutton[MAX_JPORTS];
@@ -2970,7 +2969,6 @@ int target_parse_option (struct uae_prefs *p, const TCHAR *option, const TCHAR *
                || cfgfile_intval (option, value, L"midi_device", &p->win32_midioutdev, 1)
                || cfgfile_intval (option, value, L"midiout_device", &p->win32_midioutdev, 1)
                || cfgfile_intval (option, value, L"midiin_device", &p->win32_midiindev, 1)
-               || cfgfile_intval (option, value, L"soundcard", &p->win32_soundcard, 1)
                || cfgfile_intval (option, value, L"samplersoundcard", &p->win32_samplersoundcard, 1)
                || cfgfile_yesno (option, value, L"soundcard_exclusive", &p->win32_soundexclusive)
                || cfgfile_yesno (option, value, L"notaskbarbutton", &p->win32_notaskbarbutton)
@@ -2993,6 +2991,12 @@ int target_parse_option (struct uae_prefs *p, const TCHAR *option, const TCHAR *
        if (cfgfile_yesno (option, value, L"rtg_scale_allow", &p->win32_rtgallowscaling))
                return 1;
 
+       if (cfgfile_intval (option, value, L"soundcard", &p->win32_soundcard, 1)) {
+               if (p->win32_soundcard < 0 || p->win32_soundcard >= MAX_SOUND_DEVICES || sound_devices[p->win32_soundcard] == NULL)
+                       p->win32_soundcard = 0;
+               return 1;
+       }
+
        if (cfgfile_string (option, value, L"soundcardname", tmpbuf, sizeof tmpbuf / sizeof (TCHAR))) {
                int i, num;
 
@@ -4629,7 +4633,6 @@ static int parseargs (const TCHAR *argx, const TCHAR *np, const TCHAR *np2)
                return 1;
        }
        if (!_tcscmp (arg, L"nomultidisplay")) {
-               multi_display = 0;
                return 1;
        }
        if (!_tcscmp (arg, L"legacypaths")) {
@@ -4986,7 +4989,7 @@ static int PASCAL WinMain2 (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR
 
                WIN32_HandleRegistryStuff ();
                write_log (L"Enumerating display devices.. \n");
-               enumeratedisplays (multi_display);
+               enumeratedisplays ();
                write_log (L"Sorting devices and modes..\n");
                sortdisplays ();
                write_log (L"Display buffer mode = %d\n", ddforceram);
index 66e3bf8435eea04a22ebd0f50c6c2690b3f0b2be..bc1b96b0597451143d04cd49096227cece5555c1 100644 (file)
@@ -19,8 +19,8 @@
 #define LANG_DLL 1
 
 //#define WINUAEBETA L""
-#define WINUAEBETA L"Beta 4"
-#define WINUAEDATE MAKEBD(2011, 12, 12)
+#define WINUAEBETA L"Beta 5"
+#define WINUAEDATE MAKEBD(2011, 12, 18)
 #define WINUAEEXTRA L""
 #define WINUAEREV L""
 
index bd8b76620d2c45d6d77ea99e32a0fc6b7bbc6919..641298e8013057853dcad364d29c856c35a0fee2 100644 (file)
@@ -164,7 +164,7 @@ static void filesys_addexternals (void)
                        }
                        devname[0] = 0;
                        for (;;) {
-                               if (drivetype == DRIVE_CDROM && currprefs.win32_automount_cddrives) {
+                               if (drivetype == DRIVE_CDROM && currprefs.win32_automount_cddrives && !currprefs.scsi) {
                                        _stprintf (devname, L"WinCD_%c", drive);
                                        rw = 0;
                                        break;
index 51b6ec3dfdd80a5b45e720ea635993cebe472ae1..9de04bd32c5ca73c9371b93cb27616d1e7da32e7 100644 (file)
@@ -114,7 +114,7 @@ static int vblscale2 (int v)
        return v;
 }
 
-static void fixh (int *ah, int *th, int minh)
+static void fixh (int *ah, int minh)
 {
        if (!isnativevidbuf ())
                return;
@@ -124,8 +124,7 @@ static void fixh (int *ah, int *th, int minh)
                        max = minh;
                if (*ah > max)
                        *ah = max;
-               if (*th > max)
-                       *th = max;
+
        }
 }
 
@@ -133,7 +132,7 @@ static uae_u8 *getfilterrect1 (RECT *sr, RECT *dr, int dst_width, int dst_height
 {
        int aws, ahs;
 
-       fixh (&ah, &temp_height, dst_height);
+       fixh (&ah, dst_height);
 
        aws = aw * scale;
        ahs = ah * scale;
@@ -220,7 +219,7 @@ void getfilterrect2 (RECT *sr, RECT *dr, RECT *zr, int dst_width, int dst_height
 
        fpux_save (&fpuv);
 
-       fixh (&ah, &temp_height, dst_height);
+       fixh (&ah, dst_height);
 
        getinit ();
        ahs2 = vblscale (ah) * scale;
index 28bf738eb94eb49828ba750517794a3cd2807094..5f7ddc98be7d2948cb879662ad15d18ef3d43f46 100644 (file)
@@ -92,7 +92,6 @@ struct winuae_currentmode {
 };
 
 struct MultiDisplay Displays[MAX_DISPLAYS];
-static GUID *displayGUID;
 
 static struct winuae_currentmode currentmodestruct;
 static int screen_is_initialized;
@@ -105,7 +104,7 @@ int window_extra_width, window_extra_height;
 
 static struct winuae_currentmode *currentmode = &currentmodestruct;
 static int wasfullwindow_a, wasfullwindow_p;
-static int vblankbasewait, vblankbasewait2, vblankbasefull;
+static int vblankbasewait, vblankbasewait2, vblankbasewait3, vblankbasefull;
 
 int screen_is_picasso = 0;
 
@@ -203,7 +202,7 @@ static uae_u8 scrlinebuf[4096 * 4]; /* this is too large, but let's rather play
 struct MultiDisplay *getdisplay (struct uae_prefs *p)
 {
        int i;
-       int display = p->gfx_display;
+       int display = p->gfx_display - 1;
 
        i = 0;
        while (Displays[i].name) {
@@ -220,6 +219,8 @@ struct MultiDisplay *getdisplay (struct uae_prefs *p)
        }
        if (display >= i)
                display = 0;
+       if (display < 0)
+               display = 0;
        return &Displays[display];
 }
 
@@ -394,7 +395,7 @@ oops:
        return 0;
 }
 
-static void addmode (struct MultiDisplay *md, int w, int h, int d, int rate, int nondx)
+static void addmode (struct MultiDisplay *md, int w, int h, int d, int rate, int rawmode)
 {
        int ct;
        int i, j;
@@ -422,7 +423,7 @@ static void addmode (struct MultiDisplay *md, int w, int h, int d, int rate, int
                        }
                        if (j < MAX_REFRESH_RATES) {
                                md->DisplayModes[i].refresh[j] = rate;
-                               md->DisplayModes[i].refreshtype[j] = nondx;
+                               md->DisplayModes[i].refreshtype[j] = rawmode;
                                md->DisplayModes[i].refresh[j + 1] = 0;
                                return;
                        }
@@ -434,12 +435,12 @@ static void addmode (struct MultiDisplay *md, int w, int h, int d, int rate, int
                i++;
        if (i >= MAX_PICASSO_MODES - 1)
                return;
-       md->DisplayModes[i].nondx = nondx;
+       md->DisplayModes[i].rawmode = rawmode;
        md->DisplayModes[i].res.width = w;
        md->DisplayModes[i].res.height = h;
        md->DisplayModes[i].depth = d;
        md->DisplayModes[i].refresh[0] = rate;
-       md->DisplayModes[i].refreshtype[0] = nondx;
+       md->DisplayModes[i].refreshtype[0] = rawmode;
        md->DisplayModes[i].refresh[1] = 0;
        md->DisplayModes[i].colormodes = ct;
        md->DisplayModes[i + 1].depth = -1;
@@ -447,35 +448,6 @@ static void addmode (struct MultiDisplay *md, int w, int h, int d, int rate, int
                md->DisplayModes[i].res.width, md->DisplayModes[i].res.height, md->DisplayModes[i].depth * 8);
 }
 
-static HRESULT CALLBACK modesCallback (LPDDSURFACEDESC2 modeDesc, LPVOID context)
-{
-       struct MultiDisplay *md = (struct MultiDisplay*)context;
-       RGBFTYPE colortype;
-       int depth, ct;
-
-       colortype = DirectDraw_GetSurfacePixelFormat (modeDesc);
-       ct = 1 << colortype;
-       depth = 0;
-       if (ct & RGBMASK_8BIT)
-               return DDENUMRET_OK;
-       else if (ct & RGBMASK_15BIT)
-               depth = 15;
-       else if (ct & RGBMASK_16BIT)
-               depth = 16;
-       else if (ct & RGBMASK_24BIT)
-               return DDENUMRET_OK;
-       else if (ct & RGBMASK_32BIT)
-               depth = 32;
-       if (depth == 0)
-               return DDENUMRET_OK;
-       if (colortype == RGBFB_NONE)
-               return DDENUMRET_OK;
-       if (modeDesc->dwWidth > 2560 || modeDesc->dwHeight > 2048)
-               return DDENUMRET_OK;
-       addmode (md, modeDesc->dwWidth, modeDesc->dwHeight, depth, modeDesc->dwRefreshRate, 0);
-       return DDENUMRET_OK;
-}
-
 static int _cdecl resolution_compare (const void *a, const void *b)
 {
        struct PicassoResolution *ma = (struct PicassoResolution *)a;
@@ -529,7 +501,7 @@ static void modesList (struct MultiDisplay *md)
 
        i = 0;
        while (md->DisplayModes[i].depth >= 0) {
-               write_log (L"%d: %s%s (", i, md->DisplayModes[i].nondx ? L"!" : L"", md->DisplayModes[i].name);
+               write_log (L"%d: %s%s (", i, md->DisplayModes[i].rawmode ? L"!" : L"", md->DisplayModes[i].name);
                j = 0;
                while (md->DisplayModes[i].refresh[j] > 0) {
                        if (j > 0)
@@ -545,71 +517,55 @@ static void modesList (struct MultiDisplay *md)
        }
 }
 
-BOOL CALLBACK displaysCallback (GUID *guid, char *adesc, char *aname, LPVOID ctx, HMONITOR hm)
+static BOOL CALLBACK monitorEnumProc (HMONITOR h, HDC hdc, LPRECT rect, LPARAM data)
 {
        struct MultiDisplay *md = Displays;
        MONITORINFOEX lpmi;
-       TCHAR tmp[200];
-       TCHAR *desc = au (adesc);
-       TCHAR *name = au (aname);
-       int ret = 0;
-
-       while (md->name) {
-               if (md - Displays >= MAX_DISPLAYS)
-                       goto end;
+       lpmi.cbSize = sizeof lpmi;
+       GetMonitorInfo(h, (LPMONITORINFO)&lpmi);
+       while (md - Displays < MAX_DISPLAYS) {
+               if (!_tcscmp (md->name3, lpmi.szDevice)) {
+                       TCHAR tmp[1000];
+                       md->rect = lpmi.rcMonitor;
+                       if (md->rect.left == 0 && md->rect.top == 0)
+                               _stprintf (tmp, L"%s (%d*%d)", md->name, md->rect.right - md->rect.left, md->rect.bottom - md->rect.top);
+                       else
+                               _stprintf (tmp, L"%s (%d*%d) [%d*%d]", md->name, md->rect.right - md->rect.left, md->rect.bottom - md->rect.top, md->rect.left, md->rect.top);
+                       xfree (md->name);
+                       md->name = my_strdup (tmp);
+                       return TRUE;
+               }
                md++;
        }
-       lpmi.cbSize = sizeof (lpmi);
-       if (guid == 0) {
-               POINT pt = { 0, 0 };
-               md->primary = 1;
-               GetMonitorInfo (MonitorFromPoint(pt, MONITOR_DEFAULTTOPRIMARY), (LPMONITORINFO)&lpmi);
-       } else {
-               memcpy (&md->guid,  guid, sizeof (GUID));
-               GetMonitorInfo (hm, (LPMONITORINFO)&lpmi);
-       }
-       md->rect = lpmi.rcMonitor;
-       if (md->rect.left == 0 && md->rect.top == 0)
-               _stprintf (tmp, L"%s (%d*%d)", desc, md->rect.right - md->rect.left, md->rect.bottom - md->rect.top);
-       else
-               _stprintf (tmp, L"%s (%d*%d) [%d*%d]", desc, md->rect.right - md->rect.left, md->rect.bottom - md->rect.top, md->rect.left, md->rect.top);
-       md->name = my_strdup (tmp);
-       md->name2 = my_strdup (desc);
-       md->name3 = my_strdup (name);
-       write_log (L"'%s' '%s' %s\n", desc, name, outGUID(guid));
-       ret = 1;
-end:
-       xfree (name);
-       xfree (desc);
-       return ret;
-}
-
-static BOOL CALLBACK monitorEnumProc (HMONITOR h, HDC hdc, LPRECT rect, LPARAM data)
-{
-       MONITORINFOEX lpmi;
-       int cnt = *((int*)data);
-       if (!Displays[cnt].name)
-               return FALSE;
-       lpmi.cbSize = sizeof (lpmi);
-       GetMonitorInfo(h, (LPMONITORINFO)&lpmi);
-       Displays[cnt].rect = *rect;
-       Displays[cnt].gdi = TRUE;
-       (*((int*)data))++;
        return TRUE;
 }
 
-void enumeratedisplays (int multi)
+void enumeratedisplays (void)
 {
-       if (multi) {
-               int cnt = 1;
-               DirectDraw_EnumDisplays (displaysCallback);
-               EnumDisplayMonitors (NULL, NULL, monitorEnumProc, (LPARAM)&cnt);
-       } else {
-               write_log (L"Multimonitor detection disabled\n");
-               Displays[0].primary = 1;
-               Displays[0].name = L"Display";
-               Displays[0].disabled = 0;
+       struct MultiDisplay *md = Displays;
+       int adapterindex = 0;
+       DISPLAY_DEVICE add;
+       add.cb = sizeof add;
+       while (EnumDisplayDevices (NULL, adapterindex, &add, 0)) {
+               int monitorindex = 0;
+               adapterindex++;
+               if (add.StateFlags & DISPLAY_DEVICE_MIRRORING_DRIVER)
+                       continue;
+               DISPLAY_DEVICE mdd;
+               mdd.cb = sizeof mdd;
+               while (EnumDisplayDevices (add.DeviceName, monitorindex, &mdd, 0)) {
+                       monitorindex++;
+                       if (md - Displays >= MAX_DISPLAYS)
+                               return;
+                       md->name3 = my_strdup (add.DeviceName);
+                       md->name2 = my_strdup (mdd.DeviceKey);
+                       md->name = my_strdup (mdd.DeviceString);
+                       if (add.StateFlags & DISPLAY_DEVICE_PRIMARY_DEVICE)
+                               md->primary = 1;
+                       md++;
+               }
        }
+       EnumDisplayMonitors (NULL, NULL, monitorEnumProc, NULL);
 }
 
 static int makesort (struct MultiDisplay *md)
@@ -627,7 +583,7 @@ static int makesort (struct MultiDisplay *md)
 void sortdisplays (void)
 {
        struct MultiDisplay *md1, *md2, tmp;
-       int i, idx, idx2;
+       int i, idx;
 
        md1 = Displays;
        while (md1->name) {
@@ -660,61 +616,45 @@ void sortdisplays (void)
                        ReleaseDC (NULL, hdc);
                }
 
-               int maxw = 0, maxh = 0;
-               if (DirectDraw_Start (NULL)) {
-                       DirectDraw_EnumDisplayModes (DDEDM_REFRESHRATES, modesCallback, md1);
-                       idx2 = 0;
-                       while (md1->DisplayModes[idx2].depth >= 0) {
-                               struct PicassoResolution *pr = &md1->DisplayModes[idx2];
-                               if (pr->res.width > maxw)
-                                       maxw = pr->res.width;
-                               if (pr->res.height > maxh)
-                                       maxh = pr->res.height;
-                               idx2++;
-                       }
-                       DirectDraw_Release ();
-               }
-               write_log (L"Desktop: W=%d H=%d B=%d. MaxW=%d MaxH=%d CXVS=%d CYVS=%d\n", w, h, b, maxw, maxh,
+               write_log (L"Desktop: W=%d H=%d B=%d. CXVS=%d CYVS=%d\n", w, h, b,
                        GetSystemMetrics (SM_CXVIRTUALSCREEN), GetSystemMetrics (SM_CYVIRTUALSCREEN));
-               idx = 0;
-               for (;;) {
-                       int found;
+               for (int mode = 0; mode < 2; mode++) {
                        DEVMODE dm;
                        dm.dmSize = sizeof dm;
                        dm.dmDriverExtra = 0;
-                       if (!EnumDisplaySettingsEx (md1->primary ? NULL : md1->name3, idx, &dm, EDS_RAWMODE))
-                               break;
-                       idx2 = 0;
-                       found = 0;
-                       while (md1->DisplayModes[idx2].depth >= 0 && !found) {
-                               struct PicassoResolution *pr = &md1->DisplayModes[idx2];
-                               if (pr->res.width == dm.dmPelsWidth && pr->res.height == dm.dmPelsHeight && pr->depth == dm.dmBitsPerPel / 8) {
-                                       for (i = 0; pr->refresh[i]; i++) {
-                                               if (pr->refresh[i] == dm.dmDisplayFrequency) {
-                                                       found = 1;
-                                                       break;
+                       idx = 0;
+                       while (EnumDisplaySettingsEx (md1->name3, idx, &dm, mode ? EDS_RAWMODE : 0)) {
+                               int found = 0;
+                               int idx2 = 0;
+                               while (md1->DisplayModes[idx2].depth >= 0 && !found) {
+                                       struct PicassoResolution *pr = &md1->DisplayModes[idx2];
+                                       if (pr->res.width == dm.dmPelsWidth && pr->res.height == dm.dmPelsHeight && pr->depth == dm.dmBitsPerPel / 8) {
+                                               for (i = 0; pr->refresh[i]; i++) {
+                                                       if (pr->refresh[i] == dm.dmDisplayFrequency) {
+                                                               found = 1;
+                                                               break;
+                                                       }
                                                }
                                        }
+                                       idx2++;
                                }
-                               idx2++;
-                       }
-                       if (!found && dm.dmBitsPerPel > 8) {
-                               int freq = 0;
+                               if (!found && dm.dmBitsPerPel > 8) {
+                                       int freq = 0;
 #if 0
-                               write_log (L"EnumDisplaySettings(%dx%dx%d %dHz %08x)\n",
-                                       dm.dmPelsWidth, dm.dmPelsHeight, dm.dmBitsPerPel, dm.dmDisplayFrequency, dm.dmFields);
+                                       write_log (L"EnumDisplaySettings(%dx%dx%d %dHz %08x)\n",
+                                               dm.dmPelsWidth, dm.dmPelsHeight, dm.dmBitsPerPel, dm.dmDisplayFrequency, dm.dmFields);
 #endif
-                               if (dm.dmFields & DM_DISPLAYFREQUENCY) {
-                                       freq = dm.dmDisplayFrequency;
-                                       if (freq < 10)
-                                               freq = 0;
-                               }
-                               if (freq < 75 && dm.dmPelsWidth <= maxw && dm.dmPelsHeight <= maxh) {
-                                       if ((dm.dmFields & DM_PELSWIDTH) && (dm.dmFields & DM_PELSHEIGHT) && (dm.dmFields & DM_BITSPERPEL))
-                                               addmode (md1, dm.dmPelsWidth, dm.dmPelsHeight, dm.dmBitsPerPel, freq, 1);
+                                       if (dm.dmFields & DM_DISPLAYFREQUENCY) {
+                                               freq = dm.dmDisplayFrequency;
+                                               if (freq < 10)
+                                                       freq = 0;
+                                       }
+                                       if ((dm.dmFields & DM_PELSWIDTH) && (dm.dmFields & DM_PELSHEIGHT) && (dm.dmFields & DM_BITSPERPEL)) {
+                                               addmode (md1, dm.dmPelsWidth, dm.dmPelsHeight, dm.dmBitsPerPel, freq, mode);
+                                       }
                                }
+                               idx++;
                        }
-                       idx++;
                }
                //dhack();
                sortmodes (md1);
@@ -727,7 +667,6 @@ void sortdisplays (void)
                write_log (L"'%s', %d display modes (%s)\n", md1->name, i, md1->disabled ? L"disabled" : L"enabled");
                md1++;
        }
-       displayGUID = NULL;
 }
 
 /* DirectX will fail with "Mode not supported" if we try to switch to a full
@@ -1270,9 +1209,8 @@ static int open_windows (int full)
 #ifdef OPENGL
        OGL_free ();
 #endif
-       if (!DirectDraw_Start (displayGUID))
+       if (!DirectDraw_Start ())
                return 0;
-       write_log (L"DirectDraw GUID=%s\n", outGUID (displayGUID));
 
        init_round = 0;
        ret = -2;
@@ -1285,7 +1223,7 @@ static int open_windows (int full)
                init_round++;
                if (ret < -9) {
                        DirectDraw_Release ();
-                       if (!DirectDraw_Start (displayGUID))
+                       if (!DirectDraw_Start ())
                                return 0;
                }
        } while (ret < 0);
@@ -1464,6 +1402,7 @@ int check_prefs_changed_gfx (void)
                init_custom ();
                if (c & 4) {
                        pause_sound ();
+                       reset_sound ();
                        resume_sound ();
                }
                inputdevice_acquire (TRUE);
@@ -1626,13 +1565,10 @@ static int alpha;
 void init_colors (void)
 {
        /* init colors */
-       switch(currentmode->current_depth / 8)
-       {
-       case 1:
-               break;
-       case 2:
-       case 3:
-       case 4:
+       if (currentmode->flags & DM_D3D) {
+               D3D_getpixelformat (currentmode->current_depth,
+                       &red_bits, &green_bits, &blue_bits, &red_shift, &green_shift, &blue_shift, &alpha_bits, &alpha_shift, &alpha);
+       } else {
                red_bits = bits_in_mask (DirectDraw_GetPixelFormatBitMask (red_mask));
                green_bits = bits_in_mask (DirectDraw_GetPixelFormatBitMask (green_mask));
                blue_bits = bits_in_mask (DirectDraw_GetPixelFormatBitMask (blue_mask));
@@ -1641,14 +1577,6 @@ void init_colors (void)
                blue_shift = mask_shift (DirectDraw_GetPixelFormatBitMask (blue_mask));
                alpha_bits = 0;
                alpha_shift = 0;
-               break;
-       }
-
-       if (currentmode->flags & DM_D3D) {
-#ifdef D3D
-               D3D_getpixelformat (currentmode->current_depth,
-                       &red_bits, &green_bits, &blue_bits, &red_shift, &green_shift, &blue_shift, &alpha_bits, &alpha_shift, &alpha);
-#endif
        }
 
        if (!(currentmode->flags & (DM_D3D))) {
@@ -1997,9 +1925,6 @@ int graphics_init (void)
 
 int graphics_setup (void)
 {
-       if (!DirectDraw_Start (NULL))
-               return 0;
-       DirectDraw_Release ();
 #ifdef PICASSO96
        InitPicasso96 ();
 #endif
@@ -2218,15 +2143,14 @@ static int getbestmode (int nextbest)
 }
 
 
-static bool waitvblankstate (bool state)
+static bool waitvblankstate (bool state, int *maxvpos)
 {
        if (currprefs.gfx_api) {
-               return D3D_waitvblankstate (state);
+               return D3D_waitvblankstate (state, maxvpos);
        } else {
-               return DirectDraw_waitvblankstate (state);
+               return DirectDraw_waitvblankstate (state, maxvpos);
        }
 }
-
 static bool getvblankstate (bool *state)
 {
        if (currprefs.gfx_api) {
@@ -2239,7 +2163,6 @@ static bool getvblankstate (bool *state)
                return true;
        }
 }
-
 double getcurrentvblankrate (void)
 {
        if (remembered_vblank)
@@ -2249,6 +2172,20 @@ double getcurrentvblankrate (void)
        else
                return DirectDraw_CurrentRefreshRate ();
 }
+static int getvblankpos (void)
+{
+       int vpos = -2;
+       if (currprefs.gfx_api) {
+               if (!D3D_getvblankpos (&vpos))
+                       return -2;
+               return vpos;
+       } else {
+               bool state;
+               if (!DirectDraw_getvblankstate (&state))
+                       return -2;
+               return state ? -1 : 0;
+       }
+}
 
 static bool threaded_vsync = false;
 volatile bool thread_vblank_found;
@@ -2265,15 +2202,16 @@ static void _cdecl vblankthread (void *dummy)
                        SetThreadPriority (GetCurrentThread (), THREAD_PRIORITY_LOWEST);
                        while (vblankthread_mode == 0)
                                vblankthread_counter++;
-                       SetThreadPriority (GetCurrentThread (), THREAD_PRIORITY_ABOVE_NORMAL);
+                       SetThreadPriority (GetCurrentThread (), THREAD_PRIORITY_HIGHEST);
                } else if (vblankthread_mode == VBLANKTH_IDLE) {
                        // idle mode
-                       Sleep(20);
+                       Sleep (100);
                } else if (vblankthread_mode == VBLANKTH_ACTIVE_WAIT) {
                        sleep_millis (1);
                } else if (vblankthread_mode == VBLANKTH_ACTIVE_START) {
                        // do not start until vblank has been passed
                        bool vb = false;
+                       getvblankstate (&vb);
                        bool ok = getvblankstate (&vb);
                        if (vb == false)
                                vblankthread_mode = VBLANKTH_ACTIVE;
@@ -2292,8 +2230,10 @@ static void _cdecl vblankthread (void *dummy)
                                                show_screen ();
                                                //write_log (L"%d\n", t - thread_vblank_time);
                                                thread_vblank_time = t;
+                                               vblankthread_mode = VBLANKTH_ACTIVE_WAIT;
                                        }
-                                       donotwait = true;
+                                       if (t - thread_vblank_time > vblankbasewait3 && cpu_number > 2)
+                                               donotwait = true;
                                }
                        }
                        if (t - vblank_prev_time > vblankbasefull * 3)
@@ -2307,114 +2247,22 @@ static void _cdecl vblankthread (void *dummy)
        vblankthread_mode = -1;
 }
 
-
-double vblank_calibrate (double approx_vblank, bool waitonly)
-{
-       frame_time_t t1, t2;
-       double tsum, tsum2, tval, tfirst;
-       int maxcnt, maxtotal, total, cnt, tcnt2;
-       HANDLE th;
-       
-       threaded_vsync = (cpu_number > 1 && currprefs.m68k_speed < 0);
-
-       if (remembered_vblank > 0 && (!threaded_vsync || (threaded_vsync && vblankthread_mode > 0)))
-               return remembered_vblank;
-       if (waitonly) {
-               vblankbasefull = syncbase / approx_vblank;
-               vblankbasewait = (syncbase / approx_vblank) * 3 / 4;
-               vblankbasewait2 = (syncbase / approx_vblank) * 7 / 10;
-               remembered_vblank = -1;
-               return -1;
-       }
-
-       th = GetCurrentThread ();
-       int oldpri = GetThreadPriority (th);
-       SetThreadPriority (th, THREAD_PRIORITY_HIGHEST);
-       if (vblankthread_mode <= VBLANKTH_KILL) {
-               vblankthread_mode = VBLANKTH_CALIBRATE;
-               _beginthread (&vblankthread, 0, 0);
-       } else {
-               changevblankthreadmode (VBLANKTH_CALIBRATE);
-       }
-       sleep_millis (100);
-       maxtotal = 10;
-       maxcnt = maxtotal;
-       tsum2 = 0;
-       tcnt2 = 0;
-       for (maxcnt = 0; maxcnt < maxtotal; maxcnt++) {
-               total = 10;
-               tsum = 0;
-               cnt = total;
-               for (cnt = 0; cnt < total; cnt++) {
-                       if (!waitvblankstate (true))
-                               goto fail;
-                       if (!waitvblankstate (false))
-                               goto fail;
-                       if (!waitvblankstate (true))
-                               goto fail;
-                       t1 = read_processor_time ();
-                       if (!waitvblankstate (false))
-                               goto fail;
-                       if (!waitvblankstate (true))
-                               goto fail;
-                       t2 = read_processor_time ();
-                       tval = (double)syncbase / (t2 - t1);
-                       if (cnt == 0)
-                               tfirst = tval;
-                       if (abs (tval - tfirst) > 1) {
-                               write_log (L"Very unstable vsync! %.6f vs %.6f, retrying..\n", tval, tfirst);
-                               break;
-                       }
-                       tsum2 += tval;
-                       tcnt2++;
-                       if (abs (tval - tfirst) > 0.1) {
-                               write_log (L"Unstable vsync! %.6f vs %.6f\n", tval, tfirst);
-                               break;
-                       }
-                       tsum += tval;
-               }
-               if (cnt >= total)
-                       break;
-       }
-       changevblankthreadmode (threaded_vsync ? VBLANKTH_IDLE : VBLANKTH_KILL);
-       SetThreadPriority (th, oldpri);
-       if (maxcnt >= maxtotal) {
-               tsum = tsum2 / tcnt2;
-               write_log (L"Unstable vsync reporting, using average value\n");
-       } else {
-               tsum /= total;
-       }
-       if (tsum >= 85)
-               tsum /= 2;
-       vblankbasefull = (syncbase / tsum);
-       vblankbasewait = (syncbase / tsum) * 3 / 4;
-       vblankbasewait2 = (syncbase / tsum) * 5 / 10;
-       write_log (L"VSync calibration: %.6fHz. Units = %d Mode = %s\n", tsum, vblankbasefull, threaded_vsync ? L"threaded" : L"normal");
-       remembered_vblank = tsum;
-       vblank_prev_time = read_processor_time ();
-       return tsum;
-fail:
-       write_log (L"VSync calibration failed\n");
-       changed_prefs.gfx_avsync = 0;
-       return -1;
-}
-
 static int frame_missed, frame_counted, frame_errors;
 static int frame_usage, frame_usage_avg, frame_usage_total;
 extern int log_vsync;
 
-void vsync_busywait_end (void)
+frame_time_t vsync_busywait_end (void)
 {
-//     frame_time_t t = read_processor_time ();
-
+       while (!thread_vblank_found && vblankthread_mode == VBLANKTH_ACTIVE)
+               sleep_millis (1);
        changevblankthreadmode (VBLANKTH_ACTIVE_WAIT);
-
-//     write_log (L"%d\n", t - thread_vblank_time);
-
-//     if (t - vblank_prev_time > vblankbasefull + vblankbasefull * 1 / 3) {
-//             frame_missed++;
-//             waitvblankstate (true);
-//     }
+       for (;;) {
+               int vpos = getvblankpos ();
+               if (vpos != -1) {
+                       break;
+               }
+       }
+       return thread_vblank_time;
 }
 
 void vsync_busywait_start (void)
@@ -2434,7 +2282,7 @@ bool vsync_busywait_do (int *freetime)
        t = read_processor_time ();
        ti = t - prevtime;
        if (ti > 2 * vblankbasefull || ti < -2 * vblankbasefull) {
-               waitvblankstate (false);
+               waitvblankstate (false, NULL);
                t = read_processor_time ();
                vblank_prev_time = t;
                thread_vblank_time = t;
@@ -2497,6 +2345,102 @@ bool vsync_busywait_do (int *freetime)
        return false;
 }
 
+double vblank_calibrate (double approx_vblank, bool waitonly)
+{
+       frame_time_t t1, t2;
+       double tsum, tsum2, tval, tfirst;
+       int maxcnt, maxtotal, total, cnt, tcnt2;
+       HANDLE th;
+       int maxvpos, div;
+       
+       threaded_vsync = (cpu_number > 1 && currprefs.m68k_speed < 0);
+
+       if (remembered_vblank > 0 && (!threaded_vsync || (threaded_vsync && vblankthread_mode > 0)))
+               return remembered_vblank;
+       if (waitonly) {
+               vblankbasefull = syncbase / approx_vblank;
+               vblankbasewait = (syncbase / approx_vblank) * 3 / 4;
+               vblankbasewait2 = (syncbase / approx_vblank) * 7 / 10;
+               vblankbasewait3 = (syncbase / approx_vblank) * 9 / 10;
+               remembered_vblank = -1;
+               return -1;
+       }
+
+       th = GetCurrentThread ();
+       int oldpri = GetThreadPriority (th);
+       SetThreadPriority (th, THREAD_PRIORITY_HIGHEST);
+       if (vblankthread_mode <= VBLANKTH_KILL) {
+               vblankthread_mode = VBLANKTH_CALIBRATE;
+               _beginthread (&vblankthread, 0, 0);
+       } else {
+               changevblankthreadmode (VBLANKTH_CALIBRATE);
+       }
+       sleep_millis (100);
+       maxtotal = 10;
+       maxcnt = maxtotal;
+       tsum2 = 0;
+       tcnt2 = 0;
+       for (maxcnt = 0; maxcnt < maxtotal; maxcnt++) {
+               total = 10;
+               tsum = 0;
+               cnt = total;
+               for (cnt = 0; cnt < total; cnt++) {
+                       if (!waitvblankstate (true, NULL))
+                               goto fail;
+                       if (!waitvblankstate (false, NULL))
+                               goto fail;
+                       if (!waitvblankstate (true, NULL))
+                               goto fail;
+                       t1 = read_processor_time ();
+                       if (!waitvblankstate (false, NULL))
+                               goto fail;
+                       if (!waitvblankstate (true, &maxvpos))
+                               goto fail;
+                       t2 = read_processor_time ();
+                       tval = (double)syncbase / (t2 - t1);
+                       if (cnt == 0)
+                               tfirst = tval;
+                       if (abs (tval - tfirst) > 1) {
+                               write_log (L"Very unstable vsync! %.6f vs %.6f, retrying..\n", tval, tfirst);
+                               break;
+                       }
+                       tsum2 += tval;
+                       tcnt2++;
+                       if (abs (tval - tfirst) > 0.1) {
+                               write_log (L"Unstable vsync! %.6f vs %.6f\n", tval, tfirst);
+                               break;
+                       }
+                       tsum += tval;
+               }
+               if (cnt >= total)
+                       break;
+       }
+       changevblankthreadmode (VBLANKTH_IDLE);
+       SetThreadPriority (th, oldpri);
+       if (maxcnt >= maxtotal) {
+               tsum = tsum2 / tcnt2;
+               write_log (L"Unstable vsync reporting, using average value\n");
+       } else {
+               tsum /= total;
+       }
+       div = 1;
+       if (tsum >= 85)
+               div = 2;
+       tsum2 = tsum / div;
+       vblankbasefull = (syncbase / tsum2);
+       vblankbasewait = (syncbase / tsum2) * 3 / 4;
+       vblankbasewait2 = (syncbase / tsum2) * 70 / 100;
+       vblankbasewait3 = (syncbase / tsum2) * 90 / 100;
+       write_log (L"VSync calibration: %.6fHz/%d=%.6fHz. MaxV=%d Units=%d Mode=%s\n", tsum, div, tsum2, maxvpos, vblankbasefull, threaded_vsync ? L"threaded" : L"normal");
+       remembered_vblank = tsum2;
+       vblank_prev_time = read_processor_time ();
+       return tsum;
+fail:
+       write_log (L"VSync calibration failed\n");
+       changed_prefs.gfx_avsync = 0;
+       return -1;
+}
+
 static int create_windows_2 (void)
 {
        static int firstwindow = 1;
@@ -2807,7 +2751,6 @@ static BOOL doInit (void)
 {
        int fs_warning = -1;
        TCHAR tmpstr[300];
-       RGBFTYPE colortype;
        int tmp_depth;
        int ret = 0;
 
@@ -2816,7 +2759,6 @@ static BOOL doInit (void)
                wasfullwindow_a = currprefs.gfx_afullscreen == GFX_FULLWINDOW ? 1 : -1;
        if (wasfullwindow_p == 0)
                wasfullwindow_p = currprefs.gfx_pfullscreen == GFX_FULLWINDOW ? 1 : -1;
-       colortype = DirectDraw_GetPixelFormat ();
        gfxmode_reset ();
 
        for (;;) {
@@ -2830,9 +2772,6 @@ static BOOL doInit (void)
                        currentmode->native_height = rc.bottom - rc.top;
                }
 
-               write_log (L"W=%d H=%d B=%d CT=%d\n",
-                       DirectDraw_CurrentWidth (), DirectDraw_CurrentHeight (), DirectDraw_GetCurrentDepth (), colortype);
-
                if (isfullscreen() <= 0 && !(currentmode->flags & (DM_D3D))) {
                        currentmode->current_depth = DirectDraw_GetCurrentDepth ();
                        updatemodes ();
@@ -2841,11 +2780,7 @@ static BOOL doInit (void)
                        updatemodes ();
                }
 
-               if (colortype == RGBFB_NONE) {
-                       fs_warning = IDS_UNSUPPORTEDSCREENMODE_1;
-               } else if (colortype == RGBFB_CLUT) {
-                       fs_warning = IDS_UNSUPPORTEDSCREENMODE_2;
-               } else if (currentmode->current_width > GetSystemMetrics(SM_CXVIRTUALSCREEN) ||
+               if (currentmode->current_width > GetSystemMetrics(SM_CXVIRTUALSCREEN) ||
                        currentmode->current_height > GetSystemMetrics(SM_CYVIRTUALSCREEN)) {
                                if (!console_logging)
                                        fs_warning = IDS_UNSUPPORTEDSCREENMODE_3;
@@ -2858,7 +2793,7 @@ static BOOL doInit (void)
                        DirectDraw_Release ();
                        _stprintf (tmpstr, szMessage, szMessage2);
                        gui_message (tmpstr);
-                       DirectDraw_Start (displayGUID);
+                       DirectDraw_Start ();
                        if (screen_is_picasso)
                                changed_prefs.gfx_pfullscreen = currprefs.gfx_pfullscreen = GFX_FULLSCREEN;
                        else
@@ -3056,16 +2991,11 @@ void updatewinfsmode (struct uae_prefs *p)
        } else {
                p->gfx_size = p->gfx_size_win;
        }
-       displayGUID = NULL;
        md = getdisplay (p);
        if (md->disabled) {
                p->gfx_display = 0;
                md = getdisplay (p);
        }
-       if (!md->primary)
-               displayGUID = &md->guid;
-       if (isfullscreen () == 0)
-               displayGUID = NULL;
        config_changed = 1;
 }
 
index 879ad0955ad58035014c289a04d7c3d2eaec8c9e..2ad4261edef322e0dacb53d851de3a51684ecdf7 100644 (file)
@@ -4,7 +4,7 @@
 #include <ddraw.h>
 
 extern void sortdisplays (void);
-extern void enumeratedisplays (int);
+extern void enumeratedisplays (void);
 
 int WIN32GFX_IsPicassoScreen (void);
 int WIN32GFX_GetWidth (void);
index a8dacad277671d203b85db3fb5f2242c7c9065a1..0bc09c9b145b7a33e2bb8ca96cadb2e5f73fad11 100644 (file)
@@ -1832,6 +1832,7 @@ void gui_display (int shortcut)
                        savestate_state = STATE_DORESTORE;
        }
        manual_painting_needed--; /* So that WM_PAINT doesn't need to use custom refreshing */
+       reset_sound ();
        resumepaused (9);
        inputdevice_copyconfig (&changed_prefs, &currprefs);
        inputdevice_config_change_test ();
@@ -5336,67 +5337,26 @@ static void enable_for_chipsetdlg (HWND hDlg)
        ew (hDlg, IDC_CS_EXT, workprefs.cs_compatible ? TRUE : FALSE);
 }
 
-static int fakerefreshrates[] = { 50, 60, 100, 120, 0 };
-struct storedrefreshrate
-{
-       int rate, type;
-};
-static struct storedrefreshrate storedrefreshrates[MAX_REFRESH_RATES + 1];
-
 static void init_frequency_combo (HWND hDlg, int dmode)
 {
-       int i, j, freq;
+       int i;
        TCHAR hz[20], hz2[20], txt[100];
        LRESULT index;
        struct MultiDisplay *md = getdisplay (&workprefs);
 
-       i = 0; index = 0;
-       while (dmode >= 0 && (freq = md->DisplayModes[dmode].refresh[i]) > 0 && index < MAX_REFRESH_RATES) {
-               storedrefreshrates[index].rate = freq;
-               storedrefreshrates[index++].type = md->DisplayModes[dmode].refreshtype[i];
-               i++;
-       }
-       i = 0;
-       while ((freq = fakerefreshrates[i]) > 0 && index < MAX_REFRESH_RATES) {
-               for (j = 0; j < index; j++) {
-                       if (storedrefreshrates[j].rate == freq)
-                               break;
-               }
-               if (j == index) {
-                       storedrefreshrates[index].rate = -freq;
-                       storedrefreshrates[index++].type = 0;
-               }
-               i++;
-       }
-       storedrefreshrates[index].rate = 0;
-       for (i = 0; i < index; i++) {
-               for (j = i + 1; j < index; j++) {
-                       if (abs (storedrefreshrates[i].rate) >= abs (storedrefreshrates[j].rate)) {
-                               struct storedrefreshrate srr;
-                               memcpy (&srr, &storedrefreshrates[i], sizeof (struct storedrefreshrate));
-                               memcpy (&storedrefreshrates[i], &storedrefreshrates[j], sizeof (struct storedrefreshrate));
-                               memcpy (&storedrefreshrates[j], &srr, sizeof (struct storedrefreshrate));
-                       }
-               }
-       }
-
        hz[0] = hz2[0] = 0;
        SendDlgItemMessage(hDlg, IDC_REFRESHRATE, CB_RESETCONTENT, 0, 0);
        WIN32GUI_LoadUIString (IDS_VSYNC_DEFAULT, txt, sizeof (txt) / sizeof (TCHAR));
        SendDlgItemMessage(hDlg, IDC_REFRESHRATE, CB_ADDSTRING, 0, (LPARAM)txt);
-       for (i = 0; i < index; i++) {
-               freq = storedrefreshrates[i].rate;
-               if (freq < 0) {
-                       freq = -freq;
-                       _stprintf (hz, L"(%dHz)", freq);
-               } else {
-                       _stprintf (hz, L"%dHz", freq);
-               }
+       for (i = 0; md->DisplayModes[dmode].refresh[i] > 0; i++) {
+               int freq =  md->DisplayModes[dmode].refresh[i];
+               int type = md->DisplayModes[dmode].refreshtype[i];
+               _stprintf (hz, L"%dHz", freq);
                if (freq == 50 || freq == 100)
                        _tcscat (hz, L" PAL");
                if (freq == 60 || freq == 120)
                        _tcscat (hz, L" NTSC");
-               if (storedrefreshrates[i].type)
+               if (type)
                        _tcscat (hz, L" (*)");
                if (abs (workprefs.gfx_refreshrate) == freq)
                        _tcscpy (hz2, hz);
@@ -5768,7 +5728,7 @@ static void init_resolution_combo (HWND hDlg)
        for (i = 0; md->DisplayModes[i].depth >= 0; i++) {
                if (md->DisplayModes[i].depth > 1 && md->DisplayModes[i].residx != idx) {
                        _stprintf (tmp, L"%dx%d", md->DisplayModes[i].res.width, md->DisplayModes[i].res.height);
-                       if (md->DisplayModes[i].nondx)
+                       if (md->DisplayModes[i].rawmode)
                                _tcscat (tmp, L" (*)");
                        SendDlgItemMessage(hDlg, IDC_RESOLUTION, CB_ADDSTRING, 0, (LPARAM)tmp);
                        idx = md->DisplayModes[i].residx;
@@ -5783,15 +5743,17 @@ static void init_displays_combo (HWND hDlg)
                SendDlgItemMessage (hDlg, IDC_DISPLAYSELECT, CB_ADDSTRING, 0, (LPARAM)Displays[i].name);
                i++;
        }
-       if (workprefs.gfx_display >= i)
+       if (workprefs.gfx_display > i)
                workprefs.gfx_display = 0;
-       SendDlgItemMessage (hDlg, IDC_DISPLAYSELECT, CB_SETCURSEL, workprefs.gfx_display, 0);
+       if (workprefs.gfx_display < 1)
+               workprefs.gfx_display = 1;
+       SendDlgItemMessage (hDlg, IDC_DISPLAYSELECT, CB_SETCURSEL, workprefs.gfx_display - 1, 0);
 }
 
 static void values_from_displaydlg (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
 {
        BOOL success = FALSE;
-       int i, j;
+       int i;
        int gfx_width = workprefs.gfx_size_win.width;
        int gfx_height = workprefs.gfx_size_win.height;
        LRESULT posn;
@@ -5893,14 +5855,35 @@ static void values_from_displaydlg (HWND hDlg, UINT msg, WPARAM wParam, LPARAM l
        workprefs.gfx_ycenter = ischecked (hDlg, IDC_YCENTER) ? 2 : 0; /* Smart centering */
        workprefs.gfx_autoresolution = ischecked (hDlg, IDC_AUTORESOLUTION);
 
+       int dmode = -1;
+       struct MultiDisplay *md = getdisplay (&workprefs);
+       LRESULT posn1 = SendDlgItemMessage (hDlg, IDC_RESOLUTION, CB_GETCURSEL, 0, 0);
+       LRESULT posn2 = SendDlgItemMessage (hDlg, IDC_RESOLUTIONDEPTH, CB_GETCURSEL, 0, 0);
+       if (posn1 != CB_ERR && posn2 != CB_ERR) {
+               for (dmode = 0; md->DisplayModes[dmode].depth >= 0; dmode++) {
+                       if (md->DisplayModes[dmode].residx == posn1)
+                               break;
+               }
+               if (md->DisplayModes[dmode].depth > 0) {
+                       i = dmode;
+                       while (md->DisplayModes[dmode].residx == posn1) {
+                               if (md->DisplayModes[dmode].depth == gui_display_depths[posn2])
+                                       break;
+                               dmode++;
+                       }
+                       if (md->DisplayModes[dmode].residx != posn1)
+                       dmode = i;
+               }
+       }
+
        if (msg == WM_COMMAND && HIWORD (wParam) == CBN_SELCHANGE)
        {
                if (LOWORD (wParam) == IDC_DISPLAYSELECT) {
                        posn = SendDlgItemMessage (hDlg, IDC_DISPLAYSELECT, CB_GETCURSEL, 0, 0);
-                       if (posn != CB_ERR && posn != workprefs.gfx_display) {
+                       if (posn != CB_ERR && posn + 1 != workprefs.gfx_display) {
                                if (Displays[posn].disabled)
                                        posn = 0;
-                               workprefs.gfx_display = posn;
+                               workprefs.gfx_display = posn + 1;
                                init_resolution_combo (hDlg);
                                init_display_mode (hDlg);
                        }
@@ -5909,32 +5892,10 @@ static void values_from_displaydlg (HWND hDlg, UINT msg, WPARAM wParam, LPARAM l
                        posn = SendDlgItemMessage (hDlg, IDC_LORES, CB_GETCURSEL, 0, 0);
                        if (posn != CB_ERR)
                                workprefs.gfx_resolution = posn;
-               } else if (LOWORD (wParam) == IDC_RESOLUTION || LOWORD(wParam) == IDC_RESOLUTIONDEPTH) {
-                       struct MultiDisplay *md = getdisplay (&workprefs);
-                       LRESULT posn1, posn2;
-                       posn1 = SendDlgItemMessage (hDlg, IDC_RESOLUTION, CB_GETCURSEL, 0, 0);
-                       if (posn1 == CB_ERR)
-                               return;
-                       posn2 = SendDlgItemMessage (hDlg, IDC_RESOLUTIONDEPTH, CB_GETCURSEL, 0, 0);
-                       if (posn2 == CB_ERR)
-                               return;
-                       for (i = 0; md->DisplayModes[i].depth >= 0; i++) {
-                               if (md->DisplayModes[i].residx == posn1)
-                                       break;
-                       }
-                       if (md->DisplayModes[i].depth < 0)
-                               return;
-                       j = i;
-                       while (md->DisplayModes[i].residx == posn1) {
-                               if (md->DisplayModes[i].depth == gui_display_depths[posn2])
-                                       break;
-                               i++;
-                       }
-                       if (md->DisplayModes[i].residx != posn1)
-                               i = j;
-                       workprefs.gfx_size_fs.width  = md->DisplayModes[i].res.width;
-                       workprefs.gfx_size_fs.height = md->DisplayModes[i].res.height;
-                       switch(md->DisplayModes[i].depth)
+               } else if ((LOWORD (wParam) == IDC_RESOLUTION || LOWORD(wParam) == IDC_RESOLUTIONDEPTH) && dmode >= 0) {
+                       workprefs.gfx_size_fs.width  = md->DisplayModes[dmode].res.width;
+                       workprefs.gfx_size_fs.height = md->DisplayModes[dmode].res.height;
+                       switch(md->DisplayModes[dmode].depth)
                        {
                        case 2:
                                workprefs.color_mode = 2;
@@ -5951,19 +5912,16 @@ static void values_from_displaydlg (HWND hDlg, UINT msg, WPARAM wParam, LPARAM l
                        SetDlgItemInt (hDlg, IDC_XSIZE, workprefs.gfx_size_win.width, FALSE);
                        SetDlgItemInt (hDlg, IDC_YSIZE, workprefs.gfx_size_win.height, FALSE);
                        init_frequency_combo (hDlg, i);
-               } else if (LOWORD (wParam) == IDC_REFRESHRATE) {
-                       LRESULT posn1, posn2;
+               } else if (LOWORD (wParam) == IDC_REFRESHRATE && dmode >= 0) {
+                       LRESULT posn1;
                        posn1 = SendDlgItemMessage (hDlg, IDC_REFRESHRATE, CB_GETCURSEL, 0, 0);
                        if (posn1 == CB_ERR)
                                return;
-                       posn2 = SendDlgItemMessage (hDlg, IDC_RESOLUTION, CB_GETCURSEL, 0, 0);
-                       if (posn2 == CB_ERR)
-                               return;
                        if (posn1 == 0) {
                                workprefs.gfx_refreshrate = 0;
                        } else {
                                posn1--;
-                               workprefs.gfx_refreshrate = storedrefreshrates[posn1].rate;
+                               workprefs.gfx_refreshrate = md->DisplayModes[dmode].refresh[posn1];
                        }
                        values_to_displaydlg (hDlg);
                } else if (LOWORD (wParam) == IDC_DA_MODE) {
@@ -14737,6 +14695,7 @@ int gui_message_multibutton (int flags, const TCHAR *format,...)
        if (!gui_active) {
                if (flipflop)
                        ShowWindow (hAmigaWnd, SW_RESTORE);
+               reset_sound ();
                resume_sound ();
                setmouseactive (focuso > 0 ? 1 : 0);
        }
@@ -14790,6 +14749,7 @@ void gui_message (const TCHAR *format,...)
        if (!gui_active) {
                if (flipflop)
                        ShowWindow (hAmigaWnd, SW_RESTORE);
+               reset_sound ();
                resume_sound ();
                setmouseactive (focuso > 0 ? 1 : 0);
        }
index ca5057b64a1f5bc04cbd25c1a3e3552c9fe5cf7c..5301a791a5d338e1493dd2a9f6015153ccf5e8e4 100644 (file)
       <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
       <SuppressStartupBanner>true</SuppressStartupBanner>
       <IgnoreSpecificDefaultLibraries>LIBCMT;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
-      <DelayLoadDLLs>wpcap.dll;packet.dll;d3dx9_43.dll;openal32.dll;wintab32.dll;portaudio_x86.dll;ws2_32.dll;msacm32.dll;wtsapi32.dll;dsound.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
+      <DelayLoadDLLs>wpcap.dll;packet.dll;d3dx9_43.dll;openal32.dll;wintab32.dll;portaudio_x86.dll;ws2_32.dll;msacm32.dll;wtsapi32.dll;dsound.dll;ddraw.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <ProgramDatabaseFile>.\Debug/winuae.pdb</ProgramDatabaseFile>
       <SubSystem>Windows</SubSystem>
       <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories);$(SolutionDir)\..\lib\</AdditionalLibraryDirectories>
       <AdditionalManifestDependencies>%(AdditionalManifestDependencies)</AdditionalManifestDependencies>
       <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
-      <DelayLoadDLLs>wpcap.dll;packet.dll;d3dx9_43.dll;openal32.dll;wintab32.dll;portaudio_x86.dll;ws2_32.dll;msacm32.dll;wtsapi32.dll;dsound.dll;wininet.dll;avrt.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
+      <DelayLoadDLLs>wpcap.dll;packet.dll;d3dx9_43.dll;openal32.dll;wintab32.dll;portaudio_x86.dll;ws2_32.dll;msacm32.dll;wtsapi32.dll;dsound.dll;wininet.dll;avrt.dll;ddraw.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <ProgramDatabaseFile>.\Release/winuae.pdb</ProgramDatabaseFile>
       <SubSystem>Windows</SubSystem>
       <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories);$(SolutionDir)\..\lib\</AdditionalLibraryDirectories>
       <AdditionalManifestDependencies>%(AdditionalManifestDependencies)</AdditionalManifestDependencies>
       <IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
-      <DelayLoadDLLs>wpcap.dll;packet.dll;d3dx9_43.dll;openal32.dll;wintab32.dll;portaudio_x86.dll;ws2_32.dll;msacm32.dll;wtsapi32.dll;dsound.dll;wininet.dll;avrt.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
+      <DelayLoadDLLs>wpcap.dll;packet.dll;d3dx9_43.dll;openal32.dll;wintab32.dll;portaudio_x86.dll;ws2_32.dll;msacm32.dll;wtsapi32.dll;dsound.dll;wininet.dll;avrt.dll;ddraw.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <ProgramDatabaseFile>.\FullRelease/winuae.pdb</ProgramDatabaseFile>
       <SubSystem>Windows</SubSystem>
index e3a85ef2a29dde35f3186c69d5d244872734635d..66528833e10d41f767868f06fae2c7bf7ae07d28 100644 (file)
@@ -1,4 +1,26 @@
 
+Beta 5:
+
+- Removed obsolete fake (50), (60), (100) and (120) refresh rates.
+- Primary Display Driver monitor selection removed.
+- Only primary monitor allowed >75Hz modes.
+- Does not load or use ddraw.dll anymore if D3D mode enabled.
+- Display and mode enumeration rewritten (does not use ddraw aymore).
+- DirectDraw mode vertical positioning fixed (was always on top of screen)
+- Fixed Sound panel crash if sound card id stored in configuration file was larger than available number of sound card drivers.
+- Handle situation where PortAudio Pa_IsFormatSupported() returns true but Pa_OpenStream() fails with paInvalidSampleRate.
+  (Usually seems to happen when requesting 44100Hz but hardware supports only 48000Hz) 
+- VSync sound syncronization improved (All types: DirectSound, WASAPI, OpenAL and PortAudio)
+- SND% blue/yellow/red flickering fix, previously flickering speed changed depending on buffer size.
+- More fastest possible/JIT low latency vsync updates.
+
+- AROS CDFS is now UAE boot ROM built-in. "Include CD/DVD drives.." now has two modes:
+  - if uaescsi.device is not enabled: mount as Windows drive (same as previously) This mode may disappear in the future.
+  - if uaescsi.device is enabled: mount using built-in CDFS. (Correct file names, protection flags, audio tracks etc..) There is no need to install
+  Amiga-side CDFS anymore. I am not sure if AROS CDFS if good enough but at least it appears to work..
+
+  "Include CD/DVD drives.." (+uaescsi.device) can now be used to install OS3.0+ safely. KS2.0+ only. (CDFS requires 2.0+ features)
+
 Beta 4:
 
 - Another switching from CE mode to non-CE hang fix. (Blitter nasty related)
index f4148d45edecf205835e17045e22e3c1655c3f0e..cca8b927636a680dad2e7ca7adb7715013b24363 100644 (file)
@@ -527,7 +527,6 @@ static int dev_do_io (struct devstruct *dev, uaecptr request)
        switch (command)
        {
        case CMD_READ:
-               //write_log (L"CMD_READ %08x %d %d %08x\n", io_data, io_offset, io_length, bmask);
                if (dev->di.media_inserted <= 0)
                        goto no_media;
                if (dev->drivetype == INQ_ROMD) {
@@ -899,8 +898,13 @@ static int dev_can_quick (uae_u32 command)
        case CMD_CHANGESTATE:
        case CMD_PROTSTATUS:
        case CMD_GETDRIVETYPE:
-       case CMD_GETNUMTRACKS:
                return 1;
+       case CMD_GETNUMTRACKS:
+       case CMD_ADDCHANGEINT:
+       case CMD_REMCHANGEINT:
+       case CD_ADDFRAMEINT:
+       case CD_REMFRAMEINT:
+               return -1;
        }
        return 0;
 }
@@ -918,6 +922,7 @@ static uae_u32 REGPARAM2 dev_beginio (TrapContext *context)
        int command = get_word (request + 28);
        struct priv_devstruct *pdev = getpdevstruct (request);
        struct devstruct *dev;
+       int canquick;
 
        put_byte (request + 8, NT_MESSAGE);
        if (!pdev) {
@@ -930,9 +935,9 @@ static uae_u32 REGPARAM2 dev_beginio (TrapContext *context)
                return get_byte (request + 31);
        }
        put_byte (request + 31, 0);
-       if ((flags & 1) && dev_canquick (dev, request)) {
-               if (dev_do_io (dev, request))
-                       write_log (L"device %s command %d bug with IO_QUICK\n", getdevname (pdev->type), command);
+       canquick = dev_canquick (dev, request);
+       if (((flags & 1) && canquick) || (canquick < 0)) {
+               dev_do_io (dev, request);
                return get_byte (request + 31);
        } else {
                add_async_request (dev, request, ASYNC_REQUEST_TEMP, 0);
@@ -1011,6 +1016,17 @@ static uae_u32 REGPARAM2 dev_abortio (TrapContext *context)
 
 #define BTL2UNIT(bus, target, lun) (2 * (bus) + (target) / 8) * 100 + (lun) * 10 + (target % 8)
 
+uae_u16 scsi_get_cd_drive_mask (void)
+{
+       uae_u16 mask = 0;
+       for (int i = 0; i < MAX_TOTAL_SCSI_DEVICES; i++) {
+               struct devstruct *dev = &devst[i];
+               if (dev->iscd)
+                       mask |= 1 << i;
+       }
+       return mask;
+}
+
 static void dev_reset (void)
 {
        int i, j;
index 242d1c041fa6e0de4225c01f5249f85adbe333e8..6c61017a7991ebd676a2116a2bcc2f50f4662e66 100644 (file)
--- a/zfile.cpp
+++ b/zfile.cpp
@@ -2032,7 +2032,7 @@ struct zfile *zfile_fopen_parent (struct zfile *z, const TCHAR *name, uae_u64 of
        return l;
 }
 
-struct zfile *zfile_fopen_data (const TCHAR *name, uae_u64 size, uae_u8 *data)
+struct zfile *zfile_fopen_data (const TCHAR *name, uae_u64 size, const uae_u8 *data)
 {
        struct zfile *l;
 
@@ -2045,6 +2045,24 @@ struct zfile *zfile_fopen_data (const TCHAR *name, uae_u64 size, uae_u8 *data)
        return l;
 }
 
+uae_u8 *zfile_load_data (const TCHAR *name, const uae_u8 *data,int datalen, int *outlen)
+{
+       struct zfile *zf, *f;
+       int size;
+       uae_u8 *out;
+       
+       zf = zfile_fopen_data (name, datalen, data);
+       f = zfile_gunzip (zf);
+       size = f->datasize;
+       zfile_fseek (f, 0, SEEK_SET);
+       out = xmalloc (uae_u8, size);
+       zfile_fread (out, 1, size, f);
+       zfile_fclose (f);
+       *outlen = size;
+       return out;
+}
+
+
 int zfile_truncate (struct zfile *z, uae_s64 size)
 {
        if (z->data) {