(Vulkan) Add Snowflake XMB shader pipeline (VIDEO_SHADER_MENU_6)

The Snowflake effect was added to D3D11, GL, and GX2 but was never
ported to Vulkan. VIDEO_SHADER_MENU_6 was completely unhandled —
it fell through to the default textured draw path, rendering nothing.

Changes:
- New pipeline_snowflake.frag / .frag.inc — SPIR-V fragment shader
  ported from the GL version (TheTimJames, shadertoy.com/view/Md2GRw).
  Uses highp precision (mediump lacks the mantissa bits needed for the
  fract(sin(dot()*43758)) pseudo-random function). Y-flip handled via
  uv.y *= constants.yflip, matching the Bokeh shader convention.
- vulkan.c: display pipeline array expanded from [8*2] to [9*2] to
  accommodate the new shader pair at indices 16-17.
- to_menu_pipeline: added VIDEO_SHADER_MENU_6 → index 16.
- gfx_display_vk_draw_pipeline: added VIDEO_SHADER_MENU_6 to the
  fullscreen quad case (MENU_3/4/5/6). yflip set to -1.0 for both
  MENU_5 (Bokeh) and MENU_6 (Snowflake) since both use gl_FragCoord.
- gfx_display_vk_draw: added VIDEO_SHADER_MENU_6 to the shader
  pipeline draw case.
This commit is contained in:
U-DESKTOP-SPFP6AQ\twistedtechre committed 2026-04-15 13:13:23 +02:00
1 parent 3212141ca7
commit 935c2f2689
3 files changed
+453 -3

No files matched your search

+22 -3
View File
@@ -293,7 +293,7 @@ typedef struct vk
struct
{
VkPipeline pipelines[8 * 2];
VkPipeline pipelines[9 * 2];
struct vk_texture blank_texture;
} display;
@@ -1745,6 +1745,8 @@ static unsigned to_menu_pipeline(
return 12 + (type == GFX_DISPLAY_PRIM_TRIANGLESTRIP);
case VIDEO_SHADER_MENU_5:
return 14 + (type == GFX_DISPLAY_PRIM_TRIANGLESTRIP);
case VIDEO_SHADER_MENU_6:
return 16 + (type == GFX_DISPLAY_PRIM_TRIANGLESTRIP);
default:
break;
}
@@ -1794,10 +1796,11 @@ static void gfx_display_vk_draw_pipeline(
}
break;
/* Snow simple */
/* Snow simple, Snow, Bokeh, Snowflake */
case VIDEO_SHADER_MENU_3:
case VIDEO_SHADER_MENU_4:
case VIDEO_SHADER_MENU_5:
case VIDEO_SHADER_MENU_6:
draw->backend_data = ubo_scratch_data;
draw->backend_data_size = sizeof(math_matrix_4x4)
+ 4 * sizeof(float);
@@ -1811,7 +1814,8 @@ static void gfx_display_vk_draw_pipeline(
sizeof(output_size));
/* Shader uses FragCoord, need to fix up. */
if (draw->pipeline_id == VIDEO_SHADER_MENU_5)
if ( draw->pipeline_id == VIDEO_SHADER_MENU_5
|| draw->pipeline_id == VIDEO_SHADER_MENU_6)
yflip = -1.0f;
memcpy(ubo_scratch_data + sizeof(math_matrix_4x4)
@@ -1901,6 +1905,7 @@ static void gfx_display_vk_draw(gfx_display_ctx_draw_t *draw,
case VIDEO_SHADER_MENU_3:
case VIDEO_SHADER_MENU_4:
case VIDEO_SHADER_MENU_5:
case VIDEO_SHADER_MENU_6:
{
struct vk_draw_triangles call;
@@ -3205,6 +3210,10 @@ static void vulkan_init_pipelines(vk_t *vk)
#include "vulkan_shaders/pipeline_bokeh.frag.inc"
;
static const uint32_t pipeline_snowflake_frag[] =
#include "vulkan_shaders/pipeline_snowflake.frag.inc"
;
int i;
VkPipelineMultisampleStateCreateInfo multisample;
VkPipelineInputAssemblyStateCreateInfo input_assembly = {
@@ -3461,6 +3470,11 @@ static void vulkan_init_pipelines(vk_t *vk)
module_info.pCode = alpha_blend_vert;
break;
case 5:
module_info.codeSize = sizeof(alpha_blend_vert);
module_info.pCode = alpha_blend_vert;
break;
default:
break;
}
@@ -3497,6 +3511,11 @@ static void vulkan_init_pipelines(vk_t *vk)
module_info.pCode = pipeline_bokeh_frag;
break;
case 5:
module_info.codeSize = sizeof(pipeline_snowflake_frag);
module_info.pCode = pipeline_snowflake_frag;
break;
default:
break;
}
@@ -0,0 +1,74 @@
#version 310 es
/* credits to: TheTimJames
https://www.shadertoy.com/view/Md2GRw
*/
precision highp float;
layout(std140, set = 0, binding = 0) uniform UBO
{
mat4 MVP;
vec2 OutputSize;
float time;
float yflip;
} constants;
layout(location = 0) out vec4 FragColor;
float rand(vec2 co)
{
return fract(sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453);
}
float rand_float(float x)
{
return rand(vec2(x, 1.0));
}
float snow(vec3 pos, vec2 uv, float o)
{
vec2 d = (pos.xy - uv);
float a = atan(d.y, d.x) + sin(constants.time * 1.0 + o) * 10.0;
float dist = d.x * d.x + d.y * d.y;
if (dist < pos.z / 400.0)
{
float col = 0.0;
if (sin(a * 8.0) < 0.0)
col = 1.0;
if (dist < pos.z / 800.0)
col += 1.0;
return col * pos.z;
}
return 0.0;
}
float col(vec2 c)
{
float color = 0.0;
for (int i = 1; i < 15; i++)
{
float o = rand_float(float(i) / 3.0) * 15.0;
float z = rand_float(float(i) + 13.0);
float x = 1.8 - (3.6) * (rand_float(floor((constants.time * ((z + 1.0) / 2.0) + o) / 2.0)) + sin(constants.time * o / 1000.0) / 10.0);
float y = 1.0 - mod((constants.time * ((z + 1.0) / 2.0)) + o, 2.0);
color += snow(vec3(x, y, z), c, o);
}
return color;
}
void main(void)
{
vec2 uv = gl_FragCoord.xy / constants.OutputSize.xy;
uv = uv * 2.0 - 1.0;
uv.y *= constants.yflip;
vec2 p = uv;
p.x *= constants.OutputSize.x / constants.OutputSize.y;
float c = col(p);
FragColor = vec4(c, c, c, c);
}
@@ -0,0 +1,357 @@
{0x07230203,0x00010000,0x0008000b,0x000000f8,
0x00000000,0x00020011,0x00000001,0x0006000b,
0x00000001,0x4c534c47,0x6474732e,0x3035342e,
0x00000000,0x0003000e,0x00000000,0x00000001,
0x0007000f,0x00000004,0x00000004,0x6e69616d,
0x00000000,0x000000d3,0x000000f5,0x00030010,
0x00000004,0x00000007,0x00030003,0x00000001,
0x00000136,0x00040005,0x00000004,0x6e69616d,
0x00000000,0x00050005,0x0000000b,0x646e6172,
0x32667628,0x0000003b,0x00030005,0x0000000a,
0x00006f63,0x00060005,0x00000010,0x646e6172,
0x6f6c665f,0x66287461,0x00003b31,0x00030005,
0x0000000f,0x00000078,0x00070005,0x00000018,
0x776f6e73,0x33667628,0x3266763b,0x3b31663b,
0x00000000,0x00030005,0x00000015,0x00736f70,
0x00030005,0x00000016,0x00007675,0x00030005,
0x00000017,0x0000006f,0x00050005,0x0000001b,
0x286c6f63,0x3b326676,0x00000000,0x00030005,
0x0000001a,0x00000063,0x00040005,0x0000002b,
0x61726170,0x0000006d,0x00030005,0x0000002f,
0x00000064,0x00030005,0x00000034,0x00000061,
0x00030005,0x0000003f,0x004f4255,0x00040006,
0x0000003f,0x00000000,0x0050564d,0x00060006,
0x0000003f,0x00000001,0x7074754f,0x69537475,
0x0000657a,0x00050006,0x0000003f,0x00000002,
0x656d6974,0x00000000,0x00050006,0x0000003f,
0x00000003,0x696c6679,0x00000070,0x00050005,
0x00000041,0x736e6f63,0x746e6174,0x00000073,
0x00040005,0x0000004e,0x74736964,0x00000000,
0x00030005,0x00000064,0x006c6f63,0x00040005,
0x0000007e,0x6f6c6f63,0x00000072,0x00030005,
0x00000080,0x00000069,0x00030005,0x0000008a,
0x0000006f,0x00040005,0x0000008f,0x61726170,
0x0000006d,0x00030005,0x00000093,0x0000007a,
0x00040005,0x00000098,0x61726170,0x0000006d,
0x00030005,0x0000009a,0x00000078,0x00040005,
0x000000a8,0x61726170,0x0000006d,0x00030005,
0x000000b5,0x00000079,0x00040005,0x000000c4,
0x61726170,0x0000006d,0x00040005,0x000000c5,
0x61726170,0x0000006d,0x00040005,0x000000c7,
0x61726170,0x0000006d,0x00030005,0x000000d1,
0x00007675,0x00060005,0x000000d3,0x465f6c67,
0x43676172,0x64726f6f,0x00000000,0x00030005,
0x000000e5,0x00000070,0x00030005,0x000000f0,
0x00000063,0x00040005,0x000000f1,0x61726170,
0x0000006d,0x00050005,0x000000f5,0x67617246,
0x6f6c6f43,0x00000072,0x00030047,0x0000003f,
0x00000002,0x00040048,0x0000003f,0x00000000,
0x00000005,0x00050048,0x0000003f,0x00000000,
0x00000007,0x00000010,0x00050048,0x0000003f,
0x00000000,0x00000023,0x00000000,0x00050048,
0x0000003f,0x00000001,0x00000023,0x00000040,
0x00050048,0x0000003f,0x00000002,0x00000023,
0x00000048,0x00050048,0x0000003f,0x00000003,
0x00000023,0x0000004c,0x00040047,0x00000041,
0x00000021,0x00000000,0x00040047,0x00000041,
0x00000022,0x00000000,0x00030047,0x00000080,
0x00000000,0x00030047,0x00000087,0x00000000,
0x00030047,0x0000008b,0x00000000,0x00030047,
0x0000008c,0x00000000,0x00030047,0x0000008e,
0x00000000,0x00030047,0x00000094,0x00000000,
0x00030047,0x00000095,0x00000000,0x00030047,
0x00000097,0x00000000,0x00030047,0x000000cc,
0x00000000,0x00030047,0x000000cd,0x00000000,
0x00040047,0x000000d3,0x0000000b,0x0000000f,
0x00040047,0x000000f5,0x0000001e,0x00000000,
0x00020013,0x00000002,0x00030021,0x00000003,
0x00000002,0x00030016,0x00000006,0x00000020,
0x00040017,0x00000007,0x00000006,0x00000002,
0x00040020,0x00000008,0x00000007,0x00000007,
0x00040021,0x00000009,0x00000006,0x00000008,
0x00040020,0x0000000d,0x00000007,0x00000006,
0x00040021,0x0000000e,0x00000006,0x0000000d,
0x00040017,0x00000012,0x00000006,0x00000003,
0x00040020,0x00000013,0x00000007,0x00000012,
0x00060021,0x00000014,0x00000006,0x00000013,
0x00000008,0x0000000d,0x0004002b,0x00000006,
0x0000001e,0x414fd639,0x0004002b,0x00000006,
0x0000001f,0x429c774c,0x0005002c,0x00000007,
0x00000020,0x0000001e,0x0000001f,0x0004002b,
0x00000006,0x00000023,0x472aee8c,0x0004002b,
0x00000006,0x00000029,0x3f800000,0x00040015,
0x00000035,0x00000020,0x00000000,0x0004002b,
0x00000035,0x00000036,0x00000001,0x0004002b,
0x00000035,0x00000039,0x00000000,0x00040017,
0x0000003d,0x00000006,0x00000004,0x00040018,
0x0000003e,0x0000003d,0x00000004,0x0006001e,
0x0000003f,0x0000003e,0x00000007,0x00000006,
0x00000006,0x00040020,0x00000040,0x00000002,
0x0000003f,0x0004003b,0x00000040,0x00000041,
0x00000002,0x00040015,0x00000042,0x00000020,
0x00000001,0x0004002b,0x00000042,0x00000043,
0x00000002,0x00040020,0x00000044,0x00000002,
0x00000006,0x0004002b,0x00000006,0x0000004b,
0x41200000,0x0004002b,0x00000035,0x0000005b,
0x00000002,0x0004002b,0x00000006,0x0000005e,
0x43c80000,0x00020014,0x00000060,0x0004002b,
0x00000006,0x00000065,0x00000000,0x0004002b,
0x00000006,0x00000067,0x41000000,0x0004002b,
0x00000006,0x00000070,0x44480000,0x00040020,
0x0000007f,0x00000007,0x00000042,0x0004002b,
0x00000042,0x00000081,0x00000001,0x0004002b,
0x00000042,0x00000088,0x0000000f,0x0004002b,
0x00000006,0x0000008d,0x40400000,0x0004002b,
0x00000006,0x00000091,0x41700000,0x0004002b,
0x00000006,0x00000096,0x41500000,0x0004002b,
0x00000006,0x0000009b,0x3fe66666,0x0004002b,
0x00000006,0x0000009c,0x40666666,0x0004002b,
0x00000006,0x000000a1,0x40000000,0x0004002b,
0x00000006,0x000000ae,0x447a0000,0x00040020,
0x000000d2,0x00000001,0x0000003d,0x0004003b,
0x000000d2,0x000000d3,0x00000001,0x00040020,
0x000000d6,0x00000002,0x00000007,0x0004002b,
0x00000042,0x000000de,0x00000003,0x00040020,
0x000000f4,0x00000003,0x0000003d,0x0004003b,
0x000000f4,0x000000f5,0x00000003,0x00050036,
0x00000002,0x00000004,0x00000000,0x00000003,
0x000200f8,0x00000005,0x0004003b,0x00000008,
0x000000d1,0x00000007,0x0004003b,0x00000008,
0x000000e5,0x00000007,0x0004003b,0x0000000d,
0x000000f0,0x00000007,0x0004003b,0x00000008,
0x000000f1,0x00000007,0x0004003d,0x0000003d,
0x000000d4,0x000000d3,0x0007004f,0x00000007,
0x000000d5,0x000000d4,0x000000d4,0x00000000,
0x00000001,0x00050041,0x000000d6,0x000000d7,
0x00000041,0x00000081,0x0004003d,0x00000007,
0x000000d8,0x000000d7,0x00050088,0x00000007,
0x000000d9,0x000000d5,0x000000d8,0x0003003e,
0x000000d1,0x000000d9,0x0004003d,0x00000007,
0x000000da,0x000000d1,0x0005008e,0x00000007,
0x000000db,0x000000da,0x000000a1,0x00050050,
0x00000007,0x000000dc,0x00000029,0x00000029,
0x00050083,0x00000007,0x000000dd,0x000000db,
0x000000dc,0x0003003e,0x000000d1,0x000000dd,
0x00050041,0x00000044,0x000000df,0x00000041,
0x000000de,0x0004003d,0x00000006,0x000000e0,
0x000000df,0x00050041,0x0000000d,0x000000e1,
0x000000d1,0x00000036,0x0004003d,0x00000006,
0x000000e2,0x000000e1,0x00050085,0x00000006,
0x000000e3,0x000000e2,0x000000e0,0x00050041,
0x0000000d,0x000000e4,0x000000d1,0x00000036,
0x0003003e,0x000000e4,0x000000e3,0x0004003d,
0x00000007,0x000000e6,0x000000d1,0x0003003e,
0x000000e5,0x000000e6,0x00060041,0x00000044,
0x000000e7,0x00000041,0x00000081,0x00000039,
0x0004003d,0x00000006,0x000000e8,0x000000e7,
0x00060041,0x00000044,0x000000e9,0x00000041,
0x00000081,0x00000036,0x0004003d,0x00000006,
0x000000ea,0x000000e9,0x00050088,0x00000006,
0x000000eb,0x000000e8,0x000000ea,0x00050041,
0x0000000d,0x000000ec,0x000000e5,0x00000039,
0x0004003d,0x00000006,0x000000ed,0x000000ec,
0x00050085,0x00000006,0x000000ee,0x000000ed,
0x000000eb,0x00050041,0x0000000d,0x000000ef,
0x000000e5,0x00000039,0x0003003e,0x000000ef,
0x000000ee,0x0004003d,0x00000007,0x000000f2,
0x000000e5,0x0003003e,0x000000f1,0x000000f2,
0x00050039,0x00000006,0x000000f3,0x0000001b,
0x000000f1,0x0003003e,0x000000f0,0x000000f3,
0x0004003d,0x00000006,0x000000f6,0x000000f0,
0x00070050,0x0000003d,0x000000f7,0x000000f6,
0x000000f6,0x000000f6,0x000000f6,0x0003003e,
0x000000f5,0x000000f7,0x000100fd,0x00010038,
0x00050036,0x00000006,0x0000000b,0x00000000,
0x00000009,0x00030037,0x00000008,0x0000000a,
0x000200f8,0x0000000c,0x0004003d,0x00000007,
0x0000001d,0x0000000a,0x00050094,0x00000006,
0x00000021,0x0000001d,0x00000020,0x0006000c,
0x00000006,0x00000022,0x00000001,0x0000000d,
0x00000021,0x00050085,0x00000006,0x00000024,
0x00000022,0x00000023,0x0006000c,0x00000006,
0x00000025,0x00000001,0x0000000a,0x00000024,
0x000200fe,0x00000025,0x00010038,0x00050036,
0x00000006,0x00000010,0x00000000,0x0000000e,
0x00030037,0x0000000d,0x0000000f,0x000200f8,
0x00000011,0x0004003b,0x00000008,0x0000002b,
0x00000007,0x0004003d,0x00000006,0x00000028,
0x0000000f,0x00050050,0x00000007,0x0000002a,
0x00000028,0x00000029,0x0003003e,0x0000002b,
0x0000002a,0x00050039,0x00000006,0x0000002c,
0x0000000b,0x0000002b,0x000200fe,0x0000002c,
0x00010038,0x00050036,0x00000006,0x00000018,
0x00000000,0x00000014,0x00030037,0x00000013,
0x00000015,0x00030037,0x00000008,0x00000016,
0x00030037,0x0000000d,0x00000017,0x000200f8,
0x00000019,0x0004003b,0x00000008,0x0000002f,
0x00000007,0x0004003b,0x0000000d,0x00000034,
0x00000007,0x0004003b,0x0000000d,0x0000004e,
0x00000007,0x0004003b,0x0000000d,0x00000064,
0x00000007,0x0004003d,0x00000012,0x00000030,
0x00000015,0x0007004f,0x00000007,0x00000031,
0x00000030,0x00000030,0x00000000,0x00000001,
0x0004003d,0x00000007,0x00000032,0x00000016,
0x00050083,0x00000007,0x00000033,0x00000031,
0x00000032,0x0003003e,0x0000002f,0x00000033,
0x00050041,0x0000000d,0x00000037,0x0000002f,
0x00000036,0x0004003d,0x00000006,0x00000038,
0x00000037,0x00050041,0x0000000d,0x0000003a,
0x0000002f,0x00000039,0x0004003d,0x00000006,
0x0000003b,0x0000003a,0x0007000c,0x00000006,
0x0000003c,0x00000001,0x00000019,0x00000038,
0x0000003b,0x00050041,0x00000044,0x00000045,
0x00000041,0x00000043,0x0004003d,0x00000006,
0x00000046,0x00000045,0x00050085,0x00000006,
0x00000047,0x00000046,0x00000029,0x0004003d,
0x00000006,0x00000048,0x00000017,0x00050081,
0x00000006,0x00000049,0x00000047,0x00000048,
0x0006000c,0x00000006,0x0000004a,0x00000001,
0x0000000d,0x00000049,0x00050085,0x00000006,
0x0000004c,0x0000004a,0x0000004b,0x00050081,
0x00000006,0x0000004d,0x0000003c,0x0000004c,
0x0003003e,0x00000034,0x0000004d,0x00050041,
0x0000000d,0x0000004f,0x0000002f,0x00000039,
0x0004003d,0x00000006,0x00000050,0x0000004f,
0x00050041,0x0000000d,0x00000051,0x0000002f,
0x00000039,0x0004003d,0x00000006,0x00000052,
0x00000051,0x00050085,0x00000006,0x00000053,
0x00000050,0x00000052,0x00050041,0x0000000d,
0x00000054,0x0000002f,0x00000036,0x0004003d,
0x00000006,0x00000055,0x00000054,0x00050041,
0x0000000d,0x00000056,0x0000002f,0x00000036,
0x0004003d,0x00000006,0x00000057,0x00000056,
0x00050085,0x00000006,0x00000058,0x00000055,
0x00000057,0x00050081,0x00000006,0x00000059,
0x00000053,0x00000058,0x0003003e,0x0000004e,
0x00000059,0x0004003d,0x00000006,0x0000005a,
0x0000004e,0x00050041,0x0000000d,0x0000005c,
0x00000015,0x0000005b,0x0004003d,0x00000006,
0x0000005d,0x0000005c,0x00050088,0x00000006,
0x0000005f,0x0000005d,0x0000005e,0x000500b8,
0x00000060,0x00000061,0x0000005a,0x0000005f,
0x000300f7,0x00000063,0x00000000,0x000400fa,
0x00000061,0x00000062,0x00000063,0x000200f8,
0x00000062,0x0003003e,0x00000064,0x00000065,
0x0004003d,0x00000006,0x00000066,0x00000034,
0x00050085,0x00000006,0x00000068,0x00000066,
0x00000067,0x0006000c,0x00000006,0x00000069,
0x00000001,0x0000000d,0x00000068,0x000500b8,
0x00000060,0x0000006a,0x00000069,0x00000065,
0x000300f7,0x0000006c,0x00000000,0x000400fa,
0x0000006a,0x0000006b,0x0000006c,0x000200f8,
0x0000006b,0x0003003e,0x00000064,0x00000029,
0x000200f9,0x0000006c,0x000200f8,0x0000006c,
0x0004003d,0x00000006,0x0000006d,0x0000004e,
0x00050041,0x0000000d,0x0000006e,0x00000015,
0x0000005b,0x0004003d,0x00000006,0x0000006f,
0x0000006e,0x00050088,0x00000006,0x00000071,
0x0000006f,0x00000070,0x000500b8,0x00000060,
0x00000072,0x0000006d,0x00000071,0x000300f7,
0x00000074,0x00000000,0x000400fa,0x00000072,
0x00000073,0x00000074,0x000200f8,0x00000073,
0x0004003d,0x00000006,0x00000075,0x00000064,
0x00050081,0x00000006,0x00000076,0x00000075,
0x00000029,0x0003003e,0x00000064,0x00000076,
0x000200f9,0x00000074,0x000200f8,0x00000074,
0x0004003d,0x00000006,0x00000077,0x00000064,
0x00050041,0x0000000d,0x00000078,0x00000015,
0x0000005b,0x0004003d,0x00000006,0x00000079,
0x00000078,0x00050085,0x00000006,0x0000007a,
0x00000077,0x00000079,0x000200fe,0x0000007a,
0x000200f8,0x00000063,0x000200fe,0x00000065,
0x00010038,0x00050036,0x00000006,0x0000001b,
0x00000000,0x00000009,0x00030037,0x00000008,
0x0000001a,0x000200f8,0x0000001c,0x0004003b,
0x0000000d,0x0000007e,0x00000007,0x0004003b,
0x0000007f,0x00000080,0x00000007,0x0004003b,
0x0000000d,0x0000008a,0x00000007,0x0004003b,
0x0000000d,0x0000008f,0x00000007,0x0004003b,
0x0000000d,0x00000093,0x00000007,0x0004003b,
0x0000000d,0x00000098,0x00000007,0x0004003b,
0x0000000d,0x0000009a,0x00000007,0x0004003b,
0x0000000d,0x000000a8,0x00000007,0x0004003b,
0x0000000d,0x000000b5,0x00000007,0x0004003b,
0x00000013,0x000000c4,0x00000007,0x0004003b,
0x00000008,0x000000c5,0x00000007,0x0004003b,
0x0000000d,0x000000c7,0x00000007,0x0003003e,
0x0000007e,0x00000065,0x0003003e,0x00000080,
0x00000081,0x000200f9,0x00000082,0x000200f8,
0x00000082,0x000400f6,0x00000084,0x00000085,
0x00000000,0x000200f9,0x00000086,0x000200f8,
0x00000086,0x0004003d,0x00000042,0x00000087,
0x00000080,0x000500b1,0x00000060,0x00000089,
0x00000087,0x00000088,0x000400fa,0x00000089,
0x00000083,0x00000084,0x000200f8,0x00000083,
0x0004003d,0x00000042,0x0000008b,0x00000080,
0x0004006f,0x00000006,0x0000008c,0x0000008b,
0x00050088,0x00000006,0x0000008e,0x0000008c,
0x0000008d,0x0003003e,0x0000008f,0x0000008e,
0x00050039,0x00000006,0x00000090,0x00000010,
0x0000008f,0x00050085,0x00000006,0x00000092,
0x00000090,0x00000091,0x0003003e,0x0000008a,
0x00000092,0x0004003d,0x00000042,0x00000094,
0x00000080,0x0004006f,0x00000006,0x00000095,
0x00000094,0x00050081,0x00000006,0x00000097,
0x00000095,0x00000096,0x0003003e,0x00000098,
0x00000097,0x00050039,0x00000006,0x00000099,
0x00000010,0x00000098,0x0003003e,0x00000093,
0x00000099,0x00050041,0x00000044,0x0000009d,
0x00000041,0x00000043,0x0004003d,0x00000006,
0x0000009e,0x0000009d,0x0004003d,0x00000006,
0x0000009f,0x00000093,0x00050081,0x00000006,
0x000000a0,0x0000009f,0x00000029,0x00050088,
0x00000006,0x000000a2,0x000000a0,0x000000a1,
0x00050085,0x00000006,0x000000a3,0x0000009e,
0x000000a2,0x0004003d,0x00000006,0x000000a4,
0x0000008a,0x00050081,0x00000006,0x000000a5,
0x000000a3,0x000000a4,0x00050088,0x00000006,
0x000000a6,0x000000a5,0x000000a1,0x0006000c,
0x00000006,0x000000a7,0x00000001,0x00000008,
0x000000a6,0x0003003e,0x000000a8,0x000000a7,
0x00050039,0x00000006,0x000000a9,0x00000010,
0x000000a8,0x00050041,0x00000044,0x000000aa,
0x00000041,0x00000043,0x0004003d,0x00000006,
0x000000ab,0x000000aa,0x0004003d,0x00000006,
0x000000ac,0x0000008a,0x00050085,0x00000006,
0x000000ad,0x000000ab,0x000000ac,0x00050088,
0x00000006,0x000000af,0x000000ad,0x000000ae,
0x0006000c,0x00000006,0x000000b0,0x00000001,
0x0000000d,0x000000af,0x00050088,0x00000006,
0x000000b1,0x000000b0,0x0000004b,0x00050081,
0x00000006,0x000000b2,0x000000a9,0x000000b1,
0x00050085,0x00000006,0x000000b3,0x0000009c,
0x000000b2,0x00050083,0x00000006,0x000000b4,
0x0000009b,0x000000b3,0x0003003e,0x0000009a,
0x000000b4,0x00050041,0x00000044,0x000000b6,
0x00000041,0x00000043,0x0004003d,0x00000006,
0x000000b7,0x000000b6,0x0004003d,0x00000006,
0x000000b8,0x00000093,0x00050081,0x00000006,
0x000000b9,0x000000b8,0x00000029,0x00050088,
0x00000006,0x000000ba,0x000000b9,0x000000a1,
0x00050085,0x00000006,0x000000bb,0x000000b7,
0x000000ba,0x0004003d,0x00000006,0x000000bc,
0x0000008a,0x00050081,0x00000006,0x000000bd,
0x000000bb,0x000000bc,0x0005008d,0x00000006,
0x000000be,0x000000bd,0x000000a1,0x00050083,
0x00000006,0x000000bf,0x00000029,0x000000be,
0x0003003e,0x000000b5,0x000000bf,0x0004003d,
0x00000006,0x000000c0,0x0000009a,0x0004003d,
0x00000006,0x000000c1,0x000000b5,0x0004003d,
0x00000006,0x000000c2,0x00000093,0x00060050,
0x00000012,0x000000c3,0x000000c0,0x000000c1,
0x000000c2,0x0003003e,0x000000c4,0x000000c3,
0x0004003d,0x00000007,0x000000c6,0x0000001a,
0x0003003e,0x000000c5,0x000000c6,0x0004003d,
0x00000006,0x000000c8,0x0000008a,0x0003003e,
0x000000c7,0x000000c8,0x00070039,0x00000006,
0x000000c9,0x00000018,0x000000c4,0x000000c5,
0x000000c7,0x0004003d,0x00000006,0x000000ca,
0x0000007e,0x00050081,0x00000006,0x000000cb,
0x000000ca,0x000000c9,0x0003003e,0x0000007e,
0x000000cb,0x000200f9,0x00000085,0x000200f8,
0x00000085,0x0004003d,0x00000042,0x000000cc,
0x00000080,0x00050080,0x00000042,0x000000cd,
0x000000cc,0x00000081,0x0003003e,0x00000080,
0x000000cd,0x000200f9,0x00000082,0x000200f8,
0x00000084,0x0004003d,0x00000006,0x000000ce,
0x0000007e,0x000200fe,0x000000ce,0x00010038}