summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/battle_7.s2
-rw-r--r--data/image_processing_effects.s3206
-rw-r--r--include/data2.h4
-rw-r--r--include/ewram.h15
-rw-r--r--include/image_processing_effects.h69
-rw-r--r--include/text.h2
-rw-r--r--ld_script.txt1
-rw-r--r--src/battle/anim/battle_intro.c4
-rw-r--r--src/battle_anim_effects_3.c2
-rw-r--r--src/battle_gfx_sfx_util.c26
-rw-r--r--src/battle_main.c6
-rw-r--r--src/contest.c4
-rw-r--r--src/contest_link_80C2020.c2
-rw-r--r--src/contest_painting.c182
-rw-r--r--src/data/pointillism_points.h3210
-rw-r--r--src/debug/watanabe_debug_menu.c6
-rw-r--r--src/decompress.c4
-rw-r--r--src/egg_hatch.c2
-rw-r--r--src/evolution_scene.c10
-rw-r--r--src/field_effect.c4
-rw-r--r--src/image_processing_effects.c1415
-rw-r--r--src/main_menu.c4
-rw-r--r--src/pokeblock_feed.c2
-rw-r--r--src/pokemon_3.c2
-rw-r--r--src/pokemon_summary_screen.c2
-rw-r--r--src/script_pokemon_util_80C4BF0.c4
-rw-r--r--src/starter_choose.c2
-rw-r--r--src/text.c2
-rw-r--r--src/trade.c2
-rw-r--r--src/trainer_card.c2
-rw-r--r--sym_common.txt20
31 files changed, 3960 insertions, 4258 deletions
diff --git a/data/battle_7.s b/data/battle_7.s
index 50fad468a..b6a708e3c 100644
--- a/data/battle_7.s
+++ b/data/battle_7.s
@@ -18,7 +18,7 @@ gSpriteTemplate_81FAF34:: @ 81FAF34
spr_template 55129, 55039, gOamData_81FAF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8032978
.align 2
-gUnknown_081FAF4C:: @ 81FAF4C
+gMonSpriteGfx_Sprite_ptr:: @ 81FAF4C
.4byte gSharedMem + 0x8000
.4byte gSharedMem + 0xA000
.4byte gSharedMem + 0xC000
diff --git a/data/image_processing_effects.s b/data/image_processing_effects.s
deleted file mode 100644
index e3e75753d..000000000
--- a/data/image_processing_effects.s
+++ /dev/null
@@ -1,3206 +0,0 @@
- .include "include/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
-gUnknown_083E7A50:: @ 83E7A50
- .byte 0x00, 0x1D, 0x1C
- .byte 0x0E, 0x1E, 0x1B
- .byte 0x00, 0x01, 0x32
- .byte 0x2E, 0x1E, 0x37
- .byte 0x0A, 0x22, 0x1F
- .byte 0x05, 0x26, 0x2E
- .byte 0x12, 0x17, 0x1E
- .byte 0x1A, 0x03, 0x11
- .byte 0x05, 0x11, 0x18
- .byte 0x05, 0x27, 0x2F
- .byte 0x1A, 0x3F, 0x12
- .byte 0x22, 0x3F, 0x16
- .byte 0x2B, 0x2F, 0x2E
- .byte 0x11, 0x02, 0x2D
- .byte 0x23, 0x0D, 0x28
- .byte 0x17, 0x0C, 0x19
- .byte 0x2F, 0x0E, 0x13
- .byte 0x30, 0x18, 0x20
- .byte 0x2D, 0x28, 0x22
- .byte 0x01, 0x03, 0x19
- .byte 0x0E, 0x2A, 0x2B
- .byte 0x22, 0x15, 0x25
- .byte 0x22, 0x0A, 0x26
- .byte 0x39, 0x06, 0x23
- .byte 0x16, 0x07, 0x2F
- .byte 0x22, 0x3A, 0x1B
- .byte 0x3B, 0x36, 0x35
- .byte 0x0A, 0x2B, 0x24
- .byte 0x36, 0x09, 0x12
- .byte 0x1C, 0x2F, 0x23
- .byte 0x2E, 0x38, 0x2C
- .byte 0x05, 0x2A, 0x20
- .byte 0x07, 0x14, 0x32
- .byte 0x31, 0x08, 0x17
- .byte 0x1A, 0x24, 0x2D
- .byte 0x22, 0x0A, 0x16
- .byte 0x1B, 0x26, 0x2B
- .byte 0x29, 0x16, 0x11
- .byte 0x35, 0x08, 0x14
- .byte 0x1E, 0x08, 0x14
- .byte 0x05, 0x31, 0x14
- .byte 0x38, 0x31, 0x17
- .byte 0x34, 0x33, 0x12
- .byte 0x11, 0x09, 0x1F
- .byte 0x28, 0x3D, 0x32
- .byte 0x35, 0x03, 0x1E
- .byte 0x3C, 0x2B, 0x2E
- .byte 0x10, 0x01, 0x17
- .byte 0x03, 0x3E, 0x22
- .byte 0x17, 0x18, 0x34
- .byte 0x08, 0x29, 0x19
- .byte 0x03, 0x24, 0x28
- .byte 0x3D, 0x33, 0x2F
- .byte 0x31, 0x24, 0x19
- .byte 0x1B, 0x18, 0x26
- .byte 0x07, 0x0D, 0x25
- .byte 0x2D, 0x3F, 0x12
- .byte 0x2F, 0x15, 0x25
- .byte 0x29, 0x0F, 0x12
- .byte 0x07, 0x2C, 0x12
- .byte 0x2C, 0x0B, 0x26
- .byte 0x12, 0x1A, 0x16
- .byte 0x00, 0x0B, 0x2F
- .byte 0x16, 0x35, 0x24
- .byte 0x1F, 0x1C, 0x22
- .byte 0x29, 0x33, 0x27
- .byte 0x3B, 0x30, 0x17
- .byte 0x11, 0x06, 0x35
- .byte 0x3E, 0x31, 0x2F
- .byte 0x11, 0x3A, 0x25
- .byte 0x2A, 0x02, 0x19
- .byte 0x33, 0x18, 0x35
- .byte 0x2A, 0x20, 0x21
- .byte 0x2E, 0x32, 0x1B
- .byte 0x3B, 0x1F, 0x23
- .byte 0x39, 0x29, 0x2A
- .byte 0x2E, 0x31, 0x29
- .byte 0x2A, 0x0E, 0x2D
- .byte 0x2D, 0x00, 0x1F
- .byte 0x38, 0x28, 0x1B
- .byte 0x14, 0x3B, 0x2B
- .byte 0x2E, 0x04, 0x26
- .byte 0x36, 0x30, 0x11
- .byte 0x3B, 0x21, 0x2D
- .byte 0x2B, 0x3F, 0x1B
- .byte 0x20, 0x13, 0x31
- .byte 0x33, 0x0C, 0x30
- .byte 0x22, 0x2B, 0x2B
- .byte 0x16, 0x02, 0x1E
- .byte 0x1C, 0x12, 0x1C
- .byte 0x0F, 0x3C, 0x36
- .byte 0x38, 0x10, 0x2D
- .byte 0x18, 0x2F, 0x2D
- .byte 0x35, 0x3B, 0x11
- .byte 0x37, 0x31, 0x13
- .byte 0x13, 0x3D, 0x2F
- .byte 0x1E, 0x2C, 0x33
- .byte 0x2E, 0x37, 0x12
- .byte 0x3C, 0x1F, 0x33
- .byte 0x32, 0x2A, 0x27
- .byte 0x0D, 0x3B, 0x1C
- .byte 0x35, 0x2A, 0x27
- .byte 0x09, 0x3D, 0x27
- .byte 0x12, 0x0B, 0x18
- .byte 0x0C, 0x15, 0x1D
- .byte 0x20, 0x01, 0x1C
- .byte 0x08, 0x3B, 0x1C
- .byte 0x12, 0x37, 0x33
- .byte 0x15, 0x03, 0x2C
- .byte 0x2A, 0x3B, 0x31
- .byte 0x0F, 0x04, 0x35
- .byte 0x08, 0x17, 0x33
- .byte 0x38, 0x3D, 0x2A
- .byte 0x2F, 0x35, 0x16
- .byte 0x10, 0x35, 0x16
- .byte 0x23, 0x13, 0x2C
- .byte 0x2F, 0x06, 0x20
- .byte 0x27, 0x3A, 0x24
- .byte 0x00, 0x1C, 0x2A
- .byte 0x03, 0x39, 0x1D
- .byte 0x28, 0x07, 0x1A
- .byte 0x20, 0x0A, 0x37
- .byte 0x07, 0x35, 0x2D
- .byte 0x15, 0x2F, 0x2C
- .byte 0x10, 0x2C, 0x23
- .byte 0x3F, 0x29, 0x14
- .byte 0x2A, 0x21, 0x36
- .byte 0x34, 0x1A, 0x2C
- .byte 0x1C, 0x3D, 0x33
- .byte 0x38, 0x2B, 0x22
- .byte 0x35, 0x28, 0x1F
- .byte 0x3D, 0x0F, 0x1C
- .byte 0x1E, 0x3E, 0x1B
- .byte 0x0C, 0x3E, 0x1F
- .byte 0x2B, 0x31, 0x2C
- .byte 0x32, 0x39, 0x11
- .byte 0x05, 0x09, 0x11
- .byte 0x04, 0x38, 0x2A
- .byte 0x32, 0x00, 0x16
- .byte 0x13, 0x0B, 0x31
- .byte 0x34, 0x2A, 0x13
- .byte 0x2C, 0x22, 0x21
- .byte 0x39, 0x2F, 0x15
- .byte 0x37, 0x28, 0x1E
- .byte 0x07, 0x3B, 0x2D
- .byte 0x11, 0x03, 0x28
- .byte 0x2D, 0x30, 0x1E
- .byte 0x31, 0x11, 0x11
- .byte 0x23, 0x01, 0x1E
- .byte 0x3D, 0x31, 0x34
- .byte 0x1C, 0x02, 0x34
- .byte 0x21, 0x0E, 0x25
- .byte 0x3D, 0x07, 0x17
- .byte 0x33, 0x15, 0x10
- .byte 0x29, 0x32, 0x32
- .byte 0x18, 0x1F, 0x30
- .byte 0x2D, 0x3B, 0x30
- .byte 0x27, 0x3E, 0x16
- .byte 0x31, 0x15, 0x12
- .byte 0x30, 0x25, 0x17
- .byte 0x33, 0x06, 0x34
- .byte 0x00, 0x29, 0x18
- .byte 0x3C, 0x03, 0x12
- .byte 0x2C, 0x0C, 0x11
- .byte 0x09, 0x30, 0x30
- .byte 0x10, 0x0E, 0x11
- .byte 0x27, 0x16, 0x1B
- .byte 0x0C, 0x3B, 0x2E
- .byte 0x2B, 0x33, 0x1E
- .byte 0x13, 0x2D, 0x2D
- .byte 0x11, 0x24, 0x29
- .byte 0x34, 0x3E, 0x2B
- .byte 0x24, 0x1E, 0x21
- .byte 0x27, 0x1A, 0x2D
- .byte 0x04, 0x39, 0x16
- .byte 0x3E, 0x33, 0x26
- .byte 0x1B, 0x2E, 0x25
- .byte 0x0C, 0x06, 0x19
- .byte 0x25, 0x19, 0x18
- .byte 0x1D, 0x33, 0x33
- .byte 0x1D, 0x28, 0x2D
- .byte 0x1C, 0x10, 0x2A
- .byte 0x1F, 0x35, 0x1E
- .byte 0x34, 0x02, 0x10
- .byte 0x2B, 0x3A, 0x14
- .byte 0x0D, 0x0B, 0x15
- .byte 0x0C, 0x2C, 0x10
- .byte 0x37, 0x3A, 0x19
- .byte 0x06, 0x13, 0x17
- .byte 0x24, 0x10, 0x25
- .byte 0x24, 0x04, 0x1E
- .byte 0x00, 0x35, 0x34
- .byte 0x3A, 0x00, 0x37
- .byte 0x3C, 0x07, 0x1A
- .byte 0x2B, 0x28, 0x36
- .byte 0x34, 0x39, 0x2F
- .byte 0x28, 0x09, 0x1F
- .byte 0x38, 0x31, 0x30
- .byte 0x16, 0x25, 0x31
- .byte 0x18, 0x28, 0x31
- .byte 0x18, 0x0C, 0x22
- .byte 0x06, 0x39, 0x2D
- .byte 0x3D, 0x20, 0x24
- .byte 0x2E, 0x27, 0x21
- .byte 0x3E, 0x18, 0x18
- .byte 0x15, 0x3C, 0x24
- .byte 0x06, 0x1B, 0x26
- .byte 0x15, 0x0E, 0x22
- .byte 0x0A, 0x0D, 0x1F
- .byte 0x18, 0x16, 0x34
- .byte 0x10, 0x28, 0x21
- .byte 0x20, 0x11, 0x11
- .byte 0x36, 0x32, 0x15
- .byte 0x3B, 0x2E, 0x24
- .byte 0x1F, 0x2D, 0x12
- .byte 0x36, 0x2E, 0x20
- .byte 0x0B, 0x17, 0x33
- .byte 0x26, 0x03, 0x1F
- .byte 0x08, 0x19, 0x31
- .byte 0x2A, 0x18, 0x25
- .byte 0x35, 0x2D, 0x2D
- .byte 0x30, 0x38, 0x18
- .byte 0x1C, 0x25, 0x14
- .byte 0x1C, 0x22, 0x28
- .byte 0x08, 0x23, 0x21
- .byte 0x26, 0x1E, 0x30
- .byte 0x19, 0x0F, 0x15
- .byte 0x10, 0x2F, 0x22
- .byte 0x12, 0x02, 0x25
- .byte 0x3C, 0x01, 0x1D
- .byte 0x0E, 0x14, 0x18
- .byte 0x0D, 0x18, 0x17
- .byte 0x22, 0x0B, 0x31
- .byte 0x13, 0x34, 0x21
- .byte 0x0F, 0x2D, 0x36
- .byte 0x39, 0x1F, 0x25
- .byte 0x18, 0x10, 0x1F
- .byte 0x2D, 0x20, 0x20
- .byte 0x19, 0x0B, 0x31
- .byte 0x33, 0x13, 0x14
- .byte 0x2E, 0x11, 0x21
- .byte 0x2D, 0x0A, 0x37
- .byte 0x07, 0x15, 0x1B
- .byte 0x32, 0x04, 0x32
- .byte 0x06, 0x18, 0x1B
- .byte 0x13, 0x24, 0x12
- .byte 0x36, 0x22, 0x16
- .byte 0x1D, 0x29, 0x1C
- .byte 0x35, 0x17, 0x21
- .byte 0x36, 0x17, 0x2B
- .byte 0x35, 0x32, 0x19
- .byte 0x2A, 0x0F, 0x2E
- .byte 0x10, 0x00, 0x34
- .byte 0x02, 0x0E, 0x28
- .byte 0x31, 0x32, 0x32
- .byte 0x3B, 0x05, 0x20
- .byte 0x36, 0x26, 0x12
- .byte 0x34, 0x06, 0x34
- .byte 0x1E, 0x31, 0x32
- .byte 0x35, 0x05, 0x34
- .byte 0x1E, 0x13, 0x15
- .byte 0x15, 0x14, 0x2C
- .byte 0x29, 0x1C, 0x18
- .byte 0x24, 0x24, 0x12
- .byte 0x22, 0x29, 0x18
- .byte 0x34, 0x36, 0x30
- .byte 0x1E, 0x01, 0x23
- .byte 0x0C, 0x3C, 0x24
- .byte 0x0A, 0x3D, 0x16
- .byte 0x27, 0x1E, 0x23
- .byte 0x15, 0x02, 0x12
- .byte 0x11, 0x19, 0x2A
- .byte 0x1D, 0x31, 0x15
- .byte 0x03, 0x3B, 0x2A
- .byte 0x21, 0x19, 0x2C
- .byte 0x0A, 0x23, 0x11
- .byte 0x25, 0x11, 0x1A
- .byte 0x1A, 0x0A, 0x34
- .byte 0x3B, 0x0B, 0x33
- .byte 0x21, 0x0B, 0x37
- .byte 0x01, 0x31, 0x28
- .byte 0x35, 0x1D, 0x27
- .byte 0x2C, 0x30, 0x31
- .byte 0x2E, 0x39, 0x2D
- .byte 0x30, 0x05, 0x2C
- .byte 0x12, 0x2A, 0x2B
- .byte 0x39, 0x22, 0x20
- .byte 0x15, 0x34, 0x1C
- .byte 0x1C, 0x01, 0x15
- .byte 0x20, 0x16, 0x22
- .byte 0x13, 0x04, 0x18
- .byte 0x1E, 0x13, 0x10
- .byte 0x25, 0x33, 0x15
- .byte 0x39, 0x03, 0x31
- .byte 0x3F, 0x36, 0x18
- .byte 0x14, 0x23, 0x10
- .byte 0x2F, 0x1E, 0x1F
- .byte 0x1F, 0x17, 0x2C
- .byte 0x02, 0x16, 0x31
- .byte 0x20, 0x18, 0x30
- .byte 0x2E, 0x18, 0x37
- .byte 0x3B, 0x0E, 0x30
- .byte 0x10, 0x39, 0x24
- .byte 0x26, 0x39, 0x1E
- .byte 0x30, 0x26, 0x2E
- .byte 0x12, 0x01, 0x14
- .byte 0x37, 0x2A, 0x2E
- .byte 0x21, 0x06, 0x1D
- .byte 0x2A, 0x16, 0x32
- .byte 0x09, 0x38, 0x1C
- .byte 0x07, 0x22, 0x17
- .byte 0x3B, 0x2D, 0x15
- .byte 0x07, 0x1E, 0x2E
- .byte 0x1B, 0x2E, 0x1D
- .byte 0x04, 0x09, 0x30
- .byte 0x30, 0x2D, 0x37
- .byte 0x2D, 0x34, 0x24
- .byte 0x18, 0x24, 0x25
- .byte 0x0E, 0x2D, 0x26
- .byte 0x23, 0x0A, 0x16
- .byte 0x12, 0x2D, 0x11
- .byte 0x21, 0x28, 0x2E
- .byte 0x0F, 0x01, 0x21
- .byte 0x01, 0x31, 0x12
- .byte 0x3F, 0x1B, 0x1E
- .byte 0x21, 0x25, 0x2B
- .byte 0x26, 0x18, 0x13
- .byte 0x15, 0x2D, 0x34
- .byte 0x23, 0x21, 0x36
- .byte 0x0E, 0x2E, 0x1C
- .byte 0x14, 0x22, 0x1C
- .byte 0x2C, 0x0B, 0x28
- .byte 0x1A, 0x18, 0x21
- .byte 0x21, 0x07, 0x1A
- .byte 0x24, 0x26, 0x29
- .byte 0x2B, 0x0A, 0x34
- .byte 0x3E, 0x27, 0x33
- .byte 0x12, 0x34, 0x1B
- .byte 0x1F, 0x01, 0x2A
- .byte 0x2E, 0x06, 0x23
- .byte 0x2F, 0x1F, 0x14
- .byte 0x18, 0x06, 0x26
- .byte 0x31, 0x1F, 0x2B
- .byte 0x22, 0x26, 0x2E
- .byte 0x1E, 0x15, 0x16
- .byte 0x20, 0x22, 0x28
- .byte 0x15, 0x37, 0x12
- .byte 0x25, 0x04, 0x2C
- .byte 0x1F, 0x04, 0x2E
- .byte 0x0C, 0x13, 0x18
- .byte 0x07, 0x0B, 0x36
- .byte 0x1D, 0x1C, 0x2A
- .byte 0x30, 0x22, 0x1C
- .byte 0x2E, 0x12, 0x2F
- .byte 0x2B, 0x21, 0x1E
- .byte 0x16, 0x38, 0x30
- .byte 0x04, 0x02, 0x16
- .byte 0x05, 0x14, 0x20
- .byte 0x38, 0x3C, 0x33
- .byte 0x21, 0x1B, 0x2F
- .byte 0x14, 0x2A, 0x27
- .byte 0x38, 0x14, 0x1B
- .byte 0x2B, 0x1F, 0x2B
- .byte 0x29, 0x2B, 0x25
- .byte 0x27, 0x36, 0x21
- .byte 0x11, 0x22, 0x1B
- .byte 0x29, 0x03, 0x1B
- .byte 0x18, 0x24, 0x28
- .byte 0x21, 0x2D, 0x36
- .byte 0x3C, 0x2C, 0x24
- .byte 0x33, 0x17, 0x1F
- .byte 0x2A, 0x3A, 0x21
- .byte 0x0A, 0x23, 0x37
- .byte 0x00, 0x0B, 0x21
- .byte 0x11, 0x38, 0x19
- .byte 0x0F, 0x0E, 0x1C
- .byte 0x1F, 0x0F, 0x37
- .byte 0x3C, 0x10, 0x37
- .byte 0x38, 0x31, 0x35
- .byte 0x07, 0x15, 0x28
- .byte 0x1E, 0x2E, 0x19
- .byte 0x26, 0x10, 0x33
- .byte 0x3D, 0x35, 0x2F
- .byte 0x3A, 0x04, 0x34
- .byte 0x0D, 0x18, 0x1A
- .byte 0x01, 0x2D, 0x15
- .byte 0x3D, 0x1A, 0x17
- .byte 0x17, 0x3F, 0x32
- .byte 0x0B, 0x21, 0x11
- .byte 0x1E, 0x26, 0x2B
- .byte 0x0D, 0x19, 0x24
- .byte 0x2E, 0x04, 0x1B
- .byte 0x1B, 0x33, 0x20
- .byte 0x15, 0x21, 0x1D
- .byte 0x1F, 0x04, 0x21
- .byte 0x0F, 0x12, 0x1F
- .byte 0x2D, 0x2A, 0x32
- .byte 0x03, 0x37, 0x1F
- .byte 0x35, 0x07, 0x27
- .byte 0x24, 0x1F, 0x31
- .byte 0x2F, 0x30, 0x15
- .byte 0x06, 0x00, 0x24
- .byte 0x0B, 0x22, 0x1A
- .byte 0x0C, 0x3B, 0x29
- .byte 0x14, 0x1A, 0x17
- .byte 0x37, 0x20, 0x25
- .byte 0x3F, 0x26, 0x37
- .byte 0x3A, 0x3E, 0x10
- .byte 0x22, 0x04, 0x11
- .byte 0x28, 0x12, 0x1C
- .byte 0x03, 0x2E, 0x2E
- .byte 0x0E, 0x38, 0x28
- .byte 0x01, 0x29, 0x22
- .byte 0x1E, 0x33, 0x19
- .byte 0x06, 0x21, 0x27
- .byte 0x33, 0x19, 0x1A
- .byte 0x02, 0x05, 0x17
- .byte 0x11, 0x11, 0x2C
- .byte 0x1F, 0x26, 0x1E
- .byte 0x39, 0x1F, 0x28
- .byte 0x2E, 0x2F, 0x12
- .byte 0x22, 0x34, 0x13
- .byte 0x3B, 0x26, 0x2F
- .byte 0x34, 0x00, 0x14
- .byte 0x10, 0x31, 0x11
- .byte 0x1D, 0x2D, 0x2A
- .byte 0x08, 0x08, 0x37
- .byte 0x15, 0x18, 0x34
- .byte 0x04, 0x2B, 0x24
- .byte 0x2F, 0x1E, 0x27
- .byte 0x22, 0x2A, 0x24
- .byte 0x07, 0x14, 0x25
- .byte 0x01, 0x27, 0x19
- .byte 0x29, 0x0A, 0x29
- .byte 0x3D, 0x1C, 0x2F
- .byte 0x0D, 0x1F, 0x1C
- .byte 0x24, 0x3D, 0x32
- .byte 0x36, 0x1D, 0x24
- .byte 0x14, 0x21, 0x16
- .byte 0x1A, 0x0D, 0x29
- .byte 0x3F, 0x2B, 0x2A
- .byte 0x1A, 0x3E, 0x35
- .byte 0x11, 0x28, 0x18
- .byte 0x32, 0x05, 0x15
- .byte 0x21, 0x2E, 0x34
- .byte 0x2D, 0x14, 0x2A
- .byte 0x3C, 0x08, 0x37
- .byte 0x3F, 0x34, 0x1E
- .byte 0x27, 0x24, 0x1C
- .byte 0x16, 0x16, 0x33
- .byte 0x29, 0x3B, 0x19
- .byte 0x36, 0x2F, 0x1C
- .byte 0x03, 0x25, 0x2C
- .byte 0x0B, 0x16, 0x36
- .byte 0x1C, 0x1D, 0x1B
- .byte 0x2C, 0x27, 0x1B
- .byte 0x0B, 0x1F, 0x2B
- .byte 0x08, 0x10, 0x27
- .byte 0x3F, 0x25, 0x2F
- .byte 0x33, 0x13, 0x1F
- .byte 0x04, 0x31, 0x37
- .byte 0x0E, 0x2F, 0x12
- .byte 0x08, 0x23, 0x20
- .byte 0x3A, 0x1A, 0x1E
- .byte 0x2F, 0x0B, 0x1F
- .byte 0x1E, 0x20, 0x19
- .byte 0x23, 0x3B, 0x14
- .byte 0x25, 0x00, 0x27
- .byte 0x14, 0x04, 0x25
- .byte 0x36, 0x1A, 0x2B
- .byte 0x27, 0x21, 0x15
- .byte 0x28, 0x13, 0x2C
- .byte 0x0E, 0x3C, 0x35
- .byte 0x0C, 0x2D, 0x2B
- .byte 0x37, 0x16, 0x15
- .byte 0x29, 0x15, 0x1D
- .byte 0x17, 0x34, 0x36
- .byte 0x09, 0x0A, 0x31
- .byte 0x37, 0x22, 0x28
- .byte 0x17, 0x2B, 0x35
- .byte 0x14, 0x2B, 0x12
- .byte 0x08, 0x13, 0x1F
- .byte 0x31, 0x13, 0x28
- .byte 0x06, 0x07, 0x35
- .byte 0x23, 0x3A, 0x29
- .byte 0x0F, 0x24, 0x2E
- .byte 0x07, 0x35, 0x26
- .byte 0x0E, 0x12, 0x15
- .byte 0x23, 0x33, 0x2C
- .byte 0x0E, 0x21, 0x26
- .byte 0x1C, 0x12, 0x25
- .byte 0x23, 0x1D, 0x2F
- .byte 0x04, 0x35, 0x33
- .byte 0x16, 0x01, 0x24
- .byte 0x3D, 0x2C, 0x2E
- .byte 0x35, 0x0A, 0x25
- .byte 0x11, 0x13, 0x25
- .byte 0x1B, 0x1B, 0x15
- .byte 0x15, 0x39, 0x10
- .byte 0x0B, 0x35, 0x24
- .byte 0x3A, 0x27, 0x30
- .byte 0x2E, 0x2F, 0x15
- .byte 0x10, 0x1F, 0x35
- .byte 0x1B, 0x28, 0x35
- .byte 0x26, 0x30, 0x37
- .byte 0x34, 0x37, 0x2B
- .byte 0x0F, 0x30, 0x29
- .byte 0x2E, 0x3F, 0x2B
- .byte 0x38, 0x34, 0x2B
- .byte 0x2B, 0x2F, 0x25
- .byte 0x0D, 0x28, 0x2A
- .byte 0x33, 0x18, 0x10
- .byte 0x21, 0x12, 0x11
- .byte 0x1F, 0x22, 0x34
- .byte 0x11, 0x25, 0x23
- .byte 0x21, 0x3F, 0x11
- .byte 0x26, 0x27, 0x25
- .byte 0x28, 0x36, 0x12
- .byte 0x15, 0x26, 0x32
- .byte 0x11, 0x18, 0x24
- .byte 0x32, 0x25, 0x37
- .byte 0x27, 0x3A, 0x33
- .byte 0x35, 0x07, 0x1C
- .byte 0x1A, 0x0E, 0x2A
- .byte 0x1E, 0x2F, 0x1F
- .byte 0x00, 0x2E, 0x21
- .byte 0x1B, 0x3C, 0x14
- .byte 0x2F, 0x3A, 0x2F
- .byte 0x3E, 0x38, 0x15
- .byte 0x1A, 0x13, 0x2F
- .byte 0x29, 0x0D, 0x2F
- .byte 0x37, 0x17, 0x18
- .byte 0x30, 0x1C, 0x35
- .byte 0x15, 0x34, 0x14
- .byte 0x28, 0x11, 0x2C
- .byte 0x2C, 0x25, 0x2A
- .byte 0x20, 0x3F, 0x28
- .byte 0x0C, 0x34, 0x1B
- .byte 0x30, 0x2E, 0x25
- .byte 0x37, 0x1C, 0x24
- .byte 0x1F, 0x25, 0x26
- .byte 0x0C, 0x19, 0x34
- .byte 0x18, 0x10, 0x35
- .byte 0x0A, 0x13, 0x11
- .byte 0x25, 0x13, 0x20
- .byte 0x13, 0x19, 0x11
- .byte 0x20, 0x28, 0x1D
- .byte 0x3E, 0x30, 0x1B
- .byte 0x23, 0x24, 0x21
- .byte 0x0D, 0x23, 0x23
- .byte 0x1D, 0x28, 0x2E
- .byte 0x2D, 0x12, 0x1F
- .byte 0x0E, 0x2E, 0x2B
- .byte 0x0B, 0x31, 0x32
- .byte 0x24, 0x3C, 0x2C
- .byte 0x13, 0x3C, 0x12
- .byte 0x28, 0x16, 0x2A
- .byte 0x05, 0x0C, 0x32
- .byte 0x39, 0x0B, 0x32
- .byte 0x21, 0x04, 0x14
- .byte 0x10, 0x31, 0x32
- .byte 0x12, 0x1F, 0x23
- .byte 0x39, 0x2E, 0x2E
- .byte 0x22, 0x3D, 0x27
- .byte 0x0C, 0x1E, 0x18
- .byte 0x25, 0x00, 0x17
- .byte 0x06, 0x31, 0x14
- .byte 0x13, 0x21, 0x1A
- .byte 0x14, 0x20, 0x35
- .byte 0x0A, 0x3B, 0x25
- .byte 0x33, 0x08, 0x28
- .byte 0x3D, 0x02, 0x33
- .byte 0x23, 0x00, 0x13
- .byte 0x22, 0x21, 0x28
- .byte 0x30, 0x14, 0x2E
- .byte 0x14, 0x32, 0x36
- .byte 0x39, 0x23, 0x1E
- .byte 0x1C, 0x11, 0x30
- .byte 0x37, 0x16, 0x30
- .byte 0x15, 0x31, 0x1F
- .byte 0x34, 0x28, 0x2C
- .byte 0x35, 0x05, 0x29
- .byte 0x37, 0x33, 0x2A
- .byte 0x1C, 0x17, 0x2E
- .byte 0x10, 0x06, 0x16
- .byte 0x32, 0x1F, 0x2F
- .byte 0x00, 0x29, 0x1E
- .byte 0x04, 0x01, 0x16
- .byte 0x3B, 0x23, 0x1E
- .byte 0x1B, 0x34, 0x2A
- .byte 0x30, 0x11, 0x2B
- .byte 0x03, 0x00, 0x1F
- .byte 0x1D, 0x37, 0x1A
- .byte 0x3A, 0x18, 0x25
- .byte 0x1C, 0x16, 0x2C
- .byte 0x04, 0x3F, 0x33
- .byte 0x26, 0x23, 0x2D
- .byte 0x15, 0x2C, 0x27
- .byte 0x02, 0x35, 0x27
- .byte 0x07, 0x35, 0x33
- .byte 0x1A, 0x0C, 0x10
- .byte 0x28, 0x26, 0x2C
- .byte 0x2F, 0x36, 0x16
- .byte 0x37, 0x0B, 0x27
- .byte 0x1B, 0x3D, 0x18
- .byte 0x27, 0x1F, 0x20
- .byte 0x2B, 0x2A, 0x33
- .byte 0x0B, 0x0F, 0x20
- .byte 0x35, 0x3C, 0x2F
- .byte 0x33, 0x21, 0x15
- .byte 0x2D, 0x26, 0x34
- .byte 0x1F, 0x1A, 0x21
- .byte 0x2F, 0x2C, 0x2A
- .byte 0x1A, 0x32, 0x1A
- .byte 0x3B, 0x3F, 0x21
- .byte 0x13, 0x3F, 0x13
- .byte 0x0F, 0x24, 0x22
- .byte 0x14, 0x1B, 0x10
- .byte 0x21, 0x06, 0x28
- .byte 0x25, 0x34, 0x10
- .byte 0x2E, 0x0E, 0x14
- .byte 0x3C, 0x3E, 0x25
- .byte 0x16, 0x06, 0x30
- .byte 0x0B, 0x04, 0x1F
- .byte 0x3E, 0x02, 0x24
- .byte 0x0C, 0x17, 0x25
- .byte 0x2B, 0x3C, 0x2D
- .byte 0x15, 0x36, 0x33
- .byte 0x18, 0x23, 0x2A
- .byte 0x1D, 0x10, 0x2A
- .byte 0x35, 0x17, 0x28
- .byte 0x00, 0x37, 0x24
- .byte 0x0A, 0x3B, 0x15
- .byte 0x1D, 0x0B, 0x1F
- .byte 0x3C, 0x31, 0x25
- .byte 0x1D, 0x0F, 0x1D
- .byte 0x20, 0x13, 0x34
- .byte 0x11, 0x2B, 0x2E
- .byte 0x23, 0x0C, 0x2E
- .byte 0x24, 0x02, 0x14
- .byte 0x31, 0x16, 0x19
- .byte 0x0E, 0x23, 0x35
- .byte 0x1A, 0x10, 0x16
- .byte 0x14, 0x04, 0x19
- .byte 0x2D, 0x27, 0x37
- .byte 0x33, 0x02, 0x31
- .byte 0x02, 0x04, 0x16
- .byte 0x0D, 0x22, 0x25
- .byte 0x25, 0x00, 0x16
- .byte 0x2A, 0x3F, 0x26
- .byte 0x20, 0x0C, 0x12
- .byte 0x2F, 0x2E, 0x35
- .byte 0x1B, 0x0D, 0x22
- .byte 0x1E, 0x01, 0x34
- .byte 0x05, 0x22, 0x21
- .byte 0x34, 0x2A, 0x32
- .byte 0x0B, 0x09, 0x1D
- .byte 0x3F, 0x32, 0x2F
- .byte 0x3D, 0x18, 0x2D
- .byte 0x0B, 0x38, 0x36
- .byte 0x39, 0x17, 0x28
- .byte 0x34, 0x04, 0x24
- .byte 0x36, 0x0E, 0x2A
- .byte 0x38, 0x01, 0x14
- .byte 0x3C, 0x24, 0x22
- .byte 0x21, 0x03, 0x18
- .byte 0x32, 0x2F, 0x12
- .byte 0x29, 0x24, 0x31
- .byte 0x0A, 0x3B, 0x12
- .byte 0x1A, 0x1C, 0x20
- .byte 0x30, 0x31, 0x1B
- .byte 0x1A, 0x21, 0x10
- .byte 0x05, 0x29, 0x10
- .byte 0x26, 0x2D, 0x13
- .byte 0x16, 0x0C, 0x1D
- .byte 0x2B, 0x06, 0x1B
- .byte 0x06, 0x12, 0x14
- .byte 0x38, 0x0F, 0x35
- .byte 0x23, 0x3A, 0x2C
- .byte 0x00, 0x19, 0x33
- .byte 0x29, 0x14, 0x2D
- .byte 0x2A, 0x21, 0x29
- .byte 0x14, 0x31, 0x14
- .byte 0x1A, 0x06, 0x1E
- .byte 0x18, 0x1B, 0x28
- .byte 0x3B, 0x16, 0x29
- .byte 0x15, 0x1E, 0x12
- .byte 0x34, 0x0A, 0x14
- .byte 0x1B, 0x05, 0x27
- .byte 0x0B, 0x01, 0x26
- .byte 0x2A, 0x22, 0x35
- .byte 0x21, 0x20, 0x18
- .byte 0x20, 0x37, 0x17
- .byte 0x14, 0x1F, 0x11
- .byte 0x1D, 0x11, 0x25
- .byte 0x24, 0x2B, 0x2F
- .byte 0x07, 0x3F, 0x1F
- .byte 0x2C, 0x25, 0x25
- .byte 0x2A, 0x29, 0x18
- .byte 0x11, 0x24, 0x28
- .byte 0x31, 0x2C, 0x2A
- .byte 0x39, 0x0B, 0x26
- .byte 0x28, 0x10, 0x26
- .byte 0x22, 0x06, 0x16
- .byte 0x09, 0x2C, 0x13
- .byte 0x34, 0x19, 0x15
- .byte 0x3A, 0x12, 0x21
- .byte 0x1D, 0x38, 0x23
- .byte 0x12, 0x25, 0x24
- .byte 0x21, 0x30, 0x12
- .byte 0x37, 0x1A, 0x12
- .byte 0x24, 0x3B, 0x25
- .byte 0x32, 0x15, 0x23
- .byte 0x0D, 0x1A, 0x10
- .byte 0x16, 0x2E, 0x26
- .byte 0x1D, 0x14, 0x16
- .byte 0x3E, 0x2E, 0x1F
- .byte 0x0A, 0x16, 0x10
- .byte 0x1D, 0x30, 0x2B
- .byte 0x04, 0x3A, 0x19
- .byte 0x08, 0x2D, 0x2E
- .byte 0x28, 0x1E, 0x33
- .byte 0x0A, 0x12, 0x2E
- .byte 0x0D, 0x03, 0x2F
- .byte 0x26, 0x3A, 0x1E
- .byte 0x35, 0x3B, 0x2A
- .byte 0x03, 0x1A, 0x18
- .byte 0x3F, 0x0B, 0x27
- .byte 0x04, 0x05, 0x34
- .byte 0x36, 0x0B, 0x27
- .byte 0x3B, 0x17, 0x11
- .byte 0x0D, 0x27, 0x26
- .byte 0x2C, 0x1F, 0x20
- .byte 0x26, 0x10, 0x20
- .byte 0x25, 0x23, 0x2D
- .byte 0x37, 0x09, 0x13
- .byte 0x14, 0x17, 0x2D
- .byte 0x2E, 0x3D, 0x23
- .byte 0x1D, 0x1A, 0x1F
- .byte 0x21, 0x33, 0x2E
- .byte 0x28, 0x17, 0x13
- .byte 0x26, 0x3C, 0x36
- .byte 0x14, 0x1A, 0x33
- .byte 0x32, 0x20, 0x2B
- .byte 0x19, 0x3E, 0x20
- .byte 0x0C, 0x02, 0x2D
- .byte 0x3C, 0x3C, 0x2A
- .byte 0x30, 0x30, 0x28
- .byte 0x25, 0x3F, 0x1E
- .byte 0x03, 0x17, 0x1E
- .byte 0x35, 0x11, 0x1C
- .byte 0x1B, 0x14, 0x2A
- .byte 0x28, 0x3A, 0x23
- .byte 0x0E, 0x1F, 0x12
- .byte 0x36, 0x21, 0x20
- .byte 0x07, 0x3B, 0x10
- .byte 0x23, 0x19, 0x34
- .byte 0x0D, 0x2E, 0x18
- .byte 0x3F, 0x20, 0x25
- .byte 0x3E, 0x3B, 0x15
- .byte 0x0B, 0x2E, 0x12
- .byte 0x37, 0x0B, 0x23
- .byte 0x3D, 0x32, 0x1F
- .byte 0x16, 0x03, 0x27
- .byte 0x14, 0x0C, 0x21
- .byte 0x18, 0x03, 0x30
- .byte 0x3E, 0x21, 0x13
- .byte 0x0F, 0x00, 0x32
- .byte 0x3F, 0x23, 0x16
- .byte 0x0E, 0x31, 0x1D
- .byte 0x18, 0x1C, 0x1D
- .byte 0x30, 0x0E, 0x1E
- .byte 0x21, 0x20, 0x23
- .byte 0x3F, 0x0C, 0x1E
- .byte 0x14, 0x33, 0x22
- .byte 0x22, 0x21, 0x15
- .byte 0x36, 0x05, 0x1E
- .byte 0x1D, 0x31, 0x14
- .byte 0x20, 0x11, 0x37
- .byte 0x0D, 0x33, 0x19
- .byte 0x25, 0x05, 0x36
- .byte 0x1E, 0x31, 0x20
- .byte 0x35, 0x3A, 0x2F
- .byte 0x32, 0x2F, 0x30
- .byte 0x14, 0x23, 0x2D
- .byte 0x35, 0x1E, 0x29
- .byte 0x05, 0x05, 0x1B
- .byte 0x09, 0x1F, 0x26
- .byte 0x2F, 0x0B, 0x15
- .byte 0x15, 0x11, 0x13
- .byte 0x29, 0x1B, 0x18
- .byte 0x1C, 0x13, 0x35
- .byte 0x34, 0x31, 0x23
- .byte 0x27, 0x3F, 0x2F
- .byte 0x09, 0x30, 0x19
- .byte 0x23, 0x12, 0x34
- .byte 0x02, 0x2A, 0x21
- .byte 0x09, 0x3C, 0x1D
- .byte 0x0C, 0x02, 0x10
- .byte 0x22, 0x05, 0x17
- .byte 0x22, 0x08, 0x1B
- .byte 0x0A, 0x0F, 0x15
- .byte 0x02, 0x11, 0x13
- .byte 0x01, 0x21, 0x22
- .byte 0x16, 0x39, 0x33
- .byte 0x24, 0x38, 0x34
- .byte 0x0F, 0x1E, 0x2B
- .byte 0x2B, 0x15, 0x15
- .byte 0x20, 0x22, 0x2E
- .byte 0x3A, 0x3F, 0x31
- .byte 0x1A, 0x27, 0x2B
- .byte 0x29, 0x34, 0x14
- .byte 0x16, 0x39, 0x2F
- .byte 0x13, 0x3E, 0x16
- .byte 0x36, 0x21, 0x30
- .byte 0x00, 0x24, 0x2B
- .byte 0x24, 0x21, 0x30
- .byte 0x15, 0x31, 0x13
- .byte 0x10, 0x37, 0x24
- .byte 0x08, 0x07, 0x23
- .byte 0x21, 0x09, 0x25
- .byte 0x05, 0x3C, 0x32
- .byte 0x19, 0x03, 0x25
- .byte 0x0F, 0x29, 0x2B
- .byte 0x16, 0x07, 0x13
- .byte 0x3E, 0x3D, 0x25
- .byte 0x36, 0x0B, 0x28
- .byte 0x2E, 0x2B, 0x16
- .byte 0x0C, 0x31, 0x11
- .byte 0x30, 0x13, 0x2D
- .byte 0x26, 0x3E, 0x37
- .byte 0x29, 0x2F, 0x2E
- .byte 0x15, 0x3D, 0x17
- .byte 0x1C, 0x2E, 0x21
- .byte 0x33, 0x2F, 0x10
- .byte 0x0D, 0x05, 0x1D
- .byte 0x1C, 0x1A, 0x12
- .byte 0x0E, 0x18, 0x37
- .byte 0x1B, 0x11, 0x14
- .byte 0x06, 0x14, 0x21
- .byte 0x31, 0x0E, 0x27
- .byte 0x1A, 0x03, 0x10
- .byte 0x00, 0x34, 0x31
- .byte 0x3F, 0x0B, 0x1D
- .byte 0x0F, 0x12, 0x1F
- .byte 0x1A, 0x15, 0x10
- .byte 0x0F, 0x00, 0x24
- .byte 0x3E, 0x0A, 0x2A
- .byte 0x30, 0x2B, 0x24
- .byte 0x26, 0x31, 0x10
- .byte 0x2D, 0x2F, 0x2F
- .byte 0x3F, 0x0C, 0x13
- .byte 0x12, 0x0B, 0x16
- .byte 0x15, 0x07, 0x1F
- .byte 0x28, 0x10, 0x32
- .byte 0x0F, 0x17, 0x15
- .byte 0x0B, 0x27, 0x33
- .byte 0x34, 0x1D, 0x10
- .byte 0x1C, 0x3A, 0x12
- .byte 0x2C, 0x27, 0x37
- .byte 0x0A, 0x1A, 0x32
- .byte 0x05, 0x1F, 0x21
- .byte 0x24, 0x0D, 0x1F
- .byte 0x1C, 0x17, 0x24
- .byte 0x2F, 0x3B, 0x32
- .byte 0x3B, 0x25, 0x10
- .byte 0x03, 0x2F, 0x21
- .byte 0x0C, 0x10, 0x23
- .byte 0x0E, 0x3A, 0x2C
- .byte 0x33, 0x03, 0x2C
- .byte 0x12, 0x06, 0x1C
- .byte 0x2A, 0x37, 0x30
- .byte 0x3F, 0x01, 0x1E
- .byte 0x35, 0x16, 0x37
- .byte 0x2C, 0x32, 0x35
- .byte 0x05, 0x11, 0x22
- .byte 0x29, 0x09, 0x20
- .byte 0x2B, 0x0D, 0x1F
- .byte 0x18, 0x0D, 0x20
- .byte 0x23, 0x39, 0x16
- .byte 0x0F, 0x3A, 0x18
- .byte 0x21, 0x35, 0x2B
- .byte 0x36, 0x26, 0x2B
- .byte 0x23, 0x05, 0x2F
- .byte 0x1B, 0x08, 0x17
- .byte 0x3E, 0x09, 0x16
- .byte 0x2D, 0x3A, 0x37
- .byte 0x15, 0x35, 0x35
- .byte 0x29, 0x0A, 0x12
- .byte 0x02, 0x39, 0x1F
- .byte 0x14, 0x34, 0x33
- .byte 0x17, 0x1D, 0x18
- .byte 0x16, 0x1D, 0x1A
- .byte 0x01, 0x39, 0x22
- .byte 0x1E, 0x27, 0x36
- .byte 0x32, 0x14, 0x26
- .byte 0x0A, 0x39, 0x36
- .byte 0x1F, 0x0D, 0x1E
- .byte 0x0B, 0x0A, 0x19
- .byte 0x35, 0x1D, 0x34
- .byte 0x03, 0x12, 0x16
- .byte 0x0C, 0x13, 0x2E
- .byte 0x0C, 0x34, 0x1E
- .byte 0x10, 0x14, 0x1E
- .byte 0x23, 0x32, 0x27
- .byte 0x02, 0x10, 0x29
- .byte 0x35, 0x18, 0x33
- .byte 0x33, 0x1D, 0x1A
- .byte 0x3C, 0x15, 0x23
- .byte 0x3E, 0x3F, 0x22
- .byte 0x2A, 0x02, 0x2C
- .byte 0x28, 0x0A, 0x2F
- .byte 0x1A, 0x06, 0x35
- .byte 0x3C, 0x17, 0x2B
- .byte 0x03, 0x12, 0x17
- .byte 0x2F, 0x0A, 0x26
- .byte 0x12, 0x38, 0x11
- .byte 0x36, 0x1B, 0x23
- .byte 0x01, 0x39, 0x35
- .byte 0x19, 0x19, 0x17
- .byte 0x09, 0x28, 0x22
- .byte 0x1E, 0x27, 0x2C
- .byte 0x35, 0x33, 0x2C
- .byte 0x27, 0x25, 0x31
- .byte 0x06, 0x31, 0x2D
- .byte 0x1A, 0x39, 0x28
- .byte 0x2D, 0x04, 0x1E
- .byte 0x24, 0x3E, 0x1C
- .byte 0x3C, 0x30, 0x1B
- .byte 0x3F, 0x3E, 0x37
- .byte 0x22, 0x36, 0x11
- .byte 0x00, 0x01, 0x1C
- .byte 0x12, 0x1A, 0x10
- .byte 0x12, 0x1E, 0x2C
- .byte 0x1F, 0x12, 0x2A
- .byte 0x2F, 0x06, 0x19
- .byte 0x35, 0x1A, 0x18
- .byte 0x3B, 0x09, 0x36
- .byte 0x34, 0x1D, 0x13
- .byte 0x02, 0x07, 0x10
- .byte 0x20, 0x2F, 0x1D
- .byte 0x0B, 0x03, 0x33
- .byte 0x1C, 0x16, 0x31
- .byte 0x05, 0x13, 0x1B
- .byte 0x29, 0x06, 0x13
- .byte 0x30, 0x2D, 0x36
- .byte 0x2A, 0x2D, 0x2C
- .byte 0x19, 0x34, 0x1C
- .byte 0x0F, 0x15, 0x12
- .byte 0x36, 0x15, 0x2C
- .byte 0x3A, 0x06, 0x1C
- .byte 0x12, 0x1D, 0x26
- .byte 0x03, 0x38, 0x1D
- .byte 0x01, 0x01, 0x2D
- .byte 0x17, 0x2E, 0x10
- .byte 0x14, 0x17, 0x1C
- .byte 0x34, 0x0F, 0x28
- .byte 0x09, 0x37, 0x1B
- .byte 0x28, 0x1D, 0x26
- .byte 0x29, 0x2D, 0x36
- .byte 0x1E, 0x17, 0x28
- .byte 0x15, 0x0F, 0x1C
- .byte 0x20, 0x2D, 0x10
- .byte 0x27, 0x16, 0x2E
- .byte 0x14, 0x09, 0x12
- .byte 0x3B, 0x3D, 0x21
- .byte 0x25, 0x1A, 0x2C
- .byte 0x00, 0x22, 0x36
- .byte 0x0D, 0x30, 0x10
- .byte 0x17, 0x19, 0x1B
- .byte 0x00, 0x3B, 0x21
- .byte 0x2A, 0x28, 0x34
- .byte 0x2D, 0x0F, 0x16
- .byte 0x0A, 0x30, 0x28
- .byte 0x06, 0x00, 0x25
- .byte 0x31, 0x2E, 0x2A
- .byte 0x14, 0x33, 0x28
- .byte 0x36, 0x10, 0x2E
- .byte 0x05, 0x2E, 0x19
- .byte 0x19, 0x1A, 0x15
- .byte 0x2C, 0x14, 0x17
- .byte 0x37, 0x0F, 0x13
- .byte 0x32, 0x17, 0x1B
- .byte 0x39, 0x18, 0x32
- .byte 0x2E, 0x32, 0x1E
- .byte 0x24, 0x1D, 0x31
- .byte 0x12, 0x1D, 0x2B
- .byte 0x14, 0x0C, 0x27
- .byte 0x36, 0x2E, 0x32
- .byte 0x06, 0x0A, 0x1A
- .byte 0x28, 0x28, 0x20
- .byte 0x3A, 0x3A, 0x17
- .byte 0x08, 0x27, 0x36
- .byte 0x18, 0x1A, 0x10
- .byte 0x1E, 0x26, 0x1B
- .byte 0x1F, 0x33, 0x1F
- .byte 0x21, 0x17, 0x2F
- .byte 0x01, 0x08, 0x20
- .byte 0x35, 0x03, 0x19
- .byte 0x3B, 0x02, 0x20
- .byte 0x02, 0x2D, 0x23
- .byte 0x0E, 0x17, 0x32
- .byte 0x31, 0x29, 0x11
- .byte 0x22, 0x17, 0x22
- .byte 0x3A, 0x2C, 0x23
- .byte 0x34, 0x20, 0x18
- .byte 0x00, 0x3A, 0x22
- .byte 0x25, 0x33, 0x21
- .byte 0x33, 0x04, 0x27
- .byte 0x04, 0x18, 0x32
- .byte 0x2C, 0x0C, 0x2F
- .byte 0x28, 0x14, 0x2C
- .byte 0x3F, 0x30, 0x2B
- .byte 0x30, 0x21, 0x1D
- .byte 0x01, 0x25, 0x32
- .byte 0x05, 0x23, 0x34
- .byte 0x24, 0x10, 0x30
- .byte 0x3D, 0x14, 0x1B
- .byte 0x3F, 0x38, 0x2F
- .byte 0x22, 0x1B, 0x32
- .byte 0x25, 0x07, 0x37
- .byte 0x0A, 0x0C, 0x1D
- .byte 0x03, 0x1E, 0x1A
- .byte 0x0F, 0x3C, 0x12
- .byte 0x11, 0x18, 0x1D
- .byte 0x00, 0x35, 0x2F
- .byte 0x32, 0x18, 0x14
- .byte 0x23, 0x30, 0x1B
- .byte 0x11, 0x3D, 0x12
- .byte 0x1A, 0x16, 0x35
- .byte 0x28, 0x05, 0x24
- .byte 0x17, 0x3D, 0x37
- .byte 0x2E, 0x09, 0x2E
- .byte 0x18, 0x1D, 0x17
- .byte 0x20, 0x1F, 0x18
- .byte 0x23, 0x2C, 0x2F
- .byte 0x20, 0x3F, 0x16
- .byte 0x3F, 0x29, 0x2E
- .byte 0x23, 0x3B, 0x29
- .byte 0x18, 0x39, 0x13
- .byte 0x1E, 0x32, 0x35
- .byte 0x14, 0x1D, 0x2A
- .byte 0x35, 0x01, 0x1D
- .byte 0x3E, 0x3B, 0x1E
- .byte 0x22, 0x1E, 0x16
- .byte 0x18, 0x22, 0x12
- .byte 0x3E, 0x29, 0x33
- .byte 0x2F, 0x14, 0x19
- .byte 0x3B, 0x07, 0x15
- .byte 0x06, 0x3D, 0x29
- .byte 0x35, 0x37, 0x23
- .byte 0x34, 0x1D, 0x2D
- .byte 0x18, 0x12, 0x1B
- .byte 0x0B, 0x13, 0x24
- .byte 0x13, 0x38, 0x1C
- .byte 0x1F, 0x0B, 0x1B
- .byte 0x13, 0x21, 0x1C
- .byte 0x06, 0x39, 0x32
- .byte 0x37, 0x3D, 0x26
- .byte 0x29, 0x26, 0x15
- .byte 0x3C, 0x33, 0x27
- .byte 0x00, 0x01, 0x2E
- .byte 0x15, 0x18, 0x31
- .byte 0x0D, 0x2C, 0x13
- .byte 0x27, 0x3B, 0x20
- .byte 0x2D, 0x01, 0x26
- .byte 0x23, 0x15, 0x30
- .byte 0x24, 0x00, 0x17
- .byte 0x37, 0x3F, 0x33
- .byte 0x25, 0x24, 0x31
- .byte 0x06, 0x3B, 0x37
- .byte 0x03, 0x18, 0x1A
- .byte 0x2C, 0x34, 0x14
- .byte 0x1D, 0x36, 0x18
- .byte 0x3A, 0x04, 0x23
- .byte 0x12, 0x26, 0x15
- .byte 0x2B, 0x19, 0x1A
- .byte 0x29, 0x2C, 0x36
- .byte 0x01, 0x19, 0x1D
- .byte 0x2F, 0x06, 0x2B
- .byte 0x0C, 0x12, 0x26
- .byte 0x36, 0x32, 0x1D
- .byte 0x0D, 0x12, 0x28
- .byte 0x03, 0x28, 0x13
- .byte 0x29, 0x06, 0x17
- .byte 0x03, 0x38, 0x21
- .byte 0x30, 0x2C, 0x10
- .byte 0x22, 0x00, 0x28
- .byte 0x24, 0x3B, 0x1C
- .byte 0x20, 0x3E, 0x13
- .byte 0x02, 0x0C, 0x19
- .byte 0x29, 0x2C, 0x1A
- .byte 0x39, 0x30, 0x22
- .byte 0x2A, 0x1F, 0x22
- .byte 0x14, 0x34, 0x2C
- .byte 0x14, 0x25, 0x1B
- .byte 0x06, 0x3B, 0x15
- .byte 0x06, 0x1C, 0x13
- .byte 0x15, 0x03, 0x18
- .byte 0x1E, 0x2A, 0x1B
- .byte 0x17, 0x25, 0x2F
- .byte 0x1C, 0x29, 0x2E
- .byte 0x02, 0x32, 0x1E
- .byte 0x1D, 0x28, 0x35
- .byte 0x36, 0x03, 0x34
- .byte 0x16, 0x3D, 0x2A
- .byte 0x12, 0x0D, 0x13
- .byte 0x1D, 0x2D, 0x21
- .byte 0x32, 0x17, 0x2E
- .byte 0x1A, 0x15, 0x26
- .byte 0x22, 0x2F, 0x15
- .byte 0x3C, 0x0E, 0x20
- .byte 0x2F, 0x27, 0x13
- .byte 0x04, 0x09, 0x32
- .byte 0x1E, 0x01, 0x34
- .byte 0x06, 0x16, 0x1E
- .byte 0x2E, 0x1B, 0x1C
- .byte 0x28, 0x13, 0x2A
- .byte 0x30, 0x34, 0x12
- .byte 0x12, 0x32, 0x18
- .byte 0x1D, 0x1D, 0x35
- .byte 0x07, 0x1C, 0x16
- .byte 0x2D, 0x3D, 0x35
- .byte 0x1C, 0x1B, 0x24
- .byte 0x21, 0x2D, 0x1E
- .byte 0x10, 0x09, 0x14
- .byte 0x3D, 0x11, 0x12
- .byte 0x25, 0x02, 0x26
- .byte 0x23, 0x02, 0x19
- .byte 0x19, 0x05, 0x14
- .byte 0x0B, 0x21, 0x1A
- .byte 0x09, 0x02, 0x2C
- .byte 0x18, 0x28, 0x2D
- .byte 0x1E, 0x10, 0x12
- .byte 0x2E, 0x18, 0x2E
- .byte 0x1F, 0x02, 0x2C
- .byte 0x14, 0x17, 0x24
- .byte 0x39, 0x08, 0x32
- .byte 0x16, 0x14, 0x22
- .byte 0x16, 0x28, 0x21
- .byte 0x11, 0x10, 0x2C
- .byte 0x23, 0x36, 0x2B
- .byte 0x39, 0x21, 0x26
- .byte 0x0E, 0x06, 0x2D
- .byte 0x3C, 0x3E, 0x26
- .byte 0x2A, 0x1B, 0x1F
- .byte 0x00, 0x3C, 0x33
- .byte 0x35, 0x3F, 0x14
- .byte 0x00, 0x0B, 0x10
- .byte 0x34, 0x3C, 0x17
- .byte 0x2D, 0x07, 0x1F
- .byte 0x24, 0x39, 0x27
- .byte 0x16, 0x00, 0x1D
- .byte 0x33, 0x2B, 0x1E
- .byte 0x0F, 0x08, 0x31
- .byte 0x3A, 0x09, 0x13
- .byte 0x0C, 0x21, 0x1C
- .byte 0x2A, 0x17, 0x34
- .byte 0x29, 0x27, 0x10
- .byte 0x37, 0x1B, 0x18
- .byte 0x15, 0x08, 0x2F
- .byte 0x1F, 0x16, 0x12
- .byte 0x1F, 0x28, 0x34
- .byte 0x1C, 0x20, 0x22
- .byte 0x12, 0x01, 0x12
- .byte 0x21, 0x31, 0x10
- .byte 0x22, 0x26, 0x1E
- .byte 0x01, 0x3D, 0x11
- .byte 0x1E, 0x27, 0x25
- .byte 0x3D, 0x30, 0x24
- .byte 0x1D, 0x11, 0x22
- .byte 0x36, 0x30, 0x16
- .byte 0x1F, 0x3E, 0x2A
- .byte 0x3C, 0x27, 0x1B
- .byte 0x1F, 0x29, 0x10
- .byte 0x1E, 0x05, 0x2A
- .byte 0x0A, 0x10, 0x14
- .byte 0x1F, 0x00, 0x2E
- .byte 0x0B, 0x3B, 0x18
- .byte 0x0A, 0x39, 0x30
- .byte 0x37, 0x0B, 0x1F
- .byte 0x1D, 0x0A, 0x29
- .byte 0x3E, 0x1C, 0x33
- .byte 0x13, 0x2E, 0x28
- .byte 0x27, 0x1B, 0x1E
- .byte 0x1D, 0x02, 0x1C
- .byte 0x01, 0x25, 0x14
- .byte 0x3A, 0x10, 0x1C
- .byte 0x12, 0x05, 0x2A
- .byte 0x30, 0x20, 0x26
- .byte 0x2F, 0x2E, 0x2E
- .byte 0x03, 0x07, 0x24
- .byte 0x36, 0x04, 0x2B
- .byte 0x11, 0x25, 0x2D
- .byte 0x28, 0x0E, 0x2E
- .byte 0x0F, 0x1D, 0x15
- .byte 0x1C, 0x28, 0x30
- .byte 0x1F, 0x23, 0x26
- .byte 0x36, 0x12, 0x37
- .byte 0x3A, 0x31, 0x10
- .byte 0x2C, 0x2C, 0x2F
- .byte 0x1A, 0x0D, 0x15
- .byte 0x3F, 0x3C, 0x32
- .byte 0x35, 0x1C, 0x16
- .byte 0x33, 0x16, 0x28
- .byte 0x1D, 0x3F, 0x21
- .byte 0x2C, 0x3E, 0x2B
- .byte 0x24, 0x23, 0x2F
- .byte 0x32, 0x15, 0x2A
- .byte 0x1B, 0x10, 0x35
- .byte 0x18, 0x37, 0x10
- .byte 0x3B, 0x1E, 0x11
- .byte 0x2B, 0x16, 0x24
- .byte 0x1D, 0x16, 0x26
- .byte 0x3C, 0x2D, 0x11
- .byte 0x15, 0x28, 0x28
- .byte 0x27, 0x27, 0x27
- .byte 0x3B, 0x3A, 0x16
- .byte 0x1A, 0x0C, 0x1A
- .byte 0x15, 0x08, 0x25
- .byte 0x0B, 0x10, 0x22
- .byte 0x1A, 0x3E, 0x17
- .byte 0x28, 0x1F, 0x1E
- .byte 0x01, 0x1E, 0x1E
- .byte 0x1C, 0x2F, 0x10
- .byte 0x25, 0x0B, 0x34
- .byte 0x3E, 0x0C, 0x1A
- .byte 0x1B, 0x10, 0x2A
- .byte 0x0F, 0x14, 0x17
- .byte 0x0F, 0x3F, 0x17
- .byte 0x03, 0x15, 0x1F
- .byte 0x02, 0x36, 0x17
- .byte 0x15, 0x1D, 0x18
- .byte 0x08, 0x36, 0x10
- .byte 0x14, 0x0D, 0x2B
- .byte 0x0A, 0x05, 0x1D
- .byte 0x26, 0x12, 0x1E
- .byte 0x3E, 0x18, 0x19
- .byte 0x36, 0x18, 0x37
- .byte 0x17, 0x39, 0x2E
- .byte 0x0D, 0x04, 0x19
- .byte 0x16, 0x22, 0x15
- .byte 0x3E, 0x26, 0x1F
- .byte 0x00, 0x06, 0x17
- .byte 0x33, 0x22, 0x1D
- .byte 0x2B, 0x39, 0x2B
- .byte 0x3E, 0x31, 0x1C
- .byte 0x22, 0x3F, 0x13
- .byte 0x30, 0x1C, 0x31
- .byte 0x07, 0x2B, 0x14
- .byte 0x32, 0x35, 0x1E
- .byte 0x02, 0x07, 0x20
- .byte 0x0F, 0x3B, 0x11
- .byte 0x20, 0x07, 0x12
- .byte 0x2A, 0x30, 0x1D
- .byte 0x28, 0x38, 0x36
- .byte 0x20, 0x01, 0x17
- .byte 0x15, 0x20, 0x21
- .byte 0x3A, 0x1B, 0x1E
- .byte 0x38, 0x12, 0x24
- .byte 0x03, 0x3E, 0x1F
- .byte 0x29, 0x1D, 0x13
- .byte 0x20, 0x27, 0x19
- .byte 0x12, 0x25, 0x20
- .byte 0x32, 0x33, 0x2B
- .byte 0x3F, 0x05, 0x31
- .byte 0x35, 0x3C, 0x2D
- .byte 0x2D, 0x02, 0x2E
- .byte 0x10, 0x2A, 0x16
- .byte 0x17, 0x08, 0x31
- .byte 0x17, 0x2E, 0x2B
- .byte 0x30, 0x1E, 0x15
- .byte 0x31, 0x15, 0x26
- .byte 0x08, 0x10, 0x33
- .byte 0x15, 0x01, 0x27
- .byte 0x12, 0x07, 0x2F
- .byte 0x29, 0x27, 0x34
- .byte 0x3F, 0x08, 0x31
- .byte 0x1C, 0x20, 0x1A
- .byte 0x33, 0x0C, 0x13
- .byte 0x18, 0x31, 0x24
- .byte 0x37, 0x2D, 0x2E
- .byte 0x21, 0x18, 0x24
- .byte 0x3A, 0x27, 0x31
- .byte 0x35, 0x3E, 0x30
- .byte 0x3A, 0x14, 0x33
- .byte 0x0F, 0x1A, 0x2D
- .byte 0x30, 0x2E, 0x11
- .byte 0x1A, 0x31, 0x1D
- .byte 0x17, 0x3C, 0x18
- .byte 0x33, 0x31, 0x23
- .byte 0x1D, 0x39, 0x2D
- .byte 0x10, 0x1D, 0x2F
- .byte 0x24, 0x15, 0x1C
- .byte 0x25, 0x01, 0x2B
- .byte 0x22, 0x16, 0x2E
- .byte 0x1B, 0x25, 0x35
- .byte 0x37, 0x10, 0x26
- .byte 0x39, 0x01, 0x36
- .byte 0x17, 0x2B, 0x14
- .byte 0x09, 0x16, 0x17
- .byte 0x20, 0x28, 0x23
- .byte 0x26, 0x3A, 0x26
- .byte 0x27, 0x2A, 0x24
- .byte 0x36, 0x02, 0x2C
- .byte 0x29, 0x30, 0x35
- .byte 0x36, 0x01, 0x1F
- .byte 0x28, 0x3B, 0x1D
- .byte 0x23, 0x1E, 0x2D
- .byte 0x11, 0x1E, 0x2C
- .byte 0x2F, 0x32, 0x19
- .byte 0x3F, 0x26, 0x31
- .byte 0x38, 0x1E, 0x17
- .byte 0x05, 0x18, 0x2E
- .byte 0x00, 0x2E, 0x12
- .byte 0x34, 0x3F, 0x34
- .byte 0x16, 0x10, 0x29
- .byte 0x20, 0x3D, 0x36
- .byte 0x2F, 0x16, 0x25
- .byte 0x12, 0x17, 0x10
- .byte 0x21, 0x37, 0x35
- .byte 0x25, 0x37, 0x2D
- .byte 0x01, 0x08, 0x27
- .byte 0x03, 0x1F, 0x29
- .byte 0x0D, 0x2A, 0x16
- .byte 0x3A, 0x3F, 0x33
- .byte 0x2B, 0x19, 0x1D
- .byte 0x2A, 0x1F, 0x29
- .byte 0x28, 0x2C, 0x10
- .byte 0x28, 0x30, 0x10
- .byte 0x39, 0x14, 0x1B
- .byte 0x00, 0x18, 0x21
- .byte 0x28, 0x0C, 0x37
- .byte 0x11, 0x10, 0x11
- .byte 0x3C, 0x33, 0x32
- .byte 0x33, 0x36, 0x1A
- .byte 0x36, 0x00, 0x1C
- .byte 0x31, 0x1B, 0x1D
- .byte 0x38, 0x1D, 0x10
- .byte 0x3C, 0x39, 0x27
- .byte 0x3A, 0x3F, 0x14
- .byte 0x19, 0x12, 0x14
- .byte 0x0D, 0x1F, 0x18
- .byte 0x00, 0x25, 0x18
- .byte 0x28, 0x1C, 0x32
- .byte 0x27, 0x03, 0x1A
- .byte 0x26, 0x2D, 0x2A
- .byte 0x29, 0x28, 0x27
- .byte 0x0A, 0x2A, 0x18
- .byte 0x0A, 0x1A, 0x30
- .byte 0x20, 0x1A, 0x2E
- .byte 0x06, 0x0B, 0x1D
- .byte 0x0F, 0x0C, 0x1C
- .byte 0x35, 0x28, 0x1C
- .byte 0x3D, 0x16, 0x23
- .byte 0x21, 0x1C, 0x31
- .byte 0x14, 0x1C, 0x2E
- .byte 0x22, 0x32, 0x35
- .byte 0x09, 0x29, 0x30
- .byte 0x20, 0x1A, 0x10
- .byte 0x31, 0x3F, 0x2C
- .byte 0x0A, 0x3D, 0x37
- .byte 0x0B, 0x2E, 0x2D
- .byte 0x1F, 0x22, 0x31
- .byte 0x06, 0x07, 0x29
- .byte 0x22, 0x17, 0x2D
- .byte 0x30, 0x11, 0x18
- .byte 0x0C, 0x19, 0x15
- .byte 0x07, 0x0A, 0x34
- .byte 0x18, 0x29, 0x27
- .byte 0x33, 0x0C, 0x30
- .byte 0x03, 0x1A, 0x37
- .byte 0x06, 0x01, 0x2D
- .byte 0x0F, 0x3B, 0x2B
- .byte 0x11, 0x1F, 0x37
- .byte 0x2B, 0x21, 0x36
- .byte 0x3F, 0x23, 0x17
- .byte 0x17, 0x07, 0x2B
- .byte 0x2B, 0x0E, 0x30
- .byte 0x11, 0x39, 0x1D
- .byte 0x29, 0x03, 0x33
- .byte 0x30, 0x03, 0x2F
- .byte 0x3C, 0x20, 0x26
- .byte 0x03, 0x22, 0x14
- .byte 0x3A, 0x28, 0x35
- .byte 0x01, 0x28, 0x2B
- .byte 0x3E, 0x15, 0x18
- .byte 0x30, 0x07, 0x17
- .byte 0x3B, 0x2C, 0x30
- .byte 0x15, 0x07, 0x2C
- .byte 0x17, 0x27, 0x1D
- .byte 0x3F, 0x1E, 0x33
- .byte 0x0D, 0x17, 0x10
- .byte 0x15, 0x0E, 0x30
- .byte 0x09, 0x05, 0x30
- .byte 0x2D, 0x20, 0x15
- .byte 0x3C, 0x3D, 0x30
- .byte 0x0C, 0x17, 0x1C
- .byte 0x1A, 0x0D, 0x25
- .byte 0x2B, 0x2B, 0x2A
- .byte 0x02, 0x16, 0x2D
- .byte 0x17, 0x31, 0x17
- .byte 0x00, 0x08, 0x13
- .byte 0x37, 0x35, 0x21
- .byte 0x1E, 0x1C, 0x1F
- .byte 0x2B, 0x32, 0x1C
- .byte 0x10, 0x2A, 0x16
- .byte 0x3A, 0x33, 0x31
- .byte 0x17, 0x2B, 0x2A
- .byte 0x0C, 0x3D, 0x11
- .byte 0x28, 0x0A, 0x30
- .byte 0x23, 0x0A, 0x26
- .byte 0x0A, 0x14, 0x24
- .byte 0x0B, 0x0F, 0x30
- .byte 0x1B, 0x1E, 0x29
- .byte 0x02, 0x35, 0x28
- .byte 0x3B, 0x02, 0x14
- .byte 0x00, 0x0F, 0x35
- .byte 0x1C, 0x3C, 0x2E
- .byte 0x28, 0x38, 0x19
- .byte 0x1B, 0x11, 0x12
- .byte 0x09, 0x16, 0x10
- .byte 0x2E, 0x0D, 0x20
- .byte 0x3D, 0x04, 0x32
- .byte 0x16, 0x2C, 0x25
- .byte 0x02, 0x3D, 0x18
- .byte 0x0B, 0x13, 0x1C
- .byte 0x22, 0x2A, 0x1C
- .byte 0x20, 0x27, 0x22
- .byte 0x05, 0x26, 0x22
- .byte 0x12, 0x1D, 0x2C
- .byte 0x08, 0x05, 0x2E
- .byte 0x3F, 0x1C, 0x17
- .byte 0x24, 0x0D, 0x33
- .byte 0x36, 0x08, 0x24
- .byte 0x10, 0x22, 0x29
- .byte 0x1C, 0x0A, 0x11
- .byte 0x25, 0x0F, 0x10
- .byte 0x24, 0x38, 0x2F
- .byte 0x25, 0x32, 0x1E
- .byte 0x06, 0x2A, 0x29
- .byte 0x3E, 0x3A, 0x28
- .byte 0x34, 0x17, 0x33
- .byte 0x18, 0x33, 0x17
- .byte 0x07, 0x14, 0x1F
- .byte 0x11, 0x17, 0x20
- .byte 0x13, 0x0E, 0x14
- .byte 0x3B, 0x1C, 0x12
- .byte 0x2A, 0x13, 0x37
- .byte 0x2A, 0x35, 0x32
- .byte 0x30, 0x02, 0x25
- .byte 0x00, 0x07, 0x1F
- .byte 0x0C, 0x04, 0x2C
- .byte 0x37, 0x37, 0x30
- .byte 0x25, 0x12, 0x25
- .byte 0x12, 0x22, 0x21
- .byte 0x22, 0x35, 0x33
- .byte 0x07, 0x20, 0x2D
- .byte 0x27, 0x0E, 0x30
- .byte 0x34, 0x19, 0x1A
- .byte 0x0A, 0x3C, 0x25
- .byte 0x07, 0x1D, 0x2B
- .byte 0x31, 0x3A, 0x12
- .byte 0x1A, 0x3D, 0x37
- .byte 0x16, 0x15, 0x16
- .byte 0x39, 0x13, 0x15
- .byte 0x2D, 0x03, 0x2E
- .byte 0x06, 0x39, 0x2C
- .byte 0x16, 0x00, 0x13
- .byte 0x35, 0x2A, 0x35
- .byte 0x24, 0x01, 0x18
- .byte 0x24, 0x37, 0x28
- .byte 0x25, 0x1B, 0x34
- .byte 0x25, 0x19, 0x17
- .byte 0x27, 0x2F, 0x1B
- .byte 0x27, 0x0D, 0x10
- .byte 0x36, 0x3C, 0x30
- .byte 0x3C, 0x33, 0x23
- .byte 0x3E, 0x27, 0x1E
- .byte 0x25, 0x2D, 0x29
- .byte 0x1F, 0x12, 0x21
- .byte 0x37, 0x32, 0x1F
- .byte 0x11, 0x21, 0x35
- .byte 0x30, 0x0C, 0x19
- .byte 0x25, 0x3D, 0x26
- .byte 0x17, 0x02, 0x1D
- .byte 0x14, 0x2E, 0x11
- .byte 0x38, 0x13, 0x30
- .byte 0x0A, 0x2B, 0x20
- .byte 0x1E, 0x10, 0x15
- .byte 0x37, 0x30, 0x2E
- .byte 0x1E, 0x04, 0x2C
- .byte 0x14, 0x34, 0x19
- .byte 0x08, 0x14, 0x18
- .byte 0x0E, 0x1C, 0x30
- .byte 0x1A, 0x2E, 0x1B
- .byte 0x1F, 0x39, 0x31
- .byte 0x0C, 0x1C, 0x28
- .byte 0x3E, 0x33, 0x23
- .byte 0x0F, 0x13, 0x16
- .byte 0x25, 0x39, 0x2F
- .byte 0x14, 0x1B, 0x1A
- .byte 0x28, 0x3E, 0x21
- .byte 0x2D, 0x19, 0x11
- .byte 0x0C, 0x34, 0x32
- .byte 0x39, 0x31, 0x19
- .byte 0x1A, 0x08, 0x34
- .byte 0x09, 0x2F, 0x11
- .byte 0x30, 0x04, 0x1C
- .byte 0x02, 0x3B, 0x1B
- .byte 0x33, 0x21, 0x33
- .byte 0x38, 0x02, 0x1A
- .byte 0x31, 0x38, 0x32
- .byte 0x1F, 0x1D, 0x16
- .byte 0x17, 0x10, 0x1B
- .byte 0x32, 0x20, 0x17
- .byte 0x00, 0x33, 0x12
- .byte 0x21, 0x0F, 0x27
- .byte 0x14, 0x19, 0x27
- .byte 0x24, 0x2C, 0x37
- .byte 0x25, 0x05, 0x2F
- .byte 0x3D, 0x25, 0x11
- .byte 0x12, 0x30, 0x1A
- .byte 0x16, 0x03, 0x1A
- .byte 0x14, 0x09, 0x13
- .byte 0x02, 0x23, 0x22
- .byte 0x01, 0x3C, 0x10
- .byte 0x3F, 0x2D, 0x23
- .byte 0x31, 0x3F, 0x23
- .byte 0x17, 0x00, 0x33
- .byte 0x3F, 0x0F, 0x2F
- .byte 0x26, 0x07, 0x15
- .byte 0x21, 0x2B, 0x2A
- .byte 0x38, 0x39, 0x1E
- .byte 0x09, 0x25, 0x2B
- .byte 0x3B, 0x30, 0x25
- .byte 0x12, 0x2D, 0x13
- .byte 0x32, 0x19, 0x28
- .byte 0x24, 0x1C, 0x2D
- .byte 0x35, 0x32, 0x26
- .byte 0x0D, 0x23, 0x1E
- .byte 0x1D, 0x07, 0x21
- .byte 0x0B, 0x34, 0x17
- .byte 0x2D, 0x32, 0x32
- .byte 0x3A, 0x3C, 0x35
- .byte 0x1A, 0x10, 0x33
- .byte 0x1A, 0x07, 0x22
- .byte 0x3B, 0x1B, 0x2A
- .byte 0x33, 0x1F, 0x26
- .byte 0x0E, 0x35, 0x1A
- .byte 0x3B, 0x0A, 0x1C
- .byte 0x11, 0x07, 0x11
- .byte 0x0D, 0x3C, 0x2D
- .byte 0x1E, 0x37, 0x29
- .byte 0x11, 0x05, 0x12
- .byte 0x15, 0x2F, 0x1C
- .byte 0x24, 0x31, 0x16
- .byte 0x2B, 0x21, 0x1B
- .byte 0x23, 0x10, 0x31
- .byte 0x02, 0x14, 0x29
- .byte 0x26, 0x20, 0x16
- .byte 0x10, 0x17, 0x10
- .byte 0x0B, 0x0F, 0x33
- .byte 0x01, 0x2E, 0x14
- .byte 0x21, 0x0E, 0x37
- .byte 0x1A, 0x1D, 0x2F
- .byte 0x1E, 0x30, 0x24
- .byte 0x04, 0x14, 0x2D
- .byte 0x11, 0x00, 0x30
- .byte 0x08, 0x2A, 0x1D
- .byte 0x1D, 0x22, 0x21
- .byte 0x24, 0x2C, 0x37
- .byte 0x24, 0x11, 0x12
- .byte 0x04, 0x2E, 0x28
- .byte 0x1D, 0x18, 0x23
- .byte 0x3C, 0x16, 0x16
- .byte 0x10, 0x17, 0x31
- .byte 0x20, 0x21, 0x12
- .byte 0x33, 0x3E, 0x34
- .byte 0x06, 0x13, 0x13
- .byte 0x17, 0x38, 0x2B
- .byte 0x14, 0x0D, 0x15
- .byte 0x24, 0x3B, 0x2B
- .byte 0x34, 0x3B, 0x1E
- .byte 0x18, 0x07, 0x34
- .byte 0x37, 0x1D, 0x1F
- .byte 0x0B, 0x29, 0x20
- .byte 0x12, 0x1E, 0x1D
- .byte 0x1A, 0x24, 0x24
- .byte 0x3D, 0x28, 0x24
- .byte 0x0B, 0x12, 0x33
- .byte 0x1B, 0x3A, 0x22
- .byte 0x14, 0x13, 0x2A
- .byte 0x31, 0x38, 0x15
- .byte 0x37, 0x2B, 0x2E
- .byte 0x19, 0x1E, 0x2C
- .byte 0x3F, 0x1B, 0x2A
- .byte 0x33, 0x1F, 0x33
- .byte 0x3F, 0x15, 0x29
- .byte 0x01, 0x1E, 0x18
- .byte 0x1F, 0x22, 0x19
- .byte 0x33, 0x3C, 0x34
- .byte 0x1E, 0x12, 0x22
- .byte 0x0D, 0x37, 0x2C
- .byte 0x0F, 0x08, 0x31
- .byte 0x2E, 0x09, 0x36
- .byte 0x01, 0x05, 0x1E
- .byte 0x1C, 0x04, 0x1E
- .byte 0x0C, 0x01, 0x1C
- .byte 0x29, 0x28, 0x2F
- .byte 0x39, 0x2D, 0x14
- .byte 0x09, 0x22, 0x36
- .byte 0x04, 0x37, 0x37
- .byte 0x2D, 0x2F, 0x35
- .byte 0x24, 0x23, 0x1B
- .byte 0x08, 0x20, 0x32
- .byte 0x20, 0x1F, 0x34
- .byte 0x02, 0x31, 0x19
- .byte 0x18, 0x13, 0x36
- .byte 0x06, 0x2B, 0x1E
- .byte 0x0E, 0x1B, 0x10
- .byte 0x2F, 0x0E, 0x1C
- .byte 0x11, 0x38, 0x13
- .byte 0x01, 0x37, 0x19
- .byte 0x14, 0x11, 0x26
- .byte 0x31, 0x3D, 0x33
- .byte 0x1D, 0x1B, 0x34
- .byte 0x25, 0x31, 0x2F
- .byte 0x11, 0x0A, 0x2F
- .byte 0x39, 0x17, 0x1B
- .byte 0x05, 0x0E, 0x13
- .byte 0x29, 0x25, 0x22
- .byte 0x15, 0x0D, 0x20
- .byte 0x2B, 0x27, 0x21
- .byte 0x3E, 0x24, 0x27
- .byte 0x2A, 0x2B, 0x16
- .byte 0x24, 0x3D, 0x15
- .byte 0x15, 0x30, 0x31
- .byte 0x0F, 0x33, 0x24
- .byte 0x06, 0x16, 0x13
- .byte 0x06, 0x31, 0x10
- .byte 0x2E, 0x3F, 0x10
- .byte 0x05, 0x0D, 0x2F
- .byte 0x3C, 0x1F, 0x19
- .byte 0x12, 0x13, 0x24
- .byte 0x0F, 0x33, 0x36
- .byte 0x15, 0x3B, 0x33
- .byte 0x03, 0x0F, 0x2A
- .byte 0x3B, 0x3C, 0x2C
- .byte 0x36, 0x09, 0x29
- .byte 0x11, 0x3B, 0x27
- .byte 0x28, 0x2B, 0x31
- .byte 0x1A, 0x0E, 0x2F
- .byte 0x39, 0x2C, 0x31
- .byte 0x0E, 0x3C, 0x35
- .byte 0x2C, 0x24, 0x33
- .byte 0x3D, 0x11, 0x2B
- .byte 0x07, 0x3C, 0x37
- .byte 0x14, 0x18, 0x13
- .byte 0x1D, 0x3F, 0x2E
- .byte 0x30, 0x12, 0x25
- .byte 0x26, 0x1D, 0x11
- .byte 0x07, 0x11, 0x1E
- .byte 0x34, 0x01, 0x11
- .byte 0x0B, 0x39, 0x21
- .byte 0x29, 0x02, 0x29
- .byte 0x15, 0x10, 0x1A
- .byte 0x30, 0x1F, 0x35
- .byte 0x3C, 0x2B, 0x2A
- .byte 0x30, 0x3B, 0x36
- .byte 0x20, 0x1A, 0x23
- .byte 0x32, 0x24, 0x2B
- .byte 0x15, 0x20, 0x1C
- .byte 0x25, 0x3D, 0x36
- .byte 0x2D, 0x14, 0x31
- .byte 0x18, 0x23, 0x17
- .byte 0x18, 0x05, 0x13
- .byte 0x34, 0x30, 0x37
- .byte 0x0E, 0x39, 0x23
- .byte 0x1D, 0x1F, 0x17
- .byte 0x01, 0x15, 0x2F
- .byte 0x0B, 0x3E, 0x1B
- .byte 0x0D, 0x19, 0x2E
- .byte 0x31, 0x38, 0x1C
- .byte 0x15, 0x34, 0x15
- .byte 0x13, 0x19, 0x29
- .byte 0x19, 0x14, 0x27
- .byte 0x15, 0x18, 0x23
- .byte 0x29, 0x0C, 0x27
- .byte 0x2D, 0x0E, 0x17
- .byte 0x34, 0x18, 0x10
- .byte 0x3B, 0x1E, 0x29
- .byte 0x34, 0x2C, 0x22
- .byte 0x31, 0x08, 0x13
- .byte 0x1D, 0x18, 0x1A
- .byte 0x1C, 0x0B, 0x2A
- .byte 0x19, 0x1E, 0x1A
- .byte 0x23, 0x27, 0x17
- .byte 0x3B, 0x0E, 0x37
- .byte 0x19, 0x2B, 0x16
- .byte 0x2F, 0x08, 0x21
- .byte 0x37, 0x02, 0x20
- .byte 0x0B, 0x32, 0x30
- .byte 0x16, 0x05, 0x30
- .byte 0x13, 0x05, 0x1A
- .byte 0x07, 0x39, 0x19
- .byte 0x0C, 0x3B, 0x2A
- .byte 0x15, 0x05, 0x30
- .byte 0x30, 0x05, 0x19
- .byte 0x13, 0x00, 0x12
- .byte 0x27, 0x16, 0x2A
- .byte 0x0F, 0x28, 0x27
- .byte 0x0C, 0x23, 0x2F
- .byte 0x39, 0x28, 0x2A
- .byte 0x24, 0x25, 0x1F
- .byte 0x18, 0x29, 0x14
- .byte 0x16, 0x05, 0x1A
- .byte 0x35, 0x2F, 0x26
- .byte 0x0A, 0x3A, 0x29
- .byte 0x34, 0x2C, 0x36
- .byte 0x2E, 0x3A, 0x15
- .byte 0x1A, 0x0A, 0x2D
- .byte 0x16, 0x14, 0x2E
- .byte 0x35, 0x28, 0x2A
- .byte 0x35, 0x0F, 0x11
- .byte 0x11, 0x32, 0x19
- .byte 0x20, 0x1A, 0x28
- .byte 0x17, 0x1A, 0x28
- .byte 0x16, 0x33, 0x25
- .byte 0x13, 0x2C, 0x29
- .byte 0x09, 0x16, 0x33
- .byte 0x1D, 0x27, 0x26
- .byte 0x15, 0x0C, 0x2F
- .byte 0x22, 0x1C, 0x19
- .byte 0x29, 0x33, 0x10
- .byte 0x2D, 0x11, 0x1B
- .byte 0x16, 0x19, 0x2E
- .byte 0x0D, 0x0C, 0x28
- .byte 0x37, 0x3A, 0x34
- .byte 0x2A, 0x1D, 0x37
- .byte 0x30, 0x0A, 0x36
- .byte 0x24, 0x39, 0x1B
- .byte 0x39, 0x0A, 0x32
- .byte 0x11, 0x03, 0x2D
- .byte 0x32, 0x1D, 0x30
- .byte 0x38, 0x1E, 0x27
- .byte 0x2E, 0x17, 0x18
- .byte 0x16, 0x17, 0x2A
- .byte 0x36, 0x3B, 0x31
- .byte 0x17, 0x04, 0x19
- .byte 0x3A, 0x25, 0x2D
- .byte 0x00, 0x36, 0x27
- .byte 0x25, 0x12, 0x33
- .byte 0x06, 0x0A, 0x14
- .byte 0x11, 0x05, 0x2F
- .byte 0x03, 0x35, 0x2F
- .byte 0x0B, 0x34, 0x29
- .byte 0x00, 0x31, 0x13
- .byte 0x27, 0x0F, 0x1C
- .byte 0x1D, 0x06, 0x2D
- .byte 0x1C, 0x30, 0x27
- .byte 0x2F, 0x2A, 0x27
- .byte 0x16, 0x20, 0x31
- .byte 0x33, 0x2B, 0x2B
- .byte 0x05, 0x30, 0x36
- .byte 0x29, 0x23, 0x35
- .byte 0x10, 0x16, 0x2F
- .byte 0x2D, 0x20, 0x29
- .byte 0x37, 0x13, 0x24
- .byte 0x2D, 0x0E, 0x25
- .byte 0x08, 0x0A, 0x18
- .byte 0x0F, 0x03, 0x1B
- .byte 0x31, 0x0C, 0x37
- .byte 0x1E, 0x34, 0x31
- .byte 0x1B, 0x0E, 0x25
- .byte 0x1A, 0x07, 0x34
- .byte 0x0D, 0x3C, 0x33
- .byte 0x00, 0x3A, 0x36
- .byte 0x04, 0x27, 0x12
- .byte 0x23, 0x18, 0x24
- .byte 0x0D, 0x0B, 0x18
- .byte 0x31, 0x32, 0x37
- .byte 0x00, 0x0D, 0x21
- .byte 0x32, 0x10, 0x12
- .byte 0x26, 0x0D, 0x19
- .byte 0x29, 0x24, 0x2B
- .byte 0x3D, 0x21, 0x1F
- .byte 0x1E, 0x1B, 0x28
- .byte 0x0D, 0x12, 0x28
- .byte 0x35, 0x1E, 0x23
- .byte 0x0A, 0x2E, 0x22
- .byte 0x27, 0x27, 0x35
- .byte 0x01, 0x0E, 0x20
- .byte 0x31, 0x39, 0x29
- .byte 0x3B, 0x24, 0x36
- .byte 0x14, 0x10, 0x33
- .byte 0x18, 0x2C, 0x26
- .byte 0x04, 0x2D, 0x15
- .byte 0x1A, 0x11, 0x37
- .byte 0x0F, 0x0B, 0x14
- .byte 0x0E, 0x2C, 0x2C
- .byte 0x21, 0x17, 0x2C
- .byte 0x16, 0x21, 0x35
- .byte 0x3E, 0x10, 0x10
- .byte 0x0A, 0x05, 0x1E
- .byte 0x3B, 0x09, 0x13
- .byte 0x26, 0x18, 0x1E
- .byte 0x23, 0x0C, 0x1A
- .byte 0x33, 0x37, 0x1F
- .byte 0x09, 0x12, 0x35
- .byte 0x3D, 0x0D, 0x15
- .byte 0x36, 0x06, 0x24
- .byte 0x33, 0x30, 0x29
- .byte 0x3B, 0x0F, 0x28
- .byte 0x34, 0x2A, 0x2C
- .byte 0x02, 0x12, 0x35
- .byte 0x09, 0x22, 0x31
- .byte 0x3B, 0x31, 0x1C
- .byte 0x33, 0x22, 0x27
- .byte 0x3D, 0x34, 0x15
- .byte 0x14, 0x22, 0x28
- .byte 0x28, 0x10, 0x1E
- .byte 0x21, 0x31, 0x10
- .byte 0x2D, 0x16, 0x21
- .byte 0x1E, 0x05, 0x33
- .byte 0x0F, 0x30, 0x31
- .byte 0x0E, 0x1A, 0x35
- .byte 0x38, 0x2E, 0x28
- .byte 0x26, 0x37, 0x1E
- .byte 0x2B, 0x13, 0x33
- .byte 0x1F, 0x1E, 0x37
- .byte 0x0A, 0x28, 0x24
- .byte 0x32, 0x1C, 0x1A
- .byte 0x1F, 0x3F, 0x19
- .byte 0x39, 0x39, 0x29
- .byte 0x2C, 0x1B, 0x14
- .byte 0x15, 0x2A, 0x17
- .byte 0x32, 0x0F, 0x21
- .byte 0x30, 0x21, 0x18
- .byte 0x23, 0x2A, 0x27
- .byte 0x3D, 0x07, 0x10
- .byte 0x0B, 0x3F, 0x2F
- .byte 0x31, 0x02, 0x2E
- .byte 0x08, 0x39, 0x2F
- .byte 0x3F, 0x20, 0x18
- .byte 0x2D, 0x34, 0x11
- .byte 0x2E, 0x34, 0x10
- .byte 0x26, 0x12, 0x23
- .byte 0x25, 0x0A, 0x37
- .byte 0x34, 0x09, 0x25
- .byte 0x0A, 0x3E, 0x16
- .byte 0x1A, 0x17, 0x11
- .byte 0x38, 0x1C, 0x20
- .byte 0x11, 0x21, 0x26
- .byte 0x05, 0x0F, 0x18
- .byte 0x26, 0x2B, 0x32
- .byte 0x0A, 0x0C, 0x16
- .byte 0x03, 0x29, 0x1D
- .byte 0x29, 0x3B, 0x23
- .byte 0x16, 0x1B, 0x29
- .byte 0x07, 0x09, 0x17
- .byte 0x17, 0x2C, 0x1C
- .byte 0x35, 0x33, 0x30
- .byte 0x17, 0x12, 0x1E
- .byte 0x3D, 0x1A, 0x2B
- .byte 0x21, 0x1D, 0x10
- .byte 0x0A, 0x08, 0x17
- .byte 0x14, 0x3C, 0x36
- .byte 0x28, 0x36, 0x36
- .byte 0x3B, 0x20, 0x1B
- .byte 0x13, 0x22, 0x1D
- .byte 0x13, 0x3A, 0x15
- .byte 0x02, 0x23, 0x2C
- .byte 0x3E, 0x19, 0x14
- .byte 0x39, 0x3C, 0x1A
- .byte 0x10, 0x08, 0x1E
- .byte 0x0A, 0x13, 0x29
- .byte 0x3F, 0x38, 0x2C
- .byte 0x07, 0x23, 0x1F
- .byte 0x19, 0x2A, 0x24
- .byte 0x14, 0x3C, 0x1F
- .byte 0x0D, 0x04, 0x37
- .byte 0x1A, 0x2F, 0x28
- .byte 0x2A, 0x1D, 0x1E
- .byte 0x11, 0x37, 0x29
- .byte 0x28, 0x27, 0x12
- .byte 0x0D, 0x00, 0x26
- .byte 0x0A, 0x3C, 0x26
- .byte 0x1F, 0x1C, 0x33
- .byte 0x04, 0x3A, 0x2C
- .byte 0x24, 0x3D, 0x2B
- .byte 0x26, 0x31, 0x2F
- .byte 0x13, 0x1C, 0x21
- .byte 0x3E, 0x12, 0x23
- .byte 0x36, 0x0A, 0x1A
- .byte 0x2D, 0x1E, 0x19
- .byte 0x05, 0x1F, 0x1B
- .byte 0x1E, 0x0A, 0x1F
- .byte 0x20, 0x08, 0x24
- .byte 0x2C, 0x0C, 0x33
- .byte 0x1D, 0x1F, 0x11
- .byte 0x0E, 0x12, 0x10
- .byte 0x27, 0x12, 0x19
- .byte 0x2A, 0x13, 0x31
- .byte 0x1C, 0x04, 0x30
- .byte 0x1A, 0x38, 0x1F
- .byte 0x2C, 0x35, 0x25
- .byte 0x07, 0x0B, 0x33
- .byte 0x2D, 0x02, 0x1A
- .byte 0x2A, 0x35, 0x35
- .byte 0x16, 0x2F, 0x14
- .byte 0x11, 0x31, 0x33
- .byte 0x2C, 0x31, 0x1E
- .byte 0x3C, 0x3A, 0x27
- .byte 0x3C, 0x2B, 0x12
- .byte 0x27, 0x1D, 0x12
- .byte 0x36, 0x2C, 0x2B
- .byte 0x25, 0x3B, 0x35
- .byte 0x12, 0x3D, 0x27
- .byte 0x13, 0x23, 0x19
- .byte 0x33, 0x2C, 0x26
- .byte 0x09, 0x3C, 0x12
- .byte 0x15, 0x1A, 0x23
- .byte 0x21, 0x07, 0x1A
- .byte 0x22, 0x25, 0x20
- .byte 0x19, 0x1B, 0x2C
- .byte 0x3A, 0x19, 0x35
- .byte 0x05, 0x26, 0x1D
- .byte 0x23, 0x22, 0x25
- .byte 0x0E, 0x1E, 0x11
- .byte 0x13, 0x30, 0x12
- .byte 0x2C, 0x22, 0x25
- .byte 0x0A, 0x1D, 0x18
- .byte 0x23, 0x3E, 0x1D
- .byte 0x02, 0x28, 0x25
- .byte 0x21, 0x0E, 0x20
- .byte 0x21, 0x22, 0x37
- .byte 0x18, 0x33, 0x27
- .byte 0x23, 0x23, 0x31
- .byte 0x24, 0x1A, 0x1A
- .byte 0x3E, 0x25, 0x24
- .byte 0x24, 0x01, 0x18
- .byte 0x34, 0x10, 0x22
- .byte 0x07, 0x00, 0x37
- .byte 0x06, 0x20, 0x20
- .byte 0x3A, 0x02, 0x2B
- .byte 0x07, 0x2C, 0x2C
- .byte 0x09, 0x2F, 0x2A
- .byte 0x01, 0x32, 0x2C
- .byte 0x00, 0x35, 0x13
- .byte 0x2B, 0x3C, 0x1F
- .byte 0x36, 0x37, 0x1E
- .byte 0x20, 0x35, 0x1D
- .byte 0x0C, 0x07, 0x33
- .byte 0x16, 0x08, 0x12
- .byte 0x3F, 0x36, 0x11
- .byte 0x0B, 0x1F, 0x2D
- .byte 0x21, 0x20, 0x33
- .byte 0x17, 0x1A, 0x2E
- .byte 0x16, 0x01, 0x2F
- .byte 0x2F, 0x1C, 0x34
- .byte 0x29, 0x31, 0x2E
- .byte 0x3B, 0x38, 0x31
- .byte 0x0D, 0x16, 0x12
- .byte 0x07, 0x29, 0x24
- .byte 0x33, 0x3C, 0x34
- .byte 0x3E, 0x1E, 0x18
- .byte 0x30, 0x02, 0x34
- .byte 0x2A, 0x34, 0x1B
- .byte 0x2E, 0x23, 0x18
- .byte 0x34, 0x00, 0x1F
- .byte 0x20, 0x0E, 0x28
- .byte 0x15, 0x33, 0x37
- .byte 0x27, 0x35, 0x23
- .byte 0x37, 0x3E, 0x11
- .byte 0x32, 0x2E, 0x36
- .byte 0x3A, 0x02, 0x2B
- .byte 0x00, 0x36, 0x1D
- .byte 0x13, 0x29, 0x16
- .byte 0x08, 0x2B, 0x37
- .byte 0x08, 0x02, 0x27
- .byte 0x32, 0x2D, 0x34
- .byte 0x30, 0x36, 0x29
- .byte 0x2E, 0x10, 0x12
- .byte 0x3C, 0x2E, 0x2A
- .byte 0x04, 0x33, 0x30
- .byte 0x3F, 0x01, 0x22
- .byte 0x37, 0x14, 0x1D
- .byte 0x27, 0x00, 0x2F
- .byte 0x0C, 0x39, 0x26
- .byte 0x27, 0x04, 0x21
- .byte 0x19, 0x08, 0x1D
- .byte 0x01, 0x04, 0x1E
- .byte 0x27, 0x1B, 0x2B
- .byte 0x31, 0x17, 0x1F
- .byte 0x07, 0x01, 0x2D
- .byte 0x2E, 0x3B, 0x1F
- .byte 0x34, 0x24, 0x31
- .byte 0x32, 0x2B, 0x24
- .byte 0x0E, 0x07, 0x1E
- .byte 0x0F, 0x33, 0x10
- .byte 0x16, 0x21, 0x32
- .byte 0x39, 0x02, 0x1A
- .byte 0x33, 0x3D, 0x22
- .byte 0x0C, 0x25, 0x1A
- .byte 0x29, 0x29, 0x28
- .byte 0x3A, 0x32, 0x26
- .byte 0x0B, 0x13, 0x22
- .byte 0x1F, 0x0F, 0x1C
- .byte 0x04, 0x2C, 0x20
- .byte 0x39, 0x1A, 0x1B
- .byte 0x1A, 0x2A, 0x1F
- .byte 0x24, 0x13, 0x1A
- .byte 0x31, 0x3B, 0x33
- .byte 0x39, 0x23, 0x28
- .byte 0x31, 0x07, 0x31
- .byte 0x1F, 0x10, 0x20
- .byte 0x29, 0x17, 0x32
- .byte 0x26, 0x3B, 0x2D
- .byte 0x02, 0x3C, 0x1C
- .byte 0x0E, 0x00, 0x20
- .byte 0x14, 0x3E, 0x37
- .byte 0x01, 0x0F, 0x2D
- .byte 0x06, 0x12, 0x27
- .byte 0x30, 0x13, 0x19
- .byte 0x00, 0x33, 0x2A
- .byte 0x0C, 0x07, 0x27
- .byte 0x11, 0x3A, 0x1C
- .byte 0x15, 0x0A, 0x13
- .byte 0x1F, 0x0D, 0x2A
- .byte 0x37, 0x07, 0x2A
- .byte 0x34, 0x35, 0x34
- .byte 0x28, 0x16, 0x27
- .byte 0x06, 0x02, 0x36
- .byte 0x09, 0x23, 0x30
- .byte 0x14, 0x02, 0x28
- .byte 0x39, 0x32, 0x34
- .byte 0x24, 0x35, 0x12
- .byte 0x12, 0x22, 0x26
- .byte 0x09, 0x07, 0x33
- .byte 0x0F, 0x3E, 0x1E
- .byte 0x00, 0x3C, 0x33
- .byte 0x10, 0x37, 0x14
- .byte 0x3A, 0x03, 0x25
- .byte 0x2D, 0x1E, 0x24
- .byte 0x36, 0x36, 0x26
- .byte 0x1F, 0x3C, 0x1A
- .byte 0x37, 0x33, 0x25
- .byte 0x23, 0x13, 0x1F
- .byte 0x33, 0x0D, 0x13
- .byte 0x25, 0x30, 0x1E
- .byte 0x17, 0x03, 0x18
- .byte 0x18, 0x18, 0x14
- .byte 0x30, 0x07, 0x22
- .byte 0x3E, 0x33, 0x21
- .byte 0x14, 0x37, 0x16
- .byte 0x16, 0x00, 0x12
- .byte 0x2C, 0x12, 0x2F
- .byte 0x25, 0x3F, 0x1E
- .byte 0x24, 0x19, 0x16
- .byte 0x16, 0x0F, 0x35
- .byte 0x2D, 0x10, 0x11
- .byte 0x24, 0x2A, 0x28
- .byte 0x19, 0x25, 0x2E
- .byte 0x0C, 0x16, 0x1F
- .byte 0x38, 0x21, 0x36
- .byte 0x3D, 0x1A, 0x2F
- .byte 0x3B, 0x32, 0x12
- .byte 0x36, 0x13, 0x29
- .byte 0x0E, 0x30, 0x31
- .byte 0x19, 0x07, 0x2F
- .byte 0x25, 0x23, 0x28
- .byte 0x20, 0x08, 0x29
- .byte 0x2A, 0x00, 0x30
- .byte 0x30, 0x38, 0x23
- .byte 0x1E, 0x0F, 0x1F
- .byte 0x3B, 0x1B, 0x30
- .byte 0x3A, 0x37, 0x2F
- .byte 0x39, 0x37, 0x35
- .byte 0x39, 0x2D, 0x2F
- .byte 0x1F, 0x2E, 0x1E
- .byte 0x1A, 0x2B, 0x1E
- .byte 0x14, 0x17, 0x20
- .byte 0x2F, 0x03, 0x11
- .byte 0x1D, 0x00, 0x30
- .byte 0x17, 0x2B, 0x1D
- .byte 0x35, 0x28, 0x25
- .byte 0x3B, 0x0F, 0x11
- .byte 0x09, 0x04, 0x2E
- .byte 0x23, 0x11, 0x1E
- .byte 0x13, 0x37, 0x1E
- .byte 0x37, 0x37, 0x1E
- .byte 0x07, 0x01, 0x32
- .byte 0x14, 0x06, 0x32
- .byte 0x11, 0x0C, 0x2E
- .byte 0x36, 0x2E, 0x24
- .byte 0x15, 0x2A, 0x1C
- .byte 0x22, 0x15, 0x34
- .byte 0x2C, 0x1E, 0x35
- .byte 0x22, 0x27, 0x33
- .byte 0x19, 0x3F, 0x2D
- .byte 0x21, 0x33, 0x15
- .byte 0x26, 0x1A, 0x11
- .byte 0x16, 0x3E, 0x12
- .byte 0x2B, 0x24, 0x15
- .byte 0x3C, 0x0F, 0x2D
- .byte 0x31, 0x15, 0x36
- .byte 0x3F, 0x24, 0x1D
- .byte 0x25, 0x01, 0x37
- .byte 0x33, 0x16, 0x1A
- .byte 0x1F, 0x0E, 0x10
- .byte 0x2F, 0x0B, 0x12
- .byte 0x2A, 0x1A, 0x25
- .byte 0x17, 0x0A, 0x35
- .byte 0x09, 0x28, 0x35
- .byte 0x02, 0x13, 0x36
- .byte 0x34, 0x2F, 0x17
- .byte 0x03, 0x04, 0x31
- .byte 0x3E, 0x26, 0x11
- .byte 0x35, 0x33, 0x31
- .byte 0x22, 0x17, 0x23
- .byte 0x1D, 0x05, 0x2B
- .byte 0x2E, 0x27, 0x20
- .byte 0x03, 0x2B, 0x1D
- .byte 0x01, 0x19, 0x1E
- .byte 0x0E, 0x05, 0x18
- .byte 0x16, 0x25, 0x17
- .byte 0x02, 0x28, 0x18
- .byte 0x19, 0x0B, 0x24
- .byte 0x3E, 0x35, 0x16
- .byte 0x2E, 0x29, 0x25
- .byte 0x3E, 0x38, 0x1E
- .byte 0x3A, 0x2F, 0x12
- .byte 0x14, 0x17, 0x2D
- .byte 0x11, 0x12, 0x30
- .byte 0x15, 0x31, 0x18
- .byte 0x08, 0x0B, 0x29
- .byte 0x2D, 0x00, 0x33
- .byte 0x2C, 0x06, 0x1A
- .byte 0x14, 0x1C, 0x2E
- .byte 0x04, 0x08, 0x12
- .byte 0x1B, 0x2B, 0x2D
- .byte 0x2A, 0x37, 0x33
- .byte 0x10, 0x27, 0x2C
- .byte 0x1D, 0x0E, 0x34
- .byte 0x20, 0x02, 0x12
- .byte 0x1E, 0x1A, 0x2E
- .byte 0x07, 0x0B, 0x10
- .byte 0x36, 0x1E, 0x33
- .byte 0x2B, 0x28, 0x1B
- .byte 0x31, 0x25, 0x1F
- .byte 0x38, 0x3A, 0x2F
- .byte 0x39, 0x30, 0x2F
- .byte 0x12, 0x09, 0x14
- .byte 0x0E, 0x08, 0x19
- .byte 0x00, 0x0D, 0x2C
- .byte 0x1B, 0x0E, 0x34
- .byte 0x11, 0x25, 0x15
- .byte 0x0C, 0x2D, 0x26
- .byte 0x36, 0x2C, 0x16
- .byte 0x31, 0x31, 0x2C
- .byte 0x03, 0x1A, 0x16
- .byte 0x1C, 0x32, 0x14
- .byte 0x0A, 0x3E, 0x36
- .byte 0x33, 0x1B, 0x27
- .byte 0x1F, 0x32, 0x18
- .byte 0x33, 0x26, 0x33
- .byte 0x1A, 0x13, 0x1A
- .byte 0x0F, 0x34, 0x1C
- .byte 0x35, 0x2C, 0x2F
- .byte 0x38, 0x03, 0x18
- .byte 0x15, 0x0F, 0x27
- .byte 0x31, 0x29, 0x20
- .byte 0x28, 0x0E, 0x28
- .byte 0x31, 0x2C, 0x2E
- .byte 0x15, 0x19, 0x1B
- .byte 0x10, 0x03, 0x2F
- .byte 0x2E, 0x2A, 0x32
- .byte 0x2A, 0x27, 0x1B
- .byte 0x36, 0x04, 0x1E
- .byte 0x3B, 0x04, 0x21
- .byte 0x07, 0x2F, 0x19
- .byte 0x27, 0x1D, 0x1D
- .byte 0x3C, 0x3D, 0x2E
- .byte 0x25, 0x08, 0x32
- .byte 0x3B, 0x34, 0x2A
- .byte 0x0C, 0x10, 0x13
- .byte 0x25, 0x35, 0x1A
- .byte 0x2F, 0x19, 0x28
- .byte 0x17, 0x00, 0x2B
- .byte 0x0A, 0x1C, 0x17
- .byte 0x0A, 0x11, 0x1B
- .byte 0x35, 0x13, 0x37
- .byte 0x29, 0x1C, 0x28
- .byte 0x0C, 0x31, 0x35
- .byte 0x3C, 0x10, 0x1A
- .byte 0x1B, 0x3A, 0x2D
- .byte 0x3A, 0x1C, 0x18
- .byte 0x22, 0x10, 0x2D
- .byte 0x1C, 0x3C, 0x12
- .byte 0x17, 0x18, 0x2A
- .byte 0x0B, 0x2B, 0x2F
- .byte 0x2D, 0x04, 0x2E
- .byte 0x3C, 0x13, 0x23
- .byte 0x01, 0x1C, 0x2E
- .byte 0x14, 0x16, 0x22
- .byte 0x0C, 0x24, 0x13
- .byte 0x35, 0x37, 0x34
- .byte 0x1B, 0x30, 0x1E
- .byte 0x3A, 0x1C, 0x20
- .byte 0x06, 0x06, 0x36
- .byte 0x09, 0x15, 0x1A
- .byte 0x1B, 0x1A, 0x27
- .byte 0x0F, 0x33, 0x35
- .byte 0x37, 0x06, 0x23
- .byte 0x3A, 0x12, 0x1D
- .byte 0x00, 0x16, 0x29
- .byte 0x0E, 0x1D, 0x35
- .byte 0x3F, 0x38, 0x16
- .byte 0x2A, 0x3C, 0x34
- .byte 0x13, 0x32, 0x10
- .byte 0x17, 0x2C, 0x37
- .byte 0x29, 0x2A, 0x1E
- .byte 0x35, 0x2F, 0x2D
- .byte 0x3C, 0x2A, 0x11
- .byte 0x28, 0x13, 0x21
- .byte 0x19, 0x1E, 0x34
- .byte 0x0C, 0x06, 0x2D
- .byte 0x09, 0x04, 0x1C
- .byte 0x1D, 0x2F, 0x26
- .byte 0x39, 0x07, 0x16
- .byte 0x14, 0x04, 0x2D
- .byte 0x3A, 0x2F, 0x2E
- .byte 0x29, 0x15, 0x35
- .byte 0x24, 0x02, 0x36
- .byte 0x3F, 0x02, 0x1A
- .byte 0x0F, 0x18, 0x24
- .byte 0x16, 0x1D, 0x19
- .byte 0x14, 0x16, 0x10
- .byte 0x29, 0x1B, 0x13
- .byte 0x15, 0x0E, 0x19
- .byte 0x3A, 0x2E, 0x2B
- .byte 0x08, 0x30, 0x15
- .byte 0x35, 0x16, 0x30
- .byte 0x2E, 0x18, 0x35
- .byte 0x3B, 0x0B, 0x1C
- .byte 0x3A, 0x18, 0x13
- .byte 0x29, 0x13, 0x1E
- .byte 0x20, 0x13, 0x27
- .byte 0x04, 0x1D, 0x34
- .byte 0x00, 0x38, 0x19
- .byte 0x08, 0x39, 0x32
- .byte 0x20, 0x10, 0x26
- .byte 0x08, 0x02, 0x28
- .byte 0x3F, 0x0F, 0x16
- .byte 0x30, 0x1F, 0x19
- .byte 0x20, 0x2D, 0x10
- .byte 0x38, 0x17, 0x1C
- .byte 0x18, 0x31, 0x27
- .byte 0x33, 0x38, 0x30
- .byte 0x16, 0x33, 0x23
- .byte 0x00, 0x01, 0x36
- .byte 0x0D, 0x02, 0x23
- .byte 0x39, 0x04, 0x1F
- .byte 0x0E, 0x30, 0x24
- .byte 0x06, 0x01, 0x2C
- .byte 0x34, 0x33, 0x35
- .byte 0x16, 0x34, 0x2E
- .byte 0x32, 0x16, 0x24
- .byte 0x26, 0x39, 0x34
- .byte 0x1F, 0x3C, 0x1D
- .byte 0x28, 0x1D, 0x37
- .byte 0x17, 0x15, 0x2B
- .byte 0x27, 0x39, 0x30
- .byte 0x0B, 0x1B, 0x18
- .byte 0x35, 0x20, 0x2D
- .byte 0x0B, 0x35, 0x1C
- .byte 0x03, 0x0E, 0x21
- .byte 0x06, 0x0C, 0x20
- .byte 0x02, 0x18, 0x34
- .byte 0x1E, 0x36, 0x2D
- .byte 0x16, 0x0C, 0x19
- .byte 0x25, 0x09, 0x2C
- .byte 0x37, 0x05, 0x2E
- .byte 0x2E, 0x2B, 0x2C
- .byte 0x24, 0x1A, 0x14
- .byte 0x27, 0x04, 0x10
- .byte 0x32, 0x38, 0x33
- .byte 0x37, 0x15, 0x35
- .byte 0x11, 0x3F, 0x1D
- .byte 0x23, 0x23, 0x1F
- .byte 0x29, 0x3F, 0x1D
- .byte 0x1A, 0x3C, 0x2B
- .byte 0x1B, 0x2C, 0x2C
- .byte 0x38, 0x3B, 0x36
- .byte 0x04, 0x13, 0x33
- .byte 0x2C, 0x14, 0x12
- .byte 0x1A, 0x09, 0x1B
- .byte 0x36, 0x11, 0x24
- .byte 0x3A, 0x3F, 0x11
- .byte 0x01, 0x0E, 0x2B
- .byte 0x3B, 0x03, 0x2A
- .byte 0x08, 0x0D, 0x2B
- .byte 0x2B, 0x13, 0x27
- .byte 0x3A, 0x3C, 0x1C
- .byte 0x3A, 0x15, 0x2A
- .byte 0x24, 0x00, 0x17
- .byte 0x3E, 0x0A, 0x15
- .byte 0x0C, 0x29, 0x2D
- .byte 0x1F, 0x15, 0x30
- .byte 0x35, 0x18, 0x19
- .byte 0x3D, 0x37, 0x37
- .byte 0x12, 0x38, 0x1B
- .byte 0x3B, 0x02, 0x20
- .byte 0x08, 0x21, 0x19
- .byte 0x2E, 0x36, 0x1D
- .byte 0x15, 0x3D, 0x24
- .byte 0x22, 0x0C, 0x27
- .byte 0x36, 0x3F, 0x33
- .byte 0x33, 0x12, 0x11
- .byte 0x1A, 0x19, 0x1F
- .byte 0x2B, 0x24, 0x12
- .byte 0x11, 0x2A, 0x18
- .byte 0x25, 0x32, 0x2A
- .byte 0x2C, 0x1A, 0x12
- .byte 0x26, 0x06, 0x10
- .byte 0x11, 0x29, 0x33
- .byte 0x2C, 0x09, 0x14
- .byte 0x2B, 0x12, 0x2B
- .byte 0x1D, 0x03, 0x24
- .byte 0x00, 0x12, 0x15
- .byte 0x22, 0x3D, 0x26
- .byte 0x15, 0x37, 0x1A
- .byte 0x0F, 0x12, 0x37
- .byte 0x24, 0x01, 0x18
- .byte 0x2A, 0x17, 0x13
- .byte 0x14, 0x3B, 0x29
- .byte 0x2A, 0x19, 0x32
- .byte 0x2D, 0x17, 0x17
- .byte 0x0B, 0x2C, 0x33
- .byte 0x07, 0x2D, 0x34
- .byte 0x07, 0x38, 0x1D
- .byte 0x1F, 0x36, 0x22
- .byte 0x11, 0x0A, 0x17
- .byte 0x14, 0x11, 0x13
- .byte 0x2A, 0x17, 0x25
- .byte 0x01, 0x3A, 0x1C
- .byte 0x26, 0x27, 0x30
- .byte 0x2D, 0x3B, 0x35
- .byte 0x3A, 0x30, 0x34
- .byte 0x06, 0x3A, 0x1C
- .byte 0x2D, 0x05, 0x13
- .byte 0x21, 0x32, 0x12
- .byte 0x3E, 0x1E, 0x2C
- .byte 0x3A, 0x3F, 0x2D
- .byte 0x20, 0x2A, 0x34
- .byte 0x26, 0x03, 0x1A
- .byte 0x19, 0x27, 0x2E
- .byte 0x31, 0x04, 0x26
- .byte 0x2A, 0x3F, 0x30
- .byte 0x25, 0x23, 0x2A
- .byte 0x08, 0x08, 0x35
- .byte 0x2C, 0x30, 0x1E
- .byte 0x08, 0x05, 0x18
- .byte 0x06, 0x09, 0x2D
- .byte 0x19, 0x00, 0x27
- .byte 0x0D, 0x10, 0x19
- .byte 0x1C, 0x00, 0x13
- .byte 0x3D, 0x0B, 0x24
- .byte 0x2E, 0x1F, 0x16
- .byte 0x3D, 0x18, 0x34
- .byte 0x12, 0x1E, 0x15
- .byte 0x15, 0x39, 0x25
- .byte 0x33, 0x0F, 0x17
- .byte 0x1A, 0x1C, 0x1B
- .byte 0x37, 0x29, 0x1B
- .byte 0x3B, 0x38, 0x12
- .byte 0x1D, 0x22, 0x34
- .byte 0x26, 0x0A, 0x31
- .byte 0x16, 0x2D, 0x13
- .byte 0x0D, 0x20, 0x27
- .byte 0x24, 0x1D, 0x16
- .byte 0x2E, 0x2B, 0x18
- .byte 0x16, 0x2A, 0x1B
- .byte 0x24, 0x17, 0x36
- .byte 0x02, 0x05, 0x2B
- .byte 0x37, 0x1A, 0x17
- .byte 0x11, 0x3D, 0x2C
- .byte 0x1E, 0x2F, 0x22
- .byte 0x2C, 0x29, 0x1A
- .byte 0x2F, 0x04, 0x25
- .byte 0x36, 0x0C, 0x35
- .byte 0x30, 0x3E, 0x12
- .byte 0x11, 0x30, 0x37
- .byte 0x12, 0x21, 0x2E
- .byte 0x21, 0x30, 0x17
- .byte 0x2C, 0x3D, 0x24
- .byte 0x11, 0x23, 0x14
- .byte 0x1A, 0x32, 0x17
- .byte 0x39, 0x27, 0x18
- .byte 0x0F, 0x24, 0x19
- .byte 0x00, 0x3D, 0x37
- .byte 0x2C, 0x3C, 0x1C
- .byte 0x0B, 0x39, 0x23
- .byte 0x0E, 0x04, 0x1F
- .byte 0x1C, 0x31, 0x14
- .byte 0x00, 0x04, 0x15
- .byte 0x26, 0x2A, 0x2A
- .byte 0x20, 0x25, 0x2A
- .byte 0x0B, 0x3C, 0x33
- .byte 0x11, 0x0B, 0x2E
- .byte 0x37, 0x22, 0x2E
- .byte 0x0E, 0x22, 0x26
- .byte 0x18, 0x2D, 0x27
- .byte 0x06, 0x0C, 0x1C
- .byte 0x26, 0x18, 0x2F
- .byte 0x3A, 0x01, 0x2A
- .byte 0x2F, 0x31, 0x34
- .byte 0x1F, 0x34, 0x1A
- .byte 0x31, 0x05, 0x10
- .byte 0x2E, 0x17, 0x34
- .byte 0x18, 0x22, 0x23
- .byte 0x23, 0x21, 0x32
- .byte 0x07, 0x08, 0x22
- .byte 0x26, 0x1C, 0x22
- .byte 0x31, 0x12, 0x2F
- .byte 0x08, 0x1F, 0x10
- .byte 0x27, 0x15, 0x2A
- .byte 0x1F, 0x0B, 0x26
- .byte 0x2F, 0x14, 0x35
- .byte 0x24, 0x1F, 0x26
- .byte 0x3B, 0x23, 0x33
- .byte 0x20, 0x3E, 0x2D
- .byte 0x17, 0x0C, 0x15
- .byte 0x13, 0x39, 0x1A
- .byte 0x30, 0x14, 0x25
- .byte 0x09, 0x07, 0x17
- .byte 0x38, 0x38, 0x1F
- .byte 0x29, 0x24, 0x27
- .byte 0x17, 0x27, 0x28
- .byte 0x1B, 0x12, 0x2A
- .byte 0x2B, 0x3D, 0x2D
- .byte 0x19, 0x34, 0x1C
- .byte 0x01, 0x1D, 0x10
- .byte 0x08, 0x39, 0x11
- .byte 0x0E, 0x36, 0x1B
- .byte 0x26, 0x13, 0x10
- .byte 0x16, 0x28, 0x1E
- .byte 0x3C, 0x28, 0x17
- .byte 0x3E, 0x39, 0x34
- .byte 0x0A, 0x03, 0x2E
- .byte 0x37, 0x1A, 0x13
- .byte 0x2B, 0x33, 0x26
- .byte 0x13, 0x2C, 0x21
- .byte 0x25, 0x14, 0x10
- .byte 0x16, 0x0B, 0x35
- .byte 0x1D, 0x35, 0x33
- .byte 0x21, 0x08, 0x33
- .byte 0x28, 0x21, 0x1A
- .byte 0x12, 0x0C, 0x1B
- .byte 0x36, 0x2A, 0x19
- .byte 0x2C, 0x2B, 0x23
- .byte 0x01, 0x0F, 0x26
- .byte 0x17, 0x0C, 0x18
- .byte 0x09, 0x0F, 0x11
- .byte 0x2B, 0x24, 0x1C
- .byte 0x09, 0x09, 0x15
- .byte 0x36, 0x08, 0x13
- .byte 0x20, 0x39, 0x21
- .byte 0x00, 0x3A, 0x1F
- .byte 0x2B, 0x36, 0x31
- .byte 0x02, 0x37, 0x13
- .byte 0x04, 0x34, 0x35
- .byte 0x37, 0x3D, 0x1A
- .byte 0x17, 0x3D, 0x13
- .byte 0x2B, 0x36, 0x2F
- .byte 0x13, 0x1E, 0x13
- .byte 0x3E, 0x11, 0x33
- .byte 0x27, 0x3A, 0x2D
- .byte 0x1E, 0x31, 0x1A
- .byte 0x03, 0x03, 0x2D
- .byte 0x25, 0x37, 0x1F
- .byte 0x11, 0x01, 0x22
- .byte 0x1C, 0x12, 0x17
- .byte 0x30, 0x3A, 0x30
- .byte 0x17, 0x1D, 0x29
- .byte 0x0E, 0x13, 0x27
- .byte 0x1A, 0x2E, 0x24
- .byte 0x2D, 0x00, 0x1C
- .byte 0x17, 0x28, 0x1D
- .byte 0x09, 0x1F, 0x2E
- .byte 0x1A, 0x2D, 0x26
- .byte 0x0A, 0x13, 0x32
- .byte 0x3E, 0x00, 0x27
- .byte 0x0B, 0x3B, 0x30
- .byte 0x08, 0x3A, 0x2D
- .byte 0x22, 0x12, 0x1E
- .byte 0x34, 0x1D, 0x2B
- .byte 0x26, 0x22, 0x35
- .byte 0x17, 0x2C, 0x17
- .byte 0x29, 0x13, 0x2D
- .byte 0x2D, 0x10, 0x10
- .byte 0x20, 0x31, 0x23
- .byte 0x1E, 0x33, 0x18
- .byte 0x33, 0x06, 0x2D
- .byte 0x26, 0x14, 0x27
- .byte 0x22, 0x1D, 0x2A
- .byte 0x2D, 0x06, 0x18
- .byte 0x07, 0x09, 0x2E
- .byte 0x21, 0x15, 0x2E
- .byte 0x21, 0x38, 0x23
- .byte 0x35, 0x0B, 0x34
- .byte 0x24, 0x0B, 0x22
- .byte 0x1E, 0x01, 0x17
- .byte 0x0B, 0x24, 0x11
- .byte 0x17, 0x07, 0x20
- .byte 0x14, 0x25, 0x32
- .byte 0x1A, 0x0E, 0x2F
- .byte 0x35, 0x17, 0x1F
- .byte 0x0C, 0x08, 0x21
- .byte 0x30, 0x35, 0x1F
- .byte 0x0C, 0x0B, 0x20
- .byte 0x04, 0x10, 0x11
- .byte 0x35, 0x11, 0x1E
- .byte 0x33, 0x3D, 0x16
- .byte 0x1E, 0x2B, 0x1D
- .byte 0x1A, 0x19, 0x10
- .byte 0x04, 0x06, 0x22
- .byte 0x03, 0x3D, 0x24
- .byte 0x2A, 0x0E, 0x35
- .byte 0x03, 0x3E, 0x17
- .byte 0x0B, 0x18, 0x36
- .byte 0x3D, 0x0D, 0x26
- .byte 0x35, 0x12, 0x20
- .byte 0x1F, 0x0D, 0x16
- .byte 0x23, 0x32, 0x1A
- .byte 0x00, 0x3D, 0x26
- .byte 0x30, 0x19, 0x36
- .byte 0x12, 0x0E, 0x23
- .byte 0x01, 0x23, 0x28
- .byte 0x3B, 0x31, 0x11
- .byte 0x2D, 0x1C, 0x36
- .byte 0x2A, 0x05, 0x16
- .byte 0x14, 0x0E, 0x30
- .byte 0x3A, 0x37, 0x19
- .byte 0x1F, 0x30, 0x25
- .byte 0x10, 0x26, 0x2F
- .byte 0x22, 0x11, 0x1F
- .byte 0x2E, 0x2B, 0x1E
- .byte 0x16, 0x16, 0x21
- .byte 0x32, 0x18, 0x35
- .byte 0x23, 0x32, 0x1A
- .byte 0x3D, 0x0D, 0x19
- .byte 0x39, 0x09, 0x23
- .byte 0x30, 0x2E, 0x24
- .byte 0x1E, 0x0F, 0x24
- .byte 0x09, 0x21, 0x31
- .byte 0x05, 0x03, 0x11
- .byte 0x05, 0x22, 0x2A
- .byte 0x03, 0x07, 0x37
- .byte 0x04, 0x08, 0x13
- .byte 0x05, 0x10, 0x34
- .byte 0x37, 0x14, 0x29
- .byte 0x0A, 0x24, 0x32
- .byte 0x34, 0x1E, 0x1B
- .byte 0x12, 0x17, 0x2E
- .byte 0x01, 0x02, 0x13
- .byte 0x0A, 0x0C, 0x11
- .byte 0x02, 0x14, 0x13
- .byte 0x0D, 0x25, 0x23
- .byte 0x00, 0x07, 0x1A
- .byte 0x1C, 0x28, 0x35
- .byte 0x08, 0x0E, 0x2C
- .byte 0x1B, 0x3C, 0x15
- .byte 0x1C, 0x19, 0x1D
- .byte 0x32, 0x13, 0x1A
- .byte 0x1C, 0x00, 0x37
- .byte 0x22, 0x1B, 0x35
- .byte 0x39, 0x3E, 0x14
- .byte 0x32, 0x06, 0x31
- .byte 0x17, 0x05, 0x2B
- .byte 0x01, 0x0F, 0x20
- .byte 0x1E, 0x0F, 0x34
- .byte 0x18, 0x03, 0x1F
- .byte 0x2B, 0x00, 0x14
- .byte 0x15, 0x3A, 0x30
- .byte 0x25, 0x30, 0x21
- .byte 0x0B, 0x00, 0x37
- .byte 0x24, 0x37, 0x1D
- .byte 0x29, 0x21, 0x16
- .byte 0x24, 0x0F, 0x2C
- .byte 0x3E, 0x15, 0x36
- .byte 0x3C, 0x2D, 0x23
- .byte 0x3D, 0x3C, 0x17
- .byte 0x1A, 0x1C, 0x13
- .byte 0x0A, 0x29, 0x22
- .byte 0x25, 0x3F, 0x26
- .byte 0x3B, 0x39, 0x2F
- .byte 0x1D, 0x08, 0x16
- .byte 0x0B, 0x19, 0x14
- .byte 0x12, 0x01, 0x2C
- .byte 0x35, 0x11, 0x2A
- .byte 0x02, 0x00, 0x13
- .byte 0x39, 0x2A, 0x35
- .byte 0x07, 0x1A, 0x11
- .byte 0x24, 0x0E, 0x1E
- .byte 0x0E, 0x2C, 0x15
- .byte 0x08, 0x31, 0x1B
- .byte 0x21, 0x1D, 0x26
- .byte 0x1D, 0x1C, 0x2A
- .byte 0x1D, 0x24, 0x13
- .byte 0x01, 0x00, 0x18
- .byte 0x28, 0x2A, 0x37
- .byte 0x15, 0x0F, 0x13
- .byte 0x10, 0x32, 0x36
- .byte 0x22, 0x13, 0x31
- .byte 0x13, 0x05, 0x1E
- .byte 0x17, 0x35, 0x35
- .byte 0x3B, 0x0E, 0x24
- .byte 0x35, 0x3A, 0x1D
- .byte 0x1B, 0x36, 0x1B
- .byte 0x03, 0x1D, 0x24
- .byte 0x0F, 0x16, 0x30
- .byte 0x2D, 0x09, 0x25
- .byte 0x05, 0x21, 0x13
- .byte 0x0A, 0x27, 0x36
- .byte 0x04, 0x0D, 0x1C
- .byte 0x06, 0x3E, 0x21
- .byte 0x2A, 0x27, 0x33
- .byte 0x28, 0x0E, 0x15
- .byte 0x0B, 0x17, 0x1D
- .byte 0x1D, 0x32, 0x2D
- .byte 0x08, 0x3D, 0x29
- .byte 0x21, 0x32, 0x17
- .byte 0x33, 0x31, 0x22
- .byte 0x0E, 0x03, 0x21
- .byte 0x0D, 0x0B, 0x16
- .byte 0x3E, 0x2A, 0x2E
- .byte 0x19, 0x36, 0x2A
- .byte 0x0D, 0x00, 0x14
- .byte 0x22, 0x07, 0x36
- .byte 0x0A, 0x09, 0x15
- .byte 0x14, 0x10, 0x22
- .byte 0x07, 0x16, 0x2C
- .byte 0x36, 0x13, 0x15
- .byte 0x09, 0x2F, 0x1B
- .byte 0x20, 0x3B, 0x2E
- .byte 0x3A, 0x3A, 0x16
- .byte 0x0D, 0x15, 0x2A
- .byte 0x39, 0x13, 0x2B
- .byte 0x0B, 0x01, 0x2A
- .byte 0x13, 0x17, 0x1E
- .byte 0x08, 0x17, 0x1E
- .byte 0x0C, 0x0F, 0x34
- .byte 0x1F, 0x31, 0x12
- .byte 0x07, 0x3A, 0x1D
- .byte 0x35, 0x1E, 0x12
- .byte 0x24, 0x2C, 0x15
- .byte 0x0E, 0x21, 0x19
- .byte 0x34, 0x3B, 0x33
- .byte 0x19, 0x0F, 0x28
- .byte 0x10, 0x2F, 0x2E
- .byte 0x23, 0x27, 0x31
- .byte 0x39, 0x2E, 0x18
- .byte 0x3C, 0x3F, 0x24
- .byte 0x07, 0x23, 0x30
- .byte 0x28, 0x13, 0x35
- .byte 0x13, 0x0A, 0x10
- .byte 0x35, 0x19, 0x33
- .byte 0x23, 0x28, 0x29
- .byte 0x13, 0x2F, 0x1A
- .byte 0x3A, 0x19, 0x14
- .byte 0x37, 0x36, 0x26
- .byte 0x20, 0x3B, 0x15
- .byte 0x37, 0x39, 0x10
- .byte 0x3C, 0x21, 0x34
- .byte 0x1C, 0x38, 0x30
- .byte 0x15, 0x07, 0x26
- .byte 0x27, 0x21, 0x19
- .byte 0x18, 0x11, 0x23
- .byte 0x30, 0x28, 0x37
- .byte 0x32, 0x2D, 0x1F
- .byte 0x2C, 0x3F, 0x30
- .byte 0x1D, 0x2F, 0x26
- .byte 0x01, 0x11, 0x1C
- .byte 0x3B, 0x0F, 0x12
- .byte 0x2A, 0x17, 0x27
- .byte 0x05, 0x00, 0x1B
- .byte 0x25, 0x1C, 0x32
- .byte 0x04, 0x22, 0x2D
- .byte 0x10, 0x0F, 0x25
- .byte 0x0D, 0x39, 0x30
- .byte 0x0B, 0x2E, 0x27
- .byte 0x2D, 0x34, 0x15
- .byte 0x3E, 0x30, 0x36
- .byte 0x16, 0x26, 0x2A
- .byte 0x05, 0x3F, 0x2B
- .byte 0x20, 0x3B, 0x2E
- .byte 0x3B, 0x1C, 0x2F
- .byte 0x01, 0x18, 0x16
- .byte 0x16, 0x3D, 0x10
- .byte 0x0A, 0x1F, 0x18
- .byte 0x17, 0x0F, 0x22
- .byte 0x06, 0x13, 0x11
- .byte 0x38, 0x21, 0x17
- .byte 0x17, 0x0A, 0x37
- .byte 0x1C, 0x19, 0x30
- .byte 0x16, 0x38, 0x31
- .byte 0x30, 0x10, 0x36
- .byte 0x31, 0x2F, 0x26
- .byte 0x3C, 0x1B, 0x23
- .byte 0x33, 0x2F, 0x19
- .byte 0x16, 0x35, 0x25
- .byte 0x3A, 0x18, 0x1F
- .byte 0x37, 0x01, 0x1E
- .byte 0x0D, 0x18, 0x12
- .byte 0x1F, 0x1C, 0x1B
- .byte 0x07, 0x34, 0x2D
- .byte 0x0B, 0x3F, 0x33
- .byte 0x1E, 0x34, 0x1D
- .byte 0x2C, 0x13, 0x2C
- .byte 0x20, 0x20, 0x13
- .byte 0x20, 0x0F, 0x31
- .byte 0x08, 0x0F, 0x24
- .byte 0x18, 0x3D, 0x1C
- .byte 0x36, 0x34, 0x27
- .byte 0x33, 0x2A, 0x25
- .byte 0x2D, 0x30, 0x26
- .byte 0x3D, 0x37, 0x26
- .byte 0x25, 0x11, 0x11
- .byte 0x03, 0x05, 0x18
- .byte 0x10, 0x04, 0x29
- .byte 0x07, 0x2E, 0x36
- .byte 0x2A, 0x29, 0x15
- .byte 0x3A, 0x0E, 0x33
- .byte 0x2A, 0x06, 0x29
- .byte 0x3D, 0x01, 0x29
- .byte 0x27, 0x0E, 0x16
- .byte 0x1D, 0x28, 0x1B
- .byte 0x10, 0x33, 0x2B
- .byte 0x0C, 0x14, 0x1D
- .byte 0x15, 0x3F, 0x25
- .byte 0x37, 0x23, 0x1E
- .byte 0x04, 0x2C, 0x1C
- .byte 0x15, 0x34, 0x2A
- .byte 0x09, 0x2F, 0x15
- .byte 0x02, 0x3F, 0x14
- .byte 0x19, 0x2C, 0x33
- .byte 0x39, 0x32, 0x20
- .byte 0x2A, 0x18, 0x32
- .byte 0x17, 0x23, 0x21
- .byte 0x0B, 0x2D, 0x25
- .byte 0x24, 0x3A, 0x2D
- .byte 0x31, 0x3F, 0x34
- .byte 0x18, 0x19, 0x24
- .byte 0x1E, 0x15, 0x1A
- .byte 0x17, 0x33, 0x2B
- .byte 0x23, 0x09, 0x26
- .byte 0x1B, 0x0D, 0x15
- .byte 0x36, 0x26, 0x28
- .byte 0x3A, 0x1C, 0x14
- .byte 0x0C, 0x3E, 0x10
- .byte 0x18, 0x06, 0x35
- .byte 0x37, 0x26, 0x36
- .byte 0x21, 0x26, 0x17
- .byte 0x3D, 0x1C, 0x2C
- .byte 0x16, 0x25, 0x1D
- .byte 0x1E, 0x0B, 0x1E
- .byte 0x1D, 0x0D, 0x32
- .byte 0x08, 0x1F, 0x1B
- .byte 0x12, 0x1C, 0x12
- .byte 0x20, 0x2A, 0x28
- .byte 0x06, 0x3B, 0x35
- .byte 0x39, 0x0E, 0x1E
- .byte 0x31, 0x30, 0x28
- .byte 0x02, 0x21, 0x14
- .byte 0x06, 0x1E, 0x29
- .byte 0x16, 0x09, 0x1C
- .byte 0x27, 0x32, 0x2D
- .byte 0x39, 0x03, 0x27
- .byte 0x29, 0x09, 0x1E
- .byte 0x1B, 0x11, 0x1C
- .byte 0x28, 0x3A, 0x2C
- .byte 0x03, 0x03, 0x18
- .byte 0x23, 0x09, 0x2F
- .byte 0x30, 0x17, 0x23
- .byte 0x0F, 0x25, 0x33
- .byte 0x06, 0x24, 0x37
- .byte 0x22, 0x09, 0x33
- .byte 0x2C, 0x09, 0x2A
- .byte 0x0C, 0x12, 0x2A
- .byte 0x28, 0x20, 0x10
- .byte 0x15, 0x29, 0x33
- .byte 0x0F, 0x1A, 0x13
- .byte 0x13, 0x18, 0x36
- .byte 0x2E, 0x16, 0x13
- .byte 0x3C, 0x1A, 0x15
- .byte 0x3A, 0x11, 0x32
- .byte 0x02, 0x0A, 0x2C
- .byte 0x19, 0x39, 0x11
- .byte 0x31, 0x3E, 0x1D
- .byte 0x32, 0x14, 0x32
- .byte 0x12, 0x2E, 0x34
- .byte 0x3E, 0x36, 0x23
- .byte 0x37, 0x3E, 0x15
- .byte 0x15, 0x35, 0x34
- .byte 0x01, 0x3A, 0x2C
- .byte 0x26, 0x25, 0x22
- .byte 0x01, 0x2B, 0x37
- .byte 0x1C, 0x3D, 0x33
- .byte 0x3E, 0x10, 0x1C
- .byte 0x26, 0x33, 0x19
- .byte 0x05, 0x19, 0x17
- .byte 0x12, 0x38, 0x1C
- .byte 0x15, 0x3C, 0x32
- .byte 0x3F, 0x0F, 0x37
- .byte 0x02, 0x39, 0x32
- .byte 0x13, 0x00, 0x1D
- .byte 0x1D, 0x2C, 0x10
- .byte 0x39, 0x13, 0x31
- .byte 0x0F, 0x37, 0x19
- .byte 0x09, 0x0D, 0x2A
- .byte 0x20, 0x2F, 0x32
- .byte 0x3B, 0x34, 0x22
- .byte 0x26, 0x14, 0x10
- .byte 0x24, 0x3D, 0x22
- .byte 0x0B, 0x31, 0x23
- .byte 0x2F, 0x2D, 0x2A
- .byte 0x30, 0x04, 0x35
- .byte 0x19, 0x20, 0x2A
- .byte 0x16, 0x36, 0x37
- .byte 0x14, 0x28, 0x37
- .byte 0x11, 0x0B, 0x27
- .byte 0x1D, 0x06, 0x29
- .byte 0x35, 0x16, 0x2E
- .byte 0x24, 0x2E, 0x29
- .byte 0x36, 0x14, 0x2A
- .byte 0x21, 0x0C, 0x1F
- .byte 0x3F, 0x39, 0x19
- .byte 0x27, 0x10, 0x2A
- .byte 0x1E, 0x12, 0x34
- .byte 0x10, 0x24, 0x34
- .byte 0x1D, 0x13, 0x1D
- .byte 0x17, 0x16, 0x37
- .byte 0x27, 0x1B, 0x27
- .byte 0x07, 0x24, 0x21
- .byte 0x37, 0x21, 0x11
- .byte 0x37, 0x28, 0x24
- .byte 0x19, 0x02, 0x1C
- .byte 0x14, 0x12, 0x1D
- .byte 0x1B, 0x24, 0x2E
- .byte 0x2E, 0x3A, 0x15
- .byte 0x37, 0x34, 0x21
- .byte 0x33, 0x2D, 0x29
- .byte 0x2F, 0x1E, 0x34
- .byte 0x29, 0x3C, 0x12
- .byte 0x05, 0x15, 0x20
- .byte 0x05, 0x3E, 0x19
- .byte 0x18, 0x0B, 0x30
- .byte 0x2F, 0x02, 0x27
- .byte 0x14, 0x1C, 0x34
- .byte 0x12, 0x20, 0x30
- .byte 0x2B, 0x22, 0x1B
- .byte 0x06, 0x31, 0x28
- .byte 0x15, 0x2D, 0x12
- .byte 0x01, 0x0E, 0x13
- .byte 0x13, 0x0C, 0x28
- .byte 0x07, 0x2A, 0x14
- .byte 0x1D, 0x36, 0x14
- .byte 0x15, 0x2B, 0x26
- .byte 0x03, 0x25, 0x15
- .byte 0x3E, 0x3B, 0x20
- .byte 0x35, 0x0C, 0x25
- .byte 0x2B, 0x16, 0x35
- .byte 0x1E, 0x31, 0x2C
- .byte 0x06, 0x03, 0x29
- .byte 0x24, 0x07, 0x1F
- .byte 0x32, 0x2F, 0x19
- .byte 0x25, 0x21, 0x31
- .byte 0x22, 0x26, 0x1D
- .byte 0x00, 0x1B, 0x18
- .byte 0x2A, 0x24, 0x31
- .byte 0x20, 0x06, 0x2F
- .byte 0x1E, 0x32, 0x26
- .byte 0x32, 0x39, 0x12
- .byte 0x20, 0x01, 0x19
- .byte 0x0F, 0x15, 0x15
- .byte 0x27, 0x10, 0x2E
- .byte 0x09, 0x25, 0x19
- .byte 0x29, 0x37, 0x30
- .byte 0x13, 0x1C, 0x1D
- .byte 0x29, 0x2D, 0x26
- .byte 0x02, 0x1A, 0x16
- .byte 0x1D, 0x2B, 0x1C
- .byte 0x18, 0x04, 0x34
- .byte 0x28, 0x2A, 0x21
- .byte 0x15, 0x1B, 0x2E
- .byte 0x16, 0x01, 0x10
- .byte 0x05, 0x09, 0x14
- .byte 0x22, 0x03, 0x22
- .byte 0x02, 0x1B, 0x34
- .byte 0x29, 0x2A, 0x23
- .byte 0x26, 0x36, 0x13
- .byte 0x23, 0x3D, 0x1A
- .byte 0x1D, 0x10, 0x24
- .byte 0x25, 0x2B, 0x37
- .byte 0x19, 0x24, 0x26
- .byte 0x28, 0x13, 0x16
- .byte 0x17, 0x14, 0x19
- .byte 0x0B, 0x2F, 0x25
- .byte 0x37, 0x34, 0x37
- .byte 0x39, 0x21, 0x1B
- .byte 0x0F, 0x3D, 0x2D
- .byte 0x0D, 0x10, 0x20
- .byte 0x05, 0x0B, 0x2D
- .byte 0x01, 0x12, 0x24
- .byte 0x18, 0x3D, 0x32
- .byte 0x09, 0x21, 0x26
- .byte 0x1A, 0x0E, 0x1F
- .byte 0x30, 0x06, 0x1F
- .byte 0x0B, 0x3C, 0x29
- .byte 0x07, 0x3E, 0x27
- .byte 0x13, 0x1E, 0x1A
- .byte 0x13, 0x07, 0x23
- .byte 0x10, 0x34, 0x1E
- .byte 0x32, 0x17, 0x23
- .byte 0x35, 0x16, 0x31
- .byte 0x32, 0x2E, 0x1B
- .byte 0x28, 0x0E, 0x22
- .byte 0x14, 0x3A, 0x23
- .byte 0x22, 0x03, 0x29
- .byte 0x2A, 0x10, 0x20
- .byte 0x3E, 0x3C, 0x27
- .byte 0x16, 0x20, 0x12
- .byte 0x3F, 0x24, 0x31
- .byte 0x0D, 0x2E, 0x32
- .byte 0x2F, 0x17, 0x2D
- .byte 0x36, 0x3B, 0x17
- .byte 0x24, 0x23, 0x18
- .byte 0x37, 0x1D, 0x13
- .byte 0x17, 0x3A, 0x1A
- .byte 0x0A, 0x3D, 0x1E
- .byte 0x05, 0x12, 0x16
- .byte 0x33, 0x32, 0x25
- .byte 0x1D, 0x1F, 0x29
- .byte 0x34, 0x2C, 0x26
- .byte 0x20, 0x29, 0x35
- .byte 0x0E, 0x32, 0x17
- .byte 0x01, 0x39, 0x2D
- .byte 0x27, 0x24, 0x23
- .byte 0x28, 0x3F, 0x18
- .byte 0x39, 0x38, 0x25
- .byte 0x23, 0x11, 0x11
- .byte 0x19, 0x2C, 0x29
- .byte 0x30, 0x08, 0x28
- .byte 0x25, 0x27, 0x1D
- .byte 0x17, 0x25, 0x21
- .byte 0x09, 0x3D, 0x16
- .byte 0x1B, 0x0F, 0x2C
- .byte 0x1B, 0x12, 0x22
- .byte 0x28, 0x3E, 0x26
- .byte 0x34, 0x10, 0x1B
- .byte 0x02, 0x34, 0x15
- .byte 0x1A, 0x29, 0x19
- .byte 0x29, 0x11, 0x31
- .byte 0x12, 0x27, 0x17
- .byte 0x27, 0x27, 0x2F
- .byte 0x34, 0x27, 0x24
- .byte 0x03, 0x19, 0x36
- .byte 0x17, 0x1D, 0x33
- .byte 0x19, 0x25, 0x1A
- .byte 0x2B, 0x39, 0x13
- .byte 0x3B, 0x33, 0x1D
- .byte 0x27, 0x31, 0x34
- .byte 0x28, 0x33, 0x37
- .byte 0x09, 0x30, 0x1B
- .byte 0x03, 0x3A, 0x27
- .byte 0x19, 0x11, 0x1F
- .byte 0x0B, 0x1A, 0x34
- .byte 0x3D, 0x2A, 0x15
- .byte 0x04, 0x24, 0x36
- .byte 0x30, 0x23, 0x30
- .byte 0x0F, 0x22, 0x1B
- .byte 0x3D, 0x3D, 0x24
- .byte 0x29, 0x1D, 0x12
- .byte 0x16, 0x19, 0x2E
- .byte 0x03, 0x12, 0x17
- .byte 0x18, 0x25, 0x33
- .byte 0x2F, 0x23, 0x1A
- .byte 0x1A, 0x35, 0x27
- .byte 0x21, 0x26, 0x19
- .byte 0x1B, 0x30, 0x18
- .byte 0x2B, 0x22, 0x2D
- .byte 0x2C, 0x1A, 0x34
- .byte 0x3E, 0x12, 0x19
- .byte 0x28, 0x27, 0x15
- .byte 0x1B, 0x11, 0x12
- .byte 0x17, 0x15, 0x10
- .byte 0x34, 0x37, 0x25
- .byte 0x12, 0x3F, 0x15
- .byte 0x31, 0x0D, 0x37
- .byte 0x3E, 0x2A, 0x2D
- .byte 0x0F, 0x24, 0x24
- .byte 0x3C, 0x3F, 0x1F
- .byte 0x1D, 0x34, 0x17
- .byte 0x1A, 0x23, 0x1F
- .byte 0x37, 0x0F, 0x10
- .byte 0x32, 0x34, 0x35
- .byte 0x19, 0x05, 0x22
- .byte 0x33, 0x16, 0x34
- .byte 0x1E, 0x14, 0x1E
- .byte 0x08, 0x13, 0x29
- .byte 0x3A, 0x37, 0x30
- .byte 0x1D, 0x36, 0x15
- .byte 0x29, 0x2E, 0x1D
- .byte 0x32, 0x2E, 0x23
- .byte 0x35, 0x17, 0x1C
- .byte 0x36, 0x1D, 0x13
- .byte 0x23, 0x34, 0x34
- .byte 0x24, 0x1A, 0x37
- .byte 0x2F, 0x26, 0x2E
- .byte 0x1E, 0x17, 0x1A
- .byte 0x1F, 0x15, 0x1F
- .byte 0x2B, 0x1F, 0x19
- .byte 0x0A, 0x33, 0x1A
- .byte 0x35, 0x31, 0x24
- .byte 0x2D, 0x17, 0x2C
- .byte 0x0C, 0x21, 0x36
- .byte 0x2C, 0x35, 0x35
- .byte 0x1B, 0x03, 0x27
- .byte 0x01, 0x0D, 0x1D
- .byte 0x1C, 0x0E, 0x11
- .byte 0x11, 0x2B, 0x10
- .byte 0x25, 0x3B, 0x20
- .byte 0x1F, 0x17, 0x19
- .byte 0x20, 0x08, 0x36
- .byte 0x13, 0x38, 0x19
- .byte 0x1B, 0x2B, 0x24
- .byte 0x0B, 0x1F, 0x29
- .byte 0x27, 0x15, 0x2C
- .byte 0x37, 0x39, 0x10
- .byte 0x3A, 0x15, 0x2E
- .byte 0x2F, 0x11, 0x36
- .byte 0x24, 0x04, 0x20
- .byte 0x3B, 0x2A, 0x35
- .byte 0x27, 0x35, 0x34
- .byte 0x0D, 0x1B, 0x20
- .byte 0x10, 0x22, 0x37
- .byte 0x1F, 0x38, 0x27
- .byte 0x31, 0x0F, 0x28
- .byte 0x28, 0x25, 0x15
- .byte 0x00, 0x1D, 0x25
- .byte 0x31, 0x28, 0x28
- .byte 0x0B, 0x3A, 0x1D
- .byte 0x2D, 0x13, 0x1B
- .byte 0x03, 0x37, 0x2E
- .byte 0x1D, 0x28, 0x19
- .byte 0x08, 0x2D, 0x22
- .byte 0x27, 0x39, 0x32
- .byte 0x3F, 0x2F, 0x1D
- .byte 0x33, 0x34, 0x28
- .byte 0x18, 0x08, 0x31
- .byte 0x23, 0x1F, 0x13
- .byte 0x0D, 0x2C, 0x23
- .byte 0x3A, 0x2D, 0x1A
- .byte 0x02, 0x25, 0x13
- .byte 0x20, 0x36, 0x34
- .byte 0x12, 0x2B, 0x2D
- .byte 0x35, 0x35, 0x34
- .byte 0x23, 0x20, 0x21
- .byte 0x3A, 0x19, 0x1B
- .byte 0x1F, 0x2B, 0x19
- .byte 0x35, 0x0E, 0x19
- .byte 0x26, 0x24, 0x37
- .byte 0x18, 0x08, 0x10
- .byte 0x0C, 0x16, 0x2D
- .byte 0x1F, 0x34, 0x21
- .byte 0x05, 0x38, 0x19
- .byte 0x14, 0x21, 0x24
- .byte 0x11, 0x31, 0x14
- .byte 0x3E, 0x38, 0x29
- .byte 0x3F, 0x08, 0x25
- .byte 0x2A, 0x1F, 0x25
- .byte 0x25, 0x06, 0x28
- .byte 0x0B, 0x1E, 0x14
- .byte 0x1A, 0x38, 0x22
- .byte 0x24, 0x18, 0x29
- .byte 0x1A, 0x11, 0x20
- .byte 0x3B, 0x3A, 0x1E
- .byte 0x1C, 0x26, 0x1A
- .byte 0x05, 0x32, 0x19
- .byte 0x39, 0x2A, 0x31
- .byte 0x09, 0x07, 0x25
- .byte 0x05, 0x3E, 0x16
- .byte 0x34, 0x26, 0x14
- .byte 0x1B, 0x32, 0x26
- .byte 0x05, 0x08, 0x37
- .byte 0x0F, 0x03, 0x20
- .byte 0x2A, 0x39, 0x31
- .byte 0x08, 0x01, 0x1E
- .byte 0x1D, 0x23, 0x31
- .byte 0x28, 0x1B, 0x28
- .byte 0x1E, 0x37, 0x14
- .byte 0x13, 0x0E, 0x28
- .byte 0x2A, 0x3B, 0x37
- .byte 0x2F, 0x1C, 0x28
- .byte 0x30, 0x30, 0x1A
- .byte 0x36, 0x1F, 0x16
- .byte 0x3E, 0x0D, 0x15
- .byte 0x2E, 0x16, 0x18
- .byte 0x15, 0x37, 0x20
- .byte 0x2A, 0x33, 0x30
- .byte 0x2B, 0x0E, 0x25
- .byte 0x18, 0x20, 0x16
- .byte 0x02, 0x19, 0x25
- .byte 0x0A, 0x2E, 0x30
- .byte 0x16, 0x03, 0x11
- .byte 0x04, 0x27, 0x25
- .byte 0x1B, 0x1C, 0x21
- .byte 0x29, 0x04, 0x27
- .byte 0x3D, 0x20, 0x1E
- .byte 0x28, 0x33, 0x31
- .byte 0x1E, 0x39, 0x10
- .byte 0x31, 0x29, 0x1E
- .byte 0x06, 0x25, 0x28
- .byte 0x19, 0x3B, 0x12
- .byte 0x0B, 0x1B, 0x1C
- .byte 0x3E, 0x37, 0x20
- .byte 0x0A, 0x37, 0x33
- .byte 0x02, 0x2C, 0x25
- .byte 0x15, 0x18, 0x14
- .byte 0x3B, 0x20, 0x1C
- .byte 0x22, 0x3B, 0x1C
- .byte 0x24, 0x34, 0x35
- .byte 0x0F, 0x2F, 0x31
- .byte 0x3B, 0x17, 0x35
- .byte 0x30, 0x39, 0x37
- .byte 0x0D, 0x15, 0x11
- .byte 0x10, 0x03, 0x1E
- .byte 0x1A, 0x39, 0x33
- .byte 0x2F, 0x2E, 0x28
- .byte 0x1C, 0x28, 0x36
- .byte 0x28, 0x18, 0x1F
- .byte 0x15, 0x01, 0x30
- .byte 0x3E, 0x32, 0x28
- .byte 0x34, 0x2F, 0x23
- .byte 0x07, 0x0C, 0x36
- .byte 0x28, 0x2C, 0x34
- .byte 0x2A, 0x0C, 0x1F
- .byte 0x3F, 0x20, 0x13
- .byte 0x2B, 0x17, 0x27
- .byte 0x28, 0x29, 0x2A
- .byte 0x3C, 0x13, 0x36
- .byte 0x26, 0x2D, 0x2A
- .byte 0x0A, 0x06, 0x1E
- .byte 0x20, 0x04, 0x1A
- .byte 0x02, 0x07, 0x35
- .byte 0x0E, 0x18, 0x30
- .byte 0x00, 0x34, 0x34
- .byte 0x2F, 0x14, 0x37
- .byte 0x21, 0x30, 0x1F
- .byte 0x15, 0x37, 0x1B
- .byte 0x3A, 0x0B, 0x32
- .byte 0x22, 0x22, 0x21
- .byte 0x1B, 0x35, 0x23
- .byte 0x0D, 0x03, 0x1C
- .byte 0x23, 0x3B, 0x13
- .byte 0x0E, 0x1D, 0x1F
- .byte 0x1D, 0x3F, 0x2E
- .byte 0x39, 0x27, 0x2E
- .byte 0x0F, 0x38, 0x20
- .byte 0x31, 0x3C, 0x35
- .byte 0x0B, 0x0F, 0x2E
- .byte 0x06, 0x06, 0x28
- .byte 0x25, 0x39, 0x23
- .byte 0x0A, 0x32, 0x15
- .byte 0x0F, 0x1D, 0x25
- .byte 0x0C, 0x0D, 0x34
- .byte 0x12, 0x2E, 0x21
- .byte 0x36, 0x18, 0x1F
- .byte 0x1F, 0x34, 0x1B
- .byte 0x05, 0x3A, 0x36
- .byte 0x2B, 0x01, 0x17
- .byte 0x0E, 0x16, 0x2B
- .byte 0x0E, 0x0B, 0x26
- .byte 0x0D, 0x2D, 0x10
- .byte 0x21, 0x11, 0x27
- .byte 0x3D, 0x13, 0x32
- .byte 0x15, 0x25, 0x2A
- .byte 0x1B, 0x2D, 0x35
- .byte 0x2C, 0x2B, 0x26
- .byte 0x26, 0x1F, 0x20
- .byte 0x22, 0x2B, 0x12
- .byte 0x3F, 0x3D, 0x27
- .byte 0x30, 0x0A, 0x36
- .byte 0x35, 0x1F, 0x17
- .byte 0x21, 0x08, 0x29
- .byte 0x1D, 0x20, 0x33
- .byte 0x34, 0x11, 0x16
- .byte 0x05, 0x38, 0x2D
diff --git a/include/data2.h b/include/data2.h
index ed23a10ce..8ba1294ac 100644
--- a/include/data2.h
+++ b/include/data2.h
@@ -48,8 +48,8 @@ extern const u8 gUnknown_081F96C8[];
extern const struct CompressedSpriteSheet gUnknown_081FAEA4;
extern const struct CompressedSpritePalette gUnknown_081FAEAC;
extern const struct SpriteTemplate gSpriteTemplate_81FAF0C;
-extern u8 *const gUnknown_081FAF4C[];
-//extern u8 (*const gUnknown_081FAF4C[])[0x800];
+extern u8 *const gMonSpriteGfx_Sprite_ptr[];
+//extern u8 (*const gMonSpriteGfx_Sprite_ptr[])[0x800];
extern const struct BattleMove gBattleMoves[];
// data/graphics/trainers/front_pic_coords.inc
diff --git a/include/ewram.h b/include/ewram.h
index c3a830247..00aed71d3 100644
--- a/include/ewram.h
+++ b/include/ewram.h
@@ -88,12 +88,17 @@ extern u8 gSharedMem[];
#define ewram15000arr(i, data) (gSharedMem[0x15000 + data + i])
#define ewram15800 (&gSharedMem[0x15800])
+#define ewram16000_2 (&gSharedMem[0x16000])
+
#define eCurContestWinnerSaveIdx (gSharedMem[0x15DDE])
#define eCurContestWinnerIsForArtist (gSharedMem[0x15DDF])
#define eCurContestWinner ((*(struct ContestWinner*)(gSharedMem + 0x15DE0)))
-#define ewram15E00 ((*(struct ContestPaintingBuffers*)(gSharedMem + 0x15E00)))
+#define eContestPaintingBuffers ((*(struct ContestPaintingBuffers*)(gSharedMem + 0x15E00)))
+
+// Battle Struct
+// For matching purposes, the struct is placed at 0x02000000 and
+// there's a ton of filler.
#define ewram16000 (gSharedMem[0x16000])
-#define ewram16000_2 (&gSharedMem[0x16000])
#define ewram16003 (gSharedMem[0x16003])
#define ewram16004arr(i, battler) (gSharedMem[0x16004 + i + battler * 2])
#define ewram16010arr(battler) (gSharedMem[0x16010 + battler])
@@ -159,7 +164,11 @@ extern u8 gSharedMem[];
#define B_FUNCTION_STACK ((struct BattleCallbacksStack *) (gSharedMem + 0x17140))
#define gBattleResources_statsBeforeLvlUp ((struct StatsArray *)(gSharedMem + 0x17180))
+// roulette_gfx.c
#define ewram17000 (&gSharedMem[0x17000])
+#define ewram17E00 ((u16 *)(gSharedMem + 0x17E00))
+#define ewram18000 ((u16 *)(gSharedMem + 0x18000))
+
#define eMoveTutorMenu (struct MoveTutorMenu *)(gSharedMem + 0x17000)
#define eCableCar1 ((struct CableCarEwramStruct1 *)(gSharedMem + 0x17000))
#define gBattleSpriteInfo ((struct BattleSpriteInfo *) (gSharedMem + 0x17800))
@@ -170,10 +179,8 @@ extern u8 gSharedMem[];
#define EWRAM_17810 ((struct UnknownStruct3 *)(gSharedMem + 0x17810))
#define ewram17840 (*(struct Struct2017840 *) (gSharedMem + 0x17840))
#define ewram17850 ((struct UnknownStruct5 *)(gSharedMem + 0x17850))
-#define ewram17E00 ((u16 *)(gSharedMem + 0x17E00))
#define ewram_2018000 (*(struct PlayerRecords *)(gSharedMem + 0x18000))
#define EWRAM_18000 ((u16 *)(gSharedMem + 0x18000))
-#define ewram18000 ((u16 *)(gSharedMem + 0x18000))
#define ewram18000_2 (&gSharedMem[0x18000])
#define ewram18000_3 *(struct Pokemon **)(gSharedMem + 0x18000)
#define eBerryBlenderData (struct BerryBlenderData*)(&gSharedMem[0x18000])
diff --git a/include/image_processing_effects.h b/include/image_processing_effects.h
index d465e0b95..47153023b 100644
--- a/include/image_processing_effects.h
+++ b/include/image_processing_effects.h
@@ -1,28 +1,53 @@
-#ifndef GUARD_CUTE_SKETCH_H
-#define GUARD_CUTE_SKETCH_H
+#ifndef GUARD_IMAGE_PROCESSING_EFFECTS_H
+#define GUARD_IMAGE_PROCESSING_EFFECTS_H
+
+enum
+{
+ IMAGE_EFFECT_POINTILLISM = 2,
+ IMAGE_EFFECT_GRAYSCALE_LIGHT = 6,
+ IMAGE_EFFECT_BLUR = 8,
+ IMAGE_EFFECT_OUTLINE_COLORED = 9,
+ IMAGE_EFFECT_INVERT_BLACK_WHITE = 10,
+ IMAGE_EFFECT_THICK_BLACK_WHITE = 11,
+ IMAGE_EFFECT_SHIMMER = 13,
+ IMAGE_EFFECT_OUTLINE = 30,
+ IMAGE_EFFECT_INVERT = 31,
+ IMAGE_EFFECT_BLUR_RIGHT = 32,
+ IMAGE_EFFECT_BLUR_DOWN = 33,
+ IMAGE_EFFECT_CHARCOAL = 36,
+};
+
+enum
+{
+ QUANTIZE_EFFECT_STANDARD,
+ QUANTIZE_EFFECT_STANDARD_LIMITED_COLORS,
+ QUANTIZE_EFFECT_PRIMARY_COLORS,
+ QUANTIZE_EFFECT_GRAYSCALE,
+ QUANTIZE_EFFECT_GRAYSCALE_SMALL,
+ QUANTIZE_EFFECT_BLACK_WHITE,
+};
struct ImageProcessingContext
{
- u8 var_0;
- u8 pad1[3];
- u16 (*var_4)[][32];
- u16 *var_8;
- u8 pad0C[4];
- u16 (*var_10)[][32];
- u16 var_14;
- u16 var_16;
- u8 var_18;
- u8 var_19;
- u8 var_1A;
- u8 var_1B;
- u8 var_1C;
- u8 var_1D;
- u8 var_1E;
- u8 var_1F;
+ u8 effect;
+ void *canvasPixels;
+ u16 *canvasPalette;
+ u8 fillerC[0x4];
+ void *dest;
+ u16 quantizeEffect;
+ u16 bgType;
+ u8 paletteStart;
+ u8 columnStart;
+ u8 rowStart;
+ u8 columnEnd;
+ u8 rowEnd;
+ u8 canvasWidth;
+ u8 canvasHeight;
+ u8 personality;
};
-void sub_80FC7A0(struct ImageProcessingContext *);
-void sub_80FD8CC(struct ImageProcessingContext *);
-void sub_80FDA18(struct ImageProcessingContext *);
+void ApplyImageProcessingEffects(struct ImageProcessingContext *);
+void ConvertImageProcessingToGBA(struct ImageProcessingContext *);
+void ApplyImageProcessingQuantization(struct ImageProcessingContext *);
-#endif // GUARD_CUTE_SKETCH_H
+#endif // GUARD_IMAGE_PROCESSING_EFFECTS_H
diff --git a/include/text.h b/include/text.h
index 8b5df9280..920093a1d 100644
--- a/include/text.h
+++ b/include/text.h
@@ -206,7 +206,7 @@ extern const struct WindowTemplate gWindowTemplate_81E70F0;
extern const struct WindowTemplate gWindowTemplate_81E710C;
extern const struct WindowTemplate gWindowTemplate_81E7128;
extern const struct WindowTemplate gWindowTemplate_81E7144;
-extern const struct WindowTemplate gWindowTemplate_81E7160;
+extern const struct WindowTemplate gWindowTemplate_ContestPainting;
extern const struct WindowTemplate gWindowTemplate_81E717C;
extern const struct WindowTemplate gWindowTemplate_81E7198;
extern const struct WindowTemplate gWindowTemplate_81E71B4;
diff --git a/ld_script.txt b/ld_script.txt
index e9b2bd78a..3dd99494a 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -726,7 +726,6 @@ SECTIONS {
src/heal_location.o(.rodata);
src/region_map.o(.rodata);
src/image_processing_effects.o(.rodata);
- data/image_processing_effects.o(.rodata);
src/decoration.o(.rodata);
src/slot_machine.o(.rodata);
src/contest_painting.o(.rodata);
diff --git a/src/battle/anim/battle_intro.c b/src/battle/anim/battle_intro.c
index 1c1972bb4..e432701f4 100644
--- a/src/battle/anim/battle_intro.c
+++ b/src/battle/anim/battle_intro.c
@@ -463,7 +463,7 @@ void sub_80E4EF8(u8 left, u8 top, u8 c, u8 paletteNum, u16 e, u8 bgMap, u8 g)
s32 y;
u8 bank = GetBattlerAtPosition(c);
- DmaCopy16(3, gUnknown_081FAF4C[c] + gBattleMonForms[bank] * 0x800, (void *)(VRAM + e), 0x800);
+ DmaCopy16(3, gMonSpriteGfx_Sprite_ptr[c] + gBattleMonForms[bank] * 0x800, (void *)(VRAM + e), 0x800);
tileNum = e / 32 - g * 512;
for (y = top; y < top + 8; y++)
{
@@ -481,7 +481,7 @@ void unref_sub_80E4FDC(u8 left, u8 top, u8 c, u8 form, u8 paletteNum, u16 f, u8
s32 x;
s32 y;
- DmaCopy16(3, gUnknown_081FAF4C[c] + form * 0x800, (void *)(VRAM + f), 0x800);
+ DmaCopy16(3, gMonSpriteGfx_Sprite_ptr[c] + form * 0x800, (void *)(VRAM + f), 0x800);
tileNum = f / 32 - h * 512;
for (y = top; y < top + 8; y++)
{
diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c
index 881f13c97..51cc90ee6 100644
--- a/src/battle_anim_effects_3.c
+++ b/src/battle_anim_effects_3.c
@@ -2297,7 +2297,7 @@ void sub_812D7E8(u8 taskId)
else
position = GetBattlerPosition(gBattleAnimAttacker);
- dest = gUnknown_081FAF4C[position] + (gBattleMonForms[gBattleAnimAttacker] << 11);
+ dest = gMonSpriteGfx_Sprite_ptr[position] + (gBattleMonForms[gBattleAnimAttacker] << 11);
src = subStruct.field_0;
DmaCopy32(3, dest, src, 0x800);
diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c
index 49da3c9e6..3c3464b9e 100644
--- a/src/battle_gfx_sfx_util.c
+++ b/src/battle_gfx_sfx_util.c
@@ -313,7 +313,7 @@ void BattleLoadOpponentMonSprite(struct Pokemon *pkmn, u8 b)
gMonFrontPicCoords[species].coords,
gMonFrontPicCoords[species].y_offset,
eVoidSharedArr2,
- gUnknown_081FAF4C[var],
+ gMonSpriteGfx_Sprite_ptr[var],
species,
r7);
paletteOffset = 0x100 + b * 16;
@@ -365,7 +365,7 @@ void BattleLoadPlayerMonSprite(struct Pokemon *pkmn, u8 b)
gMonBackPicCoords[species].coords,
gMonBackPicCoords[species].y_offset,
eVoidSharedArr2,
- gUnknown_081FAF4C[var],
+ gMonSpriteGfx_Sprite_ptr[var],
species,
r7);
paletteOffset = 0x100 + b * 16;
@@ -408,9 +408,9 @@ void sub_8031A6C(u16 a, u8 b)
gTrainerFrontPicCoords[a].coords,
gTrainerFrontPicCoords[a].y_offset,
eVoidSharedArr,
- gUnknown_081FAF4C[status],
+ gMonSpriteGfx_Sprite_ptr[status],
0);
- spriteSheet.data = gUnknown_081FAF4C[status];
+ spriteSheet.data = gMonSpriteGfx_Sprite_ptr[status];
spriteSheet.size = gTrainerFrontPicTable[a].size;
spriteSheet.tag = gTrainerFrontPicTable[a].tag;
LoadCompressedObjectPic(&spriteSheet);
@@ -427,7 +427,7 @@ void LoadPlayerTrainerBankSprite(u16 a, u8 b)
gTrainerBackPicCoords[a].coords,
gTrainerBackPicCoords[a].y_offset,
eVoidSharedArr,
- gUnknown_081FAF4C[status],
+ gMonSpriteGfx_Sprite_ptr[status],
0);
LoadCompressedPalette(gTrainerBackPicPaletteTable[a].data, 0x100 + b * 16, 32);
}
@@ -662,7 +662,7 @@ void sub_8031FC4(u8 a, u8 b, bool8 c)
gMonBackPicCoords[species].coords,
gMonBackPicCoords[species].y_offset,
eVoidSharedArr2,
- gUnknown_081FAF4C[0],
+ gMonSpriteGfx_Sprite_ptr[0],
species,
shared19348.unk10);
}
@@ -682,7 +682,7 @@ void sub_8031FC4(u8 a, u8 b, bool8 c)
gMonBackPicCoords[species].coords,
gMonBackPicCoords[species].y_offset,
eVoidSharedArr2,
- gUnknown_081FAF4C[r10],
+ gMonSpriteGfx_Sprite_ptr[r10],
species,
gTransformedPersonalities[a]);
}
@@ -695,12 +695,12 @@ void sub_8031FC4(u8 a, u8 b, bool8 c)
gMonFrontPicCoords[species].coords,
gMonFrontPicCoords[species].y_offset,
eVoidSharedArr2,
- gUnknown_081FAF4C[r10],
+ gMonSpriteGfx_Sprite_ptr[r10],
species,
gTransformedPersonalities[a]);
}
}
- DmaCopy32Defvars(3, gUnknown_081FAF4C[r10], (void *)(VRAM + 0x10000 + gSprites[gBattlerSpriteIds[a]].oam.tileNum * 32), 0x800);
+ DmaCopy32Defvars(3, gMonSpriteGfx_Sprite_ptr[r10], (void *)(VRAM + 0x10000 + gSprites[gBattlerSpriteIds[a]].oam.tileNum * 32), 0x800);
paletteOffset = 0x100 + a * 16;
lzPaletteData = GetMonSpritePalFromOtIdPersonality(species, otId, personalityValue);
LZDecompressWram(lzPaletteData, gSharedMem);
@@ -739,15 +739,15 @@ void BattleLoadSubstituteSprite(u8 a, u8 b)
else
r4 = GetBattlerPosition(a);
if (IsContest())
- LZDecompressVram(gSubstituteDollTilemap, gUnknown_081FAF4C[r4]);
+ LZDecompressVram(gSubstituteDollTilemap, gMonSpriteGfx_Sprite_ptr[r4]);
else if (GetBattlerSide(a) != 0)
- LZDecompressVram(gSubstituteDollGfx, gUnknown_081FAF4C[r4]);
+ LZDecompressVram(gSubstituteDollGfx, gMonSpriteGfx_Sprite_ptr[r4]);
else
- LZDecompressVram(gSubstituteDollTilemap, gUnknown_081FAF4C[r4]);
+ LZDecompressVram(gSubstituteDollTilemap, gMonSpriteGfx_Sprite_ptr[r4]);
// There is probably a way to do this without all the temp variables, but I couldn't figure it out.
foo = a * 16;
gSubstituteDollPal_ = gSubstituteDollPal;
- src = gUnknown_081FAF4C[r4];
+ src = gMonSpriteGfx_Sprite_ptr[r4];
for (i = 0; i < 3; i++)
DmaCopy32(3, src, src + i * 0x800 + 0x800, 0x800);
LoadCompressedPalette(gSubstituteDollPal_, 0x100 + foo, 32);
diff --git a/src/battle_main.c b/src/battle_main.c
index fee505c43..3c490e626 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -2623,7 +2623,7 @@ void debug_sub_8012688(void)
gMonFrontPicCoords[gCurrentMove].coords,
gMonFrontPicCoords[gCurrentMove].y_offset,
(void *)EWRAM,
- gUnknown_081FAF4C[1],
+ gMonSpriteGfx_Sprite_ptr[1],
gCurrentMove);
LoadCompressedPalette(gMonPaletteTable[gCurrentMove].data, 272, 32);
GetMonSpriteTemplate_803C56C(gCurrentMove, 1);
@@ -2683,7 +2683,7 @@ void debug_sub_80129F8(u8 taskId)
gMonFrontPicCoords[gCurrentMove].coords,
gMonFrontPicCoords[gCurrentMove].y_offset,
(void *)EWRAM,
- gUnknown_081FAF4C[1],
+ gMonSpriteGfx_Sprite_ptr[1],
gCurrentMove);
LoadCompressedPalette(gMonPaletteTable[gCurrentMove].data, 272, 32);
gSprites[gTasks[taskId].data[1]].pos1.y = gMonFrontPicCoords[gCurrentMove].y_offset + 40;
@@ -3179,7 +3179,7 @@ void sub_8010494(struct Sprite *sprite)
else
{
// this should use a MEMSET_ALT, but *(dst++) wont match with it.
- dst = (u8 *)gUnknown_081FAF4C[GetBattlerPosition(sprite->data[0])] + (gBattleMonForms[sprite->data[0]] << 11) + (sprite->data[3] << 8);
+ dst = (u8 *)gMonSpriteGfx_Sprite_ptr[GetBattlerPosition(sprite->data[0])] + (gBattleMonForms[sprite->data[0]] << 11) + (sprite->data[3] << 8);
for (i = 0; i < 0x100; i++)
*(dst++) = 0;
StartSpriteAnim(sprite, gBattleMonForms[sprite->data[0]]);
diff --git a/src/contest.c b/src/contest.c
index 50824c867..20e25e829 100644
--- a/src/contest.c
+++ b/src/contest.c
@@ -2457,7 +2457,7 @@ u8 unref_sub_80AE908(void)
gMonFrontPicCoords[species].coords,
gMonFrontPicCoords[species].y_offset,
(void *)EWRAM,
- gUnknown_081FAF4C[1],
+ gMonSpriteGfx_Sprite_ptr[1],
species);
LoadCompressedPalette(gMonPaletteTable[species].data, 0x110, 32);
GetMonSpriteTemplate_803C56C(gContestMons[gContestPlayerMonIndex].species, 1);
@@ -2483,7 +2483,7 @@ u8 sub_80AE9FC(u16 species, u32 otId, u32 personality)
gMonBackPicCoords[species].coords,
gMonBackPicCoords[species].y_offset,
EWRAM,
- gUnknown_081FAF4C[0],
+ gMonSpriteGfx_Sprite_ptr[0],
species,
personality);
lzPaletteData = GetMonSpritePalFromOtIdPersonality(species, otId, personality);
diff --git a/src/contest_link_80C2020.c b/src/contest_link_80C2020.c
index e76e7322b..579ee3688 100644
--- a/src/contest_link_80C2020.c
+++ b/src/contest_link_80C2020.c
@@ -610,7 +610,7 @@ static void sub_80C2A8C(u8 taskId)
species = gContestMons[i].species;
personality = gContestMons[i].personality;
otId = gContestMons[i].otId;
- HandleLoadSpecialPokePic(gMonFrontPicTable + species, gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, (intptr_t)gSharedMem, gUnknown_081FAF4C[1], species, personality);
+ HandleLoadSpecialPokePic(gMonFrontPicTable + species, gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, (intptr_t)gSharedMem, gMonSpriteGfx_Sprite_ptr[1], species, personality);
monPal = GetMonSpritePalStructFromOtIdPersonality(species, otId, personality);
LoadCompressedObjectPalette(monPal);
GetMonSpriteTemplate_803C56C(species, 1);
diff --git a/src/contest_painting.c b/src/contest_painting.c
index 24a63b48f..0238bb179 100644
--- a/src/contest_painting.c
+++ b/src/contest_painting.c
@@ -105,13 +105,13 @@ const u16 sBgPalette[] = {RGB_BLACK, RGB_BLACK};
static void ShowContestPainting();
static void CB2_HoldContestPainting(void);
static void HoldContestPainting(void);
-static void ContestPaintingInitWindow(u8 arg0);
-static void ContestPaintingPrintCaption(u8 arg0, u8 arg1);
-static void ContestPaintingInitBG(void);
-static void ContestPaintingInitVars(u8 arg0);
+static void InitContestPaintingWindow(bool8 isForArtist);
+static void PrintContestPaintingCaption(u8 contestType, bool8 isForArtist);
+static void InitContestPaintingBg(void);
+static void InitContestPaintingVars(bool8 reset);
static void VBlankCB_ContestPainting(void);
-static void sub_8106B90(u8 *a, u16 *b, u16 *c);
-static void CreateContestPaintingPicture(u8 arg0, u8 arg1);
+static void _InitContestMonPixels(u8 *spriteGfx, u16 *palette, u16 *destPixels);
+static void CreateContestPaintingPicture(u8 contestWinnerId, bool8 isForArtist);
void SetContestWinnerForPainting(u32 contestWinnerId)
{
@@ -137,8 +137,8 @@ static void ShowContestPainting(void)
ScanlineEffect_Stop();
SetVBlankCallback(NULL);
gContestPaintingWinner = &eCurContestWinner;
- ContestPaintingInitVars(TRUE);
- ContestPaintingInitBG();
+ InitContestPaintingVars(TRUE);
+ InitContestPaintingBg();
gMain.state++;
break;
case 1:
@@ -152,7 +152,7 @@ static void ShowContestPainting(void)
case 2:
SeedRng(gMain.vblankCounter1);
InitKeys();
- ContestPaintingInitWindow(eCurContestWinnerIsForArtist);
+ InitContestPaintingWindow(eCurContestWinnerIsForArtist);
gMain.state++;
break;
case 3:
@@ -160,7 +160,7 @@ static void ShowContestPainting(void)
gMain.state++;
break;
case 4:
- ContestPaintingPrintCaption(eCurContestWinnerSaveIdx, eCurContestWinnerIsForArtist);
+ PrintContestPaintingCaption(eCurContestWinnerSaveIdx, eCurContestWinnerIsForArtist);
LoadPalette(sBgPalette, 0, 1 * 2);
DmaClear32(3, PLTT, 0x400);
BeginFastPaletteFade(2);
@@ -190,16 +190,14 @@ static void HoldContestPainting(void)
case 0:
if (!gPaletteFade.active)
sHoldState = 1;
- if (sVarsInitialized != 0 && sFrameCounter != 0)
+ if (sVarsInitialized&& sFrameCounter != 0)
sFrameCounter--;
break;
case 1:
- if ((gMain.newKeys & 1) || (gMain.newKeys & 2))
+ if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys & B_BUTTON))
{
- u8 two = 2; //needed to make the asm match
-
- sHoldState = two;
- BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0));
+ sHoldState++;
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
}
if (sVarsInitialized != 0)
sFrameCounter = 0;
@@ -207,25 +205,25 @@ static void HoldContestPainting(void)
case 2:
if (!gPaletteFade.active)
SetMainCallback2(CB2_QuitContestPainting);
- if (sVarsInitialized != 0 && sFrameCounter <= 0x1D)
+ if (sVarsInitialized && sFrameCounter < 30)
sFrameCounter++;
break;
}
}
-static void ContestPaintingInitWindow(u8 arg0)
+static void InitContestPaintingWindow(u8 isForArtist)
{
- InitMenuWindow(&gWindowTemplate_81E7160);
- Text_LoadWindowTemplate(&gWindowTemplate_81E7160);
+ InitMenuWindow(&gWindowTemplate_ContestPainting);
+ Text_LoadWindowTemplate(&gWindowTemplate_ContestPainting);
}
-static void ContestPaintingPrintCaption(u8 contestType, u8 arg1)
+static void PrintContestPaintingCaption(u8 contestType, u8 isForArtist)
{
u8 xPos, yPos;
u8 *ptr;
u8 type;
- if (arg1 == TRUE)
+ if (isForArtist == TRUE)
return;
ptr = sCaptionBuffer;
type = gContestPaintingWinner->contestCategory;
@@ -240,7 +238,7 @@ static void ContestPaintingPrintCaption(u8 contestType, u8 arg1)
#endif
// {LATIN}
- ptr[0] = 0xFC;
+ ptr[0] = EXT_CTRL_CODE_BEGIN;
ptr[1] = 0x16;
ptr += 2;
@@ -266,7 +264,7 @@ static void ContestPaintingPrintCaption(u8 contestType, u8 arg1)
Menu_PrintTextPixelCoords(sCaptionBuffer, xPos * 8 + 1, yPos * 8, 1);
}
-static void ContestPaintingInitBG(void)
+static void InitContestPaintingBg(void)
{
REG_DISPCNT = 0;
REG_IE |= INTR_FLAG_VBLANK;
@@ -277,9 +275,9 @@ static void ContestPaintingInitBG(void)
REG_BLDY = 0;
}
-static void ContestPaintingInitVars(bool8 arg0)
+static void InitContestPaintingVars(bool8 reset)
{
- if (arg0 == FALSE)
+ if (reset == FALSE)
{
sVarsInitialized = FALSE;
sMosaicVal = 0;
@@ -315,7 +313,7 @@ static void VBlankCB_ContestPainting(void)
TransferPlttBuffer();
}
-static void sub_8106AC4(u16 species, u8 arg1)
+static void InitContestMonPixels(u16 species, u8 arg1)
{
const void *pal;
@@ -329,11 +327,11 @@ static void sub_8106AC4(u16 species, u8 arg1)
gMonFrontPicCoords[species].coords,
gMonFrontPicCoords[species].y_offset,
EWRAM,
- gUnknown_081FAF4C[1],
+ gMonSpriteGfx_Sprite_ptr[1],
species,
(u32)gContestPaintingWinner->personality
);
- sub_8106B90((u8*)gUnknown_081FAF4C[1], (u16*)gContestPaintingMonPalette, (u16*)gContestMonPixels);
+ _InitContestMonPixels((u8*)gMonSpriteGfx_Sprite_ptr[1], (u16*)gContestPaintingMonPalette, (u16*)gContestMonPixels);
}
else
{
@@ -342,17 +340,17 @@ static void sub_8106AC4(u16 species, u8 arg1)
gMonBackPicCoords[species].coords,
gMonBackPicCoords[species].y_offset,
EWRAM,
- gUnknown_081FAF4C[0],
+ gMonSpriteGfx_Sprite_ptr[0],
species,
(u32)gContestPaintingWinner->personality
);
- sub_8106B90((u8*)gUnknown_081FAF4C[0], (u16*)gContestPaintingMonPalette, (u16*)gContestMonPixels);
+ _InitContestMonPixels((u8*)gMonSpriteGfx_Sprite_ptr[0], (u16*)gContestPaintingMonPalette, (u16*)gContestMonPixels);
}
}
-static void sub_8106B90(u8 *a, u16 *b, u16 *c)
+static void _InitContestMonPixels(u8 *spriteGfx, u16 *palette, u16 *destPixels)
{
- u16 i, j, k, l;
+ u16 tileY, tileX, pixelY, pixelX;
/*
Raw arithmetics are required to match this function.
@@ -362,48 +360,49 @@ static void sub_8106B90(u8 *a, u16 *b, u16 *c)
calculate dimensions manually (as seen in other functions),
tell that it may have been this way in the original code.
*/
- for (i = 0; i < 8; i++)
+ for (tileY = 0; tileY < 8; tileY++)
{
- for (j = 0; j < 8; j++)
+ for (tileX = 0; tileX < 8; tileX++)
{
- for (k = 0; k < 8; k++)
+ for (pixelY = 0; pixelY < 8; pixelY++)
{
- for (l = 0; l < 8; l++)
+ for (pixelX = 0; pixelX < 8; pixelX++)
{
- u8 temp = a[(((i * 8) + j) * 32) + (k << 2) + (l >> 1)];
+ u8 colorIndex = spriteGfx[(((tileY * 8) + tileX) * 32) + (pixelY << 2) + (pixelX >> 1)];
/*
The shifts have to be there to match r0 and r2's order in one instruction:
add r5, r2, r0
This also makes agbcc's expression order parsing even more super sensitive
and obscene when it comes to parentheses affecting regalloc regardless if
- unnecessary, requiring j must be placed in the front to match, or else
+ unnecessary, requiring tileX must be placed in the front to match, or else
regalloc breaks again and does this a few instructions above:
add r0, r3, r7 <- regswap
*/
- if (l & 1)
- temp /= 16;
+ if (pixelX & 1)
+ colorIndex /= 16;
else
- temp %= 16;
+ colorIndex %= 16;
// Same order as above needs to be written here, or else this happens:
// add r0, r7, r1 <- regswap
- if (temp == 0)
- *(u16 *)(c + (((i * 8) + k) << 6) + ((j * 8) + l)) = 0x8000;
+ if (colorIndex == 0)
+ *(u16 *)(destPixels + (((tileY * 8) + pixelY) << 6) + ((tileX * 8) + pixelX)) = 0x8000;
else
- *(u16 *)(c + (((i * 8) + k) << 6) + ((j * 8) + l)) = b[temp];
+ *(u16 *)(destPixels + (((tileY * 8) + pixelY) << 6) + ((tileX * 8) + pixelX)) =
+ palette[colorIndex];
}
}
}
}
}
-static void sub_8106C40(u8 arg0, u8 arg1)
+static void LoadContestPaintingFrame(u8 contestWinnerId, u8 isForArtist)
{
u8 x, y;
LoadPalette(gPictureFramePalettes, 0, sizeof(gPictureFramePalettes));
- if (arg1 == 1)
+ if (isForArtist == TRUE)
{
switch (gContestPaintingWinner->contestCategory / 3)
{
@@ -451,7 +450,7 @@ static void sub_8106C40(u8 arg0, u8 arg1)
#undef VRAM_PICTURE_DATA
}
- else if (arg0 < 8)
+ else if (contestWinnerId < 8)
{
RLUnCompVram(gPictureFrameTiles_5, (void *)VRAM);
RLUnCompVram(gPictureFrameTilemap_5, (void *)(VRAM + 0x6000));
@@ -484,29 +483,28 @@ static void sub_8106C40(u8 arg0, u8 arg1)
}
}
-static void sub_8106E98(u8 arg0)
+static void InitPaintingMonOamData(u8 contestWinnerId)
{
- //Some hacks just to get the asm to match
-#ifndef NONMATCHING
- asm(""::"r"(arg0));
-#endif
-
gMain.oamBuffer[0] = sContestPaintingMonOamData;
gMain.oamBuffer[0].tileNum = 0;
-#ifndef NONMATCHING
- if (arg0) arg0 = gMain.oamBuffer[0].tileNum;
-#endif
-
- gMain.oamBuffer[0].x = 88;
- gMain.oamBuffer[0].y = 24;
+ if (contestWinnerId > 1)
+ {
+ gMain.oamBuffer[0].x = 88;
+ gMain.oamBuffer[0].y = 24;
+ }
+ else // duplicated code branch
+ {
+ gMain.oamBuffer[0].x = 88;
+ gMain.oamBuffer[0].y = 24;
+ }
}
-static u8 sub_8106EE0(u8 arg0)
+static u8 GetImageEffectForContestWinner(u8 contestWinnerId)
{
u8 contestType;
- if (arg0 < 8)
+ if (contestWinnerId < 8)
contestType = gContestPaintingWinner->contestCategory;
else
contestType = gContestPaintingWinner->contestCategory / 3;
@@ -528,55 +526,55 @@ static u8 sub_8106EE0(u8 arg0)
return contestType;
}
-static void sub_8106F4C(void)
+static void AllocPaintingResources(void)
{
- gContestPaintingMonPalette = ewram15E00.palette;
- gContestMonPixels = (void *)&ewram15E00.pixels;
+ gContestPaintingMonPalette = eContestPaintingBuffers.palette;
+ gContestMonPixels = (void *)eContestPaintingBuffers.pixels;
}
-static void sub_8106F6C(u8 arg0)
+static void DoContestPaintingImageProcessing(u8 imageEffect)
{
- gImageProcessingContext.var_4 = gContestMonPixels;
- gImageProcessingContext.var_8 = gContestPaintingMonPalette;
- gImageProcessingContext.var_18 = 0;
- gImageProcessingContext.var_1F = gContestPaintingWinner->personality % 256;
- gImageProcessingContext.var_19 = 0;
- gImageProcessingContext.var_1A = 0;
- gImageProcessingContext.var_1B = 64;
- gImageProcessingContext.var_1C = 64;
- gImageProcessingContext.var_1D = 64;
- gImageProcessingContext.var_1E = 64;
-
- switch (arg0)
+ gImageProcessingContext.canvasPixels = gContestMonPixels;
+ gImageProcessingContext.canvasPalette = gContestPaintingMonPalette;
+ gImageProcessingContext.paletteStart = 0;
+ gImageProcessingContext.personality = gContestPaintingWinner->personality % 256;
+ gImageProcessingContext.columnStart = 0;
+ gImageProcessingContext.rowStart = 0;
+ gImageProcessingContext.columnEnd = 64;
+ gImageProcessingContext.rowEnd = 64;
+ gImageProcessingContext.canvasWidth = 64;
+ gImageProcessingContext.canvasHeight = 64;
+
+ switch (imageEffect)
{
case CONTESTRESULT_SMART:
case CONTESTRESULT_TOUGH:
- gImageProcessingContext.var_14 = 3;
+ gImageProcessingContext.quantizeEffect = QUANTIZE_EFFECT_GRAYSCALE;
break;
case CONTESTRESULT_COOL:
case CONTESTRESULT_BEAUTY:
case CONTESTRESULT_CUTE:
default:
- gImageProcessingContext.var_14 = 1;
+ gImageProcessingContext.quantizeEffect = QUANTIZE_EFFECT_STANDARD_LIMITED_COLORS;
break;
}
- gImageProcessingContext.var_16 = 2;
- gImageProcessingContext.var_0 = arg0;
- gImageProcessingContext.var_10 = OBJ_VRAM0;
+ gImageProcessingContext.bgType = 2;
+ gImageProcessingContext.effect = imageEffect;
+ gImageProcessingContext.dest = OBJ_VRAM0;
- sub_80FC7A0(&gImageProcessingContext);
- sub_80FDA18(&gImageProcessingContext);
- sub_80FD8CC(&gImageProcessingContext);
+ ApplyImageProcessingEffects(&gImageProcessingContext);
+ ApplyImageProcessingQuantization(&gImageProcessingContext);
+ ConvertImageProcessingToGBA(&gImageProcessingContext);
LoadPalette(gContestPaintingMonPalette, 256, 256 * 2);
}
-static void CreateContestPaintingPicture(u8 arg0, u8 arg1)
+static void CreateContestPaintingPicture(u8 contestWinnerId, u8 isForArtist)
{
- sub_8106F4C();
- sub_8106AC4(gContestPaintingWinner->species, 0);
- sub_8106F6C(sub_8106EE0(arg0));
- sub_8106E98(arg0);
- sub_8106C40(arg0, arg1);
+ AllocPaintingResources();
+ InitContestMonPixels(gContestPaintingWinner->species, 0);
+ DoContestPaintingImageProcessing(GetImageEffectForContestWinner(contestWinnerId));
+ InitPaintingMonOamData(contestWinnerId);
+ LoadContestPaintingFrame(contestWinnerId, isForArtist);
}
diff --git a/src/data/pointillism_points.h b/src/data/pointillism_points.h
new file mode 100644
index 000000000..708f5c02e
--- /dev/null
+++ b/src/data/pointillism_points.h
@@ -0,0 +1,3210 @@
+#define GET_POINT_OFFSET_DL(bits) (((bits) >> 0) & 1)
+#define GET_POINT_COLOR_TYPE(bits) (((bits) >> 1) & 3)
+#define GET_POINT_DELTA(bits) (((bits) >> 3) & 7)
+
+#define PT(x, y, delta, colorType, offsetDownLeft) x, y, (delta << 3) | (colorType << 1) | offsetDownLeft
+
+static const u8 sPointillismPoints[][3] = {
+ PT( 0, 29, 3, 2, FALSE),
+ PT(14, 30, 3, 1, TRUE),
+ PT( 0, 1, 6, 1, FALSE),
+ PT(46, 30, 6, 3, TRUE),
+ PT(10, 34, 3, 3, TRUE),
+ PT( 5, 38, 5, 3, FALSE),
+ PT(18, 23, 3, 3, FALSE),
+ PT(26, 3, 2, 0, TRUE),
+ PT( 5, 17, 3, 0, FALSE),
+ PT( 5, 39, 5, 3, TRUE),
+ PT(26, 63, 2, 1, FALSE),
+ PT(34, 63, 2, 3, FALSE),
+ PT(43, 47, 5, 3, FALSE),
+ PT(17, 2, 5, 2, TRUE),
+ PT(35, 13, 5, 0, FALSE),
+ PT(23, 12, 3, 0, TRUE),
+ PT(47, 14, 2, 1, TRUE),
+ PT(48, 24, 4, 0, FALSE),
+ PT(45, 40, 4, 1, FALSE),
+ PT( 1, 3, 3, 0, TRUE),
+ PT(14, 42, 5, 1, TRUE),
+ PT(34, 21, 4, 2, TRUE),
+ PT(34, 10, 4, 3, FALSE),
+ PT(57, 6, 4, 1, TRUE),
+ PT(22, 7, 5, 3, TRUE),
+ PT(34, 58, 3, 1, TRUE),
+ PT(59, 54, 6, 2, TRUE),
+ PT(10, 43, 4, 2, FALSE),
+ PT(54, 9, 2, 1, FALSE),
+ PT(28, 47, 4, 1, TRUE),
+ PT(46, 56, 5, 2, FALSE),
+ PT( 5, 42, 4, 0, FALSE),
+ PT( 7, 20, 6, 1, FALSE),
+ PT(49, 8, 2, 3, TRUE),
+ PT(26, 36, 5, 2, TRUE),
+ PT(34, 10, 2, 3, FALSE),
+ PT(27, 38, 5, 1, TRUE),
+ PT(41, 22, 2, 0, TRUE),
+ PT(53, 8, 2, 2, FALSE),
+ PT(30, 8, 2, 2, FALSE),
+ PT( 5, 49, 2, 2, FALSE),
+ PT(56, 49, 2, 3, TRUE),
+ PT(52, 51, 2, 1, FALSE),
+ PT(17, 9, 3, 3, TRUE),
+ PT(40, 61, 6, 1, FALSE),
+ PT(53, 3, 3, 3, FALSE),
+ PT(60, 43, 5, 3, FALSE),
+ PT(16, 1, 2, 3, TRUE),
+ PT( 3, 62, 4, 1, FALSE),
+ PT(23, 24, 6, 2, FALSE),
+ PT( 8, 41, 3, 0, TRUE),
+ PT( 3, 36, 5, 0, FALSE),
+ PT(61, 51, 5, 3, TRUE),
+ PT(49, 36, 3, 0, TRUE),
+ PT(27, 24, 4, 3, FALSE),
+ PT( 7, 13, 4, 2, TRUE),
+ PT(45, 63, 2, 1, FALSE),
+ PT(47, 21, 4, 2, TRUE),
+ PT(41, 15, 2, 1, FALSE),
+ PT( 7, 44, 2, 1, FALSE),
+ PT(44, 11, 4, 3, FALSE),
+ PT(18, 26, 2, 3, FALSE),
+ PT( 0, 11, 5, 3, TRUE),
+ PT(22, 53, 4, 2, FALSE),
+ PT(31, 28, 4, 1, FALSE),
+ PT(41, 51, 4, 3, TRUE),
+ PT(59, 48, 2, 3, TRUE),
+ PT(17, 6, 6, 2, TRUE),
+ PT(62, 49, 5, 3, TRUE),
+ PT(17, 58, 4, 2, TRUE),
+ PT(42, 2, 3, 0, TRUE),
+ PT(51, 24, 6, 2, TRUE),
+ PT(42, 32, 4, 0, TRUE),
+ PT(46, 50, 3, 1, TRUE),
+ PT(59, 31, 4, 1, TRUE),
+ PT(57, 41, 5, 1, FALSE),
+ PT(46, 49, 5, 0, TRUE),
+ PT(42, 14, 5, 2, TRUE),
+ PT(45, 0, 3, 3, TRUE),
+ PT(56, 40, 3, 1, TRUE),
+ PT(20, 59, 5, 1, TRUE),
+ PT(46, 4, 4, 3, FALSE),
+ PT(54, 48, 2, 0, TRUE),
+ PT(59, 33, 5, 2, TRUE),
+ PT(43, 63, 3, 1, TRUE),
+ PT(32, 19, 6, 0, TRUE),
+ PT(51, 12, 6, 0, FALSE),
+ PT(34, 43, 5, 1, TRUE),
+ PT(22, 2, 3, 3, FALSE),
+ PT(28, 18, 3, 2, FALSE),
+ PT(15, 60, 6, 3, FALSE),
+ PT(56, 16, 5, 2, TRUE),
+ PT(24, 47, 5, 2, TRUE),
+ PT(53, 59, 2, 0, TRUE),
+ PT(55, 49, 2, 1, TRUE),
+ PT(19, 61, 5, 3, TRUE),
+ PT(30, 44, 6, 1, TRUE),
+ PT(46, 55, 2, 1, FALSE),
+ PT(60, 31, 6, 1, TRUE),
+ PT(50, 42, 4, 3, TRUE),
+ PT(13, 59, 3, 2, FALSE),
+ PT(53, 42, 4, 3, TRUE),
+ PT( 9, 61, 4, 3, TRUE),
+ PT(18, 11, 3, 0, FALSE),
+ PT(12, 21, 3, 2, TRUE),
+ PT(32, 1, 3, 2, FALSE),
+ PT( 8, 59, 3, 2, FALSE),
+ PT(18, 55, 6, 1, TRUE),
+ PT(21, 3, 5, 2, FALSE),
+ PT(42, 59, 6, 0, TRUE),
+ PT(15, 4, 6, 2, TRUE),
+ PT( 8, 23, 6, 1, TRUE),
+ PT(56, 61, 5, 1, FALSE),
+ PT(47, 53, 2, 3, FALSE),
+ PT(16, 53, 2, 3, FALSE),
+ PT(35, 19, 5, 2, FALSE),
+ PT(47, 6, 4, 0, FALSE),
+ PT(39, 58, 4, 2, FALSE),
+ PT( 0, 28, 5, 1, FALSE),
+ PT( 3, 57, 3, 2, TRUE),
+ PT(40, 7, 3, 1, FALSE),
+ PT(32, 10, 6, 3, TRUE),
+ PT( 7, 53, 5, 2, TRUE),
+ PT(21, 47, 5, 2, FALSE),
+ PT(16, 44, 4, 1, TRUE),
+ PT(63, 41, 2, 2, FALSE),
+ PT(42, 33, 6, 3, FALSE),
+ PT(52, 26, 5, 2, FALSE),
+ PT(28, 61, 6, 1, TRUE),
+ PT(56, 43, 4, 1, FALSE),
+ PT(53, 40, 3, 3, TRUE),
+ PT(61, 15, 3, 2, FALSE),
+ PT(30, 62, 3, 1, TRUE),
+ PT(12, 62, 3, 3, TRUE),
+ PT(43, 49, 5, 2, FALSE),
+ PT(50, 57, 2, 0, TRUE),
+ PT( 5, 9, 2, 0, TRUE),
+ PT( 4, 56, 5, 1, FALSE),
+ PT(50, 0, 2, 3, FALSE),
+ PT(19, 11, 6, 0, TRUE),
+ PT(52, 42, 2, 1, TRUE),
+ PT(44, 34, 4, 0, TRUE),
+ PT(57, 47, 2, 2, TRUE),
+ PT(55, 40, 3, 3, FALSE),
+ PT( 7, 59, 5, 2, TRUE),
+ PT(17, 3, 5, 0, FALSE),
+ PT(45, 48, 3, 3, FALSE),
+ PT(49, 17, 2, 0, TRUE),
+ PT(35, 1, 3, 3, FALSE),
+ PT(61, 49, 6, 2, FALSE),
+ PT(28, 2, 6, 2, FALSE),
+ PT(33, 14, 4, 2, TRUE),
+ PT(61, 7, 2, 3, TRUE),
+ PT(51, 21, 2, 0, FALSE),
+ PT(41, 50, 6, 1, FALSE),
+ PT(24, 31, 6, 0, FALSE),
+ PT(45, 59, 6, 0, FALSE),
+ PT(39, 62, 2, 3, FALSE),
+ PT(49, 21, 2, 1, FALSE),
+ PT(48, 37, 2, 3, TRUE),
+ PT(51, 6, 6, 2, FALSE),
+ PT( 0, 41, 3, 0, FALSE),
+ PT(60, 3, 2, 1, FALSE),
+ PT(44, 12, 2, 0, TRUE),
+ PT( 9, 48, 6, 0, FALSE),
+ PT(16, 14, 2, 0, TRUE),
+ PT(39, 22, 3, 1, TRUE),
+ PT(12, 59, 5, 3, FALSE),
+ PT(43, 51, 3, 3, FALSE),
+ PT(19, 45, 5, 2, TRUE),
+ PT(17, 36, 5, 0, TRUE),
+ PT(52, 62, 5, 1, TRUE),
+ PT(36, 30, 4, 0, TRUE),
+ PT(39, 26, 5, 2, TRUE),
+ PT( 4, 57, 2, 3, FALSE),
+ PT(62, 51, 4, 3, FALSE),
+ PT(27, 46, 4, 2, TRUE),
+ PT(12, 6, 3, 0, TRUE),
+ PT(37, 25, 3, 0, FALSE),
+ PT(29, 51, 6, 1, TRUE),
+ PT(29, 40, 5, 2, TRUE),
+ PT(28, 16, 5, 1, FALSE),
+ PT(31, 53, 3, 3, FALSE),
+ PT(52, 2, 2, 0, FALSE),
+ PT(43, 58, 2, 2, FALSE),
+ PT(13, 11, 2, 2, TRUE),
+ PT(12, 44, 2, 0, FALSE),
+ PT(55, 58, 3, 0, TRUE),
+ PT( 6, 19, 2, 3, TRUE),
+ PT(36, 16, 4, 2, TRUE),
+ PT(36, 4, 3, 3, FALSE),
+ PT( 0, 53, 6, 2, FALSE),
+ PT(58, 0, 6, 3, TRUE),
+ PT(60, 7, 3, 1, FALSE),
+ PT(43, 40, 6, 3, FALSE),
+ PT(52, 57, 5, 3, TRUE),
+ PT(40, 9, 3, 3, TRUE),
+ PT(56, 49, 6, 0, FALSE),
+ PT(22, 37, 6, 0, TRUE),
+ PT(24, 40, 6, 0, TRUE),
+ PT(24, 12, 4, 1, FALSE),
+ PT( 6, 57, 5, 2, TRUE),
+ PT(61, 32, 4, 2, FALSE),
+ PT(46, 39, 4, 0, TRUE),
+ PT(62, 24, 3, 0, FALSE),
+ PT(21, 60, 4, 2, FALSE),
+ PT( 6, 27, 4, 3, FALSE),
+ PT(21, 14, 4, 1, FALSE),
+ PT(10, 13, 3, 3, TRUE),
+ PT(24, 22, 6, 2, FALSE),
+ PT(16, 40, 4, 0, TRUE),
+ PT(32, 17, 2, 0, TRUE),
+ PT(54, 50, 2, 2, TRUE),
+ PT(59, 46, 4, 2, FALSE),
+ PT(31, 45, 2, 1, FALSE),
+ PT(54, 46, 4, 0, FALSE),
+ PT(11, 23, 6, 1, TRUE),
+ PT(38, 3, 3, 3, TRUE),
+ PT( 8, 25, 6, 0, TRUE),
+ PT(42, 24, 4, 2, TRUE),
+ PT(53, 45, 5, 2, TRUE),
+ PT(48, 56, 3, 0, FALSE),
+ PT(28, 37, 2, 2, FALSE),
+ PT(28, 34, 5, 0, FALSE),
+ PT( 8, 35, 4, 0, TRUE),
+ PT(38, 30, 6, 0, FALSE),
+ PT(25, 15, 2, 2, TRUE),
+ PT(16, 47, 4, 1, FALSE),
+ PT(18, 2, 4, 2, TRUE),
+ PT(60, 1, 3, 2, TRUE),
+ PT(14, 20, 3, 0, FALSE),
+ PT(13, 24, 2, 3, TRUE),
+ PT(34, 11, 6, 0, TRUE),
+ PT(19, 52, 4, 0, TRUE),
+ PT(15, 45, 6, 3, FALSE),
+ PT(57, 31, 4, 2, TRUE),
+ PT(24, 16, 3, 3, TRUE),
+ PT(45, 32, 4, 0, FALSE),
+ PT(25, 11, 6, 0, TRUE),
+ PT(51, 19, 2, 2, FALSE),
+ PT(46, 17, 4, 0, TRUE),
+ PT(45, 10, 6, 3, TRUE),
+ PT( 7, 21, 3, 1, TRUE),
+ PT(50, 4, 6, 1, FALSE),
+ PT( 6, 24, 3, 1, TRUE),
+ PT(19, 36, 2, 1, FALSE),
+ PT(54, 34, 2, 3, FALSE),
+ PT(29, 41, 3, 2, FALSE),
+ PT(53, 23, 4, 0, TRUE),
+ PT(54, 23, 5, 1, TRUE),
+ PT(53, 50, 3, 0, TRUE),
+ PT(42, 15, 5, 3, FALSE),
+ PT(16, 0, 6, 2, FALSE),
+ PT( 2, 14, 5, 0, FALSE),
+ PT(49, 50, 6, 1, FALSE),
+ PT(59, 5, 4, 0, FALSE),
+ PT(54, 38, 2, 1, FALSE),
+ PT(52, 6, 6, 2, FALSE),
+ PT(30, 49, 6, 1, FALSE),
+ PT(53, 5, 6, 2, FALSE),
+ PT(30, 19, 2, 2, TRUE),
+ PT(21, 20, 5, 2, FALSE),
+ PT(41, 28, 3, 0, FALSE),
+ PT(36, 36, 2, 1, FALSE),
+ PT(34, 41, 3, 0, FALSE),
+ PT(52, 54, 6, 0, FALSE),
+ PT(30, 1, 4, 1, TRUE),
+ PT(12, 60, 4, 2, FALSE),
+ PT(10, 61, 2, 3, FALSE),
+ PT(39, 30, 4, 1, TRUE),
+ PT(21, 2, 2, 1, FALSE),
+ PT(17, 25, 5, 1, FALSE),
+ PT(29, 49, 2, 2, TRUE),
+ PT( 3, 59, 5, 1, FALSE),
+ PT(33, 25, 5, 2, FALSE),
+ PT(10, 35, 2, 0, TRUE),
+ PT(37, 17, 3, 1, FALSE),
+ PT(26, 10, 6, 2, FALSE),
+ PT(59, 11, 6, 1, TRUE),
+ PT(33, 11, 6, 3, TRUE),
+ PT( 1, 49, 5, 0, FALSE),
+ PT(53, 29, 4, 3, TRUE),
+ PT(44, 48, 6, 0, TRUE),
+ PT(46, 57, 5, 2, TRUE),
+ PT(48, 5, 5, 2, FALSE),
+ PT(18, 42, 5, 1, TRUE),
+ PT(57, 34, 4, 0, FALSE),
+ PT(21, 52, 3, 2, FALSE),
+ PT(28, 1, 2, 2, TRUE),
+ PT(32, 22, 4, 1, FALSE),
+ PT(19, 4, 3, 0, FALSE),
+ PT(30, 19, 2, 0, FALSE),
+ PT(37, 51, 2, 2, TRUE),
+ PT(57, 3, 6, 0, TRUE),
+ PT(63, 54, 3, 0, FALSE),
+ PT(20, 35, 2, 0, FALSE),
+ PT(47, 30, 3, 3, TRUE),
+ PT(31, 23, 5, 2, FALSE),
+ PT( 2, 22, 6, 0, TRUE),
+ PT(32, 24, 6, 0, FALSE),
+ PT(46, 24, 6, 3, TRUE),
+ PT(59, 14, 6, 0, FALSE),
+ PT(16, 57, 4, 2, FALSE),
+ PT(38, 57, 3, 3, FALSE),
+ PT(48, 38, 5, 3, FALSE),
+ PT(18, 1, 2, 2, FALSE),
+ PT(55, 42, 5, 3, FALSE),
+ PT(33, 6, 3, 2, TRUE),
+ PT(42, 22, 6, 1, FALSE),
+ PT( 9, 56, 3, 2, FALSE),
+ PT( 7, 34, 2, 3, TRUE),
+ PT(59, 45, 2, 2, TRUE),
+ PT( 7, 30, 5, 3, FALSE),
+ PT(27, 46, 3, 2, TRUE),
+ PT( 4, 9, 6, 0, FALSE),
+ PT(48, 45, 6, 3, TRUE),
+ PT(45, 52, 4, 2, FALSE),
+ PT(24, 36, 4, 2, TRUE),
+ PT(14, 45, 4, 3, FALSE),
+ PT(35, 10, 2, 3, FALSE),
+ PT(18, 45, 2, 0, TRUE),
+ PT(33, 40, 5, 3, FALSE),
+ PT(15, 1, 4, 0, TRUE),
+ PT( 1, 49, 2, 1, FALSE),
+ PT(63, 27, 3, 3, FALSE),
+ PT(33, 37, 5, 1, TRUE),
+ PT(38, 24, 2, 1, TRUE),
+ PT(21, 45, 6, 2, FALSE),
+ PT(35, 33, 6, 3, FALSE),
+ PT(14, 46, 3, 2, FALSE),
+ PT(20, 34, 3, 2, FALSE),
+ PT(44, 11, 5, 0, FALSE),
+ PT(26, 24, 4, 0, TRUE),
+ PT(33, 7, 3, 1, FALSE),
+ PT(36, 38, 5, 0, TRUE),
+ PT(43, 10, 6, 2, FALSE),
+ PT(62, 39, 6, 1, TRUE),
+ PT(18, 52, 3, 1, TRUE),
+ PT(31, 1, 5, 1, FALSE),
+ PT(46, 6, 4, 1, TRUE),
+ PT(47, 31, 2, 2, FALSE),
+ PT(24, 6, 4, 3, FALSE),
+ PT(49, 31, 5, 1, TRUE),
+ PT(34, 38, 5, 3, FALSE),
+ PT(30, 21, 2, 3, FALSE),
+ PT(32, 34, 5, 0, FALSE),
+ PT(21, 55, 2, 1, FALSE),
+ PT(37, 4, 5, 2, FALSE),
+ PT(31, 4, 5, 3, FALSE),
+ PT(12, 19, 3, 0, FALSE),
+ PT( 7, 11, 6, 3, FALSE),
+ PT(29, 28, 5, 1, FALSE),
+ PT(48, 34, 3, 2, FALSE),
+ PT(46, 18, 5, 3, TRUE),
+ PT(43, 33, 3, 3, FALSE),
+ PT(22, 56, 6, 0, FALSE),
+ PT( 4, 2, 2, 3, FALSE),
+ PT( 5, 20, 4, 0, FALSE),
+ PT(56, 60, 6, 1, TRUE),
+ PT(33, 27, 5, 3, TRUE),
+ PT(20, 42, 4, 3, TRUE),
+ PT(56, 20, 3, 1, TRUE),
+ PT(43, 31, 5, 1, TRUE),
+ PT(41, 43, 4, 2, TRUE),
+ PT(39, 54, 4, 0, TRUE),
+ PT(17, 34, 3, 1, TRUE),
+ PT(41, 3, 3, 1, TRUE),
+ PT(24, 36, 5, 0, FALSE),
+ PT(33, 45, 6, 3, FALSE),
+ PT(60, 44, 4, 2, FALSE),
+ PT(51, 23, 3, 3, TRUE),
+ PT(42, 58, 4, 0, TRUE),
+ PT(10, 35, 6, 3, TRUE),
+ PT( 0, 11, 4, 0, TRUE),
+ PT(17, 56, 3, 0, TRUE),
+ PT(15, 14, 3, 2, FALSE),
+ PT(31, 15, 6, 3, TRUE),
+ PT(60, 16, 6, 3, TRUE),
+ PT(56, 49, 6, 2, TRUE),
+ PT( 7, 21, 5, 0, FALSE),
+ PT(30, 46, 3, 0, TRUE),
+ PT(38, 16, 6, 1, TRUE),
+ PT(61, 53, 5, 3, TRUE),
+ PT(58, 4, 6, 2, FALSE),
+ PT(13, 24, 3, 1, FALSE),
+ PT( 1, 45, 2, 2, TRUE),
+ PT(61, 26, 2, 3, TRUE),
+ PT(23, 63, 6, 1, FALSE),
+ PT(11, 33, 2, 0, TRUE),
+ PT(30, 38, 5, 1, TRUE),
+ PT(13, 25, 4, 2, FALSE),
+ PT(46, 4, 3, 1, TRUE),
+ PT(27, 51, 4, 0, FALSE),
+ PT(21, 33, 3, 2, TRUE),
+ PT(31, 4, 4, 0, TRUE),
+ PT(15, 18, 3, 3, TRUE),
+ PT(45, 42, 6, 1, FALSE),
+ PT( 3, 55, 3, 3, TRUE),
+ PT(53, 7, 4, 3, TRUE),
+ PT(36, 31, 6, 0, TRUE),
+ PT(47, 48, 2, 2, TRUE),
+ PT( 6, 0, 4, 2, FALSE),
+ PT(11, 34, 3, 1, FALSE),
+ PT(12, 59, 5, 0, TRUE),
+ PT(20, 26, 2, 3, TRUE),
+ PT(55, 32, 4, 2, TRUE),
+ PT(63, 38, 6, 3, TRUE),
+ PT(58, 62, 2, 0, FALSE),
+ PT(34, 4, 2, 0, TRUE),
+ PT(40, 18, 3, 2, FALSE),
+ PT( 3, 46, 5, 3, FALSE),
+ PT(14, 56, 5, 0, FALSE),
+ PT( 1, 41, 4, 1, FALSE),
+ PT(30, 51, 3, 0, TRUE),
+ PT( 6, 33, 4, 3, TRUE),
+ PT(51, 25, 3, 1, FALSE),
+ PT( 2, 5, 2, 3, TRUE),
+ PT(17, 17, 5, 2, FALSE),
+ PT(31, 38, 3, 3, FALSE),
+ PT(57, 31, 5, 0, FALSE),
+ PT(46, 47, 2, 1, FALSE),
+ PT(34, 52, 2, 1, TRUE),
+ PT(59, 38, 5, 3, TRUE),
+ PT(52, 0, 2, 2, FALSE),
+ PT(16, 49, 2, 0, TRUE),
+ PT(29, 45, 5, 1, FALSE),
+ PT( 8, 8, 6, 3, TRUE),
+ PT(21, 24, 6, 2, FALSE),
+ PT( 4, 43, 4, 2, FALSE),
+ PT(47, 30, 4, 3, TRUE),
+ PT(34, 42, 4, 2, FALSE),
+ PT( 7, 20, 4, 2, TRUE),
+ PT( 1, 39, 3, 0, TRUE),
+ PT(41, 10, 5, 0, TRUE),
+ PT(61, 28, 5, 3, TRUE),
+ PT(13, 31, 3, 2, FALSE),
+ PT(36, 61, 6, 1, FALSE),
+ PT(54, 29, 4, 2, FALSE),
+ PT(20, 33, 2, 3, FALSE),
+ PT(26, 13, 5, 0, TRUE),
+ PT(63, 43, 5, 1, FALSE),
+ PT(26, 62, 6, 2, TRUE),
+ PT(17, 40, 3, 0, FALSE),
+ PT(50, 5, 2, 2, TRUE),
+ PT(33, 46, 6, 2, FALSE),
+ PT(45, 20, 5, 1, FALSE),
+ PT(60, 8, 6, 3, TRUE),
+ PT(63, 52, 3, 3, FALSE),
+ PT(39, 36, 3, 2, FALSE),
+ PT(22, 22, 6, 1, TRUE),
+ PT(41, 59, 3, 0, TRUE),
+ PT(54, 47, 3, 2, FALSE),
+ PT( 3, 37, 5, 2, FALSE),
+ PT(11, 22, 6, 3, FALSE),
+ PT(28, 29, 3, 1, TRUE),
+ PT(44, 39, 3, 1, TRUE),
+ PT(11, 31, 5, 1, TRUE),
+ PT( 8, 16, 4, 3, TRUE),
+ PT(63, 37, 5, 3, TRUE),
+ PT(51, 19, 3, 3, TRUE),
+ PT( 4, 49, 6, 3, TRUE),
+ PT(14, 47, 2, 1, FALSE),
+ PT( 8, 35, 4, 0, FALSE),
+ PT(58, 26, 3, 3, FALSE),
+ PT(47, 11, 3, 3, TRUE),
+ PT(30, 32, 3, 0, TRUE),
+ PT(35, 59, 2, 2, FALSE),
+ PT(37, 0, 4, 3, TRUE),
+ PT(20, 4, 4, 2, TRUE),
+ PT(54, 26, 5, 1, TRUE),
+ PT(39, 33, 2, 2, TRUE),
+ PT(40, 19, 5, 2, FALSE),
+ PT(14, 60, 6, 2, TRUE),
+ PT(12, 45, 5, 1, TRUE),
+ PT(55, 22, 2, 2, TRUE),
+ PT(41, 21, 3, 2, TRUE),
+ PT(23, 52, 6, 3, FALSE),
+ PT( 9, 10, 6, 0, TRUE),
+ PT(55, 34, 5, 0, FALSE),
+ PT(23, 43, 6, 2, TRUE),
+ PT(20, 43, 2, 1, FALSE),
+ PT( 8, 19, 3, 3, TRUE),
+ PT(49, 19, 5, 0, FALSE),
+ PT( 6, 7, 6, 2, TRUE),
+ PT(35, 58, 5, 0, TRUE),
+ PT(15, 36, 5, 3, FALSE),
+ PT( 7, 53, 4, 3, FALSE),
+ PT(14, 18, 2, 2, TRUE),
+ PT(35, 51, 5, 2, FALSE),
+ PT(14, 33, 4, 3, FALSE),
+ PT(28, 18, 4, 2, TRUE),
+ PT(35, 29, 5, 3, TRUE),
+ PT( 4, 53, 6, 1, TRUE),
+ PT(22, 1, 4, 2, FALSE),
+ PT(61, 44, 5, 3, FALSE),
+ PT(53, 10, 4, 2, TRUE),
+ PT(17, 19, 4, 2, TRUE),
+ PT(27, 27, 2, 2, TRUE),
+ PT(21, 57, 2, 0, FALSE),
+ PT(11, 53, 4, 2, FALSE),
+ PT(58, 39, 6, 0, FALSE),
+ PT(46, 47, 2, 2, TRUE),
+ PT(16, 31, 6, 2, TRUE),
+ PT(27, 40, 6, 2, TRUE),
+ PT(38, 48, 6, 3, TRUE),
+ PT(52, 55, 5, 1, TRUE),
+ PT(15, 48, 5, 0, TRUE),
+ PT(46, 63, 5, 1, TRUE),
+ PT(56, 52, 5, 1, TRUE),
+ PT(43, 47, 4, 2, TRUE),
+ PT(13, 40, 5, 1, FALSE),
+ PT(51, 24, 2, 0, FALSE),
+ PT(33, 18, 2, 0, TRUE),
+ PT(31, 34, 6, 2, FALSE),
+ PT(17, 37, 4, 1, TRUE),
+ PT(33, 63, 2, 0, TRUE),
+ PT(38, 39, 4, 2, TRUE),
+ PT(40, 54, 2, 1, FALSE),
+ PT(21, 38, 6, 1, FALSE),
+ PT(17, 24, 4, 2, FALSE),
+ PT(50, 37, 6, 3, TRUE),
+ PT(39, 58, 6, 1, TRUE),
+ PT(53, 7, 3, 2, FALSE),
+ PT(26, 14, 5, 1, FALSE),
+ PT(30, 47, 3, 3, TRUE),
+ PT( 0, 46, 4, 0, TRUE),
+ PT(27, 60, 2, 2, FALSE),
+ PT(47, 58, 5, 3, TRUE),
+ PT(62, 56, 2, 2, TRUE),
+ PT(26, 19, 5, 3, TRUE),
+ PT(41, 13, 5, 3, TRUE),
+ PT(55, 23, 3, 0, FALSE),
+ PT(48, 28, 6, 2, TRUE),
+ PT(21, 52, 2, 2, FALSE),
+ PT(40, 17, 5, 2, FALSE),
+ PT(44, 37, 5, 1, FALSE),
+ PT(32, 63, 5, 0, FALSE),
+ PT(12, 52, 3, 1, TRUE),
+ PT(48, 46, 4, 2, TRUE),
+ PT(55, 28, 4, 2, FALSE),
+ PT(31, 37, 4, 3, FALSE),
+ PT(12, 25, 6, 2, FALSE),
+ PT(24, 16, 6, 2, TRUE),
+ PT(10, 19, 2, 0, TRUE),
+ PT(37, 19, 4, 0, FALSE),
+ PT(19, 25, 2, 0, TRUE),
+ PT(32, 40, 3, 2, TRUE),
+ PT(62, 48, 3, 1, TRUE),
+ PT(35, 36, 4, 0, TRUE),
+ PT(13, 35, 4, 1, TRUE),
+ PT(29, 40, 5, 3, FALSE),
+ PT(45, 18, 3, 3, TRUE),
+ PT(14, 46, 5, 1, TRUE),
+ PT(11, 49, 6, 1, FALSE),
+ PT(36, 60, 5, 2, FALSE),
+ PT(19, 60, 2, 1, FALSE),
+ PT(40, 22, 5, 1, FALSE),
+ PT( 5, 12, 6, 1, FALSE),
+ PT(57, 11, 6, 1, FALSE),
+ PT(33, 4, 2, 2, FALSE),
+ PT(16, 49, 6, 1, FALSE),
+ PT(18, 31, 4, 1, TRUE),
+ PT(57, 46, 5, 3, FALSE),
+ PT(34, 61, 4, 3, TRUE),
+ PT(12, 30, 3, 0, FALSE),
+ PT(37, 0, 2, 3, TRUE),
+ PT( 6, 49, 2, 2, FALSE),
+ PT(19, 33, 3, 1, FALSE),
+ PT(20, 32, 6, 2, TRUE),
+ PT(10, 59, 4, 2, TRUE),
+ PT(51, 8, 5, 0, FALSE),
+ PT(61, 2, 6, 1, TRUE),
+ PT(35, 0, 2, 1, TRUE),
+ PT(34, 33, 5, 0, FALSE),
+ PT(48, 20, 5, 3, FALSE),
+ PT(20, 50, 6, 3, FALSE),
+ PT(57, 35, 3, 3, FALSE),
+ PT(28, 17, 6, 0, FALSE),
+ PT(55, 22, 6, 0, FALSE),
+ PT(21, 49, 3, 3, TRUE),
+ PT(52, 40, 5, 2, FALSE),
+ PT(53, 5, 5, 0, TRUE),
+ PT(55, 51, 5, 1, FALSE),
+ PT(28, 23, 5, 3, FALSE),
+ PT(16, 6, 2, 3, FALSE),
+ PT(50, 31, 5, 3, TRUE),
+ PT( 0, 41, 3, 3, FALSE),
+ PT( 4, 1, 2, 3, FALSE),
+ PT(59, 35, 3, 3, FALSE),
+ PT(27, 52, 5, 1, FALSE),
+ PT(48, 17, 5, 1, TRUE),
+ PT( 3, 0, 3, 3, TRUE),
+ PT(29, 55, 3, 1, FALSE),
+ PT(58, 24, 4, 2, TRUE),
+ PT(28, 22, 5, 2, FALSE),
+ PT( 4, 63, 6, 1, TRUE),
+ PT(38, 35, 5, 2, TRUE),
+ PT(21, 44, 4, 3, TRUE),
+ PT( 2, 53, 4, 3, TRUE),
+ PT( 7, 53, 6, 1, TRUE),
+ PT(26, 12, 2, 0, FALSE),
+ PT(40, 38, 5, 2, FALSE),
+ PT(47, 54, 2, 3, FALSE),
+ PT(55, 11, 4, 3, TRUE),
+ PT(27, 61, 3, 0, FALSE),
+ PT(39, 31, 4, 0, FALSE),
+ PT(43, 42, 6, 1, TRUE),
+ PT(11, 15, 4, 0, FALSE),
+ PT(53, 60, 5, 3, TRUE),
+ PT(51, 33, 2, 2, TRUE),
+ PT(45, 38, 6, 2, FALSE),
+ PT(31, 26, 4, 0, TRUE),
+ PT(47, 44, 5, 1, FALSE),
+ PT(26, 50, 3, 1, FALSE),
+ PT(59, 63, 4, 0, TRUE),
+ PT(19, 63, 2, 1, TRUE),
+ PT(15, 36, 4, 1, FALSE),
+ PT(20, 27, 2, 0, FALSE),
+ PT(33, 6, 5, 0, FALSE),
+ PT(37, 52, 2, 0, FALSE),
+ PT(46, 14, 2, 2, FALSE),
+ PT(60, 62, 4, 2, TRUE),
+ PT(22, 6, 6, 0, FALSE),
+ PT(11, 4, 3, 3, TRUE),
+ PT(62, 2, 4, 2, FALSE),
+ PT(12, 23, 4, 2, TRUE),
+ PT(43, 60, 5, 2, TRUE),
+ PT(21, 54, 6, 1, TRUE),
+ PT(24, 35, 5, 1, FALSE),
+ PT(29, 16, 5, 1, FALSE),
+ PT(53, 23, 5, 0, FALSE),
+ PT( 0, 55, 4, 2, FALSE),
+ PT(10, 59, 2, 2, TRUE),
+ PT(29, 11, 3, 3, TRUE),
+ PT(60, 49, 4, 2, TRUE),
+ PT(29, 15, 3, 2, TRUE),
+ PT(32, 19, 6, 2, FALSE),
+ PT(17, 43, 5, 3, FALSE),
+ PT(35, 12, 5, 3, FALSE),
+ PT(36, 2, 2, 2, FALSE),
+ PT(49, 22, 3, 0, TRUE),
+ PT(14, 35, 6, 2, TRUE),
+ PT(26, 16, 2, 3, FALSE),
+ PT(20, 4, 3, 0, TRUE),
+ PT(45, 39, 6, 3, TRUE),
+ PT(51, 2, 6, 0, TRUE),
+ PT( 2, 4, 2, 3, FALSE),
+ PT(13, 34, 4, 2, TRUE),
+ PT(37, 0, 2, 3, FALSE),
+ PT(42, 63, 4, 3, FALSE),
+ PT(32, 12, 2, 1, FALSE),
+ PT(47, 46, 6, 2, TRUE),
+ PT(27, 13, 4, 1, FALSE),
+ PT(30, 1, 6, 2, FALSE),
+ PT( 5, 34, 4, 0, TRUE),
+ PT(52, 42, 6, 1, FALSE),
+ PT(11, 9, 3, 2, TRUE),
+ PT(63, 50, 5, 3, TRUE),
+ PT(61, 24, 5, 2, TRUE),
+ PT(11, 56, 6, 3, FALSE),
+ PT(57, 23, 5, 0, FALSE),
+ PT(52, 4, 4, 2, FALSE),
+ PT(54, 14, 5, 1, FALSE),
+ PT(56, 1, 2, 2, FALSE),
+ PT(60, 36, 4, 1, FALSE),
+ PT(33, 3, 3, 0, FALSE),
+ PT(50, 47, 2, 1, FALSE),
+ PT(41, 36, 6, 0, TRUE),
+ PT(10, 59, 2, 1, FALSE),
+ PT(26, 28, 4, 0, FALSE),
+ PT(48, 49, 3, 1, TRUE),
+ PT(26, 33, 2, 0, FALSE),
+ PT( 5, 41, 2, 0, FALSE),
+ PT(38, 45, 2, 1, TRUE),
+ PT(22, 12, 3, 2, TRUE),
+ PT(43, 6, 3, 1, TRUE),
+ PT( 6, 18, 2, 2, FALSE),
+ PT(56, 15, 6, 2, TRUE),
+ PT(35, 58, 5, 2, FALSE),
+ PT( 0, 25, 6, 1, TRUE),
+ PT(41, 20, 5, 2, TRUE),
+ PT(42, 33, 5, 0, TRUE),
+ PT(20, 49, 2, 2, FALSE),
+ PT(26, 6, 3, 3, FALSE),
+ PT(24, 27, 5, 0, FALSE),
+ PT(59, 22, 5, 0, TRUE),
+ PT(21, 30, 2, 1, FALSE),
+ PT(52, 10, 2, 2, FALSE),
+ PT(27, 5, 4, 3, TRUE),
+ PT(11, 1, 4, 3, FALSE),
+ PT(42, 34, 6, 2, TRUE),
+ PT(33, 32, 3, 0, FALSE),
+ PT(32, 55, 2, 3, TRUE),
+ PT(20, 31, 2, 0, TRUE),
+ PT(29, 17, 4, 2, TRUE),
+ PT(36, 43, 5, 3, TRUE),
+ PT( 7, 63, 3, 3, TRUE),
+ PT(44, 37, 4, 2, TRUE),
+ PT(42, 41, 3, 0, FALSE),
+ PT(17, 36, 5, 0, FALSE),
+ PT(49, 44, 5, 1, FALSE),
+ PT(57, 11, 4, 3, FALSE),
+ PT(40, 16, 4, 3, FALSE),
+ PT(34, 6, 2, 3, FALSE),
+ PT( 9, 44, 2, 1, TRUE),
+ PT(52, 25, 2, 2, TRUE),
+ PT(58, 18, 4, 0, TRUE),
+ PT(29, 56, 4, 1, TRUE),
+ PT(18, 37, 4, 2, FALSE),
+ PT(33, 48, 2, 1, FALSE),
+ PT(55, 26, 2, 1, FALSE),
+ PT(36, 59, 4, 2, TRUE),
+ PT(50, 21, 4, 1, TRUE),
+ PT(13, 26, 2, 0, FALSE),
+ PT(22, 46, 4, 3, FALSE),
+ PT(29, 20, 2, 3, FALSE),
+ PT(62, 46, 3, 3, TRUE),
+ PT(10, 22, 2, 0, FALSE),
+ PT(29, 48, 5, 1, TRUE),
+ PT( 4, 58, 3, 0, TRUE),
+ PT( 8, 45, 5, 3, FALSE),
+ PT(40, 30, 6, 1, TRUE),
+ PT(10, 18, 5, 3, FALSE),
+ PT(13, 3, 5, 3, TRUE),
+ PT(38, 58, 3, 3, FALSE),
+ PT(53, 59, 5, 1, FALSE),
+ PT( 3, 26, 3, 0, FALSE),
+ PT(63, 11, 4, 3, TRUE),
+ PT( 4, 5, 6, 2, FALSE),
+ PT(54, 11, 4, 3, TRUE),
+ PT(59, 23, 2, 0, TRUE),
+ PT(13, 39, 4, 3, FALSE),
+ PT(44, 31, 4, 0, FALSE),
+ PT(38, 16, 4, 0, FALSE),
+ PT(37, 35, 5, 2, TRUE),
+ PT(55, 9, 2, 1, TRUE),
+ PT(20, 23, 5, 2, TRUE),
+ PT(46, 61, 4, 1, TRUE),
+ PT(29, 26, 3, 3, TRUE),
+ PT(33, 51, 5, 3, FALSE),
+ PT(40, 23, 2, 1, TRUE),
+ PT(38, 60, 6, 3, FALSE),
+ PT(20, 26, 6, 1, TRUE),
+ PT(50, 32, 5, 1, TRUE),
+ PT(25, 62, 4, 0, FALSE),
+ PT(12, 2, 5, 2, TRUE),
+ PT(60, 60, 5, 1, FALSE),
+ PT(48, 48, 5, 0, FALSE),
+ PT(37, 63, 3, 3, FALSE),
+ PT( 3, 23, 3, 3, FALSE),
+ PT(53, 17, 3, 2, FALSE),
+ PT(27, 20, 5, 1, FALSE),
+ PT(40, 58, 4, 1, TRUE),
+ PT(14, 31, 2, 1, FALSE),
+ PT(54, 33, 4, 0, FALSE),
+ PT( 7, 59, 2, 0, FALSE),
+ PT(35, 25, 6, 2, FALSE),
+ PT(13, 46, 3, 0, FALSE),
+ PT(63, 32, 4, 2, TRUE),
+ PT(62, 59, 2, 2, TRUE),
+ PT(11, 46, 2, 1, FALSE),
+ PT(55, 11, 4, 1, TRUE),
+ PT(61, 50, 3, 3, TRUE),
+ PT(22, 3, 4, 3, TRUE),
+ PT(20, 12, 4, 0, TRUE),
+ PT(24, 3, 6, 0, FALSE),
+ PT(62, 33, 2, 1, TRUE),
+ PT(15, 0, 6, 1, FALSE),
+ PT(63, 35, 2, 3, FALSE),
+ PT(14, 49, 3, 2, TRUE),
+ PT(24, 28, 3, 2, TRUE),
+ PT(48, 14, 3, 3, FALSE),
+ PT(33, 32, 4, 1, TRUE),
+ PT(63, 12, 3, 3, FALSE),
+ PT(20, 51, 4, 1, FALSE),
+ PT(34, 33, 2, 2, TRUE),
+ PT(54, 5, 3, 3, FALSE),
+ PT(29, 49, 2, 2, FALSE),
+ PT(32, 17, 6, 3, TRUE),
+ PT(13, 51, 3, 0, TRUE),
+ PT(37, 5, 6, 3, FALSE),
+ PT(30, 49, 4, 0, FALSE),
+ PT(53, 58, 5, 3, TRUE),
+ PT(50, 47, 6, 0, FALSE),
+ PT(20, 35, 5, 2, TRUE),
+ PT(53, 30, 5, 0, TRUE),
+ PT( 5, 5, 3, 1, TRUE),
+ PT( 9, 31, 4, 3, FALSE),
+ PT(47, 11, 2, 2, TRUE),
+ PT(21, 17, 2, 1, TRUE),
+ PT(41, 27, 3, 0, FALSE),
+ PT(28, 19, 6, 2, TRUE),
+ PT(52, 49, 4, 1, TRUE),
+ PT(39, 63, 5, 3, TRUE),
+ PT( 9, 48, 3, 0, TRUE),
+ PT(35, 18, 6, 2, FALSE),
+ PT( 2, 42, 4, 0, TRUE),
+ PT( 9, 60, 3, 2, TRUE),
+ PT(12, 2, 2, 0, FALSE),
+ PT(34, 5, 2, 3, TRUE),
+ PT(34, 8, 3, 1, TRUE),
+ PT(10, 15, 2, 2, TRUE),
+ PT( 2, 17, 2, 1, TRUE),
+ PT( 1, 33, 4, 1, FALSE),
+ PT(22, 57, 6, 1, TRUE),
+ PT(36, 56, 6, 2, FALSE),
+ PT(15, 30, 5, 1, TRUE),
+ PT(43, 21, 2, 2, TRUE),
+ PT(32, 34, 5, 3, FALSE),
+ PT(58, 63, 6, 0, TRUE),
+ PT(26, 39, 5, 1, TRUE),
+ PT(41, 52, 2, 2, FALSE),
+ PT(22, 57, 5, 3, TRUE),
+ PT(19, 62, 2, 3, FALSE),
+ PT(54, 33, 6, 0, FALSE),
+ PT( 0, 36, 5, 1, TRUE),
+ PT(36, 33, 6, 0, FALSE),
+ PT(21, 49, 2, 1, TRUE),
+ PT(16, 55, 4, 2, FALSE),
+ PT( 8, 7, 4, 1, TRUE),
+ PT(33, 9, 4, 2, TRUE),
+ PT( 5, 60, 6, 1, FALSE),
+ PT(25, 3, 4, 2, TRUE),
+ PT(15, 41, 5, 1, TRUE),
+ PT(22, 7, 2, 1, TRUE),
+ PT(62, 61, 4, 2, TRUE),
+ PT(54, 11, 5, 0, FALSE),
+ PT(46, 43, 2, 3, FALSE),
+ PT(12, 49, 2, 0, TRUE),
+ PT(48, 19, 5, 2, TRUE),
+ PT(38, 62, 6, 3, TRUE),
+ PT(41, 47, 5, 3, FALSE),
+ PT(21, 61, 2, 3, TRUE),
+ PT(28, 46, 4, 0, TRUE),
+ PT(51, 47, 2, 0, FALSE),
+ PT(13, 5, 3, 2, TRUE),
+ PT(28, 26, 2, 1, FALSE),
+ PT(14, 24, 6, 3, TRUE),
+ PT(27, 17, 2, 2, FALSE),
+ PT( 6, 20, 4, 0, TRUE),
+ PT(49, 14, 4, 3, TRUE),
+ PT(26, 3, 2, 0, FALSE),
+ PT( 0, 52, 6, 0, TRUE),
+ PT(63, 11, 3, 2, TRUE),
+ PT(15, 18, 3, 3, TRUE),
+ PT(26, 21, 2, 0, FALSE),
+ PT(15, 0, 4, 2, FALSE),
+ PT(62, 10, 5, 1, FALSE),
+ PT(48, 43, 4, 2, FALSE),
+ PT(38, 49, 2, 0, FALSE),
+ PT(45, 47, 5, 3, TRUE),
+ PT(63, 12, 2, 1, TRUE),
+ PT(18, 11, 2, 3, FALSE),
+ PT(21, 7, 3, 3, TRUE),
+ PT(40, 16, 6, 1, FALSE),
+ PT(15, 23, 2, 2, TRUE),
+ PT(11, 39, 6, 1, TRUE),
+ PT(52, 29, 2, 0, FALSE),
+ PT(28, 58, 2, 1, FALSE),
+ PT(44, 39, 6, 3, TRUE),
+ PT(10, 26, 6, 1, FALSE),
+ PT( 5, 31, 4, 0, TRUE),
+ PT(36, 13, 3, 3, TRUE),
+ PT(28, 23, 4, 2, FALSE),
+ PT(47, 59, 6, 1, FALSE),
+ PT(59, 37, 2, 0, FALSE),
+ PT( 3, 47, 4, 0, TRUE),
+ PT(12, 16, 4, 1, TRUE),
+ PT(14, 58, 5, 2, FALSE),
+ PT(51, 3, 5, 2, FALSE),
+ PT(18, 6, 3, 2, FALSE),
+ PT(42, 55, 6, 0, FALSE),
+ PT(63, 1, 3, 3, FALSE),
+ PT(53, 22, 6, 3, TRUE),
+ PT(44, 50, 6, 2, TRUE),
+ PT( 5, 17, 4, 1, FALSE),
+ PT(41, 9, 4, 0, FALSE),
+ PT(43, 13, 3, 3, TRUE),
+ PT(24, 13, 4, 0, FALSE),
+ PT(35, 57, 2, 3, FALSE),
+ PT(15, 58, 3, 0, FALSE),
+ PT(33, 53, 5, 1, TRUE),
+ PT(54, 38, 5, 1, TRUE),
+ PT(35, 5, 5, 3, TRUE),
+ PT(27, 8, 2, 3, TRUE),
+ PT(62, 9, 2, 3, FALSE),
+ PT(45, 58, 6, 3, TRUE),
+ PT(21, 53, 6, 2, TRUE),
+ PT(41, 10, 2, 1, FALSE),
+ PT( 2, 57, 3, 3, TRUE),
+ PT(20, 52, 6, 1, TRUE),
+ PT(23, 29, 3, 0, FALSE),
+ PT(22, 29, 3, 1, FALSE),
+ PT( 1, 57, 4, 1, FALSE),
+ PT(30, 39, 6, 3, FALSE),
+ PT(50, 20, 4, 3, FALSE),
+ PT(10, 57, 6, 3, FALSE),
+ PT(31, 13, 3, 3, FALSE),
+ PT(11, 10, 3, 0, TRUE),
+ PT(53, 29, 6, 2, FALSE),
+ PT( 3, 18, 2, 3, FALSE),
+ PT(12, 19, 5, 3, FALSE),
+ PT(12, 52, 3, 3, FALSE),
+ PT(16, 20, 3, 3, FALSE),
+ PT(35, 50, 4, 3, TRUE),
+ PT( 2, 16, 5, 0, TRUE),
+ PT(53, 24, 6, 1, TRUE),
+ PT(51, 29, 3, 1, FALSE),
+ PT(60, 21, 4, 1, TRUE),
+ PT(62, 63, 4, 1, FALSE),
+ PT(42, 2, 5, 2, FALSE),
+ PT(40, 10, 5, 3, TRUE),
+ PT(26, 6, 6, 2, TRUE),
+ PT(60, 23, 5, 1, TRUE),
+ PT( 3, 18, 2, 3, TRUE),
+ PT(47, 10, 4, 3, FALSE),
+ PT(18, 56, 2, 0, TRUE),
+ PT(54, 27, 4, 1, TRUE),
+ PT( 1, 57, 6, 2, TRUE),
+ PT(25, 25, 2, 3, TRUE),
+ PT( 9, 40, 4, 1, FALSE),
+ PT(30, 39, 5, 2, FALSE),
+ PT(53, 51, 5, 2, FALSE),
+ PT(39, 37, 6, 0, TRUE),
+ PT( 6, 49, 5, 2, TRUE),
+ PT(26, 57, 5, 0, FALSE),
+ PT(45, 4, 3, 3, FALSE),
+ PT(36, 62, 3, 2, FALSE),
+ PT(60, 48, 3, 1, TRUE),
+ PT(63, 62, 6, 3, TRUE),
+ PT(34, 54, 2, 0, TRUE),
+ PT( 0, 1, 3, 2, FALSE),
+ PT(18, 26, 2, 0, FALSE),
+ PT(18, 30, 5, 2, FALSE),
+ PT(31, 18, 5, 1, FALSE),
+ PT(47, 6, 3, 0, TRUE),
+ PT(53, 26, 3, 0, FALSE),
+ PT(59, 9, 6, 3, FALSE),
+ PT(52, 29, 2, 1, TRUE),
+ PT( 2, 7, 2, 0, FALSE),
+ PT(32, 47, 3, 2, TRUE),
+ PT(11, 3, 6, 1, TRUE),
+ PT(28, 22, 6, 0, TRUE),
+ PT( 5, 19, 3, 1, TRUE),
+ PT(41, 6, 2, 1, TRUE),
+ PT(48, 45, 6, 3, FALSE),
+ PT(42, 45, 5, 2, FALSE),
+ PT(25, 52, 3, 2, FALSE),
+ PT(15, 21, 2, 1, FALSE),
+ PT(54, 21, 5, 2, FALSE),
+ PT(58, 6, 3, 2, FALSE),
+ PT(18, 29, 4, 3, FALSE),
+ PT( 3, 56, 3, 2, TRUE),
+ PT( 1, 1, 5, 2, TRUE),
+ PT(23, 46, 2, 0, FALSE),
+ PT(20, 23, 3, 2, FALSE),
+ PT(52, 15, 5, 0, FALSE),
+ PT( 9, 55, 3, 1, TRUE),
+ PT(40, 29, 4, 3, FALSE),
+ PT(41, 45, 6, 3, FALSE),
+ PT(30, 23, 5, 0, FALSE),
+ PT(21, 15, 3, 2, FALSE),
+ PT(32, 45, 2, 0, FALSE),
+ PT(39, 22, 5, 3, FALSE),
+ PT(20, 9, 2, 1, FALSE),
+ PT(59, 61, 4, 0, TRUE),
+ PT(37, 26, 5, 2, FALSE),
+ PT( 0, 34, 6, 3, FALSE),
+ PT(13, 48, 2, 0, FALSE),
+ PT(23, 25, 3, 1, TRUE),
+ PT( 0, 59, 4, 0, TRUE),
+ PT(42, 40, 6, 2, FALSE),
+ PT(45, 15, 2, 3, FALSE),
+ PT(10, 48, 5, 0, FALSE),
+ PT( 6, 0, 4, 2, TRUE),
+ PT(49, 46, 5, 1, FALSE),
+ PT(20, 51, 5, 0, FALSE),
+ PT(54, 16, 5, 3, FALSE),
+ PT( 5, 46, 3, 0, TRUE),
+ PT(25, 26, 2, 2, TRUE),
+ PT(44, 20, 2, 3, TRUE),
+ PT(55, 15, 2, 1, TRUE),
+ PT(50, 23, 3, 1, TRUE),
+ PT(57, 24, 6, 1, FALSE),
+ PT(46, 50, 3, 3, FALSE),
+ PT(36, 29, 6, 0, TRUE),
+ PT(18, 29, 5, 1, TRUE),
+ PT(20, 12, 4, 3, TRUE),
+ PT(54, 46, 6, 1, FALSE),
+ PT( 6, 10, 3, 1, FALSE),
+ PT(40, 40, 4, 0, FALSE),
+ PT(58, 58, 2, 3, TRUE),
+ PT( 8, 39, 6, 3, FALSE),
+ PT(24, 26, 2, 0, FALSE),
+ PT(30, 38, 3, 1, TRUE),
+ PT(31, 51, 3, 3, TRUE),
+ PT(33, 23, 5, 3, TRUE),
+ PT( 1, 8, 4, 0, FALSE),
+ PT(53, 3, 3, 0, TRUE),
+ PT(59, 2, 4, 0, FALSE),
+ PT( 2, 45, 4, 1, TRUE),
+ PT(14, 23, 6, 1, FALSE),
+ PT(49, 41, 2, 0, TRUE),
+ PT(34, 23, 4, 1, FALSE),
+ PT(58, 44, 4, 1, TRUE),
+ PT(52, 32, 3, 0, FALSE),
+ PT( 0, 58, 4, 1, FALSE),
+ PT(37, 51, 4, 0, TRUE),
+ PT(51, 4, 4, 3, TRUE),
+ PT( 4, 24, 6, 1, FALSE),
+ PT(44, 12, 5, 3, TRUE),
+ PT(40, 20, 5, 2, FALSE),
+ PT(63, 48, 5, 1, TRUE),
+ PT(48, 33, 3, 2, TRUE),
+ PT( 1, 37, 6, 1, FALSE),
+ PT( 5, 35, 6, 2, FALSE),
+ PT(36, 16, 6, 0, FALSE),
+ PT(61, 20, 3, 1, TRUE),
+ PT(63, 56, 5, 3, TRUE),
+ PT(34, 27, 6, 1, FALSE),
+ PT(37, 7, 6, 3, TRUE),
+ PT(10, 12, 3, 2, TRUE),
+ PT( 3, 30, 3, 1, FALSE),
+ PT(15, 60, 2, 1, FALSE),
+ PT(17, 24, 3, 2, TRUE),
+ PT( 0, 53, 5, 3, TRUE),
+ PT(50, 24, 2, 2, FALSE),
+ PT(35, 48, 3, 1, TRUE),
+ PT(17, 61, 2, 1, FALSE),
+ PT(26, 22, 6, 2, TRUE),
+ PT(40, 5, 4, 2, FALSE),
+ PT(23, 61, 6, 3, TRUE),
+ PT(46, 9, 5, 3, FALSE),
+ PT(24, 29, 2, 3, TRUE),
+ PT(32, 31, 3, 0, FALSE),
+ PT(35, 44, 5, 3, TRUE),
+ PT(32, 63, 2, 3, FALSE),
+ PT(63, 41, 5, 3, FALSE),
+ PT(35, 59, 5, 0, TRUE),
+ PT(24, 57, 2, 1, TRUE),
+ PT(30, 50, 6, 2, TRUE),
+ PT(20, 29, 5, 1, FALSE),
+ PT(53, 1, 3, 2, TRUE),
+ PT(62, 59, 3, 3, FALSE),
+ PT(34, 30, 2, 3, FALSE),
+ PT(24, 34, 2, 1, FALSE),
+ PT(62, 41, 6, 1, TRUE),
+ PT(47, 20, 3, 0, TRUE),
+ PT(59, 7, 2, 2, TRUE),
+ PT( 6, 61, 5, 0, TRUE),
+ PT(53, 55, 4, 1, TRUE),
+ PT(52, 29, 5, 2, TRUE),
+ PT(24, 18, 3, 1, TRUE),
+ PT(11, 19, 4, 2, FALSE),
+ PT(19, 56, 3, 2, FALSE),
+ PT(31, 11, 3, 1, TRUE),
+ PT(19, 33, 3, 2, FALSE),
+ PT( 6, 57, 6, 1, FALSE),
+ PT(55, 61, 4, 3, FALSE),
+ PT(41, 38, 2, 2, TRUE),
+ PT(60, 51, 4, 3, TRUE),
+ PT( 0, 1, 5, 3, FALSE),
+ PT(21, 24, 6, 0, TRUE),
+ PT(13, 44, 2, 1, TRUE),
+ PT(39, 59, 4, 0, FALSE),
+ PT(45, 1, 4, 3, FALSE),
+ PT(35, 21, 6, 0, FALSE),
+ PT(36, 0, 2, 3, TRUE),
+ PT(55, 63, 6, 1, TRUE),
+ PT(37, 36, 6, 0, TRUE),
+ PT( 6, 59, 6, 3, TRUE),
+ PT( 3, 24, 3, 1, FALSE),
+ PT(44, 52, 2, 2, FALSE),
+ PT(29, 54, 3, 0, FALSE),
+ PT(58, 4, 4, 1, TRUE),
+ PT(18, 38, 2, 2, TRUE),
+ PT(43, 25, 3, 1, FALSE),
+ PT(41, 44, 6, 3, FALSE),
+ PT( 1, 25, 3, 2, TRUE),
+ PT(47, 6, 5, 1, TRUE),
+ PT(12, 18, 4, 3, FALSE),
+ PT(54, 50, 3, 2, TRUE),
+ PT(13, 18, 5, 0, FALSE),
+ PT( 3, 40, 2, 1, TRUE),
+ PT(41, 6, 2, 3, TRUE),
+ PT( 3, 56, 4, 0, TRUE),
+ PT(48, 44, 2, 0, FALSE),
+ PT(34, 0, 5, 0, FALSE),
+ PT(36, 59, 3, 2, FALSE),
+ PT(32, 62, 2, 1, TRUE),
+ PT( 2, 12, 3, 0, TRUE),
+ PT(41, 44, 3, 1, FALSE),
+ PT(57, 48, 4, 1, FALSE),
+ PT(42, 31, 4, 1, FALSE),
+ PT(20, 52, 5, 2, FALSE),
+ PT(20, 37, 3, 1, TRUE),
+ PT( 6, 59, 2, 2, TRUE),
+ PT( 6, 28, 2, 1, TRUE),
+ PT(21, 3, 3, 0, FALSE),
+ PT(30, 42, 3, 1, TRUE),
+ PT(23, 37, 5, 3, TRUE),
+ PT(28, 41, 5, 3, FALSE),
+ PT( 2, 50, 3, 3, FALSE),
+ PT(29, 40, 6, 2, TRUE),
+ PT(54, 3, 6, 2, FALSE),
+ PT(22, 61, 5, 1, FALSE),
+ PT(18, 13, 2, 1, TRUE),
+ PT(29, 45, 4, 0, TRUE),
+ PT(50, 23, 5, 3, FALSE),
+ PT(26, 21, 4, 3, FALSE),
+ PT(34, 47, 2, 2, TRUE),
+ PT(60, 14, 4, 0, FALSE),
+ PT(47, 39, 2, 1, TRUE),
+ PT( 4, 9, 6, 1, FALSE),
+ PT(30, 1, 6, 2, FALSE),
+ PT( 6, 22, 3, 3, FALSE),
+ PT(46, 27, 3, 2, FALSE),
+ PT(40, 19, 5, 1, FALSE),
+ PT(48, 52, 2, 1, FALSE),
+ PT(18, 50, 3, 0, FALSE),
+ PT(29, 29, 6, 2, TRUE),
+ PT( 7, 28, 2, 3, FALSE),
+ PT(45, 61, 6, 2, TRUE),
+ PT(28, 27, 4, 2, FALSE),
+ PT(33, 45, 3, 3, FALSE),
+ PT(16, 9, 2, 2, FALSE),
+ PT(61, 17, 2, 1, FALSE),
+ PT(37, 2, 4, 3, FALSE),
+ PT(35, 2, 3, 0, TRUE),
+ PT(25, 5, 2, 2, FALSE),
+ PT(11, 33, 3, 1, FALSE),
+ PT( 9, 2, 5, 2, FALSE),
+ PT(24, 40, 5, 2, TRUE),
+ PT(30, 16, 2, 1, FALSE),
+ PT(46, 24, 5, 3, FALSE),
+ PT(31, 2, 5, 2, FALSE),
+ PT(20, 23, 4, 2, FALSE),
+ PT(57, 8, 6, 1, FALSE),
+ PT(22, 20, 4, 1, FALSE),
+ PT(22, 40, 4, 0, TRUE),
+ PT(17, 16, 5, 2, FALSE),
+ PT(35, 54, 5, 1, TRUE),
+ PT(57, 33, 4, 3, FALSE),
+ PT(14, 6, 5, 2, TRUE),
+ PT(60, 62, 4, 3, FALSE),
+ PT(42, 27, 3, 3, TRUE),
+ PT( 0, 60, 6, 1, TRUE),
+ PT(53, 63, 2, 2, FALSE),
+ PT( 0, 11, 2, 0, FALSE),
+ PT(52, 60, 2, 3, TRUE),
+ PT(45, 7, 3, 3, TRUE),
+ PT(36, 57, 4, 3, TRUE),
+ PT(22, 0, 3, 2, TRUE),
+ PT(51, 43, 3, 3, FALSE),
+ PT(15, 8, 6, 0, TRUE),
+ PT(58, 9, 2, 1, TRUE),
+ PT(12, 33, 3, 2, FALSE),
+ PT(42, 23, 6, 2, FALSE),
+ PT(41, 39, 2, 0, FALSE),
+ PT(55, 27, 3, 0, FALSE),
+ PT(21, 8, 5, 3, TRUE),
+ PT(31, 22, 2, 1, FALSE),
+ PT(31, 40, 6, 2, FALSE),
+ PT(28, 32, 4, 1, FALSE),
+ PT(18, 1, 2, 1, FALSE),
+ PT(33, 49, 2, 0, FALSE),
+ PT(34, 38, 3, 3, FALSE),
+ PT( 1, 61, 2, 0, TRUE),
+ PT(30, 39, 4, 2, TRUE),
+ PT(61, 48, 4, 2, FALSE),
+ PT(29, 17, 4, 1, FALSE),
+ PT(54, 48, 2, 3, FALSE),
+ PT(31, 62, 5, 1, FALSE),
+ PT(60, 39, 3, 1, TRUE),
+ PT(31, 41, 2, 0, FALSE),
+ PT(30, 5, 5, 1, FALSE),
+ PT(10, 16, 2, 2, FALSE),
+ PT(31, 0, 5, 3, FALSE),
+ PT(11, 59, 3, 0, FALSE),
+ PT(10, 57, 6, 0, FALSE),
+ PT(55, 11, 3, 3, TRUE),
+ PT(29, 10, 5, 0, TRUE),
+ PT(62, 28, 6, 1, TRUE),
+ PT(19, 46, 5, 0, FALSE),
+ PT(39, 27, 3, 3, FALSE),
+ PT(29, 2, 3, 2, FALSE),
+ PT( 1, 37, 2, 2, FALSE),
+ PT(58, 16, 3, 2, FALSE),
+ PT(18, 5, 5, 1, FALSE),
+ PT(48, 32, 4, 3, FALSE),
+ PT(47, 46, 5, 3, FALSE),
+ PT( 3, 7, 4, 2, FALSE),
+ PT(54, 4, 5, 1, TRUE),
+ PT(17, 37, 5, 2, TRUE),
+ PT(40, 14, 5, 3, FALSE),
+ PT(15, 29, 2, 2, TRUE),
+ PT(28, 40, 6, 0, FALSE),
+ PT(31, 35, 4, 3, FALSE),
+ PT(54, 18, 6, 3, TRUE),
+ PT(58, 49, 2, 0, FALSE),
+ PT(44, 44, 5, 3, TRUE),
+ PT(26, 13, 2, 2, TRUE),
+ PT(63, 60, 6, 1, FALSE),
+ PT(53, 28, 2, 3, FALSE),
+ PT(51, 22, 5, 0, FALSE),
+ PT(29, 63, 4, 0, TRUE),
+ PT(44, 62, 5, 1, TRUE),
+ PT(36, 35, 5, 3, TRUE),
+ PT(50, 21, 5, 1, FALSE),
+ PT(27, 16, 6, 2, TRUE),
+ PT(24, 55, 2, 0, FALSE),
+ PT(59, 30, 2, 0, TRUE),
+ PT(43, 22, 4, 2, FALSE),
+ PT(29, 22, 4, 3, FALSE),
+ PT(60, 45, 2, 0, TRUE),
+ PT(21, 40, 5, 0, FALSE),
+ PT(39, 39, 4, 3, TRUE),
+ PT(59, 58, 2, 3, FALSE),
+ PT(26, 12, 3, 1, FALSE),
+ PT(21, 8, 4, 2, TRUE),
+ PT(11, 16, 4, 1, FALSE),
+ PT(26, 62, 2, 3, TRUE),
+ PT(40, 31, 3, 3, FALSE),
+ PT( 1, 30, 3, 3, FALSE),
+ PT(28, 47, 2, 0, FALSE),
+ PT(37, 11, 6, 2, FALSE),
+ PT(62, 12, 3, 1, FALSE),
+ PT(27, 16, 5, 1, FALSE),
+ PT(15, 20, 2, 3, TRUE),
+ PT(15, 63, 2, 3, TRUE),
+ PT( 3, 21, 3, 3, TRUE),
+ PT( 2, 54, 2, 3, TRUE),
+ PT(21, 29, 3, 0, FALSE),
+ PT( 8, 54, 2, 0, FALSE),
+ PT(20, 13, 5, 1, TRUE),
+ PT(10, 5, 3, 2, TRUE),
+ PT(38, 18, 3, 3, FALSE),
+ PT(62, 24, 3, 0, TRUE),
+ PT(54, 24, 6, 3, TRUE),
+ PT(23, 57, 5, 3, FALSE),
+ PT(13, 4, 3, 0, TRUE),
+ PT(22, 34, 2, 2, TRUE),
+ PT(62, 38, 3, 3, TRUE),
+ PT( 0, 6, 2, 3, TRUE),
+ PT(51, 34, 3, 2, TRUE),
+ PT(43, 57, 5, 1, TRUE),
+ PT(62, 49, 3, 2, FALSE),
+ PT(34, 63, 2, 1, TRUE),
+ PT(48, 28, 6, 0, TRUE),
+ PT( 7, 43, 2, 2, FALSE),
+ PT(50, 53, 3, 3, FALSE),
+ PT( 2, 7, 4, 0, FALSE),
+ PT(15, 59, 2, 0, TRUE),
+ PT(32, 7, 2, 1, FALSE),
+ PT(42, 48, 3, 2, TRUE),
+ PT(40, 56, 6, 3, FALSE),
+ PT(32, 1, 2, 3, TRUE),
+ PT(21, 32, 4, 0, TRUE),
+ PT(58, 27, 3, 3, FALSE),
+ PT(56, 18, 4, 2, FALSE),
+ PT( 3, 62, 3, 3, TRUE),
+ PT(41, 29, 2, 1, TRUE),
+ PT(32, 39, 3, 0, TRUE),
+ PT(18, 37, 4, 0, FALSE),
+ PT(50, 51, 5, 1, TRUE),
+ PT(63, 5, 6, 0, TRUE),
+ PT(53, 60, 5, 2, TRUE),
+ PT(45, 2, 5, 3, FALSE),
+ PT(16, 42, 2, 3, FALSE),
+ PT(23, 8, 6, 0, TRUE),
+ PT(23, 46, 5, 1, TRUE),
+ PT(48, 30, 2, 2, TRUE),
+ PT(49, 21, 4, 3, FALSE),
+ PT( 8, 16, 6, 1, TRUE),
+ PT(21, 1, 4, 3, TRUE),
+ PT(18, 7, 5, 3, TRUE),
+ PT(41, 39, 6, 2, FALSE),
+ PT(63, 8, 6, 0, TRUE),
+ PT(28, 32, 3, 1, FALSE),
+ PT(51, 12, 2, 1, TRUE),
+ PT(24, 49, 4, 2, FALSE),
+ PT(55, 45, 5, 3, FALSE),
+ PT(33, 24, 4, 2, FALSE),
+ PT(58, 39, 6, 0, TRUE),
+ PT(53, 62, 6, 0, FALSE),
+ PT(58, 20, 6, 1, TRUE),
+ PT(15, 26, 5, 2, TRUE),
+ PT(48, 46, 2, 0, TRUE),
+ PT(26, 49, 3, 2, TRUE),
+ PT(23, 60, 3, 0, FALSE),
+ PT(51, 49, 4, 1, TRUE),
+ PT(29, 57, 5, 2, TRUE),
+ PT(16, 29, 5, 3, TRUE),
+ PT(36, 21, 3, 2, FALSE),
+ PT(37, 1, 5, 1, TRUE),
+ PT(34, 22, 5, 3, FALSE),
+ PT(27, 37, 6, 2, TRUE),
+ PT(55, 16, 4, 3, FALSE),
+ PT(57, 1, 6, 3, FALSE),
+ PT(23, 43, 2, 2, FALSE),
+ PT( 9, 22, 2, 3, TRUE),
+ PT(32, 40, 4, 1, TRUE),
+ PT(38, 58, 4, 3, FALSE),
+ PT(39, 42, 4, 2, FALSE),
+ PT(54, 2, 5, 2, FALSE),
+ PT(41, 48, 6, 2, TRUE),
+ PT(54, 1, 3, 3, TRUE),
+ PT(40, 59, 3, 2, TRUE),
+ PT(35, 30, 5, 2, TRUE),
+ PT(17, 30, 5, 2, FALSE),
+ PT(47, 50, 3, 0, TRUE),
+ PT(63, 38, 6, 0, TRUE),
+ PT(56, 30, 2, 3, TRUE),
+ PT( 5, 24, 5, 3, FALSE),
+ PT( 0, 46, 2, 1, FALSE),
+ PT(52, 63, 6, 2, FALSE),
+ PT(22, 16, 5, 0, TRUE),
+ PT(32, 61, 6, 3, FALSE),
+ PT(47, 22, 4, 2, TRUE),
+ PT(18, 23, 2, 0, FALSE),
+ PT(33, 55, 6, 2, TRUE),
+ PT(37, 55, 5, 2, TRUE),
+ PT( 1, 8, 4, 3, TRUE),
+ PT( 3, 31, 5, 0, TRUE),
+ PT(13, 42, 2, 3, FALSE),
+ PT(58, 63, 6, 1, TRUE),
+ PT(43, 25, 3, 2, TRUE),
+ PT(42, 31, 5, 0, TRUE),
+ PT(40, 44, 2, 0, FALSE),
+ PT(40, 48, 2, 0, FALSE),
+ PT(57, 20, 3, 1, TRUE),
+ PT( 0, 24, 4, 0, TRUE),
+ PT(40, 12, 6, 3, TRUE),
+ PT(17, 16, 2, 0, TRUE),
+ PT(60, 51, 6, 1, FALSE),
+ PT(51, 54, 3, 1, FALSE),
+ PT(54, 0, 3, 2, FALSE),
+ PT(49, 27, 3, 2, TRUE),
+ PT(56, 29, 2, 0, FALSE),
+ PT(60, 57, 4, 3, TRUE),
+ PT(58, 63, 2, 2, FALSE),
+ PT(25, 18, 2, 2, FALSE),
+ PT(13, 31, 3, 0, FALSE),
+ PT( 0, 37, 3, 0, FALSE),
+ PT(40, 28, 6, 1, FALSE),
+ PT(39, 3, 3, 1, FALSE),
+ PT(38, 45, 5, 1, FALSE),
+ PT(41, 40, 4, 3, TRUE),
+ PT(10, 42, 3, 0, FALSE),
+ PT(10, 26, 6, 0, FALSE),
+ PT(32, 26, 5, 3, FALSE),
+ PT( 6, 11, 3, 2, TRUE),
+ PT(15, 12, 3, 2, FALSE),
+ PT(53, 40, 3, 2, FALSE),
+ PT(61, 22, 4, 1, TRUE),
+ PT(33, 28, 6, 0, TRUE),
+ PT(20, 28, 5, 3, FALSE),
+ PT(34, 50, 6, 2, TRUE),
+ PT( 9, 41, 6, 0, FALSE),
+ PT(32, 26, 2, 0, FALSE),
+ PT(49, 63, 5, 2, FALSE),
+ PT(10, 61, 6, 3, TRUE),
+ PT(11, 46, 5, 2, TRUE),
+ PT(31, 34, 6, 0, TRUE),
+ PT( 6, 7, 5, 0, TRUE),
+ PT(34, 23, 5, 2, TRUE),
+ PT(48, 17, 3, 0, FALSE),
+ PT(12, 25, 2, 2, TRUE),
+ PT( 7, 10, 6, 2, FALSE),
+ PT(24, 41, 4, 3, TRUE),
+ PT(51, 12, 6, 0, FALSE),
+ PT( 3, 26, 6, 3, TRUE),
+ PT( 6, 1, 5, 2, TRUE),
+ PT(15, 59, 5, 1, TRUE),
+ PT(17, 31, 6, 3, TRUE),
+ PT(43, 33, 6, 3, FALSE),
+ PT(63, 35, 2, 3, TRUE),
+ PT(23, 7, 5, 1, TRUE),
+ PT(43, 14, 6, 0, FALSE),
+ PT(17, 57, 3, 2, TRUE),
+ PT(41, 3, 6, 1, TRUE),
+ PT(48, 3, 5, 3, TRUE),
+ PT(60, 32, 4, 3, FALSE),
+ PT( 3, 34, 2, 2, FALSE),
+ PT(58, 40, 6, 2, TRUE),
+ PT( 1, 40, 5, 1, TRUE),
+ PT(62, 21, 3, 0, FALSE),
+ PT(48, 7, 2, 3, TRUE),
+ PT(59, 44, 6, 0, FALSE),
+ PT(21, 7, 5, 2, FALSE),
+ PT(23, 39, 3, 2, TRUE),
+ PT(63, 30, 6, 1, TRUE),
+ PT(13, 23, 2, 0, FALSE),
+ PT(21, 14, 6, 0, FALSE),
+ PT( 9, 5, 6, 0, FALSE),
+ PT(45, 32, 2, 2, TRUE),
+ PT(60, 61, 6, 0, FALSE),
+ PT(12, 23, 3, 2, FALSE),
+ PT(26, 13, 4, 2, TRUE),
+ PT(43, 43, 5, 1, FALSE),
+ PT( 2, 22, 5, 2, TRUE),
+ PT(23, 49, 2, 3, TRUE),
+ PT( 0, 8, 2, 1, TRUE),
+ PT(55, 53, 4, 0, TRUE),
+ PT(30, 28, 3, 3, TRUE),
+ PT(43, 50, 3, 2, FALSE),
+ PT(16, 42, 2, 3, FALSE),
+ PT(58, 51, 6, 0, TRUE),
+ PT(23, 43, 5, 1, FALSE),
+ PT(12, 61, 2, 0, TRUE),
+ PT(40, 10, 6, 0, FALSE),
+ PT(35, 10, 4, 3, FALSE),
+ PT(10, 20, 4, 2, FALSE),
+ PT(11, 15, 6, 0, FALSE),
+ PT(27, 30, 5, 0, TRUE),
+ PT( 2, 53, 5, 0, FALSE),
+ PT(59, 2, 2, 2, FALSE),
+ PT( 0, 15, 6, 2, TRUE),
+ PT(28, 60, 5, 3, FALSE),
+ PT(40, 56, 3, 0, TRUE),
+ PT(27, 17, 2, 1, FALSE),
+ PT( 9, 22, 2, 0, FALSE),
+ PT(46, 13, 4, 0, FALSE),
+ PT(61, 4, 6, 1, FALSE),
+ PT(22, 44, 4, 2, TRUE),
+ PT( 2, 61, 3, 0, FALSE),
+ PT(11, 19, 3, 2, FALSE),
+ PT(34, 42, 3, 2, FALSE),
+ PT(32, 39, 4, 1, FALSE),
+ PT( 5, 38, 4, 1, FALSE),
+ PT(18, 29, 5, 2, FALSE),
+ PT( 8, 5, 5, 3, FALSE),
+ PT(63, 28, 2, 3, TRUE),
+ PT(36, 13, 6, 1, TRUE),
+ PT(54, 8, 4, 2, FALSE),
+ PT(16, 34, 5, 0, TRUE),
+ PT(28, 10, 2, 0, TRUE),
+ PT(37, 15, 2, 0, FALSE),
+ PT(36, 56, 5, 3, TRUE),
+ PT(37, 50, 3, 3, FALSE),
+ PT( 6, 42, 5, 0, TRUE),
+ PT(62, 58, 5, 0, FALSE),
+ PT(52, 23, 6, 1, TRUE),
+ PT(24, 51, 2, 3, TRUE),
+ PT( 7, 20, 3, 3, TRUE),
+ PT(17, 23, 4, 0, FALSE),
+ PT(19, 14, 2, 2, FALSE),
+ PT(59, 28, 2, 1, FALSE),
+ PT(42, 19, 6, 3, TRUE),
+ PT(42, 53, 6, 1, FALSE),
+ PT(48, 2, 4, 2, TRUE),
+ PT( 0, 7, 3, 3, TRUE),
+ PT(12, 4, 5, 2, FALSE),
+ PT(55, 55, 6, 0, FALSE),
+ PT(37, 18, 4, 2, TRUE),
+ PT(18, 34, 4, 0, TRUE),
+ PT(34, 53, 6, 1, TRUE),
+ PT( 7, 32, 5, 2, TRUE),
+ PT(39, 14, 6, 0, FALSE),
+ PT(52, 25, 3, 1, FALSE),
+ PT(10, 60, 4, 2, TRUE),
+ PT( 7, 29, 5, 1, TRUE),
+ PT(49, 58, 2, 1, FALSE),
+ PT(26, 61, 6, 3, TRUE),
+ PT(22, 21, 2, 3, FALSE),
+ PT(57, 19, 2, 2, TRUE),
+ PT(45, 3, 5, 3, FALSE),
+ PT( 6, 57, 5, 2, FALSE),
+ PT(22, 0, 2, 1, TRUE),
+ PT(53, 42, 6, 2, TRUE),
+ PT(36, 1, 3, 0, FALSE),
+ PT(36, 55, 5, 0, FALSE),
+ PT(37, 27, 6, 2, FALSE),
+ PT(37, 25, 2, 3, TRUE),
+ PT(39, 47, 3, 1, TRUE),
+ PT(39, 13, 2, 0, FALSE),
+ PT(54, 60, 6, 0, FALSE),
+ PT(60, 51, 4, 1, TRUE),
+ PT(62, 39, 3, 3, FALSE),
+ PT(37, 45, 5, 0, TRUE),
+ PT(31, 18, 4, 0, TRUE),
+ PT(55, 50, 3, 3, TRUE),
+ PT(17, 33, 6, 2, TRUE),
+ PT(48, 12, 3, 0, TRUE),
+ PT(37, 61, 4, 3, FALSE),
+ PT(23, 2, 3, 2, TRUE),
+ PT(20, 46, 2, 0, TRUE),
+ PT(56, 19, 6, 0, FALSE),
+ PT(10, 43, 4, 0, FALSE),
+ PT(30, 16, 2, 2, TRUE),
+ PT(55, 48, 5, 3, FALSE),
+ PT(30, 4, 5, 2, FALSE),
+ PT(20, 52, 3, 0, TRUE),
+ PT( 8, 20, 3, 0, FALSE),
+ PT(14, 28, 6, 0, FALSE),
+ PT(26, 46, 3, 1, TRUE),
+ PT(31, 57, 6, 0, TRUE),
+ PT(12, 28, 5, 0, FALSE),
+ PT(62, 51, 4, 1, TRUE),
+ PT(15, 19, 2, 3, FALSE),
+ PT(37, 57, 5, 3, TRUE),
+ PT(20, 27, 3, 1, FALSE),
+ PT(40, 62, 4, 0, TRUE),
+ PT(45, 25, 2, 0, TRUE),
+ PT(12, 52, 6, 1, FALSE),
+ PT(57, 49, 3, 0, TRUE),
+ PT(26, 8, 6, 2, FALSE),
+ PT( 9, 47, 2, 0, TRUE),
+ PT(48, 4, 3, 2, FALSE),
+ PT( 2, 59, 3, 1, TRUE),
+ PT(51, 33, 6, 1, TRUE),
+ PT(56, 2, 3, 1, FALSE),
+ PT(49, 56, 6, 1, FALSE),
+ PT(31, 29, 2, 3, FALSE),
+ PT(23, 16, 3, 1, TRUE),
+ PT(50, 32, 2, 3, TRUE),
+ PT( 0, 51, 2, 1, FALSE),
+ PT(33, 15, 4, 3, TRUE),
+ PT(20, 25, 4, 3, TRUE),
+ PT(36, 44, 6, 3, TRUE),
+ PT(37, 5, 5, 3, TRUE),
+ PT(61, 37, 2, 0, TRUE),
+ PT(18, 48, 3, 1, FALSE),
+ PT(22, 3, 3, 1, FALSE),
+ PT(20, 9, 2, 1, TRUE),
+ PT( 2, 35, 4, 1, FALSE),
+ PT( 1, 60, 2, 0, FALSE),
+ PT(63, 45, 4, 1, TRUE),
+ PT(49, 63, 4, 1, TRUE),
+ PT(23, 0, 6, 1, TRUE),
+ PT(63, 15, 5, 3, TRUE),
+ PT(38, 7, 2, 2, TRUE),
+ PT(33, 43, 5, 1, FALSE),
+ PT(56, 57, 3, 3, FALSE),
+ PT( 9, 37, 5, 1, TRUE),
+ PT(59, 48, 4, 2, TRUE),
+ PT(18, 45, 2, 1, TRUE),
+ PT(50, 25, 5, 0, FALSE),
+ PT(36, 28, 5, 2, TRUE),
+ PT(53, 50, 4, 3, FALSE),
+ PT(13, 35, 3, 3, FALSE),
+ PT(29, 7, 4, 0, TRUE),
+ PT(11, 52, 2, 3, TRUE),
+ PT(45, 50, 6, 1, FALSE),
+ PT(58, 60, 6, 2, TRUE),
+ PT(26, 16, 6, 1, TRUE),
+ PT(26, 7, 4, 1, FALSE),
+ PT(59, 27, 5, 1, FALSE),
+ PT(51, 31, 4, 3, FALSE),
+ PT(14, 53, 3, 1, FALSE),
+ PT(59, 10, 3, 2, FALSE),
+ PT(17, 7, 2, 0, TRUE),
+ PT(13, 60, 5, 2, TRUE),
+ PT(30, 55, 5, 0, TRUE),
+ PT(17, 5, 2, 1, FALSE),
+ PT(21, 47, 3, 2, FALSE),
+ PT(36, 49, 2, 3, FALSE),
+ PT(43, 33, 3, 1, TRUE),
+ PT(35, 16, 6, 0, TRUE),
+ PT( 2, 20, 5, 0, TRUE),
+ PT(38, 32, 2, 3, FALSE),
+ PT(16, 23, 2, 0, FALSE),
+ PT(11, 15, 6, 1, TRUE),
+ PT( 1, 46, 2, 2, FALSE),
+ PT(33, 14, 6, 3, TRUE),
+ PT(26, 29, 5, 3, TRUE),
+ PT(30, 48, 4, 2, FALSE),
+ PT( 4, 20, 5, 2, TRUE),
+ PT(17, 0, 6, 0, FALSE),
+ PT( 8, 42, 3, 2, TRUE),
+ PT(29, 34, 4, 0, TRUE),
+ PT(36, 44, 6, 3, TRUE),
+ PT(36, 17, 2, 1, FALSE),
+ PT( 4, 46, 5, 0, FALSE),
+ PT(29, 24, 4, 1, TRUE),
+ PT(60, 22, 2, 3, FALSE),
+ PT(16, 23, 6, 0, TRUE),
+ PT(32, 33, 2, 1, FALSE),
+ PT(51, 62, 6, 2, FALSE),
+ PT( 6, 19, 2, 1, TRUE),
+ PT(23, 56, 5, 1, TRUE),
+ PT(20, 13, 2, 2, TRUE),
+ PT(36, 59, 5, 1, TRUE),
+ PT(52, 59, 3, 3, FALSE),
+ PT(24, 7, 6, 2, FALSE),
+ PT(55, 29, 3, 3, TRUE),
+ PT(11, 41, 4, 0, FALSE),
+ PT(18, 30, 3, 2, TRUE),
+ PT(26, 36, 4, 2, FALSE),
+ PT(61, 40, 4, 2, FALSE),
+ PT(11, 18, 6, 1, TRUE),
+ PT(27, 58, 4, 1, FALSE),
+ PT(20, 19, 5, 1, FALSE),
+ PT(49, 56, 2, 2, TRUE),
+ PT(55, 43, 5, 3, FALSE),
+ PT(25, 30, 5, 2, FALSE),
+ PT(63, 27, 5, 1, FALSE),
+ PT(51, 31, 6, 1, TRUE),
+ PT(63, 21, 5, 0, TRUE),
+ PT( 1, 30, 3, 0, FALSE),
+ PT(31, 34, 3, 0, TRUE),
+ PT(51, 60, 6, 2, FALSE),
+ PT(30, 18, 4, 1, FALSE),
+ PT(13, 55, 5, 2, FALSE),
+ PT(15, 8, 6, 0, TRUE),
+ PT(46, 9, 6, 3, FALSE),
+ PT( 1, 5, 3, 3, FALSE),
+ PT(28, 4, 3, 3, FALSE),
+ PT(12, 1, 3, 2, FALSE),
+ PT(41, 40, 5, 3, TRUE),
+ PT(57, 45, 2, 2, FALSE),
+ PT( 9, 34, 6, 3, FALSE),
+ PT( 4, 55, 6, 3, TRUE),
+ PT(45, 47, 6, 2, TRUE),
+ PT(36, 35, 3, 1, TRUE),
+ PT( 8, 32, 6, 1, FALSE),
+ PT(32, 31, 6, 2, FALSE),
+ PT( 2, 49, 3, 0, TRUE),
+ PT(24, 19, 6, 3, FALSE),
+ PT( 6, 43, 3, 3, FALSE),
+ PT(14, 27, 2, 0, FALSE),
+ PT(47, 14, 3, 2, FALSE),
+ PT(17, 56, 2, 1, TRUE),
+ PT( 1, 55, 3, 0, TRUE),
+ PT(20, 17, 4, 3, FALSE),
+ PT(49, 61, 6, 1, TRUE),
+ PT(29, 27, 6, 2, FALSE),
+ PT(37, 49, 5, 3, TRUE),
+ PT(17, 10, 5, 3, TRUE),
+ PT(57, 23, 3, 1, TRUE),
+ PT( 5, 14, 2, 1, TRUE),
+ PT(41, 37, 4, 1, FALSE),
+ PT(21, 13, 4, 0, FALSE),
+ PT(43, 39, 4, 0, TRUE),
+ PT(62, 36, 4, 3, TRUE),
+ PT(42, 43, 2, 3, FALSE),
+ PT(36, 61, 2, 2, TRUE),
+ PT(21, 48, 6, 0, TRUE),
+ PT(15, 51, 4, 2, FALSE),
+ PT( 6, 22, 2, 1, TRUE),
+ PT( 6, 49, 2, 0, FALSE),
+ PT(46, 63, 2, 0, FALSE),
+ PT( 5, 13, 5, 3, TRUE),
+ PT(60, 31, 3, 0, TRUE),
+ PT(18, 19, 4, 2, FALSE),
+ PT(15, 51, 6, 3, FALSE),
+ PT(21, 59, 6, 1, TRUE),
+ PT( 3, 15, 5, 1, FALSE),
+ PT(59, 60, 5, 2, FALSE),
+ PT(54, 9, 5, 0, TRUE),
+ PT(17, 59, 4, 3, TRUE),
+ PT(40, 43, 6, 0, TRUE),
+ PT(26, 14, 5, 3, TRUE),
+ PT(57, 44, 6, 0, TRUE),
+ PT(14, 60, 6, 2, TRUE),
+ PT(44, 36, 6, 1, TRUE),
+ PT(61, 17, 5, 1, TRUE),
+ PT( 7, 60, 6, 3, TRUE),
+ PT(20, 24, 2, 1, TRUE),
+ PT(29, 63, 5, 3, FALSE),
+ PT(48, 18, 4, 2, TRUE),
+ PT(38, 29, 2, 0, TRUE),
+ PT( 7, 17, 3, 3, FALSE),
+ PT(52, 1, 2, 0, TRUE),
+ PT(11, 57, 4, 0, TRUE),
+ PT(41, 2, 5, 0, TRUE),
+ PT(21, 16, 3, 1, FALSE),
+ PT(48, 31, 6, 2, TRUE),
+ PT(60, 43, 5, 1, FALSE),
+ PT(48, 59, 6, 3, FALSE),
+ PT(32, 26, 4, 1, TRUE),
+ PT(50, 36, 5, 1, TRUE),
+ PT(21, 32, 3, 2, FALSE),
+ PT(37, 61, 6, 3, FALSE),
+ PT(45, 20, 6, 0, TRUE),
+ PT(24, 35, 2, 3, TRUE),
+ PT(24, 5, 2, 1, TRUE),
+ PT(52, 48, 6, 3, TRUE),
+ PT(14, 57, 4, 1, TRUE),
+ PT(29, 31, 2, 3, TRUE),
+ PT( 1, 21, 5, 3, TRUE),
+ PT(11, 62, 3, 1, TRUE),
+ PT(13, 25, 5, 3, FALSE),
+ PT(49, 56, 3, 2, FALSE),
+ PT(21, 52, 2, 2, TRUE),
+ PT(19, 25, 5, 0, TRUE),
+ PT(25, 20, 4, 3, TRUE),
+ PT(21, 24, 4, 1, TRUE),
+ PT(41, 12, 4, 3, TRUE),
+ PT(45, 14, 2, 3, TRUE),
+ PT(52, 24, 2, 0, FALSE),
+ PT(59, 30, 5, 0, TRUE),
+ PT(52, 44, 4, 1, FALSE),
+ PT(49, 8, 2, 1, TRUE),
+ PT(29, 24, 3, 1, FALSE),
+ PT(28, 11, 5, 1, FALSE),
+ PT(25, 30, 3, 1, FALSE),
+ PT(35, 39, 2, 3, TRUE),
+ PT(59, 14, 6, 3, TRUE),
+ PT(25, 43, 2, 3, FALSE),
+ PT(47, 8, 4, 0, TRUE),
+ PT(55, 2, 4, 0, FALSE),
+ PT(11, 50, 6, 0, FALSE),
+ PT(22, 5, 6, 0, FALSE),
+ PT(19, 5, 3, 1, FALSE),
+ PT( 7, 57, 3, 0, TRUE),
+ PT(12, 59, 5, 1, FALSE),
+ PT(21, 5, 6, 0, FALSE),
+ PT(48, 5, 3, 0, TRUE),
+ PT(19, 0, 2, 1, FALSE),
+ PT(39, 22, 5, 1, FALSE),
+ PT(15, 40, 4, 3, TRUE),
+ PT(12, 35, 5, 3, TRUE),
+ PT(57, 40, 5, 1, FALSE),
+ PT(36, 37, 3, 3, TRUE),
+ PT(24, 41, 2, 2, FALSE),
+ PT(22, 5, 3, 1, FALSE),
+ PT(53, 47, 4, 3, FALSE),
+ PT(10, 58, 5, 0, TRUE),
+ PT(52, 44, 6, 3, FALSE),
+ PT(46, 58, 2, 2, TRUE),
+ PT(26, 10, 5, 2, TRUE),
+ PT(22, 20, 5, 3, FALSE),
+ PT(53, 40, 5, 1, FALSE),
+ PT(53, 15, 2, 0, TRUE),
+ PT(17, 50, 3, 0, TRUE),
+ PT(32, 26, 5, 0, FALSE),
+ PT(23, 26, 5, 0, FALSE),
+ PT(22, 51, 4, 2, TRUE),
+ PT(19, 44, 5, 0, TRUE),
+ PT( 9, 22, 6, 1, TRUE),
+ PT(29, 39, 4, 3, FALSE),
+ PT(21, 12, 5, 3, TRUE),
+ PT(34, 28, 3, 0, TRUE),
+ PT(41, 51, 2, 0, FALSE),
+ PT(45, 17, 3, 1, TRUE),
+ PT(22, 25, 5, 3, FALSE),
+ PT(13, 12, 5, 0, FALSE),
+ PT(55, 58, 6, 2, FALSE),
+ PT(42, 29, 6, 3, TRUE),
+ PT(48, 10, 6, 3, FALSE),
+ PT(36, 57, 3, 1, TRUE),
+ PT(57, 10, 6, 1, FALSE),
+ PT(17, 3, 5, 2, TRUE),
+ PT(50, 29, 6, 0, FALSE),
+ PT(56, 30, 4, 3, TRUE),
+ PT(46, 23, 3, 0, FALSE),
+ PT(22, 23, 5, 1, FALSE),
+ PT(54, 59, 6, 0, TRUE),
+ PT(23, 4, 3, 0, TRUE),
+ PT(58, 37, 5, 2, TRUE),
+ PT( 0, 54, 4, 3, TRUE),
+ PT(37, 18, 6, 1, TRUE),
+ PT( 6, 10, 2, 2, FALSE),
+ PT(17, 5, 5, 3, TRUE),
+ PT( 3, 53, 5, 3, TRUE),
+ PT(11, 52, 5, 0, TRUE),
+ PT( 0, 49, 2, 1, TRUE),
+ PT(39, 15, 3, 2, FALSE),
+ PT(29, 6, 5, 2, TRUE),
+ PT(28, 48, 4, 3, TRUE),
+ PT(47, 42, 4, 3, TRUE),
+ PT(22, 32, 6, 0, TRUE),
+ PT(51, 43, 5, 1, TRUE),
+ PT( 5, 48, 6, 3, FALSE),
+ PT(41, 35, 6, 2, TRUE),
+ PT(16, 22, 5, 3, TRUE),
+ PT(45, 32, 5, 0, TRUE),
+ PT(55, 19, 4, 2, FALSE),
+ PT(45, 14, 4, 2, TRUE),
+ PT( 8, 10, 3, 0, FALSE),
+ PT(15, 3, 3, 1, TRUE),
+ PT(49, 12, 6, 3, TRUE),
+ PT(30, 52, 6, 0, TRUE),
+ PT(27, 14, 4, 2, TRUE),
+ PT(26, 7, 6, 2, FALSE),
+ PT(13, 60, 6, 1, TRUE),
+ PT( 0, 58, 6, 3, FALSE),
+ PT( 4, 39, 2, 1, FALSE),
+ PT(35, 24, 4, 2, FALSE),
+ PT(13, 11, 3, 0, FALSE),
+ PT(49, 50, 6, 3, TRUE),
+ PT( 0, 13, 4, 0, TRUE),
+ PT(50, 16, 2, 1, FALSE),
+ PT(38, 13, 3, 0, TRUE),
+ PT(41, 36, 5, 1, TRUE),
+ PT(61, 33, 3, 3, TRUE),
+ PT(30, 27, 5, 0, FALSE),
+ PT(13, 18, 5, 0, FALSE),
+ PT(53, 30, 4, 1, TRUE),
+ PT(10, 46, 4, 1, FALSE),
+ PT(39, 39, 6, 2, TRUE),
+ PT( 1, 14, 4, 0, FALSE),
+ PT(49, 57, 5, 0, TRUE),
+ PT(59, 36, 6, 3, FALSE),
+ PT(20, 16, 6, 1, TRUE),
+ PT(24, 44, 4, 3, FALSE),
+ PT( 4, 45, 2, 2, TRUE),
+ PT(26, 17, 6, 3, TRUE),
+ PT(15, 11, 2, 2, FALSE),
+ PT(14, 44, 5, 2, FALSE),
+ PT(33, 23, 5, 2, FALSE),
+ PT(22, 33, 6, 2, TRUE),
+ PT(62, 16, 2, 0, FALSE),
+ PT(10, 5, 3, 3, FALSE),
+ PT(59, 9, 2, 1, TRUE),
+ PT(38, 24, 3, 3, FALSE),
+ PT(35, 12, 3, 1, FALSE),
+ PT(51, 55, 3, 3, TRUE),
+ PT( 9, 18, 6, 2, TRUE),
+ PT(61, 13, 2, 2, TRUE),
+ PT(54, 6, 4, 2, FALSE),
+ PT(51, 48, 5, 0, TRUE),
+ PT(59, 15, 5, 0, FALSE),
+ PT(52, 42, 5, 2, FALSE),
+ PT( 2, 18, 6, 2, TRUE),
+ PT( 9, 34, 6, 0, TRUE),
+ PT(59, 49, 3, 2, FALSE),
+ PT(51, 34, 4, 3, TRUE),
+ PT(61, 52, 2, 2, TRUE),
+ PT(20, 34, 5, 0, FALSE),
+ PT(40, 16, 3, 3, FALSE),
+ PT(33, 49, 2, 0, FALSE),
+ PT(45, 22, 4, 0, TRUE),
+ PT(30, 5, 6, 1, TRUE),
+ PT(15, 48, 6, 0, TRUE),
+ PT(14, 26, 6, 2, TRUE),
+ PT(56, 46, 5, 0, FALSE),
+ PT(38, 55, 3, 3, FALSE),
+ PT(43, 19, 6, 1, TRUE),
+ PT(31, 30, 6, 3, TRUE),
+ PT(10, 40, 4, 2, FALSE),
+ PT(50, 28, 3, 1, FALSE),
+ PT(31, 63, 3, 0, TRUE),
+ PT(57, 57, 5, 0, TRUE),
+ PT(44, 27, 2, 2, FALSE),
+ PT(21, 42, 2, 3, TRUE),
+ PT(50, 15, 4, 0, TRUE),
+ PT(48, 33, 3, 0, FALSE),
+ PT(35, 42, 4, 3, TRUE),
+ PT(61, 7, 2, 0, FALSE),
+ PT(11, 63, 5, 3, TRUE),
+ PT(49, 2, 5, 3, FALSE),
+ PT( 8, 57, 5, 3, TRUE),
+ PT(63, 32, 3, 0, FALSE),
+ PT(45, 52, 2, 0, TRUE),
+ PT(46, 52, 2, 0, FALSE),
+ PT(38, 18, 4, 1, TRUE),
+ PT(37, 10, 6, 3, TRUE),
+ PT(52, 9, 4, 2, TRUE),
+ PT(10, 62, 2, 3, FALSE),
+ PT(26, 23, 2, 0, TRUE),
+ PT(56, 28, 4, 0, FALSE),
+ PT(17, 33, 4, 3, FALSE),
+ PT( 5, 15, 3, 0, FALSE),
+ PT(38, 43, 6, 1, FALSE),
+ PT(10, 12, 2, 3, FALSE),
+ PT( 3, 41, 3, 2, TRUE),
+ PT(41, 59, 4, 1, TRUE),
+ PT(22, 27, 5, 0, TRUE),
+ PT( 7, 9, 2, 3, TRUE),
+ PT(23, 44, 3, 2, FALSE),
+ PT(53, 51, 6, 0, FALSE),
+ PT(23, 18, 3, 3, FALSE),
+ PT(61, 26, 5, 1, TRUE),
+ PT(33, 29, 2, 0, FALSE),
+ PT(10, 8, 2, 3, TRUE),
+ PT(20, 60, 6, 3, FALSE),
+ PT(40, 54, 6, 3, FALSE),
+ PT(59, 32, 3, 1, TRUE),
+ PT(19, 34, 3, 2, TRUE),
+ PT(19, 58, 2, 2, TRUE),
+ PT( 2, 35, 5, 2, FALSE),
+ PT(62, 25, 2, 2, FALSE),
+ PT(57, 60, 3, 1, FALSE),
+ PT(16, 8, 3, 3, FALSE),
+ PT(10, 19, 5, 0, TRUE),
+ PT(63, 56, 5, 2, FALSE),
+ PT( 7, 35, 3, 3, TRUE),
+ PT(25, 42, 4, 2, FALSE),
+ PT(20, 60, 3, 3, TRUE),
+ PT(13, 4, 6, 3, TRUE),
+ PT(26, 47, 5, 0, FALSE),
+ PT(42, 29, 3, 3, FALSE),
+ PT(17, 55, 5, 0, TRUE),
+ PT(40, 39, 2, 1, FALSE),
+ PT(13, 0, 4, 3, FALSE),
+ PT(10, 60, 4, 3, FALSE),
+ PT(31, 28, 6, 1, TRUE),
+ PT( 4, 58, 5, 2, FALSE),
+ PT(36, 61, 5, 1, TRUE),
+ PT(38, 49, 5, 3, TRUE),
+ PT(19, 28, 4, 0, TRUE),
+ PT(62, 18, 4, 1, TRUE),
+ PT(54, 10, 3, 1, FALSE),
+ PT(45, 30, 3, 0, TRUE),
+ PT( 5, 31, 3, 1, TRUE),
+ PT(30, 10, 3, 3, TRUE),
+ PT(32, 8, 4, 2, FALSE),
+ PT(44, 12, 6, 1, TRUE),
+ PT(29, 31, 2, 0, TRUE),
+ PT(14, 18, 2, 0, FALSE),
+ PT(39, 18, 3, 0, TRUE),
+ PT(42, 19, 6, 0, TRUE),
+ PT(28, 4, 6, 0, FALSE),
+ PT(26, 56, 3, 3, TRUE),
+ PT(44, 53, 4, 2, TRUE),
+ PT( 7, 11, 6, 1, TRUE),
+ PT(45, 2, 3, 1, FALSE),
+ PT(42, 53, 6, 2, TRUE),
+ PT(22, 47, 2, 2, FALSE),
+ PT(17, 49, 6, 1, TRUE),
+ PT(44, 49, 3, 3, FALSE),
+ PT(60, 58, 4, 3, TRUE),
+ PT(60, 43, 2, 1, FALSE),
+ PT(39, 29, 2, 1, FALSE),
+ PT(54, 44, 5, 1, TRUE),
+ PT(37, 59, 6, 2, TRUE),
+ PT(18, 61, 4, 3, TRUE),
+ PT(19, 35, 3, 0, TRUE),
+ PT(51, 44, 4, 3, FALSE),
+ PT( 9, 60, 2, 1, FALSE),
+ PT(21, 26, 4, 1, TRUE),
+ PT(33, 7, 3, 1, FALSE),
+ PT(34, 37, 4, 0, FALSE),
+ PT(25, 27, 5, 2, FALSE),
+ PT(58, 25, 6, 2, TRUE),
+ PT( 5, 38, 3, 2, TRUE),
+ PT(35, 34, 4, 2, TRUE),
+ PT(14, 30, 2, 0, TRUE),
+ PT(19, 48, 2, 1, FALSE),
+ PT(44, 34, 4, 2, TRUE),
+ PT(10, 29, 3, 0, FALSE),
+ PT(35, 62, 3, 2, TRUE),
+ PT( 2, 40, 4, 2, TRUE),
+ PT(33, 14, 4, 0, FALSE),
+ PT(33, 34, 6, 3, TRUE),
+ PT(24, 51, 4, 3, TRUE),
+ PT(35, 35, 6, 0, TRUE),
+ PT(36, 26, 3, 1, FALSE),
+ PT(62, 37, 4, 2, FALSE),
+ PT(36, 1, 3, 0, FALSE),
+ PT(52, 16, 4, 1, FALSE),
+ PT( 7, 0, 6, 3, TRUE),
+ PT( 6, 32, 4, 0, FALSE),
+ PT(58, 2, 5, 1, TRUE),
+ PT( 7, 44, 5, 2, FALSE),
+ PT( 9, 47, 5, 1, FALSE),
+ PT( 1, 50, 5, 2, FALSE),
+ PT( 0, 53, 2, 1, TRUE),
+ PT(43, 60, 3, 3, TRUE),
+ PT(54, 55, 3, 3, FALSE),
+ PT(32, 53, 3, 2, TRUE),
+ PT(12, 7, 6, 1, TRUE),
+ PT(22, 8, 2, 1, FALSE),
+ PT(63, 54, 2, 0, TRUE),
+ PT(11, 31, 5, 2, TRUE),
+ PT(33, 32, 6, 1, TRUE),
+ PT(23, 26, 5, 3, FALSE),
+ PT(22, 1, 5, 3, TRUE),
+ PT(47, 28, 6, 2, FALSE),
+ PT(41, 49, 5, 3, FALSE),
+ PT(59, 56, 6, 0, TRUE),
+ PT(13, 22, 2, 1, FALSE),
+ PT( 7, 41, 4, 2, FALSE),
+ PT(51, 60, 6, 2, FALSE),
+ PT(62, 30, 3, 0, FALSE),
+ PT(48, 2, 6, 2, FALSE),
+ PT(42, 52, 3, 1, TRUE),
+ PT(46, 35, 3, 0, FALSE),
+ PT(52, 0, 3, 3, TRUE),
+ PT(32, 14, 5, 0, FALSE),
+ PT(21, 51, 6, 3, TRUE),
+ PT(39, 53, 4, 1, TRUE),
+ PT(55, 62, 2, 0, TRUE),
+ PT(50, 46, 6, 3, FALSE),
+ PT(58, 2, 5, 1, TRUE),
+ PT( 0, 54, 3, 2, TRUE),
+ PT(19, 41, 2, 3, FALSE),
+ PT( 8, 43, 6, 3, TRUE),
+ PT( 8, 2, 4, 3, TRUE),
+ PT(50, 45, 6, 2, FALSE),
+ PT(48, 54, 5, 0, TRUE),
+ PT(46, 16, 2, 1, FALSE),
+ PT(60, 46, 5, 1, FALSE),
+ PT( 4, 51, 6, 0, FALSE),
+ PT(63, 1, 4, 1, FALSE),
+ PT(55, 20, 3, 2, TRUE),
+ PT(39, 0, 5, 3, TRUE),
+ PT(12, 57, 4, 3, FALSE),
+ PT(39, 4, 4, 0, TRUE),
+ PT(25, 8, 3, 2, TRUE),
+ PT( 1, 4, 3, 3, FALSE),
+ PT(39, 27, 5, 1, TRUE),
+ PT(49, 23, 3, 3, TRUE),
+ PT( 7, 1, 5, 2, TRUE),
+ PT(46, 59, 3, 3, TRUE),
+ PT(52, 36, 6, 0, TRUE),
+ PT(50, 43, 4, 2, FALSE),
+ PT(14, 7, 3, 3, FALSE),
+ PT(15, 51, 2, 0, FALSE),
+ PT(22, 33, 6, 1, FALSE),
+ PT(57, 2, 3, 1, FALSE),
+ PT(51, 61, 4, 1, FALSE),
+ PT(12, 37, 3, 1, FALSE),
+ PT(41, 41, 5, 0, FALSE),
+ PT(58, 50, 4, 3, FALSE),
+ PT(11, 19, 4, 1, FALSE),
+ PT(31, 15, 3, 2, FALSE),
+ PT( 4, 44, 4, 0, FALSE),
+ PT(57, 26, 3, 1, TRUE),
+ PT(26, 42, 3, 3, TRUE),
+ PT(36, 19, 3, 1, FALSE),
+ PT(49, 59, 6, 1, TRUE),
+ PT(57, 35, 5, 0, FALSE),
+ PT(49, 7, 6, 0, TRUE),
+ PT(31, 16, 4, 0, FALSE),
+ PT(41, 23, 6, 1, FALSE),
+ PT(38, 59, 5, 2, TRUE),
+ PT( 2, 60, 3, 2, FALSE),
+ PT(14, 0, 4, 0, FALSE),
+ PT(20, 62, 6, 3, TRUE),
+ PT( 1, 15, 5, 2, TRUE),
+ PT( 6, 18, 4, 3, TRUE),
+ PT(48, 19, 3, 0, TRUE),
+ PT( 0, 51, 5, 1, FALSE),
+ PT(12, 7, 4, 3, TRUE),
+ PT(17, 58, 3, 2, FALSE),
+ PT(21, 10, 2, 1, TRUE),
+ PT(31, 13, 5, 1, FALSE),
+ PT(55, 7, 5, 1, FALSE),
+ PT(52, 53, 6, 2, FALSE),
+ PT(40, 22, 4, 3, TRUE),
+ PT( 6, 2, 6, 3, FALSE),
+ PT( 9, 35, 6, 0, FALSE),
+ PT(20, 2, 5, 0, FALSE),
+ PT(57, 50, 6, 2, FALSE),
+ PT(36, 53, 2, 1, FALSE),
+ PT(18, 34, 4, 3, FALSE),
+ PT( 9, 7, 6, 1, TRUE),
+ PT(15, 62, 3, 3, FALSE),
+ PT( 0, 60, 6, 1, TRUE),
+ PT(16, 55, 2, 2, FALSE),
+ PT(58, 3, 4, 2, TRUE),
+ PT(45, 30, 4, 2, FALSE),
+ PT(54, 54, 4, 3, FALSE),
+ PT(31, 60, 3, 1, FALSE),
+ PT(55, 51, 4, 2, TRUE),
+ PT(35, 19, 3, 3, TRUE),
+ PT(51, 13, 2, 1, TRUE),
+ PT(37, 48, 3, 3, FALSE),
+ PT(23, 3, 3, 0, FALSE),
+ PT(24, 24, 2, 2, FALSE),
+ PT(48, 7, 4, 1, FALSE),
+ PT(62, 51, 4, 0, TRUE),
+ PT(20, 55, 2, 3, FALSE),
+ PT(22, 0, 2, 1, FALSE),
+ PT(44, 18, 5, 3, TRUE),
+ PT(37, 63, 3, 3, FALSE),
+ PT(36, 25, 2, 3, FALSE),
+ PT(22, 15, 6, 2, TRUE),
+ PT(45, 16, 2, 0, TRUE),
+ PT(36, 42, 5, 0, FALSE),
+ PT(25, 37, 5, 3, FALSE),
+ PT(12, 22, 3, 3, TRUE),
+ PT(56, 33, 6, 3, FALSE),
+ PT(61, 26, 5, 3, TRUE),
+ PT(59, 50, 2, 1, FALSE),
+ PT(54, 19, 5, 0, TRUE),
+ PT(14, 48, 6, 0, TRUE),
+ PT(25, 7, 5, 3, TRUE),
+ PT(37, 35, 5, 0, FALSE),
+ PT(32, 8, 5, 0, TRUE),
+ PT(42, 0, 6, 0, FALSE),
+ PT(48, 56, 4, 1, TRUE),
+ PT(30, 15, 3, 3, TRUE),
+ PT(59, 27, 6, 0, FALSE),
+ PT(58, 55, 5, 3, TRUE),
+ PT(57, 55, 6, 2, TRUE),
+ PT(57, 45, 5, 3, TRUE),
+ PT(31, 46, 3, 3, FALSE),
+ PT(26, 43, 3, 3, FALSE),
+ PT(20, 23, 4, 0, FALSE),
+ PT(47, 3, 2, 0, TRUE),
+ PT(29, 0, 6, 0, FALSE),
+ PT(23, 43, 3, 2, TRUE),
+ PT(53, 40, 4, 2, TRUE),
+ PT(59, 15, 2, 0, TRUE),
+ PT( 9, 4, 5, 3, FALSE),
+ PT(35, 17, 3, 3, FALSE),
+ PT(19, 55, 3, 3, FALSE),
+ PT(55, 55, 3, 3, FALSE),
+ PT( 7, 1, 6, 1, FALSE),
+ PT(20, 6, 6, 1, FALSE),
+ PT(17, 12, 5, 3, FALSE),
+ PT(54, 46, 4, 2, FALSE),
+ PT(21, 42, 3, 2, FALSE),
+ PT(34, 21, 6, 2, FALSE),
+ PT(44, 30, 6, 2, TRUE),
+ PT(34, 39, 6, 1, TRUE),
+ PT(25, 63, 5, 2, TRUE),
+ PT(33, 51, 2, 2, TRUE),
+ PT(38, 26, 2, 0, TRUE),
+ PT(22, 62, 2, 1, FALSE),
+ PT(43, 36, 2, 2, TRUE),
+ PT(60, 15, 5, 2, TRUE),
+ PT(49, 21, 6, 3, FALSE),
+ PT(63, 36, 3, 2, TRUE),
+ PT(37, 1, 6, 3, TRUE),
+ PT(51, 22, 3, 1, FALSE),
+ PT(31, 14, 2, 0, FALSE),
+ PT(47, 11, 2, 1, FALSE),
+ PT(42, 26, 4, 2, TRUE),
+ PT(23, 10, 6, 2, TRUE),
+ PT( 9, 40, 6, 2, TRUE),
+ PT( 2, 19, 6, 3, FALSE),
+ PT(52, 47, 2, 3, TRUE),
+ PT( 3, 4, 6, 0, TRUE),
+ PT(62, 38, 2, 0, TRUE),
+ PT(53, 51, 6, 0, TRUE),
+ PT(34, 23, 4, 1, TRUE),
+ PT(29, 5, 5, 1, TRUE),
+ PT(46, 39, 4, 0, FALSE),
+ PT( 3, 43, 3, 2, TRUE),
+ PT( 1, 25, 3, 3, FALSE),
+ PT(14, 5, 3, 0, FALSE),
+ PT(22, 37, 2, 3, TRUE),
+ PT( 2, 40, 3, 0, FALSE),
+ PT(25, 11, 4, 2, FALSE),
+ PT(62, 53, 2, 3, FALSE),
+ PT(46, 41, 4, 2, TRUE),
+ PT(62, 56, 3, 3, FALSE),
+ PT(58, 47, 2, 1, FALSE),
+ PT(20, 23, 5, 2, TRUE),
+ PT(17, 18, 6, 0, FALSE),
+ PT(21, 49, 3, 0, FALSE),
+ PT( 8, 11, 5, 0, TRUE),
+ PT(45, 0, 6, 1, TRUE),
+ PT(44, 6, 3, 1, FALSE),
+ PT(20, 28, 5, 3, FALSE),
+ PT( 4, 8, 2, 1, FALSE),
+ PT(27, 43, 5, 2, TRUE),
+ PT(42, 55, 6, 1, TRUE),
+ PT(16, 39, 5, 2, FALSE),
+ PT(29, 14, 6, 2, FALSE),
+ PT(32, 2, 2, 1, FALSE),
+ PT(30, 26, 5, 3, FALSE),
+ PT( 7, 11, 2, 0, FALSE),
+ PT(54, 30, 6, 1, TRUE),
+ PT(43, 40, 3, 1, TRUE),
+ PT(49, 37, 3, 3, TRUE),
+ PT(56, 58, 5, 3, TRUE),
+ PT(57, 48, 5, 3, TRUE),
+ PT(18, 9, 2, 2, FALSE),
+ PT(14, 8, 3, 0, TRUE),
+ PT( 0, 13, 5, 2, FALSE),
+ PT(27, 14, 6, 2, FALSE),
+ PT(17, 37, 2, 2, TRUE),
+ PT(12, 45, 4, 3, FALSE),
+ PT(54, 44, 2, 3, FALSE),
+ PT(49, 49, 5, 2, FALSE),
+ PT( 3, 26, 2, 3, FALSE),
+ PT(28, 50, 2, 2, FALSE),
+ PT(10, 62, 6, 3, FALSE),
+ PT(51, 27, 4, 3, TRUE),
+ PT(31, 50, 3, 0, FALSE),
+ PT(51, 38, 6, 1, TRUE),
+ PT(26, 19, 3, 1, FALSE),
+ PT(15, 52, 3, 2, FALSE),
+ PT(53, 44, 5, 3, TRUE),
+ PT(56, 3, 3, 0, FALSE),
+ PT(21, 15, 4, 3, TRUE),
+ PT(49, 41, 4, 0, FALSE),
+ PT(40, 14, 5, 0, FALSE),
+ PT(49, 44, 5, 3, FALSE),
+ PT(21, 25, 3, 1, TRUE),
+ PT(16, 3, 5, 3, TRUE),
+ PT(46, 42, 6, 1, FALSE),
+ PT(42, 39, 3, 1, TRUE),
+ PT(54, 4, 3, 3, FALSE),
+ PT(59, 4, 4, 0, TRUE),
+ PT( 7, 47, 3, 0, TRUE),
+ PT(39, 29, 3, 2, TRUE),
+ PT(60, 61, 5, 3, FALSE),
+ PT(37, 8, 6, 1, FALSE),
+ PT(59, 52, 5, 1, FALSE),
+ PT(12, 16, 2, 1, TRUE),
+ PT(37, 53, 3, 1, FALSE),
+ PT(47, 25, 5, 0, FALSE),
+ PT(23, 0, 5, 1, TRUE),
+ PT(10, 28, 2, 3, TRUE),
+ PT(10, 17, 3, 1, TRUE),
+ PT(53, 19, 6, 3, TRUE),
+ PT(41, 28, 5, 0, FALSE),
+ PT(12, 49, 6, 2, TRUE),
+ PT(60, 16, 3, 1, FALSE),
+ PT(27, 58, 5, 2, TRUE),
+ PT(58, 28, 3, 0, FALSE),
+ PT(34, 16, 5, 2, TRUE),
+ PT(28, 60, 2, 1, FALSE),
+ PT(23, 24, 5, 1, FALSE),
+ PT(11, 43, 5, 3, TRUE),
+ PT(45, 4, 5, 3, FALSE),
+ PT(60, 19, 4, 1, TRUE),
+ PT( 1, 28, 5, 3, FALSE),
+ PT(20, 22, 4, 1, FALSE),
+ PT(12, 36, 2, 1, TRUE),
+ PT(53, 55, 6, 2, FALSE),
+ PT(27, 48, 3, 3, FALSE),
+ PT(58, 28, 4, 0, FALSE),
+ PT( 6, 6, 6, 3, FALSE),
+ PT( 9, 21, 3, 1, FALSE),
+ PT(27, 26, 4, 3, TRUE),
+ PT(15, 51, 6, 2, TRUE),
+ PT(55, 6, 4, 1, TRUE),
+ PT(58, 18, 3, 2, TRUE),
+ PT( 0, 22, 5, 0, TRUE),
+ PT(14, 29, 6, 2, TRUE),
+ PT(63, 56, 2, 3, FALSE),
+ PT(42, 60, 6, 2, FALSE),
+ PT(19, 50, 2, 0, FALSE),
+ PT(23, 44, 6, 3, TRUE),
+ PT(41, 42, 3, 3, FALSE),
+ PT(53, 47, 5, 2, TRUE),
+ PT(60, 42, 2, 0, TRUE),
+ PT(40, 19, 4, 0, TRUE),
+ PT(25, 30, 6, 2, FALSE),
+ PT(12, 6, 5, 2, TRUE),
+ PT( 9, 4, 3, 2, FALSE),
+ PT(29, 47, 4, 3, FALSE),
+ PT(57, 7, 2, 3, FALSE),
+ PT(20, 4, 5, 2, TRUE),
+ PT(58, 47, 5, 3, FALSE),
+ PT(41, 21, 6, 2, TRUE),
+ PT(36, 2, 6, 3, FALSE),
+ PT(63, 2, 3, 1, FALSE),
+ PT(15, 24, 4, 2, FALSE),
+ PT(22, 29, 3, 0, TRUE),
+ PT(20, 22, 2, 0, FALSE),
+ PT(41, 27, 2, 1, TRUE),
+ PT(21, 14, 3, 0, TRUE),
+ PT(58, 46, 5, 1, TRUE),
+ PT( 8, 48, 2, 2, TRUE),
+ PT(53, 22, 6, 0, FALSE),
+ PT(46, 24, 6, 2, TRUE),
+ PT(59, 11, 3, 2, FALSE),
+ PT(58, 24, 2, 1, TRUE),
+ PT(41, 19, 3, 3, FALSE),
+ PT(32, 19, 4, 3, TRUE),
+ PT( 4, 29, 6, 2, FALSE),
+ PT( 0, 56, 3, 0, TRUE),
+ PT( 8, 57, 6, 1, FALSE),
+ PT(32, 16, 4, 3, FALSE),
+ PT( 8, 2, 5, 0, FALSE),
+ PT(63, 15, 2, 3, FALSE),
+ PT(48, 31, 3, 0, TRUE),
+ PT(32, 45, 2, 0, FALSE),
+ PT(56, 23, 3, 2, FALSE),
+ PT(24, 49, 4, 3, TRUE),
+ PT(51, 56, 6, 0, FALSE),
+ PT(22, 51, 4, 1, TRUE),
+ PT( 0, 1, 6, 3, FALSE),
+ PT(13, 2, 4, 1, TRUE),
+ PT(57, 4, 3, 3, TRUE),
+ PT(14, 48, 4, 2, FALSE),
+ PT( 6, 1, 5, 2, FALSE),
+ PT(52, 51, 6, 2, TRUE),
+ PT(22, 52, 5, 3, FALSE),
+ PT(50, 22, 4, 2, FALSE),
+ PT(38, 57, 6, 2, FALSE),
+ PT(31, 60, 3, 2, TRUE),
+ PT(40, 29, 6, 3, TRUE),
+ PT(23, 21, 5, 1, TRUE),
+ PT(39, 57, 6, 0, FALSE),
+ PT(11, 27, 3, 0, FALSE),
+ PT(53, 32, 5, 2, TRUE),
+ PT(11, 53, 3, 2, FALSE),
+ PT( 3, 14, 4, 0, TRUE),
+ PT( 6, 12, 4, 0, FALSE),
+ PT( 2, 24, 6, 2, FALSE),
+ PT(30, 54, 5, 2, TRUE),
+ PT(22, 12, 3, 0, TRUE),
+ PT(37, 9, 5, 2, FALSE),
+ PT(55, 5, 5, 3, FALSE),
+ PT(46, 43, 5, 2, FALSE),
+ PT(36, 26, 2, 2, FALSE),
+ PT(39, 4, 2, 0, FALSE),
+ PT(50, 56, 6, 1, TRUE),
+ PT(55, 21, 6, 2, TRUE),
+ PT(17, 63, 3, 2, TRUE),
+ PT(35, 35, 3, 3, TRUE),
+ PT(41, 63, 3, 2, TRUE),
+ PT(26, 60, 5, 1, TRUE),
+ PT(27, 44, 5, 2, FALSE),
+ PT(56, 59, 6, 3, FALSE),
+ PT( 4, 19, 6, 1, TRUE),
+ PT(44, 20, 2, 1, FALSE),
+ PT(26, 9, 3, 1, TRUE),
+ PT(54, 17, 4, 2, FALSE),
+ PT(58, 63, 2, 0, TRUE),
+ PT( 1, 14, 5, 1, TRUE),
+ PT(59, 3, 5, 1, FALSE),
+ PT( 8, 13, 5, 1, TRUE),
+ PT(43, 19, 4, 3, TRUE),
+ PT(58, 60, 3, 2, FALSE),
+ PT(58, 21, 5, 1, FALSE),
+ PT(36, 0, 2, 3, TRUE),
+ PT(62, 10, 2, 2, TRUE),
+ PT(12, 41, 5, 2, TRUE),
+ PT(31, 21, 6, 0, FALSE),
+ PT(53, 24, 3, 0, TRUE),
+ PT(61, 55, 6, 3, TRUE),
+ PT(18, 56, 3, 1, TRUE),
+ PT(59, 2, 4, 0, FALSE),
+ PT( 8, 33, 3, 0, TRUE),
+ PT(46, 54, 3, 2, TRUE),
+ PT(21, 61, 4, 2, FALSE),
+ PT(34, 12, 4, 3, TRUE),
+ PT(54, 63, 6, 1, TRUE),
+ PT(51, 18, 2, 0, TRUE),
+ PT(26, 25, 3, 3, TRUE),
+ PT(43, 36, 2, 1, FALSE),
+ PT(17, 42, 3, 0, FALSE),
+ PT(37, 50, 5, 1, FALSE),
+ PT(44, 26, 2, 1, FALSE),
+ PT(38, 6, 2, 0, FALSE),
+ PT(17, 41, 6, 1, TRUE),
+ PT(44, 9, 2, 2, FALSE),
+ PT(43, 18, 5, 1, TRUE),
+ PT(29, 3, 4, 2, FALSE),
+ PT( 0, 18, 2, 2, TRUE),
+ PT(34, 61, 4, 3, FALSE),
+ PT(21, 55, 3, 1, FALSE),
+ PT(15, 18, 6, 3, TRUE),
+ PT(36, 1, 3, 0, FALSE),
+ PT(42, 23, 2, 1, TRUE),
+ PT(20, 59, 5, 0, TRUE),
+ PT(42, 25, 6, 1, FALSE),
+ PT(45, 23, 2, 3, TRUE),
+ PT(11, 44, 6, 1, TRUE),
+ PT( 7, 45, 6, 2, FALSE),
+ PT( 7, 56, 3, 2, TRUE),
+ PT(31, 54, 4, 1, FALSE),
+ PT(17, 10, 2, 3, TRUE),
+ PT(20, 17, 2, 1, TRUE),
+ PT(42, 23, 4, 2, TRUE),
+ PT( 1, 58, 3, 2, FALSE),
+ PT(38, 39, 6, 0, FALSE),
+ PT(45, 59, 6, 2, TRUE),
+ PT(58, 48, 6, 2, FALSE),
+ PT( 6, 58, 3, 2, FALSE),
+ PT(45, 5, 2, 1, TRUE),
+ PT(33, 50, 2, 1, FALSE),
+ PT(62, 30, 5, 2, FALSE),
+ PT(58, 63, 5, 2, TRUE),
+ PT(32, 42, 6, 2, FALSE),
+ PT(38, 3, 3, 1, FALSE),
+ PT(25, 39, 5, 3, FALSE),
+ PT(49, 4, 4, 3, FALSE),
+ PT(42, 63, 6, 0, FALSE),
+ PT(37, 35, 5, 1, FALSE),
+ PT( 8, 8, 6, 2, TRUE),
+ PT(44, 48, 3, 3, FALSE),
+ PT( 8, 5, 3, 0, FALSE),
+ PT( 6, 9, 5, 2, TRUE),
+ PT(25, 0, 4, 3, TRUE),
+ PT(13, 16, 3, 0, TRUE),
+ PT(28, 0, 2, 1, TRUE),
+ PT(61, 11, 4, 2, FALSE),
+ PT(46, 31, 2, 3, FALSE),
+ PT(61, 24, 6, 2, FALSE),
+ PT(18, 30, 2, 2, TRUE),
+ PT(21, 57, 4, 2, TRUE),
+ PT(51, 15, 2, 3, TRUE),
+ PT(26, 28, 3, 1, TRUE),
+ PT(55, 41, 3, 1, TRUE),
+ PT(59, 56, 2, 1, FALSE),
+ PT(29, 34, 6, 2, FALSE),
+ PT(38, 10, 6, 0, TRUE),
+ PT(22, 45, 2, 1, TRUE),
+ PT(13, 32, 4, 3, TRUE),
+ PT(36, 29, 2, 3, FALSE),
+ PT(46, 43, 3, 0, FALSE),
+ PT(22, 42, 3, 1, TRUE),
+ PT(36, 23, 6, 3, FALSE),
+ PT( 2, 5, 5, 1, TRUE),
+ PT(55, 26, 2, 3, TRUE),
+ PT(17, 61, 5, 2, FALSE),
+ PT(30, 47, 4, 1, FALSE),
+ PT(44, 41, 3, 1, FALSE),
+ PT(47, 4, 4, 2, TRUE),
+ PT(54, 12, 6, 2, TRUE),
+ PT(48, 62, 2, 1, FALSE),
+ PT(17, 48, 6, 3, TRUE),
+ PT(18, 33, 5, 3, FALSE),
+ PT(33, 48, 2, 3, TRUE),
+ PT(44, 61, 4, 2, FALSE),
+ PT(17, 35, 2, 2, FALSE),
+ PT(26, 50, 2, 3, TRUE),
+ PT(57, 39, 3, 0, FALSE),
+ PT(15, 36, 3, 0, TRUE),
+ PT( 0, 61, 6, 3, TRUE),
+ PT(44, 60, 3, 2, FALSE),
+ PT(11, 57, 4, 1, TRUE),
+ PT(14, 4, 3, 3, TRUE),
+ PT(28, 49, 2, 2, FALSE),
+ PT( 0, 4, 2, 2, TRUE),
+ PT(38, 42, 5, 1, FALSE),
+ PT(32, 37, 5, 1, FALSE),
+ PT(11, 60, 6, 1, TRUE),
+ PT(17, 11, 5, 3, FALSE),
+ PT(55, 34, 5, 3, FALSE),
+ PT(14, 34, 4, 3, FALSE),
+ PT(24, 45, 4, 3, TRUE),
+ PT( 6, 12, 3, 2, FALSE),
+ PT(38, 24, 5, 3, TRUE),
+ PT(58, 1, 5, 1, FALSE),
+ PT(47, 49, 6, 2, FALSE),
+ PT(31, 52, 3, 1, FALSE),
+ PT(49, 5, 2, 0, FALSE),
+ PT(46, 23, 6, 2, FALSE),
+ PT(24, 34, 4, 1, TRUE),
+ PT(35, 33, 6, 1, FALSE),
+ PT( 7, 8, 4, 1, FALSE),
+ PT(38, 28, 4, 1, FALSE),
+ PT(49, 18, 5, 3, TRUE),
+ PT( 8, 31, 2, 0, FALSE),
+ PT(39, 21, 5, 1, FALSE),
+ PT(31, 11, 4, 3, FALSE),
+ PT(47, 20, 6, 2, TRUE),
+ PT(36, 31, 4, 3, FALSE),
+ PT(59, 35, 6, 1, TRUE),
+ PT(32, 62, 5, 2, TRUE),
+ PT(23, 12, 2, 2, TRUE),
+ PT(19, 57, 3, 1, FALSE),
+ PT(48, 20, 4, 2, TRUE),
+ PT( 9, 7, 2, 3, TRUE),
+ PT(56, 56, 3, 3, TRUE),
+ PT(41, 36, 4, 3, TRUE),
+ PT(23, 39, 5, 0, FALSE),
+ PT(27, 18, 5, 1, FALSE),
+ PT(43, 61, 5, 2, TRUE),
+ PT(25, 52, 3, 2, FALSE),
+ PT( 1, 29, 2, 0, FALSE),
+ PT( 8, 57, 2, 0, TRUE),
+ PT(14, 54, 3, 1, TRUE),
+ PT(38, 19, 2, 0, FALSE),
+ PT(22, 40, 3, 3, FALSE),
+ PT(60, 40, 2, 3, TRUE),
+ PT(62, 57, 6, 2, FALSE),
+ PT(10, 3, 5, 3, FALSE),
+ PT(55, 26, 2, 1, TRUE),
+ PT(43, 51, 4, 3, FALSE),
+ PT(19, 44, 4, 0, TRUE),
+ PT(37, 20, 2, 0, FALSE),
+ PT(22, 11, 6, 2, TRUE),
+ PT(29, 53, 6, 1, TRUE),
+ PT(33, 8, 6, 1, TRUE),
+ PT(40, 33, 3, 1, FALSE),
+ PT(18, 12, 3, 1, TRUE),
+ PT(54, 42, 3, 0, TRUE),
+ PT(44, 43, 4, 1, TRUE),
+ PT( 1, 15, 4, 3, FALSE),
+ PT(23, 12, 3, 0, FALSE),
+ PT( 9, 15, 2, 0, TRUE),
+ PT(43, 36, 3, 2, FALSE),
+ PT( 9, 9, 2, 2, TRUE),
+ PT(54, 8, 2, 1, TRUE),
+ PT(32, 57, 4, 0, TRUE),
+ PT( 0, 58, 3, 3, TRUE),
+ PT(43, 54, 6, 0, TRUE),
+ PT( 2, 55, 2, 1, TRUE),
+ PT( 4, 52, 6, 2, TRUE),
+ PT(55, 61, 3, 1, FALSE),
+ PT(23, 61, 2, 1, TRUE),
+ PT(43, 54, 5, 3, TRUE),
+ PT(19, 30, 2, 1, TRUE),
+ PT(62, 17, 6, 1, TRUE),
+ PT(39, 58, 5, 2, TRUE),
+ PT(30, 49, 3, 1, FALSE),
+ PT( 3, 3, 5, 2, TRUE),
+ PT(37, 55, 3, 3, TRUE),
+ PT(17, 1, 4, 1, FALSE),
+ PT(28, 18, 2, 3, TRUE),
+ PT(48, 58, 6, 0, FALSE),
+ PT(23, 29, 5, 0, TRUE),
+ PT(14, 19, 4, 3, TRUE),
+ PT(26, 46, 4, 2, FALSE),
+ PT(45, 0, 3, 2, FALSE),
+ PT(23, 40, 3, 2, TRUE),
+ PT( 9, 31, 5, 3, FALSE),
+ PT(26, 45, 4, 3, FALSE),
+ PT(10, 19, 6, 1, FALSE),
+ PT(62, 0, 4, 3, TRUE),
+ PT(11, 59, 6, 0, FALSE),
+ PT( 8, 58, 5, 2, TRUE),
+ PT(34, 18, 3, 3, FALSE),
+ PT(52, 29, 5, 1, TRUE),
+ PT(38, 34, 6, 2, TRUE),
+ PT(23, 44, 2, 3, TRUE),
+ PT(41, 19, 5, 2, TRUE),
+ PT(45, 16, 2, 0, FALSE),
+ PT(32, 49, 4, 1, TRUE),
+ PT(30, 51, 3, 0, FALSE),
+ PT(51, 6, 5, 2, TRUE),
+ PT(38, 20, 4, 3, TRUE),
+ PT(34, 29, 5, 1, FALSE),
+ PT(45, 6, 3, 0, FALSE),
+ PT( 7, 9, 5, 3, FALSE),
+ PT(33, 21, 5, 3, FALSE),
+ PT(33, 56, 4, 1, TRUE),
+ PT(53, 11, 6, 2, FALSE),
+ PT(36, 11, 4, 1, FALSE),
+ PT(30, 1, 2, 3, TRUE),
+ PT(11, 36, 2, 0, TRUE),
+ PT(23, 7, 4, 0, FALSE),
+ PT(20, 37, 6, 1, FALSE),
+ PT(26, 14, 5, 3, TRUE),
+ PT(53, 23, 3, 3, TRUE),
+ PT(12, 8, 4, 0, TRUE),
+ PT(48, 53, 3, 3, TRUE),
+ PT(12, 11, 4, 0, FALSE),
+ PT( 4, 16, 2, 0, TRUE),
+ PT(53, 17, 3, 3, FALSE),
+ PT(51, 61, 2, 3, FALSE),
+ PT(30, 43, 3, 2, TRUE),
+ PT(26, 25, 2, 0, FALSE),
+ PT( 4, 6, 4, 1, FALSE),
+ PT( 3, 61, 4, 2, FALSE),
+ PT(42, 14, 6, 2, TRUE),
+ PT( 3, 62, 2, 3, TRUE),
+ PT(11, 24, 6, 3, FALSE),
+ PT(61, 13, 4, 3, FALSE),
+ PT(53, 18, 4, 0, FALSE),
+ PT(31, 13, 2, 3, FALSE),
+ PT(35, 50, 3, 1, FALSE),
+ PT( 0, 61, 4, 3, FALSE),
+ PT(48, 25, 6, 3, FALSE),
+ PT(18, 14, 4, 1, TRUE),
+ PT( 1, 35, 5, 0, FALSE),
+ PT(59, 49, 2, 0, TRUE),
+ PT(45, 28, 6, 3, FALSE),
+ PT(42, 5, 2, 3, FALSE),
+ PT(20, 14, 6, 0, FALSE),
+ PT(58, 55, 3, 0, TRUE),
+ PT(31, 48, 4, 2, TRUE),
+ PT(16, 38, 5, 3, TRUE),
+ PT(34, 17, 3, 3, TRUE),
+ PT(46, 43, 3, 3, FALSE),
+ PT(22, 22, 4, 0, TRUE),
+ PT(50, 24, 6, 2, TRUE),
+ PT(35, 50, 3, 1, FALSE),
+ PT(61, 13, 3, 0, TRUE),
+ PT(57, 9, 4, 1, TRUE),
+ PT(48, 46, 4, 2, FALSE),
+ PT(30, 15, 4, 2, FALSE),
+ PT( 9, 33, 6, 0, TRUE),
+ PT( 5, 3, 2, 0, TRUE),
+ PT( 5, 34, 5, 1, FALSE),
+ PT( 3, 7, 6, 3, TRUE),
+ PT( 4, 8, 2, 1, TRUE),
+ PT( 5, 16, 6, 2, FALSE),
+ PT(55, 20, 5, 0, TRUE),
+ PT(10, 36, 6, 1, FALSE),
+ PT(52, 30, 3, 1, TRUE),
+ PT(18, 23, 5, 3, FALSE),
+ PT( 1, 2, 2, 1, TRUE),
+ PT(10, 12, 2, 0, TRUE),
+ PT( 2, 20, 2, 1, TRUE),
+ PT(13, 37, 4, 1, TRUE),
+ PT( 0, 7, 3, 1, FALSE),
+ PT(28, 40, 6, 2, TRUE),
+ PT( 8, 14, 5, 2, FALSE),
+ PT(27, 60, 2, 2, TRUE),
+ PT(28, 25, 3, 2, TRUE),
+ PT(50, 19, 3, 1, FALSE),
+ PT(28, 0, 6, 3, TRUE),
+ PT(34, 27, 6, 2, TRUE),
+ PT(57, 62, 2, 2, FALSE),
+ PT(50, 6, 6, 0, TRUE),
+ PT(23, 5, 5, 1, TRUE),
+ PT( 1, 15, 4, 0, FALSE),
+ PT(30, 15, 6, 2, FALSE),
+ PT(24, 3, 3, 3, TRUE),
+ PT(43, 0, 2, 2, FALSE),
+ PT(21, 58, 6, 0, FALSE),
+ PT(37, 48, 4, 0, TRUE),
+ PT(11, 0, 6, 3, TRUE),
+ PT(36, 55, 3, 2, TRUE),
+ PT(41, 33, 2, 3, FALSE),
+ PT(36, 15, 5, 2, FALSE),
+ PT(62, 21, 6, 3, FALSE),
+ PT(60, 45, 4, 1, TRUE),
+ PT(61, 60, 2, 3, TRUE),
+ PT(26, 28, 2, 1, TRUE),
+ PT(10, 41, 4, 1, FALSE),
+ PT(37, 63, 4, 3, FALSE),
+ PT(59, 57, 5, 3, TRUE),
+ PT(29, 8, 2, 3, FALSE),
+ PT(11, 25, 2, 2, FALSE),
+ PT(18, 1, 5, 2, FALSE),
+ PT(53, 17, 5, 1, FALSE),
+ PT( 2, 0, 2, 1, TRUE),
+ PT(57, 42, 6, 2, TRUE),
+ PT( 7, 26, 2, 0, TRUE),
+ PT(36, 14, 3, 3, FALSE),
+ PT(14, 44, 2, 2, TRUE),
+ PT( 8, 49, 3, 1, TRUE),
+ PT(33, 29, 4, 3, FALSE),
+ PT(29, 28, 5, 1, FALSE),
+ PT(29, 36, 2, 1, TRUE),
+ PT( 1, 0, 3, 0, FALSE),
+ PT(40, 42, 6, 3, TRUE),
+ PT(21, 15, 2, 1, TRUE),
+ PT(16, 50, 6, 3, FALSE),
+ PT(34, 19, 6, 0, TRUE),
+ PT(19, 5, 3, 3, FALSE),
+ PT(23, 53, 6, 2, TRUE),
+ PT(59, 14, 4, 2, FALSE),
+ PT(53, 58, 3, 2, TRUE),
+ PT(27, 54, 3, 1, TRUE),
+ PT( 3, 29, 4, 2, FALSE),
+ PT(15, 22, 6, 0, FALSE),
+ PT(45, 9, 4, 2, TRUE),
+ PT( 5, 33, 2, 1, TRUE),
+ PT(10, 39, 6, 3, FALSE),
+ PT( 4, 13, 3, 2, FALSE),
+ PT( 6, 62, 4, 0, TRUE),
+ PT(42, 39, 6, 1, TRUE),
+ PT(40, 14, 2, 2, TRUE),
+ PT(11, 23, 3, 2, TRUE),
+ PT(29, 50, 5, 2, TRUE),
+ PT( 8, 61, 5, 0, TRUE),
+ PT(33, 50, 2, 3, TRUE),
+ PT(51, 49, 4, 1, FALSE),
+ PT(14, 3, 4, 0, TRUE),
+ PT(13, 11, 2, 3, FALSE),
+ PT(62, 42, 5, 3, FALSE),
+ PT(25, 54, 5, 1, FALSE),
+ PT(13, 0, 2, 2, FALSE),
+ PT(34, 7, 6, 3, FALSE),
+ PT(10, 9, 2, 2, TRUE),
+ PT(20, 16, 4, 1, FALSE),
+ PT( 7, 22, 5, 2, FALSE),
+ PT(54, 19, 2, 2, TRUE),
+ PT( 9, 47, 3, 1, TRUE),
+ PT(32, 59, 5, 3, FALSE),
+ PT(58, 58, 2, 3, FALSE),
+ PT(13, 21, 5, 1, FALSE),
+ PT(57, 19, 5, 1, TRUE),
+ PT(11, 1, 5, 1, FALSE),
+ PT(19, 23, 3, 3, FALSE),
+ PT( 8, 23, 3, 3, FALSE),
+ PT(12, 15, 6, 2, FALSE),
+ PT(31, 49, 2, 1, FALSE),
+ PT( 7, 58, 3, 2, TRUE),
+ PT(53, 30, 2, 1, FALSE),
+ PT(36, 44, 2, 2, TRUE),
+ PT(14, 33, 3, 0, TRUE),
+ PT(52, 59, 6, 1, TRUE),
+ PT(25, 15, 5, 0, FALSE),
+ PT(16, 47, 5, 3, FALSE),
+ PT(35, 39, 6, 0, TRUE),
+ PT(57, 46, 3, 0, FALSE),
+ PT(60, 63, 4, 2, FALSE),
+ PT( 7, 35, 6, 0, FALSE),
+ PT(40, 19, 6, 2, TRUE),
+ PT(19, 10, 2, 0, FALSE),
+ PT(53, 25, 6, 1, TRUE),
+ PT(35, 40, 5, 0, TRUE),
+ PT(19, 47, 3, 1, FALSE),
+ PT(58, 25, 2, 2, FALSE),
+ PT(55, 54, 4, 3, FALSE),
+ PT(32, 59, 2, 2, TRUE),
+ PT(55, 57, 2, 0, FALSE),
+ PT(60, 33, 6, 2, FALSE),
+ PT(28, 56, 6, 0, FALSE),
+ PT(21, 7, 4, 3, FALSE),
+ PT(39, 33, 3, 0, TRUE),
+ PT(24, 17, 4, 1, TRUE),
+ PT(48, 40, 6, 3, TRUE),
+ PT(50, 45, 3, 3, TRUE),
+ PT(44, 63, 6, 0, FALSE),
+ PT(29, 47, 4, 3, FALSE),
+ PT( 1, 17, 3, 2, FALSE),
+ PT(59, 15, 2, 1, FALSE),
+ PT(42, 23, 4, 3, TRUE),
+ PT( 5, 0, 3, 1, TRUE),
+ PT(37, 28, 6, 1, FALSE),
+ PT( 4, 34, 5, 2, TRUE),
+ PT(16, 15, 4, 2, TRUE),
+ PT(13, 57, 6, 0, FALSE),
+ PT(11, 46, 4, 3, TRUE),
+ PT(45, 52, 2, 2, TRUE),
+ PT(62, 48, 6, 3, FALSE),
+ PT(22, 38, 5, 1, FALSE),
+ PT( 5, 63, 5, 1, TRUE),
+ PT(32, 59, 5, 3, FALSE),
+ PT(59, 28, 5, 3, TRUE),
+ PT( 1, 24, 2, 3, FALSE),
+ PT(22, 61, 2, 0, FALSE),
+ PT(10, 31, 3, 0, FALSE),
+ PT(23, 15, 4, 1, FALSE),
+ PT( 6, 19, 2, 0, TRUE),
+ PT(56, 33, 2, 3, TRUE),
+ PT(23, 10, 6, 3, TRUE),
+ PT(28, 25, 6, 0, FALSE),
+ PT(22, 56, 6, 0, TRUE),
+ PT(48, 16, 6, 3, FALSE),
+ PT(49, 47, 4, 3, FALSE),
+ PT(60, 27, 4, 1, TRUE),
+ PT(51, 47, 3, 0, TRUE),
+ PT(22, 53, 4, 2, TRUE),
+ PT(58, 24, 3, 3, TRUE),
+ PT(55, 1, 3, 3, FALSE),
+ PT(13, 24, 2, 1, FALSE),
+ PT(31, 28, 3, 1, TRUE),
+ PT( 7, 52, 5, 2, TRUE),
+ PT(11, 63, 6, 1, TRUE),
+ PT(30, 52, 3, 2, TRUE),
+ PT(44, 19, 5, 2, FALSE),
+ PT(32, 32, 2, 1, TRUE),
+ PT(32, 15, 6, 0, TRUE),
+ PT( 8, 15, 4, 2, FALSE),
+ PT(24, 61, 3, 2, FALSE),
+ PT(54, 52, 4, 3, TRUE),
+ PT(51, 42, 4, 2, TRUE),
+ PT(45, 48, 4, 3, FALSE),
+ PT(61, 55, 4, 3, FALSE),
+ PT(37, 17, 2, 0, TRUE),
+ PT( 3, 5, 3, 0, FALSE),
+ PT(16, 4, 5, 0, TRUE),
+ PT( 7, 46, 6, 3, FALSE),
+ PT(42, 41, 2, 2, TRUE),
+ PT(58, 14, 6, 1, TRUE),
+ PT(42, 6, 5, 0, TRUE),
+ PT(61, 1, 5, 0, TRUE),
+ PT(39, 14, 2, 3, FALSE),
+ PT(29, 40, 3, 1, TRUE),
+ PT(16, 51, 5, 1, TRUE),
+ PT(12, 20, 3, 2, TRUE),
+ PT(21, 63, 4, 2, TRUE),
+ PT(55, 35, 3, 3, FALSE),
+ PT( 4, 44, 3, 2, FALSE),
+ PT(21, 52, 5, 1, FALSE),
+ PT( 9, 47, 2, 2, TRUE),
+ PT( 2, 63, 2, 2, FALSE),
+ PT(25, 44, 6, 1, TRUE),
+ PT(57, 50, 4, 0, FALSE),
+ PT(42, 24, 6, 1, FALSE),
+ PT(23, 35, 4, 0, TRUE),
+ PT(11, 45, 4, 2, TRUE),
+ PT(36, 58, 5, 2, TRUE),
+ PT(49, 63, 6, 2, FALSE),
+ PT(24, 25, 4, 2, FALSE),
+ PT(30, 21, 3, 1, FALSE),
+ PT(23, 51, 5, 1, TRUE),
+ PT(35, 9, 4, 3, FALSE),
+ PT(27, 13, 2, 2, TRUE),
+ PT(54, 38, 5, 0, FALSE),
+ PT(58, 28, 2, 2, FALSE),
+ PT(12, 62, 2, 0, FALSE),
+ PT(24, 6, 6, 2, TRUE),
+ PT(55, 38, 6, 3, FALSE),
+ PT(33, 38, 2, 3, TRUE),
+ PT(61, 28, 5, 2, FALSE),
+ PT(22, 37, 3, 2, TRUE),
+ PT(30, 11, 3, 3, FALSE),
+ PT(29, 13, 6, 1, FALSE),
+ PT( 8, 31, 3, 1, TRUE),
+ PT(18, 28, 2, 1, FALSE),
+ PT(32, 42, 5, 0, FALSE),
+ PT( 6, 59, 6, 2, TRUE),
+ PT(57, 14, 3, 3, FALSE),
+ PT(49, 48, 5, 0, FALSE),
+ PT( 2, 33, 2, 2, FALSE),
+ PT( 6, 30, 5, 0, TRUE),
+ PT(22, 9, 3, 2, FALSE),
+ PT(39, 50, 5, 2, TRUE),
+ PT(57, 3, 4, 3, TRUE),
+ PT(41, 9, 3, 3, FALSE),
+ PT(27, 17, 3, 2, FALSE),
+ PT(40, 58, 5, 2, FALSE),
+ PT( 3, 3, 3, 0, FALSE),
+ PT(35, 9, 5, 3, TRUE),
+ PT(48, 23, 4, 1, TRUE),
+ PT(15, 37, 6, 1, TRUE),
+ PT( 6, 36, 6, 3, TRUE),
+ PT(34, 9, 6, 1, TRUE),
+ PT(44, 9, 5, 1, FALSE),
+ PT(12, 18, 5, 1, FALSE),
+ PT(40, 32, 2, 0, FALSE),
+ PT(21, 41, 6, 1, TRUE),
+ PT(15, 26, 2, 1, TRUE),
+ PT(19, 24, 6, 3, FALSE),
+ PT(46, 22, 2, 1, TRUE),
+ PT(60, 26, 2, 2, TRUE),
+ PT(58, 17, 6, 1, FALSE),
+ PT( 2, 10, 5, 2, FALSE),
+ PT(25, 57, 2, 0, TRUE),
+ PT(49, 62, 3, 2, TRUE),
+ PT(50, 20, 6, 1, FALSE),
+ PT(18, 46, 6, 2, FALSE),
+ PT(62, 54, 4, 1, TRUE),
+ PT(55, 62, 2, 2, TRUE),
+ PT(21, 53, 6, 2, FALSE),
+ PT( 1, 58, 5, 2, FALSE),
+ PT(38, 37, 4, 1, FALSE),
+ PT( 1, 43, 6, 3, TRUE),
+ PT(28, 61, 6, 1, TRUE),
+ PT(62, 16, 3, 2, FALSE),
+ PT(38, 51, 3, 0, TRUE),
+ PT( 5, 25, 2, 3, TRUE),
+ PT(18, 56, 3, 2, FALSE),
+ PT(21, 60, 6, 1, FALSE),
+ PT(63, 15, 6, 3, TRUE),
+ PT( 2, 57, 6, 1, FALSE),
+ PT(19, 0, 3, 2, TRUE),
+ PT(29, 44, 2, 0, FALSE),
+ PT(57, 19, 6, 0, TRUE),
+ PT(15, 55, 3, 0, TRUE),
+ PT( 9, 13, 5, 1, FALSE),
+ PT(32, 47, 6, 1, FALSE),
+ PT(59, 52, 4, 1, FALSE),
+ PT(38, 20, 2, 0, FALSE),
+ PT(36, 61, 4, 1, FALSE),
+ PT(11, 49, 4, 1, TRUE),
+ PT(47, 45, 5, 1, FALSE),
+ PT(48, 4, 6, 2, TRUE),
+ PT(25, 32, 5, 1, FALSE),
+ PT(22, 54, 6, 3, TRUE),
+ PT(20, 40, 6, 3, TRUE),
+ PT(17, 11, 4, 3, TRUE),
+ PT(29, 6, 5, 0, TRUE),
+ PT(53, 22, 5, 3, FALSE),
+ PT(36, 46, 5, 0, TRUE),
+ PT(54, 20, 5, 1, FALSE),
+ PT(33, 12, 3, 3, TRUE),
+ PT(63, 57, 3, 0, TRUE),
+ PT(39, 16, 5, 1, FALSE),
+ PT(30, 18, 6, 2, FALSE),
+ PT(16, 36, 6, 2, FALSE),
+ PT(29, 19, 3, 2, TRUE),
+ PT(23, 22, 6, 3, TRUE),
+ PT(39, 27, 4, 3, TRUE),
+ PT( 7, 36, 4, 0, TRUE),
+ PT(55, 33, 2, 0, TRUE),
+ PT(55, 40, 4, 2, FALSE),
+ PT(25, 2, 3, 2, FALSE),
+ PT(20, 18, 3, 2, TRUE),
+ PT(27, 36, 5, 3, FALSE),
+ PT(46, 58, 2, 2, TRUE),
+ PT(55, 52, 4, 0, TRUE),
+ PT(51, 45, 5, 0, TRUE),
+ PT(47, 30, 6, 2, FALSE),
+ PT(41, 60, 2, 1, FALSE),
+ PT( 5, 21, 4, 0, FALSE),
+ PT( 5, 62, 3, 0, TRUE),
+ PT(24, 11, 6, 0, FALSE),
+ PT(47, 2, 4, 3, TRUE),
+ PT(20, 28, 6, 2, FALSE),
+ PT(18, 32, 6, 0, FALSE),
+ PT(43, 34, 3, 1, TRUE),
+ PT( 6, 49, 5, 0, FALSE),
+ PT(21, 45, 2, 1, FALSE),
+ PT( 1, 14, 2, 1, TRUE),
+ PT(19, 12, 5, 0, FALSE),
+ PT( 7, 42, 2, 2, FALSE),
+ PT(29, 54, 2, 2, FALSE),
+ PT(21, 43, 4, 3, FALSE),
+ PT( 3, 37, 2, 2, TRUE),
+ PT(62, 59, 4, 0, FALSE),
+ PT(53, 12, 4, 2, TRUE),
+ PT(43, 22, 6, 2, TRUE),
+ PT(30, 49, 5, 2, FALSE),
+ PT( 6, 3, 5, 0, TRUE),
+ PT(36, 7, 3, 3, TRUE),
+ PT(50, 47, 3, 0, TRUE),
+ PT(37, 33, 6, 0, TRUE),
+ PT(34, 38, 3, 2, TRUE),
+ PT( 0, 27, 3, 0, FALSE),
+ PT(42, 36, 6, 0, TRUE),
+ PT(32, 6, 5, 3, TRUE),
+ PT(30, 50, 4, 3, FALSE),
+ PT(50, 57, 2, 1, FALSE),
+ PT(32, 1, 3, 0, TRUE),
+ PT(15, 21, 2, 2, TRUE),
+ PT(39, 16, 5, 3, FALSE),
+ PT( 9, 37, 3, 0, TRUE),
+ PT(41, 55, 6, 0, FALSE),
+ PT(19, 28, 3, 2, TRUE),
+ PT(41, 45, 4, 3, FALSE),
+ PT( 2, 26, 2, 3, FALSE),
+ PT(29, 43, 3, 2, FALSE),
+ PT(24, 4, 6, 2, FALSE),
+ PT(40, 42, 4, 0, TRUE),
+ PT(21, 27, 5, 3, FALSE),
+ PT(22, 1, 2, 0, FALSE),
+ PT( 5, 9, 2, 2, FALSE),
+ PT(34, 3, 4, 1, FALSE),
+ PT( 2, 27, 6, 2, FALSE),
+ PT(41, 42, 4, 1, TRUE),
+ PT(38, 54, 2, 1, TRUE),
+ PT(35, 61, 3, 1, FALSE),
+ PT(29, 16, 4, 2, FALSE),
+ PT(37, 43, 6, 3, TRUE),
+ PT(25, 36, 4, 3, FALSE),
+ PT(40, 19, 2, 3, FALSE),
+ PT(23, 20, 3, 0, TRUE),
+ PT(11, 47, 4, 2, TRUE),
+ PT(55, 52, 6, 3, TRUE),
+ PT(57, 33, 3, 1, TRUE),
+ PT(15, 61, 5, 2, TRUE),
+ PT(13, 16, 4, 0, FALSE),
+ PT( 5, 11, 5, 2, TRUE),
+ PT( 1, 18, 4, 2, FALSE),
+ PT(24, 61, 6, 1, FALSE),
+ PT( 9, 33, 4, 3, FALSE),
+ PT(26, 14, 3, 3, TRUE),
+ PT(48, 6, 3, 3, TRUE),
+ PT(11, 60, 5, 0, TRUE),
+ PT( 7, 62, 4, 3, TRUE),
+ PT(19, 30, 3, 1, FALSE),
+ PT(19, 7, 4, 1, TRUE),
+ PT(16, 52, 3, 3, FALSE),
+ PT(50, 23, 4, 1, TRUE),
+ PT(53, 22, 6, 0, TRUE),
+ PT(50, 46, 3, 1, TRUE),
+ PT(40, 14, 4, 1, FALSE),
+ PT(20, 58, 4, 1, TRUE),
+ PT(34, 3, 5, 0, TRUE),
+ PT(42, 16, 4, 0, FALSE),
+ PT(62, 60, 4, 3, TRUE),
+ PT(22, 32, 2, 1, FALSE),
+ PT(63, 36, 6, 0, TRUE),
+ PT(13, 46, 6, 1, FALSE),
+ PT(47, 23, 5, 2, TRUE),
+ PT(54, 59, 2, 3, TRUE),
+ PT(36, 35, 3, 0, FALSE),
+ PT(55, 29, 2, 1, TRUE),
+ PT(23, 58, 3, 1, FALSE),
+ PT(10, 61, 3, 3, FALSE),
+ PT( 5, 18, 2, 3, FALSE),
+ PT(51, 50, 4, 2, TRUE),
+ PT(29, 31, 5, 0, TRUE),
+ PT(52, 44, 4, 3, FALSE),
+ PT(32, 41, 6, 2, TRUE),
+ PT(14, 50, 2, 3, TRUE),
+ PT( 1, 57, 5, 2, TRUE),
+ PT(39, 36, 4, 1, TRUE),
+ PT(40, 63, 3, 0, FALSE),
+ PT(57, 56, 4, 2, TRUE),
+ PT(35, 17, 2, 0, TRUE),
+ PT(25, 44, 5, 0, TRUE),
+ PT(48, 8, 5, 0, FALSE),
+ PT(37, 39, 3, 2, TRUE),
+ PT(23, 37, 4, 0, TRUE),
+ PT( 9, 61, 2, 3, FALSE),
+ PT(27, 15, 5, 2, FALSE),
+ PT(27, 18, 4, 1, FALSE),
+ PT(40, 62, 4, 3, FALSE),
+ PT(52, 16, 3, 1, TRUE),
+ PT( 2, 52, 2, 2, TRUE),
+ PT(26, 41, 3, 0, TRUE),
+ PT(41, 17, 6, 0, TRUE),
+ PT(18, 39, 2, 3, TRUE),
+ PT(39, 39, 5, 3, TRUE),
+ PT(52, 39, 4, 2, FALSE),
+ PT( 3, 25, 6, 3, FALSE),
+ PT(23, 29, 6, 1, TRUE),
+ PT(25, 37, 3, 1, FALSE),
+ PT(43, 57, 2, 1, TRUE),
+ PT(59, 51, 3, 2, TRUE),
+ PT(39, 49, 6, 2, FALSE),
+ PT(40, 51, 6, 3, TRUE),
+ PT( 9, 48, 3, 1, TRUE),
+ PT( 3, 58, 4, 3, TRUE),
+ PT(25, 17, 3, 3, TRUE),
+ PT(11, 26, 6, 2, FALSE),
+ PT(61, 42, 2, 2, TRUE),
+ PT( 4, 36, 6, 3, FALSE),
+ PT(48, 35, 6, 0, FALSE),
+ PT(15, 34, 3, 1, TRUE),
+ PT(61, 61, 4, 2, FALSE),
+ PT(41, 29, 2, 1, FALSE),
+ PT(22, 25, 5, 3, FALSE),
+ PT( 3, 18, 2, 3, TRUE),
+ PT(24, 37, 6, 1, TRUE),
+ PT(47, 35, 3, 1, FALSE),
+ PT(26, 53, 4, 3, TRUE),
+ PT(33, 38, 3, 0, TRUE),
+ PT(27, 48, 3, 0, FALSE),
+ PT(43, 34, 5, 2, TRUE),
+ PT(44, 26, 6, 2, FALSE),
+ PT(62, 18, 3, 0, TRUE),
+ PT(40, 39, 2, 2, TRUE),
+ PT(27, 17, 2, 1, FALSE),
+ PT(23, 21, 2, 0, FALSE),
+ PT(52, 55, 4, 2, TRUE),
+ PT(18, 63, 2, 2, TRUE),
+ PT(49, 13, 6, 3, TRUE),
+ PT(62, 42, 5, 2, TRUE),
+ PT(15, 36, 4, 2, FALSE),
+ PT(60, 63, 3, 3, TRUE),
+ PT(29, 52, 2, 3, TRUE),
+ PT(26, 35, 3, 3, TRUE),
+ PT(55, 15, 2, 0, FALSE),
+ PT(50, 52, 6, 2, TRUE),
+ PT(25, 5, 4, 1, FALSE),
+ PT(51, 22, 6, 2, FALSE),
+ PT(30, 20, 3, 3, FALSE),
+ PT( 8, 19, 5, 0, TRUE),
+ PT(58, 55, 6, 0, FALSE),
+ PT(29, 54, 2, 2, TRUE),
+ PT(41, 46, 3, 2, TRUE),
+ PT(50, 46, 4, 1, TRUE),
+ PT(53, 23, 3, 2, FALSE),
+ PT(54, 29, 2, 1, TRUE),
+ PT(35, 52, 6, 2, FALSE),
+ PT(36, 26, 6, 3, TRUE),
+ PT(47, 38, 5, 3, FALSE),
+ PT(30, 23, 3, 1, FALSE),
+ PT(31, 21, 3, 3, TRUE),
+ PT(43, 31, 3, 0, TRUE),
+ PT(10, 51, 3, 1, FALSE),
+ PT(53, 49, 4, 2, FALSE),
+ PT(45, 23, 5, 2, FALSE),
+ PT(12, 33, 6, 3, FALSE),
+ PT(44, 53, 6, 2, TRUE),
+ PT(27, 3, 4, 3, TRUE),
+ PT( 1, 13, 3, 2, TRUE),
+ PT(28, 14, 2, 0, TRUE),
+ PT(17, 43, 2, 0, FALSE),
+ PT(37, 59, 4, 0, FALSE),
+ PT(31, 23, 3, 0, TRUE),
+ PT(32, 8, 6, 3, FALSE),
+ PT(19, 56, 3, 0, TRUE),
+ PT(27, 43, 4, 2, FALSE),
+ PT(11, 31, 5, 0, TRUE),
+ PT(39, 21, 5, 2, FALSE),
+ PT(55, 57, 2, 0, FALSE),
+ PT(58, 21, 5, 3, FALSE),
+ PT(47, 17, 6, 3, FALSE),
+ PT(36, 4, 4, 0, FALSE),
+ PT(59, 42, 6, 2, TRUE),
+ PT(39, 53, 6, 2, FALSE),
+ PT(13, 27, 4, 0, FALSE),
+ PT(16, 34, 6, 3, TRUE),
+ PT(31, 56, 4, 3, TRUE),
+ PT(49, 15, 5, 0, FALSE),
+ PT(40, 37, 2, 2, TRUE),
+ PT( 0, 29, 4, 2, TRUE),
+ PT(49, 40, 5, 0, FALSE),
+ PT(11, 58, 3, 2, TRUE),
+ PT(45, 19, 3, 1, TRUE),
+ PT( 3, 55, 5, 3, FALSE),
+ PT(29, 40, 3, 0, TRUE),
+ PT( 8, 45, 4, 1, FALSE),
+ PT(39, 57, 6, 1, FALSE),
+ PT(63, 47, 3, 2, TRUE),
+ PT(51, 52, 5, 0, FALSE),
+ PT(24, 8, 6, 0, TRUE),
+ PT(35, 31, 2, 1, TRUE),
+ PT(13, 44, 4, 1, TRUE),
+ PT(58, 45, 3, 1, FALSE),
+ PT( 2, 37, 2, 1, TRUE),
+ PT(32, 54, 6, 2, FALSE),
+ PT(18, 43, 5, 2, TRUE),
+ PT(53, 53, 6, 2, FALSE),
+ PT(35, 32, 4, 0, TRUE),
+ PT(58, 25, 3, 1, TRUE),
+ PT(31, 43, 3, 0, TRUE),
+ PT(53, 14, 3, 0, TRUE),
+ PT(38, 36, 6, 3, TRUE),
+ PT(24, 8, 2, 0, FALSE),
+ PT(12, 22, 5, 2, TRUE),
+ PT(31, 52, 4, 0, TRUE),
+ PT( 5, 56, 3, 0, TRUE),
+ PT(20, 33, 4, 2, FALSE),
+ PT(17, 49, 2, 2, FALSE),
+ PT(62, 56, 5, 0, TRUE),
+ PT(63, 8, 4, 2, TRUE),
+ PT(42, 31, 4, 2, TRUE),
+ PT(37, 6, 5, 0, FALSE),
+ PT(11, 30, 2, 2, FALSE),
+ PT(26, 56, 4, 1, FALSE),
+ PT(36, 24, 5, 0, TRUE),
+ PT(26, 17, 4, 0, FALSE),
+ PT(59, 58, 3, 3, FALSE),
+ PT(28, 38, 3, 1, FALSE),
+ PT( 5, 50, 3, 0, TRUE),
+ PT(57, 42, 6, 0, TRUE),
+ PT( 9, 7, 4, 2, TRUE),
+ PT( 5, 62, 2, 3, FALSE),
+ PT(52, 38, 2, 2, FALSE),
+ PT(27, 50, 4, 3, FALSE),
+ PT( 5, 8, 6, 3, TRUE),
+ PT(15, 3, 4, 0, FALSE),
+ PT(42, 57, 6, 0, TRUE),
+ PT( 8, 1, 3, 3, FALSE),
+ PT(29, 35, 6, 0, TRUE),
+ PT(40, 27, 5, 0, FALSE),
+ PT(30, 55, 2, 2, FALSE),
+ PT(19, 14, 5, 0, FALSE),
+ PT(42, 59, 6, 3, TRUE),
+ PT(47, 28, 5, 0, FALSE),
+ PT(48, 48, 3, 1, FALSE),
+ PT(54, 31, 2, 3, FALSE),
+ PT(62, 13, 2, 2, TRUE),
+ PT(46, 22, 3, 0, FALSE),
+ PT(21, 55, 4, 0, FALSE),
+ PT(42, 51, 6, 0, FALSE),
+ PT(43, 14, 4, 2, TRUE),
+ PT(24, 32, 2, 3, FALSE),
+ PT( 2, 25, 4, 2, TRUE),
+ PT(10, 46, 6, 0, FALSE),
+ PT(22, 3, 2, 0, TRUE),
+ PT( 4, 39, 4, 2, TRUE),
+ PT(27, 28, 4, 0, TRUE),
+ PT(41, 4, 4, 3, TRUE),
+ PT(61, 32, 3, 3, FALSE),
+ PT(40, 51, 6, 0, TRUE),
+ PT(30, 57, 2, 0, FALSE),
+ PT(49, 41, 3, 3, FALSE),
+ PT( 6, 37, 5, 0, FALSE),
+ PT(25, 59, 2, 1, FALSE),
+ PT(11, 27, 3, 2, FALSE),
+ PT(62, 55, 4, 0, FALSE),
+ PT(10, 55, 6, 1, TRUE),
+ PT( 2, 44, 4, 2, TRUE),
+ PT(21, 24, 2, 2, FALSE),
+ PT(59, 32, 3, 2, FALSE),
+ PT(34, 59, 3, 2, FALSE),
+ PT(36, 52, 6, 2, TRUE),
+ PT(15, 47, 6, 0, TRUE),
+ PT(59, 23, 6, 2, TRUE),
+ PT(48, 57, 6, 3, TRUE),
+ PT(13, 21, 2, 0, TRUE),
+ PT(16, 3, 3, 3, FALSE),
+ PT(26, 57, 6, 1, TRUE),
+ PT(47, 46, 5, 0, FALSE),
+ PT(28, 40, 6, 3, FALSE),
+ PT(40, 24, 3, 3, TRUE),
+ PT(21, 1, 6, 0, FALSE),
+ PT(62, 50, 5, 0, FALSE),
+ PT(52, 47, 4, 1, TRUE),
+ PT( 7, 12, 6, 3, FALSE),
+ PT(40, 44, 6, 2, FALSE),
+ PT(42, 12, 3, 3, TRUE),
+ PT(63, 32, 2, 1, TRUE),
+ PT(43, 23, 4, 3, TRUE),
+ PT(40, 41, 5, 1, FALSE),
+ PT(60, 19, 6, 3, FALSE),
+ PT(38, 45, 5, 1, FALSE),
+ PT(10, 6, 3, 3, FALSE),
+ PT(32, 4, 3, 1, FALSE),
+ PT( 2, 7, 6, 2, TRUE),
+ PT(14, 24, 6, 0, FALSE),
+ PT( 0, 52, 6, 2, FALSE),
+ PT(47, 20, 6, 3, TRUE),
+ PT(33, 48, 3, 3, TRUE),
+ PT(21, 55, 3, 1, TRUE),
+ PT(58, 11, 6, 1, FALSE),
+ PT(34, 34, 4, 0, TRUE),
+ PT(27, 53, 4, 1, TRUE),
+ PT(13, 3, 3, 2, FALSE),
+ PT(35, 59, 2, 1, TRUE),
+ PT(14, 29, 3, 3, TRUE),
+ PT(29, 63, 5, 3, FALSE),
+ PT(57, 39, 5, 3, FALSE),
+ PT(15, 56, 4, 0, FALSE),
+ PT(49, 60, 6, 2, TRUE),
+ PT(11, 15, 5, 3, FALSE),
+ PT( 6, 6, 5, 0, FALSE),
+ PT(37, 57, 4, 1, TRUE),
+ PT(10, 50, 2, 2, TRUE),
+ PT(15, 29, 4, 2, TRUE),
+ PT(12, 13, 6, 2, FALSE),
+ PT(18, 46, 4, 0, TRUE),
+ PT(54, 24, 3, 3, TRUE),
+ PT(31, 52, 3, 1, TRUE),
+ PT( 5, 58, 6, 3, FALSE),
+ PT(43, 1, 2, 3, TRUE),
+ PT(14, 22, 5, 1, TRUE),
+ PT(14, 11, 4, 3, FALSE),
+ PT(13, 45, 2, 0, FALSE),
+ PT(33, 17, 4, 3, TRUE),
+ PT(61, 19, 6, 1, FALSE),
+ PT(21, 37, 5, 1, FALSE),
+ PT(27, 45, 6, 2, TRUE),
+ PT(44, 43, 4, 3, FALSE),
+ PT(38, 31, 4, 0, FALSE),
+ PT(34, 43, 2, 1, FALSE),
+ PT(63, 61, 4, 3, TRUE),
+ PT(48, 10, 6, 3, FALSE),
+ PT(53, 31, 2, 3, TRUE),
+ PT(33, 8, 5, 0, TRUE),
+ PT(29, 32, 6, 1, TRUE),
+ PT(52, 17, 2, 3, FALSE),
+ PT( 5, 56, 5, 2, TRUE),
+};
+
+#undef PT
diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c
index 205d4d5e3..53b7dee7a 100644
--- a/src/debug/watanabe_debug_menu.c
+++ b/src/debug/watanabe_debug_menu.c
@@ -2670,14 +2670,14 @@ void debug_80C6B00(u8 taskId)
void debug_80C6CB8(u8 taskId)
{
- DecompressPicFromTable_2(gMonFrontPicTable + gUnknown_Debug_2038A20->unk0, gMonFrontPicCoords[gUnknown_Debug_2038A20->unk0].coords, gMonFrontPicCoords[gUnknown_Debug_2038A20->unk0].y_offset, gUnknown_081FAF4C[0], gUnknown_081FAF4C[1], gUnknown_Debug_2038A20->unk0);
+ DecompressPicFromTable_2(gMonFrontPicTable + gUnknown_Debug_2038A20->unk0, gMonFrontPicCoords[gUnknown_Debug_2038A20->unk0].coords, gMonFrontPicCoords[gUnknown_Debug_2038A20->unk0].y_offset, gMonSpriteGfx_Sprite_ptr[0], gMonSpriteGfx_Sprite_ptr[1], gUnknown_Debug_2038A20->unk0);
LoadCompressedObjectPalette(gMonPaletteTable + gUnknown_Debug_2038A20->unk0);
GetMonSpriteTemplate_803C56C(gUnknown_Debug_2038A20->unk0, 1);
gUnknown_Debug_2038A20->unk2 = CreateSprite(&gUnknown_02024E8C, 0x28, 0x28, 0);
gSprites[gUnknown_Debug_2038A20->unk2].callback = debug_69;
gSprites[gUnknown_Debug_2038A20->unk2].oam.priority = 0;
- DecompressPicFromTable_2(gMonBackPicTable + gUnknown_Debug_2038A20->unk0, gMonBackPicCoords[gUnknown_Debug_2038A20->unk0].coords, gMonBackPicCoords[gUnknown_Debug_2038A20->unk0].y_offset, gUnknown_081FAF4C[0], gUnknown_081FAF4C[2], gUnknown_Debug_2038A20->unk0);
+ DecompressPicFromTable_2(gMonBackPicTable + gUnknown_Debug_2038A20->unk0, gMonBackPicCoords[gUnknown_Debug_2038A20->unk0].coords, gMonBackPicCoords[gUnknown_Debug_2038A20->unk0].y_offset, gMonSpriteGfx_Sprite_ptr[0], gMonSpriteGfx_Sprite_ptr[2], gUnknown_Debug_2038A20->unk0);
LoadCompressedObjectPalette(gMonPaletteTable + gUnknown_Debug_2038A20->unk0);
GetMonSpriteTemplate_803C56C(gUnknown_Debug_2038A20->unk0, 2);
gUnknown_Debug_2038A20->unk3 = CreateSprite(&gUnknown_02024E8C, 0x28, 0x78, 0);
@@ -3297,7 +3297,7 @@ void debug_80C777C(u8 taskId)
void debug_80C7934(u8 taskId)
{
- DecompressPicFromTable_2(gTrainerFrontPicTable + gUnknown_Debug_2038A20->unk0, gTrainerFrontPicCoords[gUnknown_Debug_2038A20->unk0].coords, gTrainerFrontPicCoords[gUnknown_Debug_2038A20->unk0].y_offset, gUnknown_081FAF4C[0], gUnknown_081FAF4C[1], gUnknown_Debug_2038A20->unk0);
+ DecompressPicFromTable_2(gTrainerFrontPicTable + gUnknown_Debug_2038A20->unk0, gTrainerFrontPicCoords[gUnknown_Debug_2038A20->unk0].coords, gTrainerFrontPicCoords[gUnknown_Debug_2038A20->unk0].y_offset, gMonSpriteGfx_Sprite_ptr[0], gMonSpriteGfx_Sprite_ptr[1], gUnknown_Debug_2038A20->unk0);
LoadCompressedObjectPalette(gTrainerFrontPicPaletteTable + gUnknown_Debug_2038A20->unk0);
GetMonSpriteTemplate_803C5A0(gUnknown_Debug_2038A20->unk0, 1);
gUnknown_Debug_2038A20->unk2 = CreateSprite(&gUnknown_02024E8C, 0x28, 0x28, 0);
diff --git a/src/decompress.c b/src/decompress.c
index c0158ada8..bd613ec6a 100644
--- a/src/decompress.c
+++ b/src/decompress.c
@@ -71,8 +71,8 @@ void HandleLoadSpecialPokePic(const struct CompressedSpriteSheet *src, u32 coord
{
u32 frontOrBack;
- // gUnknown_081FAF4C appears to be a list of pointers to locations to store poke pics for back and front pic here. the first and third pointers are used for back while the others are used for front.
- if (dest == gUnknown_081FAF4C[0] || dest == gUnknown_081FAF4C[2])
+ // gMonSpriteGfx_Sprite_ptr appears to be a list of pointers to locations to store poke pics for back and front pic here. the first and third pointers are used for back while the others are used for front.
+ if (dest == gMonSpriteGfx_Sprite_ptr[0] || dest == gMonSpriteGfx_Sprite_ptr[2])
frontOrBack = 0; // backPic
else
frontOrBack = 1; // frontPic
diff --git a/src/egg_hatch.c b/src/egg_hatch.c
index fdc12129e..974fa77e2 100644
--- a/src/egg_hatch.c
+++ b/src/egg_hatch.c
@@ -356,7 +356,7 @@ static u8 EggHatchCreateMonSprite(u8 a0, u8 switchID, u8 pokeID)
{
u16 species = GetMonData(mon, MON_DATA_SPECIES);
u32 pid = GetMonData(mon, MON_DATA_PERSONALITY);
- HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, ewram0_6, gUnknown_081FAF4C[2 * a0 + 1], species, pid);
+ HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, ewram0_6, gMonSpriteGfx_Sprite_ptr[2 * a0 + 1], species, pid);
LoadCompressedObjectPalette(GetMonSpritePalStruct(mon));
}
break;
diff --git a/src/evolution_scene.c b/src/evolution_scene.c
index 47a453693..7ea062083 100644
--- a/src/evolution_scene.c
+++ b/src/evolution_scene.c
@@ -228,7 +228,7 @@ void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo,
gMonFrontPicCoords[currSpecies].coords,
gMonFrontPicCoords[currSpecies].y_offset,
(void*)EWRAM,
- gUnknown_081FAF4C[1], currSpecies);
+ gMonSpriteGfx_Sprite_ptr[1], currSpecies);
pokePal = (void*) GetMonSpritePalStructFromOtIdPersonality(currSpecies, TiD, PiD);
LoadCompressedPalette(*pokePal, 0x110, 0x20);
@@ -245,7 +245,7 @@ void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo,
gMonFrontPicCoords[speciesToEvolve].coords,
gMonFrontPicCoords[speciesToEvolve].y_offset,
(void*)EWRAM,
- gUnknown_081FAF4C[3], speciesToEvolve);
+ gMonSpriteGfx_Sprite_ptr[3], speciesToEvolve);
pokePal = (void*) GetMonSpritePalStructFromOtIdPersonality(speciesToEvolve, TiD, PiD);
LoadCompressedPalette(*pokePal, 0x120, 0x20);
@@ -325,7 +325,7 @@ static void CB2_EvolutionSceneLoadGraphics(void)
gMonFrontPicCoords[postEvoSpecies].coords,
gMonFrontPicCoords[postEvoSpecies].y_offset,
(void*)EWRAM,
- gUnknown_081FAF4C[3], postEvoSpecies);
+ gMonSpriteGfx_Sprite_ptr[3], postEvoSpecies);
pokePal = (void*) GetMonSpritePalStructFromOtIdPersonality(postEvoSpecies, TiD, PiD);
LoadCompressedPalette(*pokePal, 0x120, 0x20);
@@ -395,7 +395,7 @@ static void CB2_TradeEvolutionSceneLoadGraphics(void)
gMonFrontPicCoords[postEvoSpecies].coords,
gMonFrontPicCoords[postEvoSpecies].y_offset,
(void*)EWRAM,
- gUnknown_081FAF4C[3], postEvoSpecies);
+ gMonSpriteGfx_Sprite_ptr[3], postEvoSpecies);
pokePal = (void*) GetMonSpritePalStructFromOtIdPersonality(postEvoSpecies, TiD, PiD);
LoadCompressedPalette(*pokePal, 0x120, 0x20);
gMain.state++;
@@ -445,7 +445,7 @@ void TradeEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, u8 preEvoSpri
gMonFrontPicCoords[speciesToEvolve].coords,
gMonFrontPicCoords[speciesToEvolve].y_offset,
(void*)EWRAM,
- gUnknown_081FAF4C[1], speciesToEvolve);
+ gMonSpriteGfx_Sprite_ptr[1], speciesToEvolve);
pokePal = (void*) GetMonSpritePalStructFromOtIdPersonality(speciesToEvolve, TiD, PiD);
LoadCompressedPalette(*pokePal, 0x120, 0x20);
diff --git a/src/field_effect.c b/src/field_effect.c
index 280eb20bc..1685a16fa 100644
--- a/src/field_effect.c
+++ b/src/field_effect.c
@@ -543,7 +543,7 @@ u8 CreateBirchSprite(s16 x, s16 y, u8 subpriority)
u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y, u8 subpriority)
{
- DecompressPicFromTable_2(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, gUnknown_081FAF4C[3], gUnknown_081FAF4C[3], species);
+ DecompressPicFromTable_2(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, gMonSpriteGfx_Sprite_ptr[3], gMonSpriteGfx_Sprite_ptr[3], species);
LoadCompressedObjectPalette(&gMonPaletteTable[species]);
GetMonSpriteTemplate_803C56C(species, 3);
gUnknown_02024E8C.paletteTag = gMonPaletteTable[0].tag;
@@ -555,7 +555,7 @@ u8 CreateMonSprite_FieldMove(u16 species, u32 d, u32 g, s16 x, s16 y, u8 subprio
{
const struct CompressedSpritePalette *spritePalette;
- HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, (u32)gUnknown_081FAF4C[3] /* this is actually u8* or something, pointing to ewram */, gUnknown_081FAF4C[3], species, g);
+ HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, (u32)gMonSpriteGfx_Sprite_ptr[3] /* this is actually u8* or something, pointing to ewram */, gMonSpriteGfx_Sprite_ptr[3], species, g);
spritePalette = GetMonSpritePalStructFromOtIdPersonality(species, d, g);
LoadCompressedObjectPalette(spritePalette);
GetMonSpriteTemplate_803C56C(species, 3);
diff --git a/src/image_processing_effects.c b/src/image_processing_effects.c
index f0f44d6e5..fe5fc5dd9 100644
--- a/src/image_processing_effects.c
+++ b/src/image_processing_effects.c
@@ -2,136 +2,145 @@
#include "image_processing_effects.h"
#include "contest_painting.h"
-extern const u8 gUnknown_083E7A50[][3];
-
-u16 (*gUnknown_03005DEC)[][32];
-u8 gUnknown_03005DE8;
-u8 gUnknown_03005DF0;
-u8 gUnknown_03005DFC;
-u8 gUnknown_03005DF8;
-u8 gUnknown_03005DF4;
-u8 gUnknown_03005E00;
-u8 gUnknown_03005E04;
-u16 * gUnknown_03005E08;
-u16 gUnknown_03005E0C;
+#define GET_R(color) ((color) & 0x1F)
+#define GET_G(color) (((color) >> 5) & 0x1F)
+#define GET_B(color) (((color) >> 10) & 0x1F)
+
+#define RGB_ALPHA (1 << 15)
+#define IS_ALPHA(color) ((color) & RGB_ALPHA)
+
+#define RGB2(r, g, b) (((b) << 10) | ((g) << 5) | (r))
+
+u16 *gCanvasPixels;
+u8 gCanvasColumnStart;
+u8 gCanvasRowEnd;
+u8 gCanvasRowStart;
+u8 gCanvasColumnEnd;
+u8 gCanvasHeight;
+u8 gCanvasMonPersonality;
+u8 gCanvasWidth;
+u16 * gCanvasPalette;
+u16 gCanvasPaletteStart;
// this file's functions
-void sub_80FCAA4(void);
-void sub_80FCB5C(void);
-void sub_80FCD54(void);
-void sub_80FCEA4(void);
-void sub_80FCCBC(void);
-void sub_80FD06C(void);
-void sub_80FD114(void);
-void sub_80FCF3C(void);
-void sub_80FCAC4(void);
-void sub_80FCC18(u8);
-void sub_80FC92C(u8);
-void sub_80FC9E4(u8);
-void sub_80FD1C8(u16);
+void ApplyImageEffect_Pointillism(void);
+void ApplyImageEffect_Blur(void);
+void ApplyImageEffect_BlackOutline(void);
+void ApplyImageEffect_Invert(void);
+void ApplyImageEffect_BlackAndWhite(void);
+void ApplyImageEffect_BlurRight(void);
+void ApplyImageEffect_BlurDown(void);
+void ApplyImageEffect_Shimmer(void);
+void ApplyImageEffect_Grayscale(void);
+void ApplyImageEffect_PersonalityColor(u8 personality);
+void ApplyImageEffect_RedChannelGrayscale(u8);
+void ApplyImageEffect_RedChannelGrayscaleHighlight(u8);
+void AddPointillismPoints(u16);
u16 ConvertColorToGrayscale(u16*);
-u16 sub_80FD68C(u16*, u16*, u16*);
+u16 QuantizePixel_Blur(u16 *prevPixel, u16 *curPixel, u16 *nextPixel);
u16 ConvertCoolColor(u16*, u8);
-u16 ConvertToBlackOrWhite(u16*);
-u16 sub_80FD50C(u16*, u16*);
-u16 InvertColor(u16*);
-u16 sub_80FD7AC(u16*, u16*, u16*);
-u16 sub_80FD568(u16*, u16*);
+u16 QuantizePixel_BlackAndWhite(u16*);
+u16 QuantizePixel_BlackOutline(u16 *colorA, u16 *colorB);
+u16 QuantizePixel_Invert(u16*);
+u16 QuantizePixel_BlurHard(u16 *prevPixel, u16 *curPixel, u16 *nextPixel);
+u16 QuantizePixel_MotionBlur(u16*, u16*);
u16 GetCoolColorFromPersonality(u8);
-void sub_80FDC18(bool8);
-void sub_80FDAE4(void);
-void sub_80FDF88(void);
-void sub_80FDBE4(void);
-void sub_80FDED8(void);
-void sub_80FDBA8(void);
-void sub_80FDE28(void);
-void sub_80FDB8C(void);
-void sub_80FDD70(void);
-u16 sub_80FE038(u16 *);
-u16 sub_80FE17C(u16 *);
-u16 sub_80FE1B0(u16 *);
-u16 sub_80FE0AC(u16 *);
-
-void sub_80FC7A0(struct ImageProcessingContext* info)
+void QuantizePalette_Standard(bool8);
+void SetPresetPalette_PrimaryColors(void);
+void QuantizePalette_PrimaryColors(void);
+void SetPresetPalette_Grayscale(void);
+void QuantizePalette_Grayscale(void);
+void SetPresetPalette_GrayscaleSmall(void);
+void QuantizePalette_GrayscaleSmall(void);
+void SetPresetPalette_BlackAndWhite(void);
+void QuantizePalette_BlackAndWhite(void);
+u16 QuantizePixel_Standard(u16 *);
+u16 QuantizePixel_GrayscaleSmall(u16 *);
+u16 QuantizePixel_Grayscale(u16 *);
+u16 QuantizePixel_PrimaryColors(u16 *);
+
+#define MAX_DIMENSION 64
+
+#include "data/pointillism_points.h"
+
+void ApplyImageProcessingEffects(struct ImageProcessingContext* info)
{
- gUnknown_03005DEC = info->var_4;
- gUnknown_03005E00 = info->var_1F;
- gUnknown_03005DE8 = info->var_19;
- gUnknown_03005DFC = info->var_1A;
- gUnknown_03005DF8 = info->var_1B;
- gUnknown_03005DF0 = info->var_1C;
- gUnknown_03005E04 = info->var_1D;
- gUnknown_03005DF4 = info->var_1E;
- switch (info->var_0)
+ gCanvasPixels = info->canvasPixels;
+ gCanvasMonPersonality = info->personality;
+ gCanvasColumnStart = info->columnStart;
+ gCanvasRowStart = info->rowStart;
+ gCanvasColumnEnd = info->columnEnd;
+ gCanvasRowEnd = info->rowEnd;
+ gCanvasWidth = info->canvasWidth;
+ gCanvasHeight = info->canvasHeight;
+ switch (info->effect)
{
- case 2:
- sub_80FCAA4();
+ case IMAGE_EFFECT_POINTILLISM:
+ ApplyImageEffect_Pointillism();
break;
- case 8:
- sub_80FCB5C();
+ case IMAGE_EFFECT_BLUR:
+ ApplyImageEffect_Blur();
break;
- case 9:
- sub_80FCD54();
- sub_80FCC18(gUnknown_03005E00);
+ case IMAGE_EFFECT_OUTLINE_COLORED:
+ ApplyImageEffect_BlackOutline();
+ ApplyImageEffect_PersonalityColor(gCanvasMonPersonality);
break;
- case 10:
- sub_80FCD54();
- sub_80FCEA4();
- sub_80FCCBC();
- case 31:
- sub_80FCEA4();
+ case IMAGE_EFFECT_INVERT_BLACK_WHITE:
+ ApplyImageEffect_BlackOutline();
+ ApplyImageEffect_Invert();
+ ApplyImageEffect_BlackAndWhite();
+ case IMAGE_EFFECT_INVERT:
+ ApplyImageEffect_Invert();
break;
- case 11:
- sub_80FCD54();
- sub_80FD06C();
- sub_80FD06C();
- sub_80FD114();
- sub_80FCCBC();
+ case IMAGE_EFFECT_THICK_BLACK_WHITE:
+ ApplyImageEffect_BlackOutline();
+ ApplyImageEffect_BlurRight();
+ ApplyImageEffect_BlurRight();
+ ApplyImageEffect_BlurDown();
+ ApplyImageEffect_BlackAndWhite();
break;
- case 13:
- sub_80FCF3C();
+ case IMAGE_EFFECT_SHIMMER:
+ ApplyImageEffect_Shimmer();
break;
- case 30:
- sub_80FCD54();
+ case IMAGE_EFFECT_OUTLINE:
+ ApplyImageEffect_BlackOutline();
break;
- case 32:
- sub_80FD06C();
+ case IMAGE_EFFECT_BLUR_RIGHT:
+ ApplyImageEffect_BlurRight();
break;
- case 33:
- sub_80FD114();
+ case IMAGE_EFFECT_BLUR_DOWN:
+ ApplyImageEffect_BlurDown();
break;
- case 6:
- sub_80FCAC4();
- sub_80FC92C(3);
+ case IMAGE_EFFECT_GRAYSCALE_LIGHT:
+ ApplyImageEffect_Grayscale();
+ ApplyImageEffect_RedChannelGrayscale(3);
break;
- case 36:
- sub_80FCD54();
- sub_80FD06C();
- sub_80FD114();
- sub_80FCCBC();
- sub_80FCB5C();
- sub_80FCB5C();
- sub_80FC92C(2);
- sub_80FC9E4(4);
+ case IMAGE_EFFECT_CHARCOAL:
+ ApplyImageEffect_BlackOutline();
+ ApplyImageEffect_BlurRight();
+ ApplyImageEffect_BlurDown();
+ ApplyImageEffect_BlackAndWhite();
+ ApplyImageEffect_Blur();
+ ApplyImageEffect_Blur();
+ ApplyImageEffect_RedChannelGrayscale(2);
+ ApplyImageEffect_RedChannelGrayscaleHighlight(4);
break;
}
}
-#define RGB2(r, g, b) (((b) << 10) | ((g) << 5) | (r))
-
-void sub_80FC92C(u8 a0) // it changes palette someway somehow... .__.
+void ApplyImageEffect_RedChannelGrayscale(u8 delta)
{
u8 i, j;
- for (i = 0; i < gUnknown_03005DF0; i++)
+ for (i = 0; i < gCanvasRowEnd; i++)
{
- u16* var2 = &(*gUnknown_03005DEC)[0][(gUnknown_03005DFC + i) * gUnknown_03005E04];
- u16* pal = &var2[gUnknown_03005DE8];
- for (j = 0; j < gUnknown_03005DF8; j++, pal++)
+ u16* var2 = &gCanvasPixels[(gCanvasRowStart + i) * gCanvasWidth];
+ u16* pal = &var2[gCanvasColumnStart];
+ for (j = 0; j < gCanvasColumnEnd; j++, pal++)
{
- if (!(0x8000 & *pal))
+ if (!IS_ALPHA(*pal))
{
u8 val = (31 & *pal);
- val += a0;
+ val += delta;
if (val > 31)
val = 31;
@@ -141,20 +150,20 @@ void sub_80FC92C(u8 a0) // it changes palette someway somehow... .__.
}
}
-void sub_80FC9E4(u8 a0)
+void ApplyImageEffect_RedChannelGrayscaleHighlight(u8 highlight)
{
u8 i, j;
- for (i = 0; i < gUnknown_03005DF0; i++)
+ for (i = 0; i < gCanvasRowEnd; i++)
{
- u16* var2 = &(*gUnknown_03005DEC)[0][(gUnknown_03005DFC + i) * gUnknown_03005E04];
- u16* pal = &var2[gUnknown_03005DE8];
- for (j = 0; j < gUnknown_03005DF8; j++, pal++)
+ u16* var2 = &gCanvasPixels[(gCanvasRowStart + i) * gCanvasWidth];
+ u16* pal = &var2[gCanvasColumnStart];
+ for (j = 0; j < gCanvasColumnEnd; j++, pal++)
{
- if (!(0x8000 & *pal))
+ if (!IS_ALPHA(*pal))
{
u8 val = (31 & *pal);
- if (val > 31 - a0)
- val = 31 - (a0 >> 1);
+ if (val > 31 - highlight)
+ val = 31 - (highlight >> 1);
*pal = RGB2(val, val, val);
}
@@ -162,23 +171,23 @@ void sub_80FC9E4(u8 a0)
}
}
-void sub_80FCAA4(void)
+void ApplyImageEffect_Pointillism(void)
{
u32 i;
for (i = 0; i < 3200; i++)
- sub_80FD1C8(i);
+ AddPointillismPoints(i);
}
-void sub_80FCAC4(void)
+void ApplyImageEffect_Grayscale(void)
{
u8 i, j;
- for (i = 0; i < gUnknown_03005DF0; i++)
+ for (i = 0; i < gCanvasRowEnd; i++)
{
- u16* var2 = &(*gUnknown_03005DEC)[0][(gUnknown_03005DFC + i) * gUnknown_03005E04];
- u16* color = &var2[gUnknown_03005DE8];
- for (j = 0; j < gUnknown_03005DF8; j++, color++)
+ u16* var2 = &gCanvasPixels[(gCanvasRowStart + i) * gCanvasWidth];
+ u16* color = &var2[gCanvasColumnStart];
+ for (j = 0; j < gCanvasColumnEnd; j++, color++)
{
- if (!(0x8000 & *color))
+ if (!IS_ALPHA(*color))
{
*color = ConvertColorToGrayscale(color);
}
@@ -186,479 +195,316 @@ void sub_80FCAC4(void)
}
}
-void sub_80FCB5C(void)
+void ApplyImageEffect_Blur(void)
{
u8 i, j;
- for (i = 0; i < gUnknown_03005DF8; i++)
+ for (i = 0; i < gCanvasColumnEnd; i++)
{
- u16* var0 = &(*gUnknown_03005DEC)[0][gUnknown_03005DFC * gUnknown_03005E04];
- u16* palette = &var0[gUnknown_03005DE8 + i];
+ u16* var0 = &gCanvasPixels[gCanvasRowStart * gCanvasWidth];
+ u16* palette = &var0[gCanvasColumnStart + i];
u16 color = *palette;
j = 1;
- palette += gUnknown_03005E04;
- while (j < gUnknown_03005DF0 - 1)
+ palette += gCanvasWidth;
+ while (j < gCanvasRowEnd - 1)
{
- if (!(0x8000 & *palette))
+ if (!IS_ALPHA(*palette))
{
- *palette = sub_80FD68C(&color, palette, palette + gUnknown_03005E04);
+ *palette = QuantizePixel_Blur(&color, palette, palette + gCanvasWidth);
color = *palette;
}
j++;
- palette += gUnknown_03005E04;
+ palette += gCanvasWidth;
}
}
}
-void sub_80FCC18(u8 arg0)
+void ApplyImageEffect_PersonalityColor(u8 personality)
{
u8 i, j;
- for (i = 0; i < gUnknown_03005DF0; i++)
+ for (i = 0; i < gCanvasRowEnd; i++)
{
- u16* var0 = &(*gUnknown_03005DEC)[0][(gUnknown_03005DFC + i) * gUnknown_03005E04];
- u16* color = &var0[gUnknown_03005DE8];
- for (j = 0; j < gUnknown_03005DF8; j++, color++)
+ u16* pixelRow = &gCanvasPixels[(gCanvasRowStart + i) * gCanvasWidth];
+ u16* pixel = &pixelRow[gCanvasColumnStart];
+ for (j = 0; j < gCanvasColumnEnd; j++, pixel++)
{
- if (!(0x8000 & *color))
+ if (!IS_ALPHA(*pixel))
{
- *color = ConvertCoolColor(color, arg0);
+ *pixel = ConvertCoolColor(pixel, personality);
}
}
}
}
-void sub_80FCCBC(void)
+void ApplyImageEffect_BlackAndWhite(void)
{
u8 i, j;
- for (i = 0; i < gUnknown_03005DF0; i++)
+ for (i = 0; i < gCanvasRowEnd; i++)
{
- u16* var0 = &(*gUnknown_03005DEC)[0][(gUnknown_03005DFC + i) * gUnknown_03005E04];
- u16* color = &var0[gUnknown_03005DE8];
- for (j = 0; j < gUnknown_03005DF8; j++, color++)
+ u16* pixelRow = &gCanvasPixels[(gCanvasRowStart + i) * gCanvasWidth];
+ u16* pixel = &pixelRow[gCanvasColumnStart];
+ for (j = 0; j < gCanvasColumnEnd; j++, pixel++)
{
- if (!(0x8000 & *color))
+ if (!IS_ALPHA(*pixel))
{
- *color = ConvertToBlackOrWhite(color);
+ *pixel = QuantizePixel_BlackAndWhite(pixel);
}
}
}
}
-void sub_80FCD54(void)
+void ApplyImageEffect_BlackOutline(void)
{
u8 i, j;
- u16 *palette;
+ u16 *pixel;
- for (i = 0; i < gUnknown_03005DF0; i++)
+ for (i = 0; i < gCanvasRowEnd; i++)
{
- u16* var0 = &(*gUnknown_03005DEC)[0][(gUnknown_03005DFC + i) * gUnknown_03005E04];
- palette = &var0[gUnknown_03005DE8];
- *palette = sub_80FD50C(palette, palette + 1);
- for (j = 1, palette = palette + 1; j < gUnknown_03005DF8 - 1; j++, palette++)
+ u16* pixelRow = &gCanvasPixels[(gCanvasRowStart + i) * gCanvasWidth];
+ pixel = &pixelRow[gCanvasColumnStart];
+ *pixel = QuantizePixel_BlackOutline(pixel, pixel + 1);
+ for (j = 1, pixel = pixel + 1; j < gCanvasColumnEnd - 1; j++, pixel++)
{
- *palette = sub_80FD50C(palette, palette + 1);
- *palette = sub_80FD50C(palette, palette - 1);
+ *pixel = QuantizePixel_BlackOutline(pixel, pixel + 1);
+ *pixel = QuantizePixel_BlackOutline(pixel, pixel - 1);
}
- *palette = sub_80FD50C(palette, palette - 1);
+ *pixel = QuantizePixel_BlackOutline(pixel, pixel - 1);
}
- for (j = 0; j < gUnknown_03005DF8; j++)
+ for (j = 0; j < gCanvasColumnEnd; j++)
{
- u16* var0 = &(*gUnknown_03005DEC)[0][gUnknown_03005DFC * gUnknown_03005E04];
- palette = &var0[gUnknown_03005DE8 + j];
- *palette = sub_80FD50C(palette, palette + gUnknown_03005E04);
- for (i = 1, palette = palette + gUnknown_03005E04; i < gUnknown_03005DF0 - 1; i++, palette += gUnknown_03005E04)
+ u16* var0 = &gCanvasPixels[gCanvasRowStart * gCanvasWidth];
+ pixel = &var0[gCanvasColumnStart + j];
+ *pixel = QuantizePixel_BlackOutline(pixel, pixel + gCanvasWidth);
+ for (i = 1, pixel = pixel + gCanvasWidth; i < gCanvasRowEnd - 1; i++, pixel += gCanvasWidth)
{
- *palette = sub_80FD50C(palette, palette + gUnknown_03005E04);
- *palette = sub_80FD50C(palette, palette - gUnknown_03005E04);
+ *pixel = QuantizePixel_BlackOutline(pixel, pixel + gCanvasWidth);
+ *pixel = QuantizePixel_BlackOutline(pixel, pixel - gCanvasWidth);
}
- *palette = sub_80FD50C(palette, palette - gUnknown_03005E04);
+ *pixel = QuantizePixel_BlackOutline(pixel, pixel - gCanvasWidth);
}
}
-void sub_80FCEA4(void)
+void ApplyImageEffect_Invert(void)
{
u8 i, j;
- for (i = 0; i < gUnknown_03005DF0; i++)
+ for (i = 0; i < gCanvasRowEnd; i++)
{
- u16* var0 = &(*gUnknown_03005DEC)[0][(gUnknown_03005DFC + i) * gUnknown_03005E04];
- u16* color = &var0[gUnknown_03005DE8];
- for (j = 0; j < gUnknown_03005DF8; j++, color++)
+ u16* pixelRow = &gCanvasPixels[(gCanvasRowStart + i) * gCanvasWidth];
+ u16* pixel = &pixelRow[gCanvasColumnStart];
+ for (j = 0; j < gCanvasColumnEnd; j++, pixel++)
{
- if (!(0x8000 & *color))
+ if (!IS_ALPHA(*pixel))
{
- *color = InvertColor(color);
+ *pixel = QuantizePixel_Invert(pixel);
}
}
}
}
-void sub_80FCF3C(void)
+void ApplyImageEffect_Shimmer(void)
{
u8 i, j;
- u16 *palette;
+ u16 *pixel;
u16 color;
- palette = (*gUnknown_03005DEC)[0];
+ pixel = gCanvasPixels;
for (i = 0; i < 64; i++)
{
- for (j = 0; j < 64; j++, palette++)
+ for (j = 0; j < 64; j++, pixel++)
{
- if (!(0x8000 & *palette))
+ if (!IS_ALPHA(*pixel))
{
- *palette = InvertColor(palette);
+ *pixel = QuantizePixel_Invert(pixel);
}
}
}
for (j = 0; j < 64; j++)
{
- palette = &(*gUnknown_03005DEC)[0][j];
- color = *palette;
- *palette = 0x8000;
- for (i = 1, palette += 64; i < 63; i++, palette += 64)
+ pixel = &gCanvasPixels[j];
+ color = *pixel;
+ *pixel = RGB_ALPHA;
+ for (i = 1, pixel += 64; i < 63; i++, pixel += 64)
{
- if (!(0x8000 & *palette))
+ if (!IS_ALPHA(*pixel))
{
- *palette = sub_80FD7AC(&color, palette, palette + 64);
- color = *palette;
+ *pixel = QuantizePixel_BlurHard(&color, pixel, pixel + 64);
+ color = *pixel;
}
}
- *palette = 0x8000;
- palette = &(*gUnknown_03005DEC)[0][j];
- color = *palette;
- *palette = 0x8000;
- for (i = 1, palette += 64; i < 63; i++, palette += 64)
+ *pixel = RGB_ALPHA;
+ pixel = &gCanvasPixels[j];
+ color = *pixel;
+ *pixel = RGB_ALPHA;
+ for (i = 1, pixel += 64; i < 63; i++, pixel += 64)
{
- if (!(0x8000 & *palette))
+ if (!IS_ALPHA(*pixel))
{
- *palette = sub_80FD7AC(&color, palette, palette + 64);
- color = *palette;
+ *pixel = QuantizePixel_BlurHard(&color, pixel, pixel + 64);
+ color = *pixel;
}
}
- *palette = 0x8000;
+ *pixel = RGB_ALPHA;
}
- palette = (*gUnknown_03005DEC)[0];
+ pixel = gCanvasPixels;
for (i = 0; i < 64; i++)
{
- for (j = 0; j < 64; j++, palette++)
+ for (j = 0; j < 64; j++, pixel++)
{
- if (!(0x8000 & *palette))
+ if (!IS_ALPHA(*pixel))
{
- *palette = InvertColor(palette);
+ *pixel = QuantizePixel_Invert(pixel);
}
}
}
}
-void sub_80FD06C(void)
+void ApplyImageEffect_BlurRight(void)
{
u8 i, j;
- for (i = 0; i < gUnknown_03005DF0; i++)
+ for (i = 0; i < gCanvasRowEnd; i++)
{
- u16* var0 = &(*gUnknown_03005DEC)[0][(gUnknown_03005DFC + i) * gUnknown_03005E04];
- u16* palette = &var0[gUnknown_03005DE8];
- u16 color = *palette;
- for (j = 1, palette++; j < gUnknown_03005DF8 - 1; j++, palette++)
+ u16* pixelRow = &gCanvasPixels[(gCanvasRowStart + i) * gCanvasWidth];
+ u16* pixel = &pixelRow[gCanvasColumnStart];
+ u16 color = *pixel;
+ for (j = 1, pixel++; j < gCanvasColumnEnd - 1; j++, pixel++)
{
- if (!(0x8000 & *palette))
+ if (!IS_ALPHA(*pixel))
{
- *palette = sub_80FD568(&color, palette);
- color = *palette;
+ *pixel = QuantizePixel_MotionBlur(&color, pixel);
+ color = *pixel;
}
}
}
}
-void sub_80FD114(void)
+void ApplyImageEffect_BlurDown(void)
{
u8 i, j;
- for (i = 0; i < gUnknown_03005DF8; i++)
+ for (i = 0; i < gCanvasColumnEnd; i++)
{
- u16* var0 = &(*gUnknown_03005DEC)[0][gUnknown_03005DFC * gUnknown_03005E04];
- u16* palette = &var0[gUnknown_03005DE8 + i];
- u16 color = *palette;
- for (j = 1, palette += gUnknown_03005E04; j < gUnknown_03005DF0 - 1; j++, palette += gUnknown_03005E04)
+ u16* pixelRow = &gCanvasPixels[gCanvasRowStart * gCanvasWidth];
+ u16* pixel = &pixelRow[gCanvasColumnStart + i];
+ u16 prevPixel = *pixel;
+ for (j = 1, pixel += gCanvasWidth; j < gCanvasRowEnd - 1; j++, pixel += gCanvasWidth)
{
- if (!(0x8000 & *palette))
+ if (!IS_ALPHA(*pixel))
{
- *palette = sub_80FD568(&color, palette);
- color = *palette;
+ *pixel = QuantizePixel_MotionBlur(&prevPixel, pixel);
+ prevPixel = *pixel;
}
}
}
}
-NAKED
-void sub_80FD1C8(u16 arg0)
+struct PointillismPoint
+{
+ u8 column;
+ u8 row;
+ u16 delta;
+};
+
+void AddPointillismPoints(u16 point)
{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r10\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5-r7}\n\
- sub sp, 0x20\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- mov r10, r0\n\
- mov r2, sp\n\
- ldr r3, _080FD234 @ =gUnknown_083E7A50\n\
- lsls r1, r0, 1\n\
- add r1, r10\n\
- adds r0, r1, r3\n\
- ldrb r0, [r0]\n\
- strb r0, [r2]\n\
- adds r0, r3, 0x1\n\
- adds r0, r1, r0\n\
- ldrb r0, [r0]\n\
- strb r0, [r2, 0x1]\n\
- mov r5, sp\n\
- adds r0, r3, 0x2\n\
- adds r1, r0\n\
- ldrb r4, [r1]\n\
- lsls r2, r4, 24\n\
- lsrs r1, r2, 27\n\
- movs r0, 0x7\n\
- ands r1, r0\n\
- strh r1, [r5, 0x2]\n\
- lsrs r2, 25\n\
- mov r9, r2\n\
- movs r0, 0x3\n\
- ands r2, r0\n\
- mov r9, r2\n\
- movs r5, 0x1\n\
- ands r5, r4\n\
- movs r4, 0x1\n\
- mov r8, r4\n\
- cmp r8, r1\n\
- bcs _080FD27A\n\
- mov r3, sp\n\
-_080FD21A:\n\
- cmp r5, 0\n\
- bne _080FD238\n\
- mov r0, r8\n\
- lsls r2, r0, 2\n\
- mov r4, sp\n\
- adds r1, r4, r2\n\
- ldrb r0, [r3]\n\
- mov r4, r8\n\
- subs r0, r4\n\
- strb r0, [r1]\n\
- ldrb r0, [r3, 0x1]\n\
- add r0, r8\n\
- b _080FD24A\n\
- .align 2, 0\n\
-_080FD234: .4byte gUnknown_083E7A50\n\
-_080FD238:\n\
- mov r0, r8\n\
- lsls r2, r0, 2\n\
- mov r4, sp\n\
- adds r1, r4, r2\n\
- ldrb r0, [r3]\n\
- adds r0, 0x1\n\
- strb r0, [r1]\n\
- ldrb r0, [r3, 0x1]\n\
- subs r0, 0x1\n\
-_080FD24A:\n\
- strb r0, [r1, 0x1]\n\
- add r2, sp\n\
- ldrb r0, [r2]\n\
- cmp r0, 0x3F\n\
- bhi _080FD25A\n\
- ldrb r0, [r2, 0x1]\n\
- cmp r0, 0x3F\n\
- bls _080FD262\n\
-_080FD25A:\n\
- mov r0, r8\n\
- subs r0, 0x1\n\
- strh r0, [r3, 0x2]\n\
- b _080FD27A\n\
-_080FD262:\n\
- ldrh r0, [r3, 0x2]\n\
- mov r1, r8\n\
- subs r0, r1\n\
- strh r0, [r2, 0x2]\n\
- mov r0, r8\n\
- adds r0, 0x1\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r8, r0\n\
- ldrh r0, [r3, 0x2]\n\
- cmp r8, r0\n\
- bcc _080FD21A\n\
-_080FD27A:\n\
- movs r2, 0\n\
- mov r8, r2\n\
- mov r0, sp\n\
- ldrh r0, [r0, 0x2]\n\
- cmp r8, r0\n\
- bcc _080FD288\n\
- b _080FD38A\n\
-_080FD288:\n\
- movs r3, 0x1F\n\
-_080FD28A:\n\
- ldr r1, _080FD2E8 @ =gUnknown_03005DEC\n\
- mov r4, r8\n\
- lsls r0, r4, 2\n\
- mov r2, sp\n\
- adds r6, r2, r0\n\
- ldrb r0, [r6, 0x1]\n\
- lsls r0, 7\n\
- ldr r1, [r1]\n\
- adds r1, r0\n\
- ldrb r0, [r6]\n\
- lsls r0, 1\n\
- adds r2, r1, r0\n\
- ldrh r1, [r2]\n\
- movs r4, 0x80\n\
- lsls r4, 8\n\
- adds r0, r4, 0\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _080FD376\n\
- movs r7, 0x1F\n\
- ands r7, r1\n\
- lsls r0, r1, 16\n\
- lsrs r5, r0, 21\n\
- ands r5, r3\n\
- lsrs r4, r0, 26\n\
- ands r4, r3\n\
- mov r0, r9\n\
- cmp r0, 0\n\
- blt _080FD36C\n\
- cmp r0, 0x1\n\
- ble _080FD2EC\n\
- cmp r0, 0x3\n\
- bgt _080FD36C\n\
- ldrh r0, [r6, 0x2]\n\
- adds r1, r7, r0\n\
- lsls r1, 16\n\
- lsrs r7, r1, 16\n\
- adds r1, r5, r0\n\
- lsls r1, 16\n\
- lsrs r5, r1, 16\n\
- adds r0, r4, r0\n\
- lsls r0, 16\n\
- lsrs r4, r0, 16\n\
- cmp r7, 0x1F\n\
- bls _080FD360\n\
- movs r7, 0x1F\n\
- b _080FD360\n\
- .align 2, 0\n\
-_080FD2E8: .4byte gUnknown_03005DEC\n\
-_080FD2EC:\n\
- mov r1, r10\n\
- lsls r0, r1, 1\n\
- add r0, r10\n\
- ldr r1, _080FD320 @ =gUnknown_083E7A50\n\
- adds r1, 0x2\n\
- adds r0, r1\n\
- ldrb r0, [r0]\n\
- lsrs r0, 3\n\
- movs r1, 0x7\n\
- ands r0, r1\n\
- movs r1, 0x3\n\
- str r2, [sp, 0x18]\n\
- str r3, [sp, 0x1C]\n\
- bl __umodsi3\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- ldr r2, [sp, 0x18]\n\
- ldr r3, [sp, 0x1C]\n\
- cmp r0, 0x1\n\
- beq _080FD33C\n\
- cmp r0, 0x1\n\
- bgt _080FD324\n\
- cmp r0, 0\n\
- beq _080FD32A\n\
- b _080FD36C\n\
- .align 2, 0\n\
-_080FD320: .4byte gUnknown_083E7A50\n\
-_080FD324:\n\
- cmp r0, 0x2\n\
- beq _080FD34E\n\
- b _080FD36C\n\
-_080FD32A:\n\
- ldrh r0, [r6, 0x2]\n\
- cmp r7, r0\n\
- bcc _080FD338\n\
- subs r0, r7, r0\n\
- lsls r0, 16\n\
- lsrs r7, r0, 16\n\
- b _080FD36C\n\
-_080FD338:\n\
- movs r7, 0\n\
- b _080FD36C\n\
-_080FD33C:\n\
- ldrh r0, [r6, 0x2]\n\
- cmp r5, r0\n\
- bcc _080FD34A\n\
- subs r0, r5, r0\n\
- lsls r0, 16\n\
- lsrs r5, r0, 16\n\
- b _080FD36C\n\
-_080FD34A:\n\
- movs r5, 0\n\
- b _080FD36C\n\
-_080FD34E:\n\
- ldrh r0, [r6, 0x2]\n\
- cmp r4, r0\n\
- bcc _080FD35C\n\
- subs r0, r4, r0\n\
- lsls r0, 16\n\
- lsrs r4, r0, 16\n\
- b _080FD36C\n\
-_080FD35C:\n\
- movs r4, 0\n\
- b _080FD36C\n\
-_080FD360:\n\
- cmp r5, 0x1F\n\
- bls _080FD366\n\
- movs r5, 0x1F\n\
-_080FD366:\n\
- cmp r4, 0x1F\n\
- bls _080FD36C\n\
- movs r4, 0x1F\n\
-_080FD36C:\n\
- lsls r0, r4, 10\n\
- lsls r1, r5, 5\n\
- orrs r0, r1\n\
- orrs r7, r0\n\
- strh r7, [r2]\n\
-_080FD376:\n\
- mov r0, r8\n\
- adds r0, 0x1\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r8, r0\n\
- mov r0, sp\n\
- ldrh r0, [r0, 0x2]\n\
- cmp r8, r0\n\
- bcs _080FD38A\n\
- b _080FD28A\n\
-_080FD38A:\n\
- add sp, 0x20\n\
- pop {r3-r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov r10, r5\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .syntax divided\n");
+ u8 i;
+ bool8 offsetDownLeft;
+ u8 colorType;
+ struct PointillismPoint points[6];
+
+ points[0].column = sPointillismPoints[point][0];
+ points[0].row = sPointillismPoints[point][1];
+ points[0].delta = GET_POINT_DELTA(sPointillismPoints[point][2]);
+
+ colorType = GET_POINT_COLOR_TYPE(sPointillismPoints[point][2]);
+ offsetDownLeft = GET_POINT_OFFSET_DL(sPointillismPoints[point][2]);
+ for (i = 1; i < points[0].delta; i++)
+ {
+ if (!offsetDownLeft)
+ {
+ points[i].column = points[0].column - i;
+ points[i].row = points[0].row + i;
+ }
+ else
+ {
+ points[i].column = points[0].column + 1;
+ points[i].row = points[0].row - 1;
+ }
+
+ if (points[i].column >= MAX_DIMENSION || points[i].row >= MAX_DIMENSION)
+ {
+ points[0].delta = i - 1;
+ break;
+ }
+
+ points[i].delta = points[0].delta - i;
+ }
+
+ for (i = 0; i < points[0].delta; i++)
+ {
+ u16 *pixel = &gCanvasPixels[points[i].row * MAX_DIMENSION] + points[i].column;
+
+ if (!IS_ALPHA(*pixel))
+ {
+ u16 red = GET_R(*pixel);
+ u16 green = GET_G(*pixel);
+ u16 blue = GET_B(*pixel);
+
+ switch (colorType)
+ {
+ case 0:
+ case 1:
+ switch (GET_POINT_DELTA(sPointillismPoints[point][2]) % 3)
+ {
+ case 0:
+ if (red >= points[i].delta)
+ red -= points[i].delta;
+ else
+ red = 0;
+ break;
+ case 1:
+ if (green >= points[i].delta)
+ green -= points[i].delta;
+ else
+ green = 0;
+ break;
+ case 2:
+ if (blue >= points[i].delta)
+ blue -= points[i].delta;
+ else
+ blue = 0;
+ break;
+ }
+ break;
+ case 2:
+ case 3:
+ red += points[i].delta;
+ green += points[i].delta;
+ blue += points[i].delta;
+ if (red > 31)
+ red = 31;
+ if (green > 31)
+ green = 31;
+ if (blue > 31)
+ blue = 31;
+ break;
+ }
+
+ *pixel = RGB2(red, green, blue);
+ }
+ }
}
u16 ConvertColorToGrayscale(u16 *color)
{
- u16 red = *color & 0x1F;
- u16 green = (*color >> 5) & 0x1F;
- u16 blue = (*color >> 10) & 0x1F;
+ u16 red = GET_R(*color);
+ u16 green = GET_G(*color);
+ u16 blue = GET_B(*color);
u16 average = (red + green + blue) / 3;
return RGB2(average, average, average);
}
@@ -667,13 +513,13 @@ u16 ConvertColorToGrayscale(u16 *color)
// Everything else is white.
u16 ConvertCoolColor(u16 *color, u8 personality)
{
- u16 red = *color & 0x1F;
- u16 green = (*color >> 5) & 0x1F;
- u16 blue = (*color >> 10) & 0x1F;
+ u16 red = GET_R(*color);
+ u16 green = GET_G(*color);
+ u16 blue = GET_B(*color);
if (red < 17 && green < 17 && blue < 17)
return GetCoolColorFromPersonality(personality);
else
- return RGB2(31, 31, 31);
+ return RGB_WHITE;
}
// Based on the given value, which comes from the first 8 bits of
@@ -729,37 +575,37 @@ u16 GetCoolColorFromPersonality(u8 personality)
return RGB2(red, green, blue);
}
-u16 ConvertToBlackOrWhite(u16 *color)
+u16 QuantizePixel_BlackAndWhite(u16 *color)
{
- u16 red = *color & 0x1F;
- u16 green = (*color >> 5) & 0x1F;
- u16 blue = (*color >> 10) & 0x1F;
+ u16 red = GET_R(*color);
+ u16 green = GET_G(*color);
+ u16 blue = GET_B(*color);
if (red < 17 && green < 17 && blue < 17)
- return RGB2(0, 0, 0);
+ return RGB_BLACK;
else
- return RGB2(31, 31, 31);
+ return RGB_WHITE;
}
-u16 sub_80FD50C(u16 *colorA, u16 *colorB)
+u16 QuantizePixel_BlackOutline(u16 *colorA, u16 *colorB)
{
if (*colorA)
{
- if (*colorA & 0x8000)
- return 0x8000;
- if (*colorB & 0x8000)
- return RGB2(0, 0, 0);
+ if (IS_ALPHA(*colorA))
+ return RGB_ALPHA;
+ if (IS_ALPHA(*colorB))
+ return RGB_BLACK;
return *colorA;
}
- return RGB2(0, 0, 0);
+ return RGB_BLACK;
}
-u16 InvertColor(u16 *color)
+u16 QuantizePixel_Invert(u16 *color)
{
- u16 red = *color & 0x1F;
- u16 green = (*color >> 5) & 0x1F;
- u16 blue = (*color >> 10) & 0x1F;
+ u16 red = GET_R(*color);
+ u16 green = GET_G(*color);
+ u16 blue = GET_B(*color);
red = 31 - red;
green = 31 - green;
blue = 31 - blue;
@@ -767,63 +613,63 @@ u16 InvertColor(u16 *color)
return RGB2(red, green, blue);
}
-u16 sub_80FD568(u16 *a0, u16 *a1)
+u16 QuantizePixel_MotionBlur(u16 *prevPixel, u16 *curPixel)
{
- u16 sp0[2][3];
- u16 spC[3];
- u8 r4;
- u16 r2;
+ u16 pixelChannels[2][3];
+ u16 diffs[3];
+ u8 i;
+ u16 largestDiff;
u16 r, g, b;
- if (*a0 == *a1)
- return *a1;
+ if (*prevPixel == *curPixel)
+ return *curPixel;
- sp0[0][0] = (*a0 >> 0) & 0x1F;
- sp0[0][1] = (*a0 >> 5) & 0x1F;
- sp0[0][2] = (*a0 >> 10) & 0x1F;
- sp0[1][0] = (*a1 >> 0) & 0x1F;
- sp0[1][1] = (*a1 >> 5) & 0x1F;
- sp0[1][2] = (*a1 >> 10) & 0x1F;
+ pixelChannels[0][0] = GET_R(*prevPixel);
+ pixelChannels[0][1] = GET_G(*prevPixel);
+ pixelChannels[0][2] = GET_B(*prevPixel);
+ pixelChannels[1][0] = GET_R(*curPixel);
+ pixelChannels[1][1] = GET_G(*curPixel);
+ pixelChannels[1][2] = GET_B(*curPixel);
- if (sp0[0][0] > 25 && sp0[0][1] > 25 && sp0[0][2] > 25)
- return *a1;
- if (sp0[1][0] > 25 && sp0[1][1] > 25 && sp0[1][2] > 25)
- return *a1;
+ if (pixelChannels[0][0] > 25 && pixelChannels[0][1] > 25 && pixelChannels[0][2] > 25)
+ return *curPixel;
+ if (pixelChannels[1][0] > 25 && pixelChannels[1][1] > 25 && pixelChannels[1][2] > 25)
+ return *curPixel;
- for (r4 = 0; r4 < 3; r4++)
+ for (i = 0; i < 3; i++)
{
- if (sp0[0][r4] > sp0[1][r4])
- spC[r4] = sp0[0][r4] - sp0[1][r4];
+ if (pixelChannels[0][i] > pixelChannels[1][i])
+ diffs[i] = pixelChannels[0][i] - pixelChannels[1][i];
else
- spC[r4] = sp0[1][r4] - sp0[0][r4];
+ diffs[i] = pixelChannels[1][i] - pixelChannels[0][i];
}
- if (spC[0] >= spC[1])
+ if (diffs[0] >= diffs[1])
{
- if (spC[0] >= spC[2])
- r2 = spC[0];
- else if (spC[1] >= spC[2])
- r2 = spC[1];
+ if (diffs[0] >= diffs[2])
+ largestDiff = diffs[0];
+ else if (diffs[1] >= diffs[2])
+ largestDiff = diffs[1];
else
- r2 = spC[2];
+ largestDiff = diffs[2];
}
else
{
- if (spC[1] >= spC[2])
- r2 = spC[1];
- else if (spC[2] >= spC[0])
- r2 = spC[2];
+ if (diffs[1] >= diffs[2])
+ largestDiff = diffs[1];
+ else if (diffs[2] >= diffs[0])
+ largestDiff = diffs[2];
else
- r2 = spC[0];
+ largestDiff = diffs[0];
}
- r = (sp0[1][0] * (31 - r2 / 2)) / 31;
- g = (sp0[1][1] * (31 - r2 / 2)) / 31;
- b = (sp0[1][2] * (31 - r2 / 2)) / 31;
+ r = (pixelChannels[1][0] * (31 - largestDiff / 2)) / 31;
+ g = (pixelChannels[1][1] * (31 - largestDiff / 2)) / 31;
+ b = (pixelChannels[1][2] * (31 - largestDiff / 2)) / 31;
return RGB2(r, g, b);
}
-u16 sub_80FD68C(u16 * a0, u16 * a1, u16 * a2)
+u16 QuantizePixel_Blur(u16 *prevPixel, u16 *curPixel, u16 *nextPixel)
{
u16 red, green, blue;
u16 avg0, avg1, avg2;
@@ -831,19 +677,19 @@ u16 sub_80FD68C(u16 * a0, u16 * a1, u16 * a2)
u32 minimum;
u16 factor;
- if (*a0 == *a1 && *a2 == *a1)
- return *a1;
+ if (*prevPixel == *curPixel && *nextPixel == *curPixel)
+ return *curPixel;
- red = (*a1 >> 0) & 0x1F;
- green = (*a1 >> 5) & 0x1F;
- blue = (*a1 >> 10) & 0x1F;
+ red = GET_R(*curPixel);
+ green = GET_G(*curPixel);
+ blue = GET_B(*curPixel);
- avg0 = (((*a0 >> 0) & 0x1F) + ((*a0 >> 5) & 0x1F) + ((*a0 >> 10) & 0x1F)) / 3;
- avg1 = (((*a1 >> 0) & 0x1F) + ((*a1 >> 5) & 0x1F) + ((*a1 >> 10) & 0x1F)) / 3;
- avg2 = (((*a2 >> 0) & 0x1F) + ((*a2 >> 5) & 0x1F) + ((*a2 >> 10) & 0x1F)) / 3;
+ avg0 = ((GET_R(*prevPixel)) + (GET_G(*prevPixel)) + (GET_B(*prevPixel))) / 3;
+ avg1 = ((GET_R(*curPixel)) + (GET_G(*curPixel)) + (GET_B(*curPixel))) / 3;
+ avg2 = ((GET_R(*nextPixel)) + (GET_G(*nextPixel)) + (GET_B(*nextPixel))) / 3;
if (avg0 == avg1 && avg2 == avg1)
- return *a1;
+ return *curPixel;
if (avg0 > avg1)
diff1 = avg0 - avg1;
@@ -867,7 +713,7 @@ u16 sub_80FD68C(u16 * a0, u16 * a1, u16 * a2)
return RGB2(red, green, blue);
}
-u16 sub_80FD7AC(u16 *a0, u16 *a1, u16 *a2)
+u16 QuantizePixel_BlurHard(u16 *prevPixel, u16 *curPixel, u16 *nextPixel)
{
u16 red, green, blue;
u16 avg0, avg1, avg2;
@@ -875,19 +721,19 @@ u16 sub_80FD7AC(u16 *a0, u16 *a1, u16 *a2)
u32 minimum;
u16 factor;
- if (*a0 == *a1 && *a2 == *a1)
- return *a1;
+ if (*prevPixel == *curPixel && *nextPixel == *curPixel)
+ return *curPixel;
- red = (*a1 >> 0) & 0x1F;
- green = (*a1 >> 5) & 0x1F;
- blue = (*a1 >> 10) & 0x1F;
+ red = GET_R(*curPixel);
+ green = GET_G(*curPixel);
+ blue = GET_B(*curPixel);
- avg0 = (((*a0 >> 0) & 0x1F) + ((*a0 >> 5) & 0x1F) + ((*a0 >> 10) & 0x1F)) / 3;
- avg1 = (((*a1 >> 0) & 0x1F) + ((*a1 >> 5) & 0x1F) + ((*a1 >> 10) & 0x1F)) / 3;
- avg2 = (((*a2 >> 0) & 0x1F) + ((*a2 >> 5) & 0x1F) + ((*a2 >> 10) & 0x1F)) / 3;
+ avg0 = ((GET_R(*prevPixel)) + (GET_G(*prevPixel)) + (GET_B(*prevPixel))) / 3;
+ avg1 = ((GET_R(*curPixel)) + (GET_G(*curPixel)) + (GET_B(*curPixel))) / 3;
+ avg2 = ((GET_R(*nextPixel)) + (GET_G(*nextPixel)) + (GET_B(*nextPixel))) / 3;
if (avg0 == avg1 && avg2 == avg1)
- return *a1;
+ return *curPixel;
if (avg0 > avg1)
diff1 = avg0 - avg1;
@@ -911,318 +757,141 @@ u16 sub_80FD7AC(u16 *a0, u16 *a1, u16 *a2)
return RGB2(red, green, blue);
}
-/*
-void sub_80FD8CC(struct ImageProcessingContext * a0)
+void ConvertImageProcessingToGBA(struct ImageProcessingContext *context)
{
u16 i, j, k;
- u8 r5 = a0->var_1D >> 3;
- u8 sp08 = a0->var_1E >> 3;
- u16 * sp00 = (u16 *)a0->var_4;
- u16 * sp04 = (u16 *)a0->var_10;
- if (a0->var_16 == 2)
+ u16 *src, *dest, *src_, *dest_;
+ u16 width, height;
+
+ width = context->canvasWidth >> 3;
+ height = context->canvasHeight >> 3;
+ src_ = context->canvasPixels;
+ dest_ = context->dest;
+
+ if (context->bgType == 2)
{
- for (i = 0; i < sp08; i++)
+ for (i = 0; i < height; i++)
{
- for (j = 0; j < r5; j++)
+ for (j = 0; j < width; j++)
{
for (k = 0; k < 8; k++)
{
- u16 * r3 = &sp04[i * r5 * 32 + 4 * k];
- u16 * r2 = &sp00[j * 8 + (i * 8 + k) * 8 * r5];
- r3[0] = r2[0] | (r2[1] << 8);
- r3[1] = r2[2] | (r2[3] << 8);
- r3[2] = r2[4] | (r2[5] << 8);
- r3[3] = r2[6] | (r2[7] << 8);
+ dest = dest_ + ((i * width + j) << 5) + (k << 2);
+ src = src_ + ((((i << 3) + k) << 3) * width) + (j << 3);
+
+ dest[0] = src[0] | (src[1] << 8);
+ dest[1] = src[2] | (src[3] << 8);
+ dest[2] = src[4] | (src[5] << 8);
+ dest[3] = src[6] | (src[7] << 8);
}
}
}
}
else
{
- for (i = 0; i < sp08; i++)
+ for (i = 0; i < height; i++)
{
- for (j = 0; j < r5; j++)
+ for (j = 0; j < width; j++)
{
for (k = 0; k < 8; k++)
{
- u16 * r3 = &sp04[i * r5 * 16 + 2 * k];
- u16 * r2 = &sp00[j * 8 + (i * 8 + k) * 8 * r5];
- r3[0] = r2[0] | (r2[1] << 4) | (r2[2] << 8) | (r2[3] << 12);
- r3[1] = r2[4] | (r2[5] << 4) | (r2[6] << 8) | (r2[7] << 12);
+ dest = dest_ + ((i * width + j) << 4) + (k << 1);
+ src = src_ + ((((i << 3) + k) << 3) * width) + (j << 3);
+
+ dest[0] = src[0] | (src[1] << 4) | (src[2] << 8) | (src[3] << 12);
+ dest[1] = src[4] | (src[5] << 4) | (src[6] << 8) | (src[7] << 12);
}
}
}
}
}
-*/
-
-NAKED
-void sub_80FD8CC(struct ImageProcessingContext * a0)
-{
- asm_unified("\tpush {r4-r7,lr}\n"
- "\tmov r7, r10\n"
- "\tmov r6, r9\n"
- "\tmov r5, r8\n"
- "\tpush {r5-r7}\n"
- "\tsub sp, 0xC\n"
- "\tldrb r1, [r0, 0x1D]\n"
- "\tlsrs r5, r1, 3\n"
- "\tldrb r1, [r0, 0x1E]\n"
- "\tlsrs r1, 3\n"
- "\tstr r1, [sp, 0x8]\n"
- "\tldr r1, [r0, 0x4]\n"
- "\tstr r1, [sp]\n"
- "\tldr r2, [r0, 0x10]\n"
- "\tstr r2, [sp, 0x4]\n"
- "\tldrh r0, [r0, 0x16]\n"
- "\tcmp r0, 0x2\n"
- "\tbne _080FD97C\n"
- "\tmovs r1, 0\n"
- "\tldr r0, [sp, 0x8]\n"
- "\tcmp r1, r0\n"
- "\tbcc _080FD8FA\n"
- "\tb _080FDA08\n"
- "_080FD8FA:\n"
- "\tmovs r0, 0\n"
- "\tadds r2, r1, 0x1\n"
- "\tmov r10, r2\n"
- "\tcmp r0, r5\n"
- "\tbcs _080FD96E\n"
- "\tadds r2, r1, 0\n"
- "\tmuls r2, r5\n"
- "\tmov r9, r2\n"
- "\tlsls r1, 3\n"
- "\tmov r8, r1\n"
- "_080FD90E:\n"
- "\tmovs r4, 0\n"
- "\tlsls r6, r0, 4\n"
- "\tadds r7, r0, 0x1\n"
- "\tadd r0, r9\n"
- "\tlsls r0, 6\n"
- "\tldr r1, [sp, 0x4]\n"
- "\tadds r1, r0\n"
- "\tmov r12, r1\n"
- "_080FD91E:\n"
- "\tlsls r0, r4, 3\n"
- "\tmov r2, r12\n"
- "\tadds r3, r2, r0\n"
- "\tmov r1, r8\n"
- "\tadds r0, r1, r4\n"
- "\tlsls r0, 3\n"
- "\tmuls r0, r5\n"
- "\tlsls r0, 1\n"
- "\tldr r2, [sp]\n"
- "\tadds r0, r2, r0\n"
- "\tadds r2, r0, r6\n"
- "\tldrh r0, [r2, 0x2]\n"
- "\tlsls r0, 8\n"
- "\tldrh r1, [r2]\n"
- "\torrs r0, r1\n"
- "\tstrh r0, [r3]\n"
- "\tldrh r0, [r2, 0x6]\n"
- "\tlsls r0, 8\n"
- "\tldrh r1, [r2, 0x4]\n"
- "\torrs r0, r1\n"
- "\tstrh r0, [r3, 0x2]\n"
- "\tldrh r0, [r2, 0xA]\n"
- "\tlsls r0, 8\n"
- "\tldrh r1, [r2, 0x8]\n"
- "\torrs r0, r1\n"
- "\tstrh r0, [r3, 0x4]\n"
- "\tldrh r0, [r2, 0xE]\n"
- "\tlsls r0, 8\n"
- "\tldrh r1, [r2, 0xC]\n"
- "\torrs r0, r1\n"
- "\tstrh r0, [r3, 0x6]\n"
- "\tadds r0, r4, 0x1\n"
- "\tlsls r0, 16\n"
- "\tlsrs r4, r0, 16\n"
- "\tcmp r4, 0x7\n"
- "\tbls _080FD91E\n"
- "\tlsls r0, r7, 16\n"
- "\tlsrs r0, 16\n"
- "\tcmp r0, r5\n"
- "\tbcc _080FD90E\n"
- "_080FD96E:\n"
- "\tmov r1, r10\n"
- "\tlsls r0, r1, 16\n"
- "\tlsrs r1, r0, 16\n"
- "\tldr r2, [sp, 0x8]\n"
- "\tcmp r1, r2\n"
- "\tbcc _080FD8FA\n"
- "\tb _080FDA08\n"
- "_080FD97C:\n"
- "\tmovs r1, 0\n"
- "\tldr r0, [sp, 0x8]\n"
- "\tcmp r1, r0\n"
- "\tbcs _080FDA08\n"
- "_080FD984:\n"
- "\tmovs r0, 0\n"
- "\tadds r2, r1, 0x1\n"
- "\tmov r10, r2\n"
- "\tcmp r0, r5\n"
- "\tbcs _080FD9FC\n"
- "\tadds r2, r1, 0\n"
- "\tmuls r2, r5\n"
- "\tmov r9, r2\n"
- "\tlsls r1, 3\n"
- "\tmov r8, r1\n"
- "_080FD998:\n"
- "\tmovs r4, 0\n"
- "\tlsls r6, r0, 4\n"
- "\tadds r7, r0, 0x1\n"
- "\tadd r0, r9\n"
- "\tlsls r0, 5\n"
- "\tldr r1, [sp, 0x4]\n"
- "\tadds r1, r0\n"
- "\tmov r12, r1\n"
- "_080FD9A8:\n"
- "\tlsls r0, r4, 2\n"
- "\tmov r2, r12\n"
- "\tadds r3, r2, r0\n"
- "\tmov r1, r8\n"
- "\tadds r0, r1, r4\n"
- "\tlsls r0, 3\n"
- "\tmuls r0, r5\n"
- "\tlsls r0, 1\n"
- "\tldr r2, [sp]\n"
- "\tadds r0, r2, r0\n"
- "\tadds r2, r0, r6\n"
- "\tldrh r1, [r2, 0x2]\n"
- "\tlsls r1, 4\n"
- "\tldrh r0, [r2]\n"
- "\torrs r1, r0\n"
- "\tldrh r0, [r2, 0x4]\n"
- "\tlsls r0, 8\n"
- "\torrs r1, r0\n"
- "\tldrh r0, [r2, 0x6]\n"
- "\tlsls r0, 12\n"
- "\torrs r1, r0\n"
- "\tstrh r1, [r3]\n"
- "\tldrh r1, [r2, 0xA]\n"
- "\tlsls r1, 4\n"
- "\tldrh r0, [r2, 0x8]\n"
- "\torrs r1, r0\n"
- "\tldrh r0, [r2, 0xC]\n"
- "\tlsls r0, 8\n"
- "\torrs r1, r0\n"
- "\tldrh r0, [r2, 0xE]\n"
- "\tlsls r0, 12\n"
- "\torrs r1, r0\n"
- "\tstrh r1, [r3, 0x2]\n"
- "\tadds r0, r4, 0x1\n"
- "\tlsls r0, 16\n"
- "\tlsrs r4, r0, 16\n"
- "\tcmp r4, 0x7\n"
- "\tbls _080FD9A8\n"
- "\tlsls r0, r7, 16\n"
- "\tlsrs r0, 16\n"
- "\tcmp r0, r5\n"
- "\tbcc _080FD998\n"
- "_080FD9FC:\n"
- "\tmov r1, r10\n"
- "\tlsls r0, r1, 16\n"
- "\tlsrs r1, r0, 16\n"
- "\tldr r2, [sp, 0x8]\n"
- "\tcmp r1, r2\n"
- "\tbcc _080FD984\n"
- "_080FDA08:\n"
- "\tadd sp, 0xC\n"
- "\tpop {r3-r5}\n"
- "\tmov r8, r3\n"
- "\tmov r9, r4\n"
- "\tmov r10, r5\n"
- "\tpop {r4-r7}\n"
- "\tpop {r0}\n"
- "\tbx r0");
-}
-void sub_80FDA18(struct ImageProcessingContext *arg0)
+void ApplyImageProcessingQuantization(struct ImageProcessingContext *arg0)
{
- gUnknown_03005E0C = arg0->var_18 * 16;
- gUnknown_03005E08 = &arg0->var_8[gUnknown_03005E0C];
- gUnknown_03005DEC = arg0->var_4;
- gUnknown_03005DE8 = arg0->var_19;
- gUnknown_03005DFC = arg0->var_1A;
- gUnknown_03005DF8 = arg0->var_1B;
- gUnknown_03005DF0 = arg0->var_1C;
- gUnknown_03005E04 = arg0->var_1D;
- gUnknown_03005DF4 = arg0->var_1E;
-
- switch (arg0->var_14)
+ gCanvasPaletteStart = arg0->paletteStart * 16;
+ gCanvasPalette = &arg0->canvasPalette[gCanvasPaletteStart];
+ gCanvasPixels = arg0->canvasPixels;
+ gCanvasColumnStart = arg0->columnStart;
+ gCanvasRowStart = arg0->rowStart;
+ gCanvasColumnEnd = arg0->columnEnd;
+ gCanvasRowEnd = arg0->rowEnd;
+ gCanvasWidth = arg0->canvasWidth;
+ gCanvasHeight = arg0->canvasHeight;
+
+ switch (arg0->quantizeEffect)
{
- case 0:
- sub_80FDC18(FALSE);
+ case QUANTIZE_EFFECT_STANDARD:
+ QuantizePalette_Standard(FALSE);
break;
- case 1:
- sub_80FDC18(TRUE);
+ case QUANTIZE_EFFECT_STANDARD_LIMITED_COLORS:
+ QuantizePalette_Standard(TRUE);
break;
- case 2:
- sub_80FDAE4();
- sub_80FDF88();
+ case QUANTIZE_EFFECT_PRIMARY_COLORS:
+ SetPresetPalette_PrimaryColors();
+ QuantizePalette_PrimaryColors();
break;
- case 3:
- sub_80FDBE4();
- sub_80FDED8();
+ case QUANTIZE_EFFECT_GRAYSCALE:
+ SetPresetPalette_Grayscale();
+ QuantizePalette_Grayscale();
break;
- case 4:
- sub_80FDBA8();
- sub_80FDE28();
+ case QUANTIZE_EFFECT_GRAYSCALE_SMALL:
+ SetPresetPalette_GrayscaleSmall();
+ QuantizePalette_GrayscaleSmall();
break;
- case 5:
- sub_80FDB8C();
- sub_80FDD70();
+ case QUANTIZE_EFFECT_BLACK_WHITE:
+ SetPresetPalette_BlackAndWhite();
+ QuantizePalette_BlackAndWhite();
break;
}
}
-void sub_80FDAE4(void)
+void SetPresetPalette_PrimaryColors(void)
{
- gUnknown_03005E08[0] = RGB2(0, 0, 0);
- gUnknown_03005E08[1] = RGB2(6, 6, 6);
- gUnknown_03005E08[2] = RGB2(29, 29, 29);
- gUnknown_03005E08[3] = RGB2(11, 11, 11);
- gUnknown_03005E08[4] = RGB2(29, 6, 6);
- gUnknown_03005E08[5] = RGB2(6, 29, 6);
- gUnknown_03005E08[6] = RGB2(6, 6, 29);
- gUnknown_03005E08[7] = RGB2(29, 29, 6);
- gUnknown_03005E08[8] = RGB2(29, 6, 29);
- gUnknown_03005E08[9] = RGB2(6, 29, 29);
- gUnknown_03005E08[10] = RGB2(29, 11, 6);
- gUnknown_03005E08[11] = RGB2(11, 29, 6);
- gUnknown_03005E08[12] = RGB2(6, 11, 29);
- gUnknown_03005E08[13] = RGB2(29, 6, 11);
- gUnknown_03005E08[14] = RGB2(6, 29, 11);
- gUnknown_03005E08[15] = RGB2(11, 6, 29);
+ gCanvasPalette[0] = RGB_BLACK;
+ gCanvasPalette[1] = RGB2(6, 6, 6);
+ gCanvasPalette[2] = RGB2(29, 29, 29);
+ gCanvasPalette[3] = RGB2(11, 11, 11);
+ gCanvasPalette[4] = RGB2(29, 6, 6);
+ gCanvasPalette[5] = RGB2(6, 29, 6);
+ gCanvasPalette[6] = RGB2(6, 6, 29);
+ gCanvasPalette[7] = RGB2(29, 29, 6);
+ gCanvasPalette[8] = RGB2(29, 6, 29);
+ gCanvasPalette[9] = RGB2(6, 29, 29);
+ gCanvasPalette[10] = RGB2(29, 11, 6);
+ gCanvasPalette[11] = RGB2(11, 29, 6);
+ gCanvasPalette[12] = RGB2(6, 11, 29);
+ gCanvasPalette[13] = RGB2(29, 6, 11);
+ gCanvasPalette[14] = RGB2(6, 29, 11);
+ gCanvasPalette[15] = RGB2(11, 6, 29);
}
-void sub_80FDB8C(void)
+void SetPresetPalette_BlackAndWhite(void)
{
- gUnknown_03005E08[0] = RGB2(0, 0, 0);
- gUnknown_03005E08[1] = RGB2(0, 0, 0);
- gUnknown_03005E08[2] = RGB2(31, 31, 31);
+ gCanvasPalette[0] = RGB_BLACK;
+ gCanvasPalette[1] = RGB_BLACK;
+ gCanvasPalette[2] = RGB_WHITE;
}
-void sub_80FDBA8(void)
+void SetPresetPalette_GrayscaleSmall(void)
{
u8 i;
- gUnknown_03005E08[0] = RGB2(0, 0, 0);
- gUnknown_03005E08[1] = RGB2(0, 0, 0);
+ gCanvasPalette[0] = RGB_BLACK;
+ gCanvasPalette[1] = RGB_BLACK;
for (i = 0; i < 14; i++)
- gUnknown_03005E08[i + 2] = RGB2(2 * (i + 2), 2 * (i + 2), 2 * (i + 2));
+ gCanvasPalette[i + 2] = RGB2(2 * (i + 2), 2 * (i + 2), 2 * (i + 2));
}
-void sub_80FDBE4(void)
+void SetPresetPalette_Grayscale(void)
{
u8 i;
- gUnknown_03005E08[0] = RGB2(0, 0, 0);
+ gCanvasPalette[0] = RGB_BLACK;
for (i = 0; i < 32; i++)
- gUnknown_03005E08[i + 1] = RGB2(i, i, i);
+ gCanvasPalette[i + 1] = RGB2(i, i, i);
}
-void sub_80FDC18(bool8 arg0)
+void QuantizePalette_Standard(bool8 arg0)
{
u8 i, j;
u16 maxIndex;
@@ -1232,44 +901,44 @@ void sub_80FDC18(bool8 arg0)
maxIndex = 0xFF;
for (j = 0; j < maxIndex; j++)
- gUnknown_03005E08[j] = 0;
+ gCanvasPalette[j] = 0;
- gUnknown_03005E08[maxIndex] = RGB2(15, 15, 15);
- for (i = 0; i < gUnknown_03005DF0; i++)
+ gCanvasPalette[maxIndex] = RGB2(15, 15, 15);
+ for (i = 0; i < gCanvasRowEnd; i++)
{
- u16* var2 = &(*gUnknown_03005DEC)[0][(gUnknown_03005DFC + i) * gUnknown_03005E04];
- u16* pal = &var2[gUnknown_03005DE8];
- for (j = 0; j < gUnknown_03005DF8; j++, pal++)
+ u16* var2 = &gCanvasPixels[(gCanvasRowStart + i) * gCanvasWidth];
+ u16* pal = &var2[gCanvasColumnStart];
+ for (j = 0; j < gCanvasColumnEnd; j++, pal++)
{
- if (*pal & 0x8000)
+ if (IS_ALPHA(*pal))
{
- *pal = gUnknown_03005E0C;
+ *pal = gCanvasPaletteStart;
}
else
{
- u16 color = sub_80FE038(pal);
+ u16 color = QuantizePixel_Standard(pal);
u8 curIndex = 1;
if (curIndex < maxIndex)
{
- if (gUnknown_03005E08[curIndex] == RGB_BLACK)
+ if (gCanvasPalette[curIndex] == RGB_BLACK)
{
- gUnknown_03005E08[curIndex] = color;
- *pal = gUnknown_03005E0C + curIndex;
+ gCanvasPalette[curIndex] = color;
+ *pal = gCanvasPaletteStart + curIndex;
}
else
{
while (curIndex < maxIndex)
{
- if (gUnknown_03005E08[curIndex] == RGB_BLACK)
+ if (gCanvasPalette[curIndex] == RGB_BLACK)
{
- gUnknown_03005E08[curIndex] = color;
- *pal = gUnknown_03005E0C + curIndex;
+ gCanvasPalette[curIndex] = color;
+ *pal = gCanvasPaletteStart + curIndex;
break;
}
- if (gUnknown_03005E08[curIndex] == color)
+ if (gCanvasPalette[curIndex] == color)
{
- *pal = gUnknown_03005E0C + curIndex;
+ *pal = gCanvasPaletteStart + curIndex;
break;
}
@@ -1288,90 +957,90 @@ void sub_80FDC18(bool8 arg0)
}
}
-void sub_80FDD70(void)
+void QuantizePalette_BlackAndWhite(void)
{
u8 i, j;
- for (i = 0; i < gUnknown_03005DF0; i++)
+ for (i = 0; i < gCanvasRowEnd; i++)
{
- u16* var2 = &(*gUnknown_03005DEC)[0][(gUnknown_03005DFC + i) * gUnknown_03005E04];
- u16* pal = &var2[gUnknown_03005DE8];
- for (j = 0; j < gUnknown_03005DF8; j++, pal++)
+ u16* var2 = &gCanvasPixels[(gCanvasRowStart + i) * gCanvasWidth];
+ u16* pal = &var2[gCanvasColumnStart];
+ for (j = 0; j < gCanvasColumnEnd; j++, pal++)
{
- if (*pal & 0x8000)
+ if (IS_ALPHA(*pal))
{
- *pal = gUnknown_03005E0C;
+ *pal = gCanvasPaletteStart;
}
else
{
- if (ConvertToBlackOrWhite(pal) == RGB_BLACK)
- *pal = gUnknown_03005E0C + 1;
+ if (QuantizePixel_BlackAndWhite(pal) == RGB_BLACK)
+ *pal = gCanvasPaletteStart + 1;
else
- *pal = gUnknown_03005E0C + 2;
+ *pal = gCanvasPaletteStart + 2;
}
}
}
}
-void sub_80FDE28(void)
+void QuantizePalette_GrayscaleSmall(void)
{
u8 i, j;
- for (i = 0; i < gUnknown_03005DF0; i++)
+ for (i = 0; i < gCanvasRowEnd; i++)
{
- u16* var2 = &(*gUnknown_03005DEC)[0][(gUnknown_03005DFC + i) * gUnknown_03005E04];
- u16* pal = &var2[gUnknown_03005DE8];
- for (j = 0; j < gUnknown_03005DF8; j++, pal++)
+ u16* var2 = &gCanvasPixels[(gCanvasRowStart + i) * gCanvasWidth];
+ u16* pal = &var2[gCanvasColumnStart];
+ for (j = 0; j < gCanvasColumnEnd; j++, pal++)
{
- if (*pal & 0x8000)
- *pal = gUnknown_03005E0C;
+ if (IS_ALPHA(*pal))
+ *pal = gCanvasPaletteStart;
else
- *pal = sub_80FE17C(pal) + gUnknown_03005E0C;
+ *pal = QuantizePixel_GrayscaleSmall(pal) + gCanvasPaletteStart;
}
}
}
-void sub_80FDED8(void)
+void QuantizePalette_Grayscale(void)
{
u8 i, j;
- for (i = 0; i < gUnknown_03005DF0; i++)
+ for (i = 0; i < gCanvasRowEnd; i++)
{
- u16* var2 = &(*gUnknown_03005DEC)[0][(gUnknown_03005DFC + i) * gUnknown_03005E04];
- u16* pal = &var2[gUnknown_03005DE8];
- for (j = 0; j < gUnknown_03005DF8; j++, pal++)
+ u16* var2 = &gCanvasPixels[(gCanvasRowStart + i) * gCanvasWidth];
+ u16* pal = &var2[gCanvasColumnStart];
+ for (j = 0; j < gCanvasColumnEnd; j++, pal++)
{
- if (*pal & 0x8000)
- *pal = gUnknown_03005E0C;
+ if (IS_ALPHA(*pal))
+ *pal = gCanvasPaletteStart;
else
- *pal = sub_80FE1B0(pal) + gUnknown_03005E0C;
+ *pal = QuantizePixel_Grayscale(pal) + gCanvasPaletteStart;
}
}
}
-void sub_80FDF88(void)
+void QuantizePalette_PrimaryColors(void)
{
u8 i, j;
- for (i = 0; i < gUnknown_03005DF0; i++)
+ for (i = 0; i < gCanvasRowEnd; i++)
{
- u16* var2 = &(*gUnknown_03005DEC)[0][(gUnknown_03005DFC + i) * gUnknown_03005E04];
- u16* pal = &var2[gUnknown_03005DE8];
- for (j = 0; j < gUnknown_03005DF8; j++, pal++)
+ u16* var2 = &gCanvasPixels[(gCanvasRowStart + i) * gCanvasWidth];
+ u16* pal = &var2[gCanvasColumnStart];
+ for (j = 0; j < gCanvasColumnEnd; j++, pal++)
{
- if (*pal & 0x8000)
- *pal = gUnknown_03005E0C;
+ if (IS_ALPHA(*pal))
+ *pal = gCanvasPaletteStart;
else
- *pal = sub_80FE0AC(pal) + gUnknown_03005E0C;
+ *pal = QuantizePixel_PrimaryColors(pal) + gCanvasPaletteStart;
}
}
}
-u16 sub_80FE038(u16 *color)
+u16 QuantizePixel_Standard(u16 *color)
{
- u16 red = *color & 0x1F;
- u16 green = (*color >> 5) & 0x1F;
- u16 blue = (*color >> 10) & 0x1F;
+ u16 red = GET_R(*color);
+ u16 green = GET_G(*color);
+ u16 blue = GET_B(*color);
if (red & 3)
red = (red & 0x1C) + 4;
@@ -1398,11 +1067,11 @@ u16 sub_80FE038(u16 *color)
return RGB2(red, green, blue);
}
-u16 sub_80FE0AC(u16* color)
+u16 QuantizePixel_PrimaryColors(u16* color)
{
- u16 red = *color & 0x1F;
- u16 green = (*color >> 5) & 0x1F;
- u16 blue = (*color >> 10) & 0x1F;
+ u16 red = GET_R(*color);
+ u16 green = GET_G(*color);
+ u16 blue = GET_B(*color);
if (red < 12 && green < 11 && blue < 11)
return 1;
@@ -1513,11 +1182,11 @@ u16 sub_80FE0AC(u16* color)
return 3;
}
-u16 sub_80FE17C(u16 *color)
+u16 QuantizePixel_GrayscaleSmall(u16 *color)
{
- u16 red = *color & 0x1F;
- u16 green = (*color >> 5) & 0x1F;
- u16 blue = (*color >> 10) & 0x1F;
+ u16 red = GET_R(*color);
+ u16 green = GET_G(*color);
+ u16 blue = GET_B(*color);
u16 average = ((red + green + blue) / 3) & 0x1E;
if (average == 0)
return 1;
@@ -1525,11 +1194,11 @@ u16 sub_80FE17C(u16 *color)
return average / 2;
}
-u16 sub_80FE1B0(u16 *color)
+u16 QuantizePixel_Grayscale(u16 *color)
{
- u16 red = *color & 0x1F;
- u16 green = (*color >> 5) & 0x1F;
- u16 blue = (*color >> 10) & 0x1F;
+ u16 red = GET_R(*color);
+ u16 green = GET_G(*color);
+ u16 blue = GET_B(*color);
u16 average = (red + green + blue) / 3;
return average + 1;
}
diff --git a/src/main_menu.c b/src/main_menu.c
index 3237663a5..7160bf3e7 100644
--- a/src/main_menu.c
+++ b/src/main_menu.c
@@ -1424,8 +1424,8 @@ u8 CreateAzurillSprite(u8 x, u8 y)
&gMonFrontPicTable[SPECIES_AZURILL],
gMonFrontPicCoords[SPECIES_AZURILL].coords,
gMonFrontPicCoords[SPECIES_AZURILL].y_offset,
- gUnknown_081FAF4C[0],
- gUnknown_081FAF4C[1],
+ gMonSpriteGfx_Sprite_ptr[0],
+ gMonSpriteGfx_Sprite_ptr[1],
SPECIES_AZURILL);
LoadCompressedObjectPalette(&gMonPaletteTable[SPECIES_AZURILL]);
GetMonSpriteTemplate_803C56C(SPECIES_AZURILL, 1);
diff --git a/src/pokeblock_feed.c b/src/pokeblock_feed.c
index cb3d8789e..99f381c5c 100644
--- a/src/pokeblock_feed.c
+++ b/src/pokeblock_feed.c
@@ -616,7 +616,7 @@ static bool8 sub_8147B20(struct Pokemon* mon)
case 0:
species = GetMonData(mon, MON_DATA_SPECIES2);
PiD = GetMonData(mon, MON_DATA_PERSONALITY);
- HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, EWRAM, gUnknown_081FAF4C[1], species, PiD);
+ HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, EWRAM, gMonSpriteGfx_Sprite_ptr[1], species, PiD);
ewram1FFFF++;
break;
case 1:
diff --git a/src/pokemon_3.c b/src/pokemon_3.c
index 16c2f3738..2e71154b9 100644
--- a/src/pokemon_3.c
+++ b/src/pokemon_3.c
@@ -473,7 +473,7 @@ u16 SpeciesToCryId(u16 species)
void unref_sub_803F938(u16 species, u32 personality, u8 *dest)
{
- if (species == SPECIES_SPINDA && dest != gUnknown_081FAF4C[0] && dest != gUnknown_081FAF4C[2])
+ if (species == SPECIES_SPINDA && dest != gMonSpriteGfx_Sprite_ptr[0] && dest != gMonSpriteGfx_Sprite_ptr[2])
{
int i;
for (i = 0; i < 4; i++)
diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c
index 9d1aa99db..3ed7cee56 100644
--- a/src/pokemon_summary_screen.c
+++ b/src/pokemon_summary_screen.c
@@ -1839,7 +1839,7 @@ static u8 SummaryScreen_LoadPokemonSprite(struct Pokemon *mon, u8 *state)
gMonFrontPicCoords[species].coords,
gMonFrontPicCoords[species].y_offset,
ewram_addr,
- gUnknown_081FAF4C[1],
+ gMonSpriteGfx_Sprite_ptr[1],
species,
personality);
*state += 1;
diff --git a/src/script_pokemon_util_80C4BF0.c b/src/script_pokemon_util_80C4BF0.c
index ff82adf74..c1d226958 100644
--- a/src/script_pokemon_util_80C4BF0.c
+++ b/src/script_pokemon_util_80C4BF0.c
@@ -287,8 +287,8 @@ void ShowContestEntryMonPic(void)
&gMonFrontPicTable[species],
gMonFrontPicCoords[species].coords,
gMonFrontPicCoords[species].y_offset,
- (u32)gUnknown_081FAF4C[0],
- gUnknown_081FAF4C[1],
+ (u32)gMonSpriteGfx_Sprite_ptr[0],
+ gMonSpriteGfx_Sprite_ptr[1],
species,
var1);
palette = GetMonSpritePalStructFromOtIdPersonality(species, var2, var1);
diff --git a/src/starter_choose.c b/src/starter_choose.c
index 4e430015e..24ba70279 100644
--- a/src/starter_choose.c
+++ b/src/starter_choose.c
@@ -714,7 +714,7 @@ static u8 CreatePokemonFrontSprite(u16 species, u8 x, u8 y)
DecompressPicFromTable_2(
&gMonFrontPicTable[species],
gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset,
- gUnknown_081FAF4C[0], gUnknown_081FAF4C[1],
+ gMonSpriteGfx_Sprite_ptr[0], gMonSpriteGfx_Sprite_ptr[1],
species);
LoadCompressedObjectPalette(&gMonPaletteTable[species]);
GetMonSpriteTemplate_803C56C(species, 1);
diff --git a/src/text.c b/src/text.c
index d963045df..20adca6bd 100644
--- a/src/text.c
+++ b/src/text.c
@@ -1480,7 +1480,7 @@ const struct WindowTemplate gWindowTemplate_81E7144 =
BG_SCREEN_ADDR(31), // tilemap
};
-const struct WindowTemplate gWindowTemplate_81E7160 =
+const struct WindowTemplate gWindowTemplate_ContestPainting =
{
1, // BG number
1, // BG character base block
diff --git a/src/trade.c b/src/trade.c
index aeb77dd58..06a65e33a 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -3522,7 +3522,7 @@ static void sub_804B2D0(u8 whichParty, u8 a1)
case 0:
species = GetMonData(pokemon, MON_DATA_SPECIES2);
personality = GetMonData(pokemon, MON_DATA_PERSONALITY);
- HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, (u32)gSharedMem, gUnknown_081FAF4C[whichParty * 2 + 1], species, personality);
+ HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, (u32)gSharedMem, gMonSpriteGfx_Sprite_ptr[whichParty * 2 + 1], species, personality);
LoadCompressedObjectPalette(GetMonSpritePalStruct(pokemon));
gUnknown_03004828->tradeSpecies[whichParty] = species;
break;
diff --git a/src/trainer_card.c b/src/trainer_card.c
index 0e44c7cfc..3e653a5d9 100644
--- a/src/trainer_card.c
+++ b/src/trainer_card.c
@@ -70,7 +70,7 @@ const struct TrainerCard sTestTrainerCard =
.stars = 4,
.hasPokedex = TRUE,
.var_3 = TRUE,
- .var_4 = TRUE,
+ .canvasPixels = TRUE,
.firstHallOfFameA = 999,
.firstHallOfFameB = 99,
.firstHallOfFameC = 99,
diff --git a/sym_common.txt b/sym_common.txt
index a6d7ac04e..45414b67d 100644
--- a/sym_common.txt
+++ b/sym_common.txt
@@ -292,16 +292,16 @@ SYMBOL(gUnknown_03005D38, 4)
SYMBOL(gUnknown_03005DA0, 0x48)
// contest_painting_effects.c
-SYMBOL(gUnknown_03005DE8, 4)
-SYMBOL(gUnknown_03005DEC, 4)
-SYMBOL(gUnknown_03005DF0, 4)
-SYMBOL(gUnknown_03005DF4, 4)
-SYMBOL(gUnknown_03005DF8, 4)
-SYMBOL(gUnknown_03005DFC, 4)
-SYMBOL(gUnknown_03005E00, 4)
-SYMBOL(gUnknown_03005E04, 4)
-SYMBOL(gUnknown_03005E08, 4)
-SYMBOL(gUnknown_03005E0C, 4)
+SYMBOL(gCanvasColumnStart, 4)
+SYMBOL(gCanvasPixels, 4)
+SYMBOL(gCanvasRowEnd, 4)
+SYMBOL(gCanvasHeight, 4)
+SYMBOL(gCanvasColumnEnd, 4)
+SYMBOL(gCanvasRowStart, 4)
+SYMBOL(gCanvasMonPersonality, 4)
+SYMBOL(gCanvasWidth, 4)
+SYMBOL(gCanvasPalette, 4)
+SYMBOL(gCanvasPaletteStart, 4)
// contest_painting.c
SYMBOL(gContestMonPixels, 4)