From 993ecf92c7a977f7cd36d0a9c232c1f390ec9074 Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Thu, 6 Jul 2023 07:53:09 +0200 Subject: [PATCH] modify Catmull-Rom shader to use 5 taps --- inc/d3d9shader.h | 554 ++++++++++++++++++++++------------------------- 1 file changed, 262 insertions(+), 292 deletions(-) diff --git a/inc/d3d9shader.h b/inc/d3d9shader.h index 28b3668..ea38c66 100644 --- a/inc/d3d9shader.h +++ b/inc/d3d9shader.h @@ -371,72 +371,62 @@ const BYTE D3D9_PALETTE_SHADER_BILINEAR[] = mad r0.xy, t0, c0, r0.w frc r0.zw, r0.wzyx add r0.xy, -r0.wzyx, r0 - add r0.zw, r0.wzyx, c1.y - mad r1.xy, t0, c0, -r0.wzyx - mad r1.zw, r1.wzyx, -c2.x, c2.z - mad r1.zw, r1.wzyx, r1, c1.y - mul r2.xy, r1.wzyx, r1 - mad r2.zw, r1.wzyx, c2.x, c2.y - mul r3.xy, r1, r1 - mad r2.zw, r3.wzyx, r2, c1.z - mad r1.zw, r1.wzyx, r1, r2 - rcp r4.x, r1.w - rcp r4.y, r1.z - mad r0.zw, r2.wzyx, r4.wzyx, r0 - rcp r2.x, c0.x - rcp r2.y, c0.y - mul r4.xy, r0.wzyx, r2 - mov r5.x, r4.x add r0.zw, r0.wzyx, c1.x + rcp r1.x, c0.x + rcp r1.y, c0.y + mul r2.xy, r0.wzyx, r1 + mov r3.x, r2.x + add r0.zw, r0.wzyx, c1.y add r0.xy, r0, c1.w - mul r0.xy, r2, r0 - mul r2.xy, r2, r0.wzyx - mov r5.y, r2.y - mov r6.x, r5.x - mov r7.y, r5.y - mov r8.x, r2.x - mov r7.x, r0.x - mov r9.x, r7.x - mov r8.y, r4.y - mov r10.x, r8.x - mov r9.y, r8.y - mov r10.y, r0.y - mov r6.y, r10.y + mul r0.xy, r1, r0 + mad r1.zw, t0.wzyx, c0.wzyx, -r0 + mad r2.zw, r1, -c2.x, c2.z + mad r2.zw, r1, r2, c1.y + mul r3.zw, r1, r2 + mad r4.xy, r1.wzyx, c2.x, c2.y + mul r4.zw, r1, r1 + mad r4.xy, r4.wzyx, r4, c1.z + mad r2.zw, r1, r2, r4.wzyx + rcp r4.x, r2.w + rcp r4.y, r2.z + mad r0.zw, r3, r4.wzyx, r0 + mul r1.xy, r1, r0.wzyx + mov r3.y, r1.y + mov r4.y, r3.y + mov r2.x, r1.x + mov r5.x, r2.x + mov r4.x, r0.x + mov r5.y, r0.y + texld r0, r3, s0 + texld r3, r1, s0 + texld r6, r2, s0 texld r5, r5, s0 - texld r2, r2, s0 - texld r7, r7, s0 - texld r4, r4, s0 - texld r8, r8, s0 - texld r9, r9, s0 - texld r0, r0, s0 - texld r6, r6, s0 - mul r5, r1.w, r5 - mad r3.zw, r1.wzyx, -c1.y, c1.z - mad r3.zw, r1.wzyx, r3, c1.x - mul r3.zw, r1.wzyx, r3 - mad r1.xy, r1, c1.y, c1.x - mul r1.xy, r1, r3 - mul r5, r3.z, r5 - mul r2, r2, r3.w - mad r2, r2, r3.z, r5 - mul r5, r1.x, r7 - mad r2, r5, r3.z, r2 - mul r4, r1.w, r4 - mul r5, r1.x, r9 - mul r7, r3.w, r8 - mad r2, r7, r1.z, r2 - mad r2, r4, r1.z, r2 - mad r2, r5, r1.z, r2 + texld r7, r4, s0 + mad r1.xy, r1.wzyx, -c1.y, c1.z + mad r1.xy, r1.wzyx, r1, c1.x + mul r1.xy, r1, r1.wzyx + mad r1.zw, r1, c1.y, c1.x + mul r1.zw, r1, r4 + mul r0, r0, r1.x + mul r0, r2.z, r0 + mul r3, r2.w, r3 + mul r4, r2.w, r6 + mad r0, r4, r1.y, r0 + mad r0, r3, r2.z, r0 + mul r3, r2.w, r5 + mul r4, r1.w, r7 + mad r0, r4, r2.z, r0 + mad r0, r3, r1.z, r0 + mul r1.x, r2.z, r1.x + mad r1.x, r2.w, r1.y, r1.x + mad r1.x, r2.w, r2.z, r1.x + mad r1.x, r1.w, r2.z, r1.x + mad r1.x, r2.w, r1.z, r1.x + rcp r1.x, r1.x mul r0, r0, r1.x - texld r4, r10, s0 - mul r5, r1.w, r6 - mul r3, r3.w, r4 - mad r2, r3, r1.y, r2 - mad r2, r5, r1.y, r2 - mad r0, r0, r1.y, r2 mov oC0, r0 -// approximately 68 instruction slots used (9 texture, 59 arithmetic) +// approximately 58 instruction slots used (5 texture, 53 arithmetic) // fxc.exe /Tps_2_0 shader.hlsl /Fhshader.h /* @@ -451,6 +441,8 @@ float4 catmull_rom(float2 coord) // Samples a texture with Catmull-Rom filtering, using 9 texture fetches instead of 16. // See http://vec3.ca/bicubic-filtering-in-fewer-taps/ for more details + // Modified to use 5 texture fetches + float2 samplePos = coord * TextureSize.xy; float2 texPos1 = floor(samplePos - 0.5f) + 0.5f; @@ -473,19 +465,21 @@ float4 catmull_rom(float2 coord) texPos12 /= TextureSize.xy; float4 result = 0.0f; - result += tex2D(SurfaceTex, float2(texPos0.x, texPos0.y)) * w0.x * w0.y; + //result += tex2D(SurfaceTex, float2(texPos0.x, texPos0.y)) * w0.x * w0.y; result += tex2D(SurfaceTex, float2(texPos12.x, texPos0.y)) * w12.x * w0.y; - result += tex2D(SurfaceTex, float2(texPos3.x, texPos0.y)) * w3.x * w0.y; + //result += tex2D(SurfaceTex, float2(texPos3.x, texPos0.y)) * w3.x * w0.y; result += tex2D(SurfaceTex, float2(texPos0.x, texPos12.y)) * w0.x * w12.y; result += tex2D(SurfaceTex, float2(texPos12.x, texPos12.y)) * w12.x * w12.y; result += tex2D(SurfaceTex, float2(texPos3.x, texPos12.y)) * w3.x * w12.y; - result += tex2D(SurfaceTex, float2(texPos0.x, texPos3.y)) * w0.x * w3.y; + //result += tex2D(SurfaceTex, float2(texPos0.x, texPos3.y)) * w0.x * w3.y; result += tex2D(SurfaceTex, float2(texPos12.x, texPos3.y)) * w12.x * w3.y; - result += tex2D(SurfaceTex, float2(texPos3.x, texPos3.y)) * w3.x * w3.y; + //result += tex2D(SurfaceTex, float2(texPos3.x, texPos3.y)) * w3.x * w3.y; - return result; + float wm = 1./((w12.x * w0.y)+(w0.x * w12.y)+(w12.x * w12.y)+(w3.x * w12.y)+(w12.x * w3.y)); + + return result * wm; } float4 main(float2 texCoords : TEXCOORD) : COLOR @@ -497,232 +491,208 @@ float4 main(float2 texCoords : TEXCOORD) : COLOR #endif const BYTE D3D9_CATMULL_ROM_SHADER[] = -{ - 0, 2, 255, 255, 254, 255, - 44, 0, 67, 84, 65, 66, - 28, 0, 0, 0, 131, 0, - 0, 0, 0, 2, 255, 255, - 2, 0, 0, 0, 28, 0, - 0, 0, 0, 1, 0, 0, - 124, 0, 0, 0, 68, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 80, 0, - 0, 0, 0, 0, 0, 0, - 96, 0, 0, 0, 2, 0, - 0, 0, 1, 0, 2, 0, - 108, 0, 0, 0, 0, 0, - 0, 0, 83, 117, 114, 102, - 97, 99, 101, 84, 101, 120, - 0, 171, 4, 0, 12, 0, - 1, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 84, 101, 120, 116, 117, 114, - 101, 83, 105, 122, 101, 0, - 1, 0, 3, 0, 1, 0, - 4, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 112, 115, - 95, 50, 95, 48, 0, 77, - 105, 99, 114, 111, 115, 111, - 102, 116, 32, 40, 82, 41, - 32, 72, 76, 83, 76, 32, - 83, 104, 97, 100, 101, 114, - 32, 67, 111, 109, 112, 105, - 108, 101, 114, 32, 49, 48, - 46, 49, 0, 171, 81, 0, - 0, 5, 1, 0, 15, 160, - 0, 0, 0, 191, 0, 0, - 0, 63, 0, 0, 128, 63, - 0, 0, 32, 64, 81, 0, - 0, 5, 2, 0, 15, 160, - 0, 0, 192, 63, 0, 0, - 32, 192, 0, 0, 0, 64, - 0, 0, 0, 0, 31, 0, - 0, 2, 0, 0, 0, 128, - 0, 0, 3, 176, 31, 0, - 0, 2, 0, 0, 0, 144, - 0, 8, 15, 160, 1, 0, - 0, 2, 0, 0, 8, 128, - 1, 0, 0, 160, 4, 0, - 0, 4, 0, 0, 3, 128, - 0, 0, 228, 176, 0, 0, - 228, 160, 0, 0, 255, 128, - 19, 0, 0, 2, 0, 0, - 12, 128, 0, 0, 27, 128, - 2, 0, 0, 3, 0, 0, - 3, 128, 0, 0, 27, 129, - 0, 0, 228, 128, 2, 0, - 0, 3, 0, 0, 12, 128, - 0, 0, 27, 128, 1, 0, - 85, 160, 4, 0, 0, 4, - 1, 0, 3, 128, 0, 0, - 228, 176, 0, 0, 228, 160, - 0, 0, 27, 129, 4, 0, - 0, 4, 1, 0, 12, 128, - 1, 0, 27, 128, 2, 0, - 0, 161, 2, 0, 170, 160, - 4, 0, 0, 4, 1, 0, - 12, 128, 1, 0, 27, 128, - 1, 0, 228, 128, 1, 0, - 85, 160, 5, 0, 0, 3, - 2, 0, 3, 128, 1, 0, - 27, 128, 1, 0, 228, 128, - 4, 0, 0, 4, 2, 0, - 12, 128, 1, 0, 27, 128, - 2, 0, 0, 160, 2, 0, - 85, 160, 5, 0, 0, 3, - 3, 0, 3, 128, 1, 0, - 228, 128, 1, 0, 228, 128, - 4, 0, 0, 4, 2, 0, - 12, 128, 3, 0, 27, 128, - 2, 0, 228, 128, 1, 0, - 170, 160, 4, 0, 0, 4, - 1, 0, 12, 128, 1, 0, - 27, 128, 1, 0, 228, 128, - 2, 0, 228, 128, 6, 0, - 0, 2, 4, 0, 1, 128, - 1, 0, 255, 128, 6, 0, - 0, 2, 4, 0, 2, 128, - 1, 0, 170, 128, 4, 0, - 0, 4, 0, 0, 12, 128, - 2, 0, 27, 128, 4, 0, - 27, 128, 0, 0, 228, 128, - 6, 0, 0, 2, 2, 0, - 1, 128, 0, 0, 0, 160, - 6, 0, 0, 2, 2, 0, - 2, 128, 0, 0, 85, 160, - 5, 0, 0, 3, 4, 0, - 3, 128, 0, 0, 27, 128, - 2, 0, 228, 128, 1, 0, - 0, 2, 5, 0, 1, 128, - 4, 0, 0, 128, 2, 0, - 0, 3, 0, 0, 12, 128, - 0, 0, 27, 128, 1, 0, - 0, 160, 2, 0, 0, 3, - 0, 0, 3, 128, 0, 0, - 228, 128, 1, 0, 255, 160, - 5, 0, 0, 3, 0, 0, - 3, 128, 2, 0, 228, 128, - 0, 0, 228, 128, 5, 0, - 0, 3, 2, 0, 3, 128, - 2, 0, 228, 128, 0, 0, - 27, 128, 1, 0, 0, 2, - 5, 0, 2, 128, 2, 0, - 85, 128, 1, 0, 0, 2, - 6, 0, 1, 128, 5, 0, - 0, 128, 1, 0, 0, 2, - 7, 0, 2, 128, 5, 0, - 85, 128, 1, 0, 0, 2, - 8, 0, 1, 128, 2, 0, - 0, 128, 1, 0, 0, 2, - 7, 0, 1, 128, 0, 0, - 0, 128, 1, 0, 0, 2, - 9, 0, 1, 128, 7, 0, - 0, 128, 1, 0, 0, 2, - 8, 0, 2, 128, 4, 0, - 85, 128, 1, 0, 0, 2, - 10, 0, 1, 128, 8, 0, - 0, 128, 1, 0, 0, 2, - 9, 0, 2, 128, 8, 0, - 85, 128, 1, 0, 0, 2, - 10, 0, 2, 128, 0, 0, - 85, 128, 1, 0, 0, 2, - 6, 0, 2, 128, 10, 0, - 85, 128, 66, 0, 0, 3, - 5, 0, 15, 128, 5, 0, - 228, 128, 0, 8, 228, 160, - 66, 0, 0, 3, 2, 0, - 15, 128, 2, 0, 228, 128, - 0, 8, 228, 160, 66, 0, - 0, 3, 7, 0, 15, 128, - 7, 0, 228, 128, 0, 8, - 228, 160, 66, 0, 0, 3, - 4, 0, 15, 128, 4, 0, - 228, 128, 0, 8, 228, 160, - 66, 0, 0, 3, 8, 0, - 15, 128, 8, 0, 228, 128, - 0, 8, 228, 160, 66, 0, - 0, 3, 9, 0, 15, 128, - 9, 0, 228, 128, 0, 8, - 228, 160, 66, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 128, 0, 8, 228, 160, - 66, 0, 0, 3, 6, 0, - 15, 128, 6, 0, 228, 128, - 0, 8, 228, 160, 5, 0, - 0, 3, 5, 0, 15, 128, - 1, 0, 255, 128, 5, 0, - 228, 128, 4, 0, 0, 4, - 3, 0, 12, 128, 1, 0, - 27, 128, 1, 0, 85, 161, - 1, 0, 170, 160, 4, 0, - 0, 4, 3, 0, 12, 128, - 1, 0, 27, 128, 3, 0, - 228, 128, 1, 0, 0, 160, - 5, 0, 0, 3, 3, 0, - 12, 128, 1, 0, 27, 128, - 3, 0, 228, 128, 4, 0, - 0, 4, 1, 0, 3, 128, - 1, 0, 228, 128, 1, 0, - 85, 160, 1, 0, 0, 160, - 5, 0, 0, 3, 1, 0, - 3, 128, 1, 0, 228, 128, - 3, 0, 228, 128, 5, 0, - 0, 3, 5, 0, 15, 128, - 3, 0, 170, 128, 5, 0, - 228, 128, 5, 0, 0, 3, - 2, 0, 15, 128, 2, 0, - 228, 128, 3, 0, 255, 128, - 4, 0, 0, 4, 2, 0, - 15, 128, 2, 0, 228, 128, - 3, 0, 170, 128, 5, 0, - 228, 128, 5, 0, 0, 3, - 5, 0, 15, 128, 1, 0, - 0, 128, 7, 0, 228, 128, - 4, 0, 0, 4, 2, 0, - 15, 128, 5, 0, 228, 128, - 3, 0, 170, 128, 2, 0, - 228, 128, 5, 0, 0, 3, - 4, 0, 15, 128, 1, 0, - 255, 128, 4, 0, 228, 128, - 5, 0, 0, 3, 5, 0, - 15, 128, 1, 0, 0, 128, - 9, 0, 228, 128, 5, 0, - 0, 3, 7, 0, 15, 128, - 3, 0, 255, 128, 8, 0, - 228, 128, 4, 0, 0, 4, - 2, 0, 15, 128, 7, 0, - 228, 128, 1, 0, 170, 128, - 2, 0, 228, 128, 4, 0, - 0, 4, 2, 0, 15, 128, - 4, 0, 228, 128, 1, 0, - 170, 128, 2, 0, 228, 128, - 4, 0, 0, 4, 2, 0, - 15, 128, 5, 0, 228, 128, - 1, 0, 170, 128, 2, 0, - 228, 128, 5, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 128, 1, 0, 0, 128, - 66, 0, 0, 3, 4, 0, - 15, 128, 10, 0, 228, 128, - 0, 8, 228, 160, 5, 0, - 0, 3, 5, 0, 15, 128, - 1, 0, 255, 128, 6, 0, - 228, 128, 5, 0, 0, 3, - 3, 0, 15, 128, 3, 0, - 255, 128, 4, 0, 228, 128, - 4, 0, 0, 4, 2, 0, - 15, 128, 3, 0, 228, 128, - 1, 0, 85, 128, 2, 0, - 228, 128, 4, 0, 0, 4, - 2, 0, 15, 128, 5, 0, - 228, 128, 1, 0, 85, 128, - 2, 0, 228, 128, 4, 0, - 0, 4, 0, 0, 15, 128, - 0, 0, 228, 128, 1, 0, - 85, 128, 2, 0, 228, 128, - 1, 0, 0, 2, 0, 8, - 15, 128, 0, 0, 228, 128, - 255, 255, 0, 0 -}; + { + 0, 2, 255, 255, 254, 255, + 44, 0, 67, 84, 65, 66, + 28, 0, 0, 0, 131, 0, + 0, 0, 0, 2, 255, 255, + 2, 0, 0, 0, 28, 0, + 0, 0, 0, 1, 0, 0, + 124, 0, 0, 0, 68, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 80, 0, + 0, 0, 0, 0, 0, 0, + 96, 0, 0, 0, 2, 0, + 0, 0, 1, 0, 2, 0, + 108, 0, 0, 0, 0, 0, + 0, 0, 83, 117, 114, 102, + 97, 99, 101, 84, 101, 120, + 0, 171, 4, 0, 12, 0, + 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 84, 101, 120, 116, 117, 114, + 101, 83, 105, 122, 101, 0, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 112, 115, + 95, 50, 95, 48, 0, 77, + 105, 99, 114, 111, 115, 111, + 102, 116, 32, 40, 82, 41, + 32, 72, 76, 83, 76, 32, + 83, 104, 97, 100, 101, 114, + 32, 67, 111, 109, 112, 105, + 108, 101, 114, 32, 49, 48, + 46, 49, 0, 171, 81, 0, + 0, 5, 1, 0, 15, 160, + 0, 0, 0, 191, 0, 0, + 0, 63, 0, 0, 128, 63, + 0, 0, 32, 64, 81, 0, + 0, 5, 2, 0, 15, 160, + 0, 0, 192, 63, 0, 0, + 32, 192, 0, 0, 0, 64, + 0, 0, 0, 0, 31, 0, + 0, 2, 0, 0, 0, 128, + 0, 0, 3, 176, 31, 0, + 0, 2, 0, 0, 0, 144, + 0, 8, 15, 160, 1, 0, + 0, 2, 0, 0, 8, 128, + 1, 0, 0, 160, 4, 0, + 0, 4, 0, 0, 3, 128, + 0, 0, 228, 176, 0, 0, + 228, 160, 0, 0, 255, 128, + 19, 0, 0, 2, 0, 0, + 12, 128, 0, 0, 27, 128, + 2, 0, 0, 3, 0, 0, + 3, 128, 0, 0, 27, 129, + 0, 0, 228, 128, 2, 0, + 0, 3, 0, 0, 12, 128, + 0, 0, 27, 128, 1, 0, + 0, 160, 6, 0, 0, 2, + 1, 0, 1, 128, 0, 0, + 0, 160, 6, 0, 0, 2, + 1, 0, 2, 128, 0, 0, + 85, 160, 5, 0, 0, 3, + 2, 0, 3, 128, 0, 0, + 27, 128, 1, 0, 228, 128, + 1, 0, 0, 2, 3, 0, + 1, 128, 2, 0, 0, 128, + 2, 0, 0, 3, 0, 0, + 12, 128, 0, 0, 27, 128, + 1, 0, 85, 160, 2, 0, + 0, 3, 0, 0, 3, 128, + 0, 0, 228, 128, 1, 0, + 255, 160, 5, 0, 0, 3, + 0, 0, 3, 128, 1, 0, + 228, 128, 0, 0, 228, 128, + 4, 0, 0, 4, 1, 0, + 12, 128, 0, 0, 27, 176, + 0, 0, 27, 160, 0, 0, + 228, 129, 4, 0, 0, 4, + 2, 0, 12, 128, 1, 0, + 228, 128, 2, 0, 0, 161, + 2, 0, 170, 160, 4, 0, + 0, 4, 2, 0, 12, 128, + 1, 0, 228, 128, 2, 0, + 228, 128, 1, 0, 85, 160, + 5, 0, 0, 3, 3, 0, + 12, 128, 1, 0, 228, 128, + 2, 0, 228, 128, 4, 0, + 0, 4, 4, 0, 3, 128, + 1, 0, 27, 128, 2, 0, + 0, 160, 2, 0, 85, 160, + 5, 0, 0, 3, 4, 0, + 12, 128, 1, 0, 228, 128, + 1, 0, 228, 128, 4, 0, + 0, 4, 4, 0, 3, 128, + 4, 0, 27, 128, 4, 0, + 228, 128, 1, 0, 170, 160, + 4, 0, 0, 4, 2, 0, + 12, 128, 1, 0, 228, 128, + 2, 0, 228, 128, 4, 0, + 27, 128, 6, 0, 0, 2, + 4, 0, 1, 128, 2, 0, + 255, 128, 6, 0, 0, 2, + 4, 0, 2, 128, 2, 0, + 170, 128, 4, 0, 0, 4, + 0, 0, 12, 128, 3, 0, + 228, 128, 4, 0, 27, 128, + 0, 0, 228, 128, 5, 0, + 0, 3, 1, 0, 3, 128, + 1, 0, 228, 128, 0, 0, + 27, 128, 1, 0, 0, 2, + 3, 0, 2, 128, 1, 0, + 85, 128, 1, 0, 0, 2, + 4, 0, 2, 128, 3, 0, + 85, 128, 1, 0, 0, 2, + 2, 0, 1, 128, 1, 0, + 0, 128, 1, 0, 0, 2, + 5, 0, 1, 128, 2, 0, + 0, 128, 1, 0, 0, 2, + 4, 0, 1, 128, 0, 0, + 0, 128, 1, 0, 0, 2, + 5, 0, 2, 128, 0, 0, + 85, 128, 66, 0, 0, 3, + 0, 0, 15, 128, 3, 0, + 228, 128, 0, 8, 228, 160, + 66, 0, 0, 3, 3, 0, + 15, 128, 1, 0, 228, 128, + 0, 8, 228, 160, 66, 0, + 0, 3, 6, 0, 15, 128, + 2, 0, 228, 128, 0, 8, + 228, 160, 66, 0, 0, 3, + 5, 0, 15, 128, 5, 0, + 228, 128, 0, 8, 228, 160, + 66, 0, 0, 3, 7, 0, + 15, 128, 4, 0, 228, 128, + 0, 8, 228, 160, 4, 0, + 0, 4, 1, 0, 3, 128, + 1, 0, 27, 128, 1, 0, + 85, 161, 1, 0, 170, 160, + 4, 0, 0, 4, 1, 0, + 3, 128, 1, 0, 27, 128, + 1, 0, 228, 128, 1, 0, + 0, 160, 5, 0, 0, 3, + 1, 0, 3, 128, 1, 0, + 228, 128, 1, 0, 27, 128, + 4, 0, 0, 4, 1, 0, + 12, 128, 1, 0, 228, 128, + 1, 0, 85, 160, 1, 0, + 0, 160, 5, 0, 0, 3, + 1, 0, 12, 128, 1, 0, + 228, 128, 4, 0, 228, 128, + 5, 0, 0, 3, 0, 0, + 15, 128, 0, 0, 228, 128, + 1, 0, 0, 128, 5, 0, + 0, 3, 0, 0, 15, 128, + 2, 0, 170, 128, 0, 0, + 228, 128, 5, 0, 0, 3, + 3, 0, 15, 128, 2, 0, + 255, 128, 3, 0, 228, 128, + 5, 0, 0, 3, 4, 0, + 15, 128, 2, 0, 255, 128, + 6, 0, 228, 128, 4, 0, + 0, 4, 0, 0, 15, 128, + 4, 0, 228, 128, 1, 0, + 85, 128, 0, 0, 228, 128, + 4, 0, 0, 4, 0, 0, + 15, 128, 3, 0, 228, 128, + 2, 0, 170, 128, 0, 0, + 228, 128, 5, 0, 0, 3, + 3, 0, 15, 128, 2, 0, + 255, 128, 5, 0, 228, 128, + 5, 0, 0, 3, 4, 0, + 15, 128, 1, 0, 255, 128, + 7, 0, 228, 128, 4, 0, + 0, 4, 0, 0, 15, 128, + 4, 0, 228, 128, 2, 0, + 170, 128, 0, 0, 228, 128, + 4, 0, 0, 4, 0, 0, + 15, 128, 3, 0, 228, 128, + 1, 0, 170, 128, 0, 0, + 228, 128, 5, 0, 0, 3, + 1, 0, 1, 128, 2, 0, + 170, 128, 1, 0, 0, 128, + 4, 0, 0, 4, 1, 0, + 1, 128, 2, 0, 255, 128, + 1, 0, 85, 128, 1, 0, + 0, 128, 4, 0, 0, 4, + 1, 0, 1, 128, 2, 0, + 255, 128, 2, 0, 170, 128, + 1, 0, 0, 128, 4, 0, + 0, 4, 1, 0, 1, 128, + 1, 0, 255, 128, 2, 0, + 170, 128, 1, 0, 0, 128, + 4, 0, 0, 4, 1, 0, + 1, 128, 2, 0, 255, 128, + 1, 0, 170, 128, 1, 0, + 0, 128, 6, 0, 0, 2, + 1, 0, 1, 128, 1, 0, + 0, 128, 5, 0, 0, 3, + 0, 0, 15, 128, 0, 0, + 228, 128, 1, 0, 0, 128, + 1, 0, 0, 2, 0, 8, + 15, 128, 0, 0, 228, 128, + 255, 255, 0, 0 + }; #endif