Added support for linear and pixel art scaling for palettized textures

This commit is contained in:
Sam Lantinga
2025-10-04 14:16:02 -07:00
parent e1fde46a6a
commit 134b47730b
43 changed files with 11348 additions and 7598 deletions

View File

@@ -184,7 +184,9 @@ static const float TONEMAP_CHROME = 2;
//static const float TEXTURETYPE_NONE = 0;
static const float TEXTURETYPE_RGB = 1;
static const float TEXTURETYPE_RGB_PIXELART = 2;
static const float TEXTURETYPE_PALETTE = 3;
static const float TEXTURETYPE_PALETTE_NEAREST = 3;
static const float TEXTURETYPE_PALETTE_LINEAR = 4;
static const float TEXTURETYPE_PALETTE_PIXELART = 5;
static const float INPUTTYPE_UNSPECIFIED = 0;
static const float INPUTTYPE_SRGB = 1;
@@ -3423,19 +3425,37 @@ static void VULKAN_SetupShaderConstants(SDL_Renderer *renderer, const SDL_Render
}
if (texture->format == SDL_PIXELFORMAT_INDEX8) {
constants->texture_type = TEXTURETYPE_PALETTE;
switch (cmd->data.draw.texture_scale_mode) {
case SDL_SCALEMODE_NEAREST:
constants->texture_type = TEXTURETYPE_PALETTE_NEAREST;
break;
case SDL_SCALEMODE_LINEAR:
constants->texture_type = TEXTURETYPE_PALETTE_LINEAR;
break;
case SDL_SCALEMODE_PIXELART:
constants->texture_type = TEXTURETYPE_PALETTE_PIXELART;
break;
default:
SDL_assert(!"Unknown scale mode");
break;
}
} else {
if (cmd->data.draw.texture_scale_mode == SDL_SCALEMODE_PIXELART) {
constants->texture_type = TEXTURETYPE_RGB_PIXELART;
constants->texture_width = texture->w;
constants->texture_height = texture->h;
constants->texel_width = 1.0f / constants->texture_width;
constants->texel_height = 1.0f / constants->texture_height;
} else {
constants->texture_type = TEXTURETYPE_RGB;
}
}
if (constants->texture_type == TEXTURETYPE_PALETTE_LINEAR ||
constants->texture_type == TEXTURETYPE_PALETTE_PIXELART ||
constants->texture_type == TEXTURETYPE_RGB_PIXELART) {
constants->texture_width = texture->w;
constants->texture_height = texture->h;
constants->texel_width = 1.0f / constants->texture_width;
constants->texel_height = 1.0f / constants->texture_height;
}
constants->sdr_white_point = texture->SDR_white_point;
if (renderer->target) {
@@ -3802,7 +3822,7 @@ static bool VULKAN_SetDrawState(SDL_Renderer *renderer, const SDL_RenderCommand
return true;
}
static VkSampler VULKAN_GetSampler(VULKAN_RenderData *data, SDL_ScaleMode scale_mode, SDL_TextureAddressMode address_u, SDL_TextureAddressMode address_v)
static VkSampler VULKAN_GetSampler(VULKAN_RenderData *data, SDL_PixelFormat format, SDL_ScaleMode scale_mode, SDL_TextureAddressMode address_u, SDL_TextureAddressMode address_v)
{
Uint32 key = RENDER_SAMPLER_HASHKEY(scale_mode, address_u, address_v);
SDL_assert(key < SDL_arraysize(data->samplers));
@@ -3823,8 +3843,14 @@ static VkSampler VULKAN_GetSampler(VULKAN_RenderData *data, SDL_ScaleMode scale_
break;
case SDL_SCALEMODE_PIXELART: // Uses linear sampling
case SDL_SCALEMODE_LINEAR:
samplerCreateInfo.magFilter = VK_FILTER_LINEAR;
samplerCreateInfo.minFilter = VK_FILTER_LINEAR;
if (format == SDL_PIXELFORMAT_INDEX8) {
// We'll do linear sampling in the shader
samplerCreateInfo.magFilter = VK_FILTER_NEAREST;
samplerCreateInfo.minFilter = VK_FILTER_NEAREST;
} else {
samplerCreateInfo.magFilter = VK_FILTER_LINEAR;
samplerCreateInfo.minFilter = VK_FILTER_LINEAR;
}
break;
default:
SDL_SetError("Unknown scale mode: %d", scale_mode);
@@ -3899,7 +3925,7 @@ static bool VULKAN_SetCopyState(SDL_Renderer *renderer, const SDL_RenderCommand
}
imageViews[numImageViews++] = textureData->mainImage.imageView;
samplers[numSamplers] = VULKAN_GetSampler(rendererData, cmd->data.draw.texture_scale_mode, cmd->data.draw.texture_address_mode_u, cmd->data.draw.texture_address_mode_v);
samplers[numSamplers] = VULKAN_GetSampler(rendererData, texture->format, cmd->data.draw.texture_scale_mode, cmd->data.draw.texture_address_mode_u, cmd->data.draw.texture_address_mode_v);
if (samplers[numSamplers] == VK_NULL_HANDLE) {
return false;
}
@@ -3930,7 +3956,7 @@ static bool VULKAN_SetCopyState(SDL_Renderer *renderer, const SDL_RenderCommand
}
imageViews[numImageViews++] = palette->image.imageView;
samplers[numSamplers] = VULKAN_GetSampler(rendererData, SDL_SCALEMODE_NEAREST, SDL_TEXTURE_ADDRESS_CLAMP, SDL_TEXTURE_ADDRESS_CLAMP);
samplers[numSamplers] = VULKAN_GetSampler(rendererData, SDL_PIXELFORMAT_UNKNOWN, SDL_SCALEMODE_NEAREST, SDL_TEXTURE_ADDRESS_CLAMP, SDL_TEXTURE_ADDRESS_CLAMP);
if (samplers[numSamplers] == VK_NULL_HANDLE) {
return false;
}

View File

@@ -1,318 +1,437 @@
// 1113.1.1
#pragma once
const uint32_t VULKAN_PixelShader_Advanced[] = {
0x07230203,0x00010000,0x0008000b,0x00000510,0x00000000,0x00020011,0x00000001,0x0006000b,
0x07230203,0x00010000,0x0008000b,0x000006bb,0x00000000,0x00020011,0x00000001,0x0006000b,
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
0x0008000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x00000221,0x00000224,0x00000228,
0x0008000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x0000028b,0x0000028e,0x00000292,
0x00030010,0x00000004,0x00000007,0x00030003,0x00000005,0x000001f4,0x00040005,0x00000004,
0x6e69616d,0x00000000,0x00050005,0x00000079,0x736e6f43,0x746e6174,0x00000073,0x00070006,
0x00000079,0x00000000,0x47526373,0x756f5f42,0x74757074,0x00000000,0x00070006,0x00000079,
0x00000001,0x74786574,0x5f657275,0x65707974,0x00000000,0x00060006,0x00000079,0x00000002,
0x75706e69,0x79745f74,0x00006570,0x00060006,0x00000079,0x00000003,0x6f6c6f63,0x63735f72,
0x00656c61,0x00060006,0x00000079,0x00000004,0x65786574,0x69735f6c,0x0000657a,0x00070006,
0x00000079,0x00000005,0x656e6f74,0x5f70616d,0x6874656d,0x0000646f,0x00070006,0x00000079,
0x00000006,0x656e6f74,0x5f70616d,0x74636166,0x0031726f,0x00070006,0x00000079,0x00000007,
0x656e6f74,0x5f70616d,0x74636166,0x0032726f,0x00070006,0x00000079,0x00000008,0x5f726473,
0x74696877,0x6f705f65,0x00746e69,0x00030005,0x0000007b,0x00000000,0x00050005,0x0000011f,
0x74786574,0x30657275,0x00000000,0x00050005,0x00000146,0x74786574,0x31657275,0x00000000,
0x00050005,0x00000221,0x75706e69,0x65742e74,0x00000078,0x00050005,0x00000224,0x75706e69,
0x6f632e74,0x00726f6c,0x00070005,0x00000228,0x746e6540,0x6f507972,0x4f746e69,0x75707475,
0x00000074,0x00050048,0x00000079,0x00000000,0x00000023,0x00000000,0x00050048,0x00000079,
0x00000001,0x00000023,0x00000004,0x00050048,0x00000079,0x00000002,0x00000023,0x00000008,
0x00050048,0x00000079,0x00000003,0x00000023,0x0000000c,0x00050048,0x00000079,0x00000004,
0x00000023,0x00000010,0x00050048,0x00000079,0x00000005,0x00000023,0x00000020,0x00050048,
0x00000079,0x00000006,0x00000023,0x00000024,0x00050048,0x00000079,0x00000007,0x00000023,
0x00000028,0x00050048,0x00000079,0x00000008,0x00000023,0x0000002c,0x00030047,0x00000079,
0x00000002,0x00040047,0x0000007b,0x00000022,0x00000000,0x00040047,0x0000007b,0x00000021,
0x00000000,0x00040047,0x0000011f,0x00000022,0x00000000,0x00040047,0x0000011f,0x00000021,
0x00000001,0x00040047,0x00000146,0x00000022,0x00000000,0x00040047,0x00000146,0x00000021,
0x00000002,0x00040047,0x00000221,0x0000001e,0x00000000,0x00040047,0x00000224,0x0000001e,
0x00000001,0x00040047,0x00000228,0x0000001e,0x00000000,0x00020013,0x00000002,0x00030021,
0x6e69616d,0x00000000,0x00050005,0x00000081,0x736e6f43,0x746e6174,0x00000073,0x00070006,
0x00000081,0x00000000,0x47526373,0x756f5f42,0x74757074,0x00000000,0x00070006,0x00000081,
0x00000001,0x74786574,0x5f657275,0x65707974,0x00000000,0x00060006,0x00000081,0x00000002,
0x75706e69,0x79745f74,0x00006570,0x00060006,0x00000081,0x00000003,0x6f6c6f63,0x63735f72,
0x00656c61,0x00060006,0x00000081,0x00000004,0x65786574,0x69735f6c,0x0000657a,0x00070006,
0x00000081,0x00000005,0x656e6f74,0x5f70616d,0x6874656d,0x0000646f,0x00070006,0x00000081,
0x00000006,0x656e6f74,0x5f70616d,0x74636166,0x0031726f,0x00070006,0x00000081,0x00000007,
0x656e6f74,0x5f70616d,0x74636166,0x0032726f,0x00070006,0x00000081,0x00000008,0x5f726473,
0x74696877,0x6f705f65,0x00746e69,0x00030005,0x00000083,0x00000000,0x00050005,0x000000f2,
0x74786574,0x30657275,0x00000000,0x00050005,0x000000f9,0x74786574,0x31657275,0x00000000,
0x00050005,0x0000028b,0x75706e69,0x65742e74,0x00000078,0x00050005,0x0000028e,0x75706e69,
0x6f632e74,0x00726f6c,0x00070005,0x00000292,0x746e6540,0x6f507972,0x4f746e69,0x75707475,
0x00000074,0x00050048,0x00000081,0x00000000,0x00000023,0x00000000,0x00050048,0x00000081,
0x00000001,0x00000023,0x00000004,0x00050048,0x00000081,0x00000002,0x00000023,0x00000008,
0x00050048,0x00000081,0x00000003,0x00000023,0x0000000c,0x00050048,0x00000081,0x00000004,
0x00000023,0x00000010,0x00050048,0x00000081,0x00000005,0x00000023,0x00000020,0x00050048,
0x00000081,0x00000006,0x00000023,0x00000024,0x00050048,0x00000081,0x00000007,0x00000023,
0x00000028,0x00050048,0x00000081,0x00000008,0x00000023,0x0000002c,0x00030047,0x00000081,
0x00000002,0x00040047,0x00000083,0x00000022,0x00000000,0x00040047,0x00000083,0x00000021,
0x00000000,0x00040047,0x000000f2,0x00000022,0x00000000,0x00040047,0x000000f2,0x00000021,
0x00000001,0x00040047,0x000000f9,0x00000022,0x00000000,0x00040047,0x000000f9,0x00000021,
0x00000002,0x00040047,0x0000028b,0x0000001e,0x00000000,0x00040047,0x0000028e,0x0000001e,
0x00000001,0x00040047,0x00000292,0x0000001e,0x00000000,0x00020013,0x00000002,0x00030021,
0x00000003,0x00000002,0x00030016,0x00000006,0x00000020,0x00040017,0x0000000f,0x00000006,
0x00000003,0x00040017,0x00000018,0x00000006,0x00000004,0x00040017,0x00000019,0x00000006,
0x00000002,0x0004002b,0x00000006,0x00000036,0x3d25aee6,0x00020014,0x00000037,0x0004002b,
0x00000006,0x0000003c,0x414eb852,0x0004002b,0x00000006,0x00000040,0x3d6147ae,0x0004002b,
0x00000006,0x00000043,0x3f870a3d,0x0004002b,0x00000006,0x00000045,0x4019999a,0x0004002b,
0x00000006,0x0000004b,0x3b4d2e1c,0x0004002b,0x00000006,0x00000054,0x3ed55555,0x0004002b,
0x00000006,0x0000005e,0x3c4fcdac,0x0006002c,0x0000000f,0x0000005f,0x0000005e,0x0000005e,
0x0000005e,0x0004002b,0x00000006,0x00000061,0x3f560000,0x0004002b,0x00000006,0x00000064,
0x00000000,0x0006002c,0x0000000f,0x00000065,0x00000064,0x00000064,0x00000064,0x0004002b,
0x00000006,0x00000068,0x4196d000,0x0004002b,0x00000006,0x00000069,0x41958000,0x0004002b,
0x00000006,0x00000070,0x461c4000,0x0004002b,0x00000006,0x00000075,0x40c8e06b,0x0006002c,
0x0000000f,0x00000076,0x00000075,0x00000075,0x00000075,0x000b001e,0x00000079,0x00000006,
0x00000006,0x00000006,0x00000006,0x00000018,0x00000006,0x00000006,0x00000006,0x00000006,
0x00040020,0x0000007a,0x00000002,0x00000079,0x0004003b,0x0000007a,0x0000007b,0x00000002,
0x00040015,0x0000007c,0x00000020,0x00000001,0x0004002b,0x0000007c,0x0000007d,0x00000008,
0x00040020,0x0000007e,0x00000002,0x00000006,0x0004002b,0x0000007c,0x00000085,0x00000005,
0x0004002b,0x00000006,0x00000088,0x3f800000,0x0004002b,0x0000007c,0x0000008c,0x00000006,
0x0004002b,0x00000006,0x00000094,0x40000000,0x0004002b,0x0000007c,0x00000098,0x00000002,
0x00040018,0x0000009f,0x0000000f,0x00000003,0x0004002b,0x00000006,0x000000a0,0x3f209d8c,
0x0004002b,0x00000006,0x000000a1,0x3ea897c8,0x0004002b,0x00000006,0x000000a2,0x3d3168f9,
0x0006002c,0x0000000f,0x000000a3,0x000000a0,0x000000a1,0x000000a2,0x0004002b,0x00000006,
0x000000a4,0x3d8d82ba,0x0004002b,0x00000006,0x000000a5,0x3f6b670a,0x0004002b,0x00000006,
0x000000a6,0x3c3a27af,0x0006002c,0x0000000f,0x000000a7,0x000000a4,0x000000a5,0x000000a6,
0x0004002b,0x00000006,0x000000a8,0x3c86466b,0x0004002b,0x00000006,0x000000a9,0x3db44029,
0x0004002b,0x00000006,0x000000aa,0x3f6545b7,0x0006002c,0x0000000f,0x000000ab,0x000000a8,
0x000000a9,0x000000aa,0x0006002c,0x0000009f,0x000000ac,0x000000a3,0x000000a7,0x000000ab,
0x0004002b,0x0000007c,0x000000c5,0x00000007,0x0004002b,0x00000006,0x000000d5,0x3fd48b22,
0x0004002b,0x00000006,0x000000d6,0xbf1670a0,0x0004002b,0x00000006,0x000000d7,0xbd952d23,
0x0006002c,0x0000000f,0x000000d8,0x000000d5,0x000000d6,0x000000d7,0x0004002b,0x00000006,
0x000000d9,0xbdff127f,0x0004002b,0x00000006,0x000000da,0x3f9102b4,0x0004002b,0x00000006,
0x000000db,0xbc08c60d,0x0006002c,0x0000000f,0x000000dc,0x000000d9,0x000000da,0x000000db,
0x0004002b,0x00000006,0x000000dd,0xbc94b7b3,0x0004002b,0x00000006,0x000000de,0xbdce05cd,
0x0004002b,0x00000006,0x000000df,0x3f8f333c,0x0006002c,0x0000000f,0x000000e0,0x000000dd,
0x000000de,0x000000df,0x0006002c,0x0000009f,0x000000e1,0x000000d8,0x000000dc,0x000000e0,
0x0004002b,0x0000007c,0x000000e8,0x00000001,0x0004002b,0x0000007c,0x000000ec,0x00000004,
0x00040020,0x000000ed,0x00000002,0x00000018,0x0004002b,0x00000006,0x000000f2,0x3727c5ac,
0x0005002c,0x00000019,0x000000f3,0x000000f2,0x000000f2,0x0005002c,0x00000019,0x000000f4,
0x00000088,0x00000088,0x0004002b,0x00000006,0x000000fd,0x3f000000,0x00090019,0x0000011c,
0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x0003001b,
0x0000011d,0x0000011c,0x00040020,0x0000011e,0x00000000,0x0000011d,0x0004003b,0x0000011e,
0x0000011f,0x00000000,0x0004002b,0x00000006,0x0000013a,0x40400000,0x0004002b,0x00000006,
0x00000144,0x437f0000,0x0004003b,0x0000011e,0x00000146,0x00000000,0x0004002b,0x0000007c,
0x0000015a,0x00000003,0x0004002b,0x0000007c,0x0000016a,0x00000000,0x00040020,0x0000021c,
0x00000001,0x00000018,0x00040020,0x00000220,0x00000001,0x00000019,0x0004003b,0x00000220,
0x00000221,0x00000001,0x0004003b,0x0000021c,0x00000224,0x00000001,0x00040020,0x00000227,
0x00000003,0x00000018,0x0004003b,0x00000227,0x00000228,0x00000003,0x0004002b,0x00000006,
0x000004c5,0x3b800000,0x0005002c,0x00000019,0x000004c7,0x000000fd,0x000000fd,0x0006002c,
0x0000000f,0x000004c8,0x00000061,0x00000061,0x00000061,0x0006002c,0x0000000f,0x000004c9,
0x00000068,0x00000068,0x00000068,0x0006002c,0x0000000f,0x000004ce,0x00000088,0x00000088,
0x00000088,0x0004002b,0x00000006,0x000004d4,0x3f72a76f,0x0004002b,0x00000006,0x000004d5,
0x3d9e8391,0x0007002c,0x00000018,0x000004d7,0x00000088,0x00000064,0x00000064,0x00000088,
0x0004002b,0x00000006,0x000004d8,0xbd6147ae,0x00030001,0x00000018,0x0000050f,0x00050036,
0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003d,0x00000019,
0x00000222,0x00000221,0x0004003d,0x00000018,0x00000225,0x00000224,0x00050041,0x0000007e,
0x000002a5,0x0000007b,0x000000e8,0x0004003d,0x00000006,0x000002a6,0x000002a5,0x000500b4,
0x00000037,0x000002a7,0x000002a6,0x00000088,0x000300f7,0x000002d5,0x00000000,0x000400fa,
0x000002a7,0x000002a8,0x000002ad,0x000200f8,0x000002a8,0x0004003d,0x0000011d,0x000002a9,
0x0000011f,0x00050057,0x00000018,0x000002ac,0x000002a9,0x00000222,0x000200f9,0x000002d5,
0x000200f8,0x000002ad,0x00050041,0x0000007e,0x000002ae,0x0000007b,0x000000e8,0x0004003d,
0x00000006,0x000002af,0x000002ae,0x000500b4,0x00000037,0x000002b0,0x000002af,0x00000094,
0x000300f7,0x000002d4,0x00000000,0x000400fa,0x000002b0,0x000002b1,0x000002bd,0x000200f8,
0x000002b1,0x000400d1,0x00000019,0x000002df,0x00000222,0x00050041,0x000000ed,0x000002e0,
0x0000007b,0x000000ec,0x0004003d,0x00000018,0x000002e1,0x000002e0,0x0007004f,0x00000019,
0x000002e2,0x000002e1,0x000002e1,0x00000002,0x00000003,0x00050085,0x00000019,0x000002e3,
0x000002df,0x000002e2,0x0008000c,0x00000019,0x000002e4,0x00000001,0x0000002b,0x000002e3,
0x000000f3,0x000000f4,0x00050041,0x000000ed,0x000002e7,0x0000007b,0x000000ec,0x0004003d,
0x00000018,0x000002e8,0x000002e7,0x0007004f,0x00000019,0x000002e9,0x000002e8,0x000002e8,
0x00000002,0x00000003,0x0005008e,0x00000019,0x000002ec,0x000002e4,0x000000fd,0x0004007f,
0x00000019,0x000004c6,0x000002ec,0x0008000c,0x00000019,0x000002ed,0x00000001,0x00000032,
0x00000222,0x000002e9,0x000004c6,0x00050083,0x00000019,0x000002f0,0x000000f4,0x000002e4,
0x0006000c,0x00000019,0x000002f2,0x00000001,0x0000000a,0x000002ed,0x0008000c,0x00000019,
0x000002f3,0x00000001,0x00000031,0x000002f0,0x000000f4,0x000002f2,0x0006000c,0x00000019,
0x000002f5,0x00000001,0x00000008,0x000002ed,0x00050081,0x00000019,0x000002f7,0x000002f5,
0x000004c7,0x00050081,0x00000019,0x000002f9,0x000002f7,0x000002f3,0x00050041,0x000000ed,
0x000002fa,0x0000007b,0x000000ec,0x0004003d,0x00000018,0x000002fb,0x000002fa,0x0007004f,
0x00000019,0x000002fc,0x000002fb,0x000002fb,0x00000000,0x00000001,0x00050085,0x00000019,
0x000002fd,0x000002f9,0x000002fc,0x0004003d,0x0000011d,0x000002b4,0x0000011f,0x000400cf,
0x00000019,0x000002b8,0x00000222,0x000400d0,0x00000019,0x000002bb,0x00000222,0x00080058,
0x00000018,0x000002bc,0x000002b4,0x000002fd,0x00000004,0x000002b8,0x000002bb,0x000200f9,
0x000002d4,0x000200f8,0x000002bd,0x00050041,0x0000007e,0x000002be,0x0000007b,0x000000e8,
0x0004003d,0x00000006,0x000002bf,0x000002be,0x000500b4,0x00000037,0x000002c0,0x000002bf,
0x0000013a,0x000300f7,0x000002d3,0x00000000,0x000400fa,0x000002c0,0x000002c1,0x000002ce,
0x000200f8,0x000002c1,0x0004003d,0x0000011d,0x000002c2,0x0000011f,0x00050057,0x00000018,
0x000002c5,0x000002c2,0x00000222,0x00050051,0x00000006,0x000002c6,0x000002c5,0x00000000,
0x0004003d,0x0000011d,0x000002c8,0x00000146,0x0008000c,0x00000006,0x000002ca,0x00000001,
0x00000032,0x000002c6,0x00000144,0x000000fd,0x00050085,0x00000006,0x000002cb,0x000002ca,
0x000004c5,0x00050050,0x00000019,0x000002cc,0x000002cb,0x000000fd,0x00050057,0x00000018,
0x000002cd,0x000002c8,0x000002cc,0x000200f9,0x000002d3,0x000200f8,0x000002ce,0x000200f9,
0x000002d3,0x000200f8,0x000002d3,0x000700f5,0x00000018,0x000004db,0x000002cd,0x000002c1,
0x000004d7,0x000002ce,0x000200f9,0x000002d4,0x000200f8,0x000002d4,0x000700f5,0x00000018,
0x000004da,0x000002bc,0x000002b1,0x000004db,0x000002d3,0x000200f9,0x000002d5,0x000200f8,
0x000002d5,0x000700f5,0x00000018,0x000004d9,0x000002ac,0x000002a8,0x000004da,0x000002d4,
0x00050041,0x0000007e,0x0000023e,0x0000007b,0x00000098,0x0004003d,0x00000006,0x0000023f,
0x0000023e,0x000500b4,0x00000037,0x00000240,0x0000023f,0x0000013a,0x000300f7,0x0000024b,
0x00000000,0x000400fa,0x00000240,0x00000241,0x0000024b,0x000200f8,0x00000241,0x0008004f,
0x0000000f,0x00000243,0x000004d9,0x000004d9,0x00000000,0x00000001,0x00000002,0x0006000c,
0x0000000f,0x00000304,0x00000001,0x00000004,0x00000243,0x0007000c,0x0000000f,0x00000305,
0x00000001,0x0000001a,0x00000304,0x0000005f,0x00050083,0x0000000f,0x00000307,0x00000305,
0x000004c8,0x0007000c,0x0000000f,0x00000308,0x00000001,0x00000028,0x00000307,0x00000065,
0x0006000c,0x0000000f,0x0000030a,0x00000001,0x00000004,0x00000243,0x0007000c,0x0000000f,
0x0000030b,0x00000001,0x0000001a,0x0000030a,0x0000005f,0x0005008e,0x0000000f,0x0000030c,
0x0000030b,0x00000069,0x00050083,0x0000000f,0x0000030e,0x000004c9,0x0000030c,0x00050088,
0x0000000f,0x00000311,0x00000308,0x0000030e,0x0006000c,0x0000000f,0x00000312,0x00000001,
0x00000004,0x00000311,0x0007000c,0x0000000f,0x00000313,0x00000001,0x0000001a,0x00000312,
0x00000076,0x0005008e,0x0000000f,0x00000314,0x00000313,0x00000070,0x00050041,0x0000007e,
0x00000315,0x0000007b,0x0000007d,0x0004003d,0x00000006,0x00000316,0x00000315,0x00060050,
0x0000000f,0x00000317,0x00000316,0x00000316,0x00000316,0x00050088,0x0000000f,0x00000318,
0x00000314,0x00000317,0x00050051,0x00000006,0x00000246,0x00000318,0x00000000,0x00060052,
0x00000018,0x00000471,0x00000246,0x000004d9,0x00000000,0x00050051,0x00000006,0x00000248,
0x00000318,0x00000001,0x00060052,0x00000018,0x00000473,0x00000248,0x00000471,0x00000001,
0x00050051,0x00000006,0x0000024a,0x00000318,0x00000002,0x00060052,0x00000018,0x00000475,
0x0000024a,0x00000473,0x00000002,0x000200f9,0x0000024b,0x000200f8,0x0000024b,0x000700f5,
0x00000018,0x000004dc,0x000004d9,0x000002d5,0x00000475,0x00000241,0x00050041,0x0000007e,
0x0000024c,0x0000007b,0x00000085,0x0004003d,0x00000006,0x0000024d,0x0000024c,0x000500b7,
0x00000037,0x0000024e,0x0000024d,0x00000064,0x000300f7,0x00000259,0x00000000,0x000400fa,
0x0000024e,0x0000024f,0x00000259,0x000200f8,0x0000024f,0x0008004f,0x0000000f,0x00000251,
0x000004dc,0x000004dc,0x00000000,0x00000001,0x00000002,0x00050041,0x0000007e,0x0000031d,
0x0000007b,0x00000085,0x0004003d,0x00000006,0x0000031e,0x0000031d,0x000500b4,0x00000037,
0x0000031f,0x0000031e,0x00000088,0x000300f7,0x00000353,0x00000000,0x000400fa,0x0000031f,
0x00000320,0x00000325,0x000200f8,0x00000320,0x00050041,0x0000007e,0x00000321,0x0000007b,
0x0000008c,0x0004003d,0x00000006,0x00000322,0x00000321,0x0005008e,0x0000000f,0x00000324,
0x00000251,0x00000322,0x000200f9,0x00000353,0x000200f8,0x00000325,0x00050041,0x0000007e,
0x00000326,0x0000007b,0x00000085,0x0004003d,0x00000006,0x00000327,0x00000326,0x000500b4,
0x00000037,0x00000328,0x00000327,0x00000094,0x000300f7,0x00000352,0x00000000,0x000400fa,
0x00000328,0x00000329,0x00000352,0x000200f8,0x00000329,0x00050041,0x0000007e,0x0000032a,
0x0000007b,0x00000098,0x0004003d,0x00000006,0x0000032b,0x0000032a,0x000500b4,0x00000037,
0x0000032c,0x0000032b,0x00000094,0x000300f7,0x00000330,0x00000000,0x000400fa,0x0000032c,
0x0000032d,0x00000330,0x000200f8,0x0000032d,0x00050090,0x0000000f,0x0000032f,0x00000251,
0x000000ac,0x000200f9,0x00000330,0x000200f8,0x00000330,0x000700f5,0x0000000f,0x000004dd,
0x00000251,0x00000329,0x0000032f,0x0000032d,0x00050051,0x00000006,0x00000332,0x000004dd,
0x00000000,0x00050051,0x00000006,0x00000334,0x000004dd,0x00000001,0x00050051,0x00000006,
0x00000336,0x000004dd,0x00000002,0x0007000c,0x00000006,0x00000337,0x00000001,0x00000028,
0x00000334,0x00000336,0x0007000c,0x00000006,0x00000338,0x00000001,0x00000028,0x00000332,
0x00000337,0x000500ba,0x00000037,0x0000033a,0x00000338,0x00000064,0x000300f7,0x0000034a,
0x00000000,0x000400fa,0x0000033a,0x0000033b,0x0000034a,0x000200f8,0x0000033b,0x00050041,
0x0000007e,0x0000033c,0x0000007b,0x0000008c,0x0004003d,0x00000006,0x0000033d,0x0000033c,
0x0008000c,0x00000006,0x00000340,0x00000001,0x00000032,0x0000033d,0x00000338,0x00000088,
0x00050041,0x0000007e,0x00000341,0x0000007b,0x000000c5,0x0004003d,0x00000006,0x00000342,
0x00000341,0x0008000c,0x00000006,0x00000345,0x00000001,0x00000032,0x00000342,0x00000338,
0x00000088,0x00050088,0x00000006,0x00000346,0x00000340,0x00000345,0x0005008e,0x0000000f,
0x00000349,0x000004dd,0x00000346,0x000200f9,0x0000034a,0x000200f8,0x0000034a,0x000700f5,
0x0000000f,0x000004de,0x000004dd,0x00000330,0x00000349,0x0000033b,0x00050041,0x0000007e,
0x0000034b,0x0000007b,0x00000098,0x0004003d,0x00000006,0x0000034c,0x0000034b,0x000500b4,
0x00000037,0x0000034d,0x0000034c,0x00000094,0x000300f7,0x00000351,0x00000000,0x000400fa,
0x0000034d,0x0000034e,0x00000351,0x000200f8,0x0000034e,0x00050090,0x0000000f,0x00000350,
0x000004de,0x000000e1,0x000200f9,0x00000351,0x000200f8,0x00000351,0x000700f5,0x0000000f,
0x000004e1,0x000004de,0x0000034a,0x00000350,0x0000034e,0x000200f9,0x00000352,0x000200f8,
0x00000352,0x000700f5,0x0000000f,0x000004e0,0x00000251,0x00000325,0x000004e1,0x00000351,
0x000200f9,0x00000353,0x000200f8,0x00000353,0x000700f5,0x0000000f,0x000004df,0x00000324,
0x00000320,0x000004e0,0x00000352,0x00050051,0x00000006,0x00000254,0x000004df,0x00000000,
0x00060052,0x00000018,0x0000047a,0x00000254,0x000004dc,0x00000000,0x00050051,0x00000006,
0x00000256,0x000004df,0x00000001,0x00060052,0x00000018,0x0000047c,0x00000256,0x0000047a,
0x00000001,0x00050051,0x00000006,0x00000258,0x000004df,0x00000002,0x00060052,0x00000018,
0x0000047e,0x00000258,0x0000047c,0x00000002,0x000200f9,0x00000259,0x000200f8,0x00000259,
0x000700f5,0x00000018,0x000004e7,0x000004dc,0x0000024b,0x0000047e,0x00000353,0x00050041,
0x0000007e,0x0000025a,0x0000007b,0x00000098,0x0004003d,0x00000006,0x0000025b,0x0000025a,
0x000500b4,0x00000037,0x0000025c,0x0000025b,0x00000088,0x000300f7,0x0000029a,0x00000000,
0x000400fa,0x0000025c,0x0000025d,0x0000026a,0x000200f8,0x0000025d,0x0008004f,0x0000000f,
0x0000025f,0x000004e7,0x000004e7,0x00000000,0x00000001,0x00000002,0x00050041,0x0000007e,
0x0000035b,0x0000007b,0x0000016a,0x0004003d,0x00000006,0x0000035c,0x0000035b,0x000500b7,
0x00000037,0x0000035d,0x0000035c,0x00000064,0x000300f7,0x0000036b,0x00000000,0x000400fa,
0x0000035d,0x0000035e,0x0000036b,0x000200f8,0x0000035e,0x00050051,0x00000006,0x00000360,
0x000004e7,0x00000000,0x000500bc,0x00000037,0x00000374,0x00000360,0x00000036,0x000300f7,
0x0000037e,0x00000000,0x000400fa,0x00000374,0x00000375,0x00000378,0x000200f8,0x00000375,
0x00050085,0x00000006,0x00000377,0x00000360,0x000004d5,0x000200f9,0x0000037e,0x000200f8,
0x00000378,0x00050081,0x00000006,0x0000037a,0x00000360,0x00000040,0x0006000c,0x00000006,
0x0000037b,0x00000001,0x00000004,0x0000037a,0x00050085,0x00000006,0x0000037c,0x0000037b,
0x000004d4,0x0007000c,0x00000006,0x0000037d,0x00000001,0x0000001a,0x0000037c,0x00000045,
0x000200f9,0x0000037e,0x000200f8,0x0000037e,0x000700f5,0x00000006,0x000004fe,0x00000377,
0x00000375,0x0000037d,0x00000378,0x00050051,0x00000006,0x00000364,0x000004e7,0x00000001,
0x000500bc,0x00000037,0x00000383,0x00000364,0x00000036,0x000300f7,0x0000038d,0x00000000,
0x000400fa,0x00000383,0x00000384,0x00000387,0x000200f8,0x00000384,0x00050085,0x00000006,
0x00000386,0x00000364,0x000004d5,0x000200f9,0x0000038d,0x000200f8,0x00000387,0x00050081,
0x00000006,0x00000389,0x00000364,0x00000040,0x0006000c,0x00000006,0x0000038a,0x00000001,
0x00000004,0x00000389,0x00050085,0x00000006,0x0000038b,0x0000038a,0x000004d4,0x0007000c,
0x00000006,0x0000038c,0x00000001,0x0000001a,0x0000038b,0x00000045,0x000200f9,0x0000038d,
0x000200f8,0x0000038d,0x000700f5,0x00000006,0x00000500,0x00000386,0x00000384,0x0000038c,
0x00000387,0x00050051,0x00000006,0x00000368,0x000004e7,0x00000002,0x000500bc,0x00000037,
0x00000392,0x00000368,0x00000036,0x000300f7,0x0000039c,0x00000000,0x000400fa,0x00000392,
0x00000393,0x00000396,0x000200f8,0x00000393,0x00050085,0x00000006,0x00000395,0x00000368,
0x000004d5,0x000200f9,0x0000039c,0x000200f8,0x00000396,0x00050081,0x00000006,0x00000398,
0x00000368,0x00000040,0x0006000c,0x00000006,0x00000399,0x00000001,0x00000004,0x00000398,
0x00050085,0x00000006,0x0000039a,0x00000399,0x000004d4,0x0007000c,0x00000006,0x0000039b,
0x00000001,0x0000001a,0x0000039a,0x00000045,0x000200f9,0x0000039c,0x000200f8,0x0000039c,
0x000700f5,0x00000006,0x00000502,0x00000395,0x00000393,0x0000039b,0x00000396,0x00060050,
0x0000000f,0x0000050e,0x000004fe,0x00000500,0x00000502,0x000200f9,0x0000036b,0x000200f8,
0x0000036b,0x000700f5,0x0000000f,0x00000504,0x0000025f,0x0000025d,0x0000050e,0x0000039c,
0x00050041,0x0000007e,0x0000036d,0x0000007b,0x0000015a,0x0004003d,0x00000006,0x0000036e,
0x0000036d,0x0005008e,0x0000000f,0x0000036f,0x00000504,0x0000036e,0x00050051,0x00000006,
0x00000262,0x0000036f,0x00000000,0x00050051,0x00000006,0x00000264,0x0000036f,0x00000001,
0x00050051,0x00000006,0x00000266,0x0000036f,0x00000002,0x00050051,0x00000006,0x00000268,
0x000004e7,0x00000003,0x00070050,0x00000018,0x000004d6,0x00000262,0x00000264,0x00000266,
0x00000268,0x000200f9,0x0000029a,0x000200f8,0x0000026a,0x00050041,0x0000007e,0x0000026b,
0x0000007b,0x00000098,0x0004003d,0x00000006,0x0000026c,0x0000026b,0x000500b4,0x00000037,
0x0000026d,0x0000026c,0x00000094,0x000300f7,0x00000299,0x00000000,0x000400fa,0x0000026d,
0x0000026e,0x0000027b,0x000200f8,0x0000026e,0x0008004f,0x0000000f,0x00000270,0x000004e7,
0x000004e7,0x00000000,0x00000001,0x00000002,0x00050041,0x0000007e,0x000003a5,0x0000007b,
0x0000015a,0x0004003d,0x00000006,0x000003a6,0x000003a5,0x0005008e,0x0000000f,0x000003a7,
0x00000270,0x000003a6,0x00050041,0x0000007e,0x000003a8,0x0000007b,0x0000016a,0x0004003d,
0x00000006,0x000003a9,0x000003a8,0x000500b7,0x00000037,0x000003aa,0x000003a9,0x00000064,
0x000400a8,0x00000037,0x000003ab,0x000003aa,0x000300f7,0x000003bd,0x00000000,0x000400fa,
0x000003ab,0x000003ac,0x000003bd,0x000200f8,0x000003ac,0x00050051,0x00000006,0x000003ae,
0x000003a7,0x00000000,0x000500bc,0x00000037,0x000003c2,0x000003ae,0x0000004b,0x000300f7,
0x000003cc,0x00000000,0x000400fa,0x000003c2,0x000003c3,0x000003c6,0x000200f8,0x000003c3,
0x00050085,0x00000006,0x000003c5,0x000003ae,0x0000003c,0x000200f9,0x000003cc,0x000200f8,
0x000003c6,0x0006000c,0x00000006,0x000003c8,0x00000001,0x00000004,0x000003ae,0x0007000c,
0x00000006,0x000003c9,0x00000001,0x0000001a,0x000003c8,0x00000054,0x0008000c,0x00000006,
0x000003cb,0x00000001,0x00000032,0x000003c9,0x00000043,0x000004d8,0x000200f9,0x000003cc,
0x000200f8,0x000003cc,0x000700f5,0x00000006,0x000004f3,0x000003c5,0x000003c3,0x000003cb,
0x000003c6,0x00050051,0x00000006,0x000003b2,0x000003a7,0x00000001,0x000500bc,0x00000037,
0x000003d1,0x000003b2,0x0000004b,0x000300f7,0x000003db,0x00000000,0x000400fa,0x000003d1,
0x000003d2,0x000003d5,0x000200f8,0x000003d2,0x00050085,0x00000006,0x000003d4,0x000003b2,
0x0000003c,0x000200f9,0x000003db,0x000200f8,0x000003d5,0x0006000c,0x00000006,0x000003d7,
0x00000001,0x00000004,0x000003b2,0x0007000c,0x00000006,0x000003d8,0x00000001,0x0000001a,
0x000003d7,0x00000054,0x0008000c,0x00000006,0x000003da,0x00000001,0x00000032,0x000003d8,
0x00000043,0x000004d8,0x000200f9,0x000003db,0x000200f8,0x000003db,0x000700f5,0x00000006,
0x000004f5,0x000003d4,0x000003d2,0x000003da,0x000003d5,0x00050051,0x00000006,0x000003b6,
0x000003a7,0x00000002,0x000500bc,0x00000037,0x000003e0,0x000003b6,0x0000004b,0x000300f7,
0x000003ea,0x00000000,0x000400fa,0x000003e0,0x000003e1,0x000003e4,0x000200f8,0x000003e1,
0x00050085,0x00000006,0x000003e3,0x000003b6,0x0000003c,0x000200f9,0x000003ea,0x000200f8,
0x000003e4,0x0006000c,0x00000006,0x000003e6,0x00000001,0x00000004,0x000003b6,0x0007000c,
0x00000006,0x000003e7,0x00000001,0x0000001a,0x000003e6,0x00000054,0x0008000c,0x00000006,
0x000003e9,0x00000001,0x00000032,0x000003e7,0x00000043,0x000004d8,0x000200f9,0x000003ea,
0x000200f8,0x000003ea,0x000700f5,0x00000006,0x000004f7,0x000003e3,0x000003e1,0x000003e9,
0x000003e4,0x00060050,0x0000000f,0x0000050d,0x000004f3,0x000004f5,0x000004f7,0x0008000c,
0x0000000f,0x000003bc,0x00000001,0x0000002b,0x0000050d,0x00000065,0x000004ce,0x000200f9,
0x000003bd,0x000200f8,0x000003bd,0x000700f5,0x0000000f,0x000004f9,0x000003a7,0x0000026e,
0x000003bc,0x000003ea,0x00050051,0x00000006,0x00000273,0x000004f9,0x00000000,0x00050051,
0x00000006,0x00000275,0x000004f9,0x00000001,0x00050051,0x00000006,0x00000277,0x000004f9,
0x00000002,0x00050051,0x00000006,0x00000279,0x000004e7,0x00000003,0x00070050,0x00000018,
0x000004d3,0x00000273,0x00000275,0x00000277,0x00000279,0x000200f9,0x00000299,0x000200f8,
0x0000027b,0x00050041,0x0000007e,0x0000027c,0x0000007b,0x00000098,0x0004003d,0x00000006,
0x0000027d,0x0000027c,0x000500b4,0x00000037,0x0000027e,0x0000027d,0x0000013a,0x000300f7,
0x00000298,0x00000000,0x000400fa,0x0000027e,0x0000027f,0x00000295,0x000200f8,0x0000027f,
0x0008004f,0x0000000f,0x00000281,0x000004e7,0x000004e7,0x00000000,0x00000001,0x00000002,
0x00050090,0x0000000f,0x00000282,0x00000281,0x000000e1,0x00050051,0x00000006,0x00000284,
0x00000282,0x00000000,0x00060052,0x00000018,0x000004a4,0x00000284,0x0000050f,0x00000000,
0x00050051,0x00000006,0x00000286,0x00000282,0x00000001,0x00060052,0x00000018,0x000004a6,
0x00000286,0x000004a4,0x00000001,0x00050051,0x00000006,0x00000288,0x00000282,0x00000002,
0x00060052,0x00000018,0x000004a8,0x00000288,0x000004a6,0x00000002,0x0008004f,0x0000000f,
0x0000028a,0x000004a8,0x000004a8,0x00000000,0x00000001,0x00000002,0x00050041,0x0000007e,
0x000003f3,0x0000007b,0x0000015a,0x0004003d,0x00000006,0x000003f4,0x000003f3,0x0005008e,
0x0000000f,0x000003f5,0x0000028a,0x000003f4,0x00050041,0x0000007e,0x000003f6,0x0000007b,
0x0000016a,0x0004003d,0x00000006,0x000003f7,0x000003f6,0x000500b7,0x00000037,0x000003f8,
0x000003f7,0x00000064,0x000400a8,0x00000037,0x000003f9,0x000003f8,0x000300f7,0x0000040b,
0x00000000,0x000400fa,0x000003f9,0x000003fa,0x0000040b,0x000200f8,0x000003fa,0x00050051,
0x00000006,0x000003fc,0x000003f5,0x00000000,0x000500bc,0x00000037,0x00000410,0x000003fc,
0x0000004b,0x000300f7,0x0000041a,0x00000000,0x000400fa,0x00000410,0x00000411,0x00000414,
0x000200f8,0x00000411,0x00050085,0x00000006,0x00000413,0x000003fc,0x0000003c,0x000200f9,
0x0000041a,0x000200f8,0x00000414,0x0006000c,0x00000006,0x00000416,0x00000001,0x00000004,
0x000003fc,0x0007000c,0x00000006,0x00000417,0x00000001,0x0000001a,0x00000416,0x00000054,
0x0008000c,0x00000006,0x00000419,0x00000001,0x00000032,0x00000417,0x00000043,0x000004d8,
0x000200f9,0x0000041a,0x000200f8,0x0000041a,0x000700f5,0x00000006,0x000004e8,0x00000413,
0x00000411,0x00000419,0x00000414,0x00050051,0x00000006,0x00000400,0x000003f5,0x00000001,
0x000500bc,0x00000037,0x0000041f,0x00000400,0x0000004b,0x000300f7,0x00000429,0x00000000,
0x000400fa,0x0000041f,0x00000420,0x00000423,0x000200f8,0x00000420,0x00050085,0x00000006,
0x00000422,0x00000400,0x0000003c,0x000200f9,0x00000429,0x000200f8,0x00000423,0x0006000c,
0x00000006,0x00000425,0x00000001,0x00000004,0x00000400,0x0007000c,0x00000006,0x00000426,
0x00000001,0x0000001a,0x00000425,0x00000054,0x0008000c,0x00000006,0x00000428,0x00000001,
0x00000032,0x00000426,0x00000043,0x000004d8,0x000200f9,0x00000429,0x000200f8,0x00000429,
0x000700f5,0x00000006,0x000004ea,0x00000422,0x00000420,0x00000428,0x00000423,0x00050051,
0x00000006,0x00000404,0x000003f5,0x00000002,0x000500bc,0x00000037,0x0000042e,0x00000404,
0x0000004b,0x000300f7,0x00000438,0x00000000,0x000400fa,0x0000042e,0x0000042f,0x00000432,
0x000200f8,0x0000042f,0x00050085,0x00000006,0x00000431,0x00000404,0x0000003c,0x000200f9,
0x00000438,0x000200f8,0x00000432,0x0006000c,0x00000006,0x00000434,0x00000001,0x00000004,
0x00000404,0x0007000c,0x00000006,0x00000435,0x00000001,0x0000001a,0x00000434,0x00000054,
0x0008000c,0x00000006,0x00000437,0x00000001,0x00000032,0x00000435,0x00000043,0x000004d8,
0x000200f9,0x00000438,0x000200f8,0x00000438,0x000700f5,0x00000006,0x000004ec,0x00000431,
0x0000042f,0x00000437,0x00000432,0x00060050,0x0000000f,0x0000050c,0x000004e8,0x000004ea,
0x000004ec,0x0008000c,0x0000000f,0x0000040a,0x00000001,0x0000002b,0x0000050c,0x00000065,
0x000004ce,0x000200f9,0x0000040b,0x000200f8,0x0000040b,0x000700f5,0x0000000f,0x000004ee,
0x000003f5,0x0000027f,0x0000040a,0x00000438,0x00050051,0x00000006,0x0000028d,0x000004ee,
0x00000000,0x00050051,0x00000006,0x0000028f,0x000004ee,0x00000001,0x00050051,0x00000006,
0x00000291,0x000004ee,0x00000002,0x00050051,0x00000006,0x00000293,0x000004e7,0x00000003,
0x00070050,0x00000018,0x000004cf,0x0000028d,0x0000028f,0x00000291,0x00000293,0x000200f9,
0x00000298,0x000200f8,0x00000295,0x0008004f,0x0000000f,0x0000043e,0x000004e7,0x000004e7,
0x00000000,0x00000001,0x00000002,0x00050041,0x0000007e,0x0000043f,0x0000007b,0x0000015a,
0x0004003d,0x00000006,0x00000440,0x0000043f,0x0005008e,0x0000000f,0x00000441,0x0000043e,
0x00000440,0x00050051,0x00000006,0x00000443,0x00000441,0x00000000,0x00050051,0x00000006,
0x00000445,0x00000441,0x00000001,0x00050051,0x00000006,0x00000447,0x00000441,0x00000002,
0x00050051,0x00000006,0x00000449,0x000004e7,0x00000003,0x00070050,0x00000018,0x000004ca,
0x00000443,0x00000445,0x00000447,0x00000449,0x000200f9,0x00000298,0x000200f8,0x00000298,
0x000700f5,0x00000018,0x0000050b,0x000004cf,0x0000040b,0x000004ca,0x00000295,0x000200f9,
0x00000299,0x000200f8,0x00000299,0x000700f5,0x00000018,0x0000050a,0x000004d3,0x000003bd,
0x0000050b,0x00000298,0x000200f9,0x0000029a,0x000200f8,0x0000029a,0x000700f5,0x00000018,
0x00000509,0x000004d6,0x0000036b,0x0000050a,0x00000299,0x00050085,0x00000018,0x0000029e,
0x00000509,0x00000225,0x0003003e,0x00000228,0x0000029e,0x000100fd,0x00010038
0x00000003,0x00040017,0x00000018,0x00000006,0x00000002,0x00040017,0x0000001a,0x00000006,
0x00000004,0x0004002b,0x00000006,0x0000003e,0x3d25aee6,0x00020014,0x0000003f,0x0004002b,
0x00000006,0x00000044,0x414eb852,0x0004002b,0x00000006,0x00000048,0x3d6147ae,0x0004002b,
0x00000006,0x0000004b,0x3f870a3d,0x0004002b,0x00000006,0x0000004d,0x4019999a,0x0004002b,
0x00000006,0x00000053,0x3b4d2e1c,0x0004002b,0x00000006,0x0000005c,0x3ed55555,0x0004002b,
0x00000006,0x00000066,0x3c4fcdac,0x0006002c,0x0000000f,0x00000067,0x00000066,0x00000066,
0x00000066,0x0004002b,0x00000006,0x00000069,0x3f560000,0x0004002b,0x00000006,0x0000006c,
0x00000000,0x0006002c,0x0000000f,0x0000006d,0x0000006c,0x0000006c,0x0000006c,0x0004002b,
0x00000006,0x00000070,0x4196d000,0x0004002b,0x00000006,0x00000071,0x41958000,0x0004002b,
0x00000006,0x00000078,0x461c4000,0x0004002b,0x00000006,0x0000007d,0x40c8e06b,0x0006002c,
0x0000000f,0x0000007e,0x0000007d,0x0000007d,0x0000007d,0x000b001e,0x00000081,0x00000006,
0x00000006,0x00000006,0x00000006,0x0000001a,0x00000006,0x00000006,0x00000006,0x00000006,
0x00040020,0x00000082,0x00000002,0x00000081,0x0004003b,0x00000082,0x00000083,0x00000002,
0x00040015,0x00000084,0x00000020,0x00000001,0x0004002b,0x00000084,0x00000085,0x00000008,
0x00040020,0x00000086,0x00000002,0x00000006,0x0004002b,0x00000084,0x0000008d,0x00000005,
0x0004002b,0x00000006,0x00000090,0x3f800000,0x0004002b,0x00000084,0x00000094,0x00000006,
0x0004002b,0x00000006,0x0000009c,0x40000000,0x0004002b,0x00000084,0x000000a0,0x00000002,
0x00040018,0x000000a7,0x0000000f,0x00000003,0x0004002b,0x00000006,0x000000a8,0x3f209d8c,
0x0004002b,0x00000006,0x000000a9,0x3ea897c8,0x0004002b,0x00000006,0x000000aa,0x3d3168f9,
0x0006002c,0x0000000f,0x000000ab,0x000000a8,0x000000a9,0x000000aa,0x0004002b,0x00000006,
0x000000ac,0x3d8d82ba,0x0004002b,0x00000006,0x000000ad,0x3f6b670a,0x0004002b,0x00000006,
0x000000ae,0x3c3a27af,0x0006002c,0x0000000f,0x000000af,0x000000ac,0x000000ad,0x000000ae,
0x0004002b,0x00000006,0x000000b0,0x3c86466b,0x0004002b,0x00000006,0x000000b1,0x3db44029,
0x0004002b,0x00000006,0x000000b2,0x3f6545b7,0x0006002c,0x0000000f,0x000000b3,0x000000b0,
0x000000b1,0x000000b2,0x0006002c,0x000000a7,0x000000b4,0x000000ab,0x000000af,0x000000b3,
0x0004002b,0x00000084,0x000000cd,0x00000007,0x0004002b,0x00000006,0x000000dd,0x3fd48b22,
0x0004002b,0x00000006,0x000000de,0xbf1670a0,0x0004002b,0x00000006,0x000000df,0xbd952d23,
0x0006002c,0x0000000f,0x000000e0,0x000000dd,0x000000de,0x000000df,0x0004002b,0x00000006,
0x000000e1,0xbdff127f,0x0004002b,0x00000006,0x000000e2,0x3f9102b4,0x0004002b,0x00000006,
0x000000e3,0xbc08c60d,0x0006002c,0x0000000f,0x000000e4,0x000000e1,0x000000e2,0x000000e3,
0x0004002b,0x00000006,0x000000e5,0xbc94b7b3,0x0004002b,0x00000006,0x000000e6,0xbdce05cd,
0x0004002b,0x00000006,0x000000e7,0x3f8f333c,0x0006002c,0x0000000f,0x000000e8,0x000000e5,
0x000000e6,0x000000e7,0x0006002c,0x000000a7,0x000000e9,0x000000e0,0x000000e4,0x000000e8,
0x00090019,0x000000ef,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,
0x00000000,0x0003001b,0x000000f0,0x000000ef,0x00040020,0x000000f1,0x00000000,0x000000f0,
0x0004003b,0x000000f1,0x000000f2,0x00000000,0x0004002b,0x00000006,0x000000f7,0x437f0000,
0x0004003b,0x000000f1,0x000000f9,0x00000000,0x0004002b,0x00000006,0x000000fc,0x3f000000,
0x0004002b,0x00000084,0x00000106,0x00000004,0x00040020,0x00000107,0x00000002,0x0000001a,
0x0004002b,0x00000006,0x00000154,0x3727c5ac,0x0005002c,0x00000018,0x00000155,0x00000154,
0x00000154,0x0005002c,0x00000018,0x00000156,0x00000090,0x00000090,0x0004002b,0x00000084,
0x00000174,0x00000001,0x0004002b,0x00000006,0x00000196,0x40400000,0x0004002b,0x00000006,
0x000001a1,0x40800000,0x0004002b,0x00000006,0x000001ac,0x40a00000,0x0004002b,0x00000084,
0x000001c4,0x00000003,0x0004002b,0x00000084,0x000001d4,0x00000000,0x00040020,0x00000286,
0x00000001,0x0000001a,0x00040020,0x0000028a,0x00000001,0x00000018,0x0004003b,0x0000028a,
0x0000028b,0x00000001,0x0004003b,0x00000286,0x0000028e,0x00000001,0x00040020,0x00000291,
0x00000003,0x0000001a,0x0004003b,0x00000291,0x00000292,0x00000003,0x0005002c,0x00000018,
0x0000066e,0x000000fc,0x000000fc,0x0004002b,0x00000006,0x0000066f,0x3b800000,0x0006002c,
0x0000000f,0x00000671,0x00000069,0x00000069,0x00000069,0x0006002c,0x0000000f,0x00000672,
0x00000070,0x00000070,0x00000070,0x0006002c,0x0000000f,0x00000677,0x00000090,0x00000090,
0x00000090,0x0004002b,0x00000006,0x0000067d,0x3f72a76f,0x0004002b,0x00000006,0x0000067e,
0x3d9e8391,0x0007002c,0x0000001a,0x00000680,0x00000090,0x0000006c,0x00000090,0x00000090,
0x0004002b,0x00000006,0x00000681,0xbd6147ae,0x00030001,0x0000001a,0x000006ba,0x00050036,
0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003d,0x00000018,
0x0000028c,0x0000028b,0x0004003d,0x0000001a,0x0000028f,0x0000028e,0x00050041,0x00000086,
0x00000313,0x00000083,0x00000174,0x0004003d,0x00000006,0x00000314,0x00000313,0x000500b4,
0x0000003f,0x00000315,0x00000314,0x00000090,0x000300f7,0x0000034f,0x00000000,0x000400fa,
0x00000315,0x00000316,0x0000031b,0x000200f8,0x00000316,0x0004003d,0x000000f0,0x00000317,
0x000000f2,0x00050057,0x0000001a,0x0000031a,0x00000317,0x0000028c,0x000200f9,0x0000034f,
0x000200f8,0x0000031b,0x00050041,0x00000086,0x0000031c,0x00000083,0x00000174,0x0004003d,
0x00000006,0x0000031d,0x0000031c,0x000500b4,0x0000003f,0x0000031e,0x0000031d,0x0000009c,
0x000300f7,0x0000034e,0x00000000,0x000400fa,0x0000031e,0x0000031f,0x0000032c,0x000200f8,
0x0000031f,0x000400d1,0x00000018,0x00000357,0x0000028c,0x00050041,0x00000107,0x00000358,
0x00000083,0x00000106,0x0004003d,0x0000001a,0x00000359,0x00000358,0x0007004f,0x00000018,
0x0000035a,0x00000359,0x00000359,0x00000002,0x00000003,0x00050085,0x00000018,0x0000035b,
0x00000357,0x0000035a,0x0008000c,0x00000018,0x0000035c,0x00000001,0x0000002b,0x0000035b,
0x00000155,0x00000156,0x00050041,0x00000107,0x0000035e,0x00000083,0x00000106,0x0004003d,
0x0000001a,0x0000035f,0x0000035e,0x0007004f,0x00000018,0x00000360,0x0000035f,0x0000035f,
0x00000002,0x00000003,0x0005008e,0x00000018,0x00000363,0x0000035c,0x000000fc,0x0004007f,
0x00000018,0x00000670,0x00000363,0x0008000c,0x00000018,0x00000364,0x00000001,0x00000032,
0x0000028c,0x00000360,0x00000670,0x00050083,0x00000018,0x00000367,0x00000156,0x0000035c,
0x0006000c,0x00000018,0x00000369,0x00000001,0x0000000a,0x00000364,0x0008000c,0x00000018,
0x0000036a,0x00000001,0x00000031,0x00000367,0x00000156,0x00000369,0x0006000c,0x00000018,
0x0000036c,0x00000001,0x00000008,0x00000364,0x00050081,0x00000018,0x0000036e,0x0000036c,
0x0000066e,0x00050081,0x00000018,0x00000370,0x0000036e,0x0000036a,0x00050041,0x00000107,
0x00000371,0x00000083,0x00000106,0x0004003d,0x0000001a,0x00000372,0x00000371,0x0007004f,
0x00000018,0x00000373,0x00000372,0x00000372,0x00000000,0x00000001,0x00050085,0x00000018,
0x00000374,0x00000370,0x00000373,0x0004003d,0x000000f0,0x00000323,0x000000f2,0x000400cf,
0x00000018,0x00000327,0x0000028c,0x000400d0,0x00000018,0x0000032a,0x0000028c,0x00080058,
0x0000001a,0x0000032b,0x00000323,0x00000374,0x00000004,0x00000327,0x0000032a,0x000200f9,
0x0000034e,0x000200f8,0x0000032c,0x00050041,0x00000086,0x0000032d,0x00000083,0x00000174,
0x0004003d,0x00000006,0x0000032e,0x0000032d,0x000500b4,0x0000003f,0x0000032f,0x0000032e,
0x00000196,0x000300f7,0x0000034d,0x00000000,0x000400fa,0x0000032f,0x00000330,0x00000334,
0x000200f8,0x00000330,0x0004003d,0x000000f0,0x00000378,0x000000f2,0x00050057,0x0000001a,
0x0000037a,0x00000378,0x0000028c,0x00050051,0x00000006,0x0000037b,0x0000037a,0x00000000,
0x0004003d,0x000000f0,0x0000037d,0x000000f9,0x0008000c,0x00000006,0x0000037f,0x00000001,
0x00000032,0x0000037b,0x000000f7,0x000000fc,0x00050085,0x00000006,0x00000380,0x0000037f,
0x0000066f,0x00050050,0x00000018,0x00000381,0x00000380,0x000000fc,0x00050057,0x0000001a,
0x00000382,0x0000037d,0x00000381,0x000200f9,0x0000034d,0x000200f8,0x00000334,0x00050041,
0x00000086,0x00000335,0x00000083,0x00000174,0x0004003d,0x00000006,0x00000336,0x00000335,
0x000500b4,0x0000003f,0x00000337,0x00000336,0x000001a1,0x000300f7,0x0000034c,0x00000000,
0x000400fa,0x00000337,0x00000338,0x0000033c,0x000200f8,0x00000338,0x00050041,0x00000107,
0x00000391,0x00000083,0x00000106,0x0004003d,0x0000001a,0x00000392,0x00000391,0x0007004f,
0x00000018,0x00000393,0x00000392,0x00000392,0x00000002,0x00000003,0x0008000c,0x00000018,
0x00000396,0x00000001,0x00000032,0x0000028c,0x00000393,0x0000066e,0x0006000c,0x00000018,
0x00000398,0x00000001,0x00000008,0x00000396,0x00050083,0x00000018,0x0000039a,0x00000398,
0x0000066e,0x00050041,0x00000107,0x0000039b,0x00000083,0x00000106,0x0004003d,0x0000001a,
0x0000039c,0x0000039b,0x0007004f,0x00000018,0x0000039d,0x0000039c,0x0000039c,0x00000000,
0x00000001,0x00050085,0x00000018,0x0000039e,0x0000039a,0x0000039d,0x0006000c,0x00000018,
0x000003a0,0x00000001,0x00000008,0x00000396,0x00050081,0x00000018,0x000003a2,0x000003a0,
0x0000066e,0x00050041,0x00000107,0x000003a3,0x00000083,0x00000106,0x0004003d,0x0000001a,
0x000003a4,0x000003a3,0x0007004f,0x00000018,0x000003a5,0x000003a4,0x000003a4,0x00000000,
0x00000001,0x00050085,0x00000018,0x000003a6,0x000003a2,0x000003a5,0x00050051,0x00000006,
0x000003a7,0x0000039e,0x00000000,0x00050051,0x00000006,0x000003a8,0x0000039e,0x00000001,
0x00050051,0x00000006,0x000003a9,0x000003a6,0x00000000,0x00050051,0x00000006,0x000003aa,
0x000003a6,0x00000001,0x00070050,0x0000001a,0x000003ab,0x000003a7,0x000003a8,0x000003a9,
0x000003aa,0x0006000c,0x00000018,0x000003ad,0x00000001,0x0000000a,0x00000396,0x0007004f,
0x00000018,0x000003af,0x000003ab,0x000003ab,0x00000000,0x00000001,0x0004003d,0x000000f0,
0x000003cd,0x000000f2,0x00050057,0x0000001a,0x000003cf,0x000003cd,0x000003af,0x00050051,
0x00000006,0x000003d0,0x000003cf,0x00000000,0x0004003d,0x000000f0,0x000003d2,0x000000f9,
0x0008000c,0x00000006,0x000003d4,0x00000001,0x00000032,0x000003d0,0x000000f7,0x000000fc,
0x00050085,0x00000006,0x000003d5,0x000003d4,0x0000066f,0x00050050,0x00000018,0x000003d6,
0x000003d5,0x000000fc,0x00050057,0x0000001a,0x000003d7,0x000003d2,0x000003d6,0x0007004f,
0x00000018,0x000003b2,0x000003ab,0x000003ab,0x00000000,0x00000003,0x0004003d,0x000000f0,
0x000003db,0x000000f2,0x00050057,0x0000001a,0x000003dd,0x000003db,0x000003b2,0x00050051,
0x00000006,0x000003de,0x000003dd,0x00000000,0x0004003d,0x000000f0,0x000003e0,0x000000f9,
0x0008000c,0x00000006,0x000003e2,0x00000001,0x00000032,0x000003de,0x000000f7,0x000000fc,
0x00050085,0x00000006,0x000003e3,0x000003e2,0x0000066f,0x00050050,0x00000018,0x000003e4,
0x000003e3,0x000000fc,0x00050057,0x0000001a,0x000003e5,0x000003e0,0x000003e4,0x0007004f,
0x00000018,0x000003b5,0x000003ab,0x000003ab,0x00000002,0x00000001,0x0004003d,0x000000f0,
0x000003e9,0x000000f2,0x00050057,0x0000001a,0x000003eb,0x000003e9,0x000003b5,0x00050051,
0x00000006,0x000003ec,0x000003eb,0x00000000,0x0004003d,0x000000f0,0x000003ee,0x000000f9,
0x0008000c,0x00000006,0x000003f0,0x00000001,0x00000032,0x000003ec,0x000000f7,0x000000fc,
0x00050085,0x00000006,0x000003f1,0x000003f0,0x0000066f,0x00050050,0x00000018,0x000003f2,
0x000003f1,0x000000fc,0x00050057,0x0000001a,0x000003f3,0x000003ee,0x000003f2,0x0007004f,
0x00000018,0x000003b8,0x000003ab,0x000003ab,0x00000002,0x00000003,0x0004003d,0x000000f0,
0x000003f7,0x000000f2,0x00050057,0x0000001a,0x000003f9,0x000003f7,0x000003b8,0x00050051,
0x00000006,0x000003fa,0x000003f9,0x00000000,0x0004003d,0x000000f0,0x000003fc,0x000000f9,
0x0008000c,0x00000006,0x000003fe,0x00000001,0x00000032,0x000003fa,0x000000f7,0x000000fc,
0x00050085,0x00000006,0x000003ff,0x000003fe,0x0000066f,0x00050050,0x00000018,0x00000400,
0x000003ff,0x000000fc,0x00050057,0x0000001a,0x00000401,0x000003fc,0x00000400,0x00050051,
0x00000006,0x000003bd,0x000003ad,0x00000001,0x00070050,0x0000001a,0x000003be,0x000003bd,
0x000003bd,0x000003bd,0x000003bd,0x0008000c,0x0000001a,0x000003bf,0x00000001,0x0000002e,
0x000003d7,0x000003e5,0x000003be,0x00050051,0x00000006,0x000003c3,0x000003ad,0x00000001,
0x00070050,0x0000001a,0x000003c4,0x000003c3,0x000003c3,0x000003c3,0x000003c3,0x0008000c,
0x0000001a,0x000003c5,0x00000001,0x0000002e,0x000003f3,0x00000401,0x000003c4,0x00050051,
0x00000006,0x000003c7,0x000003ad,0x00000000,0x00070050,0x0000001a,0x000003c8,0x000003c7,
0x000003c7,0x000003c7,0x000003c7,0x0008000c,0x0000001a,0x000003c9,0x00000001,0x0000002e,
0x000003bf,0x000003c5,0x000003c8,0x000200f9,0x0000034c,0x000200f8,0x0000033c,0x00050041,
0x00000086,0x0000033d,0x00000083,0x00000174,0x0004003d,0x00000006,0x0000033e,0x0000033d,
0x000500b4,0x0000003f,0x0000033f,0x0000033e,0x000001ac,0x000300f7,0x0000034b,0x00000000,
0x000400fa,0x0000033f,0x00000340,0x00000346,0x000200f8,0x00000340,0x000400d1,0x00000018,
0x00000408,0x0000028c,0x00050041,0x00000107,0x00000409,0x00000083,0x00000106,0x0004003d,
0x0000001a,0x0000040a,0x00000409,0x0007004f,0x00000018,0x0000040b,0x0000040a,0x0000040a,
0x00000002,0x00000003,0x00050085,0x00000018,0x0000040c,0x00000408,0x0000040b,0x0008000c,
0x00000018,0x0000040d,0x00000001,0x0000002b,0x0000040c,0x00000155,0x00000156,0x00050041,
0x00000107,0x0000040f,0x00000083,0x00000106,0x0004003d,0x0000001a,0x00000410,0x0000040f,
0x0007004f,0x00000018,0x00000411,0x00000410,0x00000410,0x00000002,0x00000003,0x0005008e,
0x00000018,0x00000414,0x0000040d,0x000000fc,0x0004007f,0x00000018,0x0000066d,0x00000414,
0x0008000c,0x00000018,0x00000415,0x00000001,0x00000032,0x0000028c,0x00000411,0x0000066d,
0x00050083,0x00000018,0x00000418,0x00000156,0x0000040d,0x0006000c,0x00000018,0x0000041a,
0x00000001,0x0000000a,0x00000415,0x0008000c,0x00000018,0x0000041b,0x00000001,0x00000031,
0x00000418,0x00000156,0x0000041a,0x0006000c,0x00000018,0x0000041d,0x00000001,0x00000008,
0x00000415,0x00050081,0x00000018,0x0000041f,0x0000041d,0x0000066e,0x00050081,0x00000018,
0x00000421,0x0000041f,0x0000041b,0x00050041,0x00000107,0x00000422,0x00000083,0x00000106,
0x0004003d,0x0000001a,0x00000423,0x00000422,0x0007004f,0x00000018,0x00000424,0x00000423,
0x00000423,0x00000000,0x00000001,0x00050085,0x00000018,0x00000425,0x00000421,0x00000424,
0x00050041,0x00000107,0x00000434,0x00000083,0x00000106,0x0004003d,0x0000001a,0x00000435,
0x00000434,0x0007004f,0x00000018,0x00000436,0x00000435,0x00000435,0x00000002,0x00000003,
0x0008000c,0x00000018,0x00000439,0x00000001,0x00000032,0x00000425,0x00000436,0x0000066e,
0x0006000c,0x00000018,0x0000043b,0x00000001,0x00000008,0x00000439,0x00050083,0x00000018,
0x0000043d,0x0000043b,0x0000066e,0x00050041,0x00000107,0x0000043e,0x00000083,0x00000106,
0x0004003d,0x0000001a,0x0000043f,0x0000043e,0x0007004f,0x00000018,0x00000440,0x0000043f,
0x0000043f,0x00000000,0x00000001,0x00050085,0x00000018,0x00000441,0x0000043d,0x00000440,
0x0006000c,0x00000018,0x00000443,0x00000001,0x00000008,0x00000439,0x00050081,0x00000018,
0x00000445,0x00000443,0x0000066e,0x00050041,0x00000107,0x00000446,0x00000083,0x00000106,
0x0004003d,0x0000001a,0x00000447,0x00000446,0x0007004f,0x00000018,0x00000448,0x00000447,
0x00000447,0x00000000,0x00000001,0x00050085,0x00000018,0x00000449,0x00000445,0x00000448,
0x00050051,0x00000006,0x0000044a,0x00000441,0x00000000,0x00050051,0x00000006,0x0000044b,
0x00000441,0x00000001,0x00050051,0x00000006,0x0000044c,0x00000449,0x00000000,0x00050051,
0x00000006,0x0000044d,0x00000449,0x00000001,0x00070050,0x0000001a,0x0000044e,0x0000044a,
0x0000044b,0x0000044c,0x0000044d,0x0006000c,0x00000018,0x00000450,0x00000001,0x0000000a,
0x00000439,0x0007004f,0x00000018,0x00000452,0x0000044e,0x0000044e,0x00000000,0x00000001,
0x0004003d,0x000000f0,0x00000470,0x000000f2,0x00050057,0x0000001a,0x00000472,0x00000470,
0x00000452,0x00050051,0x00000006,0x00000473,0x00000472,0x00000000,0x0004003d,0x000000f0,
0x00000475,0x000000f9,0x0008000c,0x00000006,0x00000477,0x00000001,0x00000032,0x00000473,
0x000000f7,0x000000fc,0x00050085,0x00000006,0x00000478,0x00000477,0x0000066f,0x00050050,
0x00000018,0x00000479,0x00000478,0x000000fc,0x00050057,0x0000001a,0x0000047a,0x00000475,
0x00000479,0x0007004f,0x00000018,0x00000455,0x0000044e,0x0000044e,0x00000000,0x00000003,
0x0004003d,0x000000f0,0x0000047e,0x000000f2,0x00050057,0x0000001a,0x00000480,0x0000047e,
0x00000455,0x00050051,0x00000006,0x00000481,0x00000480,0x00000000,0x0004003d,0x000000f0,
0x00000483,0x000000f9,0x0008000c,0x00000006,0x00000485,0x00000001,0x00000032,0x00000481,
0x000000f7,0x000000fc,0x00050085,0x00000006,0x00000486,0x00000485,0x0000066f,0x00050050,
0x00000018,0x00000487,0x00000486,0x000000fc,0x00050057,0x0000001a,0x00000488,0x00000483,
0x00000487,0x0007004f,0x00000018,0x00000458,0x0000044e,0x0000044e,0x00000002,0x00000001,
0x0004003d,0x000000f0,0x0000048c,0x000000f2,0x00050057,0x0000001a,0x0000048e,0x0000048c,
0x00000458,0x00050051,0x00000006,0x0000048f,0x0000048e,0x00000000,0x0004003d,0x000000f0,
0x00000491,0x000000f9,0x0008000c,0x00000006,0x00000493,0x00000001,0x00000032,0x0000048f,
0x000000f7,0x000000fc,0x00050085,0x00000006,0x00000494,0x00000493,0x0000066f,0x00050050,
0x00000018,0x00000495,0x00000494,0x000000fc,0x00050057,0x0000001a,0x00000496,0x00000491,
0x00000495,0x0007004f,0x00000018,0x0000045b,0x0000044e,0x0000044e,0x00000002,0x00000003,
0x0004003d,0x000000f0,0x0000049a,0x000000f2,0x00050057,0x0000001a,0x0000049c,0x0000049a,
0x0000045b,0x00050051,0x00000006,0x0000049d,0x0000049c,0x00000000,0x0004003d,0x000000f0,
0x0000049f,0x000000f9,0x0008000c,0x00000006,0x000004a1,0x00000001,0x00000032,0x0000049d,
0x000000f7,0x000000fc,0x00050085,0x00000006,0x000004a2,0x000004a1,0x0000066f,0x00050050,
0x00000018,0x000004a3,0x000004a2,0x000000fc,0x00050057,0x0000001a,0x000004a4,0x0000049f,
0x000004a3,0x00050051,0x00000006,0x00000460,0x00000450,0x00000001,0x00070050,0x0000001a,
0x00000461,0x00000460,0x00000460,0x00000460,0x00000460,0x0008000c,0x0000001a,0x00000462,
0x00000001,0x0000002e,0x0000047a,0x00000488,0x00000461,0x00050051,0x00000006,0x00000466,
0x00000450,0x00000001,0x00070050,0x0000001a,0x00000467,0x00000466,0x00000466,0x00000466,
0x00000466,0x0008000c,0x0000001a,0x00000468,0x00000001,0x0000002e,0x00000496,0x000004a4,
0x00000467,0x00050051,0x00000006,0x0000046a,0x00000450,0x00000000,0x00070050,0x0000001a,
0x0000046b,0x0000046a,0x0000046a,0x0000046a,0x0000046a,0x0008000c,0x0000001a,0x0000046c,
0x00000001,0x0000002e,0x00000462,0x00000468,0x0000046b,0x000200f9,0x0000034b,0x000200f8,
0x00000346,0x000200f9,0x0000034b,0x000200f8,0x0000034b,0x000700f5,0x0000001a,0x00000686,
0x0000046c,0x00000340,0x00000680,0x00000346,0x000200f9,0x0000034c,0x000200f8,0x0000034c,
0x000700f5,0x0000001a,0x00000685,0x000003c9,0x00000338,0x00000686,0x0000034b,0x000200f9,
0x0000034d,0x000200f8,0x0000034d,0x000700f5,0x0000001a,0x00000684,0x00000382,0x00000330,
0x00000685,0x0000034c,0x000200f9,0x0000034e,0x000200f8,0x0000034e,0x000700f5,0x0000001a,
0x00000683,0x0000032b,0x0000031f,0x00000684,0x0000034d,0x000200f9,0x0000034f,0x000200f8,
0x0000034f,0x000700f5,0x0000001a,0x00000682,0x0000031a,0x00000316,0x00000683,0x0000034e,
0x00050041,0x00000086,0x000002a8,0x00000083,0x000000a0,0x0004003d,0x00000006,0x000002a9,
0x000002a8,0x000500b4,0x0000003f,0x000002aa,0x000002a9,0x00000196,0x000300f7,0x000002b5,
0x00000000,0x000400fa,0x000002aa,0x000002ab,0x000002b5,0x000200f8,0x000002ab,0x0008004f,
0x0000000f,0x000002ad,0x00000682,0x00000682,0x00000000,0x00000001,0x00000002,0x0006000c,
0x0000000f,0x000004aa,0x00000001,0x00000004,0x000002ad,0x0007000c,0x0000000f,0x000004ab,
0x00000001,0x0000001a,0x000004aa,0x00000067,0x00050083,0x0000000f,0x000004ad,0x000004ab,
0x00000671,0x0007000c,0x0000000f,0x000004ae,0x00000001,0x00000028,0x000004ad,0x0000006d,
0x0006000c,0x0000000f,0x000004b0,0x00000001,0x00000004,0x000002ad,0x0007000c,0x0000000f,
0x000004b1,0x00000001,0x0000001a,0x000004b0,0x00000067,0x0005008e,0x0000000f,0x000004b2,
0x000004b1,0x00000071,0x00050083,0x0000000f,0x000004b4,0x00000672,0x000004b2,0x00050088,
0x0000000f,0x000004b7,0x000004ae,0x000004b4,0x0006000c,0x0000000f,0x000004b8,0x00000001,
0x00000004,0x000004b7,0x0007000c,0x0000000f,0x000004b9,0x00000001,0x0000001a,0x000004b8,
0x0000007e,0x0005008e,0x0000000f,0x000004ba,0x000004b9,0x00000078,0x00050041,0x00000086,
0x000004bb,0x00000083,0x00000085,0x0004003d,0x00000006,0x000004bc,0x000004bb,0x00060050,
0x0000000f,0x000004bd,0x000004bc,0x000004bc,0x000004bc,0x00050088,0x0000000f,0x000004be,
0x000004ba,0x000004bd,0x00050051,0x00000006,0x000002b0,0x000004be,0x00000000,0x00060052,
0x0000001a,0x00000619,0x000002b0,0x00000682,0x00000000,0x00050051,0x00000006,0x000002b2,
0x000004be,0x00000001,0x00060052,0x0000001a,0x0000061b,0x000002b2,0x00000619,0x00000001,
0x00050051,0x00000006,0x000002b4,0x000004be,0x00000002,0x00060052,0x0000001a,0x0000061d,
0x000002b4,0x0000061b,0x00000002,0x000200f9,0x000002b5,0x000200f8,0x000002b5,0x000700f5,
0x0000001a,0x00000687,0x00000682,0x0000034f,0x0000061d,0x000002ab,0x00050041,0x00000086,
0x000002b6,0x00000083,0x0000008d,0x0004003d,0x00000006,0x000002b7,0x000002b6,0x000500b7,
0x0000003f,0x000002b8,0x000002b7,0x0000006c,0x000300f7,0x000002c3,0x00000000,0x000400fa,
0x000002b8,0x000002b9,0x000002c3,0x000200f8,0x000002b9,0x0008004f,0x0000000f,0x000002bb,
0x00000687,0x00000687,0x00000000,0x00000001,0x00000002,0x00050041,0x00000086,0x000004c3,
0x00000083,0x0000008d,0x0004003d,0x00000006,0x000004c4,0x000004c3,0x000500b4,0x0000003f,
0x000004c5,0x000004c4,0x00000090,0x000300f7,0x000004f9,0x00000000,0x000400fa,0x000004c5,
0x000004c6,0x000004cb,0x000200f8,0x000004c6,0x00050041,0x00000086,0x000004c7,0x00000083,
0x00000094,0x0004003d,0x00000006,0x000004c8,0x000004c7,0x0005008e,0x0000000f,0x000004ca,
0x000002bb,0x000004c8,0x000200f9,0x000004f9,0x000200f8,0x000004cb,0x00050041,0x00000086,
0x000004cc,0x00000083,0x0000008d,0x0004003d,0x00000006,0x000004cd,0x000004cc,0x000500b4,
0x0000003f,0x000004ce,0x000004cd,0x0000009c,0x000300f7,0x000004f8,0x00000000,0x000400fa,
0x000004ce,0x000004cf,0x000004f8,0x000200f8,0x000004cf,0x00050041,0x00000086,0x000004d0,
0x00000083,0x000000a0,0x0004003d,0x00000006,0x000004d1,0x000004d0,0x000500b4,0x0000003f,
0x000004d2,0x000004d1,0x0000009c,0x000300f7,0x000004d6,0x00000000,0x000400fa,0x000004d2,
0x000004d3,0x000004d6,0x000200f8,0x000004d3,0x00050090,0x0000000f,0x000004d5,0x000002bb,
0x000000b4,0x000200f9,0x000004d6,0x000200f8,0x000004d6,0x000700f5,0x0000000f,0x00000688,
0x000002bb,0x000004cf,0x000004d5,0x000004d3,0x00050051,0x00000006,0x000004d8,0x00000688,
0x00000000,0x00050051,0x00000006,0x000004da,0x00000688,0x00000001,0x00050051,0x00000006,
0x000004dc,0x00000688,0x00000002,0x0007000c,0x00000006,0x000004dd,0x00000001,0x00000028,
0x000004da,0x000004dc,0x0007000c,0x00000006,0x000004de,0x00000001,0x00000028,0x000004d8,
0x000004dd,0x000500ba,0x0000003f,0x000004e0,0x000004de,0x0000006c,0x000300f7,0x000004f0,
0x00000000,0x000400fa,0x000004e0,0x000004e1,0x000004f0,0x000200f8,0x000004e1,0x00050041,
0x00000086,0x000004e2,0x00000083,0x00000094,0x0004003d,0x00000006,0x000004e3,0x000004e2,
0x0008000c,0x00000006,0x000004e6,0x00000001,0x00000032,0x000004e3,0x000004de,0x00000090,
0x00050041,0x00000086,0x000004e7,0x00000083,0x000000cd,0x0004003d,0x00000006,0x000004e8,
0x000004e7,0x0008000c,0x00000006,0x000004eb,0x00000001,0x00000032,0x000004e8,0x000004de,
0x00000090,0x00050088,0x00000006,0x000004ec,0x000004e6,0x000004eb,0x0005008e,0x0000000f,
0x000004ef,0x00000688,0x000004ec,0x000200f9,0x000004f0,0x000200f8,0x000004f0,0x000700f5,
0x0000000f,0x00000689,0x00000688,0x000004d6,0x000004ef,0x000004e1,0x00050041,0x00000086,
0x000004f1,0x00000083,0x000000a0,0x0004003d,0x00000006,0x000004f2,0x000004f1,0x000500b4,
0x0000003f,0x000004f3,0x000004f2,0x0000009c,0x000300f7,0x000004f7,0x00000000,0x000400fa,
0x000004f3,0x000004f4,0x000004f7,0x000200f8,0x000004f4,0x00050090,0x0000000f,0x000004f6,
0x00000689,0x000000e9,0x000200f9,0x000004f7,0x000200f8,0x000004f7,0x000700f5,0x0000000f,
0x0000068c,0x00000689,0x000004f0,0x000004f6,0x000004f4,0x000200f9,0x000004f8,0x000200f8,
0x000004f8,0x000700f5,0x0000000f,0x0000068b,0x000002bb,0x000004cb,0x0000068c,0x000004f7,
0x000200f9,0x000004f9,0x000200f8,0x000004f9,0x000700f5,0x0000000f,0x0000068a,0x000004ca,
0x000004c6,0x0000068b,0x000004f8,0x00050051,0x00000006,0x000002be,0x0000068a,0x00000000,
0x00060052,0x0000001a,0x00000622,0x000002be,0x00000687,0x00000000,0x00050051,0x00000006,
0x000002c0,0x0000068a,0x00000001,0x00060052,0x0000001a,0x00000624,0x000002c0,0x00000622,
0x00000001,0x00050051,0x00000006,0x000002c2,0x0000068a,0x00000002,0x00060052,0x0000001a,
0x00000626,0x000002c2,0x00000624,0x00000002,0x000200f9,0x000002c3,0x000200f8,0x000002c3,
0x000700f5,0x0000001a,0x00000692,0x00000687,0x000002b5,0x00000626,0x000004f9,0x00050041,
0x00000086,0x000002c4,0x00000083,0x000000a0,0x0004003d,0x00000006,0x000002c5,0x000002c4,
0x000500b4,0x0000003f,0x000002c6,0x000002c5,0x00000090,0x000300f7,0x00000304,0x00000000,
0x000400fa,0x000002c6,0x000002c7,0x000002d4,0x000200f8,0x000002c7,0x0008004f,0x0000000f,
0x000002c9,0x00000692,0x00000692,0x00000000,0x00000001,0x00000002,0x00050041,0x00000086,
0x00000501,0x00000083,0x000001d4,0x0004003d,0x00000006,0x00000502,0x00000501,0x000500b7,
0x0000003f,0x00000503,0x00000502,0x0000006c,0x000300f7,0x00000511,0x00000000,0x000400fa,
0x00000503,0x00000504,0x00000511,0x000200f8,0x00000504,0x00050051,0x00000006,0x00000506,
0x00000692,0x00000000,0x000500bc,0x0000003f,0x0000051a,0x00000506,0x0000003e,0x000300f7,
0x00000524,0x00000000,0x000400fa,0x0000051a,0x0000051b,0x0000051e,0x000200f8,0x0000051b,
0x00050085,0x00000006,0x0000051d,0x00000506,0x0000067e,0x000200f9,0x00000524,0x000200f8,
0x0000051e,0x00050081,0x00000006,0x00000520,0x00000506,0x00000048,0x0006000c,0x00000006,
0x00000521,0x00000001,0x00000004,0x00000520,0x00050085,0x00000006,0x00000522,0x00000521,
0x0000067d,0x0007000c,0x00000006,0x00000523,0x00000001,0x0000001a,0x00000522,0x0000004d,
0x000200f9,0x00000524,0x000200f8,0x00000524,0x000700f5,0x00000006,0x000006a9,0x0000051d,
0x0000051b,0x00000523,0x0000051e,0x00050051,0x00000006,0x0000050a,0x00000692,0x00000001,
0x000500bc,0x0000003f,0x00000529,0x0000050a,0x0000003e,0x000300f7,0x00000533,0x00000000,
0x000400fa,0x00000529,0x0000052a,0x0000052d,0x000200f8,0x0000052a,0x00050085,0x00000006,
0x0000052c,0x0000050a,0x0000067e,0x000200f9,0x00000533,0x000200f8,0x0000052d,0x00050081,
0x00000006,0x0000052f,0x0000050a,0x00000048,0x0006000c,0x00000006,0x00000530,0x00000001,
0x00000004,0x0000052f,0x00050085,0x00000006,0x00000531,0x00000530,0x0000067d,0x0007000c,
0x00000006,0x00000532,0x00000001,0x0000001a,0x00000531,0x0000004d,0x000200f9,0x00000533,
0x000200f8,0x00000533,0x000700f5,0x00000006,0x000006ab,0x0000052c,0x0000052a,0x00000532,
0x0000052d,0x00050051,0x00000006,0x0000050e,0x00000692,0x00000002,0x000500bc,0x0000003f,
0x00000538,0x0000050e,0x0000003e,0x000300f7,0x00000542,0x00000000,0x000400fa,0x00000538,
0x00000539,0x0000053c,0x000200f8,0x00000539,0x00050085,0x00000006,0x0000053b,0x0000050e,
0x0000067e,0x000200f9,0x00000542,0x000200f8,0x0000053c,0x00050081,0x00000006,0x0000053e,
0x0000050e,0x00000048,0x0006000c,0x00000006,0x0000053f,0x00000001,0x00000004,0x0000053e,
0x00050085,0x00000006,0x00000540,0x0000053f,0x0000067d,0x0007000c,0x00000006,0x00000541,
0x00000001,0x0000001a,0x00000540,0x0000004d,0x000200f9,0x00000542,0x000200f8,0x00000542,
0x000700f5,0x00000006,0x000006ad,0x0000053b,0x00000539,0x00000541,0x0000053c,0x00060050,
0x0000000f,0x000006b9,0x000006a9,0x000006ab,0x000006ad,0x000200f9,0x00000511,0x000200f8,
0x00000511,0x000700f5,0x0000000f,0x000006af,0x000002c9,0x000002c7,0x000006b9,0x00000542,
0x00050041,0x00000086,0x00000513,0x00000083,0x000001c4,0x0004003d,0x00000006,0x00000514,
0x00000513,0x0005008e,0x0000000f,0x00000515,0x000006af,0x00000514,0x00050051,0x00000006,
0x000002cc,0x00000515,0x00000000,0x00050051,0x00000006,0x000002ce,0x00000515,0x00000001,
0x00050051,0x00000006,0x000002d0,0x00000515,0x00000002,0x00050051,0x00000006,0x000002d2,
0x00000692,0x00000003,0x00070050,0x0000001a,0x0000067f,0x000002cc,0x000002ce,0x000002d0,
0x000002d2,0x000200f9,0x00000304,0x000200f8,0x000002d4,0x00050041,0x00000086,0x000002d5,
0x00000083,0x000000a0,0x0004003d,0x00000006,0x000002d6,0x000002d5,0x000500b4,0x0000003f,
0x000002d7,0x000002d6,0x0000009c,0x000300f7,0x00000303,0x00000000,0x000400fa,0x000002d7,
0x000002d8,0x000002e5,0x000200f8,0x000002d8,0x0008004f,0x0000000f,0x000002da,0x00000692,
0x00000692,0x00000000,0x00000001,0x00000002,0x00050041,0x00000086,0x0000054b,0x00000083,
0x000001c4,0x0004003d,0x00000006,0x0000054c,0x0000054b,0x0005008e,0x0000000f,0x0000054d,
0x000002da,0x0000054c,0x00050041,0x00000086,0x0000054e,0x00000083,0x000001d4,0x0004003d,
0x00000006,0x0000054f,0x0000054e,0x000500b7,0x0000003f,0x00000550,0x0000054f,0x0000006c,
0x000400a8,0x0000003f,0x00000551,0x00000550,0x000300f7,0x00000563,0x00000000,0x000400fa,
0x00000551,0x00000552,0x00000563,0x000200f8,0x00000552,0x00050051,0x00000006,0x00000554,
0x0000054d,0x00000000,0x000500bc,0x0000003f,0x00000568,0x00000554,0x00000053,0x000300f7,
0x00000572,0x00000000,0x000400fa,0x00000568,0x00000569,0x0000056c,0x000200f8,0x00000569,
0x00050085,0x00000006,0x0000056b,0x00000554,0x00000044,0x000200f9,0x00000572,0x000200f8,
0x0000056c,0x0006000c,0x00000006,0x0000056e,0x00000001,0x00000004,0x00000554,0x0007000c,
0x00000006,0x0000056f,0x00000001,0x0000001a,0x0000056e,0x0000005c,0x0008000c,0x00000006,
0x00000571,0x00000001,0x00000032,0x0000056f,0x0000004b,0x00000681,0x000200f9,0x00000572,
0x000200f8,0x00000572,0x000700f5,0x00000006,0x0000069e,0x0000056b,0x00000569,0x00000571,
0x0000056c,0x00050051,0x00000006,0x00000558,0x0000054d,0x00000001,0x000500bc,0x0000003f,
0x00000577,0x00000558,0x00000053,0x000300f7,0x00000581,0x00000000,0x000400fa,0x00000577,
0x00000578,0x0000057b,0x000200f8,0x00000578,0x00050085,0x00000006,0x0000057a,0x00000558,
0x00000044,0x000200f9,0x00000581,0x000200f8,0x0000057b,0x0006000c,0x00000006,0x0000057d,
0x00000001,0x00000004,0x00000558,0x0007000c,0x00000006,0x0000057e,0x00000001,0x0000001a,
0x0000057d,0x0000005c,0x0008000c,0x00000006,0x00000580,0x00000001,0x00000032,0x0000057e,
0x0000004b,0x00000681,0x000200f9,0x00000581,0x000200f8,0x00000581,0x000700f5,0x00000006,
0x000006a0,0x0000057a,0x00000578,0x00000580,0x0000057b,0x00050051,0x00000006,0x0000055c,
0x0000054d,0x00000002,0x000500bc,0x0000003f,0x00000586,0x0000055c,0x00000053,0x000300f7,
0x00000590,0x00000000,0x000400fa,0x00000586,0x00000587,0x0000058a,0x000200f8,0x00000587,
0x00050085,0x00000006,0x00000589,0x0000055c,0x00000044,0x000200f9,0x00000590,0x000200f8,
0x0000058a,0x0006000c,0x00000006,0x0000058c,0x00000001,0x00000004,0x0000055c,0x0007000c,
0x00000006,0x0000058d,0x00000001,0x0000001a,0x0000058c,0x0000005c,0x0008000c,0x00000006,
0x0000058f,0x00000001,0x00000032,0x0000058d,0x0000004b,0x00000681,0x000200f9,0x00000590,
0x000200f8,0x00000590,0x000700f5,0x00000006,0x000006a2,0x00000589,0x00000587,0x0000058f,
0x0000058a,0x00060050,0x0000000f,0x000006b8,0x0000069e,0x000006a0,0x000006a2,0x0008000c,
0x0000000f,0x00000562,0x00000001,0x0000002b,0x000006b8,0x0000006d,0x00000677,0x000200f9,
0x00000563,0x000200f8,0x00000563,0x000700f5,0x0000000f,0x000006a4,0x0000054d,0x000002d8,
0x00000562,0x00000590,0x00050051,0x00000006,0x000002dd,0x000006a4,0x00000000,0x00050051,
0x00000006,0x000002df,0x000006a4,0x00000001,0x00050051,0x00000006,0x000002e1,0x000006a4,
0x00000002,0x00050051,0x00000006,0x000002e3,0x00000692,0x00000003,0x00070050,0x0000001a,
0x0000067c,0x000002dd,0x000002df,0x000002e1,0x000002e3,0x000200f9,0x00000303,0x000200f8,
0x000002e5,0x00050041,0x00000086,0x000002e6,0x00000083,0x000000a0,0x0004003d,0x00000006,
0x000002e7,0x000002e6,0x000500b4,0x0000003f,0x000002e8,0x000002e7,0x00000196,0x000300f7,
0x00000302,0x00000000,0x000400fa,0x000002e8,0x000002e9,0x000002ff,0x000200f8,0x000002e9,
0x0008004f,0x0000000f,0x000002eb,0x00000692,0x00000692,0x00000000,0x00000001,0x00000002,
0x00050090,0x0000000f,0x000002ec,0x000002eb,0x000000e9,0x00050051,0x00000006,0x000002ee,
0x000002ec,0x00000000,0x00060052,0x0000001a,0x0000064c,0x000002ee,0x000006ba,0x00000000,
0x00050051,0x00000006,0x000002f0,0x000002ec,0x00000001,0x00060052,0x0000001a,0x0000064e,
0x000002f0,0x0000064c,0x00000001,0x00050051,0x00000006,0x000002f2,0x000002ec,0x00000002,
0x00060052,0x0000001a,0x00000650,0x000002f2,0x0000064e,0x00000002,0x0008004f,0x0000000f,
0x000002f4,0x00000650,0x00000650,0x00000000,0x00000001,0x00000002,0x00050041,0x00000086,
0x00000599,0x00000083,0x000001c4,0x0004003d,0x00000006,0x0000059a,0x00000599,0x0005008e,
0x0000000f,0x0000059b,0x000002f4,0x0000059a,0x00050041,0x00000086,0x0000059c,0x00000083,
0x000001d4,0x0004003d,0x00000006,0x0000059d,0x0000059c,0x000500b7,0x0000003f,0x0000059e,
0x0000059d,0x0000006c,0x000400a8,0x0000003f,0x0000059f,0x0000059e,0x000300f7,0x000005b1,
0x00000000,0x000400fa,0x0000059f,0x000005a0,0x000005b1,0x000200f8,0x000005a0,0x00050051,
0x00000006,0x000005a2,0x0000059b,0x00000000,0x000500bc,0x0000003f,0x000005b6,0x000005a2,
0x00000053,0x000300f7,0x000005c0,0x00000000,0x000400fa,0x000005b6,0x000005b7,0x000005ba,
0x000200f8,0x000005b7,0x00050085,0x00000006,0x000005b9,0x000005a2,0x00000044,0x000200f9,
0x000005c0,0x000200f8,0x000005ba,0x0006000c,0x00000006,0x000005bc,0x00000001,0x00000004,
0x000005a2,0x0007000c,0x00000006,0x000005bd,0x00000001,0x0000001a,0x000005bc,0x0000005c,
0x0008000c,0x00000006,0x000005bf,0x00000001,0x00000032,0x000005bd,0x0000004b,0x00000681,
0x000200f9,0x000005c0,0x000200f8,0x000005c0,0x000700f5,0x00000006,0x00000693,0x000005b9,
0x000005b7,0x000005bf,0x000005ba,0x00050051,0x00000006,0x000005a6,0x0000059b,0x00000001,
0x000500bc,0x0000003f,0x000005c5,0x000005a6,0x00000053,0x000300f7,0x000005cf,0x00000000,
0x000400fa,0x000005c5,0x000005c6,0x000005c9,0x000200f8,0x000005c6,0x00050085,0x00000006,
0x000005c8,0x000005a6,0x00000044,0x000200f9,0x000005cf,0x000200f8,0x000005c9,0x0006000c,
0x00000006,0x000005cb,0x00000001,0x00000004,0x000005a6,0x0007000c,0x00000006,0x000005cc,
0x00000001,0x0000001a,0x000005cb,0x0000005c,0x0008000c,0x00000006,0x000005ce,0x00000001,
0x00000032,0x000005cc,0x0000004b,0x00000681,0x000200f9,0x000005cf,0x000200f8,0x000005cf,
0x000700f5,0x00000006,0x00000695,0x000005c8,0x000005c6,0x000005ce,0x000005c9,0x00050051,
0x00000006,0x000005aa,0x0000059b,0x00000002,0x000500bc,0x0000003f,0x000005d4,0x000005aa,
0x00000053,0x000300f7,0x000005de,0x00000000,0x000400fa,0x000005d4,0x000005d5,0x000005d8,
0x000200f8,0x000005d5,0x00050085,0x00000006,0x000005d7,0x000005aa,0x00000044,0x000200f9,
0x000005de,0x000200f8,0x000005d8,0x0006000c,0x00000006,0x000005da,0x00000001,0x00000004,
0x000005aa,0x0007000c,0x00000006,0x000005db,0x00000001,0x0000001a,0x000005da,0x0000005c,
0x0008000c,0x00000006,0x000005dd,0x00000001,0x00000032,0x000005db,0x0000004b,0x00000681,
0x000200f9,0x000005de,0x000200f8,0x000005de,0x000700f5,0x00000006,0x00000697,0x000005d7,
0x000005d5,0x000005dd,0x000005d8,0x00060050,0x0000000f,0x000006b7,0x00000693,0x00000695,
0x00000697,0x0008000c,0x0000000f,0x000005b0,0x00000001,0x0000002b,0x000006b7,0x0000006d,
0x00000677,0x000200f9,0x000005b1,0x000200f8,0x000005b1,0x000700f5,0x0000000f,0x00000699,
0x0000059b,0x000002e9,0x000005b0,0x000005de,0x00050051,0x00000006,0x000002f7,0x00000699,
0x00000000,0x00050051,0x00000006,0x000002f9,0x00000699,0x00000001,0x00050051,0x00000006,
0x000002fb,0x00000699,0x00000002,0x00050051,0x00000006,0x000002fd,0x00000692,0x00000003,
0x00070050,0x0000001a,0x00000678,0x000002f7,0x000002f9,0x000002fb,0x000002fd,0x000200f9,
0x00000302,0x000200f8,0x000002ff,0x0008004f,0x0000000f,0x000005e4,0x00000692,0x00000692,
0x00000000,0x00000001,0x00000002,0x00050041,0x00000086,0x000005e5,0x00000083,0x000001c4,
0x0004003d,0x00000006,0x000005e6,0x000005e5,0x0005008e,0x0000000f,0x000005e7,0x000005e4,
0x000005e6,0x00050051,0x00000006,0x000005e9,0x000005e7,0x00000000,0x00050051,0x00000006,
0x000005eb,0x000005e7,0x00000001,0x00050051,0x00000006,0x000005ed,0x000005e7,0x00000002,
0x00050051,0x00000006,0x000005ef,0x00000692,0x00000003,0x00070050,0x0000001a,0x00000673,
0x000005e9,0x000005eb,0x000005ed,0x000005ef,0x000200f9,0x00000302,0x000200f8,0x00000302,
0x000700f5,0x0000001a,0x000006b6,0x00000678,0x000005b1,0x00000673,0x000002ff,0x000200f9,
0x00000303,0x000200f8,0x00000303,0x000700f5,0x0000001a,0x000006b5,0x0000067c,0x00000563,
0x000006b6,0x00000302,0x000200f9,0x00000304,0x000200f8,0x00000304,0x000700f5,0x0000001a,
0x000006b4,0x0000067f,0x00000511,0x000006b5,0x00000303,0x00050085,0x0000001a,0x00000308,
0x000006b4,0x0000028f,0x0003003e,0x00000292,0x00000308,0x000100fd,0x00010038
};

View File

@@ -1,7 +1,7 @@
// 1113.1.1
#pragma once
const uint32_t VULKAN_PixelShader_Colors[] = {
0x07230203,0x00010000,0x0008000b,0x000000a3,0x00000000,0x00020011,0x00000001,0x0006000b,
0x07230203,0x00010000,0x0008000b,0x000000a5,0x00000000,0x00020011,0x00000001,0x0006000b,
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
0x0007000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x00000049,0x0000004d,0x00030010,
0x00000004,0x00000007,0x00030003,0x00000005,0x000001f4,0x00040005,0x00000004,0x6e69616d,
@@ -31,13 +31,13 @@ const uint32_t VULKAN_PixelShader_Colors[] = {
0x0004002b,0x0000001b,0x0000001c,0x00000003,0x00040020,0x0000001d,0x00000002,0x00000006,
0x0004002b,0x00000006,0x00000033,0x3f800000,0x00040020,0x0000003f,0x00000001,0x00000007,
0x0004003b,0x0000003f,0x00000049,0x00000001,0x00040020,0x0000004c,0x00000003,0x00000007,
0x0004003b,0x0000004c,0x0000004d,0x00000003,0x0006002c,0x00000015,0x000000a1,0x00000033,
0x0004003b,0x0000004c,0x0000004d,0x00000003,0x0006002c,0x00000015,0x000000a3,0x00000033,
0x00000033,0x00000033,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,
0x00000005,0x0004003d,0x00000007,0x0000004a,0x00000049,0x00050041,0x0000001d,0x00000080,
0x0000001a,0x0000001c,0x0004003d,0x00000006,0x00000081,0x00000080,0x0005008e,0x00000015,
0x00000082,0x000000a1,0x00000081,0x00050051,0x00000006,0x00000084,0x00000082,0x00000000,
0x00050051,0x00000006,0x00000086,0x00000082,0x00000001,0x00050051,0x00000006,0x00000088,
0x00000082,0x00000002,0x00070050,0x00000007,0x000000a2,0x00000084,0x00000086,0x00000088,
0x00000033,0x00050085,0x00000007,0x0000007a,0x000000a2,0x0000004a,0x0003003e,0x0000004d,
0x0000007a,0x000100fd,0x00010038
0x00000005,0x0004003d,0x00000007,0x0000004a,0x00000049,0x00050041,0x0000001d,0x00000082,
0x0000001a,0x0000001c,0x0004003d,0x00000006,0x00000083,0x00000082,0x0005008e,0x00000015,
0x00000084,0x000000a3,0x00000083,0x00050051,0x00000006,0x00000086,0x00000084,0x00000000,
0x00050051,0x00000006,0x00000088,0x00000084,0x00000001,0x00050051,0x00000006,0x0000008a,
0x00000084,0x00000002,0x00070050,0x00000007,0x000000a4,0x00000086,0x00000088,0x0000008a,
0x00000033,0x00050085,0x00000007,0x0000007c,0x000000a4,0x0000004a,0x0003003e,0x0000004d,
0x0000007c,0x000100fd,0x00010038
};

View File

@@ -19,7 +19,9 @@ static const float TONEMAP_CHROME = 2;
static const float TEXTURETYPE_NONE = 0;
static const float TEXTURETYPE_RGB = 1;
static const float TEXTURETYPE_RGB_PIXELART = 2;
static const float TEXTURETYPE_PALETTE = 3;
static const float TEXTURETYPE_PALETTE_NEAREST = 3;
static const float TEXTURETYPE_PALETTE_LINEAR = 4;
static const float TEXTURETYPE_PALETTE_PIXELART = 5;
static const float INPUTTYPE_UNSPECIFIED = 0;
static const float INPUTTYPE_SRGB = 1;
@@ -109,21 +111,48 @@ float3 ApplyTonemap(float3 v)
return v;
}
float2 GetPixelArtUV(PixelShaderInput input)
float4 SamplePaletteNearest(float2 uv)
{
float index = texture0.Sample(sampler0, uv).r * 255;
return texture1.Sample(sampler1, float2((index + 0.5) / 256, 0.5));
}
// Implementation with thanks from bgolus:
// https://discussions.unity.com/t/how-to-make-data-shader-support-bilinear-trilinear/598639/8
float4 SamplePaletteLinear(float2 uv)
{
// scale & offset uvs to integer values at texel centers
float2 uv_texels = uv * texel_size.zw + 0.5;
// get uvs for the center of the 4 surrounding texels by flooring
float4 uv_min_max = float4((floor(uv_texels) - 0.5) * texel_size.xy, (floor(uv_texels) + 0.5) * texel_size.xy);
// blend factor
float2 uv_frac = frac(uv_texels);
// sample all 4 texels
float4 texelA = SamplePaletteNearest(uv_min_max.xy);
float4 texelB = SamplePaletteNearest(uv_min_max.xw);
float4 texelC = SamplePaletteNearest(uv_min_max.zy);
float4 texelD = SamplePaletteNearest(uv_min_max.zw);
// bilinear interpolation
return lerp(lerp(texelA, texelB, uv_frac.y), lerp(texelC, texelD, uv_frac.y), uv_frac.x);
}
float2 GetPixelArtUV(float2 uv)
{
// box filter size in texel units
float2 boxSize = clamp(fwidth(input.tex) * texel_size.zw, 1e-5, 1);
float2 boxSize = clamp(fwidth(uv) * texel_size.zw, 1e-5, 1);
// scale uv by texture size to get texel coordinate
float2 tx = input.tex * texel_size.zw - 0.5 * boxSize;
float2 tx = uv * texel_size.zw - 0.5 * boxSize;
// compute offset for pixel-sized box filter
float2 txOffset = smoothstep(1 - boxSize, 1, frac(tx));
// compute bilinear sample uv coordinates
float2 uv = (floor(tx) + 0.5 + txOffset) * texel_size.xy;
return uv;
return (floor(tx) + 0.5 + txOffset) * texel_size.xy;
}
float4 GetInputColor(PixelShaderInput input)
@@ -133,16 +162,20 @@ float4 GetInputColor(PixelShaderInput input)
if (texture_type == TEXTURETYPE_RGB) {
rgba = texture0.Sample(sampler0, input.tex);
} else if (texture_type == TEXTURETYPE_RGB_PIXELART) {
float2 uv = GetPixelArtUV(input);
float2 uv = GetPixelArtUV(input.tex);
rgba = texture0.SampleGrad(sampler0, uv, ddx(input.tex), ddy(input.tex));
} else if (texture_type == TEXTURETYPE_PALETTE) {
float index = texture0.Sample(sampler0, input.tex).r * 255;
rgba = texture1.Sample(sampler1, float2((index + 0.5) / 256, 0.5));
} else if (texture_type == TEXTURETYPE_PALETTE_NEAREST) {
rgba = SamplePaletteNearest(input.tex);
} else if (texture_type == TEXTURETYPE_PALETTE_LINEAR) {
rgba = SamplePaletteLinear(input.tex);
} else if (texture_type == TEXTURETYPE_PALETTE_PIXELART) {
float2 uv = GetPixelArtUV(input.tex);
rgba = SamplePaletteLinear(uv);
} else {
// Error!
rgba.r = 1.0;
rgba.g = 0.0;
rgba.b = 0.0;
rgba.b = 1.0;
rgba.a = 1.0;
}
return rgba;

View File

@@ -1,7 +1,7 @@
// 1113.1.1
#pragma once
const uint32_t VULKAN_PixelShader_Textures[] = {
0x07230203,0x00010000,0x0008000b,0x000000aa,0x00000000,0x00020011,0x00000001,0x0006000b,
0x07230203,0x00010000,0x0008000b,0x000000ac,0x00000000,0x00020011,0x00000001,0x0006000b,
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
0x0008000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x0000004c,0x0000004f,0x00000053,
0x00030010,0x00000004,0x00000007,0x00030003,0x00000005,0x000001f4,0x00040005,0x00000004,
@@ -40,13 +40,13 @@ const uint32_t VULKAN_PixelShader_Textures[] = {
0x00000052,0x00000003,0x00000007,0x0004003b,0x00000052,0x00000053,0x00000003,0x00050036,
0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003d,0x0000000d,
0x0000004d,0x0000004c,0x0004003d,0x00000007,0x00000050,0x0000004f,0x0004003d,0x00000034,
0x0000007a,0x00000036,0x00050057,0x00000007,0x0000007d,0x0000007a,0x0000004d,0x0008004f,
0x00000015,0x00000086,0x0000007d,0x0000007d,0x00000000,0x00000001,0x00000002,0x00050041,
0x0000001d,0x00000087,0x0000001a,0x0000001c,0x0004003d,0x00000006,0x00000088,0x00000087,
0x0005008e,0x00000015,0x00000089,0x00000086,0x00000088,0x00050051,0x00000006,0x0000008b,
0x00000089,0x00000000,0x00050051,0x00000006,0x0000008d,0x00000089,0x00000001,0x00050051,
0x00000006,0x0000008f,0x00000089,0x00000002,0x00050051,0x00000006,0x00000091,0x0000007d,
0x00000003,0x00070050,0x00000007,0x000000a9,0x0000008b,0x0000008d,0x0000008f,0x00000091,
0x00050085,0x00000007,0x00000081,0x000000a9,0x00000050,0x0003003e,0x00000053,0x00000081,
0x0000007c,0x00000036,0x00050057,0x00000007,0x0000007f,0x0000007c,0x0000004d,0x0008004f,
0x00000015,0x00000088,0x0000007f,0x0000007f,0x00000000,0x00000001,0x00000002,0x00050041,
0x0000001d,0x00000089,0x0000001a,0x0000001c,0x0004003d,0x00000006,0x0000008a,0x00000089,
0x0005008e,0x00000015,0x0000008b,0x00000088,0x0000008a,0x00050051,0x00000006,0x0000008d,
0x0000008b,0x00000000,0x00050051,0x00000006,0x0000008f,0x0000008b,0x00000001,0x00050051,
0x00000006,0x00000091,0x0000008b,0x00000002,0x00050051,0x00000006,0x00000093,0x0000007f,
0x00000003,0x00070050,0x00000007,0x000000ab,0x0000008d,0x0000008f,0x00000091,0x00000093,
0x00050085,0x00000007,0x00000083,0x000000ab,0x00000050,0x0003003e,0x00000053,0x00000083,
0x000100fd,0x00010038
};