diff --git a/CMakeLists.txt b/CMakeLists.txt index f6965630a1f..a3af789bde3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -644,7 +644,7 @@ if(MSVC) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc") coin_msvc_link_static_crt(${COIN_BUILD_MSVC_STATIC_RUNTIME}) - add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_USE_MATH_DEFINES) + add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_USE_MATH_DEFINES -DNOMINMAX) else() if(APPLE) add_definitions(-DGL_SILENCE_DEPRECATION) diff --git a/data/shaders/vulkan/rt/ClosestHit.glsl b/data/shaders/vulkan/rt/ClosestHit.glsl index 675454e210b..d361ec942de 100644 --- a/data/shaders/vulkan/rt/ClosestHit.glsl +++ b/data/shaders/vulkan/rt/ClosestHit.glsl @@ -61,12 +61,15 @@ layout(location = 0) rayPayloadEXT Payload payload; const int COIN_MAX_LIGHTS = 8; -// Same Gouraud evaluation as the raster visual program. -vec3 coin_rtx_gouraud(vec3 eyePos, vec3 eyeNormal, vec3 baseColor, +// Same Gouraud evaluation as the raster visual program. The producer's +// light data is world-space (the standard IR convention), so the evaluation +// runs directly in world space; dot-product shading makes this identical to +// the eye-space form. +vec3 coin_rtx_gouraud(vec3 worldPos, vec3 worldNormal, vec3 baseColor, RTMaterial mat) { - vec3 N = normalize(eyeNormal); - vec3 V = normalize(-eyePos); + vec3 N = normalize(worldNormal); + vec3 V = normalize(frame.u_cameraPos.xyz - worldPos); if (mat.params.y > 0.5 && dot(N, V) < 0.0) { N = -N; } @@ -79,7 +82,7 @@ vec3 coin_rtx_gouraud(vec3 eyePos, vec3 eyeNormal, vec3 baseColor, float attenuation = 1.0; float spotFactor = 1.0; if (mat.lightType[i].x > 0.5) { - vec3 lightVector = mat.lightPosition[i].xyz - eyePos; + vec3 lightVector = mat.lightPosition[i].xyz - worldPos; float distanceToLight = length(lightVector); if (distanceToLight <= 0.0001) continue; L = lightVector / distanceToLight; @@ -89,7 +92,7 @@ vec3 coin_rtx_gouraud(vec3 eyePos, vec3 eyeNormal, vec3 baseColor, 0.0001); if (mat.lightType[i].x > 1.5) { vec3 coneDir = normalize(mat.lightDirection[i].xyz); - vec3 fromLight = normalize(eyePos - mat.lightPosition[i].xyz); + vec3 fromLight = normalize(worldPos - mat.lightPosition[i].xyz); float spotCos = dot(coneDir, fromLight); if (spotCos < mat.lightSpot[i].x) continue; spotFactor = pow(max(spotCos, 0.0), mat.lightSpot[i].y); @@ -153,12 +156,11 @@ void main() if (payload.info.w == 0u) { // Preview mode: full Gouraud shading (matching the raster viewport - // and the old compute tracer). - vec3 eyePos = (frame.u_view * vec4(worldPos, 1.0)).xyz; - vec3 eyeN = normalize(mat3(frame.u_view) * worldN); + // and the old compute tracer); world-space light data is consumed + // directly. vec3 rgb = mat.diffuse.rgb; if (mat.params.w > 0.5) { - rgb = coin_rtx_gouraud(eyePos, eyeN, mat.diffuse.rgb, mat); + rgb = coin_rtx_gouraud(worldPos, worldN, mat.diffuse.rgb, mat); } payload.color = vec4(clamp(rgb, 0.0, 1.0), 1.0); } diff --git a/data/shaders/vulkan/rt/PathTrace.glsl b/data/shaders/vulkan/rt/PathTrace.glsl index 7aa90d52dda..128e1b9644d 100644 --- a/data/shaders/vulkan/rt/PathTrace.glsl +++ b/data/shaders/vulkan/rt/PathTrace.glsl @@ -19,6 +19,7 @@ #version 460 #extension GL_EXT_ray_query : require +#extension GL_GOOGLE_include_directive : require layout(local_size_x = 8, local_size_y = 8, local_size_z = 1) in; @@ -139,480 +140,12 @@ layout(set = 0, binding = 15, std430) buffer MotionBuffer { vec4 motions[]; }; const int COIN_MAX_LIGHTS = 8; -// Small xorshift-style hash: pixel + seed -> two values in [0,1)^2. -vec2 hash2(uint px, uint py, uint seed) -{ - uint s = px * 747796405u + py * 2891336453u + seed * 2654435761u + 149857u; - s = (s ^ (s >> 16)) * 2246822519u; - s = (s ^ (s >> 13)) * 3266489917u; - s ^= s >> 16; - return vec2(float(s & 0xffffu), float((s >> 16) & 0xffffu)) * (1.0 / 65536.0); -} - -// Three values in [0,1)^3 for multi-dimensional sampling decisions. -vec3 hash3(uint px, uint py, uint seed) -{ - return vec3(hash2(px, py, seed), hash2(px, py, seed + 1u).x); -} - -// Cosine-weighted hemisphere sample around +Z. -vec3 sampleCosine(vec2 u) -{ - float a = sqrt(max(u.x, 0.0)); - float phi = 6.28318530718 * u.y; - return vec3(a * cos(phi), a * sin(phi), sqrt(max(1.0 - u.x, 0.0))); -} - -// --- Procedural environment / IBL ---------------------------------------- -// The environment is either an analytic sky (mode 0): a vertical gradient -// between the background bottom (horizon) and top (zenith) colors, plus a sun -// disk that falls off with a user-set power around the sun direction; or a -// camera-centered "room cove" (mode 1): a back-facing box the viewer sits -// inside with a colored floor, four walls and a ceiling, so the cubemap reads -// as a real scene (desk / table / white lab) whose reflections carry the room. -// In both cases radiance is a closed-form function of direction, so it can be -// evaluated for the primary-ray miss (background/reflections), as a diffuse -// irradiance term (ambient) and as a specular IBL term (glossy surfaces). -vec3 envSunDir() -{ - return normalize(frame.u_env.yzw); -} - -// Surface color of the environment along a world direction, independent of -// the intensity/lighting scale. Sky mode returns the vertical gradient; -// room mode returns the face of the camera-aligned cove box the ray leaves. -vec3 envSurfaceColor(vec3 dir) -{ - if (frame.u_envRoom.w > 0.5) { - // Room cove: a box centered on the camera. floorY/ceilY are - // camera-relative offsets; the box spans +/-E on X and Z. Trace a - // ray from the box center (camera) along dir and take the nearest - // back-facing plane the ray exits through. - const float E = max(frame.u_envRoomScale.x, 0.1); - const float floorY = frame.u_envRoomFloor.w; // camera-relative - const float ceilY = frame.u_envRoomCeil.w; // camera-relative - vec3 n = normalize(dir); - float t = 1e30; - vec3 color = vec3(0.0); - // X walls (+/-E). - if (n.x > 1e-5) { - float tx = E / n.x; - if (tx < t) { t = tx; color = frame.u_envRoom.rgb; } - } - if (n.x < -1e-5) { - float tx = -E / n.x; - if (tx < t) { t = tx; color = frame.u_envRoom.rgb; } - } - // Z walls (+/-E). - if (n.z > 1e-5) { - float tz = E / n.z; - if (tz < t) { t = tz; color = frame.u_envRoom.rgb; } - } - if (n.z < -1e-5) { - float tz = -E / n.z; - if (tz < t) { t = tz; color = frame.u_envRoom.rgb; } - } - // Floor / ceiling planes (ray from the box center, so t = off / n.y). - if (n.y < -1e-5) { - float ty = floorY / n.y; - if (ty >= 0.0 && ty < t) { t = ty; color = frame.u_envRoomFloor.rgb; } - } - if (n.y > 1e-5) { - float ty = ceilY / n.y; - if (ty >= 0.0 && ty < t) { t = ty; color = frame.u_envRoomCeil.rgb; } - } - return color; - } - // Sky gradient: dir.y in [-1,1]; -1 = horizon color, +1 = zenith. - float t = clamp(dir.y * 0.5 + 0.5, 0.0, 1.0); - return mix(frame.u_bgBottom.rgb, frame.u_bgTop.rgb, t); -} - -// Environment radiance along a world direction (surface color * sky/room -// intensity, plus the sun disk). -vec3 envRadiance(vec3 dir) -{ - vec3 n = normalize(dir); - vec3 env = envSurfaceColor(n) * frame.u_env.x; - float d = max(dot(n, envSunDir()), 0.0); - vec3 sun = frame.u_envColor.rgb * pow(d, max(frame.u_envColor.w, 1.0)); - return env + sun * frame.u_env.x; -} - -// Diffuse irradiance of the environment at a surface normal (ambient). -// Approximates the cosine-weighted hemisphere integral of envSurfaceColor by -// sampling at N fixed cosine-hemisphere directions, deterministic so the -// single-sample preview does not flicker frame to frame. -vec3 envIrradiance(vec3 n) -{ - vec3 up = (abs(n.y) < 0.999) ? vec3(0.0, 1.0, 0.0) : vec3(1.0, 0.0, 0.0); - vec3 tangent = normalize(cross(up, n)); - vec3 bitangent = cross(n, tangent); - const int N = 4; - float phase = 0.0; - vec3 irr = vec3(0.0); - for (int i = 0; i < N; ++i) { - float fi = (float(i) + phase) * 2.39996; // golden-angle spiral - float cosT = sqrt(max((float(i) + 0.5) / float(N), 0.0)); - float sinT = sqrt(max(1.0 - cosT * cosT, 0.0)); - vec3 dir = tangent * (cos(fi) * sinT) + bitangent * (sin(fi) * sinT) + - n * cosT; - irr += envSurfaceColor(dir); - } - return (irr / float(N)) * 3.14159265 * frame.u_env.x; -} - -// Specular IBL at a reflection direction with a roughness blur estimate. -// Samples the environment (and sun) at the reflected direction; a higher -// roughness darkens and desaturates the surface term while the sun stays only -// for glossy reflections so it reads as a hot spot. -vec3 envSpecular(vec3 r, float roughness) -{ - vec3 rn = normalize(r); - float rough = clamp(roughness, 0.0, 1.0); - vec3 radiance = envRadiance(rn); - float sunAlign = max(dot(rn, envSunDir()), 0.0); - radiance *= mix(1.0, (0.3 + 0.7 * sunAlign), rough); - return radiance; -} - -// --- PBR (metallic-roughness) BRDF helpers -------------------------------- -float pbrAlpha(RTMaterial mat) -{ - return clamp(mat.pbr.y * mat.pbr.y, 0.001, 1.0); -} -vec3 pbrF0(RTMaterial mat) -{ - return mix(vec3(0.04), mat.diffuse.rgb, clamp(mat.pbr.x, 0.0, 1.0)); -} +// Shading math, environment/IBL, BRDF and ray-query trace helpers are factored +// into modules so this file keeps only the binding boilerplate + entry point. +#include "RTShadingCommon.glsl" +#include "RTRayTrace.glsl" -float pbrD_GGX(float NdotH, float a) -{ - float a2 = a * a; - float d = NdotH * NdotH * (a2 - 1.0) + 1.0; - return a2 / max(3.14159265 * d * d, 1e-7); -} - -float pbrG_SchlickGGX(float NdotX, float a) -{ - float k = a * 0.5; - return NdotX / max(NdotX * (1.0 - k) + k, 1e-7); -} - -float pbrG_Smith(float NdotV, float NdotL, float a) -{ - return pbrG_SchlickGGX(NdotV, a) * pbrG_SchlickGGX(NdotL, a); -} - -vec3 pbrF_Schlick(float VdotH, vec3 F0) -{ - return F0 + (vec3(1.0) - F0) * pow(clamp(1.0 - VdotH, 0.0, 1.0), 5.0); -} - -// Full BRDF evaluation for unit N, V, L (NdotV > 0, NdotL >= 0). The -// caller multiplies by NdotL and the incoming radiance. -vec3 pbrEval(vec3 N, vec3 V, vec3 L, RTMaterial mat) -{ - vec3 H = normalize(V + L); - float NdotV = max(dot(N, V), 1e-6); - float NdotL = max(dot(N, L), 0.0); - float NdotH = max(dot(N, H), 0.0); - float VdotH = max(dot(V, H), 0.0); - float a = pbrAlpha(mat); - vec3 F = pbrF_Schlick(VdotH, pbrF0(mat)); - vec3 kd = (vec3(1.0) - F) * (1.0 - clamp(mat.pbr.x, 0.0, 1.0)); - return kd * mat.diffuse.rgb / 3.14159265 + - F * pbrD_GGX(NdotH, a) * pbrG_Smith(NdotV, NdotL, a) / - max(4.0 * NdotV * NdotL, 1e-6); -} - -// GGX (VNDF) half-vector sample around +Z. -vec3 sampleGGX(vec2 u, float a) -{ - float phi = 6.28318530718 * u.y; - float cosTheta = - sqrt(max((1.0 - u.x) / (1.0 + (a * a - 1.0) * u.x), 0.0)); - float sinTheta = sqrt(max(1.0 - cosTheta * cosTheta, 0.0)); - return vec3(sinTheta * cos(phi), sinTheta * sin(phi), cosTheta); -} - -struct HitInfo { - bool hit; - float t; - vec3 pos; - vec3 normal; - int materialIndex; - int primitiveId; -}; - -// Closest-hit query against the TLAS. All geometry is opaque triangles. -HitInfo traceClosest(vec3 origin, vec3 dir, float tMax) -{ - rayQueryEXT q; - rayQueryInitializeEXT(q, tlas, gl_RayFlagsOpaqueEXT, 0xFF, origin, 0.001, - dir, tMax); - while (rayQueryProceedEXT(q)) { - // Advance to the closest committed triangle intersection. - } - HitInfo h; - h.hit = rayQueryGetIntersectionTypeEXT(q, true) == - gl_RayQueryCommittedIntersectionTriangleEXT; - h.t = -1.0; - h.pos = vec3(0.0); - h.normal = vec3(0.0); - h.materialIndex = 0; - if (!h.hit) return h; - - h.t = rayQueryGetIntersectionTEXT(q, true); - h.pos = origin + dir * h.t; - h.materialIndex = rayQueryGetIntersectionInstanceCustomIndexEXT(q, true); - h.primitiveId = rayQueryGetIntersectionPrimitiveIndexEXT(q, true); - - // Flat shading: the object-space face normal comes from the triangle- - // normal pool (computed on the CPU at BLAS build time) and is - // transformed to world space via the instance's object-to-world - // transform. - RTMaterial mat = matBuffer.materials[h.materialIndex]; - uint prim = rayQueryGetIntersectionPrimitiveIndexEXT(q, true); - uint normalIndex = uint(mat.triangleData.x) + prim; - vec3 objN = normalPoolBuffer.triangleNormals[normalIndex].xyz; - if (dot(objN, objN) < 1e-12) { - h.hit = false; - return h; - } - mat4x3 objToWorld = rayQueryGetIntersectionObjectToWorldEXT(q, true); - h.normal = normalize(mat3(transpose(inverse(mat3(objToWorld)))) * objN); - // The pool normals follow the producer's triangle winding, whose - // orientation is not guaranteed to face the ray; for closed solids the - // outward normal always points toward the ray origin, so flip when - // needed (this also covers two-sided materials). - vec3 toRay = normalize(origin - h.pos); - if (dot(h.normal, toRay) < 0.0) { - h.normal = -h.normal; - } - return h; -} - -// Shadow query: true when something blocks the segment to the light. -bool traceShadow(vec3 origin, vec3 dir, float tMax) -{ - rayQueryEXT q; - rayQueryInitializeEXT(q, tlas, gl_RayFlagsOpaqueEXT, 0xFF, origin, 0.001, - dir, tMax); - while (rayQueryProceedEXT(q)) { - // First candidate terminates the traversal. - return true; - } - return rayQueryGetIntersectionTypeEXT(q, true) == - gl_RayQueryCommittedIntersectionTriangleEXT; -} - -// Ambient-occlusion visibility at a hit point: N rays over the cosine- -// weighted hemisphere distributed by the golden-angle spiral, returned as the -// fraction that reach the background unoccluded (1 = fully open). Single- -// sample, no accumulation -- the seed only stabilises the spiral phase so the -// real-time preview does not flicker frame to frame. -float coin_rtx_ao(vec3 worldPos, vec3 worldN, vec2 seed) -{ - vec3 N = normalize(worldN); - // Tangent basis around N. - vec3 up = (abs(N.y) < 0.999) ? vec3(0.0, 1.0, 0.0) : vec3(1.0, 0.0, 0.0); - vec3 T = normalize(cross(up, N)); - vec3 B = cross(N, T); - float phase = seed.x * 6.2831853; - vec3 P = worldPos + N * 0.001; - float visible = 0.0; - const int N_SAMPLES = 8; - for (int i = 0; i < N_SAMPLES; ++i) { - float fi = float(i) + phase; - float phi = fi * 2.39996; // golden angle (radians) - float cosT = 1.0 - (float(i) + 0.5) / float(N_SAMPLES); - float sinT = sqrt(max(1.0 - cosT * cosT, 0.0)); - vec3 dir = T * (cos(phi) * sinT) + B * (sin(phi) * sinT) + N * cosT; - if (!traceShadow(P, dir, 1e30)) { - visible += 1.0; - } - } - return visible / float(N_SAMPLES); -} - -// Same Gouraud evaluation as the raster visual program and the v1 chit. -vec3 coin_rtx_gouraud(vec3 eyePos, vec3 eyeNormal, vec3 baseColor, - RTMaterial mat) -{ - vec3 N = normalize(eyeNormal); - vec3 V = normalize(-eyePos); - if (mat.params.y > 0.5 && dot(N, V) < 0.0) { - N = -N; - } - vec3 litColor = mat.ambient.rgb; // ambient light folded in by producer - int lightCount = int(mat.params.z); - for (int i = 0; i < COIN_MAX_LIGHTS; ++i) { - if (i >= lightCount) break; - - vec3 L = mat.lightDirection[i].xyz; - float attenuation = 1.0; - float spotFactor = 1.0; - if (mat.lightType[i].x > 0.5) { - vec3 lightVector = mat.lightPosition[i].xyz - eyePos; - float distanceToLight = length(lightVector); - if (distanceToLight <= 0.0001) continue; - L = lightVector / distanceToLight; - vec3 att = mat.lightAttenuation[i].xyz; - attenuation = 1.0 / max(att.z + att.y * distanceToLight + - att.x * distanceToLight * distanceToLight, - 0.0001); - if (mat.lightType[i].x > 1.5) { - vec3 coneDir = normalize(mat.lightDirection[i].xyz); - vec3 fromLight = normalize(eyePos - mat.lightPosition[i].xyz); - float spotCos = dot(coneDir, fromLight); - if (spotCos < mat.lightSpot[i].x) continue; - spotFactor = pow(max(spotCos, 0.0), mat.lightSpot[i].y); - } - } - - vec3 Ln = normalize(L); - float NdotL = max(dot(N, Ln), 0.0); - vec3 H = normalize(Ln + V); - float NdotH = max(dot(N, H), 0.0); - float shininess = max(mat.params.x * 128.0, 0.0); - float specularFactor = shininess > 0.0 ? pow(NdotH, shininess) : 0.0; - vec3 diffuse = baseColor * NdotL; - vec3 specular = mat.specular.rgb * specularFactor; - litColor += mat.lightColor[i].rgb * attenuation * spotFactor * - (diffuse + specular); - } - return clamp(litColor + mat.emissive.rgb, 0.0, 1.0); -} - -// Next-event-estimation direct lighting with shadow rays. Matches the -// raster Gouraud convention: the producer's light data is used verbatim -// against eye-space normals (no view-space conversion), so the direct term -// looks like the raster viewport. The producer stores lights in eye space -// (the light's node matrix is ModelMatrix * ViewingMatrix), so shadow ray -// directions are converted back to world space before the ray query. -vec3 coin_rtx_directLighting(vec3 worldPos, vec3 worldN, vec3 rayDir, - RTMaterial mat) -{ - vec3 eyePos = (frame.u_view * vec4(worldPos, 1.0)).xyz; - vec3 N = normalize(mat3(frame.u_view) * worldN); - vec3 V = normalize(-eyePos); - vec3 lit = mat.ambient.rgb; // ambient light folded in by producer - int lightCount = int(mat.params.z); - for (int i = 0; i < COIN_MAX_LIGHTS; ++i) { - if (i >= lightCount) break; - - vec3 L; - float attenuation = 1.0; - float spotFactor = 1.0; - float distToLight = 1e30; - if (mat.lightType[i].x > 0.5) { - vec3 lightVector = mat.lightPosition[i].xyz - eyePos; - distToLight = length(lightVector); - if (distToLight <= 0.0001) continue; - L = lightVector / distToLight; - vec3 att = mat.lightAttenuation[i].xyz; - attenuation = 1.0 / max(att.z + att.y * distToLight + - att.x * distToLight * distToLight, - 0.0001); - if (mat.lightType[i].x > 1.5) { - vec3 coneDir = normalize(mat.lightDirection[i].xyz); - vec3 fromLight = normalize(eyePos - mat.lightPosition[i].xyz); - float spotCos = dot(coneDir, fromLight); - if (spotCos < mat.lightSpot[i].x) continue; - spotFactor = pow(max(spotCos, 0.0), mat.lightSpot[i].y); - } - } - else { - L = mat.lightDirection[i].xyz; - } - - float NdotL = dot(N, normalize(L)); - if (NdotL <= 0.0) continue; - - // Shadow ray: the light data is in eye space (see above), so - // convert the direction back to world space for the shadow query - // against the world-space TLAS. - vec3 worldL = normalize((frame.u_viewInverse * - vec4(normalize(L), 0.0)).xyz); - if (traceShadow(worldPos + worldN * 0.001, worldL, - distToLight - 0.001)) { - continue; - } - - vec3 contribution; - if (mat.pbr.z > 0.5) { - contribution = pbrEval(N, V, normalize(L), mat) * NdotL; - } - else { - vec3 H = normalize(normalize(L) + V); - float NdotH = max(dot(N, H), 0.0); - float shininess = max(mat.params.x * 128.0, 0.0); - float specularFactor = shininess > 0.0 ? pow(NdotH, shininess) : 0.0; - contribution = mat.diffuse.rgb * NdotL + - mat.specular.rgb * specularFactor; - } - lit += mat.lightColor[i].rgb * attenuation * spotFactor * contribution; - } - return clamp(lit, 0.0, 1.0); -} - -// Emissive-surface next-event estimation: sample one emissive triangle -// uniformly, shadow-ray it and evaluate the same shading models as the -// analytic-light path. pdf = 1 / (triangleCount * area). -vec3 coin_rtx_neeEmissive(vec3 worldPos, vec3 worldN, RTMaterial mat, - vec3 sampleXi) -{ - const float N = frame.u_nee.x; - if (N < 0.5) return vec3(0.0); - int t = int(clamp(sampleXi.x * N, 0.0, N - 1.0)); - NeeTriangle nt = neePool.triangles[t]; - const float area = max(nt.v0.w, 1e-8); - float b0 = sampleXi.y; - float b1 = sampleXi.z; - if (b0 + b1 > 1.0) { b0 = 1.0 - b0; b1 = 1.0 - b1; } - vec3 pObj = nt.v0.xyz * (1.0 - b0 - b1) + nt.v1.xyz * b0 + nt.v2.xyz * b1; - vec3 pWorld = (nt.xform * vec4(pObj, 1.0)).xyz; - vec3 e1 = (nt.xform * vec4(nt.v1.xyz - nt.v0.xyz, 0.0)).xyz; - vec3 e2 = (nt.xform * vec4(nt.v2.xyz - nt.v0.xyz, 0.0)).xyz; - vec3 lightN = cross(e1, e2); - float lightNLen = length(lightN); - if (lightNLen < 1e-9) return vec3(0.0); - lightN /= lightNLen; - vec3 toLight = pWorld - worldPos; - float dist = length(toLight); - if (dist < 1e-4) return vec3(0.0); - vec3 L = toLight / dist; - float cosL = dot(lightN, -L); - float cosS = dot(worldN, L); - if (cosL <= 0.0 || cosS <= 0.0) return vec3(0.0); - if (traceShadow(worldPos + worldN * 0.001, L, dist - 0.001)) { - return vec3(0.0); - } - // Evaluate the shading model in eye space, matching - // coin_rtx_directLighting so an emissive surface reads like an - // analytic light of the same brightness. - vec3 eyePos = (frame.u_view * vec4(worldPos, 1.0)).xyz; - vec3 eyeN = normalize(mat3(frame.u_view) * worldN); - vec3 eyeV = normalize(-eyePos); - vec3 eyeL = normalize((frame.u_view * vec4(L, 0.0)).xyz); - vec3 contribution; - if (mat.pbr.z > 0.5) { - contribution = pbrEval(eyeN, eyeV, eyeL, mat) * cosS; - } - else { - vec3 H = normalize(eyeL + eyeV); - float NdotH = max(dot(eyeN, H), 0.0); - float shininess = max(mat.params.x * 128.0, 0.0); - float specularFactor = shininess > 0.0 ? pow(NdotH, shininess) : 0.0; - contribution = mat.diffuse.rgb * cosS + - mat.specular.rgb * specularFactor; - } - const float pdf = 1.0 / (N * area); - return nt.color.rgb * contribution * cosL / - max(dist * dist * pdf, 1e-8); -} void main() { @@ -701,9 +234,7 @@ void main() mat.emissive.rgb; } else if (mat.params.w > 0.5) { - vec3 eyePos = (frame.u_view * vec4(h.pos, 1.0)).xyz; - vec3 eyeN = normalize(mat3(frame.u_view) * h.normal); - rgb = coin_rtx_gouraud(eyePos, eyeN, mat.diffuse.rgb, mat); + rgb = coin_rtx_gouraud(h.pos, h.normal, mat.diffuse.rgb, mat); } else { rgb = mat.diffuse.rgb; @@ -761,9 +292,7 @@ void main() rgb += coin_rtx_directLighting(h.pos, h.normal, dir, mat); } else if (mat.params.w > 0.5) { - vec3 eyePos = (frame.u_view * vec4(h.pos, 1.0)).xyz; - vec3 eyeN = normalize(mat3(frame.u_view) * h.normal); - rgb += coin_rtx_gouraud(eyePos, eyeN, mat.diffuse.rgb, mat); + rgb += coin_rtx_gouraud(h.pos, h.normal, mat.diffuse.rgb, mat); } rgb += mat.emissive.rgb; normals[index] = vec4(h.normal, 1.0); @@ -799,10 +328,8 @@ void main() mat.emissive.rgb; } else if (mat.params.w > 0.5) { - vec3 eyePos = (frame.u_view * vec4(h.pos, 1.0)).xyz; - vec3 eyeN = normalize(mat3(frame.u_view) * h.normal); rgb = (mat.diffuse.rgb * ao) + - coin_rtx_gouraud(eyePos, eyeN, mat.diffuse.rgb, mat) + + coin_rtx_gouraud(h.pos, h.normal, mat.diffuse.rgb, mat) + mat.emissive.rgb; } else { @@ -912,9 +439,10 @@ void main() // Direct lighting (NEE with shadow rays) plus emissive-surface // sampling. The emissive term also covers the primary ray: the // directly visible surface still receives area-light light. - radiance += weight * coin_rtx_directLighting(h.pos, h.normal, rayDir, mat); + float alpha = clamp(mat.diffuse.a, 0.0, 1.0); + radiance += weight * alpha * coin_rtx_directLighting(h.pos, h.normal, rayDir, mat); if (frame.u_nee.y > 0.5) { - radiance += weight * coin_rtx_neeEmissive( + radiance += weight * alpha * coin_rtx_neeEmissive( h.pos, h.normal, mat, hash3(px.x, px.y, frameIndex + uint(bounce) * 727u + 11u)); } @@ -922,6 +450,24 @@ void main() vec3 n = normalize(h.normal); vec3 albedo = mat.diffuse.rgb; + // Thin-glass transmission: a translucent surface (diffuse alpha below + // 1, FreeCAD Transparency) shades only its opaque (alpha) fraction and + // lets the remaining (1-alpha) continue straight through the surface to + // be shaded by whatever is behind it. This is a deterministic + // composite (unlike a stochastic hit-or-miss mask) so a 0.5-alpha pane + // shows the geometry behind it at half brightness, and an opaque + // material (alpha == 1) is completely unchanged. The ray is pushed + // just past the surface along the current direction so the follow-up + // trace sees the far side (e.g. the back face of a solid) rather than + // re-hitting the face it just left; the bounce-direction sampling below + // is skipped because a transmitted ray already has its direction. + if (alpha < 1.0) { + weight *= (1.0 - alpha); + rayOrigin = h.pos + rayDir * 0.001; + continue; // redir unchanged: the next trace is the same ray past + // the surface + } + vec3 newDir; if (mat.pbr.z > 0.5) { // PBR: importance-sample both lobes (0.5/0.5 split). The GGX diff --git a/data/shaders/vulkan/rt/RTRayTrace.glsl b/data/shaders/vulkan/rt/RTRayTrace.glsl new file mode 100644 index 00000000000..031a5f3969b --- /dev/null +++ b/data/shaders/vulkan/rt/RTRayTrace.glsl @@ -0,0 +1,323 @@ +// data/shaders/vulkan/rt/RTRayTrace.glsl +// Ray-query trace + surface-shading helpers (NEE/MIS/direct), included by PathTrace.glsl. +// Behavior-neutral module split: no #version here (textual #include). +// Depends on RTShadingCommon.glsl (pbrEval) and the PathTrace.glsl globals. + +struct HitInfo { + bool hit; + float t; + vec3 pos; + vec3 normal; + int materialIndex; + int primitiveId; +}; + +// Closest-hit query against the TLAS. All geometry is opaque triangles +// (translucency is handled in the path-tracing loop as a deterministic +// transmission term, not here as a stochastic hit test). +HitInfo traceClosest(vec3 origin, vec3 dir, float tMax) +{ + rayQueryEXT q; + rayQueryInitializeEXT(q, tlas, gl_RayFlagsOpaqueEXT, 0xFF, origin, 0.001, + dir, tMax); + while (rayQueryProceedEXT(q)) { + // Advance to the closest committed triangle intersection. + } + HitInfo h; + h.hit = rayQueryGetIntersectionTypeEXT(q, true) == + gl_RayQueryCommittedIntersectionTriangleEXT; + h.t = -1.0; + h.pos = vec3(0.0); + h.normal = vec3(0.0); + h.materialIndex = 0; + if (!h.hit) return h; + + h.t = rayQueryGetIntersectionTEXT(q, true); + h.pos = origin + dir * h.t; + h.materialIndex = rayQueryGetIntersectionInstanceCustomIndexEXT(q, true); + h.primitiveId = rayQueryGetIntersectionPrimitiveIndexEXT(q, true); + + // Flat shading: the object-space face normal comes from the triangle- + // normal pool (computed on the CPU at BLAS build time) and is + // transformed to world space via the instance's object-to-world + // transform. + RTMaterial mat = matBuffer.materials[h.materialIndex]; + uint prim = rayQueryGetIntersectionPrimitiveIndexEXT(q, true); + uint normalIndex = uint(mat.triangleData.x) + prim; + vec3 objN = normalPoolBuffer.triangleNormals[normalIndex].xyz; + if (dot(objN, objN) < 1e-12) { + h.hit = false; + return h; + } + mat4x3 objToWorld = rayQueryGetIntersectionObjectToWorldEXT(q, true); + h.normal = normalize(mat3(transpose(inverse(mat3(objToWorld)))) * objN); + // The pool normals follow the producer's triangle winding, whose + // orientation is not guaranteed to face the ray; for closed solids the + // outward normal always points toward the ray origin, so flip when + // needed (this also covers two-sided materials). + vec3 toRay = normalize(origin - h.pos); + if (dot(h.normal, toRay) < 0.0) { + h.normal = -h.normal; + } + return h; +} + +// Shadow-query transmittance at a point: the fraction of the light's radiance +// that survives the segment to the light after passing through any +// transparent surfaces. An opaque (alpha >= 1) surface blocks the light +// entirely (returns 0). A translucent surface (alpha < 1, FreeCAD +// Transparency) attenuates the ray by (1 - alpha) and lets the remainder +// continue so the ray still sees surfaces behind it; the returned transmittance +// is the product over every transparent surface crossed. This makes a glass +// pane cast a proportionally lighter shadow instead of the fully-opaque +// silhouette produced by the old binary test. +// +// The ray is walked as a sequence of closest-hit queries (not a +// TerminateOnFirstHit query, which stops at the first triangle whatever its +// material): the nearest surface is found, its material alpha decides whether +// the ray stops (opaque) or is re-launched just past it (transparent), up to +// MAX_TRANSPARENT_HITS surfaces. For the common opaque case the first query +// returns an opaque surface and the loop breaks after one iteration, so there +// is no steady-state cost over the previous binary shadow ray. +float shadowTransmittance(vec3 origin, vec3 dir, float tMax) +{ + const int MAX_TRANSPARENT_HITS = 8; + float transmittance = 1.0; + vec3 curOrigin = origin; + float curMax = tMax; + for (int i = 0; i < MAX_TRANSPARENT_HITS; ++i) { + rayQueryEXT q; + rayQueryInitializeEXT(q, tlas, gl_RayFlagsOpaqueEXT, 0xFF, curOrigin, + 0.001, dir, curMax); + while (rayQueryProceedEXT(q)) { + // Walk to the closest committed triangle intersection. + } + if (rayQueryGetIntersectionTypeEXT(q, true) != + gl_RayQueryCommittedIntersectionTriangleEXT) { + break; // nothing between the point and the light here + } + RTMaterial mat = matBuffer.materials[ + rayQueryGetIntersectionInstanceCustomIndexEXT(q, true)]; + const float alpha = clamp(mat.diffuse.a, 0.0, 1.0); + if (alpha >= 1.0) { + return 0.0; // opaque surface: fully blocks the light + } + transmittance *= (1.0 - alpha); + if (transmittance < 1e-4) { + return 0.0; // negligible remainder + } + const float hitT = rayQueryGetIntersectionTEXT(q, true); + const float moved = hitT + 0.001; + curOrigin += dir * moved; + curMax -= moved; + } + return transmittance; +} + +// Ambient-occlusion visibility at a hit point: N rays over the cosine- +// weighted hemisphere distributed by the golden-angle spiral, returned as the +// fraction that reach the background unoccluded (1 = fully open). Single- +// sample, no accumulation -- the seed only stabilises the spiral phase so the +// real-time preview does not flicker frame to frame. +float coin_rtx_ao(vec3 worldPos, vec3 worldN, vec2 seed) +{ + vec3 N = normalize(worldN); + // Tangent basis around N. + vec3 up = (abs(N.y) < 0.999) ? vec3(0.0, 1.0, 0.0) : vec3(1.0, 0.0, 0.0); + vec3 T = normalize(cross(up, N)); + vec3 B = cross(N, T); + float phase = seed.x * 6.2831853; + vec3 P = worldPos + N * 0.001; + float visible = 0.0; + const int N_SAMPLES = 8; + for (int i = 0; i < N_SAMPLES; ++i) { + float fi = float(i) + phase; + float phi = fi * 2.39996; // golden angle (radians) + float cosT = 1.0 - (float(i) + 0.5) / float(N_SAMPLES); + float sinT = sqrt(max(1.0 - cosT * cosT, 0.0)); + vec3 dir = T * (cos(phi) * sinT) + B * (sin(phi) * sinT) + N * cosT; + // Transmittance-weighted visibility: a transparent surface partially + // occludes, so it contributes (1 - alpha) toward the visible fraction. + visible += shadowTransmittance(P, dir, 1e30); + } + return visible / float(N_SAMPLES); +} + +// Same Gouraud evaluation as the raster visual program and the v1 chit. +// The producer's light data is world-space (the standard IR convention), so +// everything is evaluated directly in world space; the result is identical to +// the eye-space evaluation because every quantity is a rotation of the same +// scene and shading only consumes dot products. +vec3 coin_rtx_gouraud(vec3 worldPos, vec3 worldNormal, vec3 baseColor, + RTMaterial mat) +{ + vec3 N = normalize(worldNormal); + vec3 V = normalize(frame.u_cameraPos.xyz - worldPos); + if (mat.params.y > 0.5 && dot(N, V) < 0.0) { + N = -N; + } + vec3 litColor = mat.ambient.rgb; // ambient light folded in by producer + int lightCount = int(mat.params.z); + for (int i = 0; i < COIN_MAX_LIGHTS; ++i) { + if (i >= lightCount) break; + + vec3 L = mat.lightDirection[i].xyz; + float attenuation = 1.0; + float spotFactor = 1.0; + if (mat.lightType[i].x > 0.5) { + vec3 lightVector = mat.lightPosition[i].xyz - worldPos; + float distanceToLight = length(lightVector); + if (distanceToLight <= 0.0001) continue; + L = lightVector / distanceToLight; + vec3 att = mat.lightAttenuation[i].xyz; + attenuation = 1.0 / max(att.z + att.y * distanceToLight + + att.x * distanceToLight * distanceToLight, + 0.0001); + if (mat.lightType[i].x > 1.5) { + vec3 coneDir = normalize(mat.lightDirection[i].xyz); + vec3 fromLight = normalize(worldPos - mat.lightPosition[i].xyz); + float spotCos = dot(coneDir, fromLight); + if (spotCos < mat.lightSpot[i].x) continue; + spotFactor = pow(max(spotCos, 0.0), mat.lightSpot[i].y); + } + } + + vec3 Ln = normalize(L); + float NdotL = max(dot(N, Ln), 0.0); + vec3 H = normalize(Ln + V); + float NdotH = max(dot(N, H), 0.0); + float shininess = max(mat.params.x * 128.0, 0.0); + float specularFactor = shininess > 0.0 ? pow(NdotH, shininess) : 0.0; + vec3 diffuse = baseColor * NdotL; + vec3 specular = mat.specular.rgb * specularFactor; + litColor += mat.lightColor[i].rgb * attenuation * spotFactor * + (diffuse + specular); + } + return clamp(litColor + mat.emissive.rgb, 0.0, 1.0); +} + +// Next-event-estimation direct lighting with shadow rays. The producer's +// light data is world-space (the standard IR convention), so the shading +// terms and the shadow query are evaluated directly in world space against +// the world-space TLAS -- no view-space round-trip. +vec3 coin_rtx_directLighting(vec3 worldPos, vec3 worldN, vec3 rayDir, + RTMaterial mat) +{ + vec3 N = normalize(worldN); + vec3 V = normalize(frame.u_cameraPos.xyz - worldPos); + vec3 lit = mat.ambient.rgb; // ambient light folded in by producer + int lightCount = int(mat.params.z); + for (int i = 0; i < COIN_MAX_LIGHTS; ++i) { + if (i >= lightCount) break; + + vec3 L; + float attenuation = 1.0; + float spotFactor = 1.0; + float distToLight = 1e30; + if (mat.lightType[i].x > 0.5) { + vec3 lightVector = mat.lightPosition[i].xyz - worldPos; + distToLight = length(lightVector); + if (distToLight <= 0.0001) continue; + L = lightVector / distToLight; + vec3 att = mat.lightAttenuation[i].xyz; + attenuation = 1.0 / max(att.z + att.y * distToLight + + att.x * distToLight * distToLight, + 0.0001); + if (mat.lightType[i].x > 1.5) { + vec3 coneDir = normalize(mat.lightDirection[i].xyz); + vec3 fromLight = normalize(worldPos - mat.lightPosition[i].xyz); + float spotCos = dot(coneDir, fromLight); + if (spotCos < mat.lightSpot[i].x) continue; + spotFactor = pow(max(spotCos, 0.0), mat.lightSpot[i].y); + } + } + else { + L = mat.lightDirection[i].xyz; + } + + L = normalize(L); + float NdotL = dot(N, L); + if (NdotL <= 0.0) continue; + + // Shadow ray: the light data is already world space, so it can be + // used directly for the query against the world-space TLAS. + float transm = shadowTransmittance(worldPos + worldN * 0.001, L, + distToLight - 0.001); + if (transm <= 1e-4) { + continue; + } + + vec3 contribution; + if (mat.pbr.z > 0.5) { + contribution = pbrEval(N, V, normalize(L), mat) * NdotL; + } + else { + vec3 H = normalize(normalize(L) + V); + float NdotH = max(dot(N, H), 0.0); + float shininess = max(mat.params.x * 128.0, 0.0); + float specularFactor = shininess > 0.0 ? pow(NdotH, shininess) : 0.0; + contribution = mat.diffuse.rgb * NdotL + + mat.specular.rgb * specularFactor; + } + lit += transm * mat.lightColor[i].rgb * attenuation * spotFactor * + contribution; + } + return clamp(lit, 0.0, 1.0); +} + +// Emissive-surface next-event estimation: sample one emissive triangle +// uniformly, shadow-ray it and evaluate the same shading models as the +// analytic-light path. pdf = 1 / (triangleCount * area). +vec3 coin_rtx_neeEmissive(vec3 worldPos, vec3 worldN, RTMaterial mat, + vec3 sampleXi) +{ + const float N = frame.u_nee.x; + if (N < 0.5) return vec3(0.0); + int t = int(clamp(sampleXi.x * N, 0.0, N - 1.0)); + NeeTriangle nt = neePool.triangles[t]; + const float area = max(nt.v0.w, 1e-8); + float b0 = sampleXi.y; + float b1 = sampleXi.z; + if (b0 + b1 > 1.0) { b0 = 1.0 - b0; b1 = 1.0 - b1; } + vec3 pObj = nt.v0.xyz * (1.0 - b0 - b1) + nt.v1.xyz * b0 + nt.v2.xyz * b1; + vec3 pWorld = (nt.xform * vec4(pObj, 1.0)).xyz; + vec3 e1 = (nt.xform * vec4(nt.v1.xyz - nt.v0.xyz, 0.0)).xyz; + vec3 e2 = (nt.xform * vec4(nt.v2.xyz - nt.v0.xyz, 0.0)).xyz; + vec3 lightN = cross(e1, e2); + float lightNLen = length(lightN); + if (lightNLen < 1e-9) return vec3(0.0); + lightN /= lightNLen; + vec3 toLight = pWorld - worldPos; + float dist = length(toLight); + if (dist < 1e-4) return vec3(0.0); + vec3 L = toLight / dist; + float cosL = dot(lightN, -L); + float cosS = dot(worldN, L); + if (cosL <= 0.0 || cosS <= 0.0) return vec3(0.0); + float transm = shadowTransmittance(worldPos + worldN * 0.001, L, + dist - 0.001); + if (transm <= 1e-4) { + return vec3(0.0); + } + // Evaluate the shading model in world space, matching + // coin_rtx_directLighting so an emissive surface reads like an + // analytic light of the same brightness (world == eye for dot-product + // shading under a rigid view transform). + vec3 shadeN = normalize(worldN); + vec3 shadeV = normalize(frame.u_cameraPos.xyz - worldPos); + vec3 contribution; + if (mat.pbr.z > 0.5) { + contribution = pbrEval(shadeN, shadeV, L, mat) * cosS; + } + else { + vec3 H = normalize(L + shadeV); + float NdotH = max(dot(shadeN, H), 0.0); + float shininess = max(mat.params.x * 128.0, 0.0); + float specularFactor = shininess > 0.0 ? pow(NdotH, shininess) : 0.0; + contribution = mat.diffuse.rgb * cosS + + mat.specular.rgb * specularFactor; + } + const float pdf = 1.0 / (N * area); + return transm * nt.color.rgb * contribution * cosL / + max(dist * dist * pdf, 1e-8); +} diff --git a/data/shaders/vulkan/rt/RTShadingCommon.glsl b/data/shaders/vulkan/rt/RTShadingCommon.glsl new file mode 100644 index 00000000000..009130b3775 --- /dev/null +++ b/data/shaders/vulkan/rt/RTShadingCommon.glsl @@ -0,0 +1,202 @@ +// data/shaders/vulkan/rt/RTShadingCommon.glsl +// Shading math / environment IBL / BRDF helpers, included by PathTrace.glsl. +// Behavior-neutral module split: no #version here (textual #include). +// Depends on the globals declared in PathTrace.glsl (frame, matBuffer, ...). + +// Small xorshift-style hash: pixel + seed -> two values in [0,1)^2. +vec2 hash2(uint px, uint py, uint seed) +{ + uint s = px * 747796405u + py * 2891336453u + seed * 2654435761u + 149857u; + s = (s ^ (s >> 16)) * 2246822519u; + s = (s ^ (s >> 13)) * 3266489917u; + s ^= s >> 16; + return vec2(float(s & 0xffffu), float((s >> 16) & 0xffffu)) * (1.0 / 65536.0); +} + +// Three values in [0,1)^3 for multi-dimensional sampling decisions. +vec3 hash3(uint px, uint py, uint seed) +{ + return vec3(hash2(px, py, seed), hash2(px, py, seed + 1u).x); +} + +// Cosine-weighted hemisphere sample around +Z. +vec3 sampleCosine(vec2 u) +{ + float a = sqrt(max(u.x, 0.0)); + float phi = 6.28318530718 * u.y; + return vec3(a * cos(phi), a * sin(phi), sqrt(max(1.0 - u.x, 0.0))); +} + +// --- Procedural environment / IBL ---------------------------------------- +// The environment is either an analytic sky (mode 0): a vertical gradient +// between the background bottom (horizon) and top (zenith) colors, plus a sun +// disk that falls off with a user-set power around the sun direction; or a +// camera-centered "room cove" (mode 1): a back-facing box the viewer sits +// inside with a colored floor, four walls and a ceiling, so the cubemap reads +// as a real scene (desk / table / white lab) whose reflections carry the room. +// In both cases radiance is a closed-form function of direction, so it can be +// evaluated for the primary-ray miss (background/reflections), as a diffuse +// irradiance term (ambient) and as a specular IBL term (glossy surfaces). +vec3 envSunDir() +{ + return normalize(frame.u_env.yzw); +} + +// Surface color of the environment along a world direction, independent of +// the intensity/lighting scale. Sky mode returns the vertical gradient; +// room mode returns the face of the camera-aligned cove box the ray leaves. +vec3 envSurfaceColor(vec3 dir) +{ + if (frame.u_envRoom.w > 0.5) { + // Room cove: a box centered on the camera. floorY/ceilY are + // camera-relative offsets; the box spans +/-E on X and Z. Trace a + // ray from the box center (camera) along dir and take the nearest + // back-facing plane the ray exits through. + const float E = max(frame.u_envRoomScale.x, 0.1); + const float floorY = frame.u_envRoomFloor.w; // camera-relative + const float ceilY = frame.u_envRoomCeil.w; // camera-relative + vec3 n = normalize(dir); + float t = 1e30; + vec3 color = vec3(0.0); + // X walls (+/-E). + if (n.x > 1e-5) { + float tx = E / n.x; + if (tx < t) { t = tx; color = frame.u_envRoom.rgb; } + } + if (n.x < -1e-5) { + float tx = -E / n.x; + if (tx < t) { t = tx; color = frame.u_envRoom.rgb; } + } + // Z walls (+/-E). + if (n.z > 1e-5) { + float tz = E / n.z; + if (tz < t) { t = tz; color = frame.u_envRoom.rgb; } + } + if (n.z < -1e-5) { + float tz = -E / n.z; + if (tz < t) { t = tz; color = frame.u_envRoom.rgb; } + } + // Floor / ceiling planes (ray from the box center, so t = off / n.y). + if (n.y < -1e-5) { + float ty = floorY / n.y; + if (ty >= 0.0 && ty < t) { t = ty; color = frame.u_envRoomFloor.rgb; } + } + if (n.y > 1e-5) { + float ty = ceilY / n.y; + if (ty >= 0.0 && ty < t) { t = ty; color = frame.u_envRoomCeil.rgb; } + } + return color; + } + // Sky gradient: dir.y in [-1,1]; -1 = horizon color, +1 = zenith. + float t = clamp(dir.y * 0.5 + 0.5, 0.0, 1.0); + return mix(frame.u_bgBottom.rgb, frame.u_bgTop.rgb, t); +} + +// Environment radiance along a world direction (surface color * sky/room +// intensity, plus the sun disk). +vec3 envRadiance(vec3 dir) +{ + vec3 n = normalize(dir); + vec3 env = envSurfaceColor(n) * frame.u_env.x; + float d = max(dot(n, envSunDir()), 0.0); + vec3 sun = frame.u_envColor.rgb * pow(d, max(frame.u_envColor.w, 1.0)); + return env + sun * frame.u_env.x; +} + +// Diffuse irradiance of the environment at a surface normal (ambient). +// Approximates the cosine-weighted hemisphere integral of envSurfaceColor by +// sampling at N fixed cosine-hemisphere directions, deterministic so the +// single-sample preview does not flicker frame to frame. +vec3 envIrradiance(vec3 n) +{ + vec3 up = (abs(n.y) < 0.999) ? vec3(0.0, 1.0, 0.0) : vec3(1.0, 0.0, 0.0); + vec3 tangent = normalize(cross(up, n)); + vec3 bitangent = cross(n, tangent); + const int N = 4; + float phase = 0.0; + vec3 irr = vec3(0.0); + for (int i = 0; i < N; ++i) { + float fi = (float(i) + phase) * 2.39996; // golden-angle spiral + float cosT = sqrt(max((float(i) + 0.5) / float(N), 0.0)); + float sinT = sqrt(max(1.0 - cosT * cosT, 0.0)); + vec3 dir = tangent * (cos(fi) * sinT) + bitangent * (sin(fi) * sinT) + + n * cosT; + irr += envSurfaceColor(dir); + } + return (irr / float(N)) * 3.14159265 * frame.u_env.x; +} + +// Specular IBL at a reflection direction with a roughness blur estimate. +// Samples the environment (and sun) at the reflected direction; a higher +// roughness darkens and desaturates the surface term while the sun stays only +// for glossy reflections so it reads as a hot spot. +vec3 envSpecular(vec3 r, float roughness) +{ + vec3 rn = normalize(r); + float rough = clamp(roughness, 0.0, 1.0); + vec3 radiance = envRadiance(rn); + float sunAlign = max(dot(rn, envSunDir()), 0.0); + radiance *= mix(1.0, (0.3 + 0.7 * sunAlign), rough); + return radiance; +} + +// --- PBR (metallic-roughness) BRDF helpers -------------------------------- +float pbrAlpha(RTMaterial mat) +{ + return clamp(mat.pbr.y * mat.pbr.y, 0.001, 1.0); +} + +vec3 pbrF0(RTMaterial mat) +{ + return mix(vec3(0.04), mat.diffuse.rgb, clamp(mat.pbr.x, 0.0, 1.0)); +} + +float pbrD_GGX(float NdotH, float a) +{ + float a2 = a * a; + float d = NdotH * NdotH * (a2 - 1.0) + 1.0; + return a2 / max(3.14159265 * d * d, 1e-7); +} + +float pbrG_SchlickGGX(float NdotX, float a) +{ + float k = a * 0.5; + return NdotX / max(NdotX * (1.0 - k) + k, 1e-7); +} + +float pbrG_Smith(float NdotV, float NdotL, float a) +{ + return pbrG_SchlickGGX(NdotV, a) * pbrG_SchlickGGX(NdotL, a); +} + +vec3 pbrF_Schlick(float VdotH, vec3 F0) +{ + return F0 + (vec3(1.0) - F0) * pow(clamp(1.0 - VdotH, 0.0, 1.0), 5.0); +} + +// Full BRDF evaluation for unit N, V, L (NdotV > 0, NdotL >= 0). The +// caller multiplies by NdotL and the incoming radiance. +vec3 pbrEval(vec3 N, vec3 V, vec3 L, RTMaterial mat) +{ + vec3 H = normalize(V + L); + float NdotV = max(dot(N, V), 1e-6); + float NdotL = max(dot(N, L), 0.0); + float NdotH = max(dot(N, H), 0.0); + float VdotH = max(dot(V, H), 0.0); + float a = pbrAlpha(mat); + vec3 F = pbrF_Schlick(VdotH, pbrF0(mat)); + vec3 kd = (vec3(1.0) - F) * (1.0 - clamp(mat.pbr.x, 0.0, 1.0)); + return kd * mat.diffuse.rgb / 3.14159265 + + F * pbrD_GGX(NdotH, a) * pbrG_Smith(NdotV, NdotL, a) / + max(4.0 * NdotV * NdotL, 1e-6); +} + +// GGX (VNDF) half-vector sample around +Z. +vec3 sampleGGX(vec2 u, float a) +{ + float phi = 6.28318530718 * u.y; + float cosTheta = + sqrt(max((1.0 - u.x) / (1.0 + (a * a - 1.0) * u.x), 0.0)); + float sinTheta = sqrt(max(1.0 - cosTheta * cosTheta, 0.0)); + return vec3(sinTheta * cos(phi), sinTheta * sin(phi), cosTheta); +} diff --git a/data/shaders/vulkan/rt/Raygen.glsl b/data/shaders/vulkan/rt/Raygen.glsl index e46973c2f16..dbfbb0c549c 100644 --- a/data/shaders/vulkan/rt/Raygen.glsl +++ b/data/shaders/vulkan/rt/Raygen.glsl @@ -114,17 +114,14 @@ vec3 sampleCosine(vec2 u) return vec3(a * cos(phi), a * sin(phi), sqrt(max(1.0 - u.x, 0.0))); } -// Next-event-estimation direct lighting with shadow rays. Matches the -// raster Gouraud convention: the producer's light data is used verbatim -// against eye-space normals, so the direct term looks like the raster -// viewport. The producer stores lights in eye space (the light's node -// matrix is ModelMatrix * ViewingMatrix), so the shadow ray direction is -// converted back to world space before the TLAS trace. +// Next-event-estimation direct lighting with shadow rays. The producer's +// light data is world-space (the standard IR convention), so the shading +// terms and the shadow trace are evaluated directly in world space against +// the world-space TLAS -- no view-space round-trip. vec3 coin_rtx_directLighting(vec3 worldPos, vec3 worldN, RTMaterial mat) { - vec3 eyePos = (frame.u_view * vec4(worldPos, 1.0)).xyz; - vec3 N = normalize(mat3(frame.u_view) * worldN); - vec3 V = normalize(-eyePos); + vec3 N = normalize(worldN); + vec3 V = normalize(frame.u_cameraPos.xyz - worldPos); vec3 lit = mat.ambient.rgb; // ambient light folded in by producer int lightCount = int(mat.params.z); for (int i = 0; i < COIN_MAX_LIGHTS; ++i) { @@ -135,7 +132,7 @@ vec3 coin_rtx_directLighting(vec3 worldPos, vec3 worldN, RTMaterial mat) float spotFactor = 1.0; float distToLight = 1e30; if (mat.lightType[i].x > 0.5) { - vec3 lightVector = mat.lightPosition[i].xyz - eyePos; + vec3 lightVector = mat.lightPosition[i].xyz - worldPos; distToLight = length(lightVector); if (distToLight <= 0.0001) continue; L = lightVector / distToLight; @@ -144,7 +141,7 @@ vec3 coin_rtx_directLighting(vec3 worldPos, vec3 worldN, RTMaterial mat) att.x * distToLight * distToLight, 0.0001); if (mat.lightType[i].x > 1.5) { vec3 coneDir = normalize(mat.lightDirection[i].xyz); - vec3 fromLight = normalize(eyePos - mat.lightPosition[i].xyz); + vec3 fromLight = normalize(worldPos - mat.lightPosition[i].xyz); float spotCos = dot(coneDir, fromLight); if (spotCos < mat.lightSpot[i].x) continue; spotFactor = pow(max(spotCos, 0.0), mat.lightSpot[i].y); @@ -154,18 +151,17 @@ vec3 coin_rtx_directLighting(vec3 worldPos, vec3 worldN, RTMaterial mat) L = mat.lightDirection[i].xyz; } - float NdotL = dot(N, normalize(L)); + L = normalize(L); + float NdotL = dot(N, L); if (NdotL <= 0.0) continue; // Shadow ray: the shadow pair writes only payload.occluded. The - // TLAS is world space, so convert the eye-space direction L back to - // world space before tracing. + // light data is already world space, so trace L directly against + // the world-space TLAS. payload.occluded = 0u; - vec3 worldL = normalize((frame.u_viewInverse * - vec4(normalize(L), 0.0)).xyz); traceRayEXT(tlas, gl_RayFlagsOpaqueEXT, 0xFF, SBT_HIT_SHADOW, 0, SBT_MISS_SHADOW, worldPos + worldN * 0.001, 0.001, - worldL, distToLight - 0.001, 0); + L, distToLight - 0.001, 0); if (payload.occluded != 0u) continue; vec3 H = normalize(normalize(L) + V); diff --git a/data/shaders/vulkan/visual/Vertex.glsl b/data/shaders/vulkan/visual/Vertex.glsl index 9f3ac70cf7c..136fbeb603a 100644 --- a/data/shaders/vulkan/visual/Vertex.glsl +++ b/data/shaders/vulkan/visual/Vertex.glsl @@ -7,6 +7,16 @@ // location 2: vec4 a_color // location 3: vec2 a_texcoord // +// The model matrix is supplied per-instance via an instanced vertex attribute +// (binding 1, VK_VERTEX_INPUT_RATE_INSTANCE) so an entire group of commands +// that share geometry/material but differ only by their model matrix can be +// drawn with a single instanced vkCmdDraw. A one-element instance buffer is +// bound for non-instanced draws (instanceCount == 1), so the shader reads the +// transform from the same attribute in every case. The attribute bytes carry +// the model matrix in row-major SbMat order; assembling them as mat4 columns +// reproduces the same effective (transposed) matrix the GLSL compiler builds +// from the old column-major UBO mat4. +// // A single push-constant block carries the projection matrix, the uniform // diffuse color, and scalar feature flags. The view/model matrices plus the // per-draw material state live in a std140 uniform buffer (set 1, binding 0) @@ -57,6 +67,14 @@ layout(location = 0) in vec3 a_position; layout(location = 1) in vec3 a_normal; layout(location = 2) in vec4 a_color; layout(location = 3) in vec2 a_texcoord; +// Per-instance model matrix (binding 1, rate INSTANCE). The four rows of the +// row-major SbMat are carried as four vec4 attributes; assembling them as the +// columns of a mat4 gives the same effective transform the UBO mat4 produced, +// so lighting/transform output is identical to the pre-instancing path. +layout(location = 4) in vec4 a_iModelRow0; +layout(location = 5) in vec4 a_iModelRow1; +layout(location = 6) in vec4 a_iModelRow2; +layout(location = 7) in vec4 a_iModelRow3; // Lighting is evaluated per fragment (see Fragment.glsl): Gouraud shading // hardens the light gradient into linear bands between vertices, which on @@ -70,9 +88,11 @@ layout(location = 3) out vec2 v_texcoord; void main() { - vec4 worldPos = draw.u_model * vec4(a_position, 1.0); + mat4 u_iModel = mat4(a_iModelRow0, a_iModelRow1, + a_iModelRow2, a_iModelRow3); + vec4 worldPos = u_iModel * vec4(a_position, 1.0); vec4 eyePos = draw.u_view * worldPos; - mat3 normalMatrix = transpose(inverse(mat3(draw.u_view * draw.u_model))); + mat3 normalMatrix = transpose(inverse(mat3(draw.u_view * u_iModel))); vec3 eyeNormal = normalMatrix * a_normal; vec4 clip = pc.u_proj * eyePos; diff --git a/include/Inventor/SbViewportRegion.h b/include/Inventor/SbViewportRegion.h index 57f5d68a0c0..b788463a8fa 100644 --- a/include/Inventor/SbViewportRegion.h +++ b/include/Inventor/SbViewportRegion.h @@ -43,6 +43,7 @@ class COIN_DLL_API SbViewportRegion { SbViewportRegion(short width, short height); SbViewportRegion(SbVec2s winSize); SbViewportRegion(const SbViewportRegion & vpReg); + SbViewportRegion & operator=(const SbViewportRegion & vpReg) = default; void setWindowSize(short width, short height); void setWindowSize(SbVec2s winSize); diff --git a/include/Inventor/elements/SoElement.h b/include/Inventor/elements/SoElement.h index d50cca2bc86..8507215777e 100644 --- a/include/Inventor/elements/SoElement.h +++ b/include/Inventor/elements/SoElement.h @@ -128,4 +128,40 @@ SoElement::getConstElement(SoState * const state, return element; } +// trivial scalar accessors kept inline: getDepth() is called from the hot +// SoState::getElement() fast path on every element access. +inline void +SoElement::setDepth(const int depth) +{ + this->depth = depth; +} + +inline int +SoElement::getDepth(void) const +{ + return this->depth; +} + +// SoState::getElement() is the single most frequently invoked method in the +// whole library: every element accessor (So*Element::get()/set()/ +// getConstElement()) of every traversed node funnels through it. It is +// defined here (not in SoState.h) because it dereferences SoElement to read +// its depth, and SoElement.h is the first place where both classes are +// complete (SoElement.h includes SoState.h). The common case -- the element +// is enabled and already at the current depth -- is kept inline with no +// cross-translation-unit call, no virtual dispatch and no debug assertion; +// only the rare lazy copy-on-write push branches out of line to +// SoState::getElementPush() (SoState.cpp). This removes the per-access +// call/assert overhead that dominated the render traversal. +inline SoElement * +SoState::getElement(const int stackindex) +{ + if (stackindex >= this->numstacks || this->stack[stackindex] == NULL) + return NULL; + SoElement * element = this->stack[stackindex]; + if (element->getDepth() < this->depth) + return this->getElementPush(stackindex, element); + return element; +} + #endif // !COIN_SOELEMENT_H diff --git a/include/Inventor/misc/SoState.h b/include/Inventor/misc/SoState.h index bd1ac459671..0e4175e8261 100644 --- a/include/Inventor/misc/SoState.h +++ b/include/Inventor/misc/SoState.h @@ -71,6 +71,15 @@ class COIN_DLL_API SoState { int numstacks; SbBool cacheopen; class SoStateP * pimpl; + + // Depth is kept here (not in the pimpl) so the inline getElement() fast path + // below can read it without pulling the incomplete SoStateP type into the + // header. + int depth; + + // Out-of-line lazy copy-on-write push branch invoked by inline getElement() + // when the element is stale (below the current depth). + SoElement * getElementPush(const int stackindex, SoElement * element); }; // these methods are used very often, and is therefore inlined @@ -81,6 +90,13 @@ SoState::isElementEnabled(const int stackindex) const return (stackindex < this->numstacks) && (this->stack[stackindex] != NULL); } +// The inline SoState::getElement() fast path (the single most-frequently +// invoked method in the whole library) is defined at the end of +// SoElement.h, because it dereferences SoElement to read its depth -- and +// SoElement.h is the first place where both SoElement and SoState are +// complete (SoElement.h includes SoState.h). The out-of-line copy-on-write +// push branch is SoState::getElementPush() (see SoState.cpp). + inline const SoElement * SoState::getConstElement(const int stackindex) const { @@ -101,5 +117,4 @@ SoState::getElementNoPush(const int stackindex) const return this->stack[stackindex]; } - #endif // !COIN_SOSTATE_H diff --git a/include/Inventor/rendering/SoRenderIR.h b/include/Inventor/rendering/SoRenderIR.h index feb21c95401..42eedf36639 100644 --- a/include/Inventor/rendering/SoRenderIR.h +++ b/include/Inventor/rendering/SoRenderIR.h @@ -455,15 +455,34 @@ enum SoLightType : uint8_t { SO_LIGHT_SPOT }; +/*! + \brief Maximum number of lights a retained render-backend shader evaluates. + + All backends (GL visual program, Vulkan LightingBlock, RTX RTMaterial) + evaluate at most this many lights; setups carrying more are truncated with + a one-time warning by the consumer. +*/ +constexpr int SO_MAX_SHADER_LIGHTS = 8; + /*! \struct SoLightData - \brief View-space light description used by the render backend. + \brief Scene-space (world) light description used by the render backends. + + The geometry fields are expressed in the scene's WORLD space: `direction` + is the normalized direction the light travels TOWARD (for a directional + light this is the negated SoDirectionalLight::direction field, rotated by + the light node's model matrix), and `position` is the light's world-space + location for point/spot lights. The data is view-independent -- it does + not change when the camera moves -- so a draw list kept across a camera- + only frame needs no light re-derivation. Consumers that shade in eye + space derive it with SoRenderIR::lightToEye(); the path tracer consumes + the world-space fields directly. */ struct SoLightData { SoLightType type = SO_LIGHT_DIRECTIONAL; SbVec3f color = SbVec3f(1.0f, 1.0f, 1.0f); - SbVec3f direction = SbVec3f(0.0f, 0.0f, 1.0f); - SbVec3f position = SbVec3f(0.0f, 0.0f, 1.0f); + SbVec3f direction = SbVec3f(0.0f, 0.0f, 1.0f); // world, toward the light target + SbVec3f position = SbVec3f(0.0f, 0.0f, 1.0f); // world SbVec3f attenuation = SbVec3f(0.0f, 0.0f, 1.0f); float spotCutoffCos = -1.0f; float spotExponent = 0.0f; @@ -471,22 +490,75 @@ struct SoLightData { /*! \struct SoLightingData - \brief Shared lighting setup referenced by render commands. + \brief Shared (world-space) lighting setup referenced by render commands. */ struct SoLightingData { SbVec3f ambient = SbVec3f(0.2f, 0.2f, 0.2f); std::vector lights; }; +namespace SoRenderIR { + +/*! + \brief Transform one world-space light into eye space for \a view. + + Directions are rotated by the view matrix; positions are transformed + fully. Spot cone parameters are carried unchanged. +*/ +COIN_DLL_API SoLightData lightToEye(const SoLightData & world, + const SbMatrix & view); + +} // namespace SoRenderIR + +/*! + \struct SoLightingBlock + \brief Standardized fixed-capacity GPU mirror of one world-space lighting + setup, shared by every retained backend's lighting uniform/staging buffer. + + The layout is the std140 `LightingBlock` uniform layout of the Vulkan + visual shaders byte-for-byte (and the array form the GL visual program + uploads). Producers fill it with SoRenderIR::fillLightingBlock(); + backends memcpy the finished block straight into their buffer, so the + per-light field packing lives in exactly one place. The evaluated light + count travels separately (the raster path carries it in the per-draw + material block), keeping the block itself a pure layout mirror. +*/ +struct COIN_DLL_API SoLightingBlock { + float ambientLight[4]; // offset 0 + float lightType[SO_MAX_SHADER_LIGHTS * 4]; // offset 16 + float lightColor[SO_MAX_SHADER_LIGHTS * 4]; // offset 144 + float lightDirection[SO_MAX_SHADER_LIGHTS * 4]; // offset 272 + float lightPosition[SO_MAX_SHADER_LIGHTS * 4]; // offset 400 + float lightAttenuation[SO_MAX_SHADER_LIGHTS * 4]; // offset 528 + float lightSpotParams[SO_MAX_SHADER_LIGHTS * 4]; // offset 656 +}; +static_assert(sizeof(SoLightingBlock) == 784, + "SoLightingBlock must match the std140 LightingBlock layout"); + +namespace SoRenderIR { + +/*! + \brief Fill a SoLightingBlock from a world-space SoLightingData. + + When \a toEye is non-NULL every light is transformed into eye space with + it (raster/preview consumers); when NULL the world-space fields are copied + verbatim (path-tracing consumers). Ambient passes through unchanged. + Returns the number of lights actually written (<= SO_MAX_SHADER_LIGHTS). +*/ +COIN_DLL_API int fillLightingBlock(SoLightingBlock & block, + const SoLightingData & world, + const SbMatrix * toEye); + +} // namespace SoRenderIR + /*! \struct SoLightingRaw - \brief Scene-space inputs behind one SoLightingData entry. + \brief Scene-space inputs behind one SoLightingData entry (provenance). - The view-space fields of SoLightingData are derived during traversal and - go stale when the camera moves. Retaining the scene-space vectors plus - each light's model matrix (and the viewing matrix used at fill time) lets - a draw list kept across a camera-only frame re-derive the eye-space data - with SoDrawList::restrikeLighting() instead of re-traversing the scene. + The setups themselves are world-space and view-independent, so nothing has + to be re-derived on camera moves. The raw entry is recorded for + provenance and participates in deduplication, keeping setups that differ + only by their originating light nodes distinct. */ struct SoLightingRaw { struct RawLight { @@ -502,7 +574,6 @@ struct SoLightingRaw { bool hasRaw = false; SbVec3f ambient = SbVec3f(0.2f, 0.2f, 0.2f); std::vector lights; - SbMatrix viewUsed; //!< SoViewingMatrixElement value at fill time }; /*! @@ -560,9 +631,9 @@ class COIN_DLL_API SoDrawList { SoLightingHandle addLightingSetup(const SoLightingData & lighting); //! Variant carrying the scene-space inputs (SoLightingRaw) alongside the - //! view-space setup so the entry can be restriked after a camera move. - //! The raw entry participates in deduplication (two setups equal in eye - //! space but derived from different cameras must stay separate). + //! setup. The raw entry participates in deduplication (two setups equal + //! in their world-space fields but derived from different light nodes or + //! cameras must stay separate). SoLightingHandle addLightingSetup(const SoLightingData & lighting, const SoLightingRaw & raw); @@ -570,12 +641,11 @@ class COIN_DLL_API SoDrawList { //! Returns NULL for handle 0 or an invalid handle. const SoLightingData * getLighting(SoLightingHandle handle) const; - //! Re-derive the eye-space fields of every retained lighting setup whose - //! fill-time viewing matrix equals \a prevView, using the scene-space - //! raw inputs transformed by \a newView. Entries filled without raw data - //! (or from a different camera) are left untouched. Called by the Vulkan - //! render manager on camera-only frames that replay a retained draw list - //! instead of re-traversing the scene graph. + //! Compatibility no-op: lighting setups are world-space and view- + //! independent, so a camera-only frame replaying a retained draw list + //! needs no light re-derivation. Kept exported (rather than removed) so + //! already-linked consumers (e.g. the pivy Python bindings) continue to + //! resolve the symbol; implementations do nothing. void restrikeLighting(const SbMatrix & prevView, const SbMatrix & newView); SoRenderCommand * begin(); diff --git a/include/Inventor/rendering/SoVulkanRenderManager.h b/include/Inventor/rendering/SoVulkanRenderManager.h index e3a7d3e13a6..82f22987033 100644 --- a/include/Inventor/rendering/SoVulkanRenderManager.h +++ b/include/Inventor/rendering/SoVulkanRenderManager.h @@ -18,6 +18,9 @@ #include #include +#include +#include +#include // Pull in Vulkan handle types for renderExternal(). This header is only // fully compiled when COIN_BUILD_VULKAN_RENDERER is enabled. @@ -208,7 +211,8 @@ class COIN_DLL_API SoVulkanRenderManager { SbBool renderExternal(SbBool clearwindow, SbBool clearzbuffer, VkCommandBuffer commandBuffer, - VkRenderPass renderPass); + VkRenderPass renderPass, + VkFramebuffer framebuffer); /*! \brief Select the ray-tracing backend for the next render() calls. @@ -293,6 +297,19 @@ class COIN_DLL_API SoVulkanRenderManager { int getEnvMap(void) const; //! Number of available environment/cubemap presets. static int getEnvMapCount(void); + /*! + \brief Provide the authoritative scene lighting (GL host -> RT backend). + + \a lights is the effective eye-space light set (the viewer headlight plus + any document SoLight nodes) and \a ambient the intensity-scaled scene + ambient. Fired through to the RT backend so the path tracer uses the + host's lights instead of the IR draw-list lighting capture, which can + drop to zero lights on the retained/replayed frame and render surfaces + at ambient-only (near-black). Passing an empty \a lights restores the + per-command IR lighting. + */ + void setSceneLights(const std::vector & lights, + const SbVec3f & ambient); //! Human-readable name of an environment preset index. static const char * getEnvMapName(int index); /*! diff --git a/src/elements/SoElement.cpp b/src/elements/SoElement.cpp index 9750a5ebb42..3a0ed5c642b 100644 --- a/src/elements/SoElement.cpp +++ b/src/elements/SoElement.cpp @@ -692,24 +692,6 @@ SoElement::getIdFromStackIndex(const int stackIndex) return (*SoElement::stackToType)[stackIndex]; } -/*! - Sets the depth value of the element instance in the state stack. -*/ -void -SoElement::setDepth(const int depth) -{ - this->depth = depth; -} - -/*! - Returns the state stack depth value of the element instance. -*/ -int -SoElement::getDepth() const -{ - return this->depth; -} - /*! \fn void SoElement::capture(SoState * const state) const; diff --git a/src/misc/SoState.cpp b/src/misc/SoState.cpp index 5f56d6a0f6a..42b181809b1 100644 --- a/src/misc/SoState.cpp +++ b/src/misc/SoState.cpp @@ -116,7 +116,6 @@ class SoStateP { public: SoAction * action; SoElement ** initial; - int depth; SbBool ispopping; class sostate_pushstore * pushstore; }; @@ -140,7 +139,7 @@ SoState::SoState(SoAction * theAction, const SoTypeList & enabledelements) PRIVATE(this) = new SoStateP; PRIVATE(this)->action = theAction; - PRIVATE(this)->depth = 0; + this->depth = 0; PRIVATE(this)->ispopping = FALSE; this->cacheopen = FALSE; @@ -164,7 +163,7 @@ SoState::SoState(SoAction * theAction, const SoTypeList & enabledelements) assert(type.isBad() || type.canCreateInstance()); if (!type.isBad()) { SoElement * const element = (SoElement *) type.createInstance(); - element->setDepth(PRIVATE(this)->depth); + element->setDepth(this->depth); const int stackindex = element->getStackIndex(); this->stack[stackindex] = element; PRIVATE(this)->initial[stackindex] = element; @@ -225,41 +224,29 @@ SoState::getAction(void) const */ SoElement * -SoState::getElement(const int stackindex) +SoState::getElementPush(const int stackindex, SoElement * element) { // catch attempts at setting an element from another element's pop() // method (yes, I did this stupid mistake myself and spent a long // time debugging it, pederb, 2007-08-01) assert(!PRIVATE(this)->ispopping); - if (!this->isElementEnabled(stackindex)) return NULL; - SoElement * element = this->stack[stackindex]; - -#if 0 // debug - SoDebugError::postInfo("SoState::getElement", - "stackindex: %d, element: %p ('%s'), " - "stackdepth: %d, pushstack: %s", - stackindex, element, - element->getTypeId().getName().getString(), - element->getDepth(), - (element->getDepth() < PRIVATE(this)->depth) ? - "yes" : "no"); -#endif // debug - - if (element->getDepth() < PRIVATE(this)->depth) { // create elt of correct depth - SoElement * next = element->nextup; - if (! next) { // allocate new element - next = (SoElement *) element->getTypeId().createInstance(); - next->nextdown = element; - element->nextup = next; - } - next->setDepth(PRIVATE(this)->depth); - next->push(this); - this->stack[stackindex] = next; - element = next; - PRIVATE(this)->pushstore->elements.append(stackindex); + // the caller (inline SoState::getElement()) guarantees that + // * this->stack[stackindex] is non-NULL (element enabled), and + // * element->getDepth() < this->depth + // so the copy-on-write push below materialises a new element for this depth. + + SoElement * next = element->nextup; + if (! next) { // allocate new element + next = (SoElement *) element->getTypeId().createInstance(); + next->nextdown = element; + element->nextup = next; } - return element; + next->setDepth(this->depth); + next->push(this); + this->stack[stackindex] = next; + PRIVATE(this)->pushstore->elements.append(stackindex); + return next; } /*! @@ -281,7 +268,7 @@ SoState::push(void) } PRIVATE(this)->pushstore = PRIVATE(this)->pushstore->next; PRIVATE(this)->pushstore->elements.truncate(0); - PRIVATE(this)->depth++; + this->depth++; } /*! @@ -294,7 +281,7 @@ void SoState::pop(void) { PRIVATE(this)->ispopping = TRUE; - PRIVATE(this)->depth--; + this->depth--; int n = PRIVATE(this)->pushstore->elements.getLength(); if (n) { const int * array = PRIVATE(this)->pushstore->elements.getArrayPtr(); @@ -319,7 +306,7 @@ SoState::pop(void) void SoState::print(FILE * const file) const { - fprintf(file, "SoState[%p]: depth = %d\n", this, PRIVATE(this)->depth); + fprintf(file, "SoState[%p]: depth = %d\n", this, this->depth); fprintf(file, " enabled elements {\n"); for (int i = 0; i < this->numstacks; i++) { SoElement * element; @@ -339,7 +326,7 @@ SoState::print(FILE * const file) const int SoState::getDepth(void) const { - return PRIVATE(this)->depth; + return this->depth; } /*! diff --git a/src/rendering/CMakeLists.txt b/src/rendering/CMakeLists.txt index 44452d996bb..2aef64a0226 100644 --- a/src/rendering/CMakeLists.txt +++ b/src/rendering/CMakeLists.txt @@ -14,6 +14,7 @@ set(COIN_RENDERING_FILES if(COIN_BUILD_VULKAN_RENDERER) list(APPEND COIN_RENDERING_FILES SoVulkanRenderBackend/SoVulkanRenderBackendCore.cpp + SoVulkanRenderBackend/SoVulkanMemPool.cpp SoVulkanRenderBackend/SoVulkanRenderBackendPipeline.cpp SoVulkanRenderBackend/SoVulkanRenderBackendGeometry.cpp SoVulkanRenderBackend/SoVulkanRenderBackendTexture.cpp diff --git a/src/rendering/SoGLDriverDatabase.cpp b/src/rendering/SoGLDriverDatabase.cpp index 4e63df3bf1f..f0edc043ca8 100644 --- a/src/rendering/SoGLDriverDatabase.cpp +++ b/src/rendering/SoGLDriverDatabase.cpp @@ -516,14 +516,14 @@ SoGLDriverDatabaseP::findDriver(const cc_xml_elt * vendor, const cc_glglue * COI if (maxversionelement) maxversion = cc_xml_elt_get_cdata(maxversionelement); - unsigned int minversion_major = 0; - unsigned int minversion_minor = 0; - unsigned int minversion_micro = 0; - unsigned int minversion_nano = 0; - unsigned int maxversion_major = 0; - unsigned int maxversion_minor = 0; - unsigned int maxversion_micro = 0; - unsigned int maxversion_nano = 0; + [[maybe_unused]] unsigned int minversion_major = 0; + [[maybe_unused]] unsigned int minversion_minor = 0; + [[maybe_unused]] unsigned int minversion_micro = 0; + [[maybe_unused]] unsigned int minversion_nano = 0; + [[maybe_unused]] unsigned int maxversion_major = 0; + [[maybe_unused]] unsigned int maxversion_minor = 0; + [[maybe_unused]] unsigned int maxversion_micro = 0; + [[maybe_unused]] unsigned int maxversion_nano = 0; SbIntList indices; diff --git a/src/rendering/SoGLNurbs.cpp b/src/rendering/SoGLNurbs.cpp index d0d50e96761..a6344d93f40 100644 --- a/src/rendering/SoGLNurbs.cpp +++ b/src/rendering/SoGLNurbs.cpp @@ -822,7 +822,7 @@ namespace { assert(fabs(v - vknotvec[numvknots-1]) < 1.e-12); // testing the findspan routine - int i = 0; + [[maybe_unused]] int i = 0; // rechter rand i = FindSpan(uknotvec[0], udegree, numuctrlpts, uknotvec); assert( i == udegree ); diff --git a/src/rendering/SoGLRenderBackend.cpp b/src/rendering/SoGLRenderBackend.cpp index 86e7a31b0b5..8f8f0be7b16 100644 --- a/src/rendering/SoGLRenderBackend.cpp +++ b/src/rendering/SoGLRenderBackend.cpp @@ -30,7 +30,7 @@ namespace { static constexpr int MAX_VERTEX_COUNT = 10000000; -static constexpr int MAX_SHADER_LIGHTS = 8; +static constexpr int MAX_SHADER_LIGHTS = SO_MAX_SHADER_LIGHTS; GLenum textureWrapToGL(const SoTextureWrap wrap) diff --git a/src/rendering/SoRTXRenderBackend.h b/src/rendering/SoRTXRenderBackend.h index b4fa338a76a..22472b4459b 100644 --- a/src/rendering/SoRTXRenderBackend.h +++ b/src/rendering/SoRTXRenderBackend.h @@ -76,6 +76,16 @@ struct RTXCachedGeometry { // this (the AS is world-space), so an orbit of a static scene can skip // the TLAS build. float transformBits[16] = {}; + // Hash of the command's render-affecting material fields (diffuse, + // ambient, specular, emissive, shininess, opacity, shading model, + // two-sided, metalness/roughness) as of the last time this entry was + // seen. The material buffer is re-uploaded every frame, so a pure + // material edit (same geometry, same transform) does not change the + // geometry content hash above and would otherwise never signal a scene + // change -- the path tracer would keep its stale accumulation until the + // camera moved. Comparing this hash fires cacheChanged on a material + // edit so the accumulation restarts. 0 is never produced by the hash. + uint64_t materialHash = 0; // Command that last touched this entry (per-frame arena pointer; used // only as an identity key for map rebuilds after cache eviction). const SoRenderCommand * commandKey = nullptr; @@ -155,12 +165,12 @@ struct RTMaterial { float emissive[4]; float params[4]; // x = shininess, y = twoSided, z = lightCount, // w = shadingModel (0 = unlit, 1 = gouraud) - float lightType[8 * 4]; - float lightColor[8 * 4]; - float lightDirection[8 * 4]; - float lightPosition[8 * 4]; - float lightAttenuation[8 * 4]; - float lightSpot[8 * 4]; + float lightType[SO_MAX_SHADER_LIGHTS * 4]; + float lightColor[SO_MAX_SHADER_LIGHTS * 4]; + float lightDirection[SO_MAX_SHADER_LIGHTS * 4]; + float lightPosition[SO_MAX_SHADER_LIGHTS * 4]; + float lightAttenuation[SO_MAX_SHADER_LIGHTS * 4]; + float lightSpot[SO_MAX_SHADER_LIGHTS * 4]; float triangleData[4]; // x = triangle-normal pool offset, y = normal count, // z = NEE pool offset, w = NEE entry count float pbr[4]; // x = metalness, y = roughness, z = usePbr, w = unused @@ -309,6 +319,22 @@ class SoRTXRenderBackend : public SoRenderBackend { */ void setDenoiserScale(float scale); + /*! + \brief Provide the authoritative scene lighting from the GL host. + + The GL viewport owns the real light state (the viewer headlight plus any + document SoLight nodes). The IR draw-list lighting capture + (SoLightElement::getLights) is unreliable for the retained path tracer -- + the light count can drop to zero once the scene is replayed, leaving the + ray tracer with no lights and rendering surfaces at ambient-only + (near-black). Instead of deriving lights from the IR, the host pushes the + effective eye-space light set here and updateMaterials() uses it verbatim. + Passing an empty set returns the backend to the per-command IR lighting. + The \a ambient is the scene ambient (already intensity-scaled). + */ + void setSceneLights(const std::vector & lights, + const SbVec3f & ambient); + /*! \brief Record the draw list into a caller-owned command buffer/render pass. @@ -778,6 +804,15 @@ class SoRTXRenderBackend : public SoRenderBackend { // Reusable scratch for updateMaterials(), grown on demand instead of // allocating a fresh std::vector every frame. std::vector materialScratch; + // Authoritative scene lighting pushed by the GL host via setSceneLights(). + // When non-empty, updateMaterials() uses these eye-space lights instead of + // the per-command IR SoLightingData (whose captured light count can drop to + // zero on the retained/replayed path tracer, rendering surfaces black). + // The eye-space convention matches the IR fill (view-fixed, the RT shader + // converts back through frame.u_viewInverse), so a camera orbit keeps the + // headlight pointing at the camera without a per-frame re-derive. + std::vector sceneLights; + SbVec3f sceneAmbient = SbVec3f(0.2f, 0.2f, 0.2f); // Cached PBR/lighting env overrides. These are loop-invariant per frame; // reading them once avoids a getenv()/envFlagEnabled() per command. bool rtPbrEnabled = false; diff --git a/src/rendering/SoRTXRenderBackend/SoRTXRenderBackendDenoise.cpp b/src/rendering/SoRTXRenderBackend/SoRTXRenderBackendDenoise.cpp index eb147da492f..74ee56f530f 100644 --- a/src/rendering/SoRTXRenderBackend/SoRTXRenderBackendDenoise.cpp +++ b/src/rendering/SoRTXRenderBackend/SoRTXRenderBackendDenoise.cpp @@ -369,7 +369,7 @@ SoRTXRenderBackend::createDenoiseBackend() #if COIN_BUILD_RTX_DENOISER if (this->denoiseKind == DenoiseRtx) { - this->rtxModelKind = [this]() { + this->rtxModelKind = []() { const char * m = getenv("FC_VULKAN_PT_RTX_MODEL"); if (m && std::strcmp(m, "TEMPORAL") == 0) return OPTIX_DENOISER_MODEL_KIND_TEMPORAL_AOV; @@ -829,7 +829,7 @@ SoRTXRenderBackend::updateDenoise() colorR = dbg + (4 * gbStride) / 4; albR = dbg + (4 * gbStride + outStride) / 4; } - float * nrmR = dbg + 2 * gbStride / 4; + [[maybe_unused]] float * nrmR = dbg + 2 * gbStride / 4; const int mid = ((h / 2) * w + w / 2) * 4; // scan a horizontal strip at mid-height for lit (alpha>0) color runs int litPixels = 0; diff --git a/src/rendering/SoRTXRenderBackend/SoRTXRenderBackendGeometry.cpp b/src/rendering/SoRTXRenderBackend/SoRTXRenderBackendGeometry.cpp index 138fed50050..9782d6e48ac 100644 --- a/src/rendering/SoRTXRenderBackend/SoRTXRenderBackendGeometry.cpp +++ b/src/rendering/SoRTXRenderBackend/SoRTXRenderBackendGeometry.cpp @@ -11,6 +11,7 @@ #include #include #include +#include #include "rendering/vulkan/rt/PathTrace.spv.h" #include "rendering/vulkan/rt/Raygen.spv.h" #include "rendering/vulkan/rt/Miss.spv.h" @@ -631,8 +632,13 @@ SoRTXRenderBackend::updateGeometryCache(const SoDrawList & drawlist) ? geometry.vertexStride : sizeof(float) * 3; const bool indexed = geometry.indexCount > 0 && geometry.indices != nullptr; - const bool traced = (command.pass != SO_RENDERPASS_TRANSPARENT && - command.pass != SO_RENDERPASS_OVERLAY); + const bool traced = (command.pass != SO_RENDERPASS_OVERLAY); + if (!traced && getenv("FC_VULKAN_RT_GEO") && + geometry.vertexCount == 6 && geometry.indexCount == 0) { + fprintf(stderr, "[GCR] FR fr=%u OVERLAY vc=6 cmd=%p pos=%p\n", frame, + static_cast(&command), + static_cast(geometry.positions)); + } if (!traced) { // A traced base command that the selection highlight temporarily // promotes out of the OPAQUE pass (OPAQUE -> OVERLAY on select, back on @@ -643,8 +649,10 @@ SoRTXRenderBackend::updateGeometryCache(const SoDrawList & drawlist) // Keep the matching entry alive by content signal (the cheap probe used // by the traced path below) so it re-keys, with no rebuild and no // cacheChanged, when the command returns to the traced pass. Pure - // non-traced commands (nav cube, axis cross, transparent shells) that - // were never traced have no matching entry and are ignored here. + // non-traced commands (nav cube, axis cross) that were never traced have + // no matching entry and are ignored here. Transparent commands (SO_ + // RENDERPASS_TRANSPARENT) ARE traced now so the path tracer sees the + // translucent geometry and composites it as thin glass. const uint64_t signal = hashGeometrySignal(geometry, vertexStride, indexed); const auto found = this->commandToCache.find(&command); if (found != this->commandToCache.end()) { @@ -674,6 +682,27 @@ SoRTXRenderBackend::updateGeometryCache(const SoDrawList & drawlist) continue; } + // TEMP breadcrumb: per-frame pointer/thread/retained trace for the probe + // box so we can see whether the geometry pointer is stable across frames + // and on which thread updateGeometryCache reads it. + if (getenv("FC_VULKAN_RT_GEO") && + geometry.indexCount == 0 && + (geometry.vertexCount == 36 || geometry.vertexCount == 6)) { + const float * tp = geometry.positions; + const float * tm = &command.modelMatrix[0][0]; + fprintf(stderr, + "[GCR] FR fr=%u tid=%llx cmd=%p pos=%p ret=%d pass=%d " + "v0=(%.3f,%.3f,%.3f) m00=%.3f m11=%.3f m22=%.3f " + "t=(%.3f,%.3f,%.3f)\n", + frame, + static_cast(std::hash{}(std::this_thread::get_id())), + static_cast(&command), + static_cast(tp), + geometry.retained ? 1 : 0, + static_cast(command.pass), + tp[0], tp[1], tp[2], + tm[0], tm[5], tm[10], tm[12], tm[13], tm[14]); + } // A singular (degenerate) model matrix means the command collapses to a // point or line -- e.g. the view's hidden anchor cube, which FreeCAD // hides by scaling it to (0,0,0) (see View3DInventorViewer::construct*). @@ -700,6 +729,29 @@ SoRTXRenderBackend::updateGeometryCache(const SoDrawList & drawlist) } } + // A degenerate GEOmetry (all positions collapsed to a point) is the + // geometry counterpart of the singular-transform guard above: FreeCAD's + // selection/preselection highlight momentarily swaps a shape's base + // geometry for a degenerate placeholder, so the base OPAQUE command may be + // re-recorded with all vertices piled at a single point for a frame or + // two. Treating that as a real content change would (a) set cacheChanged, + // restarting the path-tracing accumulation on every hover ("the lights + // re-calc"), and (b) refit the BLAS with the collapsed point so a ray + // transmitting through glass misses the surface and reads black. Skip it + // without hitting the content/transform/material hashing: re-stamp the + // existing cache entry's liveness so it is NOT evicted when the valid + // geometry returns next frame, and leave cacheChanged untouched so the + // tracer keeps its settled image through the transient. + if (geometryDegenerate(geometry, vertexStride)) { + const auto dFound = this->commandToCache.find(&command); + if (dFound != this->commandToCache.end()) { + RTXCachedGeometry & e = this->geometryCache[dFound->second]; + e.cacheGeneration = frame; + e.commandKey = &command; + } + continue; + } + // Cheap probe first: only run the full index hash when the change signal // disagrees with the cache entry. The sampled signal costs a fraction of // the full hashGeometry() (which hashes every index up to 65536), so for @@ -733,6 +785,45 @@ SoRTXRenderBackend::updateGeometryCache(const SoDrawList & drawlist) ((entry.idxKey != nullptr) == indexed) && entry.indexHash == indexHash; this->cacheChanged = true; + if (getenv("FC_VULKAN_RT_GEO")) { + const float * p0 = static_cast(geometry.positions); + fprintf(stderr, + "[GCR] CONTENT fr=%u tid=%llx cmd=%p pass=%d vc=%u ic=%u " + "stride=%u ret=%d old=%016llx new=%016llx " + "vhash %016llx -> %016llx " + "ihash %016llx -> %016llx p0=(%.4f,%.4f,%.4f) " + "plast=(%.4f,%.4f,%.4f) posKey=%p new=%p idxKey=%p new=%p " + "topologyStable=%d\n", + frame, + static_cast(std::hash{}(std::this_thread::get_id())), + static_cast(&command), + static_cast(command.pass), geometry.vertexCount, + geometry.indexCount, vertexStride, + geometry.retained ? 1 : 0, + static_cast(entry.contentHash), + static_cast(hash), + static_cast(entry.vertexHash), + static_cast(vertexHash), + static_cast(entry.indexHash), + static_cast(indexHash), + p0[0], p0[1], p0[2], + p0[3 * (geometry.vertexCount - 1)], + p0[3 * (geometry.vertexCount - 1) + 1], + p0[3 * (geometry.vertexCount - 1) + 2], + static_cast(entry.posKey), + static_cast(geometry.positions), + static_cast(entry.idxKey), + static_cast(geometry.indices), + topologyStable ? 1 : 0); + for (uint32_t vi = 0; vi < geometry.vertexCount; ++vi) { + fprintf(stderr, "[GCR] V %u (%.4f,%.4f,%.4f) bits=%08x:%08x:%08x\n", + vi, + p0[3 * vi], p0[3 * vi + 1], p0[3 * vi + 2], + std::bit_cast(p0[3 * vi]), + std::bit_cast(p0[3 * vi + 1]), + std::bit_cast(p0[3 * vi + 2])); + } + } if (topologyStable) { // In-place UPDATE build (see refitBlas()); keep buffers and BLAS. entry.refitPending = true; @@ -784,6 +875,19 @@ SoRTXRenderBackend::updateGeometryCache(const SoDrawList & drawlist) } else { this->cacheChanged = true; + if (getenv("FC_VULKAN_RT_GEO")) { + fprintf(stderr, + "[GCR] NEW fr=%u tid=%llx cmd=%p pass=%d vc=%u ic=%u " + "stride=%u ret=%d pos=%p hash=%016llx\n", + frame, + static_cast(std::hash{}(std::this_thread::get_id())), + static_cast(&command), + static_cast(command.pass), geometry.vertexCount, + geometry.indexCount, vertexStride, + geometry.retained ? 1 : 0, + static_cast(geometry.positions), + static_cast(hash)); + } RTXCachedGeometry & entry = this->getOrCreateCache(&command); entry.posKey = geometry.positions; entry.idxKey = geometry.indices; @@ -794,6 +898,7 @@ SoRTXRenderBackend::updateGeometryCache(const SoDrawList & drawlist) entry.changeSignal = signal; entry.vertexHash = hashPositions(geometry, vertexStride); entry.indexHash = indexed ? hashIndices(geometry) : 0; + entry.materialHash = hashMaterial(command.material); entryPtr = &entry; } } @@ -809,10 +914,37 @@ SoRTXRenderBackend::updateGeometryCache(const SoDrawList & drawlist) if (std::memcmp(entryPtr->transformBits, m, sizeof(entryPtr->transformBits)) != 0) { this->asTransformChanged = true; + if (getenv("FC_VULKAN_RT_GEO")) { + fprintf(stderr, "[GCR] TRANSFORM cmd=%p pass=%d vc=%u\n", + static_cast(&command), + static_cast(command.pass), geometry.vertexCount); + } std::memcpy(entryPtr->transformBits, m, sizeof(entryPtr->transformBits)); } } + // Material-content change detection: a pure material edit (recolor, + // Transparency change) keeps the geometry content and transform hash + // above identical, so none of {cacheChanged, asTransformChanged} would + // fire -- and because the path tracer's scene-change signal IS + // cacheChanged (see updatePathTracingState), a converged run would keep + // its stale accumulation until the camera moved. The material buffer is + // still re-uploaded each frame with the new values, so this only needs to + // flag the scene change so the tracer restarts; no cache entry is rebuilt. + { + const uint64_t mh = hashMaterial(command.material); + if (mh != 0 && mh != entryPtr->materialHash) { + this->cacheChanged = true; + if (getenv("FC_VULKAN_RT_GEO")) { + fprintf(stderr, "[GCR] MATERIAL cmd=%p pass=%d vc=%u old=%016llx new=%016llx\n", + static_cast(&command), + static_cast(command.pass), geometry.vertexCount, + static_cast(entryPtr->materialHash), + static_cast(mh)); + } + entryPtr->materialHash = mh; + } + } entryPtr->commandKey = &command; entryPtr->cacheGeneration = frame; } @@ -830,6 +962,18 @@ SoRTXRenderBackend::updateGeometryCache(const SoDrawList & drawlist) } } if (anyStale) { + if (getenv("FC_VULKAN_RT_GEO")) { + size_t nstale = 0; + for (size_t i = 0; i < this->geometryCache.size(); ++i) { + if (this->geometryCache[i].cacheGeneration != frame) { + ++nstale; + fprintf(stderr, "[GCR] EVICT idx=%zu vc=%u ic=%u\n", i, + this->geometryCache[i].vertexCount, + this->geometryCache[i].indexCount); + } + } + fprintf(stderr, "[GCR] EVICT total=%zu\n", nstale); + } // Removing geometry is a scene change: the TLAS must be rebuilt (not // MODE_UPDATE refit) so the instance set reflects the liveness above, // and the accumulation/history reset. @@ -859,11 +1003,9 @@ SoRTXRenderBackend::updateGeometryCache(const SoDrawList & drawlist) if (c.geometry.topology != SO_TOPOLOGY_TRIANGLES) continue; tri++; if (c.geometry.vertexCount) vertsAll += c.geometry.vertexCount; - const bool traced = (c.pass != SO_RENDERPASS_TRANSPARENT && - c.pass != SO_RENDERPASS_OVERLAY); + const bool traced = (c.pass != SO_RENDERPASS_OVERLAY); if (traced) { triTraced++; vertsTraced += c.geometry.vertexCount; } else if (c.pass == SO_RENDERPASS_OVERLAY) triOverlay++; - else if (c.pass == SO_RENDERPASS_TRANSPARENT) triTrans++; } int live = 0, blasLive = 0; for (const RTXCachedGeometry & e : this->geometryCache) { @@ -1454,8 +1596,7 @@ SoRTXRenderBackend::buildTlas(const SoDrawList & drawlist, } for (int i = 0; i < drawlist.getNumCommands(); ++i) { const SoRenderCommand & command = drawlist.getCommand(i); - if (command.pass == SO_RENDERPASS_TRANSPARENT || - command.pass == SO_RENDERPASS_OVERLAY) continue; + if (command.pass == SO_RENDERPASS_OVERLAY) continue; const auto found = this->commandToCache.find(&command); if (found == this->commandToCache.end()) continue; const RTXCachedGeometry & entry = this->geometryCache[found->second]; @@ -1528,7 +1669,13 @@ SoRTXRenderBackend::buildTlas(const SoDrawList & drawlist, instance.instanceCustomIndex = static_cast(i); instance.mask = 0xFF; instance.instanceShaderBindingTableRecordOffset = 0; - instance.flags = 0; + // Force-opaque at the instance level: the geometry is opaque triangles + // (translucency is composited deterministically in the path loop, not via + // any-hit), so instruct the driver to skip any-hit processing for this + // instance even if a ray did not set the OPAQUE flag. This lets traversal + // use the opaque fast path and avoids any-hit shader invocation overhead + // on primary/shadow rays. + instance.flags = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR; // The BLAS device address is stable for the BLAS lifetime and was // captured at build time, so querying it here every frame is wasted work. // Fall back to a query only if the cached address is missing. @@ -1710,6 +1857,14 @@ SoRTXRenderBackend::buildTlas(const SoDrawList & drawlist, // --- Material buffer ------------------------------------------------------ +void +SoRTXRenderBackend::setSceneLights(const std::vector & lights, + const SbVec3f & ambient) +{ + this->sceneLights = lights; + this->sceneAmbient = ambient; +} + void SoRTXRenderBackend::updateMaterials(const SoDrawList & drawlist) { @@ -1726,8 +1881,7 @@ SoRTXRenderBackend::updateMaterials(const SoDrawList & drawlist) const VkAllocationCallbacks * allocator = this->allocator; const VkBuffer buffer = this->materialBuffer; const VkDeviceMemory memory = this->materialMemory; - void * mapped = this->materialMapped; - this->deferDestroy([device, allocator, buffer, memory, mapped]() { + this->deferDestroy([device, allocator, buffer, memory]() { vkUnmapMemory(device, memory); vkDestroyBuffer(device, buffer, allocator); vkFreeMemory(device, memory, allocator); @@ -1841,16 +1995,31 @@ SoRTXRenderBackend::updateMaterials(const SoDrawList & drawlist) // Fold the scene ambient into the material ambient (matches the raster // shader: litColor += ambientLight * materialAmbient). - out.ambient[0] = lighting->ambient[0] * material.ambient[0]; - out.ambient[1] = lighting->ambient[1] * material.ambient[1]; - out.ambient[2] = lighting->ambient[2] * material.ambient[2]; + // When the GL host pushed an authoritative light set (setSceneLights), + // use its ambient; otherwise use the per-command IR lighting ambient. + const SbVec3f & sceneAmbient = this->sceneLights.empty() + ? lighting->ambient : this->sceneAmbient; + out.ambient[0] = sceneAmbient[0] * material.ambient[0]; + out.ambient[1] = sceneAmbient[1] * material.ambient[1]; + out.ambient[2] = sceneAmbient[2] * material.ambient[2]; out.ambient[3] = 1.0f; + // Light list: the host-pushed authoritative set (the viewer headlight + + // document lights) when present, else the per-command IR capture. The + // IR capture can drop to zero lights on the retained/replayed path + // tracer (SoLightElement::getLights goes empty after the first frames), + // which renders surfaces at ambient-only (near-black). Both sources + // carry world-space light geometry (the standard IR convention), which + // the RT shaders consume directly. + const std::vector * lightSource = &lighting->lights; + if (!this->sceneLights.empty()) { + lightSource = &this->sceneLights; + } const int lightCount = std::min( - static_cast(lighting->lights.size()), MAX_SHADER_LIGHTS); + static_cast(lightSource->size()), MAX_SHADER_LIGHTS); out.params[2] = static_cast(lightCount); for (int l = 0; l < lightCount; ++l) { - const SoLightData & light = lighting->lights[static_cast(l)]; + const SoLightData & light = (*lightSource)[static_cast(l)]; float * type = out.lightType + l * 4; type[0] = static_cast(light.type); type[1] = type[2] = 0.0f; diff --git a/src/rendering/SoRTXRenderBackend/SoRTXRenderBackendP.h b/src/rendering/SoRTXRenderBackend/SoRTXRenderBackendP.h index 1fd67fc2100..22106825fa8 100644 --- a/src/rendering/SoRTXRenderBackend/SoRTXRenderBackendP.h +++ b/src/rendering/SoRTXRenderBackend/SoRTXRenderBackendP.h @@ -123,7 +123,18 @@ inline void checkDenoiseDownsampleLayout() { constexpr int SBT_GROUP_COUNT = 5; // raygen, miss, shadow miss, chit, shadow chit -constexpr int MAX_SHADER_LIGHTS = 8; +// SO_MAX_SHADER_LIGHTS is mirrored as a literal [8] in every shader's +// lighting block (PathTrace.glsl, ClosestHit.glsl, Raygen.glsl, the visual +// Fragment/Vertex, the GL Lighting.glsl) because GLSL cannot read a C++ +// constexpr. If the shared constant is ever raised, these shaders must be +// regenerated in lockstep; assert the invariant here so a silent desync (that +// would over/under-run the light arrays) is caught at compile time instead of +// at runtime on the GPU. +static_assert(SO_MAX_SHADER_LIGHTS == 8, + "SO_MAX_SHADER_LIGHTS change requires regenerating the " + "hardcoded [8] light arrays in the GLSL/Visual shaders"); + +constexpr int MAX_SHADER_LIGHTS = SO_MAX_SHADER_LIGHTS; constexpr int MAX_VERTEX_COUNT = 10000000; // FNV-1a content hash of a command's geometry, sampled so full-scene @@ -241,6 +252,50 @@ hashGeometrySignal(const SoGeometryDesc & geometry, uint32_t vertexStride, return h; } +// Returns true when the command's traced positions are not usable for +// tracing -- either they have collapsed to a degenerate point/line (a +// near-zero extent on every axis) or they contain non-finite / wildly +// out-of-range coordinates. FreeCAD's selection/preselection highlight +// momentarily swaps a shape's base geometry for a placeholder or a +// degenerate/overwritten vertex buffer via SoHighlightElementAction / +// whichChild, so for a frame or two the base OPAQUE command's vertex buffer +// is re-recorded with all positions piled at a point, or a garbage in-place +// overwrite (extension far beyond any CAD part). Treated as a real content +// change this would set cacheChanged (forcing a path-tracing accumulation +// restart, the "lights re-calc" glitch) and refit the BLAS with the junk +// points (so a ray transmitting through glass misses the surface and reads +// black). Skipping such a command mirrors the existing singular-model-matrix +// guard for the hidden anchor cube. +inline bool +geometryDegenerate(const SoGeometryDesc & geometry, uint32_t vertexStride) +{ + if (!geometry.positions || geometry.vertexCount == 0) return false; + const size_t posStrideFloats = vertexStride / sizeof(float); + const float * p0 = geometry.positions; + float mn[3] = {p0[0], p0[1], p0[2]}; + float mx[3] = {p0[0], p0[1], p0[2]}; + for (uint32_t i = 0; i < geometry.vertexCount; ++i) { + const float * p = + geometry.positions + static_cast(i) * posStrideFloats; + for (int a = 0; a < 3; ++a) { + const float v = p[a]; + // Non-finite coordinates are uninitialized garbage; a CAD part never + // needs |coord| beyond this. A selection placeholder can leave one + // vertex far out of range while the rest collapse. + constexpr float kMax = 1.0e6f; + if (!std::isfinite(v) || v > kMax || v < -kMax) return true; + if (v < mn[a]) mn[a] = v; + if (v > mx[a]) mx[a] = v; + } + } + // Epsilon in object space: a valid CAD part spans at least a small extent; + // a selection placeholder collapses all three axes to ~0. + constexpr float kEps = 1.0e-4f; + return (mx[0] - mn[0]) < kEps && + (mx[1] - mn[1]) < kEps && + (mx[2] - mn[2]) < kEps; +} + // FNV-1a hash of a command's vertex positions only. Separates position // edits (refit-able: topology unchanged) from index edits (topology change, // full rebuild required). @@ -302,6 +357,40 @@ matricesNearlyEqual(const float * a, const float * b, size_t count) return true; } +// FNV-1a hash of a command's render-affecting material fields. The geometry +// cache hashes the traced positions and identity, so a pure material edit +// (same geometry, same transform -- e.g. recoloring a part, or changing +// Transparency to make it glass) produces an identical geometry content hash +// and would never fire cacheChanged. Because the material buffer is +// re-uploaded every frame, the tracer's shader reads the new values -- but a +// converged/idle path tracer generates no new samples, so the rendered image +// stays stale until the camera moves. Comparing this hash in the geometry +// cache turns a material edit into a scene change (cacheChanged) that restarts +// accumulation. The hash covers every field updateMaterials() uploads that +// affects shading; 0 is never returned (the FNV offset basis is non-zero). +inline uint64_t +hashMaterial(const SoMaterialData & material) +{ + uint64_t h = 1469598103934665603ull; + const auto mix = [&h](uint64_t v) { + CoinRenderDetail::fnvMix(h, v); + }; + for (int i = 0; i < 4; ++i) { + mix(std::bit_cast(material.diffuse[i])); + mix(std::bit_cast(material.ambient[i])); + mix(std::bit_cast(material.specular[i])); + mix(std::bit_cast(material.emissive[i])); + } + mix(std::bit_cast(material.shininess)); + mix(std::bit_cast(material.opacity)); + mix(std::bit_cast(material.metalness)); + mix(std::bit_cast(material.roughness)); + mix(static_cast(material.shadingModel)); + mix(static_cast(material.twoSidedLighting ? 1 : 0)); + mix(static_cast(material.flags)); + return h; +} + } // namespace SoRTXBackend #endif // COIN_SORTXRENDERBACKENDP_H diff --git a/src/rendering/SoRTXRenderBackend/SoRTXRenderBackendPathTracing.cpp b/src/rendering/SoRTXRenderBackend/SoRTXRenderBackendPathTracing.cpp index 162c640fc52..f3c1152d4ab 100644 --- a/src/rendering/SoRTXRenderBackend/SoRTXRenderBackendPathTracing.cpp +++ b/src/rendering/SoRTXRenderBackend/SoRTXRenderBackendPathTracing.cpp @@ -24,7 +24,7 @@ using namespace SoRTXBackend; void -SoRTXRenderBackend::updatePathTracingState(const SoDrawList & drawlist, +SoRTXRenderBackend::updatePathTracingState(const SoDrawList & /*drawlist*/, const SoRenderParams & params, const SoVulkanRenderTarget & target, VkCommandBuffer cmd) @@ -298,9 +298,11 @@ SoRTXRenderBackend::updatePathTracingState(const SoDrawList & drawlist, if (getenv("FC_VULKAN_RT_DEBUG") && this->ptEnabled) { fprintf(stderr, "[RTDBG] ptState frame=%u viewChanged=%d sceneChanged=%d " - "accum=%d frameIndex=%u idle=%u reproject=%d\n", + "bgChanged=%d latch=%d accum=%d frameIndex=%u idle=%u " + "reproject=%d\n", params.frame, viewChanged ? 1 : 0, sceneChanged ? 1 : 0, + backgroundChanged ? 1 : 0, this->ptStartLatch ? 1 : 0, this->ptAccumulating ? 1 : 0, this->ptFrameIndex, this->ptIdleFrames, this->ptReprojectFrame ? 1 : 0); } @@ -526,8 +528,15 @@ SoRTXRenderBackend::recordAccelerationStructures( this->statBlasReused = 0; for (int i = 0; i < drawlist.getNumCommands(); ++i) { const SoRenderCommand & command = drawlist.getCommand(i); - if (command.pass == SO_RENDERPASS_TRANSPARENT || - command.pass == SO_RENDERPASS_OVERLAY) continue; + // Transparent (SO_RENDERPASS_TRANSPARENT) commands ARE traced now (see + // updateGeometryCache / buildTlas) so the path tracer composites them as + // thin glass. They therefore need a BLAS exactly like opaque commands: + // skipping them here leaves entry.blas == VK_NULL_HANDLE forever, which + // makes updateGeometryCache report a content change every frame (the + // entry can never "match" without a BLAS) and restarts the accumulation + // continuously. Only the overlay/decoration commands (never TLAS + // eligible) are skipped. + if (command.pass == SO_RENDERPASS_OVERLAY) continue; const auto found = this->commandToCache.find(&command); if (found == this->commandToCache.end()) continue; RTXCachedGeometry & entry = this->geometryCache[found->second]; diff --git a/src/rendering/SoRenderIR.cpp b/src/rendering/SoRenderIR.cpp index 55121dd97e8..561582faa95 100644 --- a/src/rendering/SoRenderIR.cpp +++ b/src/rendering/SoRenderIR.cpp @@ -321,7 +321,12 @@ bool rawEqual(const SoLightingRaw & a, const SoLightingRaw & b) if (a.hasRaw != b.hasRaw) return false; if (!a.hasRaw) return true; if (a.lights.size() != b.lights.size()) return false; - if (!matrixBitsEqual(a.viewUsed, b.viewUsed)) return false; + // NOTE: SoLightingRaw::viewUsed is deliberately NOT compared. Setups are + // world-space and view-independent, so two setups whose raw world geometry + // is identical are the same light regardless of the fill-time viewing + // matrix. Comparing viewUsed (the old view-fixed/restrike convention) would + // fragment the dedup hash across camera frames, keeping identical + // world-space setups separate and inflating the lighting ring. for (size_t i = 0; i < a.lights.size(); ++i) { if (!rawLightEqual(a.lights[i], b.lights[i])) return false; } @@ -359,6 +364,18 @@ SoDrawList::addLightingSetup(const SoLightingData & lighting, return static_cast(this->lightingSetups.size()); } +// Compatibility no-op, kept exported so already-linked consumers (such as the +// pivy Python bindings) still resolve the symbol. SoLightData carries +// world-space geometry, so retained lighting setups are view-independent and a +// camera-only frame replaying this draw list shades correctly without any +// re-derivation. +void +SoDrawList::restrikeLighting(const SbMatrix & prevView, const SbMatrix & newView) +{ + (void)prevView; + (void)newView; +} + namespace { bool lightFreshDbgEnabled() { @@ -376,89 +393,90 @@ void lightFreshDbgMat(const char * name, const SbMatrix & m) a[1][3], a[2][0], a[2][1], a[2][2], a[2][3], a[3][0], a[3][1], a[3][2], a[3][3]); } -int lightFreshDbgBudget = 32; -int lightReplayDbgBudget = 32; -int lightReplayCallBudget = 2000; + } // namespace -void -SoDrawList::restrikeLighting(const SbMatrix & prevView, const SbMatrix & newView) +namespace { + +void packLightIntoBlock(SoLightingBlock & block, int slot, + const SoLightData & light) { - if (std::getenv("FC_VULKAN_LIGHTREPLAY_DBG") && lightReplayCallBudget-- > 0) { - fprintf(stderr, - "[LITREPLAY] called prev==new:%d raws=%zu\n", - (int)matrixBitsEqual(prevView, newView), - this->lightingRaws.size()); - } - if (matrixBitsEqual(prevView, newView)) { - return; + float * type = block.lightType + slot * 4; + type[0] = static_cast(light.type); + type[1] = type[2] = 0.0f; + type[3] = 1.0f; + + float * color = block.lightColor + slot * 4; + color[0] = light.color[0]; + color[1] = light.color[1]; + color[2] = light.color[2]; + color[3] = 1.0f; + + float * direction = block.lightDirection + slot * 4; + direction[0] = light.direction[0]; + direction[1] = light.direction[1]; + direction[2] = light.direction[2]; + direction[3] = 1.0f; + + float * position = block.lightPosition + slot * 4; + position[0] = light.position[0]; + position[1] = light.position[1]; + position[2] = light.position[2]; + position[3] = 1.0f; + + float * attenuation = block.lightAttenuation + slot * 4; + attenuation[0] = light.attenuation[0]; + attenuation[1] = light.attenuation[1]; + attenuation[2] = light.attenuation[2]; + attenuation[3] = 1.0f; + + float * spot = block.lightSpotParams + slot * 4; + spot[0] = light.spotCutoffCos; + spot[1] = light.spotExponent; + spot[2] = 0.0f; + spot[3] = 1.0f; +} + +} // namespace + +SoLightData +SoRenderIR::lightToEye(const SoLightData & world, const SbMatrix & view) +{ + SoLightData eye = world; + view.multDirMatrix(world.direction, eye.direction); + if (eye.direction.normalize() == 0.0f) { + eye.direction = world.direction; } - if (std::getenv("FC_VULKAN_LIGHTREPLAY_DBG") && lightReplayDbgBudget-- > 0) { - fprintf(stderr, "[LITREPLAY] entry\n"); - lightFreshDbgMat("prevView", prevView); - lightFreshDbgMat("newView", newView); - for (size_t e = 0; e < this->lightingRaws.size(); ++e) { - const SoLightingRaw & r = this->lightingRaws[e]; - if (!r.hasRaw || !matrixBitsEqual(r.viewUsed, prevView)) { - fprintf(stderr, "[LITREPLAY] entry%zu SKIP (hasRaw=%d viewMatch=%d)\n", - e, (int)r.hasRaw, - (int)matrixBitsEqual(r.viewUsed, prevView)); - continue; - } - fprintf(stderr, - "[LITREPLAY] entry%zu restrike lights=%zu\n", e, - r.lights.size()); - } + if (world.type != SO_LIGHT_DIRECTIONAL) { + view.multVecMatrix(world.position, eye.position); } - for (size_t e = 0; e < this->lightingRaws.size(); ++e) { - const SoLightingRaw & raw = this->lightingRaws[e]; - if (!raw.hasRaw || !matrixBitsEqual(raw.viewUsed, prevView)) { - continue; - } - SoLightingData & setup = this->lightingSetups[e]; - setup.ambient = raw.ambient; - setup.lights.clear(); - setup.lights.reserve(raw.lights.size()); - for (const SoLightingRaw::RawLight & rl : raw.lights) { - SoLightData light; - light.type = rl.type; - light.color = rl.color; - light.attenuation = rl.attenuation; - light.spotCutoffCos = rl.spotCutoffCos; - light.spotExponent = rl.spotExponent; - // The stored light geometry IS the eye-space value (it matches the - // legacy GL convention of passing raw field values to glLightfv, which - // GL reads in eye space). It is view-independent, so a camera-only - // frame re-uses it verbatim instead of transforming it. - if (rl.type == SO_LIGHT_DIRECTIONAL) { - light.direction = rl.sceneDirection; - if (light.direction.normalize() == 0.0f) { - light.direction.setValue(0.0f, 0.0f, 1.0f); - } - } - else if (rl.type == SO_LIGHT_POINT) { - light.position = rl.scenePosition; - } - else { - light.position = rl.scenePosition; - light.direction = rl.sceneDirection; - if (light.direction.normalize() == 0.0f) { - light.direction.setValue(0.0f, 0.0f, -1.0f); - } - } - setup.lights.push_back(light); + return eye; +} + +int +SoRenderIR::fillLightingBlock(SoLightingBlock & block, + const SoLightingData & world, + const SbMatrix * toEye) +{ + std::memset(&block, 0, sizeof(block)); + block.ambientLight[0] = world.ambient[0]; + block.ambientLight[1] = world.ambient[1]; + block.ambientLight[2] = world.ambient[2]; + block.ambientLight[3] = 1.0f; + + const int count = std::min( + static_cast(world.lights.size()), SO_MAX_SHADER_LIGHTS); + for (int i = 0; i < count; ++i) { + const SoLightData & light = world.lights[static_cast(i)]; + if (toEye != nullptr) { + packLightIntoBlock(block, i, lightToEye(light, *toEye)); } - if (std::getenv("FC_VULKAN_LIGHTREPLAY_DBG")) { - for (size_t li = 0; li < setup.lights.size(); ++li) { - const SoLightData & l = setup.lights[li]; - fprintf(stderr, - "[LITREPLAY] entry%zu light%zu type=%d dir(eye)=(%.4f,%.4f," - "%.4f) pos(eye)=(%.4f,%.4f,%.4f)\n", - e, li, (int)l.type, l.direction[0], l.direction[1], - l.direction[2], l.position[0], l.position[1], l.position[2]); - } + else { + packLightIntoBlock(block, i, light); } } + + return count; } const SoLightingData * @@ -859,17 +877,14 @@ fillLightingFromState(SoState * state, SoDrawList & drawlist) { SoLightingData lighting; - // Scene-space inputs kept alongside the view-space setup so a camera-only - // frame can re-derive this entry (SoDrawList::restrikeLighting) instead of - // re-traversing the scene. + // Scene-space inputs recorded alongside the (world-space) setup for + // provenance and deduplication; the setup itself needs no re-derivation + // when the camera moves. SoLightingRaw raw; raw.hasRaw = true; - raw.viewUsed = SoViewingMatrixElement::get(state); - const SbMatrix viewInverse = raw.viewUsed.inverse(); - - if (lightFreshDbgEnabled() && lightFreshDbgBudget-- > 0) { - lightFreshDbgMat("viewUsed", raw.viewUsed); - } + // Strips the view out of SoLightElement::getMatrix (== model * view) so the + // stored sceneMatrix is the light's pure world/model transform. + const SbMatrix viewInverse = SoViewingMatrixElement::get(state).inverse(); const SbColor & ambientColor = SoEnvironmentElement::getAmbientColor(state); const float ambientIntensity = SoEnvironmentElement::getAmbientIntensity(state); @@ -902,23 +917,25 @@ fillLightingFromState(SoState * state, SoDrawList & drawlist) // lightMatrix == model * view, so the scene-space model matrix follows. rawLight.sceneMatrix = lightMatrix * viewInverse; - // Coin's legacy GL path (So{Directional,Point,Spot}Light::GLRender) - // passes the raw field values UNTRANSFORMED to glLightfv(GL_POSITION / - // GL_SPOT_DIRECTION), and OpenGL interprets those in EYE space. The net - // effect: lights are view-fixed -- their eye-space direction/position is - // the raw field value regardless of the camera. A world-fixed - // reinterpretation (transforming by model*view) makes faces cross the - // NdotL=0 boundary as the camera orbits and go pure black, diverging - // from the GL backend. Store the raw values as the eye-space data so the - // IR/Vulkan shading stays consistent with GL for any camera pose. + // World-space light data: the raw field values are light-LOCAL, so the + // light node's scene matrix maps them to the scene's world space. A + // light at the scene root (identity matrix) keeps its raw geometry; a + // headlight parented to the camera inherits the camera rotation and thus + // stays head-fixed while document lights stay world-fixed -- which is + // exactly the scene-graph semantics the legacy GL path gave the + // modelview transform it fed glLightfv with. The stored data is view- + // independent: eye-space consumers derive it per frame with + // SoRenderIR::lightToEye(); the path tracer shades in world space. if (light->isOfType(SoDirectionalLight::getClassTypeId())) { SoDirectionalLight * directional = static_cast(light); lightData.type = SO_LIGHT_DIRECTIONAL; rawLight.type = SO_LIGHT_DIRECTIONAL; rawLight.sceneDirection = -(directional->direction.getValue()); - lightData.direction = rawLight.sceneDirection; + rawLight.sceneMatrix.multDirMatrix(rawLight.sceneDirection, + lightData.direction); if (lightData.direction.normalize() == 0.0f) { - lightData.direction.setValue(0.0f, 0.0f, 1.0f); + lightData.direction = rawLight.sceneDirection; + lightData.direction.normalize(); } } else if (light->isOfType(SoPointLight::getClassTypeId())) { @@ -927,7 +944,8 @@ fillLightingFromState(SoState * state, SoDrawList & drawlist) rawLight.type = SO_LIGHT_POINT; rawLight.scenePosition = point->location.getValue(); lightData.attenuation = attenuation; - lightData.position = rawLight.scenePosition; + rawLight.sceneMatrix.multVecMatrix(rawLight.scenePosition, + lightData.position); } else if (light->isOfType(SoSpotLight::getClassTypeId())) { SoSpotLight * spot = static_cast(light); @@ -936,10 +954,13 @@ fillLightingFromState(SoState * state, SoDrawList & drawlist) rawLight.scenePosition = spot->location.getValue(); rawLight.sceneDirection = spot->direction.getValue(); lightData.attenuation = attenuation; - lightData.position = rawLight.scenePosition; - lightData.direction = rawLight.sceneDirection; + rawLight.sceneMatrix.multVecMatrix(rawLight.scenePosition, + lightData.position); + rawLight.sceneMatrix.multDirMatrix(rawLight.sceneDirection, + lightData.direction); if (lightData.direction.normalize() == 0.0f) { - lightData.direction.setValue(0.0f, 0.0f, -1.0f); + lightData.direction = rawLight.sceneDirection; + lightData.direction.normalize(); } float cutoff = spot->cutOffAngle.getValue(); if (cutoff < 0.0f) cutoff = 0.0f; @@ -965,8 +986,8 @@ fillLightingFromState(SoState * state, SoDrawList & drawlist) light->getName().getString(), (int)lightData.type); lightFreshDbgMat("lightMatrix", lightMatrix); fprintf(stderr, - "[LITFRESH] dir(eye)=(%.4f,%.4f,%.4f) pos(eye)=(%.4f,%.4f," - "%.4f) sceneDir=(%.4f,%.4f,%.4f)\n", + "[LITFRESH] dir(world)=(%.4f,%.4f,%.4f) pos(world)=(%.4f,%.4f," + "%.4f) rawDir=(%.4f,%.4f,%.4f)\n", lightData.direction[0], lightData.direction[1], lightData.direction[2], lightData.position[0], lightData.position[1], lightData.position[2], diff --git a/src/rendering/SoRenderManager.cpp b/src/rendering/SoRenderManager.cpp index 3e36bf173a3..9e49b1889cd 100644 --- a/src/rendering/SoRenderManager.cpp +++ b/src/rendering/SoRenderManager.cpp @@ -457,7 +457,7 @@ SoRenderManager::detachRootSensor(void) \deprecated Will not be available in Coin 5 */ void -SoRenderManager::attachClipSensor(SoNode * const sceneroot) +SoRenderManager::attachClipSensor(SoNode * const /*sceneroot*/) { //PRIVATE(this)->clipsensor->attach(sceneroot); //if (PRIVATE(this)->autoclipping != SoRenderManager::NO_AUTO_CLIPPING) { @@ -1131,7 +1131,7 @@ SoRenderManager::initStencilBufferForInterleavedStereo(void) const SbVec2s neworigin = currentvp.getViewportOriginPixels(); const SbVec2s newsize = currentvp.getViewportSizePixels(); - const SbVec2s oldorigin = PRIVATE(this)->stereostencilmaskvp.getViewportOriginPixels(); + [[maybe_unused]] const SbVec2s oldorigin = PRIVATE(this)->stereostencilmaskvp.getViewportOriginPixels(); const SbVec2s oldsize = PRIVATE(this)->stereostencilmaskvp.getViewportSizePixels(); allocnewmask = allocnewmask || diff --git a/src/rendering/SoVulkanRenderBackend.h b/src/rendering/SoVulkanRenderBackend.h index 65a9140bdde..ef3369adcde 100644 --- a/src/rendering/SoVulkanRenderBackend.h +++ b/src/rendering/SoVulkanRenderBackend.h @@ -6,13 +6,19 @@ #include "rendering/SoRenderBackend.h" #include "rendering/SoVulkanShared.h" +#include "rendering/SoVulkanRenderBackend/SoVulkanMemPool.h" +#include "rendering/SoVulkanRenderBackend/SoVulkanRecordContext.h" #include #include #include +#include +#include #include +#include #include +#include #include #include @@ -124,6 +130,14 @@ struct VulkanCachedCommand { struct VulkanWideLineBuffer { VkBuffer buffer = VK_NULL_HANDLE; VkDeviceMemory memory = VK_NULL_HANDLE; + //! Persistent host mapping of `memory` (VK_MEMORY_PROPERTY_HOST_VISIBLE | + //! HOST_COHERENT), established once at (re)creation and kept alive so the + //! steady-state per-frame update is a plain memcpy instead of a per-command + //! vkMapMemory/vkUnmapMemory pair. map/unmap dominates the wide-line cost + //! on line-heavy scenes (each call ~50us; a dozen visible edge commands per + //! frame is ~1ms+). Cleared to null whenever `memory` is destroyed; freeing + //! memory implicitly unmaps, so no explicit unmap is needed at teardown. + void * mapped = nullptr; VkDeviceSize size = 0; //! Fingerprint of the geometry/view/proj/width/viewport that produced the //! quads in this slot. A match means the buffer already holds the exact @@ -171,6 +185,13 @@ struct VulkanCachedCommand { struct VulkanCachedTexture { VkImage image = VK_NULL_HANDLE; VkDeviceMemory memory = VK_NULL_HANDLE; + // Offset of `memory` into the sub-allocator block it came from (0 when the + // memory is a standalone vkAllocateMemory -- the legacy path). Needed to + // return the range when FC_VULKAN_MEM_POOL is enabled. + VkDeviceSize memoryOffset = 0; + // Size of the `memory` range (the sub-allocated block size / allocation + // size). Tracked so releaseMemory() returns exactly what was allocated. + VkDeviceSize memorySize = 0; VkImageView view = VK_NULL_HANDLE; VkSampler sampler = VK_NULL_HANDLE; VkDescriptorSet descriptorSet = VK_NULL_HANDLE; @@ -223,7 +244,8 @@ class SoVulkanRenderBackend : public SoRenderBackend { SbBool renderExternal(const SoDrawList & drawlist, const SoRenderParams & params, VkCommandBuffer commandBuffer, - VkRenderPass renderPass); + VkRenderPass renderPass, + VkFramebuffer framebuffer); /*! \brief Record only the overlay pass (e.g. the navigation cube) into a @@ -284,6 +306,8 @@ class SoVulkanRenderBackend : public SoRenderBackend { bool createLightingDescriptorSet(); bool createPipelineLayout(); bool createRenderPass(const SoVulkanRenderTarget & target, + VkAttachmentLoadOp colorLoadOp, + VkAttachmentLoadOp depthLoadOp, VkRenderPass & renderPass); bool createShaders(VkShaderModule & vertexModule, VkShaderModule & fragmentModule); @@ -293,9 +317,12 @@ class SoVulkanRenderBackend : public SoRenderBackend { bool createBackgroundPipeline(const SoVulkanRenderTarget & target, VkRenderPass renderPass, VkPipeline & pipeline); + bool ensureFramebuffer(const SoVulkanRenderTarget * target, + VkRenderPass renderPass); void recordBackground(const SoRenderParams & params, const SoVulkanRenderTarget & target, - VkRenderPass renderPass); + VkRenderPass renderPass, + VulkanRecordContext & ctx); bool getOrCreatePipeline(const SoRenderCommand & command, const SoVulkanRenderTarget & target, VkRenderPass renderPass, @@ -370,23 +397,84 @@ class SoVulkanRenderBackend : public SoRenderBackend { size_t index = 0; const SoRenderCommand * command = nullptr; const SoTextureData * texture = nullptr; - VkBuffer staging = VK_NULL_HANDLE; - VkDeviceMemory stagingMemory = VK_NULL_HANDLE; + // Byte offset into the shared staging pool buffer (stagingPoolBuffer) + // where this upload's pixels were staged. All pending uploads in a frame + // share one host-visible allocation, so a failure leaves a single buffer + // to clean up instead of N per-upload stagings. + VkDeviceSize stagingOffset = 0; + VkDeviceSize stagingBytes = 0; + }; + + // One resolvable draw unit of the frame's worklist, produced by + // buildWorkItems(). buildWorkItems() walks the sorted order, buckets + // opaque depth-tested commands, and pre-assigns each item a disjoint + // `slotBase` (the first of `count` consecutive lighting-UBO / instance-model + // ring slots it consumes). Worker threads later record from these read-only + // items, so nothing here mutates shared backend state. `commands` is either + // a single pointer (count == 1, recorded as one draw) or an array of `count` + // pointers sharing geometry/material (recorded as one instanced draw). + struct VulkanWorkItem { + const SoRenderCommand * single = nullptr; // count == 1 draw + const SoRenderCommand * const * commands = nullptr; // count > 1 batch array + int count = 1; + uint32_t slotBase = 0; + bool transparent = false; + bool recordToSecondary = false; // opaque pass → secondary cmd buffer (M1c) + bool overlayPass = false; // SO_RENDERPASS_OVERLAY screen-space draw + int fillModeOverride = -1; // wireframe/point redraw fill mode, or -1 + const float * uniformColorOverride = nullptr; + // Pre-resolved per-item state so the record path (and parallel workers) + // avoid re-walking the pipeline cache / texture-set map / lighting map. + // Filled by buildWorkItems(); unused markers left null. + VkPipeline pipeline = VK_NULL_HANDLE; + VkDescriptorSet textureSet = VK_NULL_HANDLE; + uint32_t lightingDynamicOffset = 0; }; + + bool buildWorkItems(const SoDrawList & drawlist, + const SoRenderParams & params, + bool wireframeOverlay, bool pointsOverlay, + const float * overlayColor, + VkRenderPass renderPass, + std::vector & out); + // Record one pre-assigned work item into ctx.buffer (single draw or a batch). + void recordWorkItem(const SoDrawList & drawlist, + const SoRenderParams & params, + const SoVulkanRenderTarget & target, + VkRenderPass renderPass, + const VulkanWorkItem & item, + VulkanRecordContext & ctx); + // M1d pool: build persistent worker threads, partition+dispatch, join. + bool buildRecordPool(); + void shutdownRecordPool(); + void recordJobWorker(size_t workerIndex); + bool recordSecondaryChunk(VulkanRecordContext & ctx, + const SoDrawList & drawlist, + const SoRenderParams & params, + const SoVulkanRenderTarget & target, + VkRenderPass renderPass, + const std::vector & items, + VkCommandBuffer secondary, + VkFramebuffer framebuffer); + VkCommandBuffer workerSecondary(uint32_t frameSlot, uint32_t worker); + VkCommandBuffer parallelCurrentSecondary(uint32_t worker); bool prepareTextureUpload(VulkanCachedTexture & entry, const SoTextureData & texture, - VkBuffer & staging, - VkDeviceMemory & stagingMemory); + VkDeviceSize & stagingOffset, + VkDeviceSize & stagingBytes); void recordTextureUpload(VkCommandBuffer commandBuffer, const VulkanCachedTexture & entry, const SoTextureData & texture, - VkBuffer staging); + VkBuffer staging, + VkDeviceSize stagingOffset); bool finalizeTexture(VulkanCachedTexture & entry, const SoTextureData & texture); bool recordPendingTextureUploads(); void finalizePendingTextureUploads(); bool flushPendingTextureUploadsExternal(); - bool createSampler(const SoTextureData & texture, VkSampler & sampler); + bool createSampler(SoTextureFilter minFilter, SoTextureFilter magFilter, + SoTextureWrap wrapS, SoTextureWrap wrapT, + VkSampler & sampler); // Format actually used for an N-component SoTextureData image. VK_FORMAT_ // R8_UNORM / R8G8_UNORM / R8G8B8_UNORM are not guaranteed to be sampleable // (they are optional formats), so when the device lacks SAMPLED_IMAGE @@ -397,21 +485,59 @@ class SoVulkanRenderBackend : public SoRenderBackend { VkDescriptorSet & set); bool ensureDescriptorPoolSpace(); VkDescriptorSet resolveTextureSet(const SoRenderCommand & command); + // Release a texture image or staging buffer's device memory back to the + // sub-allocator when enabled (FC_VULKAN_MEM_POOL), else vkFreeMemory as the + // legacy path. The caller must have recorded the offset (from a pool alloc) + // into the entry/staging record — when the pool is disabled the memory is a + // standalone allocation and offset is 0. Destroying the VkBuffer/VkImage + // for the pool case is the caller's responsibility (the memory block outlives + // the buffer/image); this helper only returns the memory. + void releaseMemory(VkDeviceMemory memory, VkDeviceSize size, + VkDeviceSize offset); + // True when sub-allocating transient texture memory (FC_VULKAN_MEM_POOL). + bool usingMemPool() const { return this->memPool != nullptr; } // --- Render recording --------------------------------------------------- + // Every record* helper below takes the VulkanRecordContext it records + // into and touches no other recording state, so (future) worker threads + // can each record their own command buffer with their own dedup cache. bool beginCommandBuffer(); VkCommandBuffer currentCommandBuffer(); + VkCommandBuffer currentSecondaryCommandBuffer(); void recordClear(const SoRenderParams & params, - const SoVulkanRenderTarget & target); + const SoVulkanRenderTarget & target, + bool colorClearedByLoad, + bool depthClearedByLoad, + VulkanRecordContext & ctx); + // Returns true when the frame's clear region (derived from params.viewport) + // covers the whole target, so the render pass can use a CLEAR color/depth + // loadOp instead of a vkCmdClearAttachments region clear. + bool isFullTargetClear(const SoRenderParams & params, + const SoVulkanRenderTarget & target) const; void recordDrawCommand(const SoDrawList & drawlist, const SoRenderCommand & command, const SoVulkanRenderTarget & target, const SoRenderParams & params, VkRenderPass renderPass, bool transparent, - int fillModeOverride = -1, - const float * uniformColorOverride = nullptr, - bool overlayPass = false); + int fillModeOverride, + const float * uniformColorOverride, + bool overlayPass, + VulkanRecordContext & ctx); + // Instanced batch: draw `count` commands that share geometry/material/state + // and differ only by model matrix as ONE vkCmdDraw(instanceCount=count). + // `commands` is an array of pointers into the draw list. Returns false if + // the first command cannot be drawn (missing cache entry) or any command is + // not batchable. + bool recordCommandBatch(const SoDrawList & drawlist, + const SoRenderCommand * const * commands, int count, + const SoVulkanRenderTarget & target, + const SoRenderParams & params, + VkRenderPass renderPass, + bool transparent, + int fillModeOverride, + const float * uniformColorOverride, + VulkanRecordContext & ctx); bool expandWideLines(VulkanCachedCommand & entry, const SoRenderCommand & command, const SoRenderParams & params, @@ -419,39 +545,48 @@ class SoVulkanRenderBackend : public SoRenderBackend { float lineWidth); bool endAndSubmit(); void applyViewport(const SoRenderParams & params, - const SoVulkanRenderTarget & target); + const SoVulkanRenderTarget & target, + VulkanRecordContext & ctx); void applyCommandViewport(const SoRenderCommand & command, - const SoVulkanRenderTarget & target); + const SoVulkanRenderTarget & target, + VulkanRecordContext & ctx); void applyScissor(const SoRenderCommand & command, - const SoVulkanRenderTarget & target); + const SoVulkanRenderTarget & target, + VulkanRecordContext & ctx); // Deduplicated dynamic-state emitters. Each records the value last set - // this frame and skips the vkCmd* call when the incoming value is already + // into `ctx` and skips the vkCmd* call when the incoming value is already // active, so an opaque run of draws sharing a pipeline/viewport pays one // state change instead of one per draw. Only the value actually submitted // to the command buffer is remembered, so early-return paths (e.g. a // command with no per-command viewport) leave the remembered state as the // real current binding. - void applyPipeline(VkPipeline pipeline); - void applyViewportState(const VkViewport & viewport); - void applyScissorState(const VkRect2D & scissor); - void resetBoundState(); + void applyPipeline(VkPipeline pipeline, VulkanRecordContext & ctx); + void applyViewportState(const VkViewport & viewport, + VulkanRecordContext & ctx); + void applyScissorState(const VkRect2D & scissor, VulkanRecordContext & ctx); + void resetBoundState(VulkanRecordContext & ctx); void recordOverlayDepthClear(const SoRenderCommand & command, - const SoVulkanRenderTarget & target); + const SoVulkanRenderTarget & target, + VulkanRecordContext & ctx); void recordOverlayBlock(const SoDrawList & drawlist, const SoRenderParams & params, const SoVulkanRenderTarget & target, - VkRenderPass renderPass); + VkRenderPass renderPass, + VulkanRecordContext & ctx); void recordTracedComposite(const SoDrawList & drawlist, const SoRenderParams & params, const SoVulkanRenderTarget & target, - VkRenderPass renderPass); + VkRenderPass renderPass, + VulkanRecordContext & ctx); SbBool renderInternal(const SoDrawList & drawlist, const SoRenderParams & params, bool overlaysOnly); bool recordFrame(const SoDrawList & drawlist, const SoRenderParams & params, const SoVulkanRenderTarget & target, - VkRenderPass renderPass); + VkRenderPass renderPass, + VulkanRecordContext & ctx, + VkFramebuffer inheritFramebuffer); // --- Vulkan resource helpers ------------------------------------------- bool createBuffer(VkDeviceSize size, @@ -488,6 +623,18 @@ class SoVulkanRenderBackend : public SoRenderBackend { VkMemoryPropertyFlags desiredProperties, VkBuffer & buffer, VkDeviceMemory & memory, const void * data = nullptr); + // Ensure the per-instance model-matrix buffer holds at least `bytes` + // (HOST_VISIBLE | HOST_COHERENT, persistently mapped). Recreates + remaps + // on growth; the old buffer is released through the deferred ring. + bool ensureInstanceModelBuffer(VkDeviceSize bytes); + // Size the per-instance model-matrix buffer to the full ring + // (maxFramesInFlight * uboSlotsPerFrame * sizeof(float[16])), matching the + // lighting-UBO ring the instance element index parallels + // ((frameIndex % maxFramesInFlight) * uboSlotsPerFrame + slotIndex). Called + // at the same sites that create/resize the UBO ring so the per-draw path + // never grows (or worse, re-creates) the buffer -- a per-draw vkMapMemory / + // vkDestroyBuffer would otherwise race once workers record in parallel. + bool ensureInstanceModelRingCapacity(); bool growLightingUbo(uint32_t minSlots); bool swapLightingBuffer(VkBuffer newBuffer, VkDeviceMemory newMemory, void * newMapped, uint32_t newSlotsPerFrame); @@ -513,6 +660,13 @@ class SoVulkanRenderBackend : public SoRenderBackend { // deviceMemoryProperties + deviceMemoryPropertiesValid cache. SoVulkanShared::MemoryProperties memProps; + // Sub-allocator for the high-churn transient resources (texture image memory + // and texture staging buffers), so each upload does not vkAllocateMemory / + // vkFreeMemory against the driver (slow, and counts against + // maxMemoryAllocationCount). Enabled by FC_VULKAN_MEM_POOL (off by default); + // when disabled the legacy per-resource allocate path is used. + std::unique_ptr memPool; + // --- Device capabilities (probed once in initialize()) ----------------- // VkPhysicalDeviceFeatures::fillModeNonSolid gates the wireframe/points // overlay and the LINES/POINTS draw-style pipelines, which use @@ -539,11 +693,62 @@ class SoVulkanRenderBackend : public SoRenderBackend { std::vector frameCommandBuffers; std::vector frameFences; std::vector frameFencePending; - - // Command buffer being recorded by the current render()/renderExternal() - // call. This is the backend's own buffer in render(), or the caller's - // buffer in renderExternal(). - VkCommandBuffer activeCommandBuffer = VK_NULL_HANDLE; + // Secondary command buffers for M1c/M1d: one per in-flight frame slot per + // worker, used to record the render-order-independent opaque pass inside an + // already-begun render pass (RENDER_PASS_CONTINUE), then + // vkCmdExecuteCommands()'d into the slot's primary buffer. Kept per-slot + // so a secondary is never reset while a primary that executed it is still + // pending; the pool's RESET_COMMAND_BUFFER_BIT lets each be re-recorded + // after its slot's fence is waited. + // + // ONE POOL PER WORKER: VkCommandPool host access is externally + // synchronized per the Vulkan spec, so concurrent vkReset/vkBegin/vkEnd of + // buffers allocated from a SHARED pool (M1d workers + main) races the + // pool's internal allocator. Pool w owns only worker w's secondaries. + std::vector secondaryCommandPools; + // Secondaries are indexed [slot * maxRecordWorkers + worker], so a worker + // always records into its own buffer of the current in-flight slot and a + // secondary is never reset while a primary that executed it is pending. + std::vector secondaryCommandBuffers; + // M1d parallel recording. The opaque worklist is partitioned into disjoint + // chunks, each recorded by one worker thread into its own secondary buffer + // (slots are pre-assigned disjoint by M1b, so the mapped UBO/instance-model + // writes are race-free). The pool is persistent; worker 0 is the recording + // thread and workers 1..N-1 are spawned threads, all joined in shutdown(). + bool parallelRecordEnabled = false; + uint32_t maxRecordWorkers = 1; + std::vector recordWorkers; + std::vector workerRecordContexts; + struct ParallelRecordJob { + const SoDrawList * drawlist = nullptr; + const SoRenderParams * params = nullptr; + const SoVulkanRenderTarget * target = nullptr; + VkRenderPass renderPass = VK_NULL_HANDLE; + VkFramebuffer framebuffer = VK_NULL_HANDLE; + // This worker's chunk: pointers into the frame's worklist (workItemsScratch + // is a backend member that stays alive for the whole recording). + std::vector items; + VkCommandBuffer secondary = VK_NULL_HANDLE; + VulkanRecordContext * ctx = nullptr; + bool ok = false; + }; + std::vector recordJobs; + std::mutex recordMutex; + std::condition_variable recordCvSpawn, recordCvDone; + // Monotonic dispatch generation: main increments it under recordMutex when + // publishing a frame's jobs; each worker remembers the generation it already + // processed and re-waits until a NEW one arrives, so every worker consumes + // each dispatch exactly once (a plain ready flag would let a finished worker + // immediately re-process the same frame while main is still waiting). + uint32_t recordJobGeneration = 0; + std::atomic recordDoneCount {0}; + bool recordPoolStopped = false; + // Per-recording command-buffer target + dedup state for the current + // render()/renderExternal() call. This names the backend's own buffer in + // render(), or the caller's buffer in renderExternal(). Kept as one + // member (single-threaded recording); worker threads get their own + // VulkanRecordContext instances. + VulkanRecordContext recordContext; VkDescriptorSetLayout descriptorSetLayout = VK_NULL_HANDLE; // Set-0 layout: the lighting constant ring (binding 0, UBO dynamic). The @@ -575,7 +780,18 @@ class SoVulkanRenderBackend : public SoRenderBackend { VkDeviceSize uboSlotStride = 0; uint32_t uboSlotsPerFrame = 0; uint32_t uboFrameIndex = 0; - uint32_t uboCmdIndex = 0; + + // Host-visible, persistently-mapped buffer holding the per-instance model + // matrices for instanced drawing (binding 1, rate INSTANCE). A group of + // commands sharing geometry/material and differing only by model matrix is + // drawn with a single vkCmdDraw(instanceCount=N); the N model matrices are + // memcpy'd here and the attribute reads them per instance. A one-element + // buffer serves ordinary non-instanced draws. Grows on demand; freed in + // shutdown(). + VkBuffer instanceModelBuffer = VK_NULL_HANDLE; + VkDeviceMemory instanceModelMemory = VK_NULL_HANDLE; + void * instanceModelMapped = nullptr; + VkDeviceSize instanceModelCapacity = 0; // Per-frame pre-conversion of the frame camera matrices (double -> float). // The main pass draws every command with the frame view/projection (only // scissor overlays carry their own matrices), so converting once per render @@ -583,6 +799,10 @@ class SoVulkanRenderBackend : public SoRenderBackend { // updateLightingUniforms() and recordDrawCommand() on every draw. float frameViewFloats[16] = {}; float frameProjFloats[16] = {}; + // Hoisted device-pixel ratio: cacheFrameMatrices() computes the frame's + // scalar once so per-command push-constant code reads a member instead of + // re-evaluating params.devicePixelRatio (a branch + member access) per draw. + float frameDpr = 1.0f; void cacheFrameMatrices(const SoRenderParams & params); // Lighting constant ring (set 0, binding 0, dynamic offset). Holds a few @@ -624,6 +844,22 @@ class SoVulkanRenderBackend : public SoRenderBackend { // cache eviction compacts the texture cache. std::vector pendingUploads; + // Persistent host-visible staging buffer used to coalesce the external + // texture-upload flush (flushPendingTextureUploadsExternal) into a single + // buffer write + one submit, instead of allocating a fresh transient staging + // buffer per pending upload per frame. Grows on demand and is reused across + // frames; released at shutdown(). Its mapped pointer is the single owner of + // the staged pixel data, so a failure at any point leaves one buffer to + // clean up rather than N per-upload allocations to chase. + VkBuffer stagingPoolBuffer = VK_NULL_HANDLE; + VkDeviceMemory stagingPoolMemory = VK_NULL_HANDLE; + void * stagingPoolMapped = nullptr; + VkDeviceSize stagingPoolCapacity = 0; + // Running byte cursor into stagingPoolBuffer for the current frame's + // pending uploads; reset to 0 at the start of each flush/record pass. + VkDeviceSize stagingPoolCursor = 0; + bool ensureStagingPoolSize(VkDeviceSize required); + // Texture binding (set 0, binding 1). A 1x1 white fallback texture is // bound whenever a command carries no embedded SoTextureData. VkImage whiteImage = VK_NULL_HANDLE; @@ -656,6 +892,12 @@ class SoVulkanRenderBackend : public SoRenderBackend { VkSampleCountFlagBits sampleCount = VK_SAMPLE_COUNT_1_BIT; VkImageLayout colorLayout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; VkImageLayout depthLayout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL; + // Load ops distinguish a render pass that clears its attachments at begin + // (full-target clear fast path, FC_VULKAN_RP_CLEAR) from one that loads + // them and clears via vkCmdClearAttachments. Two passes that differ only + // in loadOp must not share a cache entry. + VkAttachmentLoadOp colorLoadOp = VK_ATTACHMENT_LOAD_OP_LOAD; + VkAttachmentLoadOp depthLoadOp = VK_ATTACHMENT_LOAD_OP_LOAD; bool operator==(const RenderPassIdentity & other) const { @@ -663,7 +905,9 @@ class SoVulkanRenderBackend : public SoRenderBackend { depthFormat == other.depthFormat && sampleCount == other.sampleCount && colorLayout == other.colorLayout && - depthLayout == other.depthLayout; + depthLayout == other.depthLayout && + colorLoadOp == other.colorLoadOp && + depthLoadOp == other.depthLoadOp; } }; struct RenderPassIdentityHash @@ -680,16 +924,28 @@ class SoVulkanRenderBackend : public SoRenderBackend { std::hash()(static_cast(key.colorLayout))); hash = hashCombine(hash, std::hash()(static_cast(key.depthLayout))); + hash = hashCombine(hash, + std::hash()(static_cast(key.colorLoadOp))); + hash = hashCombine(hash, + std::hash()(static_cast(key.depthLoadOp))); return hash; } }; RenderPassIdentity renderPassIdentity(const SoVulkanRenderTarget & target) const; - VkRenderPass getOrCreateRenderPass(const SoVulkanRenderTarget & target); + VkRenderPass getOrCreateRenderPass(const SoVulkanRenderTarget & target, + VkAttachmentLoadOp colorLoadOp, + VkAttachmentLoadOp depthLoadOp); std::unordered_map renderPassCache; // Render pass used by the current frame (looked up from renderPassCache). VkRenderPass renderPass = VK_NULL_HANDLE; + // Whether the current frame's render pass clears the color/depth attachment + // via its loadOp (full-target-clear fast path). When true, recordClear() + // skips the redundant vkCmdClearAttachments and the begin info supplies the + // corresponding clear value. + bool renderPassColorCleared = false; + bool renderPassDepthCleared = false; // Framebuffer cached for the current target identity (image views + // extent + render pass). Swapchain targets cycle their images every @@ -778,22 +1034,42 @@ class SoVulkanRenderBackend : public SoRenderBackend { std::unordered_map backgroundPipelineCache; - // Last dynamic state actually bound this frame (see applyPipeline / - // applyViewportState / applyScissorState). Reset by resetBoundState() at - // each frame boundary; maxFramesInFlight is per-slot but dynamic state is - // per-record (the command buffer being recorded), so it is reset once per - // frame, not per in-flight slot. - VkPipeline lastBoundPipeline = VK_NULL_HANDLE; - VkViewport lastBoundViewport {}; - VkRect2D lastBoundScissor {}; - bool hasBoundViewport = false; - bool hasBoundScissor = false; + // Reusable CPU scratch for the wide-line quad expansion. expandWideLines() + // previously allocated clipCache/distances/quads as fresh std::vector per + // line per frame -- for line-heavy scenes that is thousands of heap + // alloc/free per frame. These are reused via assign() (no realloc when + // capacity is sufficient), so only the fill cost remains. + std::vector wlineClipScratch; + std::vector wlineDistScratch; + std::vector wlineQuadScratch; std::vector gpuCache; std::unordered_map commandToCache; std::vector textureCache; std::unordered_map commandToTexture; + // Reusable batch-key bucket map for recordFrame()'s opaque batching pass. + // Previously a fresh std::unordered_map per frame; reused via clear() so an + // ordinary frame does not heap-allocate the bucket table + key vectors. + std::unordered_map> batchBucketScratch; + // Reusable worklist produced by buildWorkItems() and consumed by the record + // path (M1b) and, later, secondary-buffer / parallel workers (M1c/M1d). + // Cleared per frame and refilled so an ordinary frame does not heap-allocate + // the item vector. + std::vector workItemsScratch; + + // Packed sampler-state key: minFilter | magFilter << 2 | wrapS << 4 | wrapT << 6. + typedef uint8_t SamplerKey; + static SamplerKey samplerKey(SoTextureFilter minFilter, + SoTextureFilter magFilter, + SoTextureWrap wrapS, SoTextureWrap wrapT); + // Sampler cache so textures sharing filter/wrap state reuse one VkSampler + // instead of creating one per texture entry. Owned here; destroyed at + // shutdown() after the texture cache. Always created lazily on first use. + std::unordered_map samplerCache; + VkSampler cachedSampler(SoTextureFilter minFilter, SoTextureFilter magFilter, + SoTextureWrap wrapS, SoTextureWrap wrapT); + std::vector geometryBlocks; // Released blocks are kept as reusable ids so a geometry-change burst does // not grow geometryBlocks without bound; releaseGeometryBlock() returns an @@ -803,8 +1079,9 @@ class SoVulkanRenderBackend : public SoRenderBackend { // Reusable scratch packing buffer for uploadGeometry(). Resized but never // reallocated across successive uploads, so the interleaved repack does not - // churn the heap on every geometry change. - std::vector uploadScratch; + // churn the heap on every geometry change. Stores the 32-byte packed layout + // (see VULKAN_VERTEX_STRIDE), so it is byte-addressed. + std::vector uploadScratch; // Reusable per-draw "needs geometry upload" flag buffer for // updateGeometryCache(). Grows to the largest draw list seen, then keeps // its capacity so an ordinary frame does not heap-allocate a fresh vector diff --git a/src/rendering/SoVulkanRenderBackend/SoVulkanMemPool.cpp b/src/rendering/SoVulkanRenderBackend/SoVulkanMemPool.cpp new file mode 100644 index 00000000000..80a859608be --- /dev/null +++ b/src/rendering/SoVulkanRenderBackend/SoVulkanMemPool.cpp @@ -0,0 +1,206 @@ +// src/rendering/SoVulkanRenderBackend/SoVulkanMemPool.cpp +// +// Implementation of the device-memory sub-allocator (see SoVulkanMemPool.h). + +#include "rendering/SoVulkanRenderBackend/SoVulkanMemPool.h" + +#include +#include +#include + +SoVulkanMemPool::SoVulkanMemPool(VkDevice device, + const VkAllocationCallbacks * allocator, + VkDeviceSize blockSizeHint) + : m_device(device) + , m_allocator(allocator) + , m_blockSizeHint(blockSizeHint ? blockSizeHint : (4u * 1024u * 1024u)) +{ +} + +SoVulkanMemPool::~SoVulkanMemPool() +{ + // The backend is expected to call destroyAll() at shutdown; if not (e.g. a + // partially-failed initialize that never reached the ownership transfer), + // release here so nothing leaks. Device memory must not be freed while any + // submission is in flight, but this destructor runs only at backend teardown + // which waits for the queue. + this->destroyAll(); +} + +VkDeviceSize +SoVulkanMemPool::alignUp(VkDeviceSize v, VkDeviceSize alignment) +{ + if (alignment <= 1) return v; + return (v + alignment - 1) / alignment * alignment; +} + +std::size_t +SoVulkanMemPool::blockCount() const +{ + std::size_t count = 0; + for (const auto & kv : m_pools) count += kv.second.blocks.size(); + return count; +} + +bool +SoVulkanMemPool::alloc(uint32_t memoryTypeIndex, VkDeviceSize size, + VkDeviceSize alignment, VkDeviceMemory & block, + VkDeviceSize & offset) +{ + block = VK_NULL_HANDLE; + offset = 0; + if (size == 0 || memoryTypeIndex >= 32) return false; + const VkDeviceSize alignedSize = alignUp(size, alignment); + if (alignedSize == 0) return false; + + BlockPool & pool = m_pools[memoryTypeIndex]; + if (this->findBlock(memoryTypeIndex, alignedSize, alignment, block, offset)) { + return true; + } + return this->grow(pool, memoryTypeIndex, alignedSize, alignment, block, + offset); +} + +bool +SoVulkanMemPool::findBlock(uint32_t memoryTypeIndex, VkDeviceSize size, + VkDeviceSize alignment, VkDeviceMemory & outMemory, + VkDeviceSize & outOffset) +{ + BlockPool & pool = m_pools[memoryTypeIndex]; + for (Block & b : pool.blocks) { + // A free range must be large enough and begin on a boundary compatible + // with `alignment` for this resource. + auto it = b.freeRanges.begin(); + while (it != b.freeRanges.end()) { + const VkDeviceSize start = alignUp(it->first, alignment); + const VkDeviceSize end = it->first + it->second; + if (start + size <= end) { + outMemory = b.memory; + outOffset = start; + // Shrink the free range: keep the leading pad as a new free range, + // and the trailing remainder (if any) as another. + const VkDeviceSize before = start - it->first; + const VkDeviceSize after = end - (start + size); + if (before == 0 && after == 0) { + b.freeRanges.erase(it); + } + else if (before == 0) { + it->first = start + size; + it->second = after; + } + else if (after == 0) { + it->second = before; + } + else { + // Split: shrink the current range to the leading pad, insert a new + // trailing range right after it (they were adjacent, so keep + // sorted order valid). + it->second = before; + b.freeRanges.insert(it + 1, + std::make_pair(start + size, after)); + } + return true; + } + ++it; + } + } + return false; +} + +bool +SoVulkanMemPool::grow(BlockPool & pool, uint32_t memoryTypeIndex, + VkDeviceSize size, VkDeviceSize alignment, + VkDeviceMemory & outMemory, VkDeviceSize & outOffset) +{ + // Block size: at least `size`, at least the hint, else double the current + // largest block so repeated small allocs amortise the block allocation. + VkDeviceSize blockSize = std::max(m_blockSizeHint, size); + for (const Block & b : pool.blocks) { + if (b.capacity >= blockSize) { + blockSize = b.capacity * 2; + break; + } + } + blockSize = alignUp(blockSize, alignment); + + // Allocate `blockSize` bytes from the memory type. There is no fallback + // memory type: the caller already picked it from the resource's requirements. + VkMemoryAllocateInfo ai {}; + ai.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO; + ai.allocationSize = blockSize; + ai.memoryTypeIndex = memoryTypeIndex; + + VkDeviceMemory memory = VK_NULL_HANDLE; + if (vkAllocateMemory(m_device, &ai, m_allocator, &memory) != VK_SUCCESS) { + return false; + } + + Block b; + b.memory = memory; + b.capacity = blockSize; + // Consume the requested range up front (off=0), leaving the remainder free. + if (size < blockSize) { + b.freeRanges.emplace_back(size, blockSize - size); + } + pool.blocks.push_back(std::move(b)); + + outMemory = memory; + outOffset = 0; + return true; +} + +void +SoVulkanMemPool::free(VkDeviceMemory block, VkDeviceSize offset, + VkDeviceSize size) +{ + if (block == VK_NULL_HANDLE || size == 0) return; + + // Find the pool/block that owns `block`. + for (auto & kv : m_pools) { + BlockPool & pool = kv.second; + for (Block & b : pool.blocks) { + if (b.memory != block) continue; + const VkDeviceSize end = offset + size; + std::vector> & fr = b.freeRanges; + // Insert keeping the list sorted and merge with any adjacent range. + auto it = std::lower_bound(fr.begin(), fr.end(), offset, + [](const std::pair & r, + VkDeviceSize off) { return r.first < off; }); + // Extend previous range if it touches ours. + if (it != fr.begin()) { + auto prev = it - 1; + if (prev->first + prev->second == offset) { + prev->second += size; + // Merge with the next range too if they now are adjacent. + if (it != fr.end() && prev->first + prev->second == it->first) { + prev->second += it->second; + fr.erase(it); + } + return; + } + } + // Extend/merge at `it`. + if (it != fr.end() && offset + size == it->first) { + it->first = offset; + it->second += size; + return; + } + fr.insert(it, std::make_pair(offset, size)); + return; + } + } +} + +void +SoVulkanMemPool::destroyAll() +{ + for (auto & kv : m_pools) { + for (Block & b : kv.second.blocks) { + if (b.memory != VK_NULL_HANDLE) { + vkFreeMemory(m_device, b.memory, m_allocator); + } + } + kv.second.blocks.clear(); + } + m_pools.clear(); +} diff --git a/src/rendering/SoVulkanRenderBackend/SoVulkanMemPool.h b/src/rendering/SoVulkanRenderBackend/SoVulkanMemPool.h new file mode 100644 index 00000000000..3967f270772 --- /dev/null +++ b/src/rendering/SoVulkanRenderBackend/SoVulkanMemPool.h @@ -0,0 +1,95 @@ +// src/rendering/SoVulkanRenderBackend/SoVulkanMemPool.h +// +// Minimal Vulkan device-memory sub-allocator. +// +// Every texture upload currently vkCreateImage -> vkGetImageMemoryRequirements +// -> vkAllocateMemory -> vkBindImageMemory, and its staging buffer similarly +// vkAllocateMemory/vkFreeMemory. That is an OS/driver-level allocation per +// texture (and per upload), which is slow and counts against the device's +// maxMemoryAllocationCount. The Khronos guidance for Vulkan memory is to +// create a few large allocations and sub-allocate from them. +// +// This pool sub-allocates ranges from a set of large VkDeviceMemory blocks, +// one pool per memory-type index. A free-list tracks the unused ranges of +// each block so freed ranges can be reused; adjacent ranges are coalesced. +// Blocks grow geometrically (starting at blockSizeHint) and are released only +// at destroyAll(). +// +// Correctness contract for the backend using this pool: +// - alloc() returns (block, offset). The caller binds exactly `size` bytes +// at `offset` of a resource (buffer or image). Ranges returned by two +// alloc() calls never overlap, so two resources bound to the same block +// are never live at the same offset. +// - free() must be called only once the GPU can no longer reference the +// resource (i.e. from the backend's deferred-destroy ring, which runs +// maxFramesInFlight frames after the release was requested). Reusing a +// freed range before then could alias a still-executing submission. +// - alloc() is not fully thread-safe for block creation (a new block +// allocates device memory). Keep the recording call off the worker-hot +// path; the backend sizes the pool's blocks up front and only ever +// returns free ranges there. + +#ifndef COIN_SOVULKANMEMPOOL_H +#define COIN_SOVULKANMEMPOOL_H + +#include +#include +#include +#include +#include + +#include + +class SoVulkanMemPool { +public: + SoVulkanMemPool(VkDevice device, const VkAllocationCallbacks * allocator, + VkDeviceSize blockSizeHint = 4u * 1024u * 1024u); + ~SoVulkanMemPool(); + SoVulkanMemPool(const SoVulkanMemPool &) = delete; + SoVulkanMemPool & operator=(const SoVulkanMemPool &) = delete; + + // Allocate `size` bytes (rounded up to `alignment`, which must be a power of + // two) from memory-type `memoryTypeIndex`. On success returns true and sets + // `block`/`offset`. On failure returns false leaving block null. + bool alloc(uint32_t memoryTypeIndex, VkDeviceSize size, + VkDeviceSize alignment, VkDeviceMemory & block, + VkDeviceSize & offset); + + // Return a range previously obtained from alloc() back to the pool. The + // caller guarantees the GPU can no longer reference the range (deferred + // destroy). Coalesces with adjacent free ranges. + void free(VkDeviceMemory block, VkDeviceSize offset, VkDeviceSize size); + + // Release every block (shutdown). The queue must be idle. + void destroyAll(); + + // Number of VkDeviceMemory blocks currently held (diagnostics / MEM_REPORT). + std::size_t blockCount() const; + +private: + struct Block { + VkDeviceMemory memory = VK_NULL_HANDLE; + VkDeviceSize capacity = 0; + // Free ranges, kept sorted by offset, non-overlapping, non-adjacent. + std::vector> freeRanges; + }; + struct BlockPool { + std::vector blocks; + }; + + bool findBlock(uint32_t memoryTypeIndex, VkDeviceSize size, + VkDeviceSize alignment, VkDeviceMemory & outMemory, + VkDeviceSize & outOffset); + bool grow(BlockPool & pool, uint32_t memoryTypeIndex, VkDeviceSize size, + VkDeviceSize alignment, VkDeviceMemory & outMemory, + VkDeviceSize & outOffset); + + static VkDeviceSize alignUp(VkDeviceSize v, VkDeviceSize alignment); + + VkDevice m_device = VK_NULL_HANDLE; + const VkAllocationCallbacks * m_allocator = nullptr; + VkDeviceSize m_blockSizeHint = 0; + std::unordered_map m_pools; +}; + +#endif // COIN_SOVULKANMEMPOOL_H diff --git a/src/rendering/SoVulkanRenderBackend/SoVulkanRecordContext.h b/src/rendering/SoVulkanRenderBackend/SoVulkanRecordContext.h new file mode 100644 index 00000000000..5f693d45928 --- /dev/null +++ b/src/rendering/SoVulkanRenderBackend/SoVulkanRecordContext.h @@ -0,0 +1,71 @@ +// src/rendering/SoVulkanRenderBackend/SoVulkanRecordContext.h +// +// Per-recording command-buffer target plus the deduplicated dynamic-state +// cache used while recording it. +// +// Recording "remembers the state actually bound so far" to skip redundant +// vkCmd* calls (see applyPipeline/applyViewportState/applyScissorState and +// the descriptor-bind caches). As long as that cache lives in backend +// members only one thread can ever record. Lifting it into a small context +// struct lets each (future) worker thread record its own command buffer with +// its own dedup cache: every record* helper takes a `VulkanRecordContext &` +// and touches no other recording state. Descriptors, pipelines and uniform +// rings stay backend-owned and read-only during recording. + +#ifndef COIN_SOVULKANRECORDCONTEXT_H +#define COIN_SOVULKANRECORDCONTEXT_H + +#include + +#include + +struct VulkanRecordContext { + // Command buffer being recorded. Assigned by the render entry point + // (the backend's own buffer in render(), the caller's buffer in + // renderExternal()); cleared back to null when recording ends. + VkCommandBuffer buffer = VK_NULL_HANDLE; + + // Per-recording lighting/instance-model slot cursor. Moved out of a + // backend member so each (future parallel) worker thread owns its own: the + // record path plants this at an item's pre-assigned slotBase (M1b) before + // each item, and recordDrawCommand/recordCommandBatch advance it, so + // concurrent workers each advance their own cursor while writing disjoint + // (race-free) ring regions. + uint32_t uboCmdIndex = 0; + + // Last dynamic state actually bound into `buffer` (see applyPipeline / + // applyViewportState / applyScissorState). Reset once per frame, not per + // in-flight slot: dynamic state is per-recording, so a reused slot's prior + // content must never suppress a needed state change. + VkPipeline lastBoundPipeline = VK_NULL_HANDLE; + VkViewport lastBoundViewport {}; + VkRect2D lastBoundScissor {}; + bool hasBoundViewport = false; + bool hasBoundScissor = false; + // Per-frame descriptor-bind caches. A frame typically shares one lighting + // handle and one (usually the white) texture, so caching the resolved + // set/offset avoids an unordered_map lookup per draw and lets set 0 + // re-bind only when the lighting handle actually changes. Set 1 must + // still re-bind every draw because its dynamic offset (the per-draw + // view/model/material slot) advances each draw. + uint32_t lastLightingHandle = UINT32_MAX; + uint32_t lastLightingOffset = 0; + uint32_t lastBoundLightingOffset = UINT32_MAX; + VkDescriptorSet lastBoundTextureSet = VK_NULL_HANDLE; + + // Forget the bound state (frame boundary). Deliberately leaves `buffer` + // alone: the entry point assigns the buffer after the reset. + void reset() + { + uboCmdIndex = 0; + lastBoundPipeline = VK_NULL_HANDLE; + hasBoundViewport = false; + hasBoundScissor = false; + lastLightingHandle = UINT32_MAX; + lastLightingOffset = 0; + lastBoundLightingOffset = UINT32_MAX; + lastBoundTextureSet = VK_NULL_HANDLE; + } +}; + +#endif // COIN_SOVULKANRECORDCONTEXT_H diff --git a/src/rendering/SoVulkanRenderBackend/SoVulkanRenderBackendCommand.cpp b/src/rendering/SoVulkanRenderBackend/SoVulkanRenderBackendCommand.cpp index 36e4bdd2092..8cd1de3f933 100644 --- a/src/rendering/SoVulkanRenderBackend/SoVulkanRenderBackendCommand.cpp +++ b/src/rendering/SoVulkanRenderBackend/SoVulkanRenderBackendCommand.cpp @@ -30,49 +30,51 @@ using namespace CoinVulkanDetail; void -SoVulkanRenderBackend::resetBoundState() +SoVulkanRenderBackend::resetBoundState(VulkanRecordContext & ctx) { - this->lastBoundPipeline = VK_NULL_HANDLE; - this->hasBoundViewport = false; - this->hasBoundScissor = false; + ctx.reset(); } void -SoVulkanRenderBackend::applyPipeline(const VkPipeline pipeline) +SoVulkanRenderBackend::applyPipeline(const VkPipeline pipeline, + VulkanRecordContext & ctx) { - if (pipeline == this->lastBoundPipeline) return; - vkCmdBindPipeline(this->activeCommandBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, + if (pipeline == ctx.lastBoundPipeline) return; + vkCmdBindPipeline(ctx.buffer, VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline); - this->lastBoundPipeline = pipeline; + ctx.lastBoundPipeline = pipeline; } void -SoVulkanRenderBackend::applyViewportState(const VkViewport & viewport) +SoVulkanRenderBackend::applyViewportState(const VkViewport & viewport, + VulkanRecordContext & ctx) { - if (this->hasBoundViewport && - std::memcmp(&this->lastBoundViewport, &viewport, sizeof(viewport)) == 0) { + if (ctx.hasBoundViewport && + std::memcmp(&ctx.lastBoundViewport, &viewport, sizeof(viewport)) == 0) { return; } - vkCmdSetViewport(this->activeCommandBuffer, 0, 1, &viewport); - this->lastBoundViewport = viewport; - this->hasBoundViewport = true; + vkCmdSetViewport(ctx.buffer, 0, 1, &viewport); + ctx.lastBoundViewport = viewport; + ctx.hasBoundViewport = true; } void -SoVulkanRenderBackend::applyScissorState(const VkRect2D & scissor) +SoVulkanRenderBackend::applyScissorState(const VkRect2D & scissor, + VulkanRecordContext & ctx) { - if (this->hasBoundScissor && - std::memcmp(&this->lastBoundScissor, &scissor, sizeof(scissor)) == 0) { + if (ctx.hasBoundScissor && + std::memcmp(&ctx.lastBoundScissor, &scissor, sizeof(scissor)) == 0) { return; } - vkCmdSetScissor(this->activeCommandBuffer, 0, 1, &scissor); - this->lastBoundScissor = scissor; - this->hasBoundScissor = true; + vkCmdSetScissor(ctx.buffer, 0, 1, &scissor); + ctx.lastBoundScissor = scissor; + ctx.hasBoundScissor = true; } void SoVulkanRenderBackend::applyViewport(const SoRenderParams & params, - const SoVulkanRenderTarget & target) + const SoVulkanRenderTarget & target, + VulkanRecordContext & ctx) { const SbVec2s & origin = params.viewport.getViewportOriginPixels(); const SbVec2s & size = params.viewport.getViewportSizePixels(); @@ -98,7 +100,7 @@ SoVulkanRenderBackend::applyViewport(const SoRenderParams & params, viewport.height = static_cast(size[1]); viewport.minDepth = 0.0f; viewport.maxDepth = 1.0f; - this->applyViewportState(viewport); + this->applyViewportState(viewport, ctx); // Clamp the clear region to the target so an off-screen viewport (origin // outside the target, or a size exceeding the extent) never generates a @@ -119,7 +121,7 @@ SoVulkanRenderBackend::applyViewport(const SoRenderParams & params, scissor.offset = {x0, y0}; scissor.extent = {static_cast(std::max(0, x1 - x0)), static_cast(std::max(0, y1 - y0))}; - this->applyScissorState(scissor); + this->applyScissorState(scissor, ctx); } // Apply a per-command viewport (recorded by the IR producer from @@ -128,7 +130,8 @@ SoVulkanRenderBackend::applyViewport(const SoRenderParams & params, // by applyViewport(). Same Y-flip math as applyViewport(). void SoVulkanRenderBackend::applyCommandViewport(const SoRenderCommand & command, - const SoVulkanRenderTarget & target) + const SoVulkanRenderTarget & target, + VulkanRecordContext & ctx) { const SoRasterState & raster = command.state.raster; if (!raster.viewportEnabled || raster.viewportWidth <= 0 || @@ -150,7 +153,7 @@ SoVulkanRenderBackend::applyCommandViewport(const SoRenderCommand & command, std::clamp(command.state.depth.range[0], 0.0f, 1.0f); viewport.maxDepth = std::clamp(command.state.depth.range[1], 0.0f, 1.0f); - this->applyViewportState(viewport); + this->applyViewportState(viewport, ctx); // The per-command viewport also bounds the draw region; mirror the // scissor clamp used by applyViewport(). @@ -171,12 +174,13 @@ SoVulkanRenderBackend::applyCommandViewport(const SoRenderCommand & command, scissor.offset = {x0, y0}; scissor.extent = {static_cast(std::max(0, x1 - x0)), static_cast(std::max(0, y1 - y0))}; - this->applyScissorState(scissor); + this->applyScissorState(scissor, ctx); } void SoVulkanRenderBackend::applyScissor(const SoRenderCommand & command, - const SoVulkanRenderTarget & target) + const SoVulkanRenderTarget & target, + VulkanRecordContext & ctx) { VkRect2D scissor {}; const SoRasterState & raster = command.state.raster; @@ -196,12 +200,42 @@ SoVulkanRenderBackend::applyScissor(const SoRenderCommand & command, scissor.offset = {0, 0}; scissor.extent = target.extent; } - this->applyScissorState(scissor); + this->applyScissorState(scissor, ctx); +} + +bool +SoVulkanRenderBackend::isFullTargetClear(const SoRenderParams & params, + const SoVulkanRenderTarget & target) const +{ + // Mirror the clear-region math in recordClear(). A full-target clear means + // the viewport region, after clamping to the target, covers the entire + // attachment, so no vkCmdClearAttachments region is needed and the render + // pass can clear via its loadOp instead. Empty viewports clear nothing. + const SbVec2s & origin = params.viewport.getViewportOriginPixels(); + const SbVec2s & size = params.viewport.getViewportSizePixels(); + const int32_t x0 = std::max(0, static_cast(origin[0])); + const int32_t y0 = std::max( + 0, static_cast(target.extent.height) - + static_cast(origin[1]) - + static_cast(size[1])); + const int32_t x1 = std::min(static_cast(target.extent.width), + static_cast(origin[0]) + + static_cast(size[0])); + const int32_t y1 = std::min( + static_cast(target.extent.height), + static_cast(target.extent.height) - + static_cast(origin[1])); + return x0 == 0 && y0 == 0 && + x1 == static_cast(target.extent.width) && + y1 == static_cast(target.extent.height); } void SoVulkanRenderBackend::recordClear(const SoRenderParams & params, - const SoVulkanRenderTarget & target) + const SoVulkanRenderTarget & target, + bool colorClearedByLoad, + bool depthClearedByLoad, + VulkanRecordContext & ctx) { const bool hasDepth = target.depthImageView != VK_NULL_HANDLE && target.depthFormat != VK_FORMAT_UNDEFINED; @@ -210,24 +244,31 @@ SoVulkanRenderBackend::recordClear(const SoRenderParams & params, uint32_t attachmentCount = 0; if (params.flags & SO_PARAM_CLEAR_WINDOW) { - const SbColor4f & color = params.clearColor; - VkClearAttachment clear {}; - clear.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - clear.colorAttachment = 0; - clear.clearValue.color.float32[0] = color[0]; - clear.clearValue.color.float32[1] = color[1]; - clear.clearValue.color.float32[2] = color[2]; - clear.clearValue.color.float32[3] = color[3]; - attachments[attachmentCount++] = clear; + // When the render pass begins with a CLEAR color loadOp (full-target + // clear fast path), the attachment was already cleared to params.clearColor, + // so there is no matching vkCmdClearAttachments to omit. + if (!colorClearedByLoad) { + const SbColor4f & color = params.clearColor; + VkClearAttachment clear {}; + clear.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + clear.colorAttachment = 0; + clear.clearValue.color.float32[0] = color[0]; + clear.clearValue.color.float32[1] = color[1]; + clear.clearValue.color.float32[2] = color[2]; + clear.clearValue.color.float32[3] = color[3]; + attachments[attachmentCount++] = clear; + } } if (hasDepth && (params.flags & SO_PARAM_CLEAR_DEPTH)) { - VkClearAttachment clear {}; - clear.aspectMask = VK_IMAGE_ASPECT_DEPTH_BIT; - clear.colorAttachment = 0; - clear.clearValue.depthStencil.depth = params.clearDepth; - clear.clearValue.depthStencil.stencil = 0; - attachments[attachmentCount++] = clear; + if (!depthClearedByLoad) { + VkClearAttachment clear {}; + clear.aspectMask = VK_IMAGE_ASPECT_DEPTH_BIT; + clear.colorAttachment = 0; + clear.clearValue.depthStencil.depth = params.clearDepth; + clear.clearValue.depthStencil.stencil = 0; + attachments[attachmentCount++] = clear; + } } if (hasDepth && (params.flags & SO_PARAM_CLEAR_STENCIL)) { @@ -266,13 +307,14 @@ SoVulkanRenderBackend::recordClear(const SoRenderParams & params, static_cast(y1 - y0)}; rect.baseArrayLayer = 0; rect.layerCount = 1; - vkCmdClearAttachments(this->activeCommandBuffer, attachmentCount, attachments, 1, + vkCmdClearAttachments(ctx.buffer, attachmentCount, attachments, 1, &rect); } void SoVulkanRenderBackend::recordOverlayDepthClear(const SoRenderCommand & command, - const SoVulkanRenderTarget & target) + const SoVulkanRenderTarget & target, + VulkanRecordContext & ctx) { const bool hasDepth = target.depthImageView != VK_NULL_HANDLE && target.depthFormat != VK_FORMAT_UNDEFINED; @@ -311,12 +353,14 @@ SoVulkanRenderBackend::recordOverlayDepthClear(const SoRenderCommand & command, static_cast(y1 - y0)}; rect.baseArrayLayer = 0; rect.layerCount = 1; - vkCmdClearAttachments(this->activeCommandBuffer, 1, &attachment, 1, &rect); + vkCmdClearAttachments(ctx.buffer, 1, &attachment, 1, &rect); } bool SoVulkanRenderBackend::updateLightingSetup(const SoDrawList & drawlist) { + vkBackendTrace(this->uboFrameIndex, "updateLightingSetup.enter", "cmds=%d", + drawlist.getNumCommands()); // Build the (usually single) lighting constant block per distinct // lightingHandle once per frame, into the lighting ring, so the 8-light // setup is computed once and referenced by every draw through its dynamic @@ -332,6 +376,12 @@ SoVulkanRenderBackend::updateLightingSetup(const SoDrawList & drawlist) static const SoLightingData emptyLighting; uint32_t occupiedSlots = 0; + // Setups are world-space; the visual shaders light in eye space, so pack + // them through the frame view (cacheFrameMatrices() runs before this). + SbMat frameViewMat; + std::memcpy(frameViewMat, this->frameViewFloats, sizeof(float) * 16); + const SbMatrix frameView(frameViewMat); + // Seed slot 0 with empty lighting so the handle-0 fallback in // lightingOffsetFor() is always valid. { @@ -363,52 +413,7 @@ SoVulkanRenderBackend::updateLightingSetup(const SoDrawList & drawlist) static_cast(frameBase + slot) * this->lightingConstStride; VulkanLightingUbo * u = reinterpret_cast( static_cast(this->lightingConstMapped) + offset); - std::memset(u, 0, sizeof(VulkanLightingUbo)); - - u->ambientLight[0] = lighting->ambient[0]; - u->ambientLight[1] = lighting->ambient[1]; - u->ambientLight[2] = lighting->ambient[2]; - u->ambientLight[3] = 1.0f; - - const int count = std::min( - static_cast(lighting->lights.size()), MAX_SHADER_LIGHTS); - for (int li = 0; li < count; ++li) { - const SoLightData & light = lighting->lights[static_cast(li)]; - float * type = u->lightType + li * 4; - type[0] = static_cast(light.type); - type[1] = type[2] = 0.0f; - type[3] = 1.0f; - - float * color = u->lightColor + li * 4; - color[0] = light.color[0]; - color[1] = light.color[1]; - color[2] = light.color[2]; - color[3] = 1.0f; - - float * direction = u->lightDirection + li * 4; - direction[0] = light.direction[0]; - direction[1] = light.direction[1]; - direction[2] = light.direction[2]; - direction[3] = 1.0f; - - float * position = u->lightPosition + li * 4; - position[0] = light.position[0]; - position[1] = light.position[1]; - position[2] = light.position[2]; - position[3] = 1.0f; - - float * attenuation = u->lightAttenuation + li * 4; - attenuation[0] = light.attenuation[0]; - attenuation[1] = light.attenuation[1]; - attenuation[2] = light.attenuation[2]; - attenuation[3] = 1.0f; - - float * spot = u->lightSpotParams + li * 4; - spot[0] = light.spotCutoffCos; - spot[1] = light.spotExponent; - spot[2] = 0.0f; - spot[3] = 1.0f; - } + SoRenderIR::fillLightingBlock(*u, *lighting, &frameView); this->lightingSlotOffsets[handle] = offset; ++occupiedSlots; } @@ -515,8 +520,13 @@ SoVulkanRenderBackend::recordDrawCommand(const SoDrawList & drawlist, const bool transparent, const int fillModeOverride, const float * uniformColorOverride, - const bool overlayPass) + const bool overlayPass, + VulkanRecordContext & ctx) { + vkBackendTrace(this->uboFrameIndex, "recordDrawCommand.enter", + "cmd=%p pass=%d slot=%u", + reinterpret_cast(&command), + static_cast(command.pass), ctx.uboCmdIndex); if (!command.geometry.positions || command.geometry.vertexCount == 0) { if (COIN_VULKAN_ENV_FLAG("FC_VULKAN_BACKEND_DEBUG")) { fprintf(stderr, "[VKBE] cmd %p pass=%d skip: no positions/verts\n", @@ -611,14 +621,14 @@ SoVulkanRenderBackend::recordDrawCommand(const SoDrawList & drawlist, overlayPass ? 1 : 0, transparent ? 1 : 0); } } - this->applyPipeline(pipeline); + this->applyPipeline(pipeline, ctx); // Commands carrying their own viewport (SoViewportRegionElement) render // into that sub-region; otherwise the frame viewport from applyViewport() // stays active. - this->applyCommandViewport(command, target); - this->applyScissor(command, target); + this->applyCommandViewport(command, target, ctx); + this->applyScissor(command, target, ctx); - const uint32_t slotIndex = this->uboCmdIndex++; + const uint32_t slotIndex = ctx.uboCmdIndex++; // prepareLightingSlots() reserves a worst-case slot count before any // recording, so this can only trip if a future recording path forgets to // pre-count. Guard at runtime regardless: the mapped UBO write below @@ -639,36 +649,71 @@ SoVulkanRenderBackend::recordDrawCommand(const SoDrawList & drawlist, const uint32_t uboDynamicOffset = static_cast(uboOffset); // Bind set 0 (lighting constant, dynamic offset per handle) and set 1 - // (per-draw UBO + texture, dynamic offset) in one call. Lighting is the - // same for every command sharing a handle, so its block was written once - // by updateLightingSetup() and is merely referenced here. + // (per-draw UBO + texture, dynamic offset). Lighting is the same for every + // command sharing a handle, so its block was written once per handle by + // updateLightingSetup() and is merely referenced here. VkDescriptorSet textureSet = this->resolveTextureSet(command); if (textureSet == VK_NULL_HANDLE) { textureSet = this->whiteDescriptorSet; } - const VkDescriptorSet sets[2] = {this->lightingDescriptorSet, textureSet}; - const uint32_t dynamicOffsets[2] = { - static_cast(this->lightingOffsetFor(command)), - uboDynamicOffset, - }; - vkCmdBindDescriptorSets(this->activeCommandBuffer, - VK_PIPELINE_BIND_POINT_GRAPHICS, - this->pipelineLayout, 0, 2, sets, 2, - dynamicOffsets); + // Cache the lighting dynamic offset per handle: a frame's retained commands + // almost always share ONE handle, so only the first draw of a new handle + // pays the unordered_map lookup in lightingOffsetFor(). Set 0 re-binds only + // when the handle (its dynamic offset) actually changes; set 1 must re-bind + // every draw because its dynamic offset is the per-draw UBO slot below. + uint32_t lightingDynamicOffset = ctx.lastLightingOffset; + if (command.lightingHandle != ctx.lastLightingHandle) { + lightingDynamicOffset = + static_cast(this->lightingOffsetFor(command)); + ctx.lastLightingHandle = command.lightingHandle; + ctx.lastLightingOffset = lightingDynamicOffset; + } + uint32_t bindingOffsets[2] = { lightingDynamicOffset, uboDynamicOffset }; + if (ctx.lastBoundLightingOffset != lightingDynamicOffset || + ctx.lastBoundTextureSet != textureSet) { + // First draw of a new lighting handle / texture set: bind both sets with + // their dynamic offsets in one call (also covers the frame's first draw). + const VkDescriptorSet both[2] = {this->lightingDescriptorSet, textureSet}; + vkBackendTrace(this->uboFrameIndex, "draw.bindDescSets2", + "slot=%u", slotIndex); + vkCmdBindDescriptorSets(ctx.buffer, + VK_PIPELINE_BIND_POINT_GRAPHICS, + this->pipelineLayout, 0, 2, both, 2, + bindingOffsets); + ctx.lastBoundLightingOffset = lightingDynamicOffset; + ctx.lastBoundTextureSet = textureSet; + } + else { + // Same lighting handle + texture set as the previous draw: only the + // per-draw UBO dynamic offset advances. Re-bind set 1 alone (set 0 stays + // bound from the last 2-set bind) instead of re-emitting both sets. + vkBackendTrace(this->uboFrameIndex, "draw.bindDescSets1", + "slot=%u", slotIndex); + vkCmdBindDescriptorSets(ctx.buffer, + VK_PIPELINE_BIND_POINT_GRAPHICS, + this->pipelineLayout, 1, 1, &textureSet, 1, + &bindingOffsets[1]); + } const VkDeviceSize vertexOffset = entry.vertexOffset; - vkCmdBindVertexBuffers(this->activeCommandBuffer, 0, 1, &entry.vertexBuffer, - &vertexOffset); const bool indexed = entry.indexBuffer != VK_NULL_HANDLE && command.geometry.indexCount && command.geometry.indices; + vkBackendTrace(this->uboFrameIndex, "draw.bindVbuf0", + "slot=%u vbuf=%p off=%llu", slotIndex, + reinterpret_cast(entry.vertexBuffer), + static_cast(vertexOffset)); + vkCmdBindVertexBuffers(ctx.buffer, 0, 1, &entry.vertexBuffer, + &vertexOffset); if (indexed && !useWideLine) { - vkCmdBindIndexBuffer(this->activeCommandBuffer, entry.indexBuffer, + vkBackendTrace(this->uboFrameIndex, "draw.bindIbuf", "slot=%u", slotIndex); + vkCmdBindIndexBuffer(ctx.buffer, entry.indexBuffer, entry.indexOffset, VK_INDEX_TYPE_UINT32); } this->updateLightingUniforms(drawlist, command, params, uboOffset, uniformColorOverride != nullptr); + vkBackendTrace(this->uboFrameIndex, "draw.uboWrite", "slot=%u", slotIndex); VulkanPushConstants push {}; SbMat projValue; @@ -778,9 +823,8 @@ SoVulkanRenderBackend::recordDrawCommand(const SoDrawList & drawlist, // logical points (so a 2pt line is 2*dpr device px on a scaled display). // The Vulkan viewport is device pixels too, so apply the same ratio here // for parity; otherwise lines/points render 1/dpr too thin on a fractional - // (e.g. 1.25 / 1.5 / 2.0) scaling display. - const float dpr = params.devicePixelRatio > 0.0f - ? params.devicePixelRatio : 1.0f; + // (e.g. 1.25 / 1.5 / 2.0) scaling display. frameDpr is hoisted per frame. + const float dpr = this->frameDpr; push.pointSize = std::max(1.0f, command.state.raster.pointSize) * dpr; push.lineParams[0] = push.lineParams[1] = push.lineParams[2] = 0.0f; push.lineParams[3] = 0.0f; @@ -805,10 +849,12 @@ SoVulkanRenderBackend::recordDrawCommand(const SoDrawList & drawlist, push.lineParams[3] = command.geometry.topology == SO_TOPOLOGY_POINTS ? 1.0f : 0.0f; - vkCmdPushConstants(this->activeCommandBuffer, this->pipelineLayout, - VK_SHADER_STAGE_VERTEX_BIT | - VK_SHADER_STAGE_FRAGMENT_BIT, - 0, sizeof(push), &push); + vkBackendTrace(this->uboFrameIndex, "draw.pushConstants", "slot=%u", + slotIndex); + vkCmdPushConstants(ctx.buffer, this->pipelineLayout, + VK_SHADER_STAGE_VERTEX_BIT | + VK_SHADER_STAGE_FRAGMENT_BIT, + 0, sizeof(push), &push); if (COIN_VULKAN_ENV_FLAG("FC_VULKAN_BACKEND_DEBUG") && (command.geometry.topology == SO_TOPOLOGY_LINES || @@ -897,7 +943,7 @@ SoVulkanRenderBackend::recordDrawCommand(const SoDrawList & drawlist, VkDeviceSize wideOffset = 0; const VulkanCachedCommand::VulkanWideLineBuffer & wslot = entry.wideLineBuffers[this->uboFrameIndex % this->maxFramesInFlight]; - vkCmdBindVertexBuffers(this->activeCommandBuffer, 0, 1, &wslot.buffer, + vkCmdBindVertexBuffers(ctx.buffer, 0, 1, &wslot.buffer, &wideOffset); } @@ -908,20 +954,261 @@ SoVulkanRenderBackend::recordDrawCommand(const SoDrawList & drawlist, (const void*)&command, entry.wideLineVertexCount, static_cast(command.pass)); } - vkCmdDraw(this->activeCommandBuffer, entry.wideLineVertexCount, 1, 0, 0); + vkCmdDraw(ctx.buffer, entry.wideLineVertexCount, 1, 0, 0); + } + else { + // Bind the per-instance model matrix (binding 1, rate INSTANCE) and draw + // with instanceCount=1. Every visual pipeline now carries the instanced + // model attribute, so binding 1 must be bound for every visual draw (the + // shader reads the transform from it rather than the UBO). The model is + // written into a per-command ring slot at the SAME element index the draw + // UBO uses, so the GPU reads this draw's transform even though recording + // completes before execution (a single shared offset would collapse every + // draw onto the last-committed model). A batched group writes a run of + // [slotIndex .. slotIndex+N) elements and draws instanceCount=N. + const VkDeviceSize instElement = + static_cast((this->uboFrameIndex % this->maxFramesInFlight) * + this->uboSlotsPerFrame + slotIndex); + const VkDeviceSize instByteOffset = instElement * sizeof(float) * 16; + // The instance-model ring is pre-sized to maxFramesInFlight * + // uboSlotsPerFrame (see ensureInstanceModelRingCapacity), so the element + // index can never exceed it -- this is a defensive bounds check only, with + // no growth path (growing here would re-create the buffer mid-record, + // which races once workers record in parallel). + if (instByteOffset + sizeof(float) * 16 > this->instanceModelCapacity) { + return; + } + SbMat mm; + command.modelMatrix.getValue(mm); + std::memcpy(static_cast(this->instanceModelMapped) + instByteOffset, + &mm[0][0], sizeof(float) * 16); + vkBackendTrace(this->uboFrameIndex, "draw.bindVbuf1", "slot=%u", + slotIndex); + vkCmdBindVertexBuffers(ctx.buffer, 1, 1, + &this->instanceModelBuffer, &instByteOffset); + if (indexed) { + vkBackendTrace(this->uboFrameIndex, "draw.drawIndexed", + "slot=%u buf=%p ic=%u cmd=%p", slotIndex, + reinterpret_cast(ctx.buffer), + command.geometry.indexCount, + reinterpret_cast(&command)); + vkCmdDrawIndexed(ctx.buffer, command.geometry.indexCount, 1, 0, + 0, 0); + } + else { + vkBackendTrace(this->uboFrameIndex, "draw.draw", + "slot=%u buf=%p vc=%u ic=1 cmd=%p", + slotIndex, reinterpret_cast(ctx.buffer), + command.geometry.vertexCount, + reinterpret_cast(&command)); + vkCmdDraw(ctx.buffer, command.geometry.vertexCount, 1, 0, 0); + } + } +} + +bool +SoVulkanRenderBackend::recordCommandBatch(const SoDrawList & drawlist, + const SoRenderCommand * const * commands, + int count, + const SoVulkanRenderTarget & target, + const SoRenderParams & params, + VkRenderPass pass, + const bool transparent, + const int fillModeOverride, + const float * uniformColorOverride, + VulkanRecordContext & ctx) +{ + // The batch shares geometry/material/state and differs only by model matrix, + // so every command picks the same pipeline, descriptor sets, vertex data and + // push constants as commands[0]. Rendered with one instanced draw. + vkBackendTrace(this->uboFrameIndex, "recordCommandBatch.enter", + "count=%d slot=%u", count, ctx.uboCmdIndex); + const SoRenderCommand & command = *commands[0]; + if (count < 2 || !command.geometry.positions || + command.geometry.vertexCount == 0) { + return false; + } + const auto found = this->commandToCache.find(&command); + if (found == this->commandToCache.end()) return false; + // Fragile: only guaranteed-correct side paths (pipeline + descriptor + push + + // non-instanced vertex geometry) batch. Wide-line expands per command on the + // CPU, so it is not batchable here. + const VulkanCachedCommand & entryRef = this->gpuCache[found->second]; + if (entryRef.vertexBuffer == VK_NULL_HANDLE) return false; + + bool useWideLine = false; + if (command.geometry.topology == SO_TOPOLOGY_LINES || + command.geometry.topology == SO_TOPOLOGY_LINE_STRIP) { + const bool patternedLine = + command.state.raster.linePattern != 0xFFFF && + command.state.raster.linePattern != 0; + useWideLine = fillModeOverride < 0 && + (command.state.raster.lineWidth > 1.0f || patternedLine); + } + if (useWideLine) { + // Not batchable; caller falls back to per-command draws. + return false; + } + + VkPipeline pipeline = VK_NULL_HANDLE; + if (!this->getOrCreatePipeline(command, target, pass, pipeline, transparent, + fillModeOverride, false) || + pipeline == VK_NULL_HANDLE) { + return false; } - else if (indexed) { - vkCmdDrawIndexed(this->activeCommandBuffer, command.geometry.indexCount, 1, 0, - 0, 0); + this->applyPipeline(pipeline, ctx); + this->applyCommandViewport(command, target, ctx); + this->applyScissor(command, target, ctx); + + // Reserve `count` lighting-UBO slots so a batch of N instances maps to N + // distinct instance-model ring elements (base..base+N-1). The prepareLighting + // pre-pass reserved countDrawCommands() slots, so this cannot overflow. + const uint32_t slotIndex = ctx.uboCmdIndex; + ctx.uboCmdIndex += count; + const VkDeviceSize uboOffset = + ((this->uboFrameIndex % this->maxFramesInFlight) * + this->uboSlotsPerFrame + slotIndex) * + this->uboSlotStride; + const uint32_t uboDynamicOffset = static_cast(uboOffset); + + // Descriptor set 0 (lighting constant) + set 1 (per-draw UBO + texture). + // Lighting and texture are group-constant (batch key guarantees it), so bind + // once using commands[0]. + VkDescriptorSet textureSet = this->resolveTextureSet(command); + if (textureSet == VK_NULL_HANDLE) { + textureSet = this->whiteDescriptorSet; + } + uint32_t lightingDynamicOffset = ctx.lastLightingOffset; + if (command.lightingHandle != ctx.lastLightingHandle) { + lightingDynamicOffset = + static_cast(this->lightingOffsetFor(command)); + ctx.lastLightingHandle = command.lightingHandle; + ctx.lastLightingOffset = lightingDynamicOffset; + } + uint32_t bindingOffsets[2] = { lightingDynamicOffset, uboDynamicOffset }; + if (ctx.lastBoundLightingOffset != lightingDynamicOffset || + ctx.lastBoundTextureSet != textureSet) { + const VkDescriptorSet both[2] = {this->lightingDescriptorSet, textureSet}; + vkCmdBindDescriptorSets(ctx.buffer, + VK_PIPELINE_BIND_POINT_GRAPHICS, + this->pipelineLayout, 0, 2, both, 2, + bindingOffsets); + ctx.lastBoundLightingOffset = lightingDynamicOffset; + ctx.lastBoundTextureSet = textureSet; } else { - vkCmdDraw(this->activeCommandBuffer, command.geometry.vertexCount, 1, 0, 0); + vkCmdBindDescriptorSets(ctx.buffer, + VK_PIPELINE_BIND_POINT_GRAPHICS, + this->pipelineLayout, 1, 1, &textureSet, 1, + &bindingOffsets[1]); + } + + // Vertex buffer (binding 0). The whole batch shares commands[0]'s geometry, + // so one bind serves every instance. + const VkDeviceSize vertexOffset = entryRef.vertexOffset; + vkCmdBindVertexBuffers(ctx.buffer, 0, 1, &entryRef.vertexBuffer, + &vertexOffset); + const bool indexed = + entryRef.indexBuffer != VK_NULL_HANDLE && command.geometry.indexCount && + command.geometry.indices; + if (indexed) { + vkCmdBindIndexBuffer(ctx.buffer, entryRef.indexBuffer, + entryRef.indexOffset, VK_INDEX_TYPE_UINT32); } + + this->updateLightingUniforms(drawlist, command, params, uboOffset, + uniformColorOverride != nullptr); + + // Push constants (group-constant). + VulkanPushConstants push {}; + SbMat projValue; + // Batches are recorded only from the main (non-overlay) passes, so every + // command projects with the frame camera (mirrors recordDrawCommand's + // frameCameraOverlay=false branch). + std::memcpy(projValue, this->frameProjFloats, sizeof(float) * 16); + std::memcpy(push.proj, &projValue[0][0], sizeof(float) * 16); + const SbVec4f & color = command.material.diffuse; + const bool useOverrideColor = uniformColorOverride != nullptr; + push.color[0] = useOverrideColor ? uniformColorOverride[0] : color[0]; + push.color[1] = useOverrideColor ? uniformColorOverride[1] : color[1]; + push.color[2] = useOverrideColor ? uniformColorOverride[2] : color[2]; + push.color[3] = useOverrideColor ? uniformColorOverride[3] : color[3]; + push.flags[0] = (entryRef.colorKey && !useOverrideColor) ? 1.0f : 0.0f; + push.flags[1] = + command.material.vertexColorAlphaIncludesOpacity ? 1.0f : 0.0f; + const bool textured = command.material.texture.pixels && + command.material.texture.width > 0 && + command.material.texture.height > 0; + push.flags[2] = (textured && !useOverrideColor) ? 1.0f : 0.0f; + push.flags[3] = command.material.textureAlphaIncludesOpacity ? 1.0f : 0.0f; + push.texParams[0] = static_cast(command.material.texture.model); + push.texParams[1] = static_cast(command.state.alphaTest.function); + push.texParams[2] = command.state.alphaTest.reference; + push.texParams[3] = + (command.material.flags & SO_MAT_IS_PIXEL_TEXT) ? 1.0f : 0.0f; + const SbVec4f & blendColor = command.material.texture.blendColor; + push.texBlend[0] = blendColor[0]; + push.texBlend[1] = blendColor[1]; + push.texBlend[2] = blendColor[2]; + push.texBlend[3] = blendColor[3]; + const float dpr = this->frameDpr; + push.pointSize = std::max(1.0f, command.state.raster.pointSize) * dpr; + push.lineParams[0] = push.lineParams[1] = push.lineParams[2] = 0.0f; + push.lineParams[3] = 0.0f; + push.lineParams[1] = + command.state.raster.pointShape == SO_POINT_SHAPE_ROUND ? 1.0f : 0.0f; + if (command.geometry.topology == SO_TOPOLOGY_POINTS) { + push.lineParams[1] = 1.0f; + } + push.lineParams[2] = 0.0f; + push.lineParams[3] = + command.geometry.topology == SO_TOPOLOGY_POINTS ? 1.0f : 0.0f; + + vkCmdPushConstants(ctx.buffer, this->pipelineLayout, + VK_SHADER_STAGE_VERTEX_BIT | + VK_SHADER_STAGE_FRAGMENT_BIT, + 0, sizeof(push), &push); + + // Per-instance model matrices: commands[0..count) at consecutive ring slots. + const VkDeviceSize instBase = + static_cast((this->uboFrameIndex % this->maxFramesInFlight) * + this->uboSlotsPerFrame + slotIndex); + const VkDeviceSize instCountBytes = instBase * sizeof(float) * 16 + + static_cast(count) * sizeof(float) * 16; + // Defensive bounds check only -- the ring is pre-sized to the slot layout + // (see ensureInstanceModelRingCapacity), so no growth path here (which + // would re-create the buffer mid-record and race under parallelism). + if (instCountBytes > this->instanceModelCapacity) { + return false; + } + char * mapped = static_cast(this->instanceModelMapped); + for (int k = 0; k < count; ++k) { + SbMat mm; + commands[k]->modelMatrix.getValue(mm); + std::memcpy(mapped + (instBase + k) * sizeof(float) * 16, + &mm[0][0], sizeof(float) * 16); + } + const VkDeviceSize instOffset = instBase * sizeof(float) * 16; + vkCmdBindVertexBuffers(ctx.buffer, 1, 1, + &this->instanceModelBuffer, &instOffset); + + if (indexed) { + vkCmdDrawIndexed(ctx.buffer, command.geometry.indexCount, + static_cast(count), 0, 0, 0); + } + else { + vkCmdDraw(ctx.buffer, command.geometry.vertexCount, + static_cast(count), 0, 0); + } + return true; } bool SoVulkanRenderBackend::beginCommandBuffer() { + vkBackendTrace(this->uboFrameIndex, "beginCommandBuffer.enter", + "primary=%p", reinterpret_cast( + this->currentCommandBuffer())); VkCommandBufferBeginInfo bi {}; bi.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO; bi.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT; @@ -931,8 +1218,13 @@ SoVulkanRenderBackend::beginCommandBuffer() bool SoVulkanRenderBackend::endAndSubmit() { + vkBackendTrace(this->uboFrameIndex, "endAndSubmit.enter", "frame=%u", + this->uboFrameIndex); VkCommandBuffer cmd = this->currentCommandBuffer(); - if (vkEndCommandBuffer(cmd) != VK_SUCCESS) return false; + const VkResult endRc = vkEndCommandBuffer(cmd); + vkBackendTrace(this->uboFrameIndex, "endAndSubmit.endRc", "rc=%d", + static_cast(endRc)); + if (endRc != VK_SUCCESS) return false; VkSubmitInfo si {}; si.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO; @@ -940,7 +1232,10 @@ SoVulkanRenderBackend::endAndSubmit() si.pCommandBuffers = &cmd; const uint32_t slot = this->uboFrameIndex % this->maxFramesInFlight; const VkFence fence = this->frameFences[slot]; - if (vkQueueSubmit(this->queue, 1, &si, fence) != VK_SUCCESS) { + const VkResult submitRc = vkQueueSubmit(this->queue, 1, &si, fence); + vkBackendTrace(this->uboFrameIndex, "endAndSubmit.submitRc", "rc=%d", + static_cast(submitRc)); + if (submitRc != VK_SUCCESS) { // The fence stays unsignaled (no signal was requested), so beginFrame() // would wait forever on the next reuse of this slot. Signal it by // submitting nothing and relying on the next frame's failure path, but diff --git a/src/rendering/SoVulkanRenderBackend/SoVulkanRenderBackendCore.cpp b/src/rendering/SoVulkanRenderBackend/SoVulkanRenderBackendCore.cpp index f6e59a2c843..f7949818269 100644 --- a/src/rendering/SoVulkanRenderBackend/SoVulkanRenderBackendCore.cpp +++ b/src/rendering/SoVulkanRenderBackend/SoVulkanRenderBackendCore.cpp @@ -34,7 +34,10 @@ #include #include #include +#include +#include #include +#include #include using namespace CoinVulkanDetail; @@ -154,6 +157,34 @@ SoVulkanRenderBackend::initialize(const SoRenderBackendInitParams & params) this->allocator = deviceContext->allocator; this->memProps.setDevice(this->physicalDevice); + // Opt-in device-memory sub-allocator (FC_VULKAN_MEM_POOL). Default off so + // the behaviour is byte-for-byte the legacy path unless explicitly enabled. + if (SoVulkanShared::envFlagEnabled("FC_VULKAN_MEM_POOL")) { + this->memPool = std::make_unique( + this->device, this->allocator); + } + + // Opt-in parallel recording (M1d). Default off so output is identical to + // the serial path unless enabled. Worker count = hardware threads (capped + // to a sane bound); worker 0 is the recording thread, the rest are spawned. + if (SoVulkanShared::envFlagEnabled("FC_VULKAN_PARALLEL_RECORD")) { + unsigned int hw = std::thread::hardware_concurrency(); + this->maxRecordWorkers = hw == 0 ? 1 : hw; + if (this->maxRecordWorkers > 8) this->maxRecordWorkers = 8; + const char * cap = std::getenv("FC_VULKAN_RECORD_WORKERS"); + if (cap && cap[0]) { + const unsigned int v = static_cast(std::atoi(cap)); + if (v >= 1 && v < this->maxRecordWorkers) this->maxRecordWorkers = v; + } + this->parallelRecordEnabled = this->maxRecordWorkers > 1; + } + else { + this->maxRecordWorkers = 1; + this->parallelRecordEnabled = false; + } + vkBackendTrace(0, "init.parallelConfig", "parallel=%d W=%u", + this->parallelRecordEnabled ? 1 : 0, this->maxRecordWorkers); + // Cache the device capabilities the backend relies on. Vulkan has no API // to read back which features an already-created device enabled, so query // what the physical device *supports* and rely on the embedding @@ -280,9 +311,104 @@ SoVulkanRenderBackend::createCommandPool() &this->commandPool) != VK_SUCCESS) { return false; } + // Secondary pools for the M1c/M1d opaque-pass re-record: same + // transient/reset flags as the primary pool, secondary-level buffers. One + // pool per worker (worker 0 = the recording thread): VkCommandPool host + // access is externally synchronized, so concurrent reset/begin/end of + // buffers from a SHARED pool would race its internal allocator. + this->secondaryCommandPools.assign(this->maxRecordWorkers, VK_NULL_HANDLE); + for (VkCommandPool & pool : this->secondaryCommandPools) { + VkCommandPoolCreateInfo sci {}; + sci.sType = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO; + sci.flags = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT | + VK_COMMAND_POOL_CREATE_TRANSIENT_BIT; + sci.queueFamilyIndex = this->queueFamilyIndex; + if (vkCreateCommandPool(this->device, &sci, this->allocator, &pool) != + VK_SUCCESS) { + return false; + } + } return this->allocateFrameResources(); } +bool +SoVulkanRenderBackend::buildRecordPool() +{ + if (this->maxRecordWorkers <= 1) return true; + if (this->recordWorkers.size() == this->maxRecordWorkers - 1) return true; + this->recordPoolStopped = false; + vkBackendTrace(0, "buildRecordPool.enter", "W=%u", + this->maxRecordWorkers); + for (uint32_t w = 1; w < this->maxRecordWorkers; ++w) { + try { + this->recordWorkers.emplace_back( + &SoVulkanRenderBackend::recordJobWorker, this, static_cast(w)); + } + catch (const std::exception &) { + // Could not spawn: fall back to serial recording (worker 0 only) and + // retire any threads already spawned. + this->shutdownRecordPool(); + this->parallelRecordEnabled = false; + this->maxRecordWorkers = 1; + return false; + } + } + return true; +} + +void +SoVulkanRenderBackend::shutdownRecordPool() +{ + if (this->recordWorkers.empty()) return; + { + std::lock_guard lk(this->recordMutex); + this->recordPoolStopped = true; + } + this->recordCvSpawn.notify_all(); + for (std::thread & t : this->recordWorkers) { + if (t.joinable()) t.join(); + } + this->recordWorkers.clear(); +} + +void +SoVulkanRenderBackend::recordJobWorker(const size_t workerIndex) +{ + uint32_t processed = 0; + while (true) { + { + std::unique_lock lk(this->recordMutex); + this->recordCvSpawn.wait(lk, [this, &processed] { + return this->recordPoolStopped || + this->recordJobGeneration != processed; + }); + if (this->recordPoolStopped) return; + processed = this->recordJobGeneration; + } + vkBackendTrace(this->uboFrameIndex, "recordJobWorker.wake", + "w=%zu gen=%u", workerIndex, processed); + if (workerIndex >= this->recordJobs.size()) continue; + ParallelRecordJob & job = this->recordJobs[workerIndex]; + vkBackendTrace(this->uboFrameIndex, "recordJobWorker.record", + "w=%zu secondary=%p items=%zu", workerIndex, + reinterpret_cast(job.secondary), + job.items.size()); + if (!job.ctx || !job.drawlist || !job.params || !job.target) { + job.ok = false; + } + else { + job.ok = this->recordSecondaryChunk(*job.ctx, *job.drawlist, *job.params, + *job.target, job.renderPass, + job.items, job.secondary, + job.framebuffer); + } + vkBackendTrace(this->uboFrameIndex, "recordJobWorker.done", + "w=%zu ok=%d", workerIndex, job.ok ? 1 : 0); + this->recordDoneCount.fetch_add(1); + this->recordCvDone.notify_all(); + } +} + bool SoVulkanRenderBackend::allocateFrameResources() { @@ -304,6 +430,44 @@ SoVulkanRenderBackend::allocateFrameResources() return false; } + // One secondary command buffer per in-flight slot per worker (M1c/M1d), + // each allocated from that worker's own pool. Recorded once per slot and + // executed into that slot's primary, then re-recorded only after the slot's + // fence is waited. Indexed [slot * maxRecordWorkers + worker] (the layout + // workerSecondary() reads), so allocate worker w's buffer into every + // [slot][w] position. + const uint32_t secondaryCount = + this->maxFramesInFlight * this->maxRecordWorkers; + this->secondaryCommandBuffers.assign(secondaryCount, VK_NULL_HANDLE); + for (uint32_t w = 0; w < this->maxRecordWorkers; ++w) { + if (w >= this->secondaryCommandPools.size() || + this->secondaryCommandPools[w] == VK_NULL_HANDLE) { + return false; + } + std::vector perWorker(this->maxFramesInFlight, + VK_NULL_HANDLE); + VkCommandBufferAllocateInfo sai {}; + sai.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO; + sai.commandPool = this->secondaryCommandPools[w]; + sai.level = VK_COMMAND_BUFFER_LEVEL_SECONDARY; + sai.commandBufferCount = this->maxFramesInFlight; + if (vkAllocateCommandBuffers(this->device, &sai, perWorker.data()) != + VK_SUCCESS) { + return false; + } + for (uint32_t s = 0; s < this->maxFramesInFlight; ++s) { + this->secondaryCommandBuffers[ + static_cast(s) * this->maxRecordWorkers + w] = perWorker[s]; + } + } + + // Per-worker record contexts + job slots, sized by maxRecordWorkers. + this->workerRecordContexts.assign(this->maxRecordWorkers, VulkanRecordContext{}); + this->recordJobs.assign(this->maxRecordWorkers, ParallelRecordJob{}); + if (this->parallelRecordEnabled) { + if (!this->buildRecordPool()) return false; + } + VkFenceCreateInfo fi {}; fi.sType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO; for (VkFence & fence : this->frameFences) { @@ -326,6 +490,19 @@ SoVulkanRenderBackend::releaseFrameResources() } } this->frameCommandBuffers.clear(); + for (size_t i = 0; i < this->secondaryCommandBuffers.size(); ++i) { + VkCommandBuffer & buffer = this->secondaryCommandBuffers[i]; + if (buffer == VK_NULL_HANDLE) continue; + const uint32_t w = + static_cast(i % this->maxRecordWorkers); + if (w < this->secondaryCommandPools.size()) { + vkFreeCommandBuffers(this->device, this->secondaryCommandPools[w], 1, + &buffer); + } + } + this->secondaryCommandBuffers.clear(); + this->workerRecordContexts.clear(); + this->recordJobs.clear(); for (VkFence fence : this->frameFences) { if (fence != VK_NULL_HANDLE) { vkDestroyFence(this->device, fence, this->allocator); @@ -343,6 +520,34 @@ SoVulkanRenderBackend::currentCommandBuffer() this->frameCommandBuffers.size()]; } +VkCommandBuffer +SoVulkanRenderBackend::currentSecondaryCommandBuffer() +{ + return this->workerSecondary( + this->uboFrameIndex % std::max(this->maxFramesInFlight, 1u), 0); +} + +VkCommandBuffer +SoVulkanRenderBackend::workerSecondary(const uint32_t frameSlot, + const uint32_t worker) +{ + if (this->secondaryCommandBuffers.empty() || this->maxRecordWorkers == 0) { + return VK_NULL_HANDLE; + } + const size_t idx = static_cast(frameSlot) * this->maxRecordWorkers + + worker; + if (idx >= this->secondaryCommandBuffers.size()) return VK_NULL_HANDLE; + return this->secondaryCommandBuffers[idx]; +} + +VkCommandBuffer +SoVulkanRenderBackend::parallelCurrentSecondary(const uint32_t worker) +{ + return this->workerSecondary( + this->uboFrameIndex % std::max(this->maxFramesInFlight, 1u), + worker); +} + void SoVulkanRenderBackend::waitForInFlightFrames() { @@ -516,6 +721,13 @@ SoVulkanRenderBackend::createLightingUniformBuffer() this->lightingMemory = VK_NULL_HANDLE; return false; } + // The per-instance model-matrix ring parallels the lighting UBO ring + // (same slot layout), so pre-size it here; the per-draw path must never + // grow (re-create) this buffer, which would race under parallel recording. + if (!this->ensureInstanceModelRingCapacity()) { + this->emitError("createLightingUniformBuffer: failed to size instance buffer"); + return false; + } return true; } @@ -632,6 +844,13 @@ SoVulkanRenderBackend::swapLightingBuffer(VkBuffer newBuffer, this->lightingMapped = newMapped; this->uboSlotsPerFrame = newSlotsPerFrame; + // The ring was (re)sized to a new slot count or a new in-flight frame count; + // grow the per-instance model-matrix ring to the same geometry so the + // per-draw path never grows it (see ensureInstanceModelRingCapacity()). + if (!this->ensureInstanceModelRingCapacity()) { + this->emitError("swapLightingBuffer: failed to size instance buffer"); + } + // The old buffer may still be referenced by a pending frame; destroy it // only after the batch ring wraps back around (flushPendingDestroys()). const VkDevice device = this->device; @@ -700,14 +919,16 @@ SoVulkanRenderBackend::prepareLightingSlots(const uint32_t neededDraws) if (!this->growLightingUbo(neededDraws)) return false; } // The frame index was advanced by beginFrame(); every render starts from - // slot zero of its own ring half. - this->uboCmdIndex = 0; + // slot zero of its own ring half. The slot cursor now lives in the + // per-recording VulkanRecordContext (reset by its frame-start reset()). return true; } void SoVulkanRenderBackend::beginFrame() { + vkBackendTrace(this->uboFrameIndex, "beginFrame.enter", + "nextFrame=%u", this->uboFrameIndex + 1); // One frame boundary: advance the ring cursor, then, on the own-queue // path, wait the slot's fence. The slot we are about to record into was // last used maxFramesInFlight frames ago; its fence covers that @@ -730,7 +951,7 @@ SoVulkanRenderBackend::beginFrame() // other slot) may have left a different pipeline/viewport/scissor bound. // Forget it so this frame's first apply* emits, and so accidental reuse // from the slot's prior content cannot wrongly skip a needed change. - this->resetBoundState(); + this->resetBoundState(this->recordContext); this->flushPendingDestroys(); } @@ -744,6 +965,8 @@ SoVulkanRenderBackend::cacheFrameMatrices(const SoRenderParams & params) sizeof(float) * 16); std::memcpy(this->frameProjFloats, ¶ms.projMatrix[0][0], sizeof(float) * 16); + this->frameDpr = params.devicePixelRatio > 0.0f + ? params.devicePixelRatio : 1.0f; } void @@ -856,20 +1079,25 @@ SoVulkanRenderBackend::deferDestroyTextureEntry(VulkanCachedTexture & entry) const VkAllocationCallbacks * allocator = this->allocator; const VkImage image = entry.image; const VkDeviceMemory memory = entry.memory; + const VkDeviceSize imageSize = entry.memorySize; + const VkDeviceSize memoryOffset = entry.memoryOffset; const VkImageView view = entry.view; - const VkSampler sampler = entry.sampler; - this->deferDestroy([device, allocator, image, memory, view, sampler]() { + // The sampler is shared (samplerCache), so it is NOT destroyed here; it is + // released once at shutdown() after the texture cache has been emptied. + // Capture `this` so the memory is returned to the sub-allocator (when + // enabled) inside the deferred lambda, by which point the frame's + // submission is complete and the range is safe to reuse. + SoVulkanRenderBackend * self = this; + this->deferDestroy([self, device, allocator, image, memory, imageSize, + memoryOffset, view]() { if (view != VK_NULL_HANDLE) { vkDestroyImageView(device, view, allocator); } - if (sampler != VK_NULL_HANDLE) { - vkDestroySampler(device, sampler, allocator); - } if (image != VK_NULL_HANDLE) { vkDestroyImage(device, image, allocator); } if (memory != VK_NULL_HANDLE) { - vkFreeMemory(device, memory, allocator); + self->releaseMemory(memory, imageSize, memoryOffset); } }); entry = VulkanCachedTexture(); @@ -967,7 +1195,8 @@ SoVulkanRenderBackend::createWhiteTexture() fallback.magFilter = SO_TEXTURE_FILTER_NEAREST; fallback.wrapS = SO_TEXTURE_WRAP_CLAMP_TO_EDGE; fallback.wrapT = SO_TEXTURE_WRAP_CLAMP_TO_EDGE; - if (!this->createSampler(fallback, this->whiteSampler)) { + if (!this->createSampler(fallback.minFilter, fallback.magFilter, + fallback.wrapS, fallback.wrapT, this->whiteSampler)) { return false; } const bool allocated = this->allocateTextureDescriptorSet( diff --git a/src/rendering/SoVulkanRenderBackend/SoVulkanRenderBackendFrame.cpp b/src/rendering/SoVulkanRenderBackend/SoVulkanRenderBackendFrame.cpp index 04fb83019d1..4142615a486 100644 --- a/src/rendering/SoVulkanRenderBackend/SoVulkanRenderBackendFrame.cpp +++ b/src/rendering/SoVulkanRenderBackend/SoVulkanRenderBackendFrame.cpp @@ -27,6 +27,10 @@ #include #include #include +#include +#include +#include +#include #include using namespace CoinVulkanDetail; @@ -76,6 +80,142 @@ void vkBackendRenderBreadcrumbSince(long startUs, long thresholdUs, const char* } // namespace +// True when a command draws through the CPU wide-line expansion path (which is +// not batchable -- each instance needs its own clip-space expansion). +static bool vkIsWideLine(const SoRenderCommand & c) +{ + const bool line = + c.geometry.topology == SO_TOPOLOGY_LINES || + c.geometry.topology == SO_TOPOLOGY_LINE_STRIP; + if (!line) return false; + const bool patterned = + c.state.raster.linePattern != 0xFFFF && c.state.raster.linePattern != 0; + return c.state.raster.lineWidth > 1.0f || patterned; +} + +// Two commands can be drawn as ONE instanced draw only when they share every +// pipeline, descriptor-set and push-constant input and differ solely by their +// model matrix. `hashA`/`hashB` are the cached geometry content hashes. +// `pass` equality plus the caller rejecting overlay/wide-line commands keeps +// the batch inside the shared frame-camera main pass. +static bool vkCommandBatchable(const SoRenderCommand & a, + const SoRenderCommand & b, + uint64_t hashA, uint64_t hashB) +{ + if (a.geometry.topology != b.geometry.topology) return false; + if (a.geometry.vertexCount != b.geometry.vertexCount) return false; + if (a.geometry.indexCount != b.geometry.indexCount) return false; + if (a.geometry.vertexStride != b.geometry.vertexStride) return false; + if (a.geometry.texcoordStride != b.geometry.texcoordStride) return false; + if (a.lightingHandle != b.lightingHandle) return false; + if (a.pass != b.pass) return false; + if (hashA != hashB) return false; + // Compare the pipeline/push-determining state FIELD BY FIELD. memcmp of the + // sub-structs is unsafe: SbBool is an int and the enum fields leave padding + // bytes that are not deterministically zeroed, so two identical cube states + // could compare unequal. The position-dependent sort keys + // (SoRenderState::opaqueKey/translucentKey) are deliberately not compared -- + // identical geometry at different locations must still batch. + const SoDepthState & da = a.state.depth, &db = b.state.depth; + if (da.enabled != db.enabled || da.writeEnabled != db.writeEnabled || + da.func != db.func || da.range[0] != db.range[0] || + da.range[1] != db.range[1]) return false; + const SoBlendState & ba = a.state.blend, &bb = b.state.blend; + if (ba.enabled != bb.enabled || + ba.srcRGBFactor != bb.srcRGBFactor || + ba.dstRGBFactor != bb.dstRGBFactor || + ba.srcAlphaFactor != bb.srcAlphaFactor || + ba.dstAlphaFactor != bb.dstAlphaFactor || + ba.rgbEquation != bb.rgbEquation || + ba.alphaEquation != bb.alphaEquation) return false; + const SoStencilState & sa = a.state.stencil, &sb = b.state.stencil; + if (sa.enabled != sb.enabled || sa.function != sb.function || + sa.reference != sb.reference || sa.compareMask != sb.compareMask || + sa.writeMask != sb.writeMask || sa.failOp != sb.failOp || + sa.zfailOp != sb.zfailOp || sa.zpassOp != sb.zpassOp) return false; + const SoAlphaTestState & aa = a.state.alphaTest, &ab = b.state.alphaTest; + if (aa.policy != ab.policy || aa.function != ab.function || + aa.reference != ab.reference) return false; + const SoRasterState & ra = a.state.raster, &rb = b.state.raster; + if (ra.fillMode != rb.fillMode || ra.pointShape != rb.pointShape || + ra.cullMode != rb.cullMode || ra.ccwFrontFace != rb.ccwFrontFace || + ra.scissorEnabled != rb.scissorEnabled || + ra.viewportEnabled != rb.viewportEnabled || + ra.viewportX != rb.viewportX || ra.viewportY != rb.viewportY || + ra.viewportWidth != rb.viewportWidth || + ra.viewportHeight != rb.viewportHeight || + ra.scissorX != rb.scissorX || ra.scissorY != rb.scissorY || + ra.scissorWidth != rb.scissorWidth || + ra.scissorHeight != rb.scissorHeight || + ra.lineWidth != rb.lineWidth || ra.pointSize != rb.pointSize || + ra.linePattern != rb.linePattern || + ra.linePatternScale != rb.linePatternScale || + ra.polygonOffsetFactor != rb.polygonOffsetFactor || + ra.polygonOffsetUnits != rb.polygonOffsetUnits) return false; + const SoMaterialData & ma = a.material; + const SoMaterialData & mb = b.material; + if (memcmp(&ma.diffuse[0], &mb.diffuse[0], sizeof(SbVec4f)) != 0) return false; + if (memcmp(&ma.ambient[0], &mb.ambient[0], sizeof(SbVec4f)) != 0) return false; + if (memcmp(&ma.specular[0], &mb.specular[0], sizeof(SbVec4f)) != 0) return false; + if (memcmp(&ma.emissive[0], &mb.emissive[0], sizeof(SbVec4f)) != 0) return false; + if (ma.shininess != mb.shininess) return false; + if (ma.opacity != mb.opacity) return false; + if (ma.twoSidedLighting != mb.twoSidedLighting) return false; + if (ma.shadingModel != mb.shadingModel) return false; + if (ma.vertexColorAlphaIncludesOpacity != mb.vertexColorAlphaIncludesOpacity) + return false; + if (ma.textureAlphaIncludesOpacity != mb.textureAlphaIncludesOpacity) + return false; + if ((ma.flags & (SO_MAT_HAS_TEXTURE | SO_MAT_IS_PIXEL_TEXT)) != + (mb.flags & (SO_MAT_HAS_TEXTURE | SO_MAT_IS_PIXEL_TEXT))) return false; + if (ma.texture.pixels != mb.texture.pixels) return false; + if (ma.texture.width != mb.texture.width) return false; + if (ma.texture.height != mb.texture.height) return false; + if (ma.texture.model != mb.texture.model) return false; + if (ma.texture.minFilter != mb.texture.minFilter) return false; + if (ma.texture.magFilter != mb.texture.magFilter) return false; + if (ma.texture.wrapS != mb.texture.wrapS) return false; + if (ma.texture.wrapT != mb.texture.wrapT) return false; + if (memcmp(&ma.texture.blendColor[0], &mb.texture.blendColor[0], + sizeof(SbVec4f)) != 0) return false; + return true; +} + +// Coarse grouping key for the opaque batching pass: two commands with the same +// key MIGHT be batchable (vkCommandBatchable re-verifies and splits any +// collision). Hashes the fields that determine pipeline/descriptor/push state +// plus the cached geometry content hash. Not intended to be collision-free; +// the pairwise re-verification is what guarantees correctness. +static uint64_t vkBatchKey(const SoRenderCommand & a, uint64_t contentHash) +{ + uint64_t h = contentHash; + h ^= (uint64_t)a.geometry.topology << 0; + h ^= (uint64_t)a.geometry.vertexCount << 8; + h ^= (uint64_t)a.geometry.indexCount << 24; + h ^= (uint64_t)a.lightingHandle << 40; + h ^= (uint64_t)a.material.shadingModel << 56; + const SoRasterState & r = a.state.raster; + uint32_t s = (uint32_t)a.state.depth.func | + ((uint32_t)(a.state.depth.enabled ? 1 : 0) << 3) | + ((uint32_t)r.fillMode << 4) | ((uint32_t)r.cullMode << 6) | + ((uint32_t)r.ccwFrontFace << 8) | + ((uint32_t)r.linePattern << 9) | + ((uint32_t)(a.state.blend.enabled ? 1 : 0) << 25); + h ^= (uint64_t)s << 1; + auto xu = [](uint32_t * out, const float * in) { + std::memcpy(out, in, sizeof(uint32_t)); + }; + const float * dif = &a.material.diffuse[0]; + uint32_t d0, d1, d2, d3, shin, alphaRef, lw; + xu(&d0, &dif[0]); xu(&d1, &dif[1]); xu(&d2, &dif[2]); xu(&d3, &dif[3]); + xu(&shin, &a.material.shininess); + xu(&alphaRef, &a.state.alphaTest.reference); + xu(&lw, &r.lineWidth); + h ^= (uint64_t)(d0 ^ d1 ^ d2 ^ d3 ^ shin ^ alphaRef ^ lw) << 17; + return h; +} + + // --- Lifecycle ------------------------------------------------------------ void @@ -90,12 +230,9 @@ SoVulkanRenderBackend::shutdown() // Release uploads abandoned by a frame that aborted between the cache // update and the flush/finalize step. Their copies were never recorded, - // so synchronous destruction is safe here. + // so synchronous destruction is safe here. The staged pixels live in the + // shared staging pool, so there is no per-upload staging to free. for (const PendingTextureUpload & upload : this->pendingUploads) { - if (upload.staging != VK_NULL_HANDLE) { - vkDestroyBuffer(this->device, upload.staging, this->allocator); - vkFreeMemory(this->device, upload.stagingMemory, this->allocator); - } if (upload.index < this->textureCache.size()) { this->destroyTextureEntry(this->textureCache[upload.index]); } @@ -170,6 +307,19 @@ SoVulkanRenderBackend::shutdown() vkDestroyPipelineLayout(this->device, this->pipelineLayout, this->allocator); this->pipelineLayout = VK_NULL_HANDLE; } + if (this->instanceModelMapped != nullptr) { + vkUnmapMemory(this->device, this->instanceModelMemory); + this->instanceModelMapped = nullptr; + } + if (this->instanceModelBuffer != VK_NULL_HANDLE) { + vkDestroyBuffer(this->device, this->instanceModelBuffer, this->allocator); + this->instanceModelBuffer = VK_NULL_HANDLE; + } + if (this->instanceModelMemory != VK_NULL_HANDLE) { + vkFreeMemory(this->device, this->instanceModelMemory, this->allocator); + this->instanceModelMemory = VK_NULL_HANDLE; + } + this->instanceModelCapacity = 0; if (this->lightingMapped != nullptr) { vkUnmapMemory(this->device, this->lightingMemory); this->lightingMapped = nullptr; @@ -195,6 +345,26 @@ SoVulkanRenderBackend::shutdown() this->lightingConstMemory = VK_NULL_HANDLE; } this->lightingDescriptorSet = VK_NULL_HANDLE; + if (this->stagingPoolMapped != nullptr) { + vkUnmapMemory(this->device, this->stagingPoolMemory); + this->stagingPoolMapped = nullptr; + } + if (this->stagingPoolBuffer != VK_NULL_HANDLE) { + vkDestroyBuffer(this->device, this->stagingPoolBuffer, this->allocator); + this->stagingPoolBuffer = VK_NULL_HANDLE; + } + if (this->stagingPoolMemory != VK_NULL_HANDLE) { + vkFreeMemory(this->device, this->stagingPoolMemory, this->allocator); + this->stagingPoolMemory = VK_NULL_HANDLE; + } + this->stagingPoolCapacity = 0; + this->stagingPoolCursor = 0; + for (auto & kv : this->samplerCache) { + if (kv.second != VK_NULL_HANDLE) { + vkDestroySampler(this->device, kv.second, this->allocator); + } + } + this->samplerCache.clear(); if (this->whiteSampler != VK_NULL_HANDLE) { vkDestroySampler(this->device, this->whiteSampler, this->allocator); this->whiteSampler = VK_NULL_HANDLE; @@ -230,11 +400,26 @@ SoVulkanRenderBackend::shutdown() this->allocator); this->lightingSetLayout = VK_NULL_HANDLE; } + // Join the M1d record workers before freeing the secondary buffers they + // record into. + this->shutdownRecordPool(); this->releaseFrameResources(); if (this->commandPool != VK_NULL_HANDLE) { vkDestroyCommandPool(this->device, this->commandPool, this->allocator); this->commandPool = VK_NULL_HANDLE; } + for (VkCommandPool pool : this->secondaryCommandPools) { + if (pool != VK_NULL_HANDLE) { + vkDestroyCommandPool(this->device, pool, this->allocator); + } + } + this->secondaryCommandPools.clear(); + if (this->memPool) { + // Queue is idle and every deferred destroy has been flushed, so all + // sub-allocated ranges are free and every block can be released. + this->memPool->destroyAll(); + this->memPool.reset(); + } this->physicalDevice = VK_NULL_HANDLE; this->device = VK_NULL_HANDLE; @@ -260,8 +445,10 @@ SoVulkanRenderBackend::renderInternal(const SoDrawList & drawlist, "SoRenderParams::renderTarget"); return FALSE; } - this->debugValidateDrawList(drawlist); + vkBackendTrace(this->uboFrameIndex, "renderInternal.enter", + "overlaysOnly=%d cmds=%d", + static_cast(overlaysOnly), drawlist.getNumCommands()); if (COIN_VULKAN_ENV_FLAG("FC_VULKAN_BLACK_DEBUG")) { static int blackFrame = 0; @@ -322,11 +509,34 @@ SoVulkanRenderBackend::renderInternal(const SoDrawList & drawlist, this->updateLightingSetup(drawlist); // Render passes are cached by their attachment identity (formats, sample - // count, image layouts), not by the target's images: swapchain targets - // cycle their images every frame, and pipelines are keyed on the render - // pass handle, so reusing the pass across image changes keeps the pipeline - // cache warm. - this->renderPass = this->getOrCreateRenderPass(*target); + // count, image layouts, load ops), not by the target's images: swapchain + // targets cycle their images every frame, and pipelines are keyed on the + // render pass handle, so reusing the pass across image changes keeps the + // pipeline cache warm. On the full-target-clear fast path (FC_VULKAN_RP_CLEAR) + // the color/depth attachments are cleared via their loadOp at pass begin, + // which is cheaper than a separate vkCmdClearAttachments region clear. + const bool wantRpClear = COIN_VULKAN_ENV_FLAG("FC_VULKAN_RP_CLEAR"); + const bool fullTargetClear = + wantRpClear && this->isFullTargetClear(params, *target); + const bool clearWindow = (params.flags & SO_PARAM_CLEAR_WINDOW) != 0; + const bool clearDepth = (params.flags & SO_PARAM_CLEAR_DEPTH) != 0; + const bool hasDepth = target->depthImageView != VK_NULL_HANDLE && + target->depthFormat != VK_FORMAT_UNDEFINED; + const VkAttachmentLoadOp colorLoadOp = + (fullTargetClear && clearWindow) + ? VK_ATTACHMENT_LOAD_OP_CLEAR + : VK_ATTACHMENT_LOAD_OP_LOAD; + const VkAttachmentLoadOp depthLoadOp = + (fullTargetClear && hasDepth && clearDepth) + ? VK_ATTACHMENT_LOAD_OP_CLEAR + : VK_ATTACHMENT_LOAD_OP_LOAD; + this->renderPass = this->getOrCreateRenderPass(*target, colorLoadOp, + depthLoadOp); + // Stash whether the pass cleared each attachment so recordClear() can skip + // the redundant vkCmdClearAttachments, and (below) so the begin info carries + // the matching clear values. + this->renderPassColorCleared = (colorLoadOp == VK_ATTACHMENT_LOAD_OP_CLEAR); + this->renderPassDepthCleared = (depthLoadOp == VK_ATTACHMENT_LOAD_OP_CLEAR); if (this->renderPass == VK_NULL_HANDLE) { this->emitError("failed to create Vulkan render pass"); return FALSE; @@ -354,56 +564,14 @@ SoVulkanRenderBackend::renderInternal(const SoDrawList & drawlist, // old framebuffer is released through the deferred ring: an older in-flight // submission may still reference it (the per-frame vkQueueWaitIdle is gone, // so only the current slot's fence has been waited by beginFrame()). - if (this->renderPassFramebuffer == VK_NULL_HANDLE || - this->renderPassFramebufferPass != this->renderPass || - this->renderPassFramebufferColorImage != target->colorImage || - this->renderPassFramebufferColorView != target->colorImageView || - this->renderPassFramebufferDepthImage != target->depthImage || - this->renderPassFramebufferDepthView != target->depthImageView || - this->renderPassFramebufferExtent.width != target->extent.width || - this->renderPassFramebufferExtent.height != target->extent.height) { - if (this->renderPassFramebuffer != VK_NULL_HANDLE) { - const VkDevice device = this->device; - const VkAllocationCallbacks * allocator = this->allocator; - const VkFramebuffer oldFramebuffer = this->renderPassFramebuffer; - this->deferDestroy([device, allocator, oldFramebuffer]() { - if (oldFramebuffer != VK_NULL_HANDLE) { - vkDestroyFramebuffer(device, oldFramebuffer, allocator); - } - }); - this->renderPassFramebuffer = VK_NULL_HANDLE; - } - VkFramebufferCreateInfo fci {}; - fci.sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO; - fci.renderPass = this->renderPass; - fci.attachmentCount = - (target->depthImageView != VK_NULL_HANDLE && - target->depthFormat != VK_FORMAT_UNDEFINED) - ? 2u : 1u; - const VkImageView attachments[] = { - target->colorImageView, - target->depthImageView, - }; - fci.pAttachments = attachments; - fci.width = target->extent.width; - fci.height = target->extent.height; - fci.layers = 1; - if (vkCreateFramebuffer(this->device, &fci, this->allocator, - &this->renderPassFramebuffer) != VK_SUCCESS) { - this->emitError("failed to create Vulkan framebuffer"); - // The one-shot command buffer was begun above and never submitted; an - // implicit reset only happens on submission, so reset it explicitly or - // every later beginCommandBuffer() will fail. - vkEndCommandBuffer(this->currentCommandBuffer()); - vkResetCommandBuffer(this->currentCommandBuffer(), 0); - return FALSE; - } - this->renderPassFramebufferPass = this->renderPass; - this->renderPassFramebufferColorImage = target->colorImage; - this->renderPassFramebufferColorView = target->colorImageView; - this->renderPassFramebufferDepthImage = target->depthImage; - this->renderPassFramebufferDepthView = target->depthImageView; - this->renderPassFramebufferExtent = target->extent; + if (!this->ensureFramebuffer(target, this->renderPass)) { + this->emitError("failed to create Vulkan framebuffer"); + // The one-shot command buffer was begun above and never submitted; an + // implicit reset only happens on submission, so reset it explicitly or + // every later beginCommandBuffer() will fail. + vkEndCommandBuffer(this->currentCommandBuffer()); + vkResetCommandBuffer(this->currentCommandBuffer(), 0); + return FALSE; } const VkFramebuffer framebuffer = this->renderPassFramebuffer; @@ -424,22 +592,43 @@ SoVulkanRenderBackend::renderInternal(const SoDrawList & drawlist, rpbi.framebuffer = framebuffer; rpbi.renderArea.offset = {0, 0}; rpbi.renderArea.extent = target->extent; - rpbi.clearValueCount = 0; - rpbi.pClearValues = nullptr; + // When the render pass clears an attachment via its loadOp (full-target + // clear fast path), the clear value must be supplied here. clearValueCount + // maps one-to-one to the attachment indices (0 = color, 1 = depth). + VkClearValue clearValues[2]; + uint32_t clearValueCount = 0; + if (this->renderPassColorCleared) { + clearValues[0].color.float32[0] = params.clearColor[0]; + clearValues[0].color.float32[1] = params.clearColor[1]; + clearValues[0].color.float32[2] = params.clearColor[2]; + clearValues[0].color.float32[3] = params.clearColor[3]; + clearValueCount = 1; + } + if (this->renderPassDepthCleared) { + clearValues[clearValueCount].depthStencil.depth = params.clearDepth; + clearValues[clearValueCount].depthStencil.stencil = 0; + ++clearValueCount; + } + rpbi.clearValueCount = clearValueCount; + rpbi.pClearValues = clearValueCount ? clearValues : nullptr; vkCmdBeginRenderPass(this->currentCommandBuffer(), &rpbi, VK_SUBPASS_CONTENTS_INLINE); - this->activeCommandBuffer = this->currentCommandBuffer(); + this->recordContext.buffer = this->currentCommandBuffer(); bool recorded = true; if (overlaysOnly) { - this->recordTracedComposite(drawlist, params, *target, this->renderPass); - this->recordOverlayBlock(drawlist, params, *target, this->renderPass); + this->recordTracedComposite(drawlist, params, *target, this->renderPass, + this->recordContext); + this->recordOverlayBlock(drawlist, params, *target, this->renderPass, + this->recordContext); } else { - recorded = this->recordFrame(drawlist, params, *target, this->renderPass); + recorded = this->recordFrame(drawlist, params, *target, this->renderPass, + this->recordContext, + this->renderPassFramebuffer); } - this->activeCommandBuffer = VK_NULL_HANDLE; + this->recordContext.buffer = VK_NULL_HANDLE; vkCmdEndRenderPass(this->currentCommandBuffer()); @@ -472,11 +661,65 @@ SoVulkanRenderBackend::renderOverlaysOnly(const SoDrawList & drawlist, return this->renderInternal(drawlist, params, true); } +bool +SoVulkanRenderBackend::ensureFramebuffer(const SoVulkanRenderTarget * target, + VkRenderPass renderPass) +{ + if (this->renderPassFramebuffer != VK_NULL_HANDLE && + this->renderPassFramebufferPass == renderPass && + this->renderPassFramebufferColorImage == target->colorImage && + this->renderPassFramebufferColorView == target->colorImageView && + this->renderPassFramebufferDepthImage == target->depthImage && + this->renderPassFramebufferDepthView == target->depthImageView && + this->renderPassFramebufferExtent.width == target->extent.width && + this->renderPassFramebufferExtent.height == target->extent.height) { + return true; + } + if (this->renderPassFramebuffer != VK_NULL_HANDLE) { + const VkDevice device = this->device; + const VkAllocationCallbacks * allocator = this->allocator; + const VkFramebuffer oldFramebuffer = this->renderPassFramebuffer; + this->deferDestroy([device, allocator, oldFramebuffer]() { + if (oldFramebuffer != VK_NULL_HANDLE) { + vkDestroyFramebuffer(device, oldFramebuffer, allocator); + } + }); + this->renderPassFramebuffer = VK_NULL_HANDLE; + } + VkFramebufferCreateInfo fci {}; + fci.sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO; + fci.renderPass = renderPass; + fci.attachmentCount = + (target->depthImageView != VK_NULL_HANDLE && + target->depthFormat != VK_FORMAT_UNDEFINED) + ? 2u : 1u; + const VkImageView attachments[] = { + target->colorImageView, + target->depthImageView, + }; + fci.pAttachments = attachments; + fci.width = target->extent.width; + fci.height = target->extent.height; + fci.layers = 1; + if (vkCreateFramebuffer(this->device, &fci, this->allocator, + &this->renderPassFramebuffer) != VK_SUCCESS) { + return false; + } + this->renderPassFramebufferPass = renderPass; + this->renderPassFramebufferColorImage = target->colorImage; + this->renderPassFramebufferColorView = target->colorImageView; + this->renderPassFramebufferDepthImage = target->depthImage; + this->renderPassFramebufferDepthView = target->depthImageView; + this->renderPassFramebufferExtent = target->extent; + return true; +} + SbBool SoVulkanRenderBackend::renderExternal(const SoDrawList & drawlist, const SoRenderParams & params, VkCommandBuffer commandBuffer, - VkRenderPass renderPass) + VkRenderPass renderPass, + VkFramebuffer framebuffer) { if (!this->isInitialized()) { this->emitError("renderExternal called before backend initialization"); @@ -494,6 +737,12 @@ SoVulkanRenderBackend::renderExternal(const SoDrawList & drawlist, return FALSE; } + // The external render pass is supplied by the caller (typically created with + // LOAD loadOps and layered over a pre-existing image), so no attachment is + // cleared by a loadOp here: recordClear() must emit vkCmdClearAttachments. + this->renderPassColorCleared = false; + this->renderPassDepthCleared = false; + if (COIN_VULKAN_ENV_FLAG("FC_VULKAN_BLACK_DEBUG")) fprintf(stderr, "[BLACK] renderExternal ENTER frame=%d cmds=%d\n", this->uboFrameIndex, drawlist.getNumCommands()); @@ -528,21 +777,34 @@ SoVulkanRenderBackend::renderExternal(const SoDrawList & drawlist, } vkBackendRenderBreadcrumbSince(textureBcStart, 5000, "renderExternal flushPendingTextureUploadsExternal end"); + // The M1c/M1d secondary path records with RENDER_PASS_CONTINUE inheritance, + // which needs the framebuffer matching the caller's pass + swapchain image. + // The caller owns the pass/framebuffer pair (e.g. QVulkanWindow's + // defaultRenderPass()/currentFramebuffer(), whose MSAA pass carries a + // resolve attachment the backend cannot guess), so the framebuffer is + // threaded in rather than fabricated here. + if (framebuffer == VK_NULL_HANDLE) { + this->emitError("renderExternal called without a framebuffer"); + return FALSE; + } + const double cpuT3 = wantCpuTiming ? vkBackendRenderNowMs() : 0.0; const long recordBcStart = vkBackendRenderBreadcrumbEnabled() ? vkBackendRenderNowUs() : 0; - this->activeCommandBuffer = commandBuffer; - const bool recorded = this->recordFrame(drawlist, params, *target, renderPass); + this->recordContext.buffer = commandBuffer; + const bool recorded = this->recordFrame(drawlist, params, *target, renderPass, + this->recordContext, framebuffer); vkBackendRenderBreadcrumbSince(recordBcStart, 5000, "renderExternal recordFrame end"); - this->activeCommandBuffer = VK_NULL_HANDLE; + this->recordContext.buffer = VK_NULL_HANDLE; if (wantCpuTiming) { setupMs = cpuT1 - cpuT0; geomMs = cpuT2 - cpuT1; texMs = cpuT3 - cpuT2; recordMs = vkBackendRenderNowMs() - cpuT3; + const double totalMs = recordMs + texMs + geomMs + setupMs; std::fprintf(stderr, "[RTDBG] cpuTimingRaster mode=full setup=%.2f geom=%.2f " - "tex=%.2f record=%.2f\n", - setupMs, geomMs, texMs, recordMs); + "tex=%.2f record=%.2f total=%.2f\n", + setupMs, geomMs, texMs, recordMs, totalMs); std::fflush(stderr); } vkBackendRenderBreadcrumbSince(externalBcStart, 5000, "renderExternal end"); @@ -573,6 +835,10 @@ SoVulkanRenderBackend::renderExternalOverlay(const SoDrawList & drawlist, return FALSE; } + // External passes are caller-supplied LOAD render passes; see renderExternal(). + this->renderPassColorCleared = false; + this->renderPassDepthCleared = false; + if (COIN_VULKAN_ENV_FLAG("FC_VULKAN_BLACK_DEBUG")) fprintf(stderr, "[BLACK] renderExternalOverlay ENTER frame=%d cmds=%d\n", this->uboFrameIndex, drawlist.getNumCommands()); @@ -609,30 +875,303 @@ SoVulkanRenderBackend::renderExternalOverlay(const SoDrawList & drawlist, } const double cpuT3 = wantCpuTiming ? vkBackendRenderNowMs() : 0.0; - this->activeCommandBuffer = commandBuffer; - this->recordTracedComposite(drawlist, params, *target, renderPass); - this->recordOverlayBlock(drawlist, params, *target, renderPass); - this->activeCommandBuffer = VK_NULL_HANDLE; + this->recordContext.buffer = commandBuffer; + this->recordTracedComposite(drawlist, params, *target, renderPass, + this->recordContext); + this->recordOverlayBlock(drawlist, params, *target, renderPass, + this->recordContext); + this->recordContext.buffer = VK_NULL_HANDLE; if (wantCpuTiming) { setupMs = cpuT1 - cpuT0; geomMs = cpuT2 - cpuT1; texMs = cpuT3 - cpuT2; recordMs = vkBackendRenderNowMs() - cpuT3; + const double totalMs = recordMs + texMs + geomMs + setupMs; std::fprintf(stderr, "[RTDBG] cpuTimingRaster mode=overlay setup=%.2f geom=%.2f " - "tex=%.2f record=%.2f\n", - setupMs, geomMs, texMs, recordMs); + "tex=%.2f record=%.2f total=%.2f\n", + setupMs, geomMs, texMs, recordMs, totalMs); std::fflush(stderr); } return TRUE; } +bool +SoVulkanRenderBackend::buildWorkItems(const SoDrawList & drawlist, + const SoRenderParams & params, + bool wireframeOverlay, bool pointsOverlay, + const float * overlayColor, + VkRenderPass renderPass, + std::vector & out) +{ + const int overlayFillMode = wireframeOverlay + ? SoDrawStyleElement::LINES + : (pointsOverlay ? SoDrawStyleElement::POINTS : -1); + const std::vector & order = drawlist.getSortedOrder(); + out.clear(); + + // Geometry content identity for batching: reuse the cached content hash the + // geometry cache computed when the buffer was uploaded (a map lookup) instead + // of re-walking every vertex stream. + auto contentHashOf = [this](const SoRenderCommand & c) -> uint64_t { + const auto it = this->commandToCache.find(&c); + if (it == this->commandToCache.end()) return 0; + return this->gpuCache[it->second].contentHash; + }; + + uint32_t nextSlot = 0; + // Opaque then transparent, honoring the draw-list sort order. Overlay + // commands are handled by the dedicated overlay block outside the work list. + for (int passIndex = 0; passIndex < 2; ++passIndex) { + const bool transparent = passIndex == 1; + if (transparent) { + // Transparent geometry must preserve painter's order, so never batch. + for (int i = 0; i < drawlist.getNumCommands(); ++i) { + const int index = + i < static_cast(order.size()) ? order[i] : i; + const SoRenderCommand & command = drawlist.getCommand(index); + if (command.pass == SO_RENDERPASS_OVERLAY) continue; + if (command.pass != SO_RENDERPASS_TRANSPARENT) continue; + if (!command.geometry.positions || command.geometry.vertexCount == 0) + continue; + const auto found = this->commandToCache.find(&command); + if (found == this->commandToCache.end()) continue; + if (this->gpuCache[found->second].vertexBuffer == VK_NULL_HANDLE) + continue; + VulkanWorkItem item; + item.single = &command; + item.count = 1; + item.transparent = true; + item.slotBase = nextSlot++; + out.push_back(item); + } + } + else { + // Only depth-tested opaque geometry is render-order independent, so it can + // be reordered and batched. Depth-off commands go to the on-top + // annotation pass; the CPU wide-line path must stay per-command. Bucket + // by a batch key and re-verify pairwise (splitting any collision). + std::unordered_map> & buckets = + this->batchBucketScratch; + buckets.clear(); + for (int i = 0; i < drawlist.getNumCommands(); ++i) { + const int index = + i < static_cast(order.size()) ? order[i] : i; + const SoRenderCommand & command = drawlist.getCommand(index); + if (command.pass == SO_RENDERPASS_OVERLAY) continue; + if (command.pass == SO_RENDERPASS_TRANSPARENT) continue; + if (!command.state.depth.enabled) continue; // on-top annotation (later) + if (!command.geometry.positions || command.geometry.vertexCount == 0) + continue; + if (vkIsWideLine(command)) continue; // CPU-expanded per command + const auto found = this->commandToCache.find(&command); + if (found == this->commandToCache.end()) continue; + if (this->gpuCache[found->second].vertexBuffer == VK_NULL_HANDLE) + continue; + buckets[vkBatchKey(command, contentHashOf(command))].push_back(&command); + } + for (auto & kv : buckets) { + std::vector & v = kv.second; + int start = 0; + while (start < static_cast(v.size())) { + int end = start + 1; + const uint64_t hStart = contentHashOf(*v[start]); + while (end < static_cast(v.size()) && + vkCommandBatchable(*v[start], *v[end], hStart, + contentHashOf(*v[end]))) { + ++end; + } + const int cnt = end - start; + VulkanWorkItem item; + if (cnt == 1) { + item.single = v[start]; + } + else { + item.commands = &v[start]; + } + item.count = cnt; + item.recordToSecondary = true; + item.slotBase = nextSlot; + nextSlot += static_cast(cnt); + out.push_back(item); + start = end; + } + } + } + + // Wireframe/point overlay: re-draw opaque geometry in the requested fill + // mode using a uniform edge color. + if (!transparent && overlayFillMode >= 0) { + for (int i = 0; i < drawlist.getNumCommands(); ++i) { + const int index = + i < static_cast(order.size()) ? order[i] : i; + const SoRenderCommand & command = drawlist.getCommand(index); + if (command.pass == SO_RENDERPASS_OVERLAY) continue; + if (command.pass == SO_RENDERPASS_TRANSPARENT) continue; + if (!command.geometry.positions || command.geometry.vertexCount == 0) + continue; + const auto found = this->commandToCache.find(&command); + if (found == this->commandToCache.end()) continue; + if (this->gpuCache[found->second].vertexBuffer == VK_NULL_HANDLE) + continue; + VulkanWorkItem item; + item.single = &command; + item.count = 1; + item.fillModeOverride = overlayFillMode; + item.uniformColorOverride = overlayColor; + item.slotBase = nextSlot++; + out.push_back(item); + } + } + } + + // On-top annotations: depth-disabled commands drawn after both passes in + // insertion order. + for (int i = 0; i < drawlist.getNumCommands(); ++i) { + const SoRenderCommand & command = drawlist.getCommand(i); + if (command.pass == SO_RENDERPASS_OVERLAY) continue; + if (command.state.depth.enabled) continue; + if (!command.geometry.positions || command.geometry.vertexCount == 0) + continue; + const auto found = this->commandToCache.find(&command); + if (found == this->commandToCache.end()) continue; + if (this->gpuCache[found->second].vertexBuffer == VK_NULL_HANDLE) continue; + VulkanWorkItem item; + item.single = &command; + item.count = 1; + item.slotBase = nextSlot++; + out.push_back(item); + } + + // M1d: when the opaque pass is recorded in parallel, pre-resolve every + // recordToSecondary item's pipeline here (single-threaded). getOrCreatePipeline() + // mutates the shared pipelineCache/gpuCache on its cold path, so warming each + // key ahead of the dispatch means the parallel recorders only hit the read-only + // warm fast path and never race on the cache. Opaque items use the default + // (non-transparent, no fill-mode override, not an overlay) recording state. + if (this->parallelRecordEnabled) { + const auto * tgt = static_cast(params.renderTarget); + if (tgt) { + for (const VulkanWorkItem & item : out) { + if (!item.recordToSecondary) continue; + VkPipeline warmed = VK_NULL_HANDLE; + if (item.count > 1) { + this->getOrCreatePipeline(*item.commands[0], *tgt, renderPass, warmed, + false, -1, false); + } + else { + this->getOrCreatePipeline(*item.single, *tgt, renderPass, warmed, + false, -1, false); + } + } + } + } + + return true; +} + +void +SoVulkanRenderBackend::recordWorkItem(const SoDrawList & drawlist, + const SoRenderParams & params, + const SoVulkanRenderTarget & target, + VkRenderPass renderPass, + const VulkanWorkItem & item, + VulkanRecordContext & ctx) +{ + // Plant the pre-assigned disjoint slot block, then record one draw or one + // instanced batch. The record helper advances ctx.uboCmdIndex from here. + ctx.uboCmdIndex = item.slotBase; + vkBackendTrace(this->uboFrameIndex, "recordWorkItem.enter", + "count=%d slotBase=%u kind=%s", + static_cast(item.count), item.slotBase, + item.count > 1 ? "batch" : "single"); + if (item.count > 1) { + if (this->recordCommandBatch(drawlist, item.commands, item.count, target, + params, renderPass, item.transparent, + item.fillModeOverride, item.uniformColorOverride, + ctx)) { + return; + } + // Batch rejected (e.g. a non-batchable command slipped in): fall back to + // per-command draws over the item's slot range, each at its own slot. + for (int k = 0; k < item.count; ++k) { + ctx.uboCmdIndex = item.slotBase + static_cast(k); + this->recordDrawCommand(drawlist, *item.commands[k], target, params, + renderPass, item.transparent, + item.fillModeOverride, item.uniformColorOverride, + false, ctx); + } + return; + } + this->recordDrawCommand(drawlist, *item.single, target, params, renderPass, + item.transparent, item.fillModeOverride, + item.uniformColorOverride, false, ctx); +} + +bool +SoVulkanRenderBackend::recordSecondaryChunk(VulkanRecordContext & ctx, + const SoDrawList & drawlist, + const SoRenderParams & params, + const SoVulkanRenderTarget & target, + VkRenderPass renderPass, + const std::vector & items, + VkCommandBuffer secondary, + VkFramebuffer framebuffer) +{ + if (secondary == VK_NULL_HANDLE || items.empty()) return true; + vkBackendTrace(this->uboFrameIndex, "recordSecondaryChunk.enter", + "secondary=%p items=%zu", + reinterpret_cast(secondary), items.size()); + if (COIN_VULKAN_ENV_FLAG("FC_VULKAN_BACKEND_DEBUG")) { + fprintf(stderr, "[SEC] begin chunk items=%zu secondary=%p frame=%u\n", + items.size(), (const void*)secondary, this->uboFrameIndex); + } + vkResetCommandBuffer(secondary, 0); + vkBackendTrace(this->uboFrameIndex, "recordSecondaryChunk.resetDone", + "secondary=%p", + reinterpret_cast(secondary)); + // Start from a clean dedup cache: secondary buffers inherit nothing (not + // dynamic state, pipeline, or descriptors) from the primary. + ctx.reset(); + VkCommandBufferBeginInfo sbi {}; + sbi.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO; + sbi.flags = VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT | + VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT; + VkCommandBufferInheritanceInfo inh {}; + inh.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO; + inh.renderPass = renderPass; + inh.subpass = 0; + inh.framebuffer = framebuffer; + sbi.pInheritanceInfo = &inh; + if (vkBeginCommandBuffer(secondary, &sbi) != VK_SUCCESS) { + vkBackendTrace(this->uboFrameIndex, "recordSecondaryChunk.beginFail", + "secondary=%p", + reinterpret_cast(secondary)); + return false; + } + vkBackendTrace(this->uboFrameIndex, "recordSecondaryChunk.beginOk", + "secondary=%p", reinterpret_cast(secondary)); + ctx.buffer = secondary; + for (const VulkanWorkItem * item : items) { + this->recordWorkItem(drawlist, params, target, renderPass, *item, ctx); + } + ctx.buffer = VK_NULL_HANDLE; + vkEndCommandBuffer(secondary); + vkBackendTrace(this->uboFrameIndex, "recordSecondaryChunk.endOk", + "secondary=%p", reinterpret_cast(secondary)); + return true; +} + bool SoVulkanRenderBackend::recordFrame(const SoDrawList & drawlist, const SoRenderParams & params, const SoVulkanRenderTarget & target, - VkRenderPass renderPass) + VkRenderPass renderPass, + VulkanRecordContext & ctx, + VkFramebuffer inheritFramebuffer) { + vkBackendTrace(this->uboFrameIndex, "recordFrame.enter", + "cmds=%d", drawlist.getNumCommands()); if (COIN_VULKAN_ENV_FLAG("FC_VULKAN_MATRIX_DUMP")) { s_debugFrame++; s_dumpCmdCount = 0; @@ -663,13 +1202,14 @@ SoVulkanRenderBackend::recordFrame(const SoDrawList & drawlist, params.clearColor[3], drawlist.getNumCommands(), nTri, nTriLit, nTriUnlit, nLine, nOverlay, nTrans); } - this->applyViewport(params, target); - this->recordClear(params, target); - this->recordBackground(params, target, renderPass); + this->applyViewport(params, target, ctx); + this->recordClear(params, target, this->renderPassColorCleared, + this->renderPassDepthCleared, ctx); + this->recordBackground(params, target, renderPass, ctx); // The background pass overrides the viewport/scissor for its own draw; // restore the viewport from params before recording geometry so draws // land in the requested region. - this->applyViewport(params, target); + this->applyViewport(params, target, ctx); // Vulkan-only display options, configured through setWireframeOverlay()/ // setPointsOverlay()/setEdgeColor(). Environment variables act as a @@ -730,59 +1270,196 @@ SoVulkanRenderBackend::recordFrame(const SoDrawList & drawlist, return FALSE; } - // Opaque then transparent, honoring the draw-list sort order. Overlay - // commands (SO_RENDERPASS_OVERLAY) are handled exclusively by the - // dedicated overlay block below: they carry their own view/projection - // matrices and viewport, so recording them here with the main camera - // matrices would draw garbage into the scene depth buffer. - const std::vector & order = drawlist.getSortedOrder(); - for (int passIndex = 0; passIndex < 2; ++passIndex) { - const bool transparent = passIndex == 1; - for (int i = 0; i < drawlist.getNumCommands(); ++i) { - const int index = - i < static_cast(order.size()) ? order[i] : i; - const SoRenderCommand & command = drawlist.getCommand(index); - if (command.pass == SO_RENDERPASS_OVERLAY) continue; - const bool isTransparent = command.pass == SO_RENDERPASS_TRANSPARENT; - if (isTransparent != transparent) continue; - this->recordDrawCommand(drawlist, command, target, params, renderPass, - transparent); + // Build the read-only worklist (bucketed opaque + batched + transparent + + // overlay-redraw + annotation items), each with a pre-assigned disjoint + // slotBase, then record it. buildWorkItems() mirrors the exact order the + // previous inline loops used, and the slotBase values match what the + // per-draw uboCmdIndex++ sequence produced, so recording is identical. + std::vector & workItems = this->workItemsScratch; + this->buildWorkItems(drawlist, params, wireframeOverlay, pointsOverlay, + overlayColor, renderPass, workItems); + vkBackendTrace(this->uboFrameIndex, "recordFrame.workItemsBuilt", + "items=%zu", workItems.size()); + + // Secondaries are recorded with RENDER_PASS_CONTINUE inheritance into the + // pass the frame is in. On the INTERNAL path that pass is backend-owned + // (renderPass == this->renderPass) and the combination is exercised by the + // testsuite. The EXTERNAL path (FreeCAD's QuarterVulkanWidget) hands us a + // caller-owned pass/framebuffer/command-buffer triplet (QVulkanWindow's, + // possibly MSAA); recording secondaries against it has proven to corrupt + // NVIDIA driver state (crash inside the driver at the first render-pass + // command after the replay) so it stays OFF unless explicitly opted in + // while that interaction is investigated. + const bool externalPass = renderPass != this->renderPass; + const bool canUseSecondary = + !this->secondaryCommandBuffers.empty() && + inheritFramebuffer != VK_NULL_HANDLE && + (!externalPass || COIN_VULKAN_ENV_FLAG("FC_VULKAN_EXTERNAL_SECONDARY")); + const bool debugFlags = + COIN_VULKAN_ENV_FLAG("FC_VULKAN_MATRIX_DUMP") || + COIN_VULKAN_ENV_FLAG("FC_VULKAN_BLACK_DEBUG"); + + // Count the render-order-independent opaque items that live in a secondary. + uint64_t secondaryItemCount = 0; + for (const VulkanWorkItem & item : workItems) { + if (item.recordToSecondary) ++secondaryItemCount; + } + const bool wantParallel = + canUseSecondary && this->parallelRecordEnabled && !debugFlags && + secondaryItemCount >= 64 && this->maxRecordWorkers > 1; + vkBackendTrace(this->uboFrameIndex, "recordFrame.mode", + "secondary=%u canSec=%d parEnabled=%d W=%u wantPar=%d", + static_cast(secondaryItemCount), + canUseSecondary ? 1 : 0, this->parallelRecordEnabled ? 1 : 0, + this->maxRecordWorkers, wantParallel ? 1 : 0); + + if (canUseSecondary && secondaryItemCount > 0 && !wantParallel) { + // M1c serial: one secondary holds the whole opaque pass, replayed in place. + VkCommandBuffer secondary = this->currentSecondaryCommandBuffer(); + VkCommandBuffer primary = this->currentCommandBuffer(); + std::vector opaqueItems; + opaqueItems.reserve(static_cast(secondaryItemCount)); + for (const VulkanWorkItem & item : workItems) { + if (item.recordToSecondary) opaqueItems.push_back(&item); } - - // Wireframe/point overlay: re-draw opaque geometry in the requested fill - // mode using a uniform edge color (no vertex colors, no texture, unlit). - if (!transparent && overlayFillMode >= 0) { - for (int i = 0; i < drawlist.getNumCommands(); ++i) { - const int index = - i < static_cast(order.size()) ? order[i] : i; - const SoRenderCommand & command = drawlist.getCommand(index); - if (command.pass == SO_RENDERPASS_OVERLAY) continue; - if (command.pass == SO_RENDERPASS_TRANSPARENT) continue; - this->recordDrawCommand(drawlist, command, target, params, renderPass, - false, overlayFillMode, overlayColor); + if (!this->recordSecondaryChunk(ctx, drawlist, params, target, renderPass, + opaqueItems, secondary, + inheritFramebuffer)) { + this->emitError("failed to begin secondary command buffer"); + this->recordContext.buffer = primary; + this->recordContext.reset(); + for (const VulkanWorkItem & item : workItems) { + this->recordWorkItem(drawlist, params, target, renderPass, item, + this->recordContext); + } + return TRUE; + } + // The primary's bound state was NOT preserved across the secondary, so + // reset its dedup cache before continuing inline. + ctx.buffer = primary; + ctx.reset(); + vkCmdExecuteCommands(primary, 1, &secondary); + for (const VulkanWorkItem & item : workItems) { + if (!item.recordToSecondary) { + this->recordWorkItem(drawlist, params, target, renderPass, item, ctx); } } } - - // On-top annotations: commands recorded with the depth test disabled are - // drawn after both passes in insertion order. This mirrors GL's delayed - // annotations pass (glClear(GL_DEPTH_BUFFER_BIT) + re-render on top), - // which clarify selection uses to show a highlighted shape through - // occluding geometry: the base shape and its highlight are recorded with - // the depth test off during traversal and deferred here so later-drawn - // occluders cannot paint over them. - for (int i = 0; i < drawlist.getNumCommands(); ++i) { - const SoRenderCommand & command = drawlist.getCommand(i); - if (command.pass == SO_RENDERPASS_OVERLAY) continue; - if (command.state.depth.enabled) continue; - this->recordDrawCommand(drawlist, command, target, params, renderPass, - false); + else if (wantParallel) { + // M1d parallel: partition opaque items into disjoint chunks (greedy + // longest-first for load balance), record each into its own worker + // secondary in parallel, then replay all in order followed by the inline + // painter-order / overlay / annotation items. + if (COIN_VULKAN_ENV_FLAG("FC_VULKAN_BACKEND_DEBUG")) { + static int parLog = 0; + if (parLog++ < 3) { + fprintf(stderr, + "[PAR] parallel record: %u opaque items across %u workers\n", + static_cast(secondaryItemCount), + static_cast(this->maxRecordWorkers)); + } + } + const uint32_t W = this->maxRecordWorkers; + for (uint32_t w = 0; w < W; ++w) { + this->recordJobs[w].items.clear(); + this->recordJobs[w].drawlist = &drawlist; + this->recordJobs[w].params = ¶ms; + this->recordJobs[w].target = ⌖ + this->recordJobs[w].renderPass = renderPass; + this->recordJobs[w].framebuffer = inheritFramebuffer; + this->recordJobs[w].secondary = this->parallelCurrentSecondary(w); + this->recordJobs[w].ctx = &this->workerRecordContexts[w]; + this->recordJobs[w].ok = false; + } + // Greedy longest-first: costs = first command's vertex count * item.count. + std::vector> heaviest; + heaviest.reserve(static_cast(secondaryItemCount)); + for (const VulkanWorkItem & item : workItems) { + if (!item.recordToSecondary) continue; + const SoRenderCommand * first = + item.count > 1 ? item.commands[0] : item.single; + uint64_t cost = static_cast(first ? first->geometry.vertexCount : 0); + if (first && first->geometry.indexCount) cost *= first->geometry.indexCount; + cost *= static_cast(item.count); + heaviest.emplace_back(cost, &item); + } + std::sort(heaviest.begin(), heaviest.end(), + [](const std::pair & a, + const std::pair & b) { + return a.first > b.first; + }); + std::vector load(W, 0); + for (const auto & h : heaviest) { + uint32_t dst = 0; + for (uint32_t w = 1; w < W; ++w) { if (load[w] < load[dst]) dst = w; } + this->recordJobs[dst].items.push_back(h.second); + load[dst] += h.first; + } + // Dispatch: main records worker 0, spawned threads record workers 1..W-1. + this->recordDoneCount = 0; + { + std::lock_guard lk(this->recordMutex); + ++this->recordJobGeneration; + } + vkBackendTrace(this->uboFrameIndex, "recordFrame.dispatch", + "gen=%u W=%u items=%u", this->recordJobGeneration, W, + static_cast(secondaryItemCount)); + this->recordCvSpawn.notify_all(); + this->recordJobs[0].ok = this->recordSecondaryChunk( + this->workerRecordContexts[0], drawlist, params, target, renderPass, + this->recordJobs[0].items, this->recordJobs[0].secondary, + this->recordJobs[0].framebuffer); + { + std::unique_lock lk(this->recordMutex); + this->recordCvDone.wait(lk, [this] { + return this->recordDoneCount.load() >= this->maxRecordWorkers - 1; + }); + } + vkBackendTrace(this->uboFrameIndex, "recordFrame.joined", + "doneCount=%d ok0=%d", + this->recordDoneCount.load(), this->recordJobs[0].ok ? 1 : 0); + // Replay the secondaries in order, then inline the non-opaque items. + // A failed worker's chunk is re-recorded inline (serial fallback) into the + // primary instead of executing its possibly-invalid secondary. + VkCommandBuffer primary = this->currentCommandBuffer(); + ctx.buffer = primary; + ctx.reset(); + std::vector execute; + execute.reserve(W); + for (uint32_t w = 0; w < W; ++w) { + if (this->recordJobs[w].items.empty()) continue; + if (this->recordJobs[w].ok) { + execute.push_back(this->recordJobs[w].secondary); + } + else { + this->emitError("parallel record worker failed; recorded inline"); + for (const VulkanWorkItem * item : this->recordJobs[w].items) { + this->recordWorkItem(drawlist, params, target, renderPass, *item, + ctx); + } + } + } + if (!execute.empty()) { + vkCmdExecuteCommands(primary, static_cast(execute.size()), + execute.data()); + } + for (const VulkanWorkItem & item : workItems) { + if (!item.recordToSecondary) { + this->recordWorkItem(drawlist, params, target, renderPass, item, ctx); + } + } + } + else { + // Fully-inline record (no secondary available or nothing to re-play). + for (const VulkanWorkItem & item : workItems) { + this->recordWorkItem(drawlist, params, target, renderPass, item, ctx); + } } // Screen-space overlay geometry (navigation cube): drawn after both passes // into its own viewport, with the overlay rect's depth cleared first so the // overlay self-occludes independently of the main scene. - this->recordOverlayBlock(drawlist, params, target, renderPass); + this->recordOverlayBlock(drawlist, params, target, renderPass, ctx); return true; } @@ -791,7 +1468,8 @@ void SoVulkanRenderBackend::recordOverlayBlock(const SoDrawList & drawlist, const SoRenderParams & params, const SoVulkanRenderTarget & target, - VkRenderPass renderPass) + VkRenderPass renderPass, + VulkanRecordContext & ctx) { // Overlays are drawn in recorded (insertion) order, matching GL: the // draw-list sorted order is a painter's algorithm built from the main @@ -810,14 +1488,14 @@ SoVulkanRenderBackend::recordOverlayBlock(const SoDrawList & drawlist, if (raster.scissorX != lastClearX || raster.scissorY != lastClearY || raster.scissorWidth != lastClearW || raster.scissorHeight != lastClearH) { - this->recordOverlayDepthClear(command, target); + this->recordOverlayDepthClear(command, target, ctx); lastClearX = raster.scissorX; lastClearY = raster.scissorY; lastClearW = raster.scissorWidth; lastClearH = raster.scissorHeight; } this->recordDrawCommand(drawlist, command, target, params, renderPass, - false, -1, nullptr, true); + false, -1, nullptr, true, ctx); } } @@ -825,7 +1503,8 @@ void SoVulkanRenderBackend::recordTracedComposite(const SoDrawList & drawlist, const SoRenderParams & params, const SoVulkanRenderTarget & target, - VkRenderPass renderPass) + VkRenderPass renderPass, + VulkanRecordContext & ctx) { // Ray-tracing compositing residue: the RT backend traces only triangles, so // the OPAQUE/TRANSPARENT LINES / POINTS / LINE_STRIP commands (BRep edge @@ -843,11 +1522,11 @@ SoVulkanRenderBackend::recordTracedComposite(const SoDrawList & drawlist, if (topo == SO_TOPOLOGY_TRIANGLES) continue; if (topo == SO_TOPOLOGY_TRIANGLE_STRIP) continue; - const SoRasterState & raster = command.state.raster; + [[maybe_unused]] const SoRasterState & raster = command.state.raster; // Apply the command's own viewport/scissor if it carries one, else the // whole-surface viewport (the default for scene geometry). - this->applyCommandViewport(command, target); - this->applyScissor(command, target); + this->applyCommandViewport(command, target, ctx); + this->applyScissor(command, target, ctx); // overlayPass=false: these are scene-geometry edge/point commands, so // they must draw with the FRAME camera (params.projMatrix), not the // command's own projection matrix. Passing overlayPass=true made them @@ -855,6 +1534,6 @@ SoVulkanRenderBackend::recordTracedComposite(const SoDrawList & drawlist, // (the offset "phantom box"). They inherit the raster depth compare so // the present-pass depth occludes hidden edges. this->recordDrawCommand(drawlist, command, target, params, renderPass, - false, -1, nullptr, false); + false, -1, nullptr, false, ctx); } } diff --git a/src/rendering/SoVulkanRenderBackend/SoVulkanRenderBackendGeometry.cpp b/src/rendering/SoVulkanRenderBackend/SoVulkanRenderBackendGeometry.cpp index f85cf2e9153..e7834f1ac1b 100644 --- a/src/rendering/SoVulkanRenderBackend/SoVulkanRenderBackendGeometry.cpp +++ b/src/rendering/SoVulkanRenderBackend/SoVulkanRenderBackendGeometry.cpp @@ -51,7 +51,42 @@ VkDeviceSize alignGeometryUpload(VkDeviceSize bytes) return ((bytes + alignment - 1) / alignment) * alignment; } -void packInterleavedVertices(const SoGeometryDesc & geometry, float * vertices) +// Encode a float to a half (binary16). Ranges outside the finite half range +// clamp to +/-inf; CAD texcoords are in [0,1] so this is exact in practice. +static inline uint16_t floatToHalf(float value) +{ + // IEEE 754 single -> binary16 by narrowing the exponent/mantissa. + uint32_t bits = 0; + std::memcpy(&bits, &value, sizeof(bits)); + const uint32_t sign = (bits >> 16) & 0x8000u; + uint32_t exp = (bits >> 23) & 0xFFu; + uint32_t mant = bits & 0x7FFFFFu; + + if (exp == 0xFFu) { + // Inf/NaN: saturate to inf with the sign, preserving NaN payload roughly. + return static_cast(sign | 0x7C00u | (mant ? 0x0200u : 0)); + } + // The single exponent is biased by 127; the half by 15. Shift the excess. + int32_t halfExp = static_cast(exp) - 127 + 15; + if (halfExp >= 0x1F) { + // Overflow -> inf. + return static_cast(sign | 0x7C00u); + } + if (halfExp <= 0) { + // Subnormal / zero underflow. + if (halfExp < -10) { + return static_cast(sign); + } + // Subnormal: shift the mantissa into the denormal range. + mant = (mant | 0x800000u) >> (1 - halfExp); + return static_cast(sign | ((mant + 0x1000u) >> 13)); + } + // Normalized value. Round to nearest even on the 13 dropped mantissa bits. + return static_cast(sign | (halfExp << 10) | + ((mant + 0x1000u) >> 13)); +} + +void packInterleavedVertices(const SoGeometryDesc & geometry, uint8_t * vertices) { const uint32_t vertexCount = geometry.vertexCount; const uint32_t posStride = geometry.vertexStride @@ -64,51 +99,43 @@ void packInterleavedVertices(const SoGeometryDesc & geometry, float * vertices) const uint32_t texcoordStrideFloats = texcoordStride / sizeof(float); for (uint32_t i = 0; i < vertexCount; ++i) { - float * out = vertices + static_cast(i) * 12; + // 32-byte interleaved vertex: vec3 position f32 @0, vec3 normal f32 @12, + // vec4 color R8G8B8A8_UNORM @24, vec2 texcoord R16G16_SFLOAT @28. + uint8_t * out = vertices + static_cast(i) * VULKAN_VERTEX_STRIDE; const float * pos = geometry.positions + static_cast(i) * posStrideFloats; - out[0] = pos[0]; - out[1] = pos[1]; - out[2] = pos[2]; + std::memcpy(out + 0, pos, 3 * sizeof(float)); + float n[3] = {0.0f, 0.0f, 1.0f}; if (geometry.normals && i < geometry.normalCount) { const float * normal = geometry.normals + static_cast(i) * normalStrideFloats; - out[3] = normal[0]; - out[4] = normal[1]; - out[5] = normal[2]; - } - else { - out[3] = 0.0f; - out[4] = 0.0f; - out[5] = 1.0f; + n[0] = normal[0]; n[1] = normal[1]; n[2] = normal[2]; } + std::memcpy(out + 12, n, 3 * sizeof(float)); + float c[4] = {1.0f, 1.0f, 1.0f, 1.0f}; if (geometry.colors) { const float * color = geometry.colors + static_cast(i) * 4; - out[6] = color[0]; - out[7] = color[1]; - out[8] = color[2]; - out[9] = color[3]; + c[0] = color[0]; c[1] = color[1]; c[2] = color[2]; c[3] = color[3]; } - else { - out[6] = 1.0f; - out[7] = 1.0f; - out[8] = 1.0f; - out[9] = 1.0f; + // Clamp to [0,1] then quantize to 8-bit UNORM, matching the VkFormat. + for (int k = 0; k < 4; ++k) { + float v = c[k] < 0.0f ? 0.0f : (c[k] > 1.0f ? 1.0f : c[k]); + out[24 + k] = static_cast(v * 255.0f + 0.5f); } + float uv[2] = {0.0f, 0.0f}; if (geometry.texcoords) { - const float * uv = geometry.texcoords + + const float * tex = geometry.texcoords + static_cast(i) * texcoordStrideFloats; - out[10] = uv[0]; - out[11] = uv[1]; - } - else { - out[10] = 0.0f; - out[11] = 0.0f; + uv[0] = tex[0]; uv[1] = tex[1]; } + const uint16_t halfU = floatToHalf(uv[0]); + const uint16_t halfV = floatToHalf(uv[1]); + std::memcpy(out + 28, &halfU, sizeof(halfU)); + std::memcpy(out + 30, &halfV, sizeof(halfV)); } } @@ -339,8 +366,9 @@ SoVulkanRenderBackend::uploadGeometry(VulkanCachedCommand & entry, ? geometry.vertexStride : sizeof(float) * 3; std::lock_guard scratchLock(this->uploadScratchMutex); - this->uploadScratch.resize(static_cast(vertexCount) * 12); - float * const vertices = this->uploadScratch.data(); + // Byte-sized scratch: 32 bytes per packed vertex. + this->uploadScratch.resize(static_cast(vertexCount) * VULKAN_VERTEX_STRIDE); + uint8_t * const vertices = this->uploadScratch.data(); packInterleavedVertices(geometry, vertices); const VkDeviceSize vertexBytes = @@ -452,7 +480,7 @@ SoVulkanRenderBackend::uploadGeometryShared(VulkanCachedCommand & entry, char * base = reinterpret_cast(block.mapped); packInterleavedVertices(geometry, - reinterpret_cast(base + vertexOffset)); + reinterpret_cast(base + vertexOffset)); if (indexBytes != 0) { std::memcpy(base + indexOffset, geometry.indices, static_cast(indexBytes)); @@ -689,23 +717,10 @@ SoVulkanRenderBackend::updateGeometryCache(const SoDrawList & drawlist, // Release uploads left over from a frame that aborted between the cache // update and the flush/finalize step (e.g. a failed framebuffer create). - // Their copies were never recorded, but deferring the staging destruction - // is uniformly safe and keeps a single cleanup path. - for (const PendingTextureUpload & upload : this->pendingUploads) { - if (upload.staging == VK_NULL_HANDLE) continue; - const VkDevice device = this->device; - const VkAllocationCallbacks * allocator = this->allocator; - const VkBuffer staging = upload.staging; - const VkDeviceMemory stagingMemory = upload.stagingMemory; - this->deferDestroy([device, allocator, staging, stagingMemory]() { - if (staging != VK_NULL_HANDLE) { - vkDestroyBuffer(device, staging, allocator); - } - if (stagingMemory != VK_NULL_HANDLE) { - vkFreeMemory(device, stagingMemory, allocator); - } - }); - } + // Their copies were never recorded. The staged pixels live in the shared + // staging pool (which persists across frames), so there is no per-upload + // staging buffer to defer-destroy; just drop the pending list so the next + // frame re-stages from scratch. this->pendingUploads.clear(); const long cacheBcStart = vkGeometryBreadcrumbEnabled() ? vkGeometryBreadcrumbNowUs() : 0; @@ -719,6 +734,9 @@ SoVulkanRenderBackend::updateGeometryCache(const SoDrawList & drawlist, this->needsGeometryScratch.assign( static_cast(std::max(0, drawlist.getNumCommands())), 0); + // Start this frame's texture staging at the front of the shared staging + // pool so pending uploads coalesce into one buffer (see prepareTextureUpload). + this->stagingPoolCursor = 0; std::vector & needsGeometry = this->needsGeometryScratch; int retainedUploads = 0; VkDeviceSize retainedUploadBytes = 0; @@ -751,13 +769,22 @@ SoVulkanRenderBackend::updateGeometryCache(const SoDrawList & drawlist, entry.normalCount == geometry.normalCount && entry.vertexStride == vertexStride && entry.texcoordStride == geometry.texcoordStride; - // The sampled content re-hash only guards against in-place edits of a - // retained buffer, and those can only be produced by a traversal. On a - // replayed frame (geometryContentUnchanged) no traversal ran, so - // pointer-identical retained geometry is guaranteed unchanged and the - // per-command FNV walk (up to ~3k sampled values) is skipped. + // Change detection: + // - Retained geometry (SoGeometryDesc::retained): the producer guarantees + // the stream pointers change exactly when the content changes (shape + // tessellation reallocates the buffers on rebuild), so pointer/count + // identity alone is a correct change detector. A per-frame content hash + // is redundant and doing it defeats the retained contract those + // producers rely on. Skip the FNV walk entirely here. + // - Replayed frames (geometryContentUnchanged): no traversal ran, so + // pointer-identical geometry is bit-identical; also skip. + // - Otherwise (per-frame arena streams that rewrite the same pointer in + // place, e.g. per-vertex colors): fall back to the sampled content hash + // to catch in-place edits. + const bool pointerIdentitySufficient = + geometry.retained || geometryContentUnchanged; const bool geometryMatches = identityMatches && - (geometryContentUnchanged || + (pointerIdentitySufficient || entry.contentHash == hashGeometryContent(geometry)); if (!geometryMatches) { needsGeometry[static_cast(i)] = 1; @@ -883,8 +910,8 @@ SoVulkanRenderBackend::updateGeometryCache(const SoDrawList & drawlist, upload.index = this->commandToTexture[&command]; upload.texture = &texture; ++bcTexturePrepares; - if (this->prepareTextureUpload(texEntry, texture, upload.staging, - upload.stagingMemory)) { + if (this->prepareTextureUpload(texEntry, texture, upload.stagingOffset, + upload.stagingBytes)) { this->pendingUploads.push_back(upload); } // On failure the entry was reset by prepareTextureUpload(); diff --git a/src/rendering/SoVulkanRenderBackend/SoVulkanRenderBackendP.h b/src/rendering/SoVulkanRenderBackend/SoVulkanRenderBackendP.h index bc8e64b6b41..e8600baa675 100644 --- a/src/rendering/SoVulkanRenderBackend/SoVulkanRenderBackendP.h +++ b/src/rendering/SoVulkanRenderBackend/SoVulkanRenderBackendP.h @@ -18,17 +18,69 @@ #define COIN_SOVULKANRENDERBACKENDP_H #include +#include +#include #include #include +#include #include #include +#include +#include #include #include #include +#ifndef _WIN32 +#include +#endif + namespace CoinVulkanDetail { + // ---- [TRC] per-step recording traces (FC_VULKAN_TRACE) ---- + // One line per pipeline step, tagged with a monotonic sequence, frame + // index and thread id so an interleaved multi-thread log can be read in + // order. Gated by FC_VULKAN_TRACE, off by default, and cached (the + // environment does not change mid-process). + inline bool vkBackendTraceEnabled() + { + static const bool enabled = std::getenv("FC_VULKAN_TRACE") != nullptr; + return enabled; + } + + inline void vkBackendTrace(const uint32_t frame, const char * stage, + const char * fmt, ...) + { + if (!vkBackendTraceEnabled()) return; + static std::atomic seq(0); + const long n = seq.fetch_add(1, std::memory_order_relaxed); + char buf[224]; + int len = std::snprintf(buf, sizeof(buf), "[TRC] %ld f=%u", n, frame); + const size_t th = + std::hash()(std::this_thread::get_id()); + len += std::snprintf(buf + len, sizeof(buf) - static_cast(len), + " t=%zx %s ", th, stage); + va_list ap; + va_start(ap, fmt); + len += std::vsnprintf(buf + len, + sizeof(buf) - static_cast(len), fmt, ap); + va_end(ap); + if (len > 223) len = 223; + buf[len++] = '\n'; + // write(2) to fd 2: unbuffered, lock-free syscalls so tracing perturbs + // thread interleaving as little as possible and the final line before a + // crash is never lost in a stdio buffer. (fprintf + fflush fallback on + // Windows, where fd 2 is not a POSIX descriptor.) +#ifdef _WIN32 + std::fwrite(buf, 1, static_cast(len), stderr); + std::fflush(stderr); +#else + const ssize_t written = ::write(2, buf, static_cast(len)); + (void)written; +#endif + } + inline int s_debugFrame = 0; inline uint32_t s_debugPushCount = 0; @@ -215,17 +267,20 @@ hashTextureContent(const SoTextureData & texture) // Fixed interleaved vertex layout shared by every retained command. // -// offset 0 : vec3 position -// offset 12: vec3 normal -// offset 24: vec4 color -// offset 40: vec2 texcoord +// offset 0 : vec3 position (R32G32B32_SFLOAT) +// offset 12: vec3 normal (R32G32B32_SFLOAT) +// offset 24: vec4 color (R8G8B8A8_UNORM) +// offset 28: vec2 texcoord (R16G16_SFLOAT) // -// This keeps a single static vertex-input description usable across all -// pipelines, mirroring the GL backend's VAO-per-command bookkeeping without -// any per-command vertex-state objects. -constexpr uint32_t VULKAN_VERTEX_STRIDE = 48; +// Positions and normals stay full f32 (CAD geometry needs the precision for +// correct normals/lighting); the diffuse color is quantized to 8-bit UNORM and +// the texture coordinate to half-float, cutting the per-vertex fetch from 48 +// to 32 bytes. This keeps a single static vertex-input description usable +// across all pipelines, mirroring the GL backend's VAO-per-command bookkeeping +// without any per-command vertex-state objects. +constexpr uint32_t VULKAN_VERTEX_STRIDE = 32; constexpr int MAX_VERTEX_COUNT = 10000000; -constexpr int MAX_SHADER_LIGHTS = 8; +constexpr int MAX_SHADER_LIGHTS = SO_MAX_SHADER_LIGHTS; struct alignas(16) VulkanPushConstants { float proj[16]; // projection matrix (view/model live in the UBO) @@ -258,22 +313,14 @@ struct alignas(16) VulkanBackgroundPush { static_assert(sizeof(VulkanBackgroundPush) == 48, "VulkanBackgroundPush must match BackgroundPush layout"); -// std140 mirror of the LightingBlock uniform (set 0, binding 0) in the -// visual Vertex/Fragment shaders. The lighting constant block is written -// ONCE per unique lightingHandle per frame into a small ring; every draw that -// references the same handle binds that same slot through a dynamic offset, -// so the 8-light setup is never recomputed or re-written per draw. The -// layout must match the shader byte-for-byte; vec3 members consume 16 bytes -// like std140 vec4s. -struct alignas(16) VulkanLightingUbo { - float ambientLight[4]; // offset 0 - float lightType[MAX_SHADER_LIGHTS * 4]; // offset 16 - float lightColor[MAX_SHADER_LIGHTS * 4]; // offset 144 - float lightDirection[MAX_SHADER_LIGHTS * 4]; // offset 272 - float lightPosition[MAX_SHADER_LIGHTS * 4]; // offset 400 - float lightAttenuation[MAX_SHADER_LIGHTS * 4]; // offset 528 - float lightSpotParams[MAX_SHADER_LIGHTS * 4]; // offset 656 -}; +// The lighting constant block is the standardized SoLightingBlock (the +// single authoritative std140 mirror of the visual shaders' LightingBlock +// uniform, set 0 binding 0). It is written ONCE per unique lightingHandle +// per frame into a small ring -- world-space setups transformed to eye space +// by SoRenderIR::fillLightingBlock() with the frame view -- and every draw +// referencing the same handle binds that same slot through a dynamic offset, +// so the 8-light setup is never recomputed or re-written per draw. +using VulkanLightingUbo = SoLightingBlock; static_assert(sizeof(VulkanLightingUbo) == 784, "VulkanLightingUbo must match LightingBlock std140 layout"); diff --git a/src/rendering/SoVulkanRenderBackend/SoVulkanRenderBackendPipeline.cpp b/src/rendering/SoVulkanRenderBackend/SoVulkanRenderBackendPipeline.cpp index d43975491d8..b02a3b314d7 100644 --- a/src/rendering/SoVulkanRenderBackend/SoVulkanRenderBackendPipeline.cpp +++ b/src/rendering/SoVulkanRenderBackend/SoVulkanRenderBackendPipeline.cpp @@ -154,7 +154,8 @@ SoVulkanRenderBackend::createBackgroundPipeline( void SoVulkanRenderBackend::recordBackground(const SoRenderParams & params, const SoVulkanRenderTarget & target, - VkRenderPass renderPass) + VkRenderPass renderPass, + VulkanRecordContext & ctx) { if (!params.backgroundGradient) { return; @@ -193,14 +194,14 @@ SoVulkanRenderBackend::recordBackground(const SoRenderParams & params, viewport.height = static_cast(h); viewport.minDepth = 0.0f; viewport.maxDepth = 1.0f; - this->applyViewportState(viewport); + this->applyViewportState(viewport, ctx); VkRect2D scissor {}; scissor.offset = {x0, y0}; scissor.extent = {static_cast(w), static_cast(h)}; - this->applyScissorState(scissor); + this->applyScissorState(scissor, ctx); - this->applyPipeline(pipeline); + this->applyPipeline(pipeline, ctx); VulkanBackgroundPush push {}; push.topColor[0] = params.backgroundTopColor[0]; @@ -215,16 +216,18 @@ SoVulkanRenderBackend::recordBackground(const SoRenderParams & params, push.viewport[1] = static_cast(h); push.viewport[2] = static_cast(x0); push.viewport[3] = static_cast(y0); - vkCmdPushConstants(this->activeCommandBuffer, this->backgroundPipelineLayout, - VK_SHADER_STAGE_VERTEX_BIT | - VK_SHADER_STAGE_FRAGMENT_BIT, - 0, sizeof(push), &push); + vkCmdPushConstants(ctx.buffer, this->backgroundPipelineLayout, + VK_SHADER_STAGE_VERTEX_BIT | + VK_SHADER_STAGE_FRAGMENT_BIT, + 0, sizeof(push), &push); - vkCmdDraw(this->activeCommandBuffer, 3, 1, 0, 0); + vkCmdDraw(ctx.buffer, 3, 1, 0, 0); } bool SoVulkanRenderBackend::createRenderPass(const SoVulkanRenderTarget & target, + VkAttachmentLoadOp colorLoadOp, + VkAttachmentLoadOp depthLoadOp, VkRenderPass & pass) { VkAttachmentDescription attachments[2]; @@ -233,7 +236,7 @@ SoVulkanRenderBackend::createRenderPass(const SoVulkanRenderTarget & target, attachments[0].flags = 0; attachments[0].format = target.colorFormat; attachments[0].samples = target.sampleCount; - attachments[0].loadOp = VK_ATTACHMENT_LOAD_OP_LOAD; + attachments[0].loadOp = colorLoadOp; attachments[0].storeOp = VK_ATTACHMENT_STORE_OP_STORE; attachments[0].stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE; attachments[0].stencilStoreOp = VK_ATTACHMENT_STORE_OP_DONT_CARE; @@ -251,7 +254,7 @@ SoVulkanRenderBackend::createRenderPass(const SoVulkanRenderTarget & target, attachments[1].flags = 0; attachments[1].format = target.depthFormat; attachments[1].samples = target.sampleCount; - attachments[1].loadOp = VK_ATTACHMENT_LOAD_OP_LOAD; + attachments[1].loadOp = depthLoadOp; attachments[1].storeOp = VK_ATTACHMENT_STORE_OP_STORE; attachments[1].stencilLoadOp = VK_ATTACHMENT_LOAD_OP_LOAD; attachments[1].stencilStoreOp = VK_ATTACHMENT_STORE_OP_STORE; @@ -299,14 +302,20 @@ SoVulkanRenderBackend::renderPassIdentity(const SoVulkanRenderTarget & target) c } VkRenderPass -SoVulkanRenderBackend::getOrCreateRenderPass(const SoVulkanRenderTarget & target) +SoVulkanRenderBackend::getOrCreateRenderPass(const SoVulkanRenderTarget & target, + VkAttachmentLoadOp colorLoadOp, + VkAttachmentLoadOp depthLoadOp) { - const RenderPassIdentity identity = this->renderPassIdentity(target); + RenderPassIdentity identity = this->renderPassIdentity(target); + identity.colorLoadOp = colorLoadOp; + identity.depthLoadOp = depthLoadOp; const auto found = this->renderPassCache.find(identity); if (found != this->renderPassCache.end()) return found->second; VkRenderPass pass = VK_NULL_HANDLE; - if (!this->createRenderPass(target, pass)) return VK_NULL_HANDLE; + if (!this->createRenderPass(target, colorLoadOp, depthLoadOp, pass)) { + return VK_NULL_HANDLE; + } this->renderPassCache.emplace(identity, pass); return pass; } @@ -320,6 +329,13 @@ SoVulkanRenderBackend::getOrCreatePipeline(const SoRenderCommand & command, const int fillModeOverride, const bool overlayPass) { + if (vkBackendTraceEnabled()) { + static std::atomic n(0); + if (n.fetch_add(1) < 32) { + vkBackendTrace(this->uboFrameIndex, "getOrCreatePipeline.enter", + "call=%d", n.load()); + } + } // Pipelines are immutable in Vulkan. Key the cache on every retained // state value that changes the created pipeline so commands of different // topology, fill mode, depth/blend state, or sample count never reuse an @@ -478,12 +494,25 @@ SoVulkanRenderBackend::getOrCreatePipeline(const SoRenderCommand & command, : this->fragmentModule; stages[1].pName = "main"; - VkVertexInputBindingDescription binding {}; - binding.binding = 0; - binding.stride = key.wideLine ? 36u : VULKAN_VERTEX_STRIDE; - binding.inputRate = VK_VERTEX_INPUT_RATE_VERTEX; + // Binding 0: the interleaved position/normal/color/texcoord stream. The + // wide-line path substitutes its own 36-byte clip-space layout at binding 0. + VkVertexInputBindingDescription binding[2] {}; + binding[0].binding = 0; + binding[0].stride = key.wideLine ? 36u : VULKAN_VERTEX_STRIDE; + binding[0].inputRate = VK_VERTEX_INPUT_RATE_VERTEX; + // Binding 1 (visual pipelines only): the per-instance model matrix, four + // R32G32B32A32 rows advanced per instance (rate INSTANCE). This lets a + // group of commands sharing geometry/material but differing only by model + // matrix be drawn as one instanced vkCmdDraw. A one-element instance buffer + // is bound for ordinary non-instanced draws, so every visual draw carries + // the attribute. Wide-line pipelines keep their own layout (no instancing). + if (!key.wideLine) { + binding[1].binding = 1; + binding[1].stride = sizeof(float) * 16; // mat4, 4 x vec4 + binding[1].inputRate = VK_VERTEX_INPUT_RATE_INSTANCE; + } - VkVertexInputAttributeDescription attributes[4] {}; + VkVertexInputAttributeDescription attributes[8] {}; attributes[0].location = 0; attributes[0].binding = 0; attributes[0].format = VK_FORMAT_R32G32B32_SFLOAT; @@ -494,12 +523,29 @@ SoVulkanRenderBackend::getOrCreatePipeline(const SoRenderCommand & command, attributes[1].offset = 12; attributes[2].location = 2; attributes[2].binding = 0; - attributes[2].format = VK_FORMAT_R32G32B32A32_SFLOAT; + attributes[2].format = VK_FORMAT_R8G8B8A8_UNORM; attributes[2].offset = 24; attributes[3].location = 3; attributes[3].binding = 0; - attributes[3].format = VK_FORMAT_R32G32_SFLOAT; - attributes[3].offset = 40; + attributes[3].format = VK_FORMAT_R16G16_SFLOAT; + attributes[3].offset = 28; + // Instance model matrix rows (binding 1, rate INSTANCE). + attributes[4].location = 4; + attributes[4].binding = 1; + attributes[4].format = VK_FORMAT_R32G32B32A32_SFLOAT; + attributes[4].offset = 0; + attributes[5].location = 5; + attributes[5].binding = 1; + attributes[5].format = VK_FORMAT_R32G32B32A32_SFLOAT; + attributes[5].offset = 16; + attributes[6].location = 6; + attributes[6].binding = 1; + attributes[6].format = VK_FORMAT_R32G32B32A32_SFLOAT; + attributes[6].offset = 32; + attributes[7].location = 7; + attributes[7].binding = 1; + attributes[7].format = VK_FORMAT_R32G32B32A32_SFLOAT; + attributes[7].offset = 48; // Wide-line layout: clip-space position (0), color (16), polyline // distance (32). @@ -520,9 +566,9 @@ SoVulkanRenderBackend::getOrCreatePipeline(const SoRenderCommand & command, VkPipelineVertexInputStateCreateInfo vertexInput {}; vertexInput.sType = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO; - vertexInput.vertexBindingDescriptionCount = 1; - vertexInput.pVertexBindingDescriptions = &binding; - vertexInput.vertexAttributeDescriptionCount = key.wideLine ? 3u : 4u; + vertexInput.vertexBindingDescriptionCount = key.wideLine ? 1u : 2u; + vertexInput.pVertexBindingDescriptions = binding; + vertexInput.vertexAttributeDescriptionCount = key.wideLine ? 3u : 8u; vertexInput.pVertexAttributeDescriptions = key.wideLine ? wideLineAttributes : attributes; diff --git a/src/rendering/SoVulkanRenderBackend/SoVulkanRenderBackendTexture.cpp b/src/rendering/SoVulkanRenderBackend/SoVulkanRenderBackendTexture.cpp index 75838294df1..b9222263054 100644 --- a/src/rendering/SoVulkanRenderBackend/SoVulkanRenderBackendTexture.cpp +++ b/src/rendering/SoVulkanRenderBackend/SoVulkanRenderBackendTexture.cpp @@ -32,6 +32,23 @@ using namespace CoinVulkanDetail; // --- Texture cache -------------------------------------------------------- +void +SoVulkanRenderBackend::releaseMemory(VkDeviceMemory memory, VkDeviceSize size, + VkDeviceSize offset) +{ + if (memory == VK_NULL_HANDLE) return; + if (this->usingMemPool() && size > 0) { + // Return the range to the sub-allocator. Safe here because the callers + // defer this free: destroyTextureEntry() flushes through the deferred ring + // (see deferDestroyTextureEntry), so the GPU can no longer reference the + // range when this runs. + this->memPool->free(memory, offset, size); + } + else { + vkFreeMemory(this->device, memory, this->allocator); + } +} + void SoVulkanRenderBackend::destroyTextureEntry(VulkanCachedTexture & entry) { @@ -44,7 +61,7 @@ SoVulkanRenderBackend::destroyTextureEntry(VulkanCachedTexture & entry) entry.descriptorSet = VK_NULL_HANDLE; } if (entry.sampler != VK_NULL_HANDLE) { - vkDestroySampler(this->device, entry.sampler, this->allocator); + // Shared sampler owned by samplerCache; released at shutdown(), not here. entry.sampler = VK_NULL_HANDLE; } if (entry.view != VK_NULL_HANDLE) { @@ -56,7 +73,7 @@ SoVulkanRenderBackend::destroyTextureEntry(VulkanCachedTexture & entry) entry.image = VK_NULL_HANDLE; } if (entry.memory != VK_NULL_HANDLE) { - vkFreeMemory(this->device, entry.memory, this->allocator); + this->releaseMemory(entry.memory, entry.memorySize, entry.memoryOffset); entry.memory = VK_NULL_HANDLE; } entry = VulkanCachedTexture(); @@ -86,17 +103,46 @@ SoVulkanRenderBackend::getOrCreateTexture(const SoRenderCommand * command) return this->textureCache.back(); } +SoVulkanRenderBackend::SamplerKey +SoVulkanRenderBackend::samplerKey(SoTextureFilter minFilter, + SoTextureFilter magFilter, + SoTextureWrap wrapS, SoTextureWrap wrapT) +{ + return static_cast( + (static_cast(minFilter) & 0x3u) | + ((static_cast(magFilter) & 0x3u) << 2u) | + ((static_cast(wrapS) & 0x3u) << 4u) | + ((static_cast(wrapT) & 0x3u) << 6u)); +} + +VkSampler +SoVulkanRenderBackend::cachedSampler(SoTextureFilter minFilter, + SoTextureFilter magFilter, + SoTextureWrap wrapS, SoTextureWrap wrapT) +{ + const SamplerKey key = samplerKey(minFilter, magFilter, wrapS, wrapT); + const auto found = this->samplerCache.find(key); + if (found != this->samplerCache.end()) return found->second; + VkSampler sampler = VK_NULL_HANDLE; + if (this->createSampler(minFilter, magFilter, wrapS, wrapT, sampler)) { + this->samplerCache.emplace(key, sampler); + } + return sampler; +} + bool -SoVulkanRenderBackend::createSampler(const SoTextureData & texture, +SoVulkanRenderBackend::createSampler(SoTextureFilter minFilter, + SoTextureFilter magFilter, + SoTextureWrap wrapS, SoTextureWrap wrapT, VkSampler & sampler) { VkSamplerCreateInfo ci {}; ci.sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO; - ci.magFilter = textureFilterToVk(texture.magFilter); - ci.minFilter = textureFilterToVk(texture.minFilter); + ci.magFilter = textureFilterToVk(magFilter); + ci.minFilter = textureFilterToVk(minFilter); ci.mipmapMode = VK_SAMPLER_MIPMAP_MODE_NEAREST; - ci.addressModeU = textureWrapToVk(texture.wrapS); - ci.addressModeV = textureWrapToVk(texture.wrapT); + ci.addressModeU = textureWrapToVk(wrapS); + ci.addressModeV = textureWrapToVk(wrapT); ci.addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; ci.mipLodBias = 0.0f; ci.anisotropyEnable = VK_FALSE; @@ -125,11 +171,70 @@ SoVulkanRenderBackend::effectiveTextureFormat(const int numComponents) const return textureFormatToVk(numComponents); } +bool +SoVulkanRenderBackend::ensureStagingPoolSize(VkDeviceSize required) +{ + // The caller needs `required` MORE bytes at the current cursor: the pool + // must fit cursor + required, not merely `required` (two mid-size uploads + // in one frame would otherwise each pass the check individually yet + // overrun the buffer end -- heap corruption downstream). + if (this->stagingPoolBuffer != VK_NULL_HANDLE && + this->stagingPoolCapacity >= this->stagingPoolCursor + required) { + return true; + } + // Grow: at least double the current capacity so a burst of uploads in a + // frame amortizes a single reallocation instead of one per upload. + VkDeviceSize newCapacity = + std::max(this->stagingPoolCursor + required, + this->stagingPoolCapacity * 2); + newCapacity = std::max(newCapacity, 256u * 1024u); + + VkBuffer newBuffer = VK_NULL_HANDLE; + VkDeviceMemory newMemory = VK_NULL_HANDLE; + if (!SoVulkanShared::createBufferAllocated( + this->device, this->allocator, newCapacity, + VK_BUFFER_USAGE_TRANSFER_SRC_BIT, + VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, + /*deviceAddress*/ false, + [this](const VkMemoryRequirements & req, VkMemoryPropertyFlags desired, + uint32_t & memoryTypeIndex) { + return this->selectMemoryType(req, desired, memoryTypeIndex); + }, newBuffer, newMemory)) { + return false; + } + void * newMapped = nullptr; + if (vkMapMemory(this->device, newMemory, 0, newCapacity, 0, &newMapped) != + VK_SUCCESS) { + vkDestroyBuffer(this->device, newBuffer, this->allocator); + vkFreeMemory(this->device, newMemory, this->allocator); + return false; + } + // Preserve any bytes already staged in the old buffer (uploads prepared + // earlier in this frame) before swapping it out. + if (this->stagingPoolBuffer != VK_NULL_HANDLE && this->stagingPoolMapped && + this->stagingPoolCursor > 0) { + std::memcpy(newMapped, this->stagingPoolMapped, + static_cast(this->stagingPoolCursor)); + } + if (this->stagingPoolBuffer != VK_NULL_HANDLE) { + if (this->stagingPoolMapped != nullptr) { + vkUnmapMemory(this->device, this->stagingPoolMemory); + } + vkDestroyBuffer(this->device, this->stagingPoolBuffer, this->allocator); + vkFreeMemory(this->device, this->stagingPoolMemory, this->allocator); + } + this->stagingPoolBuffer = newBuffer; + this->stagingPoolMemory = newMemory; + this->stagingPoolMapped = newMapped; + this->stagingPoolCapacity = newCapacity; + return true; +} + bool SoVulkanRenderBackend::prepareTextureUpload(VulkanCachedTexture & entry, const SoTextureData & texture, - VkBuffer & staging, - VkDeviceMemory & stagingMemory) + VkDeviceSize & stagingOffset, + VkDeviceSize & stagingBytes) { if (texture.numComponents < 1 || texture.numComponents > 4) { this->emitError("prepareTextureUpload: unsupported component count"); @@ -183,6 +288,47 @@ SoVulkanRenderBackend::prepareTextureUpload(VulkanCachedTexture & entry, VkMemoryRequirements requirements; vkGetImageMemoryRequirements(this->device, entry.image, &requirements); + entry.memorySize = requirements.size; + // Stage the pixels into the shared staging pool. The pool is host-visible + // and reused across frames (grown on demand), so all pending uploads of a + // frame coalesce into one buffer -- one allocation, one cleanup surface -- + // rather than a fresh per-upload staging buffer. st_offset is the byte + // offset (grown monotonically within the frame) where these pixels land. + if (!this->ensureStagingPoolSize(byteSize)) { + this->emitError("prepareTextureUpload: staging pool growth failed"); + this->destroyTextureEntry(entry); + return false; + } + stagingOffset = this->stagingPoolCursor; + stagingBytes = byteSize; + unsigned char * dst = static_cast(this->stagingPoolMapped) + + static_cast(stagingOffset); + std::memcpy(dst, uploadPixels, static_cast(byteSize)); + this->stagingPoolCursor += ((byteSize + 3u) & ~(VkDeviceSize)3u); + + if (this->usingMemPool()) { + // Sub-allocate the image memory from the pool; falls back to a standalone + // allocation if the pool cannot fit/grow the range. + uint32_t poolTypeIndex = 0; + if (this->selectMemoryType(requirements, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT, + poolTypeIndex)) { + VkDeviceSize offset = 0; + if (this->memPool->alloc(poolTypeIndex, requirements.size, + requirements.alignment, entry.memory, offset)) { + entry.memoryOffset = offset; + const VkResult bindRes = vkBindImageMemory( + this->device, entry.image, entry.memory, offset); + if (bindRes == VK_SUCCESS) { + return true; + } + // Binding failed: return the range to the pool and fall through to the + // legacy path so the upload can still proceed (at a cost of correctness + // pressure only in the failure case). + this->releaseMemory(entry.memory, entry.memorySize, entry.memoryOffset); + entry.memory = VK_NULL_HANDLE; + } + } + } uint32_t memoryTypeIndex = 0; if (!this->selectMemoryType(requirements, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT, memoryTypeIndex)) { @@ -200,14 +346,9 @@ SoVulkanRenderBackend::prepareTextureUpload(VulkanCachedTexture & entry, this->destroyTextureEntry(entry); return false; } + entry.memoryOffset = 0; vkBindImageMemory(this->device, entry.image, entry.memory, 0); - if (!this->createBuffer(byteSize, VK_BUFFER_USAGE_TRANSFER_SRC_BIT, - staging, stagingMemory, uploadPixels)) { - this->emitError("prepareTextureUpload: staging buffer creation failed"); - this->destroyTextureEntry(entry); - return false; - } return true; } @@ -216,7 +357,8 @@ SoVulkanRenderBackend::recordTextureUpload( VkCommandBuffer commandBuffer, const VulkanCachedTexture & entry, const SoTextureData & texture, - VkBuffer staging) + VkBuffer staging, + VkDeviceSize stagingOffset) { SoVulkanShared::imageTransition( commandBuffer, entry.image, @@ -225,6 +367,7 @@ SoVulkanRenderBackend::recordTextureUpload( VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT); VkBufferImageCopy region {}; + region.bufferOffset = stagingOffset; region.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; region.imageSubresource.layerCount = 1; region.imageExtent = {static_cast(texture.width), @@ -250,7 +393,11 @@ SoVulkanRenderBackend::finalizeTexture(VulkanCachedTexture & entry, entry.view = createImageView(this->device, entry.image, format, VK_IMAGE_ASPECT_COLOR_BIT, this->allocator); if (entry.view == VK_NULL_HANDLE || - !this->createSampler(texture, entry.sampler) || + // Shared sampler: entries with identical filter/wrap state reuse one + // VkSampler from samplerCache instead of creating one per texture entry. + (entry.sampler = this->cachedSampler(texture.minFilter, texture.magFilter, + texture.wrapS, texture.wrapT)) == + VK_NULL_HANDLE || !this->allocateTextureDescriptorSet(entry.view, entry.sampler, entry.descriptorSet)) { this->emitError("finalizeTexture: view/sampler/descriptor creation failed"); @@ -274,7 +421,8 @@ SoVulkanRenderBackend::recordPendingTextureUploads() if (upload.index >= this->textureCache.size()) continue; this->recordTextureUpload(this->currentCommandBuffer(), this->textureCache[upload.index], - *upload.texture, upload.staging); + *upload.texture, this->stagingPoolBuffer, + upload.stagingOffset); } return true; } @@ -312,18 +460,6 @@ SoVulkanRenderBackend::finalizePendingTextureUploads() // retries the upload. this->deferDestroyTextureEntry(texEntry); } - if (upload.staging != VK_NULL_HANDLE) { - const VkBuffer staging = upload.staging; - const VkDeviceMemory stagingMemory = upload.stagingMemory; - this->deferDestroy([device, allocator, staging, stagingMemory]() { - if (staging != VK_NULL_HANDLE) { - vkDestroyBuffer(device, staging, allocator); - } - if (stagingMemory != VK_NULL_HANDLE) { - vkFreeMemory(device, stagingMemory, allocator); - } - }); - } } this->pendingUploads.clear(); } @@ -334,10 +470,11 @@ SoVulkanRenderBackend::flushPendingTextureUploadsExternal() if (this->pendingUploads.empty()) return true; // External path: the caller owns the frame command buffer and is already - // inside a render pass, so the copies cannot be merged into it. Record - // them into one transient command buffer, submit, and wait. The wait also - // retires any in-flight frames submitted by the external caller, which - // keeps ring-buffer reuse in renderExternal() safe even when the caller + // inside a render pass, so the copies cannot be merged into it. All + // pending uploads were staged into the single shared staging pool buffer + // at their recording offsets, so one submit copies every pending texture. + // The wait also retires any in-flight frames submitted by the external + // caller, which keeps the staging pool free for reuse even when the caller // pipelines more frames than maxFramesInFlight. if (!SoVulkanShared::withOneShotSubmit( this->device, this->queue, this->commandPool, this->allocator, @@ -346,7 +483,9 @@ SoVulkanRenderBackend::flushPendingTextureUploadsExternal() if (upload.index >= this->textureCache.size()) continue; this->recordTextureUpload(uploadBuffer, this->textureCache[upload.index], - *upload.texture, upload.staging); + *upload.texture, + this->stagingPoolBuffer, + upload.stagingOffset); } })) { this->emitError( @@ -354,18 +493,10 @@ SoVulkanRenderBackend::flushPendingTextureUploadsExternal() goto fail; } - // Staging buffers are no longer referenced by the completed submission. - for (const PendingTextureUpload & upload : this->pendingUploads) { - if (upload.staging != VK_NULL_HANDLE) { - vkDestroyBuffer(this->device, upload.staging, this->allocator); - vkFreeMemory(this->device, upload.stagingMemory, this->allocator); - } - } - // Host-side completion (views/samplers/descriptor sets) and content - // identity stamping. The queue is idle here, so synchronous destruction - // on failure is safe. A failure leaves the content keys unstamped, so the - // next frame retries the upload. + // identity stamping. The queue is idle here, so the shared staging pool + // is free to be reused by the next frame. A failure leaves the content + // keys unstamped, so the next frame retries the upload. for (const PendingTextureUpload & upload : this->pendingUploads) { if (upload.index >= this->textureCache.size()) continue; VulkanCachedTexture & texEntry = this->textureCache[upload.index]; @@ -391,10 +522,6 @@ SoVulkanRenderBackend::flushPendingTextureUploadsExternal() fail: for (const PendingTextureUpload & upload : this->pendingUploads) { - if (upload.staging != VK_NULL_HANDLE) { - vkDestroyBuffer(this->device, upload.staging, this->allocator); - vkFreeMemory(this->device, upload.stagingMemory, this->allocator); - } if (upload.index < this->textureCache.size()) { // Reset the half-initialized entry so the next frame retries cleanly. this->destroyTextureEntry(this->textureCache[upload.index]); @@ -425,6 +552,15 @@ SoVulkanRenderBackend::ensureDescriptorPoolSpace() VkDescriptorSet SoVulkanRenderBackend::resolveTextureSet(const SoRenderCommand & command) { + // Fast path for the overwhelmingly common untextured case: most retained + // commands (default CAD surfaces, edges, points) carry no texture, so fall + // straight through to the white set without touching the commandToTexture + // unordered_map (a hash + bucket walk per draw otherwise). + const SoTextureData & tex = command.material.texture; + if (!tex.pixels || tex.width == 0 || tex.height == 0 || + tex.numComponents == 0) { + return this->whiteDescriptorSet; + } const auto found = this->commandToTexture.find(&command); if (found != this->commandToTexture.end() && this->textureCache[found->second].descriptorSet != VK_NULL_HANDLE) { diff --git a/src/rendering/SoVulkanRenderBackend/SoVulkanRenderBackendWideLine.cpp b/src/rendering/SoVulkanRenderBackend/SoVulkanRenderBackendWideLine.cpp index 8db0b5e0052..4e5c8960177 100644 --- a/src/rendering/SoVulkanRenderBackend/SoVulkanRenderBackendWideLine.cpp +++ b/src/rendering/SoVulkanRenderBackend/SoVulkanRenderBackendWideLine.cpp @@ -28,6 +28,61 @@ using namespace CoinVulkanDetail; +bool +SoVulkanRenderBackend::ensureInstanceModelRingCapacity() +{ + const VkDeviceSize bytes = + static_cast(this->maxFramesInFlight) * + static_cast(this->uboSlotsPerFrame) * sizeof(float) * 16; + // Guard against an uninitialised ring (uboSlotsPerFrame==0 -> zero bytes): + // ensureInstanceModelBuffer() already clamps to a minimum of 64 bytes, so a + // zero request still allocates a valid single-element buffer. The per-draw + // slot-index math is only ever exercised after prepareLightingSlots() sizes + // uboSlotsPerFrame, so this is a safety bound, not a steady-state path. + return this->ensureInstanceModelBuffer(bytes); +} + +bool +SoVulkanRenderBackend::ensureInstanceModelBuffer(VkDeviceSize bytes) +{ + if (this->instanceModelBuffer != VK_NULL_HANDLE && + this->instanceModelCapacity >= bytes) { + return true; + } + if (this->instanceModelBuffer != VK_NULL_HANDLE) { + const VkDevice device = this->device; + const VkAllocationCallbacks * allocator = this->allocator; + const VkBuffer oldBuffer = this->instanceModelBuffer; + const VkDeviceMemory oldMemory = this->instanceModelMemory; + this->instanceModelBuffer = VK_NULL_HANDLE; + this->instanceModelMemory = VK_NULL_HANDLE; + this->instanceModelMapped = nullptr; + this->instanceModelCapacity = 0; + this->deferDestroy([device, allocator, oldBuffer, oldMemory]() { + if (oldBuffer != VK_NULL_HANDLE) { + vkDestroyBuffer(device, oldBuffer, allocator); + } + if (oldMemory != VK_NULL_HANDLE) { + vkFreeMemory(device, oldMemory, allocator); + } + }); + } + const VkDeviceSize cap = std::max(bytes, 64u); + if (!this->createBuffer(cap, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT, + this->instanceModelBuffer, this->instanceModelMemory, + nullptr)) { + this->emitError("ensureInstanceModelBuffer: failed to create buffer"); + return false; + } + if (vkMapMemory(this->device, this->instanceModelMemory, 0, cap, 0, + &this->instanceModelMapped) != VK_SUCCESS) { + this->emitError("ensureInstanceModelBuffer: vkMapMemory failed"); + return false; + } + this->instanceModelCapacity = cap; + return true; +} + bool SoVulkanRenderBackend::expandWideLines(VulkanCachedCommand & entry, const SoRenderCommand & command, @@ -200,11 +255,13 @@ SoVulkanRenderBackend::expandWideLines(VulkanCachedCommand & entry, // (glLineStipple: each bit covers linePatternScaleFactor pixels), so the // fragment discard below must operate on pixel distances, not object // units -- an object-unit period changes size when zooming. - std::vector clipCache(static_cast(vertexCount) * 4, 0.0f); - std::vector distances(vertexCount, 0.0f); + this->wlineClipScratch.assign(static_cast(vertexCount) * 4, 0.0f); + this->wlineDistScratch.assign(vertexCount, 0.0f); + float * const clipCache = this->wlineClipScratch.data(); + float * const distances = this->wlineDistScratch.data(); for (uint32_t i = 0; i < count; ++i) { const uint32_t actual = geometry.indices ? geometry.indices[i] : i; - float * clip = clipCache.data() + static_cast(actual) * 4; + float * clip = clipCache + static_cast(actual) * 4; transformPoint(geometry.positions + static_cast(actual) * posStrideFloats, clip); } @@ -213,8 +270,8 @@ SoVulkanRenderBackend::expandWideLines(VulkanCachedCommand & entry, const uint32_t previous = geometry.indices ? geometry.indices[i - 1] : i - 1; const uint32_t current = geometry.indices ? geometry.indices[i] : i; - const float * c0 = clipCache.data() + static_cast(previous) * 4; - const float * c1 = clipCache.data() + static_cast(current) * 4; + const float * c0 = clipCache + static_cast(previous) * 4; + const float * c1 = clipCache + static_cast(current) * 4; if (c0[3] <= 0.0f || c1[3] <= 0.0f) { distances[current] = distances[previous]; continue; @@ -230,8 +287,8 @@ SoVulkanRenderBackend::expandWideLines(VulkanCachedCommand & entry, const uint32_t first = geometry.indices ? geometry.indices[i] : i; const uint32_t second = geometry.indices ? geometry.indices[i + 1] : i + 1; - const float * c0 = clipCache.data() + static_cast(first) * 4; - const float * c1 = clipCache.data() + static_cast(second) * 4; + const float * c0 = clipCache + static_cast(first) * 4; + const float * c1 = clipCache + static_cast(second) * 4; if (c0[3] <= 0.0f || c1[3] <= 0.0f) { distances[first] = 0.0f; distances[second] = 0.0f; @@ -246,7 +303,9 @@ SoVulkanRenderBackend::expandWideLines(VulkanCachedCommand & entry, // 6 vertices per segment (two triangles), 9 floats each: // clip position (4) + color (4) + distance in pixels (1). - std::vector quads(static_cast(segmentCount) * 6 * 9); + const size_t quadFloats = static_cast(segmentCount) * 6 * 9; + this->wlineQuadScratch.assign(quadFloats, 0.0f); + float * const quads = this->wlineQuadScratch.data(); size_t outIndex = 0; size_t diagSkippedW = 0; size_t diagSkippedDeg = 0; @@ -267,8 +326,8 @@ SoVulkanRenderBackend::expandWideLines(VulkanCachedCommand & entry, const float * col1 = geometry.colors ? geometry.colors + static_cast(i1) * 4 : nullptr; - const float * c0 = clipCache.data() + static_cast(i0) * 4; - const float * c1 = clipCache.data() + static_cast(i1) * 4; + const float * c0 = clipCache + static_cast(i0) * 4; + const float * c1 = clipCache + static_cast(i1) * 4; // Near-plane clip in the remapped clip space. A point is visible when // it is in front of the eye (w > nearEps) AND in front of the near plane @@ -375,7 +434,7 @@ SoVulkanRenderBackend::expandWideLines(VulkanCachedCommand & entry, const int corner = triOrder[t]; const int endpoint = corner < 2 ? 0 : 1; const float * col = endpoint == 0 ? colA : colB; - float * out = quads.data() + outIndex; + float * out = quads + outIndex; outIndex += 9; out[0] = corners[corner][0]; out[1] = corners[corner][1]; @@ -388,7 +447,6 @@ SoVulkanRenderBackend::expandWideLines(VulkanCachedCommand & entry, out[8] = endpoint == 0 ? dA : dB; } } - quads.resize(outIndex); if (outIndex < 9) { if (wdiag) { fprintf(stderr, "[WLINE2] FAIL cmd=%p verts=%u segs=%u outIndex=%zu " @@ -428,8 +486,8 @@ SoVulkanRenderBackend::expandWideLines(VulkanCachedCommand & entry, static int distLog = 0; if (distLog++ < 3) { fprintf(stderr, "[WLINE] verts=%u segs=%u quads=%zu dists:", - vertexCount, segmentCount, quads.size() / 9); - for (size_t q = 0; q < quads.size() && q < 60; q += 9) { + vertexCount, segmentCount, outIndex / 9); + for (size_t q = 0; q < outIndex && q < 60; q += 9) { fprintf(stderr, " %.1f", static_cast(quads[q + 8])); } fprintf(stderr, "\n"); @@ -451,6 +509,7 @@ SoVulkanRenderBackend::expandWideLines(VulkanCachedCommand & entry, const VkDeviceMemory oldMemory = slot.memory; slot.buffer = VK_NULL_HANDLE; slot.memory = VK_NULL_HANDLE; + slot.mapped = nullptr; slot.size = 0; this->deferDestroy([device, allocator, oldBuffer, oldMemory]() { if (oldBuffer != VK_NULL_HANDLE) { @@ -462,22 +521,25 @@ SoVulkanRenderBackend::expandWideLines(VulkanCachedCommand & entry, }); } if (!this->createBuffer(needed, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT, - slot.buffer, slot.memory, quads.data())) { + slot.buffer, slot.memory, nullptr)) { this->emitError("expandWideLines: failed to create quad buffer"); slot.size = 0; return false; } slot.size = needed; - } - else { - void * mapped = nullptr; - if (vkMapMemory(this->device, slot.memory, 0, needed, 0, - &mapped) != VK_SUCCESS) { + // Establish the persistent host mapping. The buffer is HOST_VISIBLE | + // HOST_COHERENT, so the GPU observes a memcpy without any explicit flush, + // and keeping the mapping alive avoids a vkMapMemory/vkUnmapMemory pair on + // every subsequent frame for this slot. + if (vkMapMemory(this->device, slot.memory, 0, needed, 0, &slot.mapped) + != VK_SUCCESS) { this->emitError("expandWideLines: vkMapMemory failed"); return false; } - std::memcpy(mapped, quads.data(), static_cast(needed)); - vkUnmapMemory(this->device, slot.memory); + std::memcpy(slot.mapped, quads, static_cast(needed)); + } + else { + std::memcpy(slot.mapped, quads, static_cast(needed)); } slot.expandFingerprint = wfp; diff --git a/src/rendering/SoVulkanRenderManager.cpp b/src/rendering/SoVulkanRenderManager.cpp index 260f0ecdb31..6b54bfacbe0 100644 --- a/src/rendering/SoVulkanRenderManager.cpp +++ b/src/rendering/SoVulkanRenderManager.cpp @@ -9,12 +9,16 @@ #include #include #include +#include +#include #include #include #include #include +#include #include #include +#include #include #include @@ -81,7 +85,7 @@ bool vkRenderBreadcrumbEnabled() int vkLightFrameDbgBudget = 192; int vkLightFpDbgBudget = 192; -void vkRenderBreadcrumb(const char* phase) +[[maybe_unused]] void vkRenderBreadcrumb(const char* phase) { if (!vkRenderBreadcrumbEnabled()) { return; @@ -189,16 +193,40 @@ void mixHash(uint64_t & h, uint64_t v) // retained command was produced from exactly the current graph. Group // children are folded via SoGroup; non-group child containers would have to // route through SoChildList notifications, which bump the owning node's id -// and are caught by its own entry. The active camera is skipped: its pose -// is the camera-only change replay exists for (its eye-space lighting -// entries are re-derived via SoDrawList::restrikeLighting). +// and are caught by its own entry. +// +// NODE-ID EXCLUSIONS (camera-coupled infra): Coin propagates a notification +// up the parent chain, so any changed node re-bumps every ancestor's node-id. +// Two classes of node must be excluded or the fingerprint changes on every +// camera-only frame and defeats the retained-IR replay: +// * SoCamera -- its pose is the very +// change replay exists for (restamped/re-lit after a frame-view change). +// * The headlight envelope (SoRotation / SoTransformSeparator / SoLight / +// SoEnvironment) plus bare SoGroup/SoSeparator aggregation containers. +// FreeCAD re-aims the headlight ROTATION to follow the camera every +// navigation frame, and the container's node-ids are re-bumped purely by +// propagation. None of these nodes produce the rasterized fill-geometry +// in the draw list -- lighting is re-derived every frame by the backend's +// updateLightingSetup() -- so excluding their ids only suppresses the +// camera-coupled chatter. Real geometry edits use SoTransform/SoMatrix +// /shape/selection nodes, which still fold their ids, so an in-place +// edit, a move, an add/remove or a material/texture swap still +// invalidates the draw list and forces a re-record. void graphFingerprintWalk(SoNode * node, const SoNode * skip, uint64_t & h) { - if (!node || node == skip) { - return; - } + if (!node || node == skip) return; mixHash(h, reinterpret_cast(node)); - mixHash(h, static_cast(node->getNodeId())); + const bool skipId = + node->isOfType(SoCamera::getClassTypeId()) || + node->isOfType(SoLight::getClassTypeId()) || + node->isOfType(SoEnvironment::getClassTypeId()) || + node->isOfType(SoRotation::getClassTypeId()) || + node->isOfType(SoTransformSeparator::getClassTypeId()) || + node->getTypeId() == SoGroup::getClassTypeId() || + node->getTypeId() == SoSeparator::getClassTypeId(); + if (!skipId) { + mixHash(h, static_cast(node->getNodeId())); + } if (node->isOfType(SoGroup::getClassTypeId())) { const SoGroup * group = static_cast(node); const int num = group->getNumChildren(); @@ -335,7 +363,7 @@ class SoVulkanRenderManagerP { //! selection model behind FreeCAD's highlight roots); mixed in verbatim. uint64_t externalRevision = 0; //! Viewing matrix (SoViewingMatrixElement bits) stamped into the commands - //! of the last full traversal; the replay restrike key. + //! of the last full traversal; the replay restamp key. SbMatrix lastFrameView; SbBool lastFrameViewValid = FALSE; //! Viewing matrix the retained list's painter's-algorithm order was last @@ -402,6 +430,17 @@ class SoVulkanRenderManagerP { uint32_t sceneFpMainCount = 0; SbBool sceneFpValid = FALSE; + // Cheap draw-list fingerprint gate for the expensive graph-fingerprint walk. + // computeSceneFingerprint() hashes only the retained main commands (world + // matrices + geometry buffer pointers + counts), so it changes on a real + // geometry/transform edit but is invariant under camera motion. When it + // matches the previous frame's value, computeGraphFingerprint() (a full scene + // tree walk) is skipped and the cached graph fingerprint is reused. + uint64_t drawFpCached = 0; + SoNode * drawFpScene = nullptr; + uint32_t drawFpMainCount = 0; + SbBool drawFpValid = FALSE; + SoIRRenderAction irAction; //! Second IR action used to re-record the overlay/decoration scenes every //! frame (their node-ids churn with the camera, so they cannot be retained); @@ -921,6 +960,16 @@ SoVulkanRenderManager::setEnvMap(const int index) this->pimpl->rtxBackend.setEnvMap(index); } +void +SoVulkanRenderManager::setSceneLights(const std::vector & lights, + const SbVec3f & ambient) +{ + if (!this->pimpl->rtxBackendInitialized) { + return; + } + this->pimpl->rtxBackend.setSceneLights(lights, ambient); +} + int SoVulkanRenderManager::getEnvMap(void) const { @@ -1104,7 +1153,8 @@ SbBool SoVulkanRenderManager::renderExternal(SbBool clearwindow, SbBool clearzbuffer, VkCommandBuffer commandBuffer, - VkRenderPass renderPass) + VkRenderPass renderPass, + VkFramebuffer framebuffer) { const long renderBcStart = vkRenderBreadcrumbEnabled() ? vkRenderBreadcrumbNowUs() : 0; SoRenderParams params; @@ -1142,7 +1192,7 @@ SoVulkanRenderManager::renderExternal(SbBool clearwindow, return TRUE; } if (!this->pimpl->backend.renderExternal(*drawlist, params, commandBuffer, - renderPass)) { + renderPass, framebuffer)) { SoDebugError::postWarning("SoVulkanRenderManager::renderExternal", "backend render failed (%d draw commands)", drawlist->getNumCommands()); @@ -1616,43 +1666,94 @@ SoVulkanRenderManagerP::prepareRenderParams(SbBool clearwindow, // both re-record the (stable) main geometry and defeat the retained-IR replay // below. They are re-recorded separately afterwards (cheap) and merged onto // this main list. - SbBool irReplayed = FALSE; - // Cheap fast-path: the graph fingerprint walk is O(N) over the whole scene, - // and on a retained (replayed) frame with no scene change it is pure waste. - // The walk folds scene node-ids but deliberately SKIPS the camera, so the - // fingerprint is invariant under camera motion; the only thing that changes - // it is a change to the main scene graph. An SoNodeSensor attached to the - // scene root fires whenever any descendant is notified (a field write or a - // child-list edit), which is precisely a main-scene change -- so when the - // sensor has NOT fired since the last walk, the cached fingerprint is still - // exact and the O(N) walk is skipped. This catches every change the walk - // would (Coin propagates notify() up to the root), independent of any - // external revision wiring, and camera-only frames still produce the same - // (camera-invariant) fingerprint. - uint64_t graphFp; - const SbVec2s fpVpSize = this->viewportRegion.getViewportSizePixels(); - if (this->graphFingerprintValid && this->lastFpValid && - !this->sceneGraphDirty && this->scene == this->lastFpScene && - fpVpSize == this->lastFpViewport && this->devicePixelRatio == this->lastFpDpr) { - graphFp = this->graphFingerprint; - } - else { - graphFp = this->computeGraphFingerprint(); - this->sceneGraphDirty = FALSE; - } - this->lastFpScene = this->scene; - this->lastFpViewport = fpVpSize; - this->lastFpDpr = this->devicePixelRatio; - this->lastFpValid = TRUE; - if (this->scene || this->camera || this->overlayScene - || this->decorationScene) { - if (irReplayEnabled() && this->graphFingerprintValid && - graphFp == this->graphFingerprint) { + SbBool irReplayed = FALSE; + // Cheap fast-path: the graph fingerprint walk is O(N) over the whole scene, + // and on a retained (replayed) frame with no scene change it is pure waste. + // The walk folds scene node-ids but deliberately SKIPS the camera, so the + // fingerprint is invariant under camera motion; the only thing that changes + // it is a change to the main scene graph. An SoNodeSensor attached to the + // scene root fires whenever any descendant is notified (a field write or a + // child-list edit), which is precisely a main-scene change -- so when the + // sensor has NOT fired since the last walk, the cached fingerprint is still + // exact and the O(N) walk is skipped. This catches every change the walk + // would (Coin propagates notify() up to the root), independent of any + // external revision wiring, and camera-only frames still produce the same + // (camera-invariant) fingerprint. + // + // The sensor firing is itself the replay gate, not the fingerprint: the + // fingerprint folds node identity only (pointer + node-id + child count), + // so a FIELD-ONLY write (material, transform, preselection state) leaves it + // unchanged. Replaying after such a write is unsafe anyway: the write + // notifies the shape (SoShape::notify() drops its retained tessellation), + // so the retained list's raw geometry pointers may reference freed storage. + // Re-traverse whenever the sensor has fired since the last walk; camera + // motion alone never fires the scene-root sensor (the camera lives outside + // the scene graph), so camera-only frames still replay. + const SbBool graphChanged = this->sceneGraphDirty; + uint64_t graphFp; + const SbVec2s fpVpSize = this->viewportRegion.getViewportSizePixels(); + if (this->graphFingerprintValid && this->lastFpValid && + !this->sceneGraphDirty && this->scene == this->lastFpScene && + fpVpSize == this->lastFpViewport && this->devicePixelRatio == this->lastFpDpr) { + graphFp = this->graphFingerprint; + } + else { + // Recomputing computeGraphFingerprint() walks the ENTIRE scene-graph tree + // (graphFingerprintWalk, O(nodes) + geometry identity) and is measurable + // on a many-object scene (1000 boxes -> ~28 ms). It only needs to run + // when the retained main draw list actually changed. graphSceneDirty is + // set by a scene-root sensor that fires on ANY descendant notification, + // including the camera pose (FreeCAD keeps the camera inside the scene + // graph), so camera-orbit frames set it too -- and recomputing the full + // graph fingerprint there is pure waste: camera motion never changes the + // retained main-list content. Gate the expensive walk on the cheap + // draw-list fingerprint (computeSceneFingerprint hashes only the retained + // commands: world matrix + geometry pointers + counts). Camera-only + // frames produce the same draw-list fingerprint, so we keep the previous + // graph fingerprint (which is likewise camera-invariant) and the retained + // list replays instead of re-traversing. + const uint64_t drawFp = computeSceneFingerprint( + this->irAction, static_cast(this->mainCommandCount)); + if (this->drawFpValid && this->drawFpCached == drawFp && + this->scene == this->drawFpScene && + this->mainCommandCount == this->drawFpMainCount) { + graphFp = this->graphFingerprint; // draw list unchanged -> reuse + } + else { + graphFp = this->computeGraphFingerprint(); + this->drawFpCached = drawFp; + this->drawFpScene = this->scene; + this->drawFpMainCount = this->mainCommandCount; + this->drawFpValid = TRUE; + } + this->sceneGraphDirty = FALSE; + } + this->lastFpScene = this->scene; + this->lastFpViewport = fpVpSize; + this->lastFpDpr = this->devicePixelRatio; + this->lastFpValid = TRUE; + if (this->scene || this->camera || this->overlayScene + || this->decorationScene) { + if (irReplayEnabled() && this->graphFingerprintValid && + graphFp == this->graphFingerprint) { // Camera-only frame: the main graph, the viewport, and the // caller-published revision are unchanged, so the retained main IR draw // list is exactly what a full traversal would produce -- keep it (and // the geometry/texture caches keyed on it) and restamp the frame view // after the matrices are built below. + // The graph-fingerprint walk folds node-id of every non-camera-coupled + // reachable node, so a real edit -- a transform/matrix move, a geometry + // rebuild, an add/remove, a material/selection field write (SoShape:: + // notify() bumps its own id and drops the retained tessellation) -- + // re-bumps at least one folded id and therefore produces a DIFFERENT + // fingerprint, correctly forcing a re-traverse. Camera pose/headlight + // motion is excluded from the walk, so it leaves the fingerprint + // unchanged and replays. Relying on fingerprint equality (not the + // sensor dirty flag) is what makes this robust: FreeCAD keeps the + // camera inside the scene graph, so the "camera never dirties the + // scene sensor" assumption the dirty flag encodes is false here, and + // without this the retained main list would be re-traversed (O(scene)) + // every navigation frame even though the geometry is unchanged. irReplayed = TRUE; } else { @@ -1679,11 +1780,11 @@ SoVulkanRenderManagerP::prepareRenderParams(SbBool clearwindow, } this->rootChildrenValid = TRUE; } - const long applyT0 = wantCpuTiming ? vkRenderBreadcrumbNowUs() : 0; - action.apply(root); - if (wantCpuTiming) { - cpuApplyMs = (vkRenderBreadcrumbNowUs() - applyT0) * 0.001; - } + const long applyT0 = wantCpuTiming ? vkRenderBreadcrumbNowUs() : 0; + action.apply(root); + if (wantCpuTiming) { + cpuApplyMs = (vkRenderBreadcrumbNowUs() - applyT0) * 0.001; + } this->mainCommandCount = action.getDrawList().getNumCommands(); this->graphFingerprint = graphFp; @@ -1975,17 +2076,16 @@ SoVulkanRenderManagerP::prepareRenderParams(SbBool clearwindow, if (irReplayed) { // Camera-only frame: restamp the frame viewing matrix into every // non-overlay command that carried the previous traversal's viewing - // element (commands stamped by a sub-camera keep their own matrix), and - // re-derive the eye-space lighting entries that were filled with it. + // element (commands stamped by a sub-camera keep their own matrix). + // Lighting setups are world-space and need no re-derivation here. if (this->lastFrameViewValid) { const long replayT0 = wantCpuTiming ? vkRenderBreadcrumbNowUs() : 0; // SbMatrix stores exactly float[4][4] (16 contiguous floats), so a // full-storage bit-compare says whether the viewing matrix changed at // all. On a static camera (idle scene, no navigation) the replay // frame's view is bit-identical to the previous one: nothing to - // restamp and nothing to relight, so the O(N) per-command getValue + - // memcmp + matrix-copy loop (and the eye-space lighting restrike) is - // skipped entirely. + // restamp, so the O(N) per-command getValue + memcmp + matrix-copy + // loop is skipped entirely. if (std::memcmp(&this->lastFrameView[0][0], ¶ms.viewMatrix[0][0], sizeof(float) * 16) != 0) { SbMat lastView; @@ -2005,7 +2105,6 @@ SoVulkanRenderManagerP::prepareRenderParams(SbBool clearwindow, } } dbgRestamped = restamped; - list.restrikeLighting(this->lastFrameView, params.viewMatrix); this->lastFrameView = params.viewMatrix; } if (wantCpuTiming) { diff --git a/src/rendering/SoVulkanShared.h b/src/rendering/SoVulkanShared.h index 08d5ae8da29..1025059edd3 100644 --- a/src/rendering/SoVulkanShared.h +++ b/src/rendering/SoVulkanShared.h @@ -341,7 +341,7 @@ bufferTransition(VkCommandBuffer cmd, VkBuffer buffer, VkDeviceSize offset, // afterwards (the wait also retires any other in-flight work on the queue). inline bool withOneShotSubmit(VkDevice device, VkQueue queue, VkCommandPool pool, - const VkAllocationCallbacks * allocator, + const VkAllocationCallbacks * /*allocator*/, const std::function & record) { VkCommandBufferAllocateInfo allocInfo {}; diff --git a/src/rendering/vulkan/rt/ClosestHit.spv.h b/src/rendering/vulkan/rt/ClosestHit.spv.h index 7b2a6ff87cd..204f9e5275d 100644 --- a/src/rendering/vulkan/rt/ClosestHit.spv.h +++ b/src/rendering/vulkan/rt/ClosestHit.spv.h @@ -1,11 +1,11 @@ // 1116.4.0 #pragma once const uint32_t coin_vulkan_rt_closesthit_spirv[] = { - 0x07230203,0x00010500,0x0008000b,0x000001cc,0x00000000,0x00020011,0x0000117f,0x0006000a, + 0x07230203,0x00010500,0x0008000b,0x000001b8,0x00000000,0x00020011,0x0000117f,0x0006000a, 0x5f565053,0x5f52484b,0x5f796172,0x63617274,0x00676e69,0x0006000b,0x00000001,0x4c534c47, 0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,0x000f000f,0x000014c4, - 0x00000004,0x6e69616d,0x00000000,0x000000fe,0x0000010c,0x00000113,0x00000121,0x00000131, - 0x00000143,0x00000145,0x00000148,0x00000150,0x0000018e,0x00030003,0x00000002,0x000001cc, + 0x00000004,0x6e69616d,0x00000000,0x0000001d,0x00000106,0x00000114,0x0000011b,0x00000129, + 0x00000139,0x0000014b,0x0000014d,0x00000150,0x00000158,0x00030003,0x00000002,0x000001cc, 0x00060004,0x455f4c47,0x725f5458,0x745f7961,0x69636172,0x0000676e,0x00040005,0x00000004, 0x6e69616d,0x00000000,0x00050005,0x0000000d,0x614d5452,0x69726574,0x00006c61,0x00050006, 0x0000000d,0x00000000,0x66666964,0x00657375,0x00050006,0x0000000d,0x00000001,0x69626d61, @@ -21,387 +21,372 @@ const uint32_t coin_vulkan_rt_closesthit_spirv[] = { 0x7874725f,0x756f675f,0x64756172,0x33667628,0x3366763b,0x3366763b,0x7274733b,0x2d746375, 0x614d5452,0x69726574,0x762d6c61,0x762d3466,0x762d3466,0x762d3466,0x762d3466,0x762d3466, 0x385b3466,0x66762d5d,0x5d385b34,0x3466762d,0x2d5d385b,0x5b346676,0x762d5d38,0x385b3466, - 0x66762d5d,0x5d385b34,0x3466762d,0x3466762d,0x00003b31,0x00040005,0x00000010,0x50657965, - 0x0000736f,0x00050005,0x00000011,0x4e657965,0x616d726f,0x0000006c,0x00050005,0x00000012, - 0x65736162,0x6f6c6f43,0x00000072,0x00030005,0x00000013,0x0074616d,0x00030005,0x00000016, - 0x0000004e,0x00030005,0x00000019,0x00000056,0x00050005,0x00000032,0x4374696c,0x726f6c6f, - 0x00000000,0x00050005,0x00000039,0x6867696c,0x756f4374,0x0000746e,0x00030005,0x0000003e, - 0x00000069,0x00030005,0x0000004e,0x0000004c,0x00050005,0x00000054,0x65747461,0x7461756e, - 0x006e6f69,0x00050005,0x00000056,0x746f7073,0x74636146,0x0000726f,0x00050005,0x0000005f, - 0x6867696c,0x63655674,0x00726f74,0x00060005,0x00000066,0x74736964,0x65636e61,0x694c6f54, - 0x00746867,0x00030005,0x00000073,0x00747461,0x00040005,0x00000090,0x656e6f63,0x00726944, - 0x00050005,0x00000096,0x6d6f7266,0x6867694c,0x00000074,0x00040005,0x0000009e,0x746f7073, - 0x00736f43,0x00030005,0x000000b1,0x00006e4c,0x00040005,0x000000b4,0x746f644e,0x0000004c, - 0x00030005,0x000000b9,0x00000048,0x00040005,0x000000be,0x746f644e,0x00000048,0x00050005, - 0x000000c3,0x6e696873,0x73656e69,0x00000073,0x00060005,0x000000c9,0x63657073,0x72616c75, - 0x74636146,0x0000726f,0x00040005,0x000000d4,0x66666964,0x00657375,0x00050005,0x000000d8, - 0x63657073,0x72616c75,0x00000000,0x00060005,0x000000fc,0x6574616d,0x6c616972,0x65646e49, - 0x00000078,0x00090005,0x000000fe,0x495f6c67,0x6174736e,0x4365636e,0x6f747375,0x646e496d, - 0x58457865,0x00000054,0x00030005,0x00000101,0x0074616d,0x00050005,0x00000108,0x614d5452, - 0x69726574,0x00006c61,0x00050006,0x00000108,0x00000000,0x66666964,0x00657375,0x00050006, - 0x00000108,0x00000001,0x69626d61,0x00746e65,0x00060006,0x00000108,0x00000002,0x63657073, - 0x72616c75,0x00000000,0x00060006,0x00000108,0x00000003,0x73696d65,0x65766973,0x00000000, - 0x00050006,0x00000108,0x00000004,0x61726170,0x0000736d,0x00060006,0x00000108,0x00000005, - 0x6867696c,0x70795474,0x00000065,0x00060006,0x00000108,0x00000006,0x6867696c,0x6c6f4374, - 0x0000726f,0x00070006,0x00000108,0x00000007,0x6867696c,0x72694474,0x69746365,0x00006e6f, - 0x00070006,0x00000108,0x00000008,0x6867696c,0x736f5074,0x6f697469,0x0000006e,0x00080006, - 0x00000108,0x00000009,0x6867696c,0x74744174,0x61756e65,0x6e6f6974,0x00000000,0x00060006, - 0x00000108,0x0000000a,0x6867696c,0x6f705374,0x00000074,0x00070006,0x00000108,0x0000000b, - 0x61697274,0x656c676e,0x61746144,0x00000000,0x00040006,0x00000108,0x0000000c,0x00726270, - 0x00050005,0x0000010a,0x6574614d,0x6c616972,0x00000073,0x00060006,0x0000010a,0x00000000, - 0x6574616d,0x6c616972,0x00000073,0x00050005,0x0000010c,0x4274616d,0x65666675,0x00000072, - 0x00040005,0x00000112,0x6d697270,0x00000000,0x00060005,0x00000113,0x505f6c67,0x696d6972, - 0x65766974,0x00004449,0x00050005,0x00000116,0x6d726f6e,0x6e496c61,0x00786564,0x00040005, - 0x0000011d,0x4e6a626f,0x00000000,0x00050005,0x0000011f,0x6d726f4e,0x6f506c61,0x00006c6f, - 0x00070006,0x0000011f,0x00000000,0x61697274,0x656c676e,0x6d726f4e,0x00736c61,0x00070005, - 0x00000121,0x6d726f6e,0x6f506c61,0x75426c6f,0x72656666,0x00000000,0x00040005,0x0000012f, - 0x6c796150,0x0064616f,0x00050006,0x0000012f,0x00000000,0x6f6c6f63,0x00000072,0x00050006, - 0x0000012f,0x00000001,0x6d726f6e,0x00006c61,0x00050006,0x0000012f,0x00000002,0x54736f70, - 0x00000000,0x00050006,0x0000012f,0x00000003,0x6f666e69,0x00000000,0x00060006,0x0000012f, - 0x00000004,0x6c63636f,0x64656475,0x00000000,0x00040005,0x00000131,0x6c796170,0x0064616f, - 0x00050005,0x00000141,0x6c726f77,0x736f5064,0x00000000,0x00080005,0x00000143,0x575f6c67, - 0x646c726f,0x4f796152,0x69676972,0x5458456e,0x00000000,0x00080005,0x00000145,0x575f6c67, - 0x646c726f,0x44796152,0x63657269,0x6e6f6974,0x00545845,0x00060005,0x00000148,0x525f6c67, - 0x6d547961,0x58457861,0x00000054,0x00050005,0x0000014e,0x546a626f,0x726f576f,0x0000646c, - 0x00070005,0x00000150,0x4f5f6c67,0x63656a62,0x576f5474,0x646c726f,0x00545845,0x00040005, - 0x00000152,0x6c726f77,0x00004e64,0x00040005,0x00000162,0x61526f74,0x00000079,0x00040005, - 0x0000018a,0x50657965,0x0000736f,0x00050005,0x0000018c,0x6d617246,0x6f6c4265,0x00006b63, - 0x00050006,0x0000018c,0x00000000,0x69765f75,0x00007765,0x00070006,0x0000018c,0x00000001, - 0x69765f75,0x6e497765,0x73726576,0x00000065,0x00070006,0x0000018c,0x00000002,0x72705f75, - 0x6e496a6f,0x73726576,0x00000065,0x00060006,0x0000018c,0x00000003,0x61635f75,0x6172656d, - 0x00736f50,0x00060006,0x0000018c,0x00000004,0x69765f75,0x6f707765,0x00007472,0x00050006, - 0x0000018c,0x00000005,0x67625f75,0x00706f54,0x00060006,0x0000018c,0x00000006,0x67625f75, - 0x74746f42,0x00006d6f,0x00050006,0x0000018c,0x00000007,0x74735f75,0x00657461,0x00040005, - 0x0000018e,0x6d617266,0x00000065,0x00040005,0x00000199,0x4e657965,0x00000000,0x00030005, - 0x000001a6,0x00626772,0x00040005,0x000001af,0x61726170,0x0000006d,0x00040005,0x000001b1, - 0x61726170,0x0000006d,0x00040005,0x000001b3,0x61726170,0x0000006d,0x00040005,0x000001b7, - 0x61726170,0x0000006d,0x00040047,0x000000fe,0x0000000b,0x000014cf,0x00040047,0x00000102, - 0x00000006,0x00000010,0x00040047,0x00000103,0x00000006,0x00000010,0x00040047,0x00000104, - 0x00000006,0x00000010,0x00040047,0x00000105,0x00000006,0x00000010,0x00040047,0x00000106, - 0x00000006,0x00000010,0x00040047,0x00000107,0x00000006,0x00000010,0x00050048,0x00000108, - 0x00000000,0x00000023,0x00000000,0x00050048,0x00000108,0x00000001,0x00000023,0x00000010, - 0x00050048,0x00000108,0x00000002,0x00000023,0x00000020,0x00050048,0x00000108,0x00000003, - 0x00000023,0x00000030,0x00050048,0x00000108,0x00000004,0x00000023,0x00000040,0x00050048, - 0x00000108,0x00000005,0x00000023,0x00000050,0x00050048,0x00000108,0x00000006,0x00000023, - 0x000000d0,0x00050048,0x00000108,0x00000007,0x00000023,0x00000150,0x00050048,0x00000108, - 0x00000008,0x00000023,0x000001d0,0x00050048,0x00000108,0x00000009,0x00000023,0x00000250, - 0x00050048,0x00000108,0x0000000a,0x00000023,0x000002d0,0x00050048,0x00000108,0x0000000b, - 0x00000023,0x00000350,0x00050048,0x00000108,0x0000000c,0x00000023,0x00000360,0x00040047, - 0x00000109,0x00000006,0x00000370,0x00030047,0x0000010a,0x00000002,0x00050048,0x0000010a, - 0x00000000,0x00000023,0x00000000,0x00040047,0x0000010c,0x00000021,0x00000003,0x00040047, - 0x0000010c,0x00000022,0x00000000,0x00040047,0x00000113,0x0000000b,0x00000007,0x00040047, - 0x0000011e,0x00000006,0x00000010,0x00030047,0x0000011f,0x00000002,0x00040048,0x0000011f, - 0x00000000,0x00000018,0x00050048,0x0000011f,0x00000000,0x00000023,0x00000000,0x00030047, - 0x00000121,0x00000018,0x00040047,0x00000121,0x00000021,0x00000007,0x00040047,0x00000121, - 0x00000022,0x00000000,0x00040047,0x00000143,0x0000000b,0x000014c9,0x00040047,0x00000145, - 0x0000000b,0x000014ca,0x00040047,0x00000148,0x0000000b,0x000014ce,0x00040047,0x00000150, - 0x0000000b,0x000014d2,0x00030047,0x0000018c,0x00000002,0x00040048,0x0000018c,0x00000000, - 0x00000005,0x00050048,0x0000018c,0x00000000,0x00000007,0x00000010,0x00050048,0x0000018c, - 0x00000000,0x00000023,0x00000000,0x00040048,0x0000018c,0x00000001,0x00000005,0x00050048, - 0x0000018c,0x00000001,0x00000007,0x00000010,0x00050048,0x0000018c,0x00000001,0x00000023, - 0x00000040,0x00040048,0x0000018c,0x00000002,0x00000005,0x00050048,0x0000018c,0x00000002, - 0x00000007,0x00000010,0x00050048,0x0000018c,0x00000002,0x00000023,0x00000080,0x00050048, - 0x0000018c,0x00000003,0x00000023,0x000000c0,0x00050048,0x0000018c,0x00000004,0x00000023, - 0x000000d0,0x00050048,0x0000018c,0x00000005,0x00000023,0x000000e0,0x00050048,0x0000018c, - 0x00000006,0x00000023,0x000000f0,0x00050048,0x0000018c,0x00000007,0x00000023,0x00000100, - 0x00040047,0x0000018e,0x00000021,0x00000002,0x00040047,0x0000018e,0x00000022,0x00000000, - 0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00030016,0x00000006,0x00000020, - 0x00040017,0x00000007,0x00000006,0x00000003,0x00040020,0x00000008,0x00000007,0x00000007, - 0x00040017,0x00000009,0x00000006,0x00000004,0x00040015,0x0000000a,0x00000020,0x00000000, - 0x0004002b,0x0000000a,0x0000000b,0x00000008,0x0004001c,0x0000000c,0x00000009,0x0000000b, - 0x000f001e,0x0000000d,0x00000009,0x00000009,0x00000009,0x00000009,0x00000009,0x0000000c, - 0x0000000c,0x0000000c,0x0000000c,0x0000000c,0x0000000c,0x00000009,0x00000009,0x00040020, - 0x0000000e,0x00000007,0x0000000d,0x00070021,0x0000000f,0x00000007,0x00000008,0x00000008, - 0x00000008,0x0000000e,0x00020014,0x0000001d,0x00040015,0x0000001e,0x00000020,0x00000001, - 0x0004002b,0x0000001e,0x0000001f,0x00000004,0x0004002b,0x0000000a,0x00000020,0x00000001, - 0x00040020,0x00000021,0x00000007,0x00000006,0x0004002b,0x00000006,0x00000024,0x3f000000, - 0x0004002b,0x00000006,0x0000002b,0x00000000,0x0004002b,0x0000001e,0x00000033,0x00000001, - 0x00040020,0x00000034,0x00000007,0x00000009,0x00040020,0x00000038,0x00000007,0x0000001e, - 0x0004002b,0x0000000a,0x0000003a,0x00000002,0x0004002b,0x0000001e,0x0000003f,0x00000000, - 0x0004002b,0x0000001e,0x00000046,0x00000008,0x0004002b,0x0000001e,0x0000004f,0x00000007, - 0x0004002b,0x00000006,0x00000055,0x3f800000,0x0004002b,0x0000001e,0x00000057,0x00000005, - 0x0004002b,0x0000000a,0x00000059,0x00000000,0x0004002b,0x00000006,0x0000006a,0x38d1b717, - 0x0004002b,0x0000001e,0x00000074,0x00000009,0x0004002b,0x00000006,0x0000008c,0x3fc00000, - 0x0004002b,0x0000001e,0x000000a3,0x0000000a,0x0004002b,0x00000006,0x000000c6,0x43000000, - 0x0004002b,0x0000001e,0x000000d9,0x00000002,0x0004002b,0x0000001e,0x000000df,0x00000006, - 0x0004002b,0x0000001e,0x000000f1,0x00000003,0x00040020,0x000000fb,0x00000007,0x0000000a, - 0x00040020,0x000000fd,0x00000001,0x0000001e,0x0004003b,0x000000fd,0x000000fe,0x00000001, - 0x0004001c,0x00000102,0x00000009,0x0000000b,0x0004001c,0x00000103,0x00000009,0x0000000b, - 0x0004001c,0x00000104,0x00000009,0x0000000b,0x0004001c,0x00000105,0x00000009,0x0000000b, - 0x0004001c,0x00000106,0x00000009,0x0000000b,0x0004001c,0x00000107,0x00000009,0x0000000b, - 0x000f001e,0x00000108,0x00000009,0x00000009,0x00000009,0x00000009,0x00000009,0x00000102, - 0x00000103,0x00000104,0x00000105,0x00000106,0x00000107,0x00000009,0x00000009,0x0003001d, - 0x00000109,0x00000108,0x0003001e,0x0000010a,0x00000109,0x00040020,0x0000010b,0x0000000c, - 0x0000010a,0x0004003b,0x0000010b,0x0000010c,0x0000000c,0x00040020,0x0000010e,0x0000000c, - 0x00000108,0x0004003b,0x000000fd,0x00000113,0x00000001,0x0004002b,0x0000001e,0x00000117, - 0x0000000b,0x0003001d,0x0000011e,0x00000009,0x0003001e,0x0000011f,0x0000011e,0x00040020, - 0x00000120,0x0000000c,0x0000011f,0x0004003b,0x00000120,0x00000121,0x0000000c,0x00040020, - 0x00000123,0x0000000c,0x00000009,0x0004002b,0x00000006,0x0000012a,0x2b8cbccc,0x00040017, - 0x0000012e,0x0000000a,0x00000004,0x0007001e,0x0000012f,0x00000009,0x00000009,0x00000009, - 0x0000012e,0x0000000a,0x00040020,0x00000130,0x000014da,0x0000012f,0x0004003b,0x00000130, - 0x00000131,0x000014da,0x0007002c,0x00000009,0x00000132,0x0000002b,0x0000002b,0x0000002b, - 0x0000002b,0x00040020,0x00000133,0x000014da,0x00000009,0x0004002b,0x0000000a,0x00000138, - 0x00000003,0x00040020,0x00000139,0x000014da,0x0000000a,0x00040020,0x0000013d,0x000014da, - 0x0000012e,0x00040020,0x00000142,0x00000001,0x00000007,0x0004003b,0x00000142,0x00000143, - 0x00000001,0x0004003b,0x00000142,0x00000145,0x00000001,0x00040020,0x00000147,0x00000001, - 0x00000006,0x0004003b,0x00000147,0x00000148,0x00000001,0x00040018,0x0000014c,0x00000007, - 0x00000004,0x00040020,0x0000014d,0x00000007,0x0000014c,0x00040020,0x0000014f,0x00000001, - 0x0000014c,0x0004003b,0x0000014f,0x00000150,0x00000001,0x00040018,0x00000154,0x00000007, - 0x00000003,0x00040018,0x0000018b,0x00000009,0x00000004,0x000a001e,0x0000018c,0x0000018b, - 0x0000018b,0x0000018b,0x00000009,0x00000009,0x00000009,0x00000009,0x00000009,0x00040020, - 0x0000018d,0x00000002,0x0000018c,0x0004003b,0x0000018d,0x0000018e,0x00000002,0x00040020, - 0x0000018f,0x00000002,0x0000018b,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003, - 0x000200f8,0x00000005,0x0004003b,0x000000fb,0x000000fc,0x00000007,0x0004003b,0x0000000e, - 0x00000101,0x00000007,0x0004003b,0x000000fb,0x00000112,0x00000007,0x0004003b,0x000000fb, - 0x00000116,0x00000007,0x0004003b,0x00000008,0x0000011d,0x00000007,0x0004003b,0x00000008, - 0x00000141,0x00000007,0x0004003b,0x0000014d,0x0000014e,0x00000007,0x0004003b,0x00000008, - 0x00000152,0x00000007,0x0004003b,0x00000008,0x00000162,0x00000007,0x0004003b,0x00000008, - 0x0000018a,0x00000007,0x0004003b,0x00000008,0x00000199,0x00000007,0x0004003b,0x00000008, - 0x000001a6,0x00000007,0x0004003b,0x00000008,0x000001af,0x00000007,0x0004003b,0x00000008, - 0x000001b1,0x00000007,0x0004003b,0x00000008,0x000001b3,0x00000007,0x0004003b,0x0000000e, - 0x000001b7,0x00000007,0x0004003d,0x0000001e,0x000000ff,0x000000fe,0x0004007c,0x0000000a, - 0x00000100,0x000000ff,0x0003003e,0x000000fc,0x00000100,0x0004003d,0x0000000a,0x0000010d, - 0x000000fc,0x00060041,0x0000010e,0x0000010f,0x0000010c,0x0000003f,0x0000010d,0x0004003d, - 0x00000108,0x00000110,0x0000010f,0x00040190,0x0000000d,0x00000111,0x00000110,0x0003003e, - 0x00000101,0x00000111,0x0004003d,0x0000001e,0x00000114,0x00000113,0x0004007c,0x0000000a, - 0x00000115,0x00000114,0x0003003e,0x00000112,0x00000115,0x00060041,0x00000021,0x00000118, - 0x00000101,0x00000117,0x00000059,0x0004003d,0x00000006,0x00000119,0x00000118,0x0004006d, - 0x0000000a,0x0000011a,0x00000119,0x0004003d,0x0000000a,0x0000011b,0x00000112,0x00050080, - 0x0000000a,0x0000011c,0x0000011a,0x0000011b,0x0003003e,0x00000116,0x0000011c,0x0004003d, - 0x0000000a,0x00000122,0x00000116,0x00060041,0x00000123,0x00000124,0x00000121,0x0000003f, - 0x00000122,0x0004003d,0x00000009,0x00000125,0x00000124,0x0008004f,0x00000007,0x00000126, - 0x00000125,0x00000125,0x00000000,0x00000001,0x00000002,0x0003003e,0x0000011d,0x00000126, - 0x0004003d,0x00000007,0x00000127,0x0000011d,0x0004003d,0x00000007,0x00000128,0x0000011d, - 0x00050094,0x00000006,0x00000129,0x00000127,0x00000128,0x000500b8,0x0000001d,0x0000012b, - 0x00000129,0x0000012a,0x000300f7,0x0000012d,0x00000000,0x000400fa,0x0000012b,0x0000012c, - 0x0000012d,0x000200f8,0x0000012c,0x00050041,0x00000133,0x00000134,0x00000131,0x0000003f, - 0x0003003e,0x00000134,0x00000132,0x00050041,0x00000133,0x00000135,0x00000131,0x00000033, - 0x0003003e,0x00000135,0x00000132,0x00050041,0x00000133,0x00000136,0x00000131,0x000000d9, - 0x0003003e,0x00000136,0x00000132,0x0004003d,0x0000000a,0x00000137,0x000000fc,0x00060041, - 0x00000139,0x0000013a,0x00000131,0x000000f1,0x00000138,0x0004003d,0x0000000a,0x0000013b, - 0x0000013a,0x00070050,0x0000012e,0x0000013c,0x00000137,0x00000059,0x00000059,0x0000013b, - 0x00050041,0x0000013d,0x0000013e,0x00000131,0x000000f1,0x0003003e,0x0000013e,0x0000013c, - 0x00050041,0x00000139,0x0000013f,0x00000131,0x0000001f,0x0003003e,0x0000013f,0x00000059, - 0x000100fd,0x000200f8,0x0000012d,0x0004003d,0x00000007,0x00000144,0x00000143,0x0004003d, - 0x00000007,0x00000146,0x00000145,0x0004003d,0x00000006,0x00000149,0x00000148,0x0005008e, - 0x00000007,0x0000014a,0x00000146,0x00000149,0x00050081,0x00000007,0x0000014b,0x00000144, - 0x0000014a,0x0003003e,0x00000141,0x0000014b,0x0004003d,0x0000014c,0x00000151,0x00000150, - 0x0003003e,0x0000014e,0x00000151,0x0004003d,0x0000014c,0x00000153,0x0000014e,0x00050051, - 0x00000007,0x00000155,0x00000153,0x00000000,0x00050051,0x00000007,0x00000156,0x00000153, - 0x00000001,0x00050051,0x00000007,0x00000157,0x00000153,0x00000002,0x00060050,0x00000154, - 0x00000158,0x00000155,0x00000156,0x00000157,0x0006000c,0x00000154,0x00000159,0x00000001, - 0x00000022,0x00000158,0x00040054,0x00000154,0x0000015a,0x00000159,0x00050051,0x00000007, - 0x0000015b,0x0000015a,0x00000000,0x00050051,0x00000007,0x0000015c,0x0000015a,0x00000001, - 0x00050051,0x00000007,0x0000015d,0x0000015a,0x00000002,0x00060050,0x00000154,0x0000015e, - 0x0000015b,0x0000015c,0x0000015d,0x0004003d,0x00000007,0x0000015f,0x0000011d,0x00050091, - 0x00000007,0x00000160,0x0000015e,0x0000015f,0x0006000c,0x00000007,0x00000161,0x00000001, - 0x00000045,0x00000160,0x0003003e,0x00000152,0x00000161,0x0004003d,0x00000007,0x00000163, - 0x00000143,0x0004003d,0x00000007,0x00000164,0x00000141,0x00050083,0x00000007,0x00000165, - 0x00000163,0x00000164,0x0006000c,0x00000007,0x00000166,0x00000001,0x00000045,0x00000165, - 0x0003003e,0x00000162,0x00000166,0x0004003d,0x00000007,0x00000167,0x00000152,0x0004003d, - 0x00000007,0x00000168,0x00000162,0x00050094,0x00000006,0x00000169,0x00000167,0x00000168, - 0x000500b8,0x0000001d,0x0000016a,0x00000169,0x0000002b,0x000300f7,0x0000016c,0x00000000, - 0x000400fa,0x0000016a,0x0000016b,0x0000016c,0x000200f8,0x0000016b,0x0004003d,0x00000007, - 0x0000016d,0x00000152,0x0004007f,0x00000007,0x0000016e,0x0000016d,0x0003003e,0x00000152, - 0x0000016e,0x000200f9,0x0000016c,0x000200f8,0x0000016c,0x0004003d,0x00000007,0x0000016f, - 0x00000152,0x00050051,0x00000006,0x00000170,0x0000016f,0x00000000,0x00050051,0x00000006, - 0x00000171,0x0000016f,0x00000001,0x00050051,0x00000006,0x00000172,0x0000016f,0x00000002, - 0x00070050,0x00000009,0x00000173,0x00000170,0x00000171,0x00000172,0x00000055,0x00050041, - 0x00000133,0x00000174,0x00000131,0x00000033,0x0003003e,0x00000174,0x00000173,0x0004003d, - 0x00000007,0x00000175,0x00000141,0x0004003d,0x00000006,0x00000176,0x00000148,0x00050051, - 0x00000006,0x00000177,0x00000175,0x00000000,0x00050051,0x00000006,0x00000178,0x00000175, - 0x00000001,0x00050051,0x00000006,0x00000179,0x00000175,0x00000002,0x00070050,0x00000009, - 0x0000017a,0x00000177,0x00000178,0x00000179,0x00000176,0x00050041,0x00000133,0x0000017b, - 0x00000131,0x000000d9,0x0003003e,0x0000017b,0x0000017a,0x0004003d,0x0000000a,0x0000017c, - 0x000000fc,0x00060041,0x00000021,0x0000017d,0x00000101,0x0000001f,0x00000059,0x0004003d, - 0x00000006,0x0000017e,0x0000017d,0x000500ba,0x0000001d,0x0000017f,0x0000017e,0x0000002b, - 0x000600a9,0x0000000a,0x00000180,0x0000017f,0x00000020,0x00000059,0x00060041,0x00000139, - 0x00000181,0x00000131,0x000000f1,0x00000138,0x0004003d,0x0000000a,0x00000182,0x00000181, - 0x00070050,0x0000012e,0x00000183,0x0000017c,0x00000020,0x00000180,0x00000182,0x00050041, - 0x0000013d,0x00000184,0x00000131,0x000000f1,0x0003003e,0x00000184,0x00000183,0x00060041, - 0x00000139,0x00000185,0x00000131,0x000000f1,0x00000138,0x0004003d,0x0000000a,0x00000186, - 0x00000185,0x000500aa,0x0000001d,0x00000187,0x00000186,0x00000059,0x000300f7,0x00000189, - 0x00000000,0x000400fa,0x00000187,0x00000188,0x000001c3,0x000200f8,0x00000188,0x00050041, - 0x0000018f,0x00000190,0x0000018e,0x0000003f,0x0004003d,0x0000018b,0x00000191,0x00000190, - 0x0004003d,0x00000007,0x00000192,0x00000141,0x00050051,0x00000006,0x00000193,0x00000192, - 0x00000000,0x00050051,0x00000006,0x00000194,0x00000192,0x00000001,0x00050051,0x00000006, - 0x00000195,0x00000192,0x00000002,0x00070050,0x00000009,0x00000196,0x00000193,0x00000194, - 0x00000195,0x00000055,0x00050091,0x00000009,0x00000197,0x00000191,0x00000196,0x0008004f, - 0x00000007,0x00000198,0x00000197,0x00000197,0x00000000,0x00000001,0x00000002,0x0003003e, - 0x0000018a,0x00000198,0x00050041,0x0000018f,0x0000019a,0x0000018e,0x0000003f,0x0004003d, - 0x0000018b,0x0000019b,0x0000019a,0x00050051,0x00000009,0x0000019c,0x0000019b,0x00000000, - 0x0008004f,0x00000007,0x0000019d,0x0000019c,0x0000019c,0x00000000,0x00000001,0x00000002, - 0x00050051,0x00000009,0x0000019e,0x0000019b,0x00000001,0x0008004f,0x00000007,0x0000019f, - 0x0000019e,0x0000019e,0x00000000,0x00000001,0x00000002,0x00050051,0x00000009,0x000001a0, - 0x0000019b,0x00000002,0x0008004f,0x00000007,0x000001a1,0x000001a0,0x000001a0,0x00000000, - 0x00000001,0x00000002,0x00060050,0x00000154,0x000001a2,0x0000019d,0x0000019f,0x000001a1, - 0x0004003d,0x00000007,0x000001a3,0x00000152,0x00050091,0x00000007,0x000001a4,0x000001a2, - 0x000001a3,0x0006000c,0x00000007,0x000001a5,0x00000001,0x00000045,0x000001a4,0x0003003e, - 0x00000199,0x000001a5,0x00050041,0x00000034,0x000001a7,0x00000101,0x0000003f,0x0004003d, - 0x00000009,0x000001a8,0x000001a7,0x0008004f,0x00000007,0x000001a9,0x000001a8,0x000001a8, - 0x00000000,0x00000001,0x00000002,0x0003003e,0x000001a6,0x000001a9,0x00060041,0x00000021, - 0x000001aa,0x00000101,0x0000001f,0x00000138,0x0004003d,0x00000006,0x000001ab,0x000001aa, - 0x000500ba,0x0000001d,0x000001ac,0x000001ab,0x00000024,0x000300f7,0x000001ae,0x00000000, - 0x000400fa,0x000001ac,0x000001ad,0x000001ae,0x000200f8,0x000001ad,0x0004003d,0x00000007, - 0x000001b0,0x0000018a,0x0003003e,0x000001af,0x000001b0,0x0004003d,0x00000007,0x000001b2, - 0x00000199,0x0003003e,0x000001b1,0x000001b2,0x00050041,0x00000034,0x000001b4,0x00000101, - 0x0000003f,0x0004003d,0x00000009,0x000001b5,0x000001b4,0x0008004f,0x00000007,0x000001b6, - 0x000001b5,0x000001b5,0x00000000,0x00000001,0x00000002,0x0003003e,0x000001b3,0x000001b6, - 0x0004003d,0x0000000d,0x000001b8,0x00000101,0x0003003e,0x000001b7,0x000001b8,0x00080039, - 0x00000007,0x000001b9,0x00000014,0x000001af,0x000001b1,0x000001b3,0x000001b7,0x0003003e, - 0x000001a6,0x000001b9,0x000200f9,0x000001ae,0x000200f8,0x000001ae,0x0004003d,0x00000007, - 0x000001ba,0x000001a6,0x00060050,0x00000007,0x000001bb,0x0000002b,0x0000002b,0x0000002b, - 0x00060050,0x00000007,0x000001bc,0x00000055,0x00000055,0x00000055,0x0008000c,0x00000007, - 0x000001bd,0x00000001,0x0000002b,0x000001ba,0x000001bb,0x000001bc,0x00050051,0x00000006, - 0x000001be,0x000001bd,0x00000000,0x00050051,0x00000006,0x000001bf,0x000001bd,0x00000001, - 0x00050051,0x00000006,0x000001c0,0x000001bd,0x00000002,0x00070050,0x00000009,0x000001c1, - 0x000001be,0x000001bf,0x000001c0,0x00000055,0x00050041,0x00000133,0x000001c2,0x00000131, - 0x0000003f,0x0003003e,0x000001c2,0x000001c1,0x000200f9,0x00000189,0x000200f8,0x000001c3, - 0x00050041,0x00000034,0x000001c4,0x00000101,0x000000f1,0x0004003d,0x00000009,0x000001c5, - 0x000001c4,0x0008004f,0x00000007,0x000001c6,0x000001c5,0x000001c5,0x00000000,0x00000001, - 0x00000002,0x00050051,0x00000006,0x000001c7,0x000001c6,0x00000000,0x00050051,0x00000006, - 0x000001c8,0x000001c6,0x00000001,0x00050051,0x00000006,0x000001c9,0x000001c6,0x00000002, - 0x00070050,0x00000009,0x000001ca,0x000001c7,0x000001c8,0x000001c9,0x00000055,0x00050041, - 0x00000133,0x000001cb,0x00000131,0x0000003f,0x0003003e,0x000001cb,0x000001ca,0x000200f9, - 0x00000189,0x000200f8,0x00000189,0x000100fd,0x00010038,0x00050036,0x00000007,0x00000014, - 0x00000000,0x0000000f,0x00030037,0x00000008,0x00000010,0x00030037,0x00000008,0x00000011, - 0x00030037,0x00000008,0x00000012,0x00030037,0x0000000e,0x00000013,0x000200f8,0x00000015, - 0x0004003b,0x00000008,0x00000016,0x00000007,0x0004003b,0x00000008,0x00000019,0x00000007, - 0x0004003b,0x00000008,0x00000032,0x00000007,0x0004003b,0x00000038,0x00000039,0x00000007, - 0x0004003b,0x00000038,0x0000003e,0x00000007,0x0004003b,0x00000008,0x0000004e,0x00000007, - 0x0004003b,0x00000021,0x00000054,0x00000007,0x0004003b,0x00000021,0x00000056,0x00000007, - 0x0004003b,0x00000008,0x0000005f,0x00000007,0x0004003b,0x00000021,0x00000066,0x00000007, - 0x0004003b,0x00000008,0x00000073,0x00000007,0x0004003b,0x00000008,0x00000090,0x00000007, - 0x0004003b,0x00000008,0x00000096,0x00000007,0x0004003b,0x00000021,0x0000009e,0x00000007, - 0x0004003b,0x00000008,0x000000b1,0x00000007,0x0004003b,0x00000021,0x000000b4,0x00000007, - 0x0004003b,0x00000008,0x000000b9,0x00000007,0x0004003b,0x00000021,0x000000be,0x00000007, - 0x0004003b,0x00000021,0x000000c3,0x00000007,0x0004003b,0x00000021,0x000000c9,0x00000007, - 0x0004003b,0x00000021,0x000000cc,0x00000007,0x0004003b,0x00000008,0x000000d4,0x00000007, - 0x0004003b,0x00000008,0x000000d8,0x00000007,0x0004003d,0x00000007,0x00000017,0x00000011, - 0x0006000c,0x00000007,0x00000018,0x00000001,0x00000045,0x00000017,0x0003003e,0x00000016, - 0x00000018,0x0004003d,0x00000007,0x0000001a,0x00000010,0x0004007f,0x00000007,0x0000001b, - 0x0000001a,0x0006000c,0x00000007,0x0000001c,0x00000001,0x00000045,0x0000001b,0x0003003e, - 0x00000019,0x0000001c,0x00060041,0x00000021,0x00000022,0x00000013,0x0000001f,0x00000020, - 0x0004003d,0x00000006,0x00000023,0x00000022,0x000500ba,0x0000001d,0x00000025,0x00000023, - 0x00000024,0x000300f7,0x00000027,0x00000000,0x000400fa,0x00000025,0x00000026,0x00000027, - 0x000200f8,0x00000026,0x0004003d,0x00000007,0x00000028,0x00000016,0x0004003d,0x00000007, - 0x00000029,0x00000019,0x00050094,0x00000006,0x0000002a,0x00000028,0x00000029,0x000500b8, - 0x0000001d,0x0000002c,0x0000002a,0x0000002b,0x000200f9,0x00000027,0x000200f8,0x00000027, - 0x000700f5,0x0000001d,0x0000002d,0x00000025,0x00000015,0x0000002c,0x00000026,0x000300f7, - 0x0000002f,0x00000000,0x000400fa,0x0000002d,0x0000002e,0x0000002f,0x000200f8,0x0000002e, - 0x0004003d,0x00000007,0x00000030,0x00000016,0x0004007f,0x00000007,0x00000031,0x00000030, - 0x0003003e,0x00000016,0x00000031,0x000200f9,0x0000002f,0x000200f8,0x0000002f,0x00050041, - 0x00000034,0x00000035,0x00000013,0x00000033,0x0004003d,0x00000009,0x00000036,0x00000035, - 0x0008004f,0x00000007,0x00000037,0x00000036,0x00000036,0x00000000,0x00000001,0x00000002, - 0x0003003e,0x00000032,0x00000037,0x00060041,0x00000021,0x0000003b,0x00000013,0x0000001f, - 0x0000003a,0x0004003d,0x00000006,0x0000003c,0x0000003b,0x0004006e,0x0000001e,0x0000003d, - 0x0000003c,0x0003003e,0x00000039,0x0000003d,0x0003003e,0x0000003e,0x0000003f,0x000200f9, - 0x00000040,0x000200f8,0x00000040,0x000400f6,0x00000042,0x00000043,0x00000000,0x000200f9, - 0x00000044,0x000200f8,0x00000044,0x0004003d,0x0000001e,0x00000045,0x0000003e,0x000500b1, - 0x0000001d,0x00000047,0x00000045,0x00000046,0x000400fa,0x00000047,0x00000041,0x00000042, - 0x000200f8,0x00000041,0x0004003d,0x0000001e,0x00000048,0x0000003e,0x0004003d,0x0000001e, - 0x00000049,0x00000039,0x000500af,0x0000001d,0x0000004a,0x00000048,0x00000049,0x000300f7, - 0x0000004c,0x00000000,0x000400fa,0x0000004a,0x0000004b,0x0000004c,0x000200f8,0x0000004b, - 0x000200f9,0x00000042,0x000200f8,0x0000004c,0x0004003d,0x0000001e,0x00000050,0x0000003e, - 0x00060041,0x00000034,0x00000051,0x00000013,0x0000004f,0x00000050,0x0004003d,0x00000009, - 0x00000052,0x00000051,0x0008004f,0x00000007,0x00000053,0x00000052,0x00000052,0x00000000, - 0x00000001,0x00000002,0x0003003e,0x0000004e,0x00000053,0x0003003e,0x00000054,0x00000055, - 0x0003003e,0x00000056,0x00000055,0x0004003d,0x0000001e,0x00000058,0x0000003e,0x00070041, - 0x00000021,0x0000005a,0x00000013,0x00000057,0x00000058,0x00000059,0x0004003d,0x00000006, - 0x0000005b,0x0000005a,0x000500ba,0x0000001d,0x0000005c,0x0000005b,0x00000024,0x000300f7, - 0x0000005e,0x00000000,0x000400fa,0x0000005c,0x0000005d,0x0000005e,0x000200f8,0x0000005d, - 0x0004003d,0x0000001e,0x00000060,0x0000003e,0x00060041,0x00000034,0x00000061,0x00000013, - 0x00000046,0x00000060,0x0004003d,0x00000009,0x00000062,0x00000061,0x0008004f,0x00000007, - 0x00000063,0x00000062,0x00000062,0x00000000,0x00000001,0x00000002,0x0004003d,0x00000007, - 0x00000064,0x00000010,0x00050083,0x00000007,0x00000065,0x00000063,0x00000064,0x0003003e, - 0x0000005f,0x00000065,0x0004003d,0x00000007,0x00000067,0x0000005f,0x0006000c,0x00000006, - 0x00000068,0x00000001,0x00000042,0x00000067,0x0003003e,0x00000066,0x00000068,0x0004003d, - 0x00000006,0x00000069,0x00000066,0x000500bc,0x0000001d,0x0000006b,0x00000069,0x0000006a, - 0x000300f7,0x0000006d,0x00000000,0x000400fa,0x0000006b,0x0000006c,0x0000006d,0x000200f8, - 0x0000006c,0x000200f9,0x00000043,0x000200f8,0x0000006d,0x0004003d,0x00000007,0x0000006f, - 0x0000005f,0x0004003d,0x00000006,0x00000070,0x00000066,0x00060050,0x00000007,0x00000071, - 0x00000070,0x00000070,0x00000070,0x00050088,0x00000007,0x00000072,0x0000006f,0x00000071, - 0x0003003e,0x0000004e,0x00000072,0x0004003d,0x0000001e,0x00000075,0x0000003e,0x00060041, - 0x00000034,0x00000076,0x00000013,0x00000074,0x00000075,0x0004003d,0x00000009,0x00000077, - 0x00000076,0x0008004f,0x00000007,0x00000078,0x00000077,0x00000077,0x00000000,0x00000001, - 0x00000002,0x0003003e,0x00000073,0x00000078,0x00050041,0x00000021,0x00000079,0x00000073, - 0x0000003a,0x0004003d,0x00000006,0x0000007a,0x00000079,0x00050041,0x00000021,0x0000007b, - 0x00000073,0x00000020,0x0004003d,0x00000006,0x0000007c,0x0000007b,0x0004003d,0x00000006, - 0x0000007d,0x00000066,0x00050085,0x00000006,0x0000007e,0x0000007c,0x0000007d,0x00050081, - 0x00000006,0x0000007f,0x0000007a,0x0000007e,0x00050041,0x00000021,0x00000080,0x00000073, - 0x00000059,0x0004003d,0x00000006,0x00000081,0x00000080,0x0004003d,0x00000006,0x00000082, - 0x00000066,0x00050085,0x00000006,0x00000083,0x00000081,0x00000082,0x0004003d,0x00000006, - 0x00000084,0x00000066,0x00050085,0x00000006,0x00000085,0x00000083,0x00000084,0x00050081, - 0x00000006,0x00000086,0x0000007f,0x00000085,0x0007000c,0x00000006,0x00000087,0x00000001, - 0x00000028,0x00000086,0x0000006a,0x00050088,0x00000006,0x00000088,0x00000055,0x00000087, - 0x0003003e,0x00000054,0x00000088,0x0004003d,0x0000001e,0x00000089,0x0000003e,0x00070041, - 0x00000021,0x0000008a,0x00000013,0x00000057,0x00000089,0x00000059,0x0004003d,0x00000006, - 0x0000008b,0x0000008a,0x000500ba,0x0000001d,0x0000008d,0x0000008b,0x0000008c,0x000300f7, - 0x0000008f,0x00000000,0x000400fa,0x0000008d,0x0000008e,0x0000008f,0x000200f8,0x0000008e, - 0x0004003d,0x0000001e,0x00000091,0x0000003e,0x00060041,0x00000034,0x00000092,0x00000013, - 0x0000004f,0x00000091,0x0004003d,0x00000009,0x00000093,0x00000092,0x0008004f,0x00000007, - 0x00000094,0x00000093,0x00000093,0x00000000,0x00000001,0x00000002,0x0006000c,0x00000007, - 0x00000095,0x00000001,0x00000045,0x00000094,0x0003003e,0x00000090,0x00000095,0x0004003d, - 0x00000007,0x00000097,0x00000010,0x0004003d,0x0000001e,0x00000098,0x0000003e,0x00060041, - 0x00000034,0x00000099,0x00000013,0x00000046,0x00000098,0x0004003d,0x00000009,0x0000009a, - 0x00000099,0x0008004f,0x00000007,0x0000009b,0x0000009a,0x0000009a,0x00000000,0x00000001, - 0x00000002,0x00050083,0x00000007,0x0000009c,0x00000097,0x0000009b,0x0006000c,0x00000007, - 0x0000009d,0x00000001,0x00000045,0x0000009c,0x0003003e,0x00000096,0x0000009d,0x0004003d, - 0x00000007,0x0000009f,0x00000090,0x0004003d,0x00000007,0x000000a0,0x00000096,0x00050094, - 0x00000006,0x000000a1,0x0000009f,0x000000a0,0x0003003e,0x0000009e,0x000000a1,0x0004003d, - 0x00000006,0x000000a2,0x0000009e,0x0004003d,0x0000001e,0x000000a4,0x0000003e,0x00070041, - 0x00000021,0x000000a5,0x00000013,0x000000a3,0x000000a4,0x00000059,0x0004003d,0x00000006, - 0x000000a6,0x000000a5,0x000500b8,0x0000001d,0x000000a7,0x000000a2,0x000000a6,0x000300f7, - 0x000000a9,0x00000000,0x000400fa,0x000000a7,0x000000a8,0x000000a9,0x000200f8,0x000000a8, - 0x000200f9,0x00000043,0x000200f8,0x000000a9,0x0004003d,0x00000006,0x000000ab,0x0000009e, - 0x0007000c,0x00000006,0x000000ac,0x00000001,0x00000028,0x000000ab,0x0000002b,0x0004003d, - 0x0000001e,0x000000ad,0x0000003e,0x00070041,0x00000021,0x000000ae,0x00000013,0x000000a3, - 0x000000ad,0x00000020,0x0004003d,0x00000006,0x000000af,0x000000ae,0x0007000c,0x00000006, - 0x000000b0,0x00000001,0x0000001a,0x000000ac,0x000000af,0x0003003e,0x00000056,0x000000b0, - 0x000200f9,0x0000008f,0x000200f8,0x0000008f,0x000200f9,0x0000005e,0x000200f8,0x0000005e, - 0x0004003d,0x00000007,0x000000b2,0x0000004e,0x0006000c,0x00000007,0x000000b3,0x00000001, - 0x00000045,0x000000b2,0x0003003e,0x000000b1,0x000000b3,0x0004003d,0x00000007,0x000000b5, - 0x00000016,0x0004003d,0x00000007,0x000000b6,0x000000b1,0x00050094,0x00000006,0x000000b7, - 0x000000b5,0x000000b6,0x0007000c,0x00000006,0x000000b8,0x00000001,0x00000028,0x000000b7, - 0x0000002b,0x0003003e,0x000000b4,0x000000b8,0x0004003d,0x00000007,0x000000ba,0x000000b1, - 0x0004003d,0x00000007,0x000000bb,0x00000019,0x00050081,0x00000007,0x000000bc,0x000000ba, - 0x000000bb,0x0006000c,0x00000007,0x000000bd,0x00000001,0x00000045,0x000000bc,0x0003003e, - 0x000000b9,0x000000bd,0x0004003d,0x00000007,0x000000bf,0x00000016,0x0004003d,0x00000007, - 0x000000c0,0x000000b9,0x00050094,0x00000006,0x000000c1,0x000000bf,0x000000c0,0x0007000c, - 0x00000006,0x000000c2,0x00000001,0x00000028,0x000000c1,0x0000002b,0x0003003e,0x000000be, - 0x000000c2,0x00060041,0x00000021,0x000000c4,0x00000013,0x0000001f,0x00000059,0x0004003d, - 0x00000006,0x000000c5,0x000000c4,0x00050085,0x00000006,0x000000c7,0x000000c5,0x000000c6, - 0x0007000c,0x00000006,0x000000c8,0x00000001,0x00000028,0x000000c7,0x0000002b,0x0003003e, - 0x000000c3,0x000000c8,0x0004003d,0x00000006,0x000000ca,0x000000c3,0x000500ba,0x0000001d, - 0x000000cb,0x000000ca,0x0000002b,0x000300f7,0x000000ce,0x00000000,0x000400fa,0x000000cb, - 0x000000cd,0x000000d2,0x000200f8,0x000000cd,0x0004003d,0x00000006,0x000000cf,0x000000be, - 0x0004003d,0x00000006,0x000000d0,0x000000c3,0x0007000c,0x00000006,0x000000d1,0x00000001, - 0x0000001a,0x000000cf,0x000000d0,0x0003003e,0x000000cc,0x000000d1,0x000200f9,0x000000ce, - 0x000200f8,0x000000d2,0x0003003e,0x000000cc,0x0000002b,0x000200f9,0x000000ce,0x000200f8, - 0x000000ce,0x0004003d,0x00000006,0x000000d3,0x000000cc,0x0003003e,0x000000c9,0x000000d3, - 0x0004003d,0x00000007,0x000000d5,0x00000012,0x0004003d,0x00000006,0x000000d6,0x000000b4, - 0x0005008e,0x00000007,0x000000d7,0x000000d5,0x000000d6,0x0003003e,0x000000d4,0x000000d7, - 0x00050041,0x00000034,0x000000da,0x00000013,0x000000d9,0x0004003d,0x00000009,0x000000db, - 0x000000da,0x0008004f,0x00000007,0x000000dc,0x000000db,0x000000db,0x00000000,0x00000001, - 0x00000002,0x0004003d,0x00000006,0x000000dd,0x000000c9,0x0005008e,0x00000007,0x000000de, - 0x000000dc,0x000000dd,0x0003003e,0x000000d8,0x000000de,0x0004003d,0x0000001e,0x000000e0, - 0x0000003e,0x00060041,0x00000034,0x000000e1,0x00000013,0x000000df,0x000000e0,0x0004003d, - 0x00000009,0x000000e2,0x000000e1,0x0008004f,0x00000007,0x000000e3,0x000000e2,0x000000e2, - 0x00000000,0x00000001,0x00000002,0x0004003d,0x00000006,0x000000e4,0x00000054,0x0005008e, - 0x00000007,0x000000e5,0x000000e3,0x000000e4,0x0004003d,0x00000006,0x000000e6,0x00000056, - 0x0005008e,0x00000007,0x000000e7,0x000000e5,0x000000e6,0x0004003d,0x00000007,0x000000e8, - 0x000000d4,0x0004003d,0x00000007,0x000000e9,0x000000d8,0x00050081,0x00000007,0x000000ea, - 0x000000e8,0x000000e9,0x00050085,0x00000007,0x000000eb,0x000000e7,0x000000ea,0x0004003d, - 0x00000007,0x000000ec,0x00000032,0x00050081,0x00000007,0x000000ed,0x000000ec,0x000000eb, - 0x0003003e,0x00000032,0x000000ed,0x000200f9,0x00000043,0x000200f8,0x00000043,0x0004003d, - 0x0000001e,0x000000ee,0x0000003e,0x00050080,0x0000001e,0x000000ef,0x000000ee,0x00000033, - 0x0003003e,0x0000003e,0x000000ef,0x000200f9,0x00000040,0x000200f8,0x00000042,0x0004003d, - 0x00000007,0x000000f0,0x00000032,0x00050041,0x00000034,0x000000f2,0x00000013,0x000000f1, - 0x0004003d,0x00000009,0x000000f3,0x000000f2,0x0008004f,0x00000007,0x000000f4,0x000000f3, - 0x000000f3,0x00000000,0x00000001,0x00000002,0x00050081,0x00000007,0x000000f5,0x000000f0, - 0x000000f4,0x00060050,0x00000007,0x000000f6,0x0000002b,0x0000002b,0x0000002b,0x00060050, - 0x00000007,0x000000f7,0x00000055,0x00000055,0x00000055,0x0008000c,0x00000007,0x000000f8, - 0x00000001,0x0000002b,0x000000f5,0x000000f6,0x000000f7,0x000200fe,0x000000f8,0x00010038 + 0x66762d5d,0x5d385b34,0x3466762d,0x3466762d,0x00003b31,0x00050005,0x00000010,0x6c726f77, + 0x736f5064,0x00000000,0x00050005,0x00000011,0x6c726f77,0x726f4e64,0x006c616d,0x00050005, + 0x00000012,0x65736162,0x6f6c6f43,0x00000072,0x00030005,0x00000013,0x0074616d,0x00030005, + 0x00000016,0x0000004e,0x00030005,0x00000019,0x00000056,0x00050005,0x0000001b,0x6d617246, + 0x6f6c4265,0x00006b63,0x00050006,0x0000001b,0x00000000,0x69765f75,0x00007765,0x00070006, + 0x0000001b,0x00000001,0x69765f75,0x6e497765,0x73726576,0x00000065,0x00070006,0x0000001b, + 0x00000002,0x72705f75,0x6e496a6f,0x73726576,0x00000065,0x00060006,0x0000001b,0x00000003, + 0x61635f75,0x6172656d,0x00736f50,0x00060006,0x0000001b,0x00000004,0x69765f75,0x6f707765, + 0x00007472,0x00050006,0x0000001b,0x00000005,0x67625f75,0x00706f54,0x00060006,0x0000001b, + 0x00000006,0x67625f75,0x74746f42,0x00006d6f,0x00050006,0x0000001b,0x00000007,0x74735f75, + 0x00657461,0x00040005,0x0000001d,0x6d617266,0x00000065,0x00050005,0x0000003b,0x4374696c, + 0x726f6c6f,0x00000000,0x00050005,0x00000042,0x6867696c,0x756f4374,0x0000746e,0x00030005, + 0x00000047,0x00000069,0x00030005,0x00000057,0x0000004c,0x00050005,0x0000005d,0x65747461, + 0x7461756e,0x006e6f69,0x00050005,0x0000005f,0x746f7073,0x74636146,0x0000726f,0x00050005, + 0x00000068,0x6867696c,0x63655674,0x00726f74,0x00060005,0x0000006f,0x74736964,0x65636e61, + 0x694c6f54,0x00746867,0x00030005,0x0000007c,0x00747461,0x00040005,0x00000099,0x656e6f63, + 0x00726944,0x00050005,0x0000009f,0x6d6f7266,0x6867694c,0x00000074,0x00040005,0x000000a7, + 0x746f7073,0x00736f43,0x00030005,0x000000ba,0x00006e4c,0x00040005,0x000000bd,0x746f644e, + 0x0000004c,0x00030005,0x000000c2,0x00000048,0x00040005,0x000000c7,0x746f644e,0x00000048, + 0x00050005,0x000000cc,0x6e696873,0x73656e69,0x00000073,0x00060005,0x000000d2,0x63657073, + 0x72616c75,0x74636146,0x0000726f,0x00040005,0x000000dd,0x66666964,0x00657375,0x00050005, + 0x000000e1,0x63657073,0x72616c75,0x00000000,0x00060005,0x00000104,0x6574616d,0x6c616972, + 0x65646e49,0x00000078,0x00090005,0x00000106,0x495f6c67,0x6174736e,0x4365636e,0x6f747375, + 0x646e496d,0x58457865,0x00000054,0x00030005,0x00000109,0x0074616d,0x00050005,0x00000110, + 0x614d5452,0x69726574,0x00006c61,0x00050006,0x00000110,0x00000000,0x66666964,0x00657375, + 0x00050006,0x00000110,0x00000001,0x69626d61,0x00746e65,0x00060006,0x00000110,0x00000002, + 0x63657073,0x72616c75,0x00000000,0x00060006,0x00000110,0x00000003,0x73696d65,0x65766973, + 0x00000000,0x00050006,0x00000110,0x00000004,0x61726170,0x0000736d,0x00060006,0x00000110, + 0x00000005,0x6867696c,0x70795474,0x00000065,0x00060006,0x00000110,0x00000006,0x6867696c, + 0x6c6f4374,0x0000726f,0x00070006,0x00000110,0x00000007,0x6867696c,0x72694474,0x69746365, + 0x00006e6f,0x00070006,0x00000110,0x00000008,0x6867696c,0x736f5074,0x6f697469,0x0000006e, + 0x00080006,0x00000110,0x00000009,0x6867696c,0x74744174,0x61756e65,0x6e6f6974,0x00000000, + 0x00060006,0x00000110,0x0000000a,0x6867696c,0x6f705374,0x00000074,0x00070006,0x00000110, + 0x0000000b,0x61697274,0x656c676e,0x61746144,0x00000000,0x00040006,0x00000110,0x0000000c, + 0x00726270,0x00050005,0x00000112,0x6574614d,0x6c616972,0x00000073,0x00060006,0x00000112, + 0x00000000,0x6574616d,0x6c616972,0x00000073,0x00050005,0x00000114,0x4274616d,0x65666675, + 0x00000072,0x00040005,0x0000011a,0x6d697270,0x00000000,0x00060005,0x0000011b,0x505f6c67, + 0x696d6972,0x65766974,0x00004449,0x00050005,0x0000011e,0x6d726f6e,0x6e496c61,0x00786564, + 0x00040005,0x00000125,0x4e6a626f,0x00000000,0x00050005,0x00000127,0x6d726f4e,0x6f506c61, + 0x00006c6f,0x00070006,0x00000127,0x00000000,0x61697274,0x656c676e,0x6d726f4e,0x00736c61, + 0x00070005,0x00000129,0x6d726f6e,0x6f506c61,0x75426c6f,0x72656666,0x00000000,0x00040005, + 0x00000137,0x6c796150,0x0064616f,0x00050006,0x00000137,0x00000000,0x6f6c6f63,0x00000072, + 0x00050006,0x00000137,0x00000001,0x6d726f6e,0x00006c61,0x00050006,0x00000137,0x00000002, + 0x54736f70,0x00000000,0x00050006,0x00000137,0x00000003,0x6f666e69,0x00000000,0x00060006, + 0x00000137,0x00000004,0x6c63636f,0x64656475,0x00000000,0x00040005,0x00000139,0x6c796170, + 0x0064616f,0x00050005,0x00000149,0x6c726f77,0x736f5064,0x00000000,0x00080005,0x0000014b, + 0x575f6c67,0x646c726f,0x4f796152,0x69676972,0x5458456e,0x00000000,0x00080005,0x0000014d, + 0x575f6c67,0x646c726f,0x44796152,0x63657269,0x6e6f6974,0x00545845,0x00060005,0x00000150, + 0x525f6c67,0x6d547961,0x58457861,0x00000054,0x00050005,0x00000156,0x546a626f,0x726f576f, + 0x0000646c,0x00070005,0x00000158,0x4f5f6c67,0x63656a62,0x576f5474,0x646c726f,0x00545845, + 0x00040005,0x0000015a,0x6c726f77,0x00004e64,0x00040005,0x0000016a,0x61526f74,0x00000079, + 0x00030005,0x00000192,0x00626772,0x00040005,0x0000019b,0x61726170,0x0000006d,0x00040005, + 0x0000019d,0x61726170,0x0000006d,0x00040005,0x0000019f,0x61726170,0x0000006d,0x00040005, + 0x000001a3,0x61726170,0x0000006d,0x00030047,0x0000001b,0x00000002,0x00040048,0x0000001b, + 0x00000000,0x00000005,0x00050048,0x0000001b,0x00000000,0x00000007,0x00000010,0x00050048, + 0x0000001b,0x00000000,0x00000023,0x00000000,0x00040048,0x0000001b,0x00000001,0x00000005, + 0x00050048,0x0000001b,0x00000001,0x00000007,0x00000010,0x00050048,0x0000001b,0x00000001, + 0x00000023,0x00000040,0x00040048,0x0000001b,0x00000002,0x00000005,0x00050048,0x0000001b, + 0x00000002,0x00000007,0x00000010,0x00050048,0x0000001b,0x00000002,0x00000023,0x00000080, + 0x00050048,0x0000001b,0x00000003,0x00000023,0x000000c0,0x00050048,0x0000001b,0x00000004, + 0x00000023,0x000000d0,0x00050048,0x0000001b,0x00000005,0x00000023,0x000000e0,0x00050048, + 0x0000001b,0x00000006,0x00000023,0x000000f0,0x00050048,0x0000001b,0x00000007,0x00000023, + 0x00000100,0x00040047,0x0000001d,0x00000021,0x00000002,0x00040047,0x0000001d,0x00000022, + 0x00000000,0x00040047,0x00000106,0x0000000b,0x000014cf,0x00040047,0x0000010a,0x00000006, + 0x00000010,0x00040047,0x0000010b,0x00000006,0x00000010,0x00040047,0x0000010c,0x00000006, + 0x00000010,0x00040047,0x0000010d,0x00000006,0x00000010,0x00040047,0x0000010e,0x00000006, + 0x00000010,0x00040047,0x0000010f,0x00000006,0x00000010,0x00050048,0x00000110,0x00000000, + 0x00000023,0x00000000,0x00050048,0x00000110,0x00000001,0x00000023,0x00000010,0x00050048, + 0x00000110,0x00000002,0x00000023,0x00000020,0x00050048,0x00000110,0x00000003,0x00000023, + 0x00000030,0x00050048,0x00000110,0x00000004,0x00000023,0x00000040,0x00050048,0x00000110, + 0x00000005,0x00000023,0x00000050,0x00050048,0x00000110,0x00000006,0x00000023,0x000000d0, + 0x00050048,0x00000110,0x00000007,0x00000023,0x00000150,0x00050048,0x00000110,0x00000008, + 0x00000023,0x000001d0,0x00050048,0x00000110,0x00000009,0x00000023,0x00000250,0x00050048, + 0x00000110,0x0000000a,0x00000023,0x000002d0,0x00050048,0x00000110,0x0000000b,0x00000023, + 0x00000350,0x00050048,0x00000110,0x0000000c,0x00000023,0x00000360,0x00040047,0x00000111, + 0x00000006,0x00000370,0x00030047,0x00000112,0x00000002,0x00050048,0x00000112,0x00000000, + 0x00000023,0x00000000,0x00040047,0x00000114,0x00000021,0x00000003,0x00040047,0x00000114, + 0x00000022,0x00000000,0x00040047,0x0000011b,0x0000000b,0x00000007,0x00040047,0x00000126, + 0x00000006,0x00000010,0x00030047,0x00000127,0x00000002,0x00040048,0x00000127,0x00000000, + 0x00000018,0x00050048,0x00000127,0x00000000,0x00000023,0x00000000,0x00030047,0x00000129, + 0x00000018,0x00040047,0x00000129,0x00000021,0x00000007,0x00040047,0x00000129,0x00000022, + 0x00000000,0x00040047,0x0000014b,0x0000000b,0x000014c9,0x00040047,0x0000014d,0x0000000b, + 0x000014ca,0x00040047,0x00000150,0x0000000b,0x000014ce,0x00040047,0x00000158,0x0000000b, + 0x000014d2,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00030016,0x00000006, + 0x00000020,0x00040017,0x00000007,0x00000006,0x00000003,0x00040020,0x00000008,0x00000007, + 0x00000007,0x00040017,0x00000009,0x00000006,0x00000004,0x00040015,0x0000000a,0x00000020, + 0x00000000,0x0004002b,0x0000000a,0x0000000b,0x00000008,0x0004001c,0x0000000c,0x00000009, + 0x0000000b,0x000f001e,0x0000000d,0x00000009,0x00000009,0x00000009,0x00000009,0x00000009, + 0x0000000c,0x0000000c,0x0000000c,0x0000000c,0x0000000c,0x0000000c,0x00000009,0x00000009, + 0x00040020,0x0000000e,0x00000007,0x0000000d,0x00070021,0x0000000f,0x00000007,0x00000008, + 0x00000008,0x00000008,0x0000000e,0x00040018,0x0000001a,0x00000009,0x00000004,0x000a001e, + 0x0000001b,0x0000001a,0x0000001a,0x0000001a,0x00000009,0x00000009,0x00000009,0x00000009, + 0x00000009,0x00040020,0x0000001c,0x00000002,0x0000001b,0x0004003b,0x0000001c,0x0000001d, + 0x00000002,0x00040015,0x0000001e,0x00000020,0x00000001,0x0004002b,0x0000001e,0x0000001f, + 0x00000003,0x00040020,0x00000020,0x00000002,0x00000009,0x00020014,0x00000027,0x0004002b, + 0x0000001e,0x00000028,0x00000004,0x0004002b,0x0000000a,0x00000029,0x00000001,0x00040020, + 0x0000002a,0x00000007,0x00000006,0x0004002b,0x00000006,0x0000002d,0x3f000000,0x0004002b, + 0x00000006,0x00000034,0x00000000,0x0004002b,0x0000001e,0x0000003c,0x00000001,0x00040020, + 0x0000003d,0x00000007,0x00000009,0x00040020,0x00000041,0x00000007,0x0000001e,0x0004002b, + 0x0000000a,0x00000043,0x00000002,0x0004002b,0x0000001e,0x00000048,0x00000000,0x0004002b, + 0x0000001e,0x0000004f,0x00000008,0x0004002b,0x0000001e,0x00000058,0x00000007,0x0004002b, + 0x00000006,0x0000005e,0x3f800000,0x0004002b,0x0000001e,0x00000060,0x00000005,0x0004002b, + 0x0000000a,0x00000062,0x00000000,0x0004002b,0x00000006,0x00000073,0x38d1b717,0x0004002b, + 0x0000001e,0x0000007d,0x00000009,0x0004002b,0x00000006,0x00000095,0x3fc00000,0x0004002b, + 0x0000001e,0x000000ac,0x0000000a,0x0004002b,0x00000006,0x000000cf,0x43000000,0x0004002b, + 0x0000001e,0x000000e2,0x00000002,0x0004002b,0x0000001e,0x000000e8,0x00000006,0x00040020, + 0x00000103,0x00000007,0x0000000a,0x00040020,0x00000105,0x00000001,0x0000001e,0x0004003b, + 0x00000105,0x00000106,0x00000001,0x0004001c,0x0000010a,0x00000009,0x0000000b,0x0004001c, + 0x0000010b,0x00000009,0x0000000b,0x0004001c,0x0000010c,0x00000009,0x0000000b,0x0004001c, + 0x0000010d,0x00000009,0x0000000b,0x0004001c,0x0000010e,0x00000009,0x0000000b,0x0004001c, + 0x0000010f,0x00000009,0x0000000b,0x000f001e,0x00000110,0x00000009,0x00000009,0x00000009, + 0x00000009,0x00000009,0x0000010a,0x0000010b,0x0000010c,0x0000010d,0x0000010e,0x0000010f, + 0x00000009,0x00000009,0x0003001d,0x00000111,0x00000110,0x0003001e,0x00000112,0x00000111, + 0x00040020,0x00000113,0x0000000c,0x00000112,0x0004003b,0x00000113,0x00000114,0x0000000c, + 0x00040020,0x00000116,0x0000000c,0x00000110,0x0004003b,0x00000105,0x0000011b,0x00000001, + 0x0004002b,0x0000001e,0x0000011f,0x0000000b,0x0003001d,0x00000126,0x00000009,0x0003001e, + 0x00000127,0x00000126,0x00040020,0x00000128,0x0000000c,0x00000127,0x0004003b,0x00000128, + 0x00000129,0x0000000c,0x00040020,0x0000012b,0x0000000c,0x00000009,0x0004002b,0x00000006, + 0x00000132,0x2b8cbccc,0x00040017,0x00000136,0x0000000a,0x00000004,0x0007001e,0x00000137, + 0x00000009,0x00000009,0x00000009,0x00000136,0x0000000a,0x00040020,0x00000138,0x000014da, + 0x00000137,0x0004003b,0x00000138,0x00000139,0x000014da,0x0007002c,0x00000009,0x0000013a, + 0x00000034,0x00000034,0x00000034,0x00000034,0x00040020,0x0000013b,0x000014da,0x00000009, + 0x0004002b,0x0000000a,0x00000140,0x00000003,0x00040020,0x00000141,0x000014da,0x0000000a, + 0x00040020,0x00000145,0x000014da,0x00000136,0x00040020,0x0000014a,0x00000001,0x00000007, + 0x0004003b,0x0000014a,0x0000014b,0x00000001,0x0004003b,0x0000014a,0x0000014d,0x00000001, + 0x00040020,0x0000014f,0x00000001,0x00000006,0x0004003b,0x0000014f,0x00000150,0x00000001, + 0x00040018,0x00000154,0x00000007,0x00000004,0x00040020,0x00000155,0x00000007,0x00000154, + 0x00040020,0x00000157,0x00000001,0x00000154,0x0004003b,0x00000157,0x00000158,0x00000001, + 0x00040018,0x0000015c,0x00000007,0x00000003,0x00050036,0x00000002,0x00000004,0x00000000, + 0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000103,0x00000104,0x00000007,0x0004003b, + 0x0000000e,0x00000109,0x00000007,0x0004003b,0x00000103,0x0000011a,0x00000007,0x0004003b, + 0x00000103,0x0000011e,0x00000007,0x0004003b,0x00000008,0x00000125,0x00000007,0x0004003b, + 0x00000008,0x00000149,0x00000007,0x0004003b,0x00000155,0x00000156,0x00000007,0x0004003b, + 0x00000008,0x0000015a,0x00000007,0x0004003b,0x00000008,0x0000016a,0x00000007,0x0004003b, + 0x00000008,0x00000192,0x00000007,0x0004003b,0x00000008,0x0000019b,0x00000007,0x0004003b, + 0x00000008,0x0000019d,0x00000007,0x0004003b,0x00000008,0x0000019f,0x00000007,0x0004003b, + 0x0000000e,0x000001a3,0x00000007,0x0004003d,0x0000001e,0x00000107,0x00000106,0x0004007c, + 0x0000000a,0x00000108,0x00000107,0x0003003e,0x00000104,0x00000108,0x0004003d,0x0000000a, + 0x00000115,0x00000104,0x00060041,0x00000116,0x00000117,0x00000114,0x00000048,0x00000115, + 0x0004003d,0x00000110,0x00000118,0x00000117,0x00040190,0x0000000d,0x00000119,0x00000118, + 0x0003003e,0x00000109,0x00000119,0x0004003d,0x0000001e,0x0000011c,0x0000011b,0x0004007c, + 0x0000000a,0x0000011d,0x0000011c,0x0003003e,0x0000011a,0x0000011d,0x00060041,0x0000002a, + 0x00000120,0x00000109,0x0000011f,0x00000062,0x0004003d,0x00000006,0x00000121,0x00000120, + 0x0004006d,0x0000000a,0x00000122,0x00000121,0x0004003d,0x0000000a,0x00000123,0x0000011a, + 0x00050080,0x0000000a,0x00000124,0x00000122,0x00000123,0x0003003e,0x0000011e,0x00000124, + 0x0004003d,0x0000000a,0x0000012a,0x0000011e,0x00060041,0x0000012b,0x0000012c,0x00000129, + 0x00000048,0x0000012a,0x0004003d,0x00000009,0x0000012d,0x0000012c,0x0008004f,0x00000007, + 0x0000012e,0x0000012d,0x0000012d,0x00000000,0x00000001,0x00000002,0x0003003e,0x00000125, + 0x0000012e,0x0004003d,0x00000007,0x0000012f,0x00000125,0x0004003d,0x00000007,0x00000130, + 0x00000125,0x00050094,0x00000006,0x00000131,0x0000012f,0x00000130,0x000500b8,0x00000027, + 0x00000133,0x00000131,0x00000132,0x000300f7,0x00000135,0x00000000,0x000400fa,0x00000133, + 0x00000134,0x00000135,0x000200f8,0x00000134,0x00050041,0x0000013b,0x0000013c,0x00000139, + 0x00000048,0x0003003e,0x0000013c,0x0000013a,0x00050041,0x0000013b,0x0000013d,0x00000139, + 0x0000003c,0x0003003e,0x0000013d,0x0000013a,0x00050041,0x0000013b,0x0000013e,0x00000139, + 0x000000e2,0x0003003e,0x0000013e,0x0000013a,0x0004003d,0x0000000a,0x0000013f,0x00000104, + 0x00060041,0x00000141,0x00000142,0x00000139,0x0000001f,0x00000140,0x0004003d,0x0000000a, + 0x00000143,0x00000142,0x00070050,0x00000136,0x00000144,0x0000013f,0x00000062,0x00000062, + 0x00000143,0x00050041,0x00000145,0x00000146,0x00000139,0x0000001f,0x0003003e,0x00000146, + 0x00000144,0x00050041,0x00000141,0x00000147,0x00000139,0x00000028,0x0003003e,0x00000147, + 0x00000062,0x000100fd,0x000200f8,0x00000135,0x0004003d,0x00000007,0x0000014c,0x0000014b, + 0x0004003d,0x00000007,0x0000014e,0x0000014d,0x0004003d,0x00000006,0x00000151,0x00000150, + 0x0005008e,0x00000007,0x00000152,0x0000014e,0x00000151,0x00050081,0x00000007,0x00000153, + 0x0000014c,0x00000152,0x0003003e,0x00000149,0x00000153,0x0004003d,0x00000154,0x00000159, + 0x00000158,0x0003003e,0x00000156,0x00000159,0x0004003d,0x00000154,0x0000015b,0x00000156, + 0x00050051,0x00000007,0x0000015d,0x0000015b,0x00000000,0x00050051,0x00000007,0x0000015e, + 0x0000015b,0x00000001,0x00050051,0x00000007,0x0000015f,0x0000015b,0x00000002,0x00060050, + 0x0000015c,0x00000160,0x0000015d,0x0000015e,0x0000015f,0x0006000c,0x0000015c,0x00000161, + 0x00000001,0x00000022,0x00000160,0x00040054,0x0000015c,0x00000162,0x00000161,0x00050051, + 0x00000007,0x00000163,0x00000162,0x00000000,0x00050051,0x00000007,0x00000164,0x00000162, + 0x00000001,0x00050051,0x00000007,0x00000165,0x00000162,0x00000002,0x00060050,0x0000015c, + 0x00000166,0x00000163,0x00000164,0x00000165,0x0004003d,0x00000007,0x00000167,0x00000125, + 0x00050091,0x00000007,0x00000168,0x00000166,0x00000167,0x0006000c,0x00000007,0x00000169, + 0x00000001,0x00000045,0x00000168,0x0003003e,0x0000015a,0x00000169,0x0004003d,0x00000007, + 0x0000016b,0x0000014b,0x0004003d,0x00000007,0x0000016c,0x00000149,0x00050083,0x00000007, + 0x0000016d,0x0000016b,0x0000016c,0x0006000c,0x00000007,0x0000016e,0x00000001,0x00000045, + 0x0000016d,0x0003003e,0x0000016a,0x0000016e,0x0004003d,0x00000007,0x0000016f,0x0000015a, + 0x0004003d,0x00000007,0x00000170,0x0000016a,0x00050094,0x00000006,0x00000171,0x0000016f, + 0x00000170,0x000500b8,0x00000027,0x00000172,0x00000171,0x00000034,0x000300f7,0x00000174, + 0x00000000,0x000400fa,0x00000172,0x00000173,0x00000174,0x000200f8,0x00000173,0x0004003d, + 0x00000007,0x00000175,0x0000015a,0x0004007f,0x00000007,0x00000176,0x00000175,0x0003003e, + 0x0000015a,0x00000176,0x000200f9,0x00000174,0x000200f8,0x00000174,0x0004003d,0x00000007, + 0x00000177,0x0000015a,0x00050051,0x00000006,0x00000178,0x00000177,0x00000000,0x00050051, + 0x00000006,0x00000179,0x00000177,0x00000001,0x00050051,0x00000006,0x0000017a,0x00000177, + 0x00000002,0x00070050,0x00000009,0x0000017b,0x00000178,0x00000179,0x0000017a,0x0000005e, + 0x00050041,0x0000013b,0x0000017c,0x00000139,0x0000003c,0x0003003e,0x0000017c,0x0000017b, + 0x0004003d,0x00000007,0x0000017d,0x00000149,0x0004003d,0x00000006,0x0000017e,0x00000150, + 0x00050051,0x00000006,0x0000017f,0x0000017d,0x00000000,0x00050051,0x00000006,0x00000180, + 0x0000017d,0x00000001,0x00050051,0x00000006,0x00000181,0x0000017d,0x00000002,0x00070050, + 0x00000009,0x00000182,0x0000017f,0x00000180,0x00000181,0x0000017e,0x00050041,0x0000013b, + 0x00000183,0x00000139,0x000000e2,0x0003003e,0x00000183,0x00000182,0x0004003d,0x0000000a, + 0x00000184,0x00000104,0x00060041,0x0000002a,0x00000185,0x00000109,0x00000028,0x00000062, + 0x0004003d,0x00000006,0x00000186,0x00000185,0x000500ba,0x00000027,0x00000187,0x00000186, + 0x00000034,0x000600a9,0x0000000a,0x00000188,0x00000187,0x00000029,0x00000062,0x00060041, + 0x00000141,0x00000189,0x00000139,0x0000001f,0x00000140,0x0004003d,0x0000000a,0x0000018a, + 0x00000189,0x00070050,0x00000136,0x0000018b,0x00000184,0x00000029,0x00000188,0x0000018a, + 0x00050041,0x00000145,0x0000018c,0x00000139,0x0000001f,0x0003003e,0x0000018c,0x0000018b, + 0x00060041,0x00000141,0x0000018d,0x00000139,0x0000001f,0x00000140,0x0004003d,0x0000000a, + 0x0000018e,0x0000018d,0x000500aa,0x00000027,0x0000018f,0x0000018e,0x00000062,0x000300f7, + 0x00000191,0x00000000,0x000400fa,0x0000018f,0x00000190,0x000001af,0x000200f8,0x00000190, + 0x00050041,0x0000003d,0x00000193,0x00000109,0x00000048,0x0004003d,0x00000009,0x00000194, + 0x00000193,0x0008004f,0x00000007,0x00000195,0x00000194,0x00000194,0x00000000,0x00000001, + 0x00000002,0x0003003e,0x00000192,0x00000195,0x00060041,0x0000002a,0x00000196,0x00000109, + 0x00000028,0x00000140,0x0004003d,0x00000006,0x00000197,0x00000196,0x000500ba,0x00000027, + 0x00000198,0x00000197,0x0000002d,0x000300f7,0x0000019a,0x00000000,0x000400fa,0x00000198, + 0x00000199,0x0000019a,0x000200f8,0x00000199,0x0004003d,0x00000007,0x0000019c,0x00000149, + 0x0003003e,0x0000019b,0x0000019c,0x0004003d,0x00000007,0x0000019e,0x0000015a,0x0003003e, + 0x0000019d,0x0000019e,0x00050041,0x0000003d,0x000001a0,0x00000109,0x00000048,0x0004003d, + 0x00000009,0x000001a1,0x000001a0,0x0008004f,0x00000007,0x000001a2,0x000001a1,0x000001a1, + 0x00000000,0x00000001,0x00000002,0x0003003e,0x0000019f,0x000001a2,0x0004003d,0x0000000d, + 0x000001a4,0x00000109,0x0003003e,0x000001a3,0x000001a4,0x00080039,0x00000007,0x000001a5, + 0x00000014,0x0000019b,0x0000019d,0x0000019f,0x000001a3,0x0003003e,0x00000192,0x000001a5, + 0x000200f9,0x0000019a,0x000200f8,0x0000019a,0x0004003d,0x00000007,0x000001a6,0x00000192, + 0x00060050,0x00000007,0x000001a7,0x00000034,0x00000034,0x00000034,0x00060050,0x00000007, + 0x000001a8,0x0000005e,0x0000005e,0x0000005e,0x0008000c,0x00000007,0x000001a9,0x00000001, + 0x0000002b,0x000001a6,0x000001a7,0x000001a8,0x00050051,0x00000006,0x000001aa,0x000001a9, + 0x00000000,0x00050051,0x00000006,0x000001ab,0x000001a9,0x00000001,0x00050051,0x00000006, + 0x000001ac,0x000001a9,0x00000002,0x00070050,0x00000009,0x000001ad,0x000001aa,0x000001ab, + 0x000001ac,0x0000005e,0x00050041,0x0000013b,0x000001ae,0x00000139,0x00000048,0x0003003e, + 0x000001ae,0x000001ad,0x000200f9,0x00000191,0x000200f8,0x000001af,0x00050041,0x0000003d, + 0x000001b0,0x00000109,0x0000001f,0x0004003d,0x00000009,0x000001b1,0x000001b0,0x0008004f, + 0x00000007,0x000001b2,0x000001b1,0x000001b1,0x00000000,0x00000001,0x00000002,0x00050051, + 0x00000006,0x000001b3,0x000001b2,0x00000000,0x00050051,0x00000006,0x000001b4,0x000001b2, + 0x00000001,0x00050051,0x00000006,0x000001b5,0x000001b2,0x00000002,0x00070050,0x00000009, + 0x000001b6,0x000001b3,0x000001b4,0x000001b5,0x0000005e,0x00050041,0x0000013b,0x000001b7, + 0x00000139,0x00000048,0x0003003e,0x000001b7,0x000001b6,0x000200f9,0x00000191,0x000200f8, + 0x00000191,0x000100fd,0x00010038,0x00050036,0x00000007,0x00000014,0x00000000,0x0000000f, + 0x00030037,0x00000008,0x00000010,0x00030037,0x00000008,0x00000011,0x00030037,0x00000008, + 0x00000012,0x00030037,0x0000000e,0x00000013,0x000200f8,0x00000015,0x0004003b,0x00000008, + 0x00000016,0x00000007,0x0004003b,0x00000008,0x00000019,0x00000007,0x0004003b,0x00000008, + 0x0000003b,0x00000007,0x0004003b,0x00000041,0x00000042,0x00000007,0x0004003b,0x00000041, + 0x00000047,0x00000007,0x0004003b,0x00000008,0x00000057,0x00000007,0x0004003b,0x0000002a, + 0x0000005d,0x00000007,0x0004003b,0x0000002a,0x0000005f,0x00000007,0x0004003b,0x00000008, + 0x00000068,0x00000007,0x0004003b,0x0000002a,0x0000006f,0x00000007,0x0004003b,0x00000008, + 0x0000007c,0x00000007,0x0004003b,0x00000008,0x00000099,0x00000007,0x0004003b,0x00000008, + 0x0000009f,0x00000007,0x0004003b,0x0000002a,0x000000a7,0x00000007,0x0004003b,0x00000008, + 0x000000ba,0x00000007,0x0004003b,0x0000002a,0x000000bd,0x00000007,0x0004003b,0x00000008, + 0x000000c2,0x00000007,0x0004003b,0x0000002a,0x000000c7,0x00000007,0x0004003b,0x0000002a, + 0x000000cc,0x00000007,0x0004003b,0x0000002a,0x000000d2,0x00000007,0x0004003b,0x0000002a, + 0x000000d5,0x00000007,0x0004003b,0x00000008,0x000000dd,0x00000007,0x0004003b,0x00000008, + 0x000000e1,0x00000007,0x0004003d,0x00000007,0x00000017,0x00000011,0x0006000c,0x00000007, + 0x00000018,0x00000001,0x00000045,0x00000017,0x0003003e,0x00000016,0x00000018,0x00050041, + 0x00000020,0x00000021,0x0000001d,0x0000001f,0x0004003d,0x00000009,0x00000022,0x00000021, + 0x0008004f,0x00000007,0x00000023,0x00000022,0x00000022,0x00000000,0x00000001,0x00000002, + 0x0004003d,0x00000007,0x00000024,0x00000010,0x00050083,0x00000007,0x00000025,0x00000023, + 0x00000024,0x0006000c,0x00000007,0x00000026,0x00000001,0x00000045,0x00000025,0x0003003e, + 0x00000019,0x00000026,0x00060041,0x0000002a,0x0000002b,0x00000013,0x00000028,0x00000029, + 0x0004003d,0x00000006,0x0000002c,0x0000002b,0x000500ba,0x00000027,0x0000002e,0x0000002c, + 0x0000002d,0x000300f7,0x00000030,0x00000000,0x000400fa,0x0000002e,0x0000002f,0x00000030, + 0x000200f8,0x0000002f,0x0004003d,0x00000007,0x00000031,0x00000016,0x0004003d,0x00000007, + 0x00000032,0x00000019,0x00050094,0x00000006,0x00000033,0x00000031,0x00000032,0x000500b8, + 0x00000027,0x00000035,0x00000033,0x00000034,0x000200f9,0x00000030,0x000200f8,0x00000030, + 0x000700f5,0x00000027,0x00000036,0x0000002e,0x00000015,0x00000035,0x0000002f,0x000300f7, + 0x00000038,0x00000000,0x000400fa,0x00000036,0x00000037,0x00000038,0x000200f8,0x00000037, + 0x0004003d,0x00000007,0x00000039,0x00000016,0x0004007f,0x00000007,0x0000003a,0x00000039, + 0x0003003e,0x00000016,0x0000003a,0x000200f9,0x00000038,0x000200f8,0x00000038,0x00050041, + 0x0000003d,0x0000003e,0x00000013,0x0000003c,0x0004003d,0x00000009,0x0000003f,0x0000003e, + 0x0008004f,0x00000007,0x00000040,0x0000003f,0x0000003f,0x00000000,0x00000001,0x00000002, + 0x0003003e,0x0000003b,0x00000040,0x00060041,0x0000002a,0x00000044,0x00000013,0x00000028, + 0x00000043,0x0004003d,0x00000006,0x00000045,0x00000044,0x0004006e,0x0000001e,0x00000046, + 0x00000045,0x0003003e,0x00000042,0x00000046,0x0003003e,0x00000047,0x00000048,0x000200f9, + 0x00000049,0x000200f8,0x00000049,0x000400f6,0x0000004b,0x0000004c,0x00000000,0x000200f9, + 0x0000004d,0x000200f8,0x0000004d,0x0004003d,0x0000001e,0x0000004e,0x00000047,0x000500b1, + 0x00000027,0x00000050,0x0000004e,0x0000004f,0x000400fa,0x00000050,0x0000004a,0x0000004b, + 0x000200f8,0x0000004a,0x0004003d,0x0000001e,0x00000051,0x00000047,0x0004003d,0x0000001e, + 0x00000052,0x00000042,0x000500af,0x00000027,0x00000053,0x00000051,0x00000052,0x000300f7, + 0x00000055,0x00000000,0x000400fa,0x00000053,0x00000054,0x00000055,0x000200f8,0x00000054, + 0x000200f9,0x0000004b,0x000200f8,0x00000055,0x0004003d,0x0000001e,0x00000059,0x00000047, + 0x00060041,0x0000003d,0x0000005a,0x00000013,0x00000058,0x00000059,0x0004003d,0x00000009, + 0x0000005b,0x0000005a,0x0008004f,0x00000007,0x0000005c,0x0000005b,0x0000005b,0x00000000, + 0x00000001,0x00000002,0x0003003e,0x00000057,0x0000005c,0x0003003e,0x0000005d,0x0000005e, + 0x0003003e,0x0000005f,0x0000005e,0x0004003d,0x0000001e,0x00000061,0x00000047,0x00070041, + 0x0000002a,0x00000063,0x00000013,0x00000060,0x00000061,0x00000062,0x0004003d,0x00000006, + 0x00000064,0x00000063,0x000500ba,0x00000027,0x00000065,0x00000064,0x0000002d,0x000300f7, + 0x00000067,0x00000000,0x000400fa,0x00000065,0x00000066,0x00000067,0x000200f8,0x00000066, + 0x0004003d,0x0000001e,0x00000069,0x00000047,0x00060041,0x0000003d,0x0000006a,0x00000013, + 0x0000004f,0x00000069,0x0004003d,0x00000009,0x0000006b,0x0000006a,0x0008004f,0x00000007, + 0x0000006c,0x0000006b,0x0000006b,0x00000000,0x00000001,0x00000002,0x0004003d,0x00000007, + 0x0000006d,0x00000010,0x00050083,0x00000007,0x0000006e,0x0000006c,0x0000006d,0x0003003e, + 0x00000068,0x0000006e,0x0004003d,0x00000007,0x00000070,0x00000068,0x0006000c,0x00000006, + 0x00000071,0x00000001,0x00000042,0x00000070,0x0003003e,0x0000006f,0x00000071,0x0004003d, + 0x00000006,0x00000072,0x0000006f,0x000500bc,0x00000027,0x00000074,0x00000072,0x00000073, + 0x000300f7,0x00000076,0x00000000,0x000400fa,0x00000074,0x00000075,0x00000076,0x000200f8, + 0x00000075,0x000200f9,0x0000004c,0x000200f8,0x00000076,0x0004003d,0x00000007,0x00000078, + 0x00000068,0x0004003d,0x00000006,0x00000079,0x0000006f,0x00060050,0x00000007,0x0000007a, + 0x00000079,0x00000079,0x00000079,0x00050088,0x00000007,0x0000007b,0x00000078,0x0000007a, + 0x0003003e,0x00000057,0x0000007b,0x0004003d,0x0000001e,0x0000007e,0x00000047,0x00060041, + 0x0000003d,0x0000007f,0x00000013,0x0000007d,0x0000007e,0x0004003d,0x00000009,0x00000080, + 0x0000007f,0x0008004f,0x00000007,0x00000081,0x00000080,0x00000080,0x00000000,0x00000001, + 0x00000002,0x0003003e,0x0000007c,0x00000081,0x00050041,0x0000002a,0x00000082,0x0000007c, + 0x00000043,0x0004003d,0x00000006,0x00000083,0x00000082,0x00050041,0x0000002a,0x00000084, + 0x0000007c,0x00000029,0x0004003d,0x00000006,0x00000085,0x00000084,0x0004003d,0x00000006, + 0x00000086,0x0000006f,0x00050085,0x00000006,0x00000087,0x00000085,0x00000086,0x00050081, + 0x00000006,0x00000088,0x00000083,0x00000087,0x00050041,0x0000002a,0x00000089,0x0000007c, + 0x00000062,0x0004003d,0x00000006,0x0000008a,0x00000089,0x0004003d,0x00000006,0x0000008b, + 0x0000006f,0x00050085,0x00000006,0x0000008c,0x0000008a,0x0000008b,0x0004003d,0x00000006, + 0x0000008d,0x0000006f,0x00050085,0x00000006,0x0000008e,0x0000008c,0x0000008d,0x00050081, + 0x00000006,0x0000008f,0x00000088,0x0000008e,0x0007000c,0x00000006,0x00000090,0x00000001, + 0x00000028,0x0000008f,0x00000073,0x00050088,0x00000006,0x00000091,0x0000005e,0x00000090, + 0x0003003e,0x0000005d,0x00000091,0x0004003d,0x0000001e,0x00000092,0x00000047,0x00070041, + 0x0000002a,0x00000093,0x00000013,0x00000060,0x00000092,0x00000062,0x0004003d,0x00000006, + 0x00000094,0x00000093,0x000500ba,0x00000027,0x00000096,0x00000094,0x00000095,0x000300f7, + 0x00000098,0x00000000,0x000400fa,0x00000096,0x00000097,0x00000098,0x000200f8,0x00000097, + 0x0004003d,0x0000001e,0x0000009a,0x00000047,0x00060041,0x0000003d,0x0000009b,0x00000013, + 0x00000058,0x0000009a,0x0004003d,0x00000009,0x0000009c,0x0000009b,0x0008004f,0x00000007, + 0x0000009d,0x0000009c,0x0000009c,0x00000000,0x00000001,0x00000002,0x0006000c,0x00000007, + 0x0000009e,0x00000001,0x00000045,0x0000009d,0x0003003e,0x00000099,0x0000009e,0x0004003d, + 0x00000007,0x000000a0,0x00000010,0x0004003d,0x0000001e,0x000000a1,0x00000047,0x00060041, + 0x0000003d,0x000000a2,0x00000013,0x0000004f,0x000000a1,0x0004003d,0x00000009,0x000000a3, + 0x000000a2,0x0008004f,0x00000007,0x000000a4,0x000000a3,0x000000a3,0x00000000,0x00000001, + 0x00000002,0x00050083,0x00000007,0x000000a5,0x000000a0,0x000000a4,0x0006000c,0x00000007, + 0x000000a6,0x00000001,0x00000045,0x000000a5,0x0003003e,0x0000009f,0x000000a6,0x0004003d, + 0x00000007,0x000000a8,0x00000099,0x0004003d,0x00000007,0x000000a9,0x0000009f,0x00050094, + 0x00000006,0x000000aa,0x000000a8,0x000000a9,0x0003003e,0x000000a7,0x000000aa,0x0004003d, + 0x00000006,0x000000ab,0x000000a7,0x0004003d,0x0000001e,0x000000ad,0x00000047,0x00070041, + 0x0000002a,0x000000ae,0x00000013,0x000000ac,0x000000ad,0x00000062,0x0004003d,0x00000006, + 0x000000af,0x000000ae,0x000500b8,0x00000027,0x000000b0,0x000000ab,0x000000af,0x000300f7, + 0x000000b2,0x00000000,0x000400fa,0x000000b0,0x000000b1,0x000000b2,0x000200f8,0x000000b1, + 0x000200f9,0x0000004c,0x000200f8,0x000000b2,0x0004003d,0x00000006,0x000000b4,0x000000a7, + 0x0007000c,0x00000006,0x000000b5,0x00000001,0x00000028,0x000000b4,0x00000034,0x0004003d, + 0x0000001e,0x000000b6,0x00000047,0x00070041,0x0000002a,0x000000b7,0x00000013,0x000000ac, + 0x000000b6,0x00000029,0x0004003d,0x00000006,0x000000b8,0x000000b7,0x0007000c,0x00000006, + 0x000000b9,0x00000001,0x0000001a,0x000000b5,0x000000b8,0x0003003e,0x0000005f,0x000000b9, + 0x000200f9,0x00000098,0x000200f8,0x00000098,0x000200f9,0x00000067,0x000200f8,0x00000067, + 0x0004003d,0x00000007,0x000000bb,0x00000057,0x0006000c,0x00000007,0x000000bc,0x00000001, + 0x00000045,0x000000bb,0x0003003e,0x000000ba,0x000000bc,0x0004003d,0x00000007,0x000000be, + 0x00000016,0x0004003d,0x00000007,0x000000bf,0x000000ba,0x00050094,0x00000006,0x000000c0, + 0x000000be,0x000000bf,0x0007000c,0x00000006,0x000000c1,0x00000001,0x00000028,0x000000c0, + 0x00000034,0x0003003e,0x000000bd,0x000000c1,0x0004003d,0x00000007,0x000000c3,0x000000ba, + 0x0004003d,0x00000007,0x000000c4,0x00000019,0x00050081,0x00000007,0x000000c5,0x000000c3, + 0x000000c4,0x0006000c,0x00000007,0x000000c6,0x00000001,0x00000045,0x000000c5,0x0003003e, + 0x000000c2,0x000000c6,0x0004003d,0x00000007,0x000000c8,0x00000016,0x0004003d,0x00000007, + 0x000000c9,0x000000c2,0x00050094,0x00000006,0x000000ca,0x000000c8,0x000000c9,0x0007000c, + 0x00000006,0x000000cb,0x00000001,0x00000028,0x000000ca,0x00000034,0x0003003e,0x000000c7, + 0x000000cb,0x00060041,0x0000002a,0x000000cd,0x00000013,0x00000028,0x00000062,0x0004003d, + 0x00000006,0x000000ce,0x000000cd,0x00050085,0x00000006,0x000000d0,0x000000ce,0x000000cf, + 0x0007000c,0x00000006,0x000000d1,0x00000001,0x00000028,0x000000d0,0x00000034,0x0003003e, + 0x000000cc,0x000000d1,0x0004003d,0x00000006,0x000000d3,0x000000cc,0x000500ba,0x00000027, + 0x000000d4,0x000000d3,0x00000034,0x000300f7,0x000000d7,0x00000000,0x000400fa,0x000000d4, + 0x000000d6,0x000000db,0x000200f8,0x000000d6,0x0004003d,0x00000006,0x000000d8,0x000000c7, + 0x0004003d,0x00000006,0x000000d9,0x000000cc,0x0007000c,0x00000006,0x000000da,0x00000001, + 0x0000001a,0x000000d8,0x000000d9,0x0003003e,0x000000d5,0x000000da,0x000200f9,0x000000d7, + 0x000200f8,0x000000db,0x0003003e,0x000000d5,0x00000034,0x000200f9,0x000000d7,0x000200f8, + 0x000000d7,0x0004003d,0x00000006,0x000000dc,0x000000d5,0x0003003e,0x000000d2,0x000000dc, + 0x0004003d,0x00000007,0x000000de,0x00000012,0x0004003d,0x00000006,0x000000df,0x000000bd, + 0x0005008e,0x00000007,0x000000e0,0x000000de,0x000000df,0x0003003e,0x000000dd,0x000000e0, + 0x00050041,0x0000003d,0x000000e3,0x00000013,0x000000e2,0x0004003d,0x00000009,0x000000e4, + 0x000000e3,0x0008004f,0x00000007,0x000000e5,0x000000e4,0x000000e4,0x00000000,0x00000001, + 0x00000002,0x0004003d,0x00000006,0x000000e6,0x000000d2,0x0005008e,0x00000007,0x000000e7, + 0x000000e5,0x000000e6,0x0003003e,0x000000e1,0x000000e7,0x0004003d,0x0000001e,0x000000e9, + 0x00000047,0x00060041,0x0000003d,0x000000ea,0x00000013,0x000000e8,0x000000e9,0x0004003d, + 0x00000009,0x000000eb,0x000000ea,0x0008004f,0x00000007,0x000000ec,0x000000eb,0x000000eb, + 0x00000000,0x00000001,0x00000002,0x0004003d,0x00000006,0x000000ed,0x0000005d,0x0005008e, + 0x00000007,0x000000ee,0x000000ec,0x000000ed,0x0004003d,0x00000006,0x000000ef,0x0000005f, + 0x0005008e,0x00000007,0x000000f0,0x000000ee,0x000000ef,0x0004003d,0x00000007,0x000000f1, + 0x000000dd,0x0004003d,0x00000007,0x000000f2,0x000000e1,0x00050081,0x00000007,0x000000f3, + 0x000000f1,0x000000f2,0x00050085,0x00000007,0x000000f4,0x000000f0,0x000000f3,0x0004003d, + 0x00000007,0x000000f5,0x0000003b,0x00050081,0x00000007,0x000000f6,0x000000f5,0x000000f4, + 0x0003003e,0x0000003b,0x000000f6,0x000200f9,0x0000004c,0x000200f8,0x0000004c,0x0004003d, + 0x0000001e,0x000000f7,0x00000047,0x00050080,0x0000001e,0x000000f8,0x000000f7,0x0000003c, + 0x0003003e,0x00000047,0x000000f8,0x000200f9,0x00000049,0x000200f8,0x0000004b,0x0004003d, + 0x00000007,0x000000f9,0x0000003b,0x00050041,0x0000003d,0x000000fa,0x00000013,0x0000001f, + 0x0004003d,0x00000009,0x000000fb,0x000000fa,0x0008004f,0x00000007,0x000000fc,0x000000fb, + 0x000000fb,0x00000000,0x00000001,0x00000002,0x00050081,0x00000007,0x000000fd,0x000000f9, + 0x000000fc,0x00060050,0x00000007,0x000000fe,0x00000034,0x00000034,0x00000034,0x00060050, + 0x00000007,0x000000ff,0x0000005e,0x0000005e,0x0000005e,0x0008000c,0x00000007,0x00000100, + 0x00000001,0x0000002b,0x000000fd,0x000000fe,0x000000ff,0x000200fe,0x00000100,0x00010038 }; const uint32_t coin_vulkan_rt_closesthit_spirv_count = sizeof(coin_vulkan_rt_closesthit_spirv) / sizeof(uint32_t); diff --git a/src/rendering/vulkan/rt/PathTrace.spv.h b/src/rendering/vulkan/rt/PathTrace.spv.h index e1c887fce13..5d7ae049471 100644 --- a/src/rendering/vulkan/rt/PathTrace.spv.h +++ b/src/rendering/vulkan/rt/PathTrace.spv.h @@ -1,3310 +1,3377 @@ // 1116.4.0 #pragma once const uint32_t coin_vulkan_rt_pathtrace_spirv[] = { - 0x07230203,0x00010000,0x0008000b,0x000010ca,0x00000000,0x00020011,0x00000001,0x00020011, + 0x07230203,0x00010000,0x0008000b,0x0000111c,0x00000000,0x00020011,0x00000001,0x00020011, 0x00001178,0x0006000a,0x5f565053,0x5f52484b,0x5f796172,0x72657571,0x00000079,0x0006000b, 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, - 0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x00000779,0x00060010,0x00000004, + 0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x000007f9,0x00060010,0x00000004, 0x00000011,0x00000008,0x00000008,0x00000001,0x00030003,0x00000002,0x000001cc,0x00060004, - 0x455f4c47,0x725f5458,0x715f7961,0x79726575,0x00000000,0x00040005,0x00000004,0x6e69616d, - 0x00000000,0x00060005,0x0000000e,0x68736168,0x31752832,0x3b31753b,0x003b3175,0x00030005, - 0x0000000b,0x00007870,0x00030005,0x0000000c,0x00007970,0x00040005,0x0000000d,0x64656573, - 0x00000000,0x00060005,0x00000015,0x68736168,0x31752833,0x3b31753b,0x003b3175,0x00030005, - 0x00000012,0x00007870,0x00030005,0x00000013,0x00007970,0x00040005,0x00000014,0x64656573, - 0x00000000,0x00070005,0x0000001a,0x706d6173,0x6f43656c,0x656e6973,0x32667628,0x0000003b, - 0x00030005,0x00000019,0x00000075,0x00050005,0x0000001d,0x53766e65,0x69446e75,0x00002872, - 0x00080005,0x00000022,0x53766e65,0x61667275,0x6f436563,0x28726f6c,0x3b336676,0x00000000, - 0x00030005,0x00000021,0x00726964,0x00070005,0x00000025,0x52766e65,0x61696461,0x2865636e, - 0x3b336676,0x00000000,0x00030005,0x00000024,0x00726964,0x00070005,0x00000028,0x49766e65, - 0x64617272,0x636e6169,0x66762865,0x00003b33,0x00030005,0x00000027,0x0000006e,0x00070005, - 0x0000002e,0x53766e65,0x75636570,0x2872616c,0x3b336676,0x003b3166,0x00030005,0x0000002c, - 0x00000072,0x00050005,0x0000002d,0x67756f72,0x73656e68,0x00000073,0x00050005,0x00000033, - 0x614d5452,0x69726574,0x00006c61,0x00050006,0x00000033,0x00000000,0x66666964,0x00657375, - 0x00050006,0x00000033,0x00000001,0x69626d61,0x00746e65,0x00060006,0x00000033,0x00000002, - 0x63657073,0x72616c75,0x00000000,0x00060006,0x00000033,0x00000003,0x73696d65,0x65766973, - 0x00000000,0x00050006,0x00000033,0x00000004,0x61726170,0x0000736d,0x00060006,0x00000033, - 0x00000005,0x6867696c,0x70795474,0x00000065,0x00060006,0x00000033,0x00000006,0x6867696c, - 0x6c6f4374,0x0000726f,0x00070006,0x00000033,0x00000007,0x6867696c,0x72694474,0x69746365, - 0x00006e6f,0x00070006,0x00000033,0x00000008,0x6867696c,0x736f5074,0x6f697469,0x0000006e, - 0x00080006,0x00000033,0x00000009,0x6867696c,0x74744174,0x61756e65,0x6e6f6974,0x00000000, - 0x00060006,0x00000033,0x0000000a,0x6867696c,0x6f705374,0x00000074,0x00070006,0x00000033, - 0x0000000b,0x61697274,0x656c676e,0x61746144,0x00000000,0x00040006,0x00000033,0x0000000c, - 0x00726270,0x001b0005,0x00000037,0x41726270,0x6168706c,0x72747328,0x2d746375,0x614d5452, + 0x455f4c47,0x725f5458,0x715f7961,0x79726575,0x00000000,0x000a0004,0x475f4c47,0x4c474f4f, + 0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004, + 0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00040005, + 0x00000004,0x6e69616d,0x00000000,0x00060005,0x0000000e,0x68736168,0x31752832,0x3b31753b, + 0x003b3175,0x00030005,0x0000000b,0x00007870,0x00030005,0x0000000c,0x00007970,0x00040005, + 0x0000000d,0x64656573,0x00000000,0x00060005,0x00000015,0x68736168,0x31752833,0x3b31753b, + 0x003b3175,0x00030005,0x00000012,0x00007870,0x00030005,0x00000013,0x00007970,0x00040005, + 0x00000014,0x64656573,0x00000000,0x00070005,0x0000001a,0x706d6173,0x6f43656c,0x656e6973, + 0x32667628,0x0000003b,0x00030005,0x00000019,0x00000075,0x00050005,0x0000001d,0x53766e65, + 0x69446e75,0x00002872,0x00080005,0x00000022,0x53766e65,0x61667275,0x6f436563,0x28726f6c, + 0x3b336676,0x00000000,0x00030005,0x00000021,0x00726964,0x00070005,0x00000025,0x52766e65, + 0x61696461,0x2865636e,0x3b336676,0x00000000,0x00030005,0x00000024,0x00726964,0x00070005, + 0x00000028,0x49766e65,0x64617272,0x636e6169,0x66762865,0x00003b33,0x00030005,0x00000027, + 0x0000006e,0x00070005,0x0000002e,0x53766e65,0x75636570,0x2872616c,0x3b336676,0x003b3166, + 0x00030005,0x0000002c,0x00000072,0x00050005,0x0000002d,0x67756f72,0x73656e68,0x00000073, + 0x00050005,0x00000033,0x614d5452,0x69726574,0x00006c61,0x00050006,0x00000033,0x00000000, + 0x66666964,0x00657375,0x00050006,0x00000033,0x00000001,0x69626d61,0x00746e65,0x00060006, + 0x00000033,0x00000002,0x63657073,0x72616c75,0x00000000,0x00060006,0x00000033,0x00000003, + 0x73696d65,0x65766973,0x00000000,0x00050006,0x00000033,0x00000004,0x61726170,0x0000736d, + 0x00060006,0x00000033,0x00000005,0x6867696c,0x70795474,0x00000065,0x00060006,0x00000033, + 0x00000006,0x6867696c,0x6c6f4374,0x0000726f,0x00070006,0x00000033,0x00000007,0x6867696c, + 0x72694474,0x69746365,0x00006e6f,0x00070006,0x00000033,0x00000008,0x6867696c,0x736f5074, + 0x6f697469,0x0000006e,0x00080006,0x00000033,0x00000009,0x6867696c,0x74744174,0x61756e65, + 0x6e6f6974,0x00000000,0x00060006,0x00000033,0x0000000a,0x6867696c,0x6f705374,0x00000074, + 0x00070006,0x00000033,0x0000000b,0x61697274,0x656c676e,0x61746144,0x00000000,0x00040006, + 0x00000033,0x0000000c,0x00726270,0x001b0005,0x00000037,0x41726270,0x6168706c,0x72747328, + 0x2d746375,0x614d5452,0x69726574,0x762d6c61,0x762d3466,0x762d3466,0x762d3466,0x762d3466, + 0x762d3466,0x385b3466,0x66762d5d,0x5d385b34,0x3466762d,0x2d5d385b,0x5b346676,0x762d5d38, + 0x385b3466,0x66762d5d,0x5d385b34,0x3466762d,0x3466762d,0x00003b31,0x00030005,0x00000036, + 0x0074616d,0x001a0005,0x0000003b,0x46726270,0x74732830,0x74637572,0x4d54522d,0x72657461, + 0x2d6c6169,0x2d346676,0x2d346676,0x2d346676,0x2d346676,0x2d346676,0x5b346676,0x762d5d38, + 0x385b3466,0x66762d5d,0x5d385b34,0x3466762d,0x2d5d385b,0x5b346676,0x762d5d38,0x385b3466, + 0x66762d5d,0x66762d34,0x003b3134,0x00030005,0x0000003a,0x0074616d,0x00060005,0x00000040, + 0x44726270,0x5847475f,0x3b316628,0x003b3166,0x00040005,0x0000003e,0x746f644e,0x00000048, + 0x00030005,0x0000003f,0x00000061,0x00080005,0x00000044,0x47726270,0x6863535f,0x6b63696c, + 0x28584747,0x663b3166,0x00003b31,0x00040005,0x00000042,0x746f644e,0x00000058,0x00030005, + 0x00000043,0x00000061,0x00080005,0x0000004a,0x47726270,0x696d535f,0x66286874,0x31663b31, + 0x3b31663b,0x00000000,0x00040005,0x00000047,0x746f644e,0x00000056,0x00040005,0x00000048, + 0x746f644e,0x0000004c,0x00030005,0x00000049,0x00000061,0x00080005,0x0000004f,0x46726270, + 0x6863535f,0x6b63696c,0x3b316628,0x3b336676,0x00000000,0x00040005,0x0000004d,0x746f6456, + 0x00000048,0x00030005,0x0000004e,0x00003046,0x001e0005,0x00000056,0x45726270,0x286c6176, + 0x3b336676,0x3b336676,0x3b336676,0x75727473,0x522d7463,0x74614d54,0x61697265,0x66762d6c, + 0x66762d34,0x66762d34,0x66762d34,0x66762d34,0x66762d34,0x5d385b34,0x3466762d,0x2d5d385b, + 0x5b346676,0x762d5d38,0x385b3466,0x66762d5d,0x5d385b34,0x3466762d,0x2d5d385b,0x2d346676, + 0x31346676,0x0000003b,0x00030005,0x00000052,0x0000004e,0x00030005,0x00000053,0x00000056, + 0x00030005,0x00000054,0x0000004c,0x00030005,0x00000055,0x0074616d,0x00070005,0x0000005b, + 0x706d6173,0x4747656c,0x66762858,0x31663b32,0x0000003b,0x00030005,0x00000059,0x00000075, + 0x00030005,0x0000005a,0x00000061,0x00040005,0x0000005f,0x49746948,0x006f666e,0x00040006, + 0x0000005f,0x00000000,0x00746968,0x00040006,0x0000005f,0x00000001,0x00000074,0x00040006, + 0x0000005f,0x00000002,0x00736f70,0x00050006,0x0000005f,0x00000003,0x6d726f6e,0x00006c61, + 0x00070006,0x0000005f,0x00000004,0x6574616d,0x6c616972,0x65646e49,0x00000078,0x00060006, + 0x0000005f,0x00000005,0x6d697270,0x76697469,0x00644965,0x00090005,0x00000064,0x63617274, + 0x6f6c4365,0x74736573,0x33667628,0x3366763b,0x3b31663b,0x00000000,0x00040005,0x00000061, + 0x6769726f,0x00006e69,0x00030005,0x00000062,0x00726964,0x00040005,0x00000063,0x78614d74, + 0x00000000,0x000a0005,0x0000006a,0x64616873,0x7254776f,0x6d736e61,0x61747469,0x2865636e, + 0x3b336676,0x3b336676,0x003b3166,0x00040005,0x00000067,0x6769726f,0x00006e69,0x00030005, + 0x00000068,0x00726964,0x00040005,0x00000069,0x78614d74,0x00000000,0x00090005,0x00000070, + 0x6e696f63,0x7874725f,0x286f615f,0x3b336676,0x3b336676,0x3b326676,0x00000000,0x00050005, + 0x0000006d,0x6c726f77,0x736f5064,0x00000000,0x00040005,0x0000006e,0x6c726f77,0x00004e64, + 0x00040005,0x0000006f,0x64656573,0x00000000,0x00200005,0x00000076,0x6e696f63,0x7874725f, + 0x756f675f,0x64756172,0x33667628,0x3366763b,0x3366763b,0x7274733b,0x2d746375,0x614d5452, 0x69726574,0x762d6c61,0x762d3466,0x762d3466,0x762d3466,0x762d3466,0x762d3466,0x385b3466, 0x66762d5d,0x5d385b34,0x3466762d,0x2d5d385b,0x5b346676,0x762d5d38,0x385b3466,0x66762d5d, - 0x5d385b34,0x3466762d,0x3466762d,0x00003b31,0x00030005,0x00000036,0x0074616d,0x001a0005, - 0x0000003b,0x46726270,0x74732830,0x74637572,0x4d54522d,0x72657461,0x2d6c6169,0x2d346676, - 0x2d346676,0x2d346676,0x2d346676,0x2d346676,0x5b346676,0x762d5d38,0x385b3466,0x66762d5d, - 0x5d385b34,0x3466762d,0x2d5d385b,0x5b346676,0x762d5d38,0x385b3466,0x66762d5d,0x66762d34, - 0x003b3134,0x00030005,0x0000003a,0x0074616d,0x00060005,0x00000040,0x44726270,0x5847475f, - 0x3b316628,0x003b3166,0x00040005,0x0000003e,0x746f644e,0x00000048,0x00030005,0x0000003f, - 0x00000061,0x00080005,0x00000044,0x47726270,0x6863535f,0x6b63696c,0x28584747,0x663b3166, - 0x00003b31,0x00040005,0x00000042,0x746f644e,0x00000058,0x00030005,0x00000043,0x00000061, - 0x00080005,0x0000004a,0x47726270,0x696d535f,0x66286874,0x31663b31,0x3b31663b,0x00000000, - 0x00040005,0x00000047,0x746f644e,0x00000056,0x00040005,0x00000048,0x746f644e,0x0000004c, - 0x00030005,0x00000049,0x00000061,0x00080005,0x0000004f,0x46726270,0x6863535f,0x6b63696c, - 0x3b316628,0x3b336676,0x00000000,0x00040005,0x0000004d,0x746f6456,0x00000048,0x00030005, - 0x0000004e,0x00003046,0x001e0005,0x00000056,0x45726270,0x286c6176,0x3b336676,0x3b336676, + 0x5d385b34,0x3466762d,0x3466762d,0x00003b31,0x00050005,0x00000072,0x6c726f77,0x736f5064, + 0x00000000,0x00050005,0x00000073,0x6c726f77,0x726f4e64,0x006c616d,0x00050005,0x00000074, + 0x65736162,0x6f6c6f43,0x00000072,0x00030005,0x00000075,0x0074616d,0x00220005,0x0000007c, + 0x6e696f63,0x7874725f,0x7269645f,0x4c746365,0x74686769,0x28676e69,0x3b336676,0x3b336676, 0x3b336676,0x75727473,0x522d7463,0x74614d54,0x61697265,0x66762d6c,0x66762d34,0x66762d34, 0x66762d34,0x66762d34,0x66762d34,0x5d385b34,0x3466762d,0x2d5d385b,0x5b346676,0x762d5d38, 0x385b3466,0x66762d5d,0x5d385b34,0x3466762d,0x2d5d385b,0x2d346676,0x31346676,0x0000003b, - 0x00030005,0x00000052,0x0000004e,0x00030005,0x00000053,0x00000056,0x00030005,0x00000054, - 0x0000004c,0x00030005,0x00000055,0x0074616d,0x00070005,0x0000005b,0x706d6173,0x4747656c, - 0x66762858,0x31663b32,0x0000003b,0x00030005,0x00000059,0x00000075,0x00030005,0x0000005a, - 0x00000061,0x00040005,0x0000005f,0x49746948,0x006f666e,0x00040006,0x0000005f,0x00000000, - 0x00746968,0x00040006,0x0000005f,0x00000001,0x00000074,0x00040006,0x0000005f,0x00000002, - 0x00736f70,0x00050006,0x0000005f,0x00000003,0x6d726f6e,0x00006c61,0x00070006,0x0000005f, - 0x00000004,0x6574616d,0x6c616972,0x65646e49,0x00000078,0x00060006,0x0000005f,0x00000005, - 0x6d697270,0x76697469,0x00644965,0x00090005,0x00000064,0x63617274,0x6f6c4365,0x74736573, - 0x33667628,0x3366763b,0x3b31663b,0x00000000,0x00040005,0x00000061,0x6769726f,0x00006e69, - 0x00030005,0x00000062,0x00726964,0x00040005,0x00000063,0x78614d74,0x00000000,0x00080005, - 0x0000006a,0x63617274,0x61685365,0x28776f64,0x3b336676,0x3b336676,0x003b3166,0x00040005, - 0x00000067,0x6769726f,0x00006e69,0x00030005,0x00000068,0x00726964,0x00040005,0x00000069, - 0x78614d74,0x00000000,0x00090005,0x00000070,0x6e696f63,0x7874725f,0x286f615f,0x3b336676, - 0x3b336676,0x3b326676,0x00000000,0x00050005,0x0000006d,0x6c726f77,0x736f5064,0x00000000, - 0x00040005,0x0000006e,0x6c726f77,0x00004e64,0x00040005,0x0000006f,0x64656573,0x00000000, - 0x00200005,0x00000076,0x6e696f63,0x7874725f,0x756f675f,0x64756172,0x33667628,0x3366763b, + 0x00050005,0x00000078,0x6c726f77,0x736f5064,0x00000000,0x00040005,0x00000079,0x6c726f77, + 0x00004e64,0x00040005,0x0000007a,0x44796172,0x00007269,0x00030005,0x0000007b,0x0074616d, + 0x00210005,0x00000083,0x6e696f63,0x7874725f,0x65656e5f,0x73696d45,0x65766973,0x33667628, 0x3366763b,0x7274733b,0x2d746375,0x614d5452,0x69726574,0x762d6c61,0x762d3466,0x762d3466, 0x762d3466,0x762d3466,0x762d3466,0x385b3466,0x66762d5d,0x5d385b34,0x3466762d,0x2d5d385b, - 0x5b346676,0x762d5d38,0x385b3466,0x66762d5d,0x5d385b34,0x3466762d,0x3466762d,0x00003b31, - 0x00040005,0x00000072,0x50657965,0x0000736f,0x00050005,0x00000073,0x4e657965,0x616d726f, - 0x0000006c,0x00050005,0x00000074,0x65736162,0x6f6c6f43,0x00000072,0x00030005,0x00000075, - 0x0074616d,0x00220005,0x0000007c,0x6e696f63,0x7874725f,0x7269645f,0x4c746365,0x74686769, - 0x28676e69,0x3b336676,0x3b336676,0x3b336676,0x75727473,0x522d7463,0x74614d54,0x61697265, - 0x66762d6c,0x66762d34,0x66762d34,0x66762d34,0x66762d34,0x66762d34,0x5d385b34,0x3466762d, - 0x2d5d385b,0x5b346676,0x762d5d38,0x385b3466,0x66762d5d,0x5d385b34,0x3466762d,0x2d5d385b, - 0x2d346676,0x31346676,0x0000003b,0x00050005,0x00000078,0x6c726f77,0x736f5064,0x00000000, - 0x00040005,0x00000079,0x6c726f77,0x00004e64,0x00040005,0x0000007a,0x44796172,0x00007269, - 0x00030005,0x0000007b,0x0074616d,0x00210005,0x00000083,0x6e696f63,0x7874725f,0x65656e5f, - 0x73696d45,0x65766973,0x33667628,0x3366763b,0x7274733b,0x2d746375,0x614d5452,0x69726574, - 0x762d6c61,0x762d3466,0x762d3466,0x762d3466,0x762d3466,0x762d3466,0x385b3466,0x66762d5d, - 0x5d385b34,0x3466762d,0x2d5d385b,0x5b346676,0x762d5d38,0x385b3466,0x66762d5d,0x5d385b34, - 0x3466762d,0x3466762d,0x66763b31,0x00003b33,0x00050005,0x0000007f,0x6c726f77,0x736f5064, - 0x00000000,0x00040005,0x00000080,0x6c726f77,0x00004e64,0x00030005,0x00000081,0x0074616d, - 0x00050005,0x00000082,0x706d6173,0x6958656c,0x00000000,0x00030005,0x00000085,0x00000073, - 0x00040005,0x000000b2,0x61726170,0x0000006d,0x00040005,0x000000b4,0x61726170,0x0000006d, - 0x00040005,0x000000b6,0x61726170,0x0000006d,0x00040005,0x000000bc,0x61726170,0x0000006d, - 0x00040005,0x000000be,0x61726170,0x0000006d,0x00040005,0x000000c0,0x61726170,0x0000006d, - 0x00030005,0x000000c9,0x00000061,0x00030005,0x000000cf,0x00696870,0x00050005,0x000000e6, - 0x6d617246,0x6f6c4265,0x00006b63,0x00050006,0x000000e6,0x00000000,0x69765f75,0x00007765, - 0x00070006,0x000000e6,0x00000001,0x69765f75,0x6e497765,0x73726576,0x00000065,0x00070006, - 0x000000e6,0x00000002,0x72705f75,0x6e496a6f,0x73726576,0x00000065,0x00060006,0x000000e6, - 0x00000003,0x61635f75,0x6172656d,0x00736f50,0x00060006,0x000000e6,0x00000004,0x69765f75, - 0x6f707765,0x00007472,0x00050006,0x000000e6,0x00000005,0x67625f75,0x00706f54,0x00060006, - 0x000000e6,0x00000006,0x67625f75,0x74746f42,0x00006d6f,0x00050006,0x000000e6,0x00000007, - 0x74735f75,0x00657461,0x00060006,0x000000e6,0x00000008,0x64615f75,0x69747061,0x00006576, - 0x00070006,0x000000e6,0x00000009,0x72705f75,0x69567665,0x72507765,0x00006a6f,0x00060006, - 0x000000e6,0x0000000a,0x65745f75,0x726f706d,0x00006c61,0x00050006,0x000000e6,0x0000000b, - 0x656e5f75,0x00000065,0x00050006,0x000000e6,0x0000000c,0x6e655f75,0x00000076,0x00060006, - 0x000000e6,0x0000000d,0x6e655f75,0x6c6f4376,0x0000726f,0x00060006,0x000000e6,0x0000000e, - 0x6e655f75,0x6f6f5276,0x0000006d,0x00070006,0x000000e6,0x0000000f,0x6e655f75,0x6f6f5276, - 0x6f6c466d,0x0000726f,0x00070006,0x000000e6,0x00000010,0x6e655f75,0x6f6f5276,0x6965436d, - 0x0000006c,0x00070006,0x000000e6,0x00000011,0x6e655f75,0x6f6f5276,0x6163536d,0x0000656c, - 0x00040005,0x000000e8,0x6d617266,0x00000065,0x00030005,0x000000fa,0x00000045,0x00040005, - 0x00000100,0x6f6f6c66,0x00005972,0x00040005,0x00000104,0x6c696563,0x00000059,0x00030005, - 0x00000107,0x0000006e,0x00030005,0x0000010a,0x00000074,0x00040005,0x0000010c,0x6f6c6f63, - 0x00000072,0x00030005,0x00000114,0x00007874,0x00030005,0x00000128,0x00007874,0x00030005, - 0x0000013d,0x00007a74,0x00030005,0x00000150,0x00007a74,0x00030005,0x00000164,0x00007974, - 0x00030005,0x0000017a,0x00007974,0x00030005,0x0000018d,0x00000074,0x00030005,0x000001a0, - 0x0000006e,0x00030005,0x000001a3,0x00766e65,0x00040005,0x000001a4,0x61726170,0x0000006d, - 0x00030005,0x000001aa,0x00000064,0x00030005,0x000001af,0x006e7573,0x00030005,0x000001c1, - 0x00007075,0x00040005,0x000001cc,0x676e6174,0x00746e65,0x00050005,0x000001d1,0x61746962, - 0x6e65676e,0x00000074,0x00040005,0x000001d5,0x73616870,0x00000065,0x00030005,0x000001d6, - 0x00727269,0x00030005,0x000001d8,0x00000069,0x00030005,0x000001e2,0x00006966,0x00040005, - 0x000001e9,0x54736f63,0x00000000,0x00040005,0x000001f1,0x546e6973,0x00000000,0x00030005, - 0x000001f8,0x00726964,0x00040005,0x0000020a,0x61726170,0x0000006d,0x00030005,0x0000021c, - 0x00006e72,0x00040005,0x0000021f,0x67756f72,0x00000068,0x00050005,0x00000222,0x69646172, - 0x65636e61,0x00000000,0x00040005,0x00000223,0x61726170,0x0000006d,0x00050005,0x00000226, - 0x416e7573,0x6e67696c,0x00000000,0x00030005,0x0000024d,0x00003261,0x00030005,0x00000251, - 0x00000064,0x00030005,0x00000263,0x0000006b,0x00040005,0x00000271,0x61726170,0x0000006d, - 0x00040005,0x00000273,0x61726170,0x0000006d,0x00040005,0x00000276,0x61726170,0x0000006d, - 0x00040005,0x00000278,0x61726170,0x0000006d,0x00030005,0x0000028b,0x00000048,0x00040005, - 0x00000290,0x746f644e,0x00000056,0x00040005,0x00000296,0x746f644e,0x0000004c,0x00040005, - 0x0000029b,0x746f644e,0x00000048,0x00040005,0x000002a0,0x746f6456,0x00000048,0x00030005, - 0x000002a5,0x00000061,0x00040005,0x000002a6,0x61726170,0x0000006d,0x00030005,0x000002a9, - 0x00000046,0x00040005,0x000002aa,0x61726170,0x0000006d,0x00040005,0x000002ad,0x61726170, - 0x0000006d,0x00040005,0x000002af,0x61726170,0x0000006d,0x00030005,0x000002b1,0x0000646b, - 0x00040005,0x000002c1,0x61726170,0x0000006d,0x00040005,0x000002c3,0x61726170,0x0000006d, - 0x00040005,0x000002c7,0x61726170,0x0000006d,0x00040005,0x000002c9,0x61726170,0x0000006d, - 0x00040005,0x000002cb,0x61726170,0x0000006d,0x00030005,0x000002d9,0x00696870,0x00050005, - 0x000002dd,0x54736f63,0x61746568,0x00000000,0x00050005,0x000002ec,0x546e6973,0x61746568, - 0x00000000,0x00030005,0x00000301,0x00000071,0x00040005,0x00000304,0x73616c74,0x00000000, - 0x00030005,0x00000311,0x00000068,0x00030005,0x00000332,0x0074616d,0x00050005,0x00000339, - 0x614d5452,0x69726574,0x00006c61,0x00050006,0x00000339,0x00000000,0x66666964,0x00657375, - 0x00050006,0x00000339,0x00000001,0x69626d61,0x00746e65,0x00060006,0x00000339,0x00000002, - 0x63657073,0x72616c75,0x00000000,0x00060006,0x00000339,0x00000003,0x73696d65,0x65766973, - 0x00000000,0x00050006,0x00000339,0x00000004,0x61726170,0x0000736d,0x00060006,0x00000339, - 0x00000005,0x6867696c,0x70795474,0x00000065,0x00060006,0x00000339,0x00000006,0x6867696c, - 0x6c6f4374,0x0000726f,0x00070006,0x00000339,0x00000007,0x6867696c,0x72694474,0x69746365, - 0x00006e6f,0x00070006,0x00000339,0x00000008,0x6867696c,0x736f5074,0x6f697469,0x0000006e, - 0x00080006,0x00000339,0x00000009,0x6867696c,0x74744174,0x61756e65,0x6e6f6974,0x00000000, - 0x00060006,0x00000339,0x0000000a,0x6867696c,0x6f705374,0x00000074,0x00070006,0x00000339, - 0x0000000b,0x61697274,0x656c676e,0x61746144,0x00000000,0x00040006,0x00000339,0x0000000c, - 0x00726270,0x00050005,0x0000033b,0x6574614d,0x6c616972,0x00000073,0x00060006,0x0000033b, - 0x00000000,0x6574616d,0x6c616972,0x00000073,0x00050005,0x0000033d,0x4274616d,0x65666675, - 0x00000072,0x00040005,0x000003c3,0x6d697270,0x00000000,0x00050005,0x000003c6,0x6d726f6e, - 0x6e496c61,0x00786564,0x00040005,0x000003cc,0x4e6a626f,0x00000000,0x00050005,0x000003ce, - 0x6d726f4e,0x6f506c61,0x00006c6f,0x00070006,0x000003ce,0x00000000,0x61697274,0x656c676e, - 0x6d726f4e,0x00736c61,0x00070005,0x000003d0,0x6d726f6e,0x6f506c61,0x75426c6f,0x72656666, - 0x00000000,0x00050005,0x000003e2,0x546a626f,0x726f576f,0x0000646c,0x00040005,0x000003f4, - 0x61526f74,0x00000079,0x00030005,0x00000408,0x00000071,0x00030005,0x00000418,0x0000004e, - 0x00030005,0x0000041b,0x00007075,0x00030005,0x00000422,0x00000054,0x00030005,0x00000427, - 0x00000042,0x00040005,0x0000042b,0x73616870,0x00000065,0x00030005,0x0000042f,0x00000050, - 0x00040005,0x00000434,0x69736976,0x00656c62,0x00030005,0x00000435,0x00000069,0x00030005, - 0x0000043d,0x00006966,0x00030005,0x00000442,0x00696870,0x00040005,0x00000445,0x54736f63, - 0x00000000,0x00040005,0x0000044c,0x546e6973,0x00000000,0x00030005,0x00000453,0x00726964, - 0x00040005,0x00000465,0x61726170,0x0000006d,0x00040005,0x00000467,0x61726170,0x0000006d, - 0x00040005,0x00000469,0x61726170,0x0000006d,0x00030005,0x00000476,0x0000004e,0x00030005, - 0x00000479,0x00000056,0x00050005,0x0000048b,0x4374696c,0x726f6c6f,0x00000000,0x00050005, - 0x0000048f,0x6867696c,0x756f4374,0x0000746e,0x00030005,0x00000493,0x00000069,0x00030005, - 0x000004a1,0x0000004c,0x00050005,0x000004a6,0x65747461,0x7461756e,0x006e6f69,0x00050005, - 0x000004a7,0x746f7073,0x74636146,0x0000726f,0x00050005,0x000004ae,0x6867696c,0x63655674, - 0x00726f74,0x00060005,0x000004b5,0x74736964,0x65636e61,0x694c6f54,0x00746867,0x00030005, - 0x000004c2,0x00747461,0x00040005,0x000004de,0x656e6f63,0x00726944,0x00050005,0x000004e4, - 0x6d6f7266,0x6867694c,0x00000074,0x00040005,0x000004ec,0x746f7073,0x00736f43,0x00030005, - 0x000004fe,0x00006e4c,0x00040005,0x00000501,0x746f644e,0x0000004c,0x00030005,0x00000506, - 0x00000048,0x00040005,0x0000050b,0x746f644e,0x00000048,0x00050005,0x00000510,0x6e696873, - 0x73656e69,0x00000073,0x00060005,0x00000516,0x63657073,0x72616c75,0x74636146,0x0000726f, - 0x00040005,0x00000521,0x66666964,0x00657375,0x00050005,0x00000525,0x63657073,0x72616c75, - 0x00000000,0x00040005,0x00000545,0x50657965,0x0000736f,0x00030005,0x00000550,0x0000004e, - 0x00030005,0x0000055d,0x00000056,0x00030005,0x00000561,0x0074696c,0x00050005,0x00000565, - 0x6867696c,0x756f4374,0x0000746e,0x00030005,0x00000569,0x00000069,0x00050005,0x00000577, - 0x65747461,0x7461756e,0x006e6f69,0x00050005,0x00000578,0x746f7073,0x74636146,0x0000726f, - 0x00050005,0x00000579,0x74736964,0x694c6f54,0x00746867,0x00050005,0x00000580,0x6867696c, - 0x63655674,0x00726f74,0x00030005,0x0000058e,0x0000004c,0x00030005,0x00000593,0x00747461, - 0x00040005,0x000005ae,0x656e6f63,0x00726944,0x00050005,0x000005b4,0x6d6f7266,0x6867694c, - 0x00000074,0x00040005,0x000005bc,0x746f7073,0x00736f43,0x00040005,0x000005d3,0x746f644e, - 0x0000004c,0x00040005,0x000005dd,0x6c726f77,0x00004c64,0x00040005,0x000005ef,0x61726170, - 0x0000006d,0x00040005,0x000005f0,0x61726170,0x0000006d,0x00040005,0x000005f2,0x61726170, - 0x0000006d,0x00060005,0x000005fc,0x746e6f63,0x75626972,0x6e6f6974,0x00000000,0x00040005, - 0x000005ff,0x61726170,0x0000006d,0x00040005,0x00000601,0x61726170,0x0000006d,0x00040005, - 0x00000603,0x61726170,0x0000006d,0x00040005,0x00000604,0x61726170,0x0000006d,0x00030005, - 0x0000060a,0x00000048,0x00040005,0x00000610,0x746f644e,0x00000048,0x00050005,0x00000615, - 0x6e696873,0x73656e69,0x00000073,0x00060005,0x0000061a,0x63657073,0x72616c75,0x74636146, - 0x0000726f,0x00030005,0x00000644,0x0000004e,0x00030005,0x0000064c,0x00000074,0x00050005, - 0x00000655,0x5465654e,0x6e616972,0x00656c67,0x00040006,0x00000655,0x00000000,0x00003076, - 0x00040006,0x00000655,0x00000001,0x00003176,0x00040006,0x00000655,0x00000002,0x00003276, - 0x00050006,0x00000655,0x00000003,0x6f6c6f63,0x00000072,0x00050006,0x00000655,0x00000004, - 0x726f6678,0x0000006d,0x00030005,0x00000657,0x0000746e,0x00050005,0x00000658,0x5465654e, - 0x6e616972,0x00656c67,0x00040006,0x00000658,0x00000000,0x00003076,0x00040006,0x00000658, - 0x00000001,0x00003176,0x00040006,0x00000658,0x00000002,0x00003276,0x00050006,0x00000658, - 0x00000003,0x6f6c6f63,0x00000072,0x00050006,0x00000658,0x00000004,0x726f6678,0x0000006d, - 0x00040005,0x0000065a,0x5065654e,0x006c6f6f,0x00060006,0x0000065a,0x00000000,0x61697274, - 0x656c676e,0x00000073,0x00040005,0x0000065c,0x5065656e,0x006c6f6f,0x00040005,0x0000066c, - 0x61657261,0x00000000,0x00030005,0x00000671,0x00003062,0x00030005,0x00000674,0x00003162, - 0x00040005,0x00000681,0x6a624f70,0x00000000,0x00040005,0x00000696,0x726f5770,0x0000646c, - 0x00030005,0x000006a0,0x00003165,0x00030005,0x000006b0,0x00003265,0x00040005,0x000006c0, - 0x6867696c,0x00004e74,0x00050005,0x000006c4,0x6867696c,0x654c4e74,0x0000006e,0x00040005, - 0x000006d1,0x694c6f74,0x00746867,0x00040005,0x000006d5,0x74736964,0x00000000,0x00030005, - 0x000006dd,0x0000004c,0x00040005,0x000006e2,0x4c736f63,0x00000000,0x00040005,0x000006e7, - 0x53736f63,0x00000000,0x00040005,0x000006f9,0x61726170,0x0000006d,0x00040005,0x000006fa, - 0x61726170,0x0000006d,0x00040005,0x000006fc,0x61726170,0x0000006d,0x00040005,0x00000701, - 0x50657965,0x0000736f,0x00040005,0x0000070b,0x4e657965,0x00000000,0x00040005,0x00000718, - 0x56657965,0x00000000,0x00040005,0x0000071c,0x4c657965,0x00000000,0x00060005,0x0000072c, - 0x746e6f63,0x75626972,0x6e6f6974,0x00000000,0x00040005,0x0000072d,0x61726170,0x0000006d, - 0x00040005,0x0000072f,0x61726170,0x0000006d,0x00040005,0x00000731,0x61726170,0x0000006d, - 0x00040005,0x00000733,0x61726170,0x0000006d,0x00030005,0x00000739,0x00000048,0x00040005, - 0x0000073e,0x746f644e,0x00000048,0x00050005,0x00000743,0x6e696873,0x73656e69,0x00000073, - 0x00060005,0x00000748,0x63657073,0x72616c75,0x74636146,0x0000726f,0x00030005,0x0000075e, - 0x00666470,0x00030005,0x00000776,0x00007870,0x00080005,0x00000779,0x475f6c67,0x61626f6c, - 0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00050005,0x00000791,0x6d617266,0x646e4965, - 0x00007865,0x00050005,0x00000796,0x6e457470,0x656c6261,0x00000064,0x00060005,0x00000799, - 0x75636361,0x616c756d,0x676e6974,0x00000000,0x00050005,0x0000079c,0x4278616d,0x636e756f, - 0x00007365,0x00040005,0x000007a2,0x65646e69,0x00000078,0x00040005,0x000007c7,0x6572506e, - 0x00000076,0x00050005,0x000007c9,0x75636341,0x6675426d,0x00726566,0x00050006,0x000007c9, - 0x00000000,0x75636361,0x0000006d,0x00030005,0x000007cb,0x00000000,0x00050005,0x000007d1, - 0x536e696d,0x6c706d61,0x00007365,0x00040005,0x000007db,0x6e61656d,0x00000000,0x00030005, - 0x000007e4,0x00003276,0x00050005,0x000007e6,0x536d7553,0x66754271,0x00726566,0x00040006, - 0x000007e6,0x00000000,0x00007173,0x00030005,0x000007e8,0x00000000,0x00040005,0x000007f6, - 0x566c6572,0x00007261,0x00030005,0x000007ff,0x0000326d,0x00060005,0x00000812,0x726f7473, - 0x49656761,0x6567616d,0x00000000,0x00040005,0x00000820,0x7474696a,0x00007265,0x00040005, - 0x00000829,0x61726170,0x0000006d,0x00040005,0x0000082c,0x61726170,0x0000006d,0x00040005, - 0x0000082f,0x61726170,0x0000006d,0x00030005,0x00000832,0x00007675,0x00030005,0x0000083d, - 0x0063646e,0x00050005,0x00000847,0x77656976,0x67726154,0x00007465,0x00040005,0x0000084f, - 0x56726964,0x00776569,0x00040005,0x0000085b,0x6769726f,0x00006e69,0x00030005,0x00000865, - 0x00726964,0x00030005,0x00000880,0x00000068,0x00040005,0x00000881,0x61726170,0x0000006d, - 0x00040005,0x00000883,0x61726170,0x0000006d,0x00040005,0x00000885,0x61726170,0x0000006d, - 0x00030005,0x00000899,0x00000068,0x00040005,0x0000089a,0x61726170,0x0000006d,0x00040005, - 0x0000089c,0x61726170,0x0000006d,0x00040005,0x0000089e,0x61726170,0x0000006d,0x00030005, - 0x000008a0,0x00626772,0x00030005,0x000008a5,0x0074616d,0x00040005,0x00000929,0x61726170, - 0x0000006d,0x00040005,0x0000092c,0x61726170,0x0000006d,0x00040005,0x0000092f,0x61726170, - 0x0000006d,0x00040005,0x00000931,0x61726170,0x0000006d,0x00040005,0x0000093e,0x50657965, - 0x0000736f,0x00040005,0x00000949,0x4e657965,0x00000000,0x00040005,0x00000957,0x61726170, - 0x0000006d,0x00040005,0x00000959,0x61726170,0x0000006d,0x00040005,0x0000095b,0x61726170, - 0x0000006d,0x00040005,0x0000095f,0x61726170,0x0000006d,0x00030005,0x00000967,0x00000074, - 0x00040005,0x0000097e,0x61726170,0x0000006d,0x00030005,0x00000995,0x00000068,0x00040005, - 0x00000996,0x61726170,0x0000006d,0x00040005,0x00000998,0x61726170,0x0000006d,0x00040005, - 0x0000099a,0x61726170,0x0000006d,0x00030005,0x000009a0,0x0074616d,0x00030005,0x00000a1f, - 0x0000004e,0x00030005,0x00000a23,0x00000056,0x00040005,0x00000a26,0x66666964,0x00657375, - 0x00030005,0x00000a2a,0x0000646b,0x00040005,0x00000a31,0x61726170,0x0000006d,0x00050005, - 0x00000a3c,0x446c6269,0x75666669,0x00006573,0x00040005,0x00000a40,0x61726170,0x0000006d, - 0x00050005,0x00000a46,0x67756f72,0x73656e68,0x00000073,0x00030005,0x00000a52,0x00000052, - 0x00030005,0x00000a57,0x00003046,0x00040005,0x00000a5e,0x61726170,0x0000006d,0x00040005, - 0x00000a68,0x746f644e,0x00000056,0x00040005,0x00000a6d,0x73657246,0x00000000,0x00040005, - 0x00000a76,0x536c6269,0x00636570,0x00040005,0x00000a78,0x61726170,0x0000006d,0x00040005, - 0x00000a7a,0x61726170,0x0000006d,0x00030005,0x00000a7e,0x00626772,0x00040005,0x00000a87, - 0x61726170,0x0000006d,0x00040005,0x00000a8a,0x61726170,0x0000006d,0x00040005,0x00000a8d, - 0x61726170,0x0000006d,0x00040005,0x00000a8f,0x61726170,0x0000006d,0x00040005,0x00000a9a, - 0x50657965,0x0000736f,0x00040005,0x00000aa5,0x4e657965,0x00000000,0x00040005,0x00000ab3, - 0x61726170,0x0000006d,0x00040005,0x00000ab5,0x61726170,0x0000006d,0x00040005,0x00000ab7, - 0x61726170,0x0000006d,0x00040005,0x00000abb,0x61726170,0x0000006d,0x00060005,0x00000ac6, - 0x6d726f4e,0x75426c61,0x72656666,0x00000000,0x00050006,0x00000ac6,0x00000000,0x6d726f6e, - 0x00736c61,0x00030005,0x00000ac8,0x00000000,0x00060005,0x00000ad2,0x69736f50,0x6e6f6974, - 0x66667542,0x00007265,0x00060006,0x00000ad2,0x00000000,0x69736f70,0x6e6f6974,0x00000073, - 0x00030005,0x00000ad4,0x00000000,0x00060005,0x00000ae0,0x65626c41,0x75426f64,0x72656666, - 0x00000000,0x00050006,0x00000ae0,0x00000000,0x65626c61,0x00736f64,0x00030005,0x00000ae2, - 0x00000000,0x00040005,0x00000aed,0x61726170,0x0000006d,0x00030005,0x00000b0d,0x00000068, - 0x00040005,0x00000b0e,0x61726170,0x0000006d,0x00040005,0x00000b10,0x61726170,0x0000006d, - 0x00040005,0x00000b12,0x61726170,0x0000006d,0x00030005,0x00000b18,0x0074616d,0x00030005, - 0x00000b97,0x00006f61,0x00040005,0x00000b98,0x61726170,0x0000006d,0x00040005,0x00000b9b, - 0x61726170,0x0000006d,0x00040005,0x00000b9e,0x61726170,0x0000006d,0x00040005,0x00000ba1, - 0x61726170,0x0000006d,0x00040005,0x00000ba4,0x61726170,0x0000006d,0x00040005,0x00000ba7, - 0x61726170,0x0000006d,0x00030005,0x00000bae,0x00626772,0x00040005,0x00000bb4,0x61726170, - 0x0000006d,0x00040005,0x00000bb7,0x61726170,0x0000006d,0x00040005,0x00000bba,0x61726170, - 0x0000006d,0x00040005,0x00000bbc,0x61726170,0x0000006d,0x00040005,0x00000bca,0x50657965, - 0x0000736f,0x00040005,0x00000bd5,0x4e657965,0x00000000,0x00040005,0x00000be8,0x61726170, - 0x0000006d,0x00040005,0x00000bea,0x61726170,0x0000006d,0x00040005,0x00000bec,0x61726170, - 0x0000006d,0x00040005,0x00000bf0,0x61726170,0x0000006d,0x00030005,0x00000c1e,0x00000074, - 0x00040005,0x00000c35,0x61726170,0x0000006d,0x00050005,0x00000c44,0x69646172,0x65636e61, - 0x00000000,0x00040005,0x00000c45,0x67696577,0x00007468,0x00050005,0x00000c46,0x4f796172, - 0x69676972,0x0000006e,0x00040005,0x00000c48,0x44796172,0x00007269,0x00040005,0x00000c4a, - 0x7473616c,0x00666450,0x00040005,0x00000c4b,0x6e756f62,0x00006563,0x00030005,0x00000c54, - 0x00000068,0x00040005,0x00000c55,0x61726170,0x0000006d,0x00040005,0x00000c57,0x61726170, - 0x0000006d,0x00040005,0x00000c59,0x61726170,0x0000006d,0x00030005,0x00000c60,0x00000074, - 0x00040005,0x00000c69,0x4d766e65,0x00737369,0x00040005,0x00000c6a,0x61726170,0x0000006d, - 0x00060005,0x00000c94,0x69746f4d,0x75426e6f,0x72656666,0x00000000,0x00050006,0x00000c94, - 0x00000000,0x69746f6d,0x00736e6f,0x00030005,0x00000c96,0x00000000,0x00050005,0x00000cb0, - 0x76657270,0x70696c43,0x00000000,0x00040005,0x00000cba,0x65766f6d,0x00000000,0x00040005, - 0x00000cbc,0x696c6176,0x00000064,0x00040005,0x00000cc2,0x76657270,0x0063644e,0x00030005, - 0x00000ceb,0x0074616d,0x00060005,0x00000d77,0x73696d65,0x6e6f6973,0x67696557,0x00007468, - 0x00040005,0x00000d8d,0x6c6f6f70,0x00786449,0x00040005,0x00000da0,0x61657261,0x00746948, - 0x00040005,0x00000da5,0x65654e70,0x00000000,0x00040005,0x00000dab,0x64734270,0x00000066, - 0x00040005,0x00000dcf,0x61726170,0x0000006d,0x00040005,0x00000dd2,0x61726170,0x0000006d, - 0x00040005,0x00000dd5,0x61726170,0x0000006d,0x00040005,0x00000dd7,0x61726170,0x0000006d, - 0x00040005,0x00000deb,0x61726170,0x0000006d,0x00040005,0x00000dee,0x61726170,0x0000006d, - 0x00040005,0x00000df1,0x61726170,0x0000006d,0x00040005,0x00000df3,0x61726170,0x0000006d, - 0x00040005,0x00000df6,0x61726170,0x0000006d,0x00040005,0x00000df9,0x61726170,0x0000006d, - 0x00040005,0x00000dfb,0x61726170,0x0000006d,0x00030005,0x00000e00,0x0000006e,0x00040005, - 0x00000e04,0x65626c61,0x00006f64,0x00030005,0x00000e0d,0x00007075,0x00040005,0x00000e15, - 0x676e6174,0x00746e65,0x00050005,0x00000e1a,0x61746962,0x6e65676e,0x00000074,0x00030005, - 0x00000e1e,0x00000056,0x00040005,0x00000e21,0x746f644e,0x00000056,0x00050005,0x00000e26, - 0x6174656d,0x63696c6c,0x00000000,0x00030005,0x00000e2a,0x00000061,0x00040005,0x00000e2b, - 0x61726170,0x0000006d,0x00030005,0x00000e2e,0x00003046,0x00040005,0x00000e2f,0x61726170, - 0x0000006d,0x00030005,0x00000e32,0x00007646,0x00040005,0x00000e33,0x61726170,0x0000006d, - 0x00040005,0x00000e35,0x61726170,0x0000006d,0x00030005,0x00000e38,0x00003275,0x00040005, - 0x00000e40,0x61726170,0x0000006d,0x00040005,0x00000e43,0x61726170,0x0000006d,0x00040005, - 0x00000e46,0x61726170,0x0000006d,0x00030005,0x00000e4d,0x00000073,0x00040005,0x00000e54, - 0x61726170,0x0000006d,0x00040005,0x00000e57,0x61726170,0x0000006d,0x00040005,0x00000e5a, - 0x61726170,0x0000006d,0x00040005,0x00000e5c,0x61726170,0x0000006d,0x00040005,0x00000e5e, - 0x4477656e,0x00007269,0x00030005,0x00000e6e,0x00666470,0x00030005,0x00000e74,0x0000646b, - 0x00030005,0x00000e88,0x00007456,0x00030005,0x00000e93,0x00007448,0x00040005,0x00000e9b, - 0x61726170,0x0000006d,0x00040005,0x00000e9e,0x61726170,0x0000006d,0x00040005,0x00000ea1, - 0x61726170,0x0000006d,0x00040005,0x00000ea3,0x61726170,0x0000006d,0x00040005,0x00000ea4, - 0x61726170,0x0000006d,0x00030005,0x00000ea7,0x00000048,0x00030005,0x00000eb7,0x0000004c, - 0x00040005,0x00000ebd,0x746f644e,0x0000004c,0x00040005,0x00000ec2,0x746f6456,0x00000048, - 0x00040005,0x00000ec7,0x746f644e,0x00000048,0x00030005,0x00000ed6,0x00000046,0x00040005, - 0x00000ed7,0x61726170,0x0000006d,0x00040005,0x00000ed9,0x61726170,0x0000006d,0x00030005, - 0x00000edc,0x00000047,0x00040005,0x00000edd,0x61726170,0x0000006d,0x00040005,0x00000edf, - 0x61726170,0x0000006d,0x00040005,0x00000ee1,0x61726170,0x0000006d,0x00040005,0x00000ee4, - 0x61726170,0x0000006d,0x00040005,0x00000ee6,0x61726170,0x0000006d,0x00050005,0x00000f00, - 0x63657073,0x626f7250,0x00000000,0x00030005,0x00000f04,0x00007075,0x00040005,0x00000f0b, - 0x676e6174,0x00746e65,0x00050005,0x00000f10,0x61746962,0x6e65676e,0x00000074,0x00040005, - 0x00000f1c,0x61726170,0x0000006d,0x00040005,0x00000f1f,0x61726170,0x0000006d,0x00040005, - 0x00000f22,0x61726170,0x0000006d,0x00030005,0x00000f3b,0x00000073,0x00040005,0x00000f42, - 0x61726170,0x0000006d,0x00040005,0x00000f45,0x61726170,0x0000006d,0x00040005,0x00000f48, - 0x61726170,0x0000006d,0x00040005,0x00000f4a,0x61726170,0x0000006d,0x00030005,0x00000f71, - 0x00000070,0x00040005,0x00000f84,0x61726170,0x0000006d,0x00040005,0x00000f87,0x61726170, - 0x0000006d,0x00040005,0x00000f8a,0x61726170,0x0000006d,0x00050005,0x00000f98,0x4374756f, - 0x726f6c6f,0x00000000,0x00030005,0x00000fa2,0x00636361,0x00030005,0x00000fa6,0x00000073, - 0x00060005,0x00000faa,0x65726966,0x53796c66,0x616d6769,0x00000000,0x00040005,0x00000fb7, - 0x6e61656d,0x00000000,0x00030005,0x00000fbe,0x00003276,0x00040005,0x00000fca,0x6d676973, - 0x00000061,0x00050005,0x00000fd4,0x706d6173,0x754c656c,0x0000006d,0x00040005,0x00000fdd, - 0x6e61656d,0x006d754c,0x00040005,0x00001004,0x43646c6f,0x0070696c,0x00040005,0x00001015, - 0x4e646c6f,0x00006364,0x00040005,0x0000101c,0x50646c6f,0x00004678,0x00040005,0x0000102b, - 0x69537076,0x0000657a,0x00050005,0x00001030,0x50646c6f,0x6c657869,0x00000000,0x00030005, - 0x0000104f,0x00000071,0x00040005,0x00001058,0x746c6564,0x00000061,0x00080005,0x0000105a, - 0x69736f50,0x6e6f6974,0x74736948,0x4279726f,0x65666675,0x00000072,0x00050006,0x0000105a, - 0x00000000,0x48736f70,0x00747369,0x00030005,0x0000105c,0x00000000,0x00070005,0x00001081, - 0x75636341,0x7369486d,0x79726f74,0x66667542,0x00007265,0x00060006,0x00001081,0x00000000, - 0x75636361,0x7369486d,0x00000074,0x00030005,0x00001083,0x00000000,0x00070005,0x00001088, - 0x536d7553,0x73694871,0x79726f74,0x66667542,0x00007265,0x00050006,0x00001088,0x00000000, - 0x69487173,0x00007473,0x00030005,0x0000108a,0x00000000,0x00060005,0x0000108f,0x69746341, - 0x6f436576,0x65746e75,0x00000072,0x00050006,0x0000108f,0x00000000,0x6e756f63,0x00007374, - 0x00030005,0x00001091,0x00000000,0x00030047,0x000000e6,0x00000002,0x00040048,0x000000e6, - 0x00000000,0x00000005,0x00050048,0x000000e6,0x00000000,0x00000007,0x00000010,0x00050048, - 0x000000e6,0x00000000,0x00000023,0x00000000,0x00040048,0x000000e6,0x00000001,0x00000005, - 0x00050048,0x000000e6,0x00000001,0x00000007,0x00000010,0x00050048,0x000000e6,0x00000001, - 0x00000023,0x00000040,0x00040048,0x000000e6,0x00000002,0x00000005,0x00050048,0x000000e6, - 0x00000002,0x00000007,0x00000010,0x00050048,0x000000e6,0x00000002,0x00000023,0x00000080, - 0x00050048,0x000000e6,0x00000003,0x00000023,0x000000c0,0x00050048,0x000000e6,0x00000004, - 0x00000023,0x000000d0,0x00050048,0x000000e6,0x00000005,0x00000023,0x000000e0,0x00050048, - 0x000000e6,0x00000006,0x00000023,0x000000f0,0x00050048,0x000000e6,0x00000007,0x00000023, - 0x00000100,0x00050048,0x000000e6,0x00000008,0x00000023,0x00000110,0x00040048,0x000000e6, - 0x00000009,0x00000005,0x00050048,0x000000e6,0x00000009,0x00000007,0x00000010,0x00050048, - 0x000000e6,0x00000009,0x00000023,0x00000120,0x00050048,0x000000e6,0x0000000a,0x00000023, - 0x00000160,0x00050048,0x000000e6,0x0000000b,0x00000023,0x00000170,0x00050048,0x000000e6, - 0x0000000c,0x00000023,0x00000180,0x00050048,0x000000e6,0x0000000d,0x00000023,0x00000190, - 0x00050048,0x000000e6,0x0000000e,0x00000023,0x000001a0,0x00050048,0x000000e6,0x0000000f, - 0x00000023,0x000001b0,0x00050048,0x000000e6,0x00000010,0x00000023,0x000001c0,0x00050048, - 0x000000e6,0x00000011,0x00000023,0x000001d0,0x00040047,0x000000e8,0x00000021,0x00000002, - 0x00040047,0x000000e8,0x00000022,0x00000000,0x00040047,0x00000304,0x00000021,0x00000000, - 0x00040047,0x00000304,0x00000022,0x00000000,0x00040047,0x00000333,0x00000006,0x00000010, - 0x00040047,0x00000334,0x00000006,0x00000010,0x00040047,0x00000335,0x00000006,0x00000010, - 0x00040047,0x00000336,0x00000006,0x00000010,0x00040047,0x00000337,0x00000006,0x00000010, - 0x00040047,0x00000338,0x00000006,0x00000010,0x00050048,0x00000339,0x00000000,0x00000023, - 0x00000000,0x00050048,0x00000339,0x00000001,0x00000023,0x00000010,0x00050048,0x00000339, - 0x00000002,0x00000023,0x00000020,0x00050048,0x00000339,0x00000003,0x00000023,0x00000030, - 0x00050048,0x00000339,0x00000004,0x00000023,0x00000040,0x00050048,0x00000339,0x00000005, - 0x00000023,0x00000050,0x00050048,0x00000339,0x00000006,0x00000023,0x000000d0,0x00050048, - 0x00000339,0x00000007,0x00000023,0x00000150,0x00050048,0x00000339,0x00000008,0x00000023, - 0x000001d0,0x00050048,0x00000339,0x00000009,0x00000023,0x00000250,0x00050048,0x00000339, - 0x0000000a,0x00000023,0x000002d0,0x00050048,0x00000339,0x0000000b,0x00000023,0x00000350, - 0x00050048,0x00000339,0x0000000c,0x00000023,0x00000360,0x00040047,0x0000033a,0x00000006, - 0x00000370,0x00030047,0x0000033b,0x00000003,0x00050048,0x0000033b,0x00000000,0x00000023, - 0x00000000,0x00040047,0x0000033d,0x00000021,0x00000003,0x00040047,0x0000033d,0x00000022, - 0x00000000,0x00040047,0x000003cd,0x00000006,0x00000010,0x00030047,0x000003ce,0x00000003, - 0x00040048,0x000003ce,0x00000000,0x00000018,0x00050048,0x000003ce,0x00000000,0x00000023, - 0x00000000,0x00030047,0x000003d0,0x00000018,0x00040047,0x000003d0,0x00000021,0x00000007, - 0x00040047,0x000003d0,0x00000022,0x00000000,0x00050048,0x00000658,0x00000000,0x00000023, - 0x00000000,0x00050048,0x00000658,0x00000001,0x00000023,0x00000010,0x00050048,0x00000658, - 0x00000002,0x00000023,0x00000020,0x00050048,0x00000658,0x00000003,0x00000023,0x00000030, - 0x00040048,0x00000658,0x00000004,0x00000005,0x00050048,0x00000658,0x00000004,0x00000007, - 0x00000010,0x00050048,0x00000658,0x00000004,0x00000023,0x00000040,0x00040047,0x00000659, - 0x00000006,0x00000080,0x00030047,0x0000065a,0x00000003,0x00040048,0x0000065a,0x00000000, - 0x00000018,0x00050048,0x0000065a,0x00000000,0x00000023,0x00000000,0x00030047,0x0000065c, - 0x00000018,0x00040047,0x0000065c,0x00000021,0x0000000d,0x00040047,0x0000065c,0x00000022, - 0x00000000,0x00040047,0x00000779,0x0000000b,0x0000001c,0x00040047,0x000007c8,0x00000006, - 0x00000010,0x00030047,0x000007c9,0x00000003,0x00050048,0x000007c9,0x00000000,0x00000023, - 0x00000000,0x00040047,0x000007cb,0x00000021,0x00000004,0x00040047,0x000007cb,0x00000022, - 0x00000000,0x00040047,0x000007e5,0x00000006,0x00000010,0x00030047,0x000007e6,0x00000003, - 0x00050048,0x000007e6,0x00000000,0x00000023,0x00000000,0x00040047,0x000007e8,0x00000021, - 0x00000008,0x00040047,0x000007e8,0x00000022,0x00000000,0x00040047,0x00000812,0x00000021, - 0x00000001,0x00040047,0x00000812,0x00000022,0x00000000,0x00040047,0x00000ac5,0x00000006, - 0x00000010,0x00030047,0x00000ac6,0x00000003,0x00050048,0x00000ac6,0x00000000,0x00000023, - 0x00000000,0x00040047,0x00000ac8,0x00000021,0x00000005,0x00040047,0x00000ac8,0x00000022, - 0x00000000,0x00040047,0x00000ad1,0x00000006,0x00000010,0x00030047,0x00000ad2,0x00000003, - 0x00050048,0x00000ad2,0x00000000,0x00000023,0x00000000,0x00040047,0x00000ad4,0x00000021, - 0x00000006,0x00040047,0x00000ad4,0x00000022,0x00000000,0x00040047,0x00000adf,0x00000006, - 0x00000010,0x00030047,0x00000ae0,0x00000003,0x00050048,0x00000ae0,0x00000000,0x00000023, - 0x00000000,0x00040047,0x00000ae2,0x00000021,0x0000000e,0x00040047,0x00000ae2,0x00000022, - 0x00000000,0x00040047,0x00000c93,0x00000006,0x00000010,0x00030047,0x00000c94,0x00000003, - 0x00050048,0x00000c94,0x00000000,0x00000023,0x00000000,0x00040047,0x00000c96,0x00000021, - 0x0000000f,0x00040047,0x00000c96,0x00000022,0x00000000,0x00040047,0x00001059,0x00000006, - 0x00000010,0x00030047,0x0000105a,0x00000003,0x00050048,0x0000105a,0x00000000,0x00000023, - 0x00000000,0x00040047,0x0000105c,0x00000021,0x0000000c,0x00040047,0x0000105c,0x00000022, - 0x00000000,0x00040047,0x00001080,0x00000006,0x00000010,0x00030047,0x00001081,0x00000003, - 0x00050048,0x00001081,0x00000000,0x00000023,0x00000000,0x00040047,0x00001083,0x00000021, - 0x0000000a,0x00040047,0x00001083,0x00000022,0x00000000,0x00040047,0x00001087,0x00000006, - 0x00000010,0x00030047,0x00001088,0x00000003,0x00050048,0x00001088,0x00000000,0x00000023, - 0x00000000,0x00040047,0x0000108a,0x00000021,0x0000000b,0x00040047,0x0000108a,0x00000022, - 0x00000000,0x00040047,0x0000108e,0x00000006,0x00000004,0x00030047,0x0000108f,0x00000003, - 0x00050048,0x0000108f,0x00000000,0x00000023,0x00000000,0x00040047,0x00001091,0x00000021, - 0x00000009,0x00040047,0x00001091,0x00000022,0x00000000,0x00040047,0x000010c9,0x0000000b, - 0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,0x00000006, - 0x00000020,0x00000000,0x00040020,0x00000007,0x00000007,0x00000006,0x00030016,0x00000008, - 0x00000020,0x00040017,0x00000009,0x00000008,0x00000002,0x00060021,0x0000000a,0x00000009, - 0x00000007,0x00000007,0x00000007,0x00040017,0x00000010,0x00000008,0x00000003,0x00060021, - 0x00000011,0x00000010,0x00000007,0x00000007,0x00000007,0x00040020,0x00000017,0x00000007, - 0x00000009,0x00040021,0x00000018,0x00000010,0x00000017,0x00030021,0x0000001c,0x00000010, - 0x00040020,0x0000001f,0x00000007,0x00000010,0x00040021,0x00000020,0x00000010,0x0000001f, - 0x00040020,0x0000002a,0x00000007,0x00000008,0x00050021,0x0000002b,0x00000010,0x0000001f, - 0x0000002a,0x00040017,0x00000030,0x00000008,0x00000004,0x0004002b,0x00000006,0x00000031, - 0x00000008,0x0004001c,0x00000032,0x00000030,0x00000031,0x000f001e,0x00000033,0x00000030, - 0x00000030,0x00000030,0x00000030,0x00000030,0x00000032,0x00000032,0x00000032,0x00000032, - 0x00000032,0x00000032,0x00000030,0x00000030,0x00040020,0x00000034,0x00000007,0x00000033, - 0x00040021,0x00000035,0x00000008,0x00000034,0x00040021,0x00000039,0x00000010,0x00000034, - 0x00050021,0x0000003d,0x00000008,0x0000002a,0x0000002a,0x00060021,0x00000046,0x00000008, - 0x0000002a,0x0000002a,0x0000002a,0x00050021,0x0000004c,0x00000010,0x0000002a,0x0000001f, - 0x00070021,0x00000051,0x00000010,0x0000001f,0x0000001f,0x0000001f,0x00000034,0x00050021, - 0x00000058,0x00000010,0x00000017,0x0000002a,0x00020014,0x0000005d,0x00040015,0x0000005e, - 0x00000020,0x00000001,0x0008001e,0x0000005f,0x0000005d,0x00000008,0x00000010,0x00000010, - 0x0000005e,0x0000005e,0x00060021,0x00000060,0x0000005f,0x0000001f,0x0000001f,0x0000002a, - 0x00060021,0x00000066,0x0000005d,0x0000001f,0x0000001f,0x0000002a,0x00060021,0x0000006c, - 0x00000008,0x0000001f,0x0000001f,0x00000017,0x00070021,0x0000007e,0x00000010,0x0000001f, - 0x0000001f,0x00000034,0x0000001f,0x0004002b,0x00000006,0x00000087,0x2c9277b5,0x0004002b, - 0x00000006,0x0000008a,0xac564b05,0x0004002b,0x00000006,0x0000008e,0x9e3779b1,0x0004002b, - 0x00000006,0x00000091,0x00024961,0x0004002b,0x0000005e,0x00000095,0x00000010,0x0004002b, - 0x00000006,0x00000098,0x85ebca77,0x0004002b,0x0000005e,0x0000009c,0x0000000d,0x0004002b, - 0x00000006,0x0000009f,0xc2b2ae3d,0x0004002b,0x00000006,0x000000a6,0x0000ffff,0x0004002b, - 0x00000008,0x000000ae,0x37800000,0x0004002b,0x00000006,0x000000ba,0x00000001,0x0004002b, - 0x00000006,0x000000c2,0x00000000,0x0004002b,0x00000008,0x000000cc,0x00000000,0x0004002b, - 0x00000008,0x000000d0,0x40c90fdb,0x0004002b,0x00000008,0x000000dc,0x3f800000,0x00040018, - 0x000000e5,0x00000030,0x00000004,0x0014001e,0x000000e6,0x000000e5,0x000000e5,0x000000e5, - 0x00000030,0x00000030,0x00000030,0x00000030,0x00000030,0x00000030,0x000000e5,0x00000030, - 0x00000030,0x00000030,0x00000030,0x00000030,0x00000030,0x00000030,0x00000030,0x00040020, - 0x000000e7,0x00000002,0x000000e6,0x0004003b,0x000000e7,0x000000e8,0x00000002,0x0004002b, - 0x0000005e,0x000000e9,0x0000000c,0x00040020,0x000000ea,0x00000002,0x00000030,0x0004002b, - 0x0000005e,0x000000f1,0x0000000e,0x0004002b,0x00000006,0x000000f2,0x00000003,0x00040020, - 0x000000f3,0x00000002,0x00000008,0x0004002b,0x00000008,0x000000f6,0x3f000000,0x0004002b, - 0x0000005e,0x000000fb,0x00000011,0x0004002b,0x00000008,0x000000fe,0x3dcccccd,0x0004002b, - 0x0000005e,0x00000101,0x0000000f,0x0004002b,0x00000008,0x0000010b,0x7149f2ca,0x0006002c, - 0x00000010,0x0000010d,0x000000cc,0x000000cc,0x000000cc,0x0004002b,0x00000008,0x00000110, - 0x3727c5ac,0x0004002b,0x00000008,0x00000124,0xb727c5ac,0x0004002b,0x00000006,0x00000137, - 0x00000002,0x0004002b,0x0000005e,0x00000193,0x00000006,0x0004002b,0x0000005e,0x00000197, - 0x00000005,0x0004002b,0x00000008,0x000001c5,0x3f7fbe77,0x0006002c,0x00000010,0x000001c7, - 0x000000cc,0x000000dc,0x000000cc,0x0006002c,0x00000010,0x000001c8,0x000000dc,0x000000cc, - 0x000000cc,0x00040017,0x000001c9,0x0000005d,0x00000003,0x00040020,0x000001d7,0x00000007, - 0x0000005e,0x0004002b,0x0000005e,0x000001d9,0x00000000,0x0004002b,0x0000005e,0x000001e0, - 0x00000004,0x0004002b,0x00000008,0x000001e7,0x401998f2,0x0004002b,0x00000008,0x000001ed, - 0x40800000,0x0004002b,0x0000005e,0x00000210,0x00000001,0x0004002b,0x00000008,0x00000215, - 0x40490fdb,0x0004002b,0x00000008,0x0000022b,0x3e99999a,0x0004002b,0x00000008,0x0000022c, - 0x3f333333,0x0004002b,0x00000008,0x0000023c,0x3a83126f,0x0004002b,0x00000008,0x00000240, - 0x3d23d70a,0x0006002c,0x00000010,0x00000241,0x00000240,0x00000240,0x00000240,0x00040020, - 0x00000242,0x00000007,0x00000030,0x0004002b,0x00000008,0x0000025e,0x33d6bf95,0x0006002c, - 0x00000010,0x0000027f,0x000000dc,0x000000dc,0x000000dc,0x0004002b,0x00000008,0x00000285, - 0x40a00000,0x0004002b,0x00000008,0x00000294,0x358637bd,0x00021178,0x000002ff,0x00040020, - 0x00000300,0x00000006,0x000002ff,0x0004003b,0x00000300,0x00000301,0x00000006,0x000214dd, - 0x00000302,0x00040020,0x00000303,0x00000000,0x00000302,0x0004003b,0x00000303,0x00000304, - 0x00000000,0x0004002b,0x00000006,0x00000306,0x000000ff,0x00040020,0x00000310,0x00000007, - 0x0000005f,0x00030029,0x0000005d,0x00000312,0x00040020,0x00000315,0x00000007,0x0000005d, - 0x0004002b,0x00000008,0x00000317,0xbf800000,0x0004002b,0x0000005e,0x00000319,0x00000002, - 0x0004002b,0x0000005e,0x0000031b,0x00000003,0x0004001c,0x00000333,0x00000030,0x00000031, - 0x0004001c,0x00000334,0x00000030,0x00000031,0x0004001c,0x00000335,0x00000030,0x00000031, - 0x0004001c,0x00000336,0x00000030,0x00000031,0x0004001c,0x00000337,0x00000030,0x00000031, - 0x0004001c,0x00000338,0x00000030,0x00000031,0x000f001e,0x00000339,0x00000030,0x00000030, - 0x00000030,0x00000030,0x00000030,0x00000333,0x00000334,0x00000335,0x00000336,0x00000337, - 0x00000338,0x00000030,0x00000030,0x0003001d,0x0000033a,0x00000339,0x0003001e,0x0000033b, - 0x0000033a,0x00040020,0x0000033c,0x00000002,0x0000033b,0x0004003b,0x0000033c,0x0000033d, - 0x00000002,0x00040020,0x00000340,0x00000002,0x00000339,0x00040020,0x0000034e,0x00000007, - 0x00000032,0x0004002b,0x0000005e,0x0000035f,0x00000007,0x0004002b,0x0000005e,0x00000386, - 0x00000008,0x0004002b,0x0000005e,0x00000399,0x00000009,0x0004002b,0x0000005e,0x000003ac, - 0x0000000a,0x0004002b,0x0000005e,0x000003bf,0x0000000b,0x0003001d,0x000003cd,0x00000030, - 0x0003001e,0x000003ce,0x000003cd,0x00040020,0x000003cf,0x00000002,0x000003ce,0x0004003b, - 0x000003cf,0x000003d0,0x00000002,0x0004002b,0x00000008,0x000003d8,0x2b8cbccc,0x0003002a, - 0x0000005d,0x000003dc,0x00040018,0x000003e0,0x00000010,0x00000004,0x00040020,0x000003e1, - 0x00000007,0x000003e0,0x00040018,0x000003e5,0x00000010,0x00000003,0x0004003b,0x00000300, - 0x00000408,0x00000006,0x0004002b,0x00000008,0x00000449,0x41000000,0x0004002b,0x00000008, - 0x000004b9,0x38d1b717,0x0004002b,0x00000008,0x000004da,0x3fc00000,0x0004002b,0x00000008, - 0x00000513,0x43000000,0x00040020,0x00000546,0x00000002,0x000000e5,0x0007001e,0x00000655, - 0x00000030,0x00000030,0x00000030,0x00000030,0x000000e5,0x00040020,0x00000656,0x00000007, - 0x00000655,0x0007001e,0x00000658,0x00000030,0x00000030,0x00000030,0x00000030,0x000000e5, - 0x0003001d,0x00000659,0x00000658,0x0003001e,0x0000065a,0x00000659,0x00040020,0x0000065b, - 0x00000002,0x0000065a,0x0004003b,0x0000065b,0x0000065c,0x00000002,0x00040020,0x0000065e, - 0x00000002,0x00000658,0x00040020,0x0000066a,0x00000007,0x000000e5,0x0004002b,0x00000008, - 0x0000066f,0x322bcc77,0x0004002b,0x00000008,0x000006c8,0x3089705f,0x00040017,0x00000774, - 0x00000006,0x00000002,0x00040020,0x00000775,0x00000007,0x00000774,0x00040017,0x00000777, - 0x00000006,0x00000003,0x00040020,0x00000778,0x00000001,0x00000777,0x0004003b,0x00000778, - 0x00000779,0x00000001,0x0004002b,0x00000008,0x0000079f,0x41800000,0x0003001d,0x000007c8, - 0x00000030,0x0003001e,0x000007c9,0x000007c8,0x00040020,0x000007ca,0x00000002,0x000007c9, - 0x0004003b,0x000007ca,0x000007cb,0x00000002,0x0003001d,0x000007e5,0x00000030,0x0003001e, - 0x000007e6,0x000007e5,0x00040020,0x000007e7,0x00000002,0x000007e6,0x0004003b,0x000007e7, - 0x000007e8,0x00000002,0x0004002b,0x00000008,0x00000803,0x2edbe6ff,0x00090019,0x00000810, - 0x00000008,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002,0x00000004,0x00040020, - 0x00000811,0x00000000,0x00000810,0x0004003b,0x00000811,0x00000812,0x00000000,0x00040017, - 0x00000815,0x0000005e,0x00000002,0x0005002c,0x00000009,0x00000821,0x000000f6,0x000000f6, - 0x0005002c,0x00000009,0x0000083a,0x000000dc,0x000000dc,0x0004002b,0x00000008,0x0000083f, - 0x40000000,0x0007002c,0x00000030,0x00000868,0x000000cc,0x000000cc,0x00000317,0x000000cc, - 0x0004002b,0x00000008,0x0000087c,0x40600000,0x0004002b,0x00000008,0x0000088c,0x3f666666, - 0x0004002b,0x00000008,0x0000088d,0x3e4ccccd,0x0007002c,0x00000030,0x0000088e,0x0000088c, - 0x0000088d,0x000000fe,0x000000dc,0x0004002b,0x00000008,0x0000088f,0x3f4ccccd,0x0007002c, - 0x00000030,0x00000890,0x000000fe,0x0000088f,0x0000022b,0x000000dc,0x00040017,0x00000891, - 0x0000005d,0x00000004,0x0004002b,0x00000008,0x0000098e,0x40200000,0x0003001d,0x00000ac5, - 0x00000030,0x0003001e,0x00000ac6,0x00000ac5,0x00040020,0x00000ac7,0x00000002,0x00000ac6, - 0x0004003b,0x00000ac7,0x00000ac8,0x00000002,0x0003001d,0x00000ad1,0x00000030,0x0003001e, - 0x00000ad2,0x00000ad1,0x00040020,0x00000ad3,0x00000002,0x00000ad2,0x0004003b,0x00000ad3, - 0x00000ad4,0x00000002,0x0003001d,0x00000adf,0x00000030,0x0003001e,0x00000ae0,0x00000adf, - 0x00040020,0x00000ae1,0x00000002,0x00000ae0,0x0004003b,0x00000ae1,0x00000ae2,0x00000002, - 0x0004002b,0x00000008,0x00000c8d,0x4b189680,0x0007002c,0x00000030,0x00000c8e,0x000000cc, - 0x000000cc,0x000000cc,0x00000c8d,0x0007002c,0x00000030,0x00000c91,0x000000cc,0x000000cc, - 0x000000cc,0x000000cc,0x0003001d,0x00000c93,0x00000030,0x0003001e,0x00000c94,0x00000c93, - 0x00040020,0x00000c95,0x00000002,0x00000c94,0x0004003b,0x00000c95,0x00000c96,0x00000002, - 0x0005002c,0x00000009,0x00000cbb,0x000000cc,0x000000cc,0x0004002b,0x00000006,0x00000de6, - 0x000002d7,0x0004002b,0x00000006,0x00000de9,0x0000000b,0x0006002c,0x00000010,0x00000e12, - 0x000000cc,0x000000cc,0x000000dc,0x0004002b,0x00000006,0x00000e3c,0x00000397,0x0004002b, - 0x00000006,0x00000e99,0x00000005,0x0004002b,0x00000006,0x00000f17,0x000001af,0x0004002b, - 0x00000006,0x00000f1a,0x00000009,0x0004002b,0x00000008,0x00000f7a,0x3f733333,0x0004002b, - 0x00000006,0x00000f7f,0x000001f7,0x0004002b,0x00000006,0x00000f82,0x00000007,0x00040020, - 0x0000102a,0x00000007,0x00000815,0x0003001d,0x00001059,0x00000030,0x0003001e,0x0000105a, - 0x00001059,0x00040020,0x0000105b,0x00000002,0x0000105a,0x0004003b,0x0000105b,0x0000105c, - 0x00000002,0x0004002b,0x00000008,0x0000106f,0x39d1b717,0x0004002b,0x00000008,0x00001070, - 0x368637bd,0x0003001d,0x00001080,0x00000030,0x0003001e,0x00001081,0x00001080,0x00040020, - 0x00001082,0x00000002,0x00001081,0x0004003b,0x00001082,0x00001083,0x00000002,0x0003001d, - 0x00001087,0x00000030,0x0003001e,0x00001088,0x00001087,0x00040020,0x00001089,0x00000002, - 0x00001088,0x0004003b,0x00001089,0x0000108a,0x00000002,0x0003001d,0x0000108e,0x00000006, - 0x0003001e,0x0000108f,0x0000108e,0x00040020,0x00001090,0x00000002,0x0000108f,0x0004003b, - 0x00001090,0x00001091,0x00000002,0x00040020,0x00001092,0x00000002,0x00000006,0x0006002c, - 0x00000777,0x000010c9,0x00000031,0x00000031,0x000000ba,0x00050036,0x00000002,0x00000004, - 0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000775,0x00000776,0x00000007, - 0x0004003b,0x00000007,0x00000791,0x00000007,0x0004003b,0x0000002a,0x00000796,0x00000007, - 0x0004003b,0x0000002a,0x00000799,0x00000007,0x0004003b,0x000001d7,0x0000079c,0x00000007, - 0x0004003b,0x000001d7,0x000007a2,0x00000007,0x0004003b,0x00000007,0x000007c7,0x00000007, - 0x0004003b,0x00000007,0x000007d1,0x00000007,0x0004003b,0x0000001f,0x000007db,0x00000007, - 0x0004003b,0x0000001f,0x000007e4,0x00000007,0x0004003b,0x0000002a,0x000007f6,0x00000007, - 0x0004003b,0x0000002a,0x000007ff,0x00000007,0x0004003b,0x00000017,0x00000820,0x00000007, - 0x0004003b,0x00000007,0x00000829,0x00000007,0x0004003b,0x00000007,0x0000082c,0x00000007, - 0x0004003b,0x00000007,0x0000082f,0x00000007,0x0004003b,0x00000017,0x00000832,0x00000007, - 0x0004003b,0x00000017,0x0000083d,0x00000007,0x0004003b,0x00000242,0x00000847,0x00000007, - 0x0004003b,0x0000001f,0x0000084f,0x00000007,0x0004003b,0x0000001f,0x0000085b,0x00000007, - 0x0004003b,0x0000001f,0x00000865,0x00000007,0x0004003b,0x00000310,0x00000880,0x00000007, - 0x0004003b,0x0000001f,0x00000881,0x00000007,0x0004003b,0x0000001f,0x00000883,0x00000007, - 0x0004003b,0x0000002a,0x00000885,0x00000007,0x0004003b,0x00000310,0x00000899,0x00000007, - 0x0004003b,0x0000001f,0x0000089a,0x00000007,0x0004003b,0x0000001f,0x0000089c,0x00000007, - 0x0004003b,0x0000002a,0x0000089e,0x00000007,0x0004003b,0x0000001f,0x000008a0,0x00000007, - 0x0004003b,0x00000034,0x000008a5,0x00000007,0x0004003b,0x0000001f,0x00000929,0x00000007, - 0x0004003b,0x0000001f,0x0000092c,0x00000007,0x0004003b,0x0000001f,0x0000092f,0x00000007, - 0x0004003b,0x00000034,0x00000931,0x00000007,0x0004003b,0x0000001f,0x0000093e,0x00000007, - 0x0004003b,0x0000001f,0x00000949,0x00000007,0x0004003b,0x0000001f,0x00000957,0x00000007, - 0x0004003b,0x0000001f,0x00000959,0x00000007,0x0004003b,0x0000001f,0x0000095b,0x00000007, - 0x0004003b,0x00000034,0x0000095f,0x00000007,0x0004003b,0x0000002a,0x00000967,0x00000007, - 0x0004003b,0x0000001f,0x0000097e,0x00000007,0x0004003b,0x00000310,0x00000995,0x00000007, - 0x0004003b,0x0000001f,0x00000996,0x00000007,0x0004003b,0x0000001f,0x00000998,0x00000007, - 0x0004003b,0x0000002a,0x0000099a,0x00000007,0x0004003b,0x00000034,0x000009a0,0x00000007, - 0x0004003b,0x0000001f,0x00000a1f,0x00000007,0x0004003b,0x0000001f,0x00000a23,0x00000007, - 0x0004003b,0x0000001f,0x00000a26,0x00000007,0x0004003b,0x0000001f,0x00000a2a,0x00000007, - 0x0004003b,0x0000001f,0x00000a2e,0x00000007,0x0004003b,0x00000034,0x00000a31,0x00000007, - 0x0004003b,0x0000001f,0x00000a3c,0x00000007,0x0004003b,0x0000001f,0x00000a40,0x00000007, - 0x0004003b,0x0000002a,0x00000a46,0x00000007,0x0004003b,0x0000002a,0x00000a4a,0x00000007, - 0x0004003b,0x0000001f,0x00000a52,0x00000007,0x0004003b,0x0000001f,0x00000a57,0x00000007, - 0x0004003b,0x0000001f,0x00000a5b,0x00000007,0x0004003b,0x00000034,0x00000a5e,0x00000007, - 0x0004003b,0x0000002a,0x00000a68,0x00000007,0x0004003b,0x0000001f,0x00000a6d,0x00000007, - 0x0004003b,0x0000001f,0x00000a76,0x00000007,0x0004003b,0x0000001f,0x00000a78,0x00000007, - 0x0004003b,0x0000002a,0x00000a7a,0x00000007,0x0004003b,0x0000001f,0x00000a7e,0x00000007, - 0x0004003b,0x0000001f,0x00000a87,0x00000007,0x0004003b,0x0000001f,0x00000a8a,0x00000007, - 0x0004003b,0x0000001f,0x00000a8d,0x00000007,0x0004003b,0x00000034,0x00000a8f,0x00000007, - 0x0004003b,0x0000001f,0x00000a9a,0x00000007,0x0004003b,0x0000001f,0x00000aa5,0x00000007, - 0x0004003b,0x0000001f,0x00000ab3,0x00000007,0x0004003b,0x0000001f,0x00000ab5,0x00000007, - 0x0004003b,0x0000001f,0x00000ab7,0x00000007,0x0004003b,0x00000034,0x00000abb,0x00000007, - 0x0004003b,0x0000001f,0x00000aed,0x00000007,0x0004003b,0x00000310,0x00000b0d,0x00000007, - 0x0004003b,0x0000001f,0x00000b0e,0x00000007,0x0004003b,0x0000001f,0x00000b10,0x00000007, - 0x0004003b,0x0000002a,0x00000b12,0x00000007,0x0004003b,0x00000034,0x00000b18,0x00000007, - 0x0004003b,0x0000002a,0x00000b97,0x00000007,0x0004003b,0x00000007,0x00000b98,0x00000007, - 0x0004003b,0x00000007,0x00000b9b,0x00000007,0x0004003b,0x00000007,0x00000b9e,0x00000007, - 0x0004003b,0x0000001f,0x00000ba1,0x00000007,0x0004003b,0x0000001f,0x00000ba4,0x00000007, - 0x0004003b,0x00000017,0x00000ba7,0x00000007,0x0004003b,0x0000001f,0x00000bae,0x00000007, - 0x0004003b,0x0000001f,0x00000bb4,0x00000007,0x0004003b,0x0000001f,0x00000bb7,0x00000007, - 0x0004003b,0x0000001f,0x00000bba,0x00000007,0x0004003b,0x00000034,0x00000bbc,0x00000007, - 0x0004003b,0x0000001f,0x00000bca,0x00000007,0x0004003b,0x0000001f,0x00000bd5,0x00000007, - 0x0004003b,0x0000001f,0x00000be8,0x00000007,0x0004003b,0x0000001f,0x00000bea,0x00000007, - 0x0004003b,0x0000001f,0x00000bec,0x00000007,0x0004003b,0x00000034,0x00000bf0,0x00000007, - 0x0004003b,0x0000002a,0x00000c1e,0x00000007,0x0004003b,0x0000001f,0x00000c35,0x00000007, - 0x0004003b,0x0000001f,0x00000c44,0x00000007,0x0004003b,0x0000001f,0x00000c45,0x00000007, - 0x0004003b,0x0000001f,0x00000c46,0x00000007,0x0004003b,0x0000001f,0x00000c48,0x00000007, - 0x0004003b,0x0000002a,0x00000c4a,0x00000007,0x0004003b,0x000001d7,0x00000c4b,0x00000007, - 0x0004003b,0x00000310,0x00000c54,0x00000007,0x0004003b,0x0000001f,0x00000c55,0x00000007, - 0x0004003b,0x0000001f,0x00000c57,0x00000007,0x0004003b,0x0000002a,0x00000c59,0x00000007, - 0x0004003b,0x0000002a,0x00000c60,0x00000007,0x0004003b,0x0000001f,0x00000c69,0x00000007, - 0x0004003b,0x0000001f,0x00000c6a,0x00000007,0x0004003b,0x00000242,0x00000cb0,0x00000007, - 0x0004003b,0x00000017,0x00000cba,0x00000007,0x0004003b,0x0000002a,0x00000cbc,0x00000007, - 0x0004003b,0x00000017,0x00000cc2,0x00000007,0x0004003b,0x00000034,0x00000ceb,0x00000007, - 0x0004003b,0x0000002a,0x00000d77,0x00000007,0x0004003b,0x000001d7,0x00000d8d,0x00000007, - 0x0004003b,0x0000002a,0x00000da0,0x00000007,0x0004003b,0x0000002a,0x00000da5,0x00000007, - 0x0004003b,0x0000002a,0x00000dab,0x00000007,0x0004003b,0x0000001f,0x00000dcf,0x00000007, - 0x0004003b,0x0000001f,0x00000dd2,0x00000007,0x0004003b,0x0000001f,0x00000dd5,0x00000007, - 0x0004003b,0x00000034,0x00000dd7,0x00000007,0x0004003b,0x00000007,0x00000deb,0x00000007, - 0x0004003b,0x00000007,0x00000dee,0x00000007,0x0004003b,0x00000007,0x00000df1,0x00000007, - 0x0004003b,0x0000001f,0x00000df3,0x00000007,0x0004003b,0x0000001f,0x00000df6,0x00000007, - 0x0004003b,0x00000034,0x00000df9,0x00000007,0x0004003b,0x0000001f,0x00000dfb,0x00000007, - 0x0004003b,0x0000001f,0x00000e00,0x00000007,0x0004003b,0x0000001f,0x00000e04,0x00000007, - 0x0004003b,0x0000001f,0x00000e0d,0x00000007,0x0004003b,0x0000001f,0x00000e15,0x00000007, - 0x0004003b,0x0000001f,0x00000e1a,0x00000007,0x0004003b,0x0000001f,0x00000e1e,0x00000007, - 0x0004003b,0x0000002a,0x00000e21,0x00000007,0x0004003b,0x0000002a,0x00000e26,0x00000007, - 0x0004003b,0x0000002a,0x00000e2a,0x00000007,0x0004003b,0x00000034,0x00000e2b,0x00000007, - 0x0004003b,0x0000001f,0x00000e2e,0x00000007,0x0004003b,0x00000034,0x00000e2f,0x00000007, - 0x0004003b,0x0000001f,0x00000e32,0x00000007,0x0004003b,0x0000002a,0x00000e33,0x00000007, - 0x0004003b,0x0000001f,0x00000e35,0x00000007,0x0004003b,0x00000017,0x00000e38,0x00000007, - 0x0004003b,0x00000007,0x00000e40,0x00000007,0x0004003b,0x00000007,0x00000e43,0x00000007, - 0x0004003b,0x00000007,0x00000e46,0x00000007,0x0004003b,0x0000001f,0x00000e4d,0x00000007, - 0x0004003b,0x00000007,0x00000e54,0x00000007,0x0004003b,0x00000007,0x00000e57,0x00000007, - 0x0004003b,0x00000007,0x00000e5a,0x00000007,0x0004003b,0x00000017,0x00000e5c,0x00000007, - 0x0004003b,0x0000001f,0x00000e5e,0x00000007,0x0004003b,0x0000002a,0x00000e6e,0x00000007, - 0x0004003b,0x0000001f,0x00000e74,0x00000007,0x0004003b,0x0000001f,0x00000e88,0x00000007, - 0x0004003b,0x0000001f,0x00000e93,0x00000007,0x0004003b,0x00000007,0x00000e9b,0x00000007, - 0x0004003b,0x00000007,0x00000e9e,0x00000007,0x0004003b,0x00000007,0x00000ea1,0x00000007, - 0x0004003b,0x00000017,0x00000ea3,0x00000007,0x0004003b,0x0000002a,0x00000ea4,0x00000007, - 0x0004003b,0x0000001f,0x00000ea7,0x00000007,0x0004003b,0x0000001f,0x00000eb7,0x00000007, - 0x0004003b,0x0000002a,0x00000ebd,0x00000007,0x0004003b,0x0000002a,0x00000ec2,0x00000007, - 0x0004003b,0x0000002a,0x00000ec7,0x00000007,0x0004003b,0x0000001f,0x00000ed6,0x00000007, - 0x0004003b,0x0000002a,0x00000ed7,0x00000007,0x0004003b,0x0000001f,0x00000ed9,0x00000007, - 0x0004003b,0x0000002a,0x00000edc,0x00000007,0x0004003b,0x0000002a,0x00000edd,0x00000007, - 0x0004003b,0x0000002a,0x00000edf,0x00000007,0x0004003b,0x0000002a,0x00000ee1,0x00000007, - 0x0004003b,0x0000002a,0x00000ee4,0x00000007,0x0004003b,0x0000002a,0x00000ee6,0x00000007, - 0x0004003b,0x0000002a,0x00000f00,0x00000007,0x0004003b,0x0000001f,0x00000f04,0x00000007, - 0x0004003b,0x0000001f,0x00000f0b,0x00000007,0x0004003b,0x0000001f,0x00000f10,0x00000007, - 0x0004003b,0x00000007,0x00000f1c,0x00000007,0x0004003b,0x00000007,0x00000f1f,0x00000007, - 0x0004003b,0x00000007,0x00000f22,0x00000007,0x0004003b,0x0000001f,0x00000f3b,0x00000007, - 0x0004003b,0x00000007,0x00000f42,0x00000007,0x0004003b,0x00000007,0x00000f45,0x00000007, - 0x0004003b,0x00000007,0x00000f48,0x00000007,0x0004003b,0x00000017,0x00000f4a,0x00000007, - 0x0004003b,0x0000002a,0x00000f71,0x00000007,0x0004003b,0x00000007,0x00000f84,0x00000007, - 0x0004003b,0x00000007,0x00000f87,0x00000007,0x0004003b,0x00000007,0x00000f8a,0x00000007, - 0x0004003b,0x00000242,0x00000f98,0x00000007,0x0004003b,0x00000242,0x00000fa2,0x00000007, - 0x0004003b,0x00000242,0x00000fa6,0x00000007,0x0004003b,0x0000002a,0x00000faa,0x00000007, - 0x0004003b,0x0000001f,0x00000fb7,0x00000007,0x0004003b,0x0000001f,0x00000fbe,0x00000007, - 0x0004003b,0x0000002a,0x00000fca,0x00000007,0x0004003b,0x0000002a,0x00000fd4,0x00000007, - 0x0004003b,0x0000002a,0x00000fdd,0x00000007,0x0004003b,0x00000242,0x00001004,0x00000007, - 0x0004003b,0x00000017,0x00001015,0x00000007,0x0004003b,0x00000017,0x0000101c,0x00000007, - 0x0004003b,0x0000102a,0x0000102b,0x00000007,0x0004003b,0x0000102a,0x00001030,0x00000007, - 0x0004003b,0x000001d7,0x0000104f,0x00000007,0x0004003b,0x0000001f,0x00001058,0x00000007, - 0x0004003d,0x00000777,0x0000077a,0x00000779,0x0007004f,0x00000774,0x0000077b,0x0000077a, - 0x0000077a,0x00000000,0x00000001,0x0003003e,0x00000776,0x0000077b,0x00050041,0x00000007, - 0x0000077c,0x00000776,0x000000c2,0x0004003d,0x00000006,0x0000077d,0x0000077c,0x00060041, - 0x000000f3,0x0000077e,0x000000e8,0x000001e0,0x000000c2,0x0004003d,0x00000008,0x0000077f, - 0x0000077e,0x0007000c,0x00000008,0x00000780,0x00000001,0x00000028,0x0000077f,0x000000dc, - 0x0004006d,0x00000006,0x00000781,0x00000780,0x000500ae,0x0000005d,0x00000782,0x0000077d, - 0x00000781,0x000400a8,0x0000005d,0x00000783,0x00000782,0x000300f7,0x00000785,0x00000000, - 0x000400fa,0x00000783,0x00000784,0x00000785,0x000200f8,0x00000784,0x00050041,0x00000007, - 0x00000786,0x00000776,0x000000ba,0x0004003d,0x00000006,0x00000787,0x00000786,0x00060041, - 0x000000f3,0x00000788,0x000000e8,0x000001e0,0x000000ba,0x0004003d,0x00000008,0x00000789, - 0x00000788,0x0007000c,0x00000008,0x0000078a,0x00000001,0x00000028,0x00000789,0x000000dc, - 0x0004006d,0x00000006,0x0000078b,0x0000078a,0x000500ae,0x0000005d,0x0000078c,0x00000787, - 0x0000078b,0x000200f9,0x00000785,0x000200f8,0x00000785,0x000700f5,0x0000005d,0x0000078d, - 0x00000782,0x00000005,0x0000078c,0x00000784,0x000300f7,0x0000078f,0x00000000,0x000400fa, - 0x0000078d,0x0000078e,0x0000078f,0x000200f8,0x0000078e,0x000100fd,0x000200f8,0x0000078f, - 0x00060041,0x000000f3,0x00000792,0x000000e8,0x0000035f,0x000000c2,0x0004003d,0x00000008, - 0x00000793,0x00000792,0x0007000c,0x00000008,0x00000794,0x00000001,0x00000028,0x00000793, - 0x000000cc,0x0004006d,0x00000006,0x00000795,0x00000794,0x0003003e,0x00000791,0x00000795, - 0x00060041,0x000000f3,0x00000797,0x000000e8,0x0000035f,0x000000ba,0x0004003d,0x00000008, - 0x00000798,0x00000797,0x0003003e,0x00000796,0x00000798,0x00060041,0x000000f3,0x0000079a, - 0x000000e8,0x0000035f,0x00000137,0x0004003d,0x00000008,0x0000079b,0x0000079a,0x0003003e, - 0x00000799,0x0000079b,0x00060041,0x000000f3,0x0000079d,0x000000e8,0x0000035f,0x000000f2, - 0x0004003d,0x00000008,0x0000079e,0x0000079d,0x0008000c,0x00000008,0x000007a0,0x00000001, - 0x0000002b,0x0000079e,0x000000dc,0x0000079f,0x0004006e,0x0000005e,0x000007a1,0x000007a0, - 0x0003003e,0x0000079c,0x000007a1,0x00050041,0x00000007,0x000007a3,0x00000776,0x000000ba, - 0x0004003d,0x00000006,0x000007a4,0x000007a3,0x00060041,0x000000f3,0x000007a5,0x000000e8, - 0x000001e0,0x000000c2,0x0004003d,0x00000008,0x000007a6,0x000007a5,0x0007000c,0x00000008, - 0x000007a7,0x00000001,0x00000028,0x000007a6,0x000000dc,0x0004006d,0x00000006,0x000007a8, - 0x000007a7,0x00050084,0x00000006,0x000007a9,0x000007a4,0x000007a8,0x00050041,0x00000007, - 0x000007aa,0x00000776,0x000000c2,0x0004003d,0x00000006,0x000007ab,0x000007aa,0x00050080, - 0x00000006,0x000007ac,0x000007a9,0x000007ab,0x0004007c,0x0000005e,0x000007ad,0x000007ac, - 0x0003003e,0x000007a2,0x000007ad,0x0004003d,0x00000008,0x000007ae,0x00000796,0x000500ba, - 0x0000005d,0x000007af,0x000007ae,0x000000f6,0x0004003d,0x00000008,0x000007b0,0x00000799, - 0x000500ba,0x0000005d,0x000007b1,0x000007b0,0x000000f6,0x000500a7,0x0000005d,0x000007b2, - 0x000007af,0x000007b1,0x000300f7,0x000007b4,0x00000000,0x000400fa,0x000007b2,0x000007b3, - 0x000007b4,0x000200f8,0x000007b3,0x00060041,0x000000f3,0x000007b5,0x000000e8,0x00000386, - 0x000000ba,0x0004003d,0x00000008,0x000007b6,0x000007b5,0x000500ba,0x0000005d,0x000007b7, - 0x000007b6,0x000000cc,0x000200f9,0x000007b4,0x000200f8,0x000007b4,0x000700f5,0x0000005d, - 0x000007b8,0x000007b2,0x0000078f,0x000007b7,0x000007b3,0x000300f7,0x000007ba,0x00000000, - 0x000400fa,0x000007b8,0x000007b9,0x000007ba,0x000200f8,0x000007b9,0x00060041,0x000000f3, - 0x000007bb,0x000000e8,0x000003ac,0x000000c2,0x0004003d,0x00000008,0x000007bc,0x000007bb, - 0x000500b8,0x0000005d,0x000007bd,0x000007bc,0x000000f6,0x000200f9,0x000007ba,0x000200f8, - 0x000007ba,0x000700f5,0x0000005d,0x000007be,0x000007b8,0x000007b4,0x000007bd,0x000007b9, - 0x000300f7,0x000007c0,0x00000000,0x000400fa,0x000007be,0x000007bf,0x000007c0,0x000200f8, - 0x000007bf,0x00060041,0x000000f3,0x000007c1,0x000000e8,0x00000386,0x000000f2,0x0004003d, - 0x00000008,0x000007c2,0x000007c1,0x000500ba,0x0000005d,0x000007c3,0x000007c2,0x000000f6, - 0x000200f9,0x000007c0,0x000200f8,0x000007c0,0x000700f5,0x0000005d,0x000007c4,0x000007be, - 0x000007ba,0x000007c3,0x000007bf,0x000300f7,0x000007c6,0x00000000,0x000400fa,0x000007c4, - 0x000007c5,0x000007c6,0x000200f8,0x000007c5,0x0004003d,0x0000005e,0x000007cc,0x000007a2, - 0x00070041,0x000000f3,0x000007cd,0x000007cb,0x000001d9,0x000007cc,0x000000f2,0x0004003d, - 0x00000008,0x000007ce,0x000007cd,0x0007000c,0x00000008,0x000007cf,0x00000001,0x00000028, - 0x000007ce,0x000000cc,0x0004006d,0x00000006,0x000007d0,0x000007cf,0x0003003e,0x000007c7, - 0x000007d0,0x00060041,0x000000f3,0x000007d2,0x000000e8,0x00000386,0x000000c2,0x0004003d, - 0x00000008,0x000007d3,0x000007d2,0x0007000c,0x00000008,0x000007d4,0x00000001,0x00000028, - 0x000007d3,0x000000dc,0x0004006d,0x00000006,0x000007d5,0x000007d4,0x0003003e,0x000007d1, - 0x000007d5,0x0004003d,0x00000006,0x000007d6,0x000007c7,0x0004003d,0x00000006,0x000007d7, - 0x000007d1,0x000500ae,0x0000005d,0x000007d8,0x000007d6,0x000007d7,0x000300f7,0x000007da, - 0x00000000,0x000400fa,0x000007d8,0x000007d9,0x000007da,0x000200f8,0x000007d9,0x0004003d, - 0x0000005e,0x000007dc,0x000007a2,0x00060041,0x000000ea,0x000007dd,0x000007cb,0x000001d9, - 0x000007dc,0x0004003d,0x00000030,0x000007de,0x000007dd,0x0008004f,0x00000010,0x000007df, - 0x000007de,0x000007de,0x00000000,0x00000001,0x00000002,0x0004003d,0x00000006,0x000007e0, - 0x000007c7,0x00040070,0x00000008,0x000007e1,0x000007e0,0x00060050,0x00000010,0x000007e2, - 0x000007e1,0x000007e1,0x000007e1,0x00050088,0x00000010,0x000007e3,0x000007df,0x000007e2, - 0x0003003e,0x000007db,0x000007e3,0x0004003d,0x0000005e,0x000007e9,0x000007a2,0x00060041, - 0x000000ea,0x000007ea,0x000007e8,0x000001d9,0x000007e9,0x0004003d,0x00000030,0x000007eb, - 0x000007ea,0x0008004f,0x00000010,0x000007ec,0x000007eb,0x000007eb,0x00000000,0x00000001, - 0x00000002,0x0004003d,0x00000006,0x000007ed,0x000007c7,0x00040070,0x00000008,0x000007ee, - 0x000007ed,0x00060050,0x00000010,0x000007ef,0x000007ee,0x000007ee,0x000007ee,0x00050088, - 0x00000010,0x000007f0,0x000007ec,0x000007ef,0x0004003d,0x00000010,0x000007f1,0x000007db, - 0x0004003d,0x00000010,0x000007f2,0x000007db,0x00050085,0x00000010,0x000007f3,0x000007f1, - 0x000007f2,0x00050083,0x00000010,0x000007f4,0x000007f0,0x000007f3,0x0007000c,0x00000010, - 0x000007f5,0x00000001,0x00000028,0x000007f4,0x0000010d,0x0003003e,0x000007e4,0x000007f5, - 0x00050041,0x0000002a,0x000007f7,0x000007e4,0x000000c2,0x0004003d,0x00000008,0x000007f8, - 0x000007f7,0x00050041,0x0000002a,0x000007f9,0x000007e4,0x000000ba,0x0004003d,0x00000008, - 0x000007fa,0x000007f9,0x00050041,0x0000002a,0x000007fb,0x000007e4,0x00000137,0x0004003d, - 0x00000008,0x000007fc,0x000007fb,0x0007000c,0x00000008,0x000007fd,0x00000001,0x00000028, - 0x000007fa,0x000007fc,0x0007000c,0x00000008,0x000007fe,0x00000001,0x00000028,0x000007f8, - 0x000007fd,0x0003003e,0x000007f6,0x000007fe,0x0004003d,0x00000010,0x00000800,0x000007db, - 0x0004003d,0x00000010,0x00000801,0x000007db,0x00050094,0x00000008,0x00000802,0x00000800, - 0x00000801,0x0007000c,0x00000008,0x00000804,0x00000001,0x00000028,0x00000802,0x00000803, - 0x0003003e,0x000007ff,0x00000804,0x0004003d,0x00000008,0x00000805,0x000007f6,0x00060041, - 0x000000f3,0x00000806,0x000000e8,0x00000386,0x000000ba,0x0004003d,0x00000008,0x00000807, - 0x00000806,0x00060041,0x000000f3,0x00000808,0x000000e8,0x00000386,0x000000ba,0x0004003d, - 0x00000008,0x00000809,0x00000808,0x00050085,0x00000008,0x0000080a,0x00000807,0x00000809, - 0x0004003d,0x00000008,0x0000080b,0x000007ff,0x00050085,0x00000008,0x0000080c,0x0000080a, - 0x0000080b,0x000500b8,0x0000005d,0x0000080d,0x00000805,0x0000080c,0x000300f7,0x0000080f, - 0x00000000,0x000400fa,0x0000080d,0x0000080e,0x0000080f,0x000200f8,0x0000080e,0x0004003d, - 0x00000810,0x00000813,0x00000812,0x0004003d,0x00000774,0x00000814,0x00000776,0x0004007c, - 0x00000815,0x00000816,0x00000814,0x0004003d,0x00000010,0x00000817,0x000007db,0x00050051, - 0x00000008,0x00000818,0x00000817,0x00000000,0x00050051,0x00000008,0x00000819,0x00000817, - 0x00000001,0x00050051,0x00000008,0x0000081a,0x00000817,0x00000002,0x00070050,0x00000030, - 0x0000081b,0x00000818,0x00000819,0x0000081a,0x000000dc,0x00070050,0x00000030,0x0000081c, - 0x000000cc,0x000000cc,0x000000cc,0x000000cc,0x00070050,0x00000030,0x0000081d,0x000000dc, - 0x000000dc,0x000000dc,0x000000dc,0x0008000c,0x00000030,0x0000081e,0x00000001,0x0000002b, - 0x0000081b,0x0000081c,0x0000081d,0x00040063,0x00000813,0x00000816,0x0000081e,0x000100fd, - 0x000200f8,0x0000080f,0x000200f9,0x000007da,0x000200f8,0x000007da,0x000200f9,0x000007c6, - 0x000200f8,0x000007c6,0x0003003e,0x00000820,0x00000821,0x0004003d,0x00000008,0x00000822, - 0x00000796,0x000500ba,0x0000005d,0x00000823,0x00000822,0x000000f6,0x0004003d,0x00000008, - 0x00000824,0x00000799,0x000500ba,0x0000005d,0x00000825,0x00000824,0x000000f6,0x000500a7, - 0x0000005d,0x00000826,0x00000823,0x00000825,0x000300f7,0x00000828,0x00000000,0x000400fa, - 0x00000826,0x00000827,0x00000828,0x000200f8,0x00000827,0x00050041,0x00000007,0x0000082a, - 0x00000776,0x000000c2,0x0004003d,0x00000006,0x0000082b,0x0000082a,0x0003003e,0x00000829, - 0x0000082b,0x00050041,0x00000007,0x0000082d,0x00000776,0x000000ba,0x0004003d,0x00000006, - 0x0000082e,0x0000082d,0x0003003e,0x0000082c,0x0000082e,0x0004003d,0x00000006,0x00000830, - 0x00000791,0x0003003e,0x0000082f,0x00000830,0x00070039,0x00000009,0x00000831,0x0000000e, - 0x00000829,0x0000082c,0x0000082f,0x0003003e,0x00000820,0x00000831,0x000200f9,0x00000828, - 0x000200f8,0x00000828,0x0004003d,0x00000774,0x00000833,0x00000776,0x00040070,0x00000009, - 0x00000834,0x00000833,0x0004003d,0x00000009,0x00000835,0x00000820,0x00050081,0x00000009, - 0x00000836,0x00000834,0x00000835,0x00050041,0x000000ea,0x00000837,0x000000e8,0x000001e0, - 0x0004003d,0x00000030,0x00000838,0x00000837,0x0007004f,0x00000009,0x00000839,0x00000838, - 0x00000838,0x00000000,0x00000001,0x0007000c,0x00000009,0x0000083b,0x00000001,0x00000028, - 0x00000839,0x0000083a,0x00050088,0x00000009,0x0000083c,0x00000836,0x0000083b,0x0003003e, - 0x00000832,0x0000083c,0x0004003d,0x00000009,0x0000083e,0x00000832,0x0005008e,0x00000009, - 0x00000840,0x0000083e,0x0000083f,0x00050050,0x00000009,0x00000841,0x000000dc,0x000000dc, - 0x00050083,0x00000009,0x00000842,0x00000840,0x00000841,0x0003003e,0x0000083d,0x00000842, - 0x00050041,0x0000002a,0x00000843,0x0000083d,0x000000ba,0x0004003d,0x00000008,0x00000844, - 0x00000843,0x0004007f,0x00000008,0x00000845,0x00000844,0x00050041,0x0000002a,0x00000846, - 0x0000083d,0x000000ba,0x0003003e,0x00000846,0x00000845,0x00050041,0x00000546,0x00000848, - 0x000000e8,0x00000319,0x0004003d,0x000000e5,0x00000849,0x00000848,0x0004003d,0x00000009, - 0x0000084a,0x0000083d,0x00050051,0x00000008,0x0000084b,0x0000084a,0x00000000,0x00050051, - 0x00000008,0x0000084c,0x0000084a,0x00000001,0x00070050,0x00000030,0x0000084d,0x0000084b, - 0x0000084c,0x00000317,0x000000dc,0x00050091,0x00000030,0x0000084e,0x00000849,0x0000084d, - 0x0003003e,0x00000847,0x0000084e,0x0004003d,0x00000030,0x00000850,0x00000847,0x0008004f, - 0x00000010,0x00000851,0x00000850,0x00000850,0x00000000,0x00000001,0x00000002,0x00050041, - 0x0000002a,0x00000852,0x00000847,0x000000f2,0x0004003d,0x00000008,0x00000853,0x00000852, - 0x00060050,0x00000010,0x00000854,0x00000853,0x00000853,0x00000853,0x00050088,0x00000010, - 0x00000855,0x00000851,0x00000854,0x0003003e,0x0000084f,0x00000855,0x00060041,0x000000f3, - 0x00000856,0x000000e8,0x000001e0,0x00000137,0x0004003d,0x00000008,0x00000857,0x00000856, - 0x000500ba,0x0000005d,0x00000858,0x00000857,0x000000f6,0x000300f7,0x0000085a,0x00000000, - 0x000400fa,0x00000858,0x00000859,0x0000086c,0x000200f8,0x00000859,0x00050041,0x00000546, - 0x0000085c,0x000000e8,0x00000210,0x0004003d,0x000000e5,0x0000085d,0x0000085c,0x0004003d, - 0x00000010,0x0000085e,0x0000084f,0x0007004f,0x00000009,0x0000085f,0x0000085e,0x0000085e, - 0x00000000,0x00000001,0x00050051,0x00000008,0x00000860,0x0000085f,0x00000000,0x00050051, - 0x00000008,0x00000861,0x0000085f,0x00000001,0x00070050,0x00000030,0x00000862,0x00000860, - 0x00000861,0x000000cc,0x000000dc,0x00050091,0x00000030,0x00000863,0x0000085d,0x00000862, - 0x0008004f,0x00000010,0x00000864,0x00000863,0x00000863,0x00000000,0x00000001,0x00000002, - 0x0003003e,0x0000085b,0x00000864,0x00050041,0x00000546,0x00000866,0x000000e8,0x00000210, - 0x0004003d,0x000000e5,0x00000867,0x00000866,0x00050091,0x00000030,0x00000869,0x00000867, - 0x00000868,0x0008004f,0x00000010,0x0000086a,0x00000869,0x00000869,0x00000000,0x00000001, - 0x00000002,0x0006000c,0x00000010,0x0000086b,0x00000001,0x00000045,0x0000086a,0x0003003e, - 0x00000865,0x0000086b,0x000200f9,0x0000085a,0x000200f8,0x0000086c,0x00050041,0x000000ea, - 0x0000086d,0x000000e8,0x0000031b,0x0004003d,0x00000030,0x0000086e,0x0000086d,0x0008004f, - 0x00000010,0x0000086f,0x0000086e,0x0000086e,0x00000000,0x00000001,0x00000002,0x0003003e, - 0x0000085b,0x0000086f,0x00050041,0x00000546,0x00000870,0x000000e8,0x00000210,0x0004003d, - 0x000000e5,0x00000871,0x00000870,0x0004003d,0x00000010,0x00000872,0x0000084f,0x00050051, - 0x00000008,0x00000873,0x00000872,0x00000000,0x00050051,0x00000008,0x00000874,0x00000872, - 0x00000001,0x00050051,0x00000008,0x00000875,0x00000872,0x00000002,0x00070050,0x00000030, - 0x00000876,0x00000873,0x00000874,0x00000875,0x000000cc,0x00050091,0x00000030,0x00000877, - 0x00000871,0x00000876,0x0008004f,0x00000010,0x00000878,0x00000877,0x00000877,0x00000000, - 0x00000001,0x00000002,0x0006000c,0x00000010,0x00000879,0x00000001,0x00000045,0x00000878, - 0x0003003e,0x00000865,0x00000879,0x000200f9,0x0000085a,0x000200f8,0x0000085a,0x00060041, - 0x000000f3,0x0000087a,0x000000e8,0x0000035f,0x000000ba,0x0004003d,0x00000008,0x0000087b, - 0x0000087a,0x000500ba,0x0000005d,0x0000087d,0x0000087b,0x0000087c,0x000300f7,0x0000087f, - 0x00000000,0x000400fa,0x0000087d,0x0000087e,0x0000087f,0x000200f8,0x0000087e,0x0004003d, - 0x00000010,0x00000882,0x0000085b,0x0003003e,0x00000881,0x00000882,0x0004003d,0x00000010, - 0x00000884,0x00000865,0x0003003e,0x00000883,0x00000884,0x0003003e,0x00000885,0x0000010b, - 0x00070039,0x0000005f,0x00000886,0x00000064,0x00000881,0x00000883,0x00000885,0x0003003e, - 0x00000880,0x00000886,0x0004003d,0x00000810,0x00000887,0x00000812,0x0004003d,0x00000774, - 0x00000888,0x00000776,0x0004007c,0x00000815,0x00000889,0x00000888,0x00050041,0x00000315, - 0x0000088a,0x00000880,0x000001d9,0x0004003d,0x0000005d,0x0000088b,0x0000088a,0x00070050, - 0x00000891,0x00000892,0x0000088b,0x0000088b,0x0000088b,0x0000088b,0x000600a9,0x00000030, - 0x00000893,0x00000892,0x0000088e,0x00000890,0x00040063,0x00000887,0x00000889,0x00000893, - 0x000100fd,0x000200f8,0x0000087f,0x0004003d,0x00000008,0x00000895,0x00000796,0x000500b8, - 0x0000005d,0x00000896,0x00000895,0x000000f6,0x000300f7,0x00000898,0x00000000,0x000400fa, - 0x00000896,0x00000897,0x00000898,0x000200f8,0x00000897,0x0004003d,0x00000010,0x0000089b, - 0x0000085b,0x0003003e,0x0000089a,0x0000089b,0x0004003d,0x00000010,0x0000089d,0x00000865, - 0x0003003e,0x0000089c,0x0000089d,0x0003003e,0x0000089e,0x0000010b,0x00070039,0x0000005f, - 0x0000089f,0x00000064,0x0000089a,0x0000089c,0x0000089e,0x0003003e,0x00000899,0x0000089f, - 0x0003003e,0x000008a0,0x0000010d,0x00050041,0x00000315,0x000008a1,0x00000899,0x000001d9, - 0x0004003d,0x0000005d,0x000008a2,0x000008a1,0x000300f7,0x000008a4,0x00000000,0x000400fa, - 0x000008a2,0x000008a3,0x00000966,0x000200f8,0x000008a3,0x00050041,0x000001d7,0x000008a6, - 0x00000899,0x000001e0,0x0004003d,0x0000005e,0x000008a7,0x000008a6,0x00060041,0x00000340, - 0x000008a8,0x0000033d,0x000001d9,0x000008a7,0x0004003d,0x00000339,0x000008a9,0x000008a8, - 0x00050051,0x00000030,0x000008aa,0x000008a9,0x00000000,0x00050041,0x00000242,0x000008ab, - 0x000008a5,0x000001d9,0x0003003e,0x000008ab,0x000008aa,0x00050051,0x00000030,0x000008ac, - 0x000008a9,0x00000001,0x00050041,0x00000242,0x000008ad,0x000008a5,0x00000210,0x0003003e, - 0x000008ad,0x000008ac,0x00050051,0x00000030,0x000008ae,0x000008a9,0x00000002,0x00050041, - 0x00000242,0x000008af,0x000008a5,0x00000319,0x0003003e,0x000008af,0x000008ae,0x00050051, - 0x00000030,0x000008b0,0x000008a9,0x00000003,0x00050041,0x00000242,0x000008b1,0x000008a5, - 0x0000031b,0x0003003e,0x000008b1,0x000008b0,0x00050051,0x00000030,0x000008b2,0x000008a9, - 0x00000004,0x00050041,0x00000242,0x000008b3,0x000008a5,0x000001e0,0x0003003e,0x000008b3, - 0x000008b2,0x00050051,0x00000333,0x000008b4,0x000008a9,0x00000005,0x00050041,0x0000034e, - 0x000008b5,0x000008a5,0x00000197,0x00050051,0x00000030,0x000008b6,0x000008b4,0x00000000, - 0x00050041,0x00000242,0x000008b7,0x000008b5,0x000001d9,0x0003003e,0x000008b7,0x000008b6, - 0x00050051,0x00000030,0x000008b8,0x000008b4,0x00000001,0x00050041,0x00000242,0x000008b9, - 0x000008b5,0x00000210,0x0003003e,0x000008b9,0x000008b8,0x00050051,0x00000030,0x000008ba, - 0x000008b4,0x00000002,0x00050041,0x00000242,0x000008bb,0x000008b5,0x00000319,0x0003003e, - 0x000008bb,0x000008ba,0x00050051,0x00000030,0x000008bc,0x000008b4,0x00000003,0x00050041, - 0x00000242,0x000008bd,0x000008b5,0x0000031b,0x0003003e,0x000008bd,0x000008bc,0x00050051, - 0x00000030,0x000008be,0x000008b4,0x00000004,0x00050041,0x00000242,0x000008bf,0x000008b5, - 0x000001e0,0x0003003e,0x000008bf,0x000008be,0x00050051,0x00000030,0x000008c0,0x000008b4, - 0x00000005,0x00050041,0x00000242,0x000008c1,0x000008b5,0x00000197,0x0003003e,0x000008c1, - 0x000008c0,0x00050051,0x00000030,0x000008c2,0x000008b4,0x00000006,0x00050041,0x00000242, - 0x000008c3,0x000008b5,0x00000193,0x0003003e,0x000008c3,0x000008c2,0x00050051,0x00000030, - 0x000008c4,0x000008b4,0x00000007,0x00050041,0x00000242,0x000008c5,0x000008b5,0x0000035f, - 0x0003003e,0x000008c5,0x000008c4,0x00050051,0x00000334,0x000008c6,0x000008a9,0x00000006, - 0x00050041,0x0000034e,0x000008c7,0x000008a5,0x00000193,0x00050051,0x00000030,0x000008c8, - 0x000008c6,0x00000000,0x00050041,0x00000242,0x000008c9,0x000008c7,0x000001d9,0x0003003e, - 0x000008c9,0x000008c8,0x00050051,0x00000030,0x000008ca,0x000008c6,0x00000001,0x00050041, - 0x00000242,0x000008cb,0x000008c7,0x00000210,0x0003003e,0x000008cb,0x000008ca,0x00050051, - 0x00000030,0x000008cc,0x000008c6,0x00000002,0x00050041,0x00000242,0x000008cd,0x000008c7, - 0x00000319,0x0003003e,0x000008cd,0x000008cc,0x00050051,0x00000030,0x000008ce,0x000008c6, - 0x00000003,0x00050041,0x00000242,0x000008cf,0x000008c7,0x0000031b,0x0003003e,0x000008cf, - 0x000008ce,0x00050051,0x00000030,0x000008d0,0x000008c6,0x00000004,0x00050041,0x00000242, - 0x000008d1,0x000008c7,0x000001e0,0x0003003e,0x000008d1,0x000008d0,0x00050051,0x00000030, - 0x000008d2,0x000008c6,0x00000005,0x00050041,0x00000242,0x000008d3,0x000008c7,0x00000197, - 0x0003003e,0x000008d3,0x000008d2,0x00050051,0x00000030,0x000008d4,0x000008c6,0x00000006, - 0x00050041,0x00000242,0x000008d5,0x000008c7,0x00000193,0x0003003e,0x000008d5,0x000008d4, - 0x00050051,0x00000030,0x000008d6,0x000008c6,0x00000007,0x00050041,0x00000242,0x000008d7, - 0x000008c7,0x0000035f,0x0003003e,0x000008d7,0x000008d6,0x00050051,0x00000335,0x000008d8, - 0x000008a9,0x00000007,0x00050041,0x0000034e,0x000008d9,0x000008a5,0x0000035f,0x00050051, - 0x00000030,0x000008da,0x000008d8,0x00000000,0x00050041,0x00000242,0x000008db,0x000008d9, - 0x000001d9,0x0003003e,0x000008db,0x000008da,0x00050051,0x00000030,0x000008dc,0x000008d8, - 0x00000001,0x00050041,0x00000242,0x000008dd,0x000008d9,0x00000210,0x0003003e,0x000008dd, - 0x000008dc,0x00050051,0x00000030,0x000008de,0x000008d8,0x00000002,0x00050041,0x00000242, - 0x000008df,0x000008d9,0x00000319,0x0003003e,0x000008df,0x000008de,0x00050051,0x00000030, - 0x000008e0,0x000008d8,0x00000003,0x00050041,0x00000242,0x000008e1,0x000008d9,0x0000031b, - 0x0003003e,0x000008e1,0x000008e0,0x00050051,0x00000030,0x000008e2,0x000008d8,0x00000004, - 0x00050041,0x00000242,0x000008e3,0x000008d9,0x000001e0,0x0003003e,0x000008e3,0x000008e2, - 0x00050051,0x00000030,0x000008e4,0x000008d8,0x00000005,0x00050041,0x00000242,0x000008e5, - 0x000008d9,0x00000197,0x0003003e,0x000008e5,0x000008e4,0x00050051,0x00000030,0x000008e6, - 0x000008d8,0x00000006,0x00050041,0x00000242,0x000008e7,0x000008d9,0x00000193,0x0003003e, - 0x000008e7,0x000008e6,0x00050051,0x00000030,0x000008e8,0x000008d8,0x00000007,0x00050041, - 0x00000242,0x000008e9,0x000008d9,0x0000035f,0x0003003e,0x000008e9,0x000008e8,0x00050051, - 0x00000336,0x000008ea,0x000008a9,0x00000008,0x00050041,0x0000034e,0x000008eb,0x000008a5, - 0x00000386,0x00050051,0x00000030,0x000008ec,0x000008ea,0x00000000,0x00050041,0x00000242, - 0x000008ed,0x000008eb,0x000001d9,0x0003003e,0x000008ed,0x000008ec,0x00050051,0x00000030, - 0x000008ee,0x000008ea,0x00000001,0x00050041,0x00000242,0x000008ef,0x000008eb,0x00000210, - 0x0003003e,0x000008ef,0x000008ee,0x00050051,0x00000030,0x000008f0,0x000008ea,0x00000002, - 0x00050041,0x00000242,0x000008f1,0x000008eb,0x00000319,0x0003003e,0x000008f1,0x000008f0, - 0x00050051,0x00000030,0x000008f2,0x000008ea,0x00000003,0x00050041,0x00000242,0x000008f3, - 0x000008eb,0x0000031b,0x0003003e,0x000008f3,0x000008f2,0x00050051,0x00000030,0x000008f4, - 0x000008ea,0x00000004,0x00050041,0x00000242,0x000008f5,0x000008eb,0x000001e0,0x0003003e, - 0x000008f5,0x000008f4,0x00050051,0x00000030,0x000008f6,0x000008ea,0x00000005,0x00050041, - 0x00000242,0x000008f7,0x000008eb,0x00000197,0x0003003e,0x000008f7,0x000008f6,0x00050051, - 0x00000030,0x000008f8,0x000008ea,0x00000006,0x00050041,0x00000242,0x000008f9,0x000008eb, - 0x00000193,0x0003003e,0x000008f9,0x000008f8,0x00050051,0x00000030,0x000008fa,0x000008ea, - 0x00000007,0x00050041,0x00000242,0x000008fb,0x000008eb,0x0000035f,0x0003003e,0x000008fb, - 0x000008fa,0x00050051,0x00000337,0x000008fc,0x000008a9,0x00000009,0x00050041,0x0000034e, - 0x000008fd,0x000008a5,0x00000399,0x00050051,0x00000030,0x000008fe,0x000008fc,0x00000000, - 0x00050041,0x00000242,0x000008ff,0x000008fd,0x000001d9,0x0003003e,0x000008ff,0x000008fe, - 0x00050051,0x00000030,0x00000900,0x000008fc,0x00000001,0x00050041,0x00000242,0x00000901, - 0x000008fd,0x00000210,0x0003003e,0x00000901,0x00000900,0x00050051,0x00000030,0x00000902, - 0x000008fc,0x00000002,0x00050041,0x00000242,0x00000903,0x000008fd,0x00000319,0x0003003e, - 0x00000903,0x00000902,0x00050051,0x00000030,0x00000904,0x000008fc,0x00000003,0x00050041, - 0x00000242,0x00000905,0x000008fd,0x0000031b,0x0003003e,0x00000905,0x00000904,0x00050051, - 0x00000030,0x00000906,0x000008fc,0x00000004,0x00050041,0x00000242,0x00000907,0x000008fd, - 0x000001e0,0x0003003e,0x00000907,0x00000906,0x00050051,0x00000030,0x00000908,0x000008fc, - 0x00000005,0x00050041,0x00000242,0x00000909,0x000008fd,0x00000197,0x0003003e,0x00000909, - 0x00000908,0x00050051,0x00000030,0x0000090a,0x000008fc,0x00000006,0x00050041,0x00000242, - 0x0000090b,0x000008fd,0x00000193,0x0003003e,0x0000090b,0x0000090a,0x00050051,0x00000030, - 0x0000090c,0x000008fc,0x00000007,0x00050041,0x00000242,0x0000090d,0x000008fd,0x0000035f, - 0x0003003e,0x0000090d,0x0000090c,0x00050051,0x00000338,0x0000090e,0x000008a9,0x0000000a, - 0x00050041,0x0000034e,0x0000090f,0x000008a5,0x000003ac,0x00050051,0x00000030,0x00000910, - 0x0000090e,0x00000000,0x00050041,0x00000242,0x00000911,0x0000090f,0x000001d9,0x0003003e, - 0x00000911,0x00000910,0x00050051,0x00000030,0x00000912,0x0000090e,0x00000001,0x00050041, - 0x00000242,0x00000913,0x0000090f,0x00000210,0x0003003e,0x00000913,0x00000912,0x00050051, - 0x00000030,0x00000914,0x0000090e,0x00000002,0x00050041,0x00000242,0x00000915,0x0000090f, - 0x00000319,0x0003003e,0x00000915,0x00000914,0x00050051,0x00000030,0x00000916,0x0000090e, - 0x00000003,0x00050041,0x00000242,0x00000917,0x0000090f,0x0000031b,0x0003003e,0x00000917, - 0x00000916,0x00050051,0x00000030,0x00000918,0x0000090e,0x00000004,0x00050041,0x00000242, - 0x00000919,0x0000090f,0x000001e0,0x0003003e,0x00000919,0x00000918,0x00050051,0x00000030, - 0x0000091a,0x0000090e,0x00000005,0x00050041,0x00000242,0x0000091b,0x0000090f,0x00000197, - 0x0003003e,0x0000091b,0x0000091a,0x00050051,0x00000030,0x0000091c,0x0000090e,0x00000006, - 0x00050041,0x00000242,0x0000091d,0x0000090f,0x00000193,0x0003003e,0x0000091d,0x0000091c, - 0x00050051,0x00000030,0x0000091e,0x0000090e,0x00000007,0x00050041,0x00000242,0x0000091f, - 0x0000090f,0x0000035f,0x0003003e,0x0000091f,0x0000091e,0x00050051,0x00000030,0x00000920, - 0x000008a9,0x0000000b,0x00050041,0x00000242,0x00000921,0x000008a5,0x000003bf,0x0003003e, - 0x00000921,0x00000920,0x00050051,0x00000030,0x00000922,0x000008a9,0x0000000c,0x00050041, - 0x00000242,0x00000923,0x000008a5,0x000000e9,0x0003003e,0x00000923,0x00000922,0x00060041, - 0x0000002a,0x00000924,0x000008a5,0x000000e9,0x00000137,0x0004003d,0x00000008,0x00000925, - 0x00000924,0x000500ba,0x0000005d,0x00000926,0x00000925,0x000000f6,0x000300f7,0x00000928, - 0x00000000,0x000400fa,0x00000926,0x00000927,0x00000938,0x000200f8,0x00000927,0x00050041, - 0x0000001f,0x0000092a,0x00000899,0x00000319,0x0004003d,0x00000010,0x0000092b,0x0000092a, - 0x0003003e,0x00000929,0x0000092b,0x00050041,0x0000001f,0x0000092d,0x00000899,0x0000031b, - 0x0004003d,0x00000010,0x0000092e,0x0000092d,0x0003003e,0x0000092c,0x0000092e,0x0004003d, - 0x00000010,0x00000930,0x00000865,0x0003003e,0x0000092f,0x00000930,0x0004003d,0x00000033, - 0x00000932,0x000008a5,0x0003003e,0x00000931,0x00000932,0x00080039,0x00000010,0x00000933, - 0x0000007c,0x00000929,0x0000092c,0x0000092f,0x00000931,0x00050041,0x00000242,0x00000934, - 0x000008a5,0x0000031b,0x0004003d,0x00000030,0x00000935,0x00000934,0x0008004f,0x00000010, - 0x00000936,0x00000935,0x00000935,0x00000000,0x00000001,0x00000002,0x00050081,0x00000010, - 0x00000937,0x00000933,0x00000936,0x0003003e,0x000008a0,0x00000937,0x000200f9,0x00000928, - 0x000200f8,0x00000938,0x00060041,0x0000002a,0x00000939,0x000008a5,0x000001e0,0x000000f2, - 0x0004003d,0x00000008,0x0000093a,0x00000939,0x000500ba,0x0000005d,0x0000093b,0x0000093a, - 0x000000f6,0x000300f7,0x0000093d,0x00000000,0x000400fa,0x0000093b,0x0000093c,0x00000962, - 0x000200f8,0x0000093c,0x00050041,0x00000546,0x0000093f,0x000000e8,0x000001d9,0x0004003d, - 0x000000e5,0x00000940,0x0000093f,0x00050041,0x0000001f,0x00000941,0x00000899,0x00000319, - 0x0004003d,0x00000010,0x00000942,0x00000941,0x00050051,0x00000008,0x00000943,0x00000942, - 0x00000000,0x00050051,0x00000008,0x00000944,0x00000942,0x00000001,0x00050051,0x00000008, - 0x00000945,0x00000942,0x00000002,0x00070050,0x00000030,0x00000946,0x00000943,0x00000944, - 0x00000945,0x000000dc,0x00050091,0x00000030,0x00000947,0x00000940,0x00000946,0x0008004f, - 0x00000010,0x00000948,0x00000947,0x00000947,0x00000000,0x00000001,0x00000002,0x0003003e, - 0x0000093e,0x00000948,0x00050041,0x00000546,0x0000094a,0x000000e8,0x000001d9,0x0004003d, - 0x000000e5,0x0000094b,0x0000094a,0x00050051,0x00000030,0x0000094c,0x0000094b,0x00000000, - 0x0008004f,0x00000010,0x0000094d,0x0000094c,0x0000094c,0x00000000,0x00000001,0x00000002, - 0x00050051,0x00000030,0x0000094e,0x0000094b,0x00000001,0x0008004f,0x00000010,0x0000094f, - 0x0000094e,0x0000094e,0x00000000,0x00000001,0x00000002,0x00050051,0x00000030,0x00000950, - 0x0000094b,0x00000002,0x0008004f,0x00000010,0x00000951,0x00000950,0x00000950,0x00000000, - 0x00000001,0x00000002,0x00060050,0x000003e5,0x00000952,0x0000094d,0x0000094f,0x00000951, - 0x00050041,0x0000001f,0x00000953,0x00000899,0x0000031b,0x0004003d,0x00000010,0x00000954, - 0x00000953,0x00050091,0x00000010,0x00000955,0x00000952,0x00000954,0x0006000c,0x00000010, - 0x00000956,0x00000001,0x00000045,0x00000955,0x0003003e,0x00000949,0x00000956,0x0004003d, - 0x00000010,0x00000958,0x0000093e,0x0003003e,0x00000957,0x00000958,0x0004003d,0x00000010, - 0x0000095a,0x00000949,0x0003003e,0x00000959,0x0000095a,0x00050041,0x00000242,0x0000095c, - 0x000008a5,0x000001d9,0x0004003d,0x00000030,0x0000095d,0x0000095c,0x0008004f,0x00000010, - 0x0000095e,0x0000095d,0x0000095d,0x00000000,0x00000001,0x00000002,0x0003003e,0x0000095b, - 0x0000095e,0x0004003d,0x00000033,0x00000960,0x000008a5,0x0003003e,0x0000095f,0x00000960, - 0x00080039,0x00000010,0x00000961,0x00000076,0x00000957,0x00000959,0x0000095b,0x0000095f, - 0x0003003e,0x000008a0,0x00000961,0x000200f9,0x0000093d,0x000200f8,0x00000962,0x00050041, - 0x00000242,0x00000963,0x000008a5,0x000001d9,0x0004003d,0x00000030,0x00000964,0x00000963, - 0x0008004f,0x00000010,0x00000965,0x00000964,0x00000964,0x00000000,0x00000001,0x00000002, - 0x0003003e,0x000008a0,0x00000965,0x000200f9,0x0000093d,0x000200f8,0x0000093d,0x000200f9, - 0x00000928,0x000200f8,0x00000928,0x000200f9,0x000008a4,0x000200f8,0x00000966,0x00050041, - 0x00000007,0x00000968,0x00000776,0x000000ba,0x0004003d,0x00000006,0x00000969,0x00000968, - 0x00040070,0x00000008,0x0000096a,0x00000969,0x00060041,0x000000f3,0x0000096b,0x000000e8, - 0x000001e0,0x000000ba,0x0004003d,0x00000008,0x0000096c,0x0000096b,0x0007000c,0x00000008, - 0x0000096d,0x00000001,0x00000028,0x0000096c,0x000000dc,0x00050088,0x00000008,0x0000096e, - 0x0000096a,0x0000096d,0x0008000c,0x00000008,0x0000096f,0x00000001,0x0000002b,0x0000096e, - 0x000000cc,0x000000dc,0x0003003e,0x00000967,0x0000096f,0x00050041,0x000000ea,0x00000970, - 0x000000e8,0x00000197,0x0004003d,0x00000030,0x00000971,0x00000970,0x0008004f,0x00000010, - 0x00000972,0x00000971,0x00000971,0x00000000,0x00000001,0x00000002,0x00050041,0x000000ea, - 0x00000973,0x000000e8,0x00000193,0x0004003d,0x00000030,0x00000974,0x00000973,0x0008004f, - 0x00000010,0x00000975,0x00000974,0x00000974,0x00000000,0x00000001,0x00000002,0x0004003d, - 0x00000008,0x00000976,0x00000967,0x00060050,0x00000010,0x00000977,0x00000976,0x00000976, - 0x00000976,0x0008000c,0x00000010,0x00000978,0x00000001,0x0000002e,0x00000972,0x00000975, - 0x00000977,0x0003003e,0x000008a0,0x00000978,0x00060041,0x000000f3,0x00000979,0x000000e8, - 0x000000e9,0x000000c2,0x0004003d,0x00000008,0x0000097a,0x00000979,0x000500ba,0x0000005d, - 0x0000097b,0x0000097a,0x000004b9,0x000300f7,0x0000097d,0x00000000,0x000400fa,0x0000097b, - 0x0000097c,0x0000097d,0x000200f8,0x0000097c,0x0004003d,0x00000010,0x0000097f,0x00000865, - 0x0003003e,0x0000097e,0x0000097f,0x00050039,0x00000010,0x00000980,0x00000025,0x0000097e, - 0x0003003e,0x000008a0,0x00000980,0x000200f9,0x0000097d,0x000200f8,0x0000097d,0x000200f9, - 0x000008a4,0x000200f8,0x000008a4,0x0004003d,0x00000810,0x00000981,0x00000812,0x0004003d, - 0x00000774,0x00000982,0x00000776,0x0004007c,0x00000815,0x00000983,0x00000982,0x0004003d, - 0x00000010,0x00000984,0x000008a0,0x00050051,0x00000008,0x00000985,0x00000984,0x00000000, - 0x00050051,0x00000008,0x00000986,0x00000984,0x00000001,0x00050051,0x00000008,0x00000987, - 0x00000984,0x00000002,0x00070050,0x00000030,0x00000988,0x00000985,0x00000986,0x00000987, - 0x000000dc,0x00070050,0x00000030,0x00000989,0x000000cc,0x000000cc,0x000000cc,0x000000cc, - 0x00070050,0x00000030,0x0000098a,0x000000dc,0x000000dc,0x000000dc,0x000000dc,0x0008000c, - 0x00000030,0x0000098b,0x00000001,0x0000002b,0x00000988,0x00000989,0x0000098a,0x00040063, - 0x00000981,0x00000983,0x0000098b,0x000100fd,0x000200f8,0x00000898,0x0004003d,0x00000008, - 0x0000098d,0x00000796,0x000500ba,0x0000005d,0x0000098f,0x0000098d,0x0000098e,0x0004003d, - 0x00000008,0x00000990,0x00000796,0x000500b8,0x0000005d,0x00000991,0x00000990,0x0000087c, - 0x000500a7,0x0000005d,0x00000992,0x0000098f,0x00000991,0x000300f7,0x00000994,0x00000000, - 0x000400fa,0x00000992,0x00000993,0x00000994,0x000200f8,0x00000993,0x0004003d,0x00000010, - 0x00000997,0x0000085b,0x0003003e,0x00000996,0x00000997,0x0004003d,0x00000010,0x00000999, - 0x00000865,0x0003003e,0x00000998,0x00000999,0x0003003e,0x0000099a,0x0000010b,0x00070039, - 0x0000005f,0x0000099b,0x00000064,0x00000996,0x00000998,0x0000099a,0x0003003e,0x00000995, - 0x0000099b,0x00050041,0x00000315,0x0000099c,0x00000995,0x000001d9,0x0004003d,0x0000005d, - 0x0000099d,0x0000099c,0x000300f7,0x0000099f,0x00000000,0x000400fa,0x0000099d,0x0000099e, - 0x00000aec,0x000200f8,0x0000099e,0x00050041,0x000001d7,0x000009a1,0x00000995,0x000001e0, - 0x0004003d,0x0000005e,0x000009a2,0x000009a1,0x00060041,0x00000340,0x000009a3,0x0000033d, - 0x000001d9,0x000009a2,0x0004003d,0x00000339,0x000009a4,0x000009a3,0x00050051,0x00000030, - 0x000009a5,0x000009a4,0x00000000,0x00050041,0x00000242,0x000009a6,0x000009a0,0x000001d9, - 0x0003003e,0x000009a6,0x000009a5,0x00050051,0x00000030,0x000009a7,0x000009a4,0x00000001, - 0x00050041,0x00000242,0x000009a8,0x000009a0,0x00000210,0x0003003e,0x000009a8,0x000009a7, - 0x00050051,0x00000030,0x000009a9,0x000009a4,0x00000002,0x00050041,0x00000242,0x000009aa, - 0x000009a0,0x00000319,0x0003003e,0x000009aa,0x000009a9,0x00050051,0x00000030,0x000009ab, - 0x000009a4,0x00000003,0x00050041,0x00000242,0x000009ac,0x000009a0,0x0000031b,0x0003003e, - 0x000009ac,0x000009ab,0x00050051,0x00000030,0x000009ad,0x000009a4,0x00000004,0x00050041, - 0x00000242,0x000009ae,0x000009a0,0x000001e0,0x0003003e,0x000009ae,0x000009ad,0x00050051, - 0x00000333,0x000009af,0x000009a4,0x00000005,0x00050041,0x0000034e,0x000009b0,0x000009a0, - 0x00000197,0x00050051,0x00000030,0x000009b1,0x000009af,0x00000000,0x00050041,0x00000242, - 0x000009b2,0x000009b0,0x000001d9,0x0003003e,0x000009b2,0x000009b1,0x00050051,0x00000030, - 0x000009b3,0x000009af,0x00000001,0x00050041,0x00000242,0x000009b4,0x000009b0,0x00000210, - 0x0003003e,0x000009b4,0x000009b3,0x00050051,0x00000030,0x000009b5,0x000009af,0x00000002, - 0x00050041,0x00000242,0x000009b6,0x000009b0,0x00000319,0x0003003e,0x000009b6,0x000009b5, - 0x00050051,0x00000030,0x000009b7,0x000009af,0x00000003,0x00050041,0x00000242,0x000009b8, - 0x000009b0,0x0000031b,0x0003003e,0x000009b8,0x000009b7,0x00050051,0x00000030,0x000009b9, - 0x000009af,0x00000004,0x00050041,0x00000242,0x000009ba,0x000009b0,0x000001e0,0x0003003e, - 0x000009ba,0x000009b9,0x00050051,0x00000030,0x000009bb,0x000009af,0x00000005,0x00050041, - 0x00000242,0x000009bc,0x000009b0,0x00000197,0x0003003e,0x000009bc,0x000009bb,0x00050051, - 0x00000030,0x000009bd,0x000009af,0x00000006,0x00050041,0x00000242,0x000009be,0x000009b0, - 0x00000193,0x0003003e,0x000009be,0x000009bd,0x00050051,0x00000030,0x000009bf,0x000009af, - 0x00000007,0x00050041,0x00000242,0x000009c0,0x000009b0,0x0000035f,0x0003003e,0x000009c0, - 0x000009bf,0x00050051,0x00000334,0x000009c1,0x000009a4,0x00000006,0x00050041,0x0000034e, - 0x000009c2,0x000009a0,0x00000193,0x00050051,0x00000030,0x000009c3,0x000009c1,0x00000000, - 0x00050041,0x00000242,0x000009c4,0x000009c2,0x000001d9,0x0003003e,0x000009c4,0x000009c3, - 0x00050051,0x00000030,0x000009c5,0x000009c1,0x00000001,0x00050041,0x00000242,0x000009c6, - 0x000009c2,0x00000210,0x0003003e,0x000009c6,0x000009c5,0x00050051,0x00000030,0x000009c7, - 0x000009c1,0x00000002,0x00050041,0x00000242,0x000009c8,0x000009c2,0x00000319,0x0003003e, - 0x000009c8,0x000009c7,0x00050051,0x00000030,0x000009c9,0x000009c1,0x00000003,0x00050041, - 0x00000242,0x000009ca,0x000009c2,0x0000031b,0x0003003e,0x000009ca,0x000009c9,0x00050051, - 0x00000030,0x000009cb,0x000009c1,0x00000004,0x00050041,0x00000242,0x000009cc,0x000009c2, - 0x000001e0,0x0003003e,0x000009cc,0x000009cb,0x00050051,0x00000030,0x000009cd,0x000009c1, - 0x00000005,0x00050041,0x00000242,0x000009ce,0x000009c2,0x00000197,0x0003003e,0x000009ce, - 0x000009cd,0x00050051,0x00000030,0x000009cf,0x000009c1,0x00000006,0x00050041,0x00000242, - 0x000009d0,0x000009c2,0x00000193,0x0003003e,0x000009d0,0x000009cf,0x00050051,0x00000030, - 0x000009d1,0x000009c1,0x00000007,0x00050041,0x00000242,0x000009d2,0x000009c2,0x0000035f, - 0x0003003e,0x000009d2,0x000009d1,0x00050051,0x00000335,0x000009d3,0x000009a4,0x00000007, - 0x00050041,0x0000034e,0x000009d4,0x000009a0,0x0000035f,0x00050051,0x00000030,0x000009d5, - 0x000009d3,0x00000000,0x00050041,0x00000242,0x000009d6,0x000009d4,0x000001d9,0x0003003e, - 0x000009d6,0x000009d5,0x00050051,0x00000030,0x000009d7,0x000009d3,0x00000001,0x00050041, - 0x00000242,0x000009d8,0x000009d4,0x00000210,0x0003003e,0x000009d8,0x000009d7,0x00050051, - 0x00000030,0x000009d9,0x000009d3,0x00000002,0x00050041,0x00000242,0x000009da,0x000009d4, - 0x00000319,0x0003003e,0x000009da,0x000009d9,0x00050051,0x00000030,0x000009db,0x000009d3, - 0x00000003,0x00050041,0x00000242,0x000009dc,0x000009d4,0x0000031b,0x0003003e,0x000009dc, - 0x000009db,0x00050051,0x00000030,0x000009dd,0x000009d3,0x00000004,0x00050041,0x00000242, - 0x000009de,0x000009d4,0x000001e0,0x0003003e,0x000009de,0x000009dd,0x00050051,0x00000030, - 0x000009df,0x000009d3,0x00000005,0x00050041,0x00000242,0x000009e0,0x000009d4,0x00000197, - 0x0003003e,0x000009e0,0x000009df,0x00050051,0x00000030,0x000009e1,0x000009d3,0x00000006, - 0x00050041,0x00000242,0x000009e2,0x000009d4,0x00000193,0x0003003e,0x000009e2,0x000009e1, - 0x00050051,0x00000030,0x000009e3,0x000009d3,0x00000007,0x00050041,0x00000242,0x000009e4, - 0x000009d4,0x0000035f,0x0003003e,0x000009e4,0x000009e3,0x00050051,0x00000336,0x000009e5, - 0x000009a4,0x00000008,0x00050041,0x0000034e,0x000009e6,0x000009a0,0x00000386,0x00050051, - 0x00000030,0x000009e7,0x000009e5,0x00000000,0x00050041,0x00000242,0x000009e8,0x000009e6, - 0x000001d9,0x0003003e,0x000009e8,0x000009e7,0x00050051,0x00000030,0x000009e9,0x000009e5, - 0x00000001,0x00050041,0x00000242,0x000009ea,0x000009e6,0x00000210,0x0003003e,0x000009ea, - 0x000009e9,0x00050051,0x00000030,0x000009eb,0x000009e5,0x00000002,0x00050041,0x00000242, - 0x000009ec,0x000009e6,0x00000319,0x0003003e,0x000009ec,0x000009eb,0x00050051,0x00000030, - 0x000009ed,0x000009e5,0x00000003,0x00050041,0x00000242,0x000009ee,0x000009e6,0x0000031b, - 0x0003003e,0x000009ee,0x000009ed,0x00050051,0x00000030,0x000009ef,0x000009e5,0x00000004, - 0x00050041,0x00000242,0x000009f0,0x000009e6,0x000001e0,0x0003003e,0x000009f0,0x000009ef, - 0x00050051,0x00000030,0x000009f1,0x000009e5,0x00000005,0x00050041,0x00000242,0x000009f2, - 0x000009e6,0x00000197,0x0003003e,0x000009f2,0x000009f1,0x00050051,0x00000030,0x000009f3, - 0x000009e5,0x00000006,0x00050041,0x00000242,0x000009f4,0x000009e6,0x00000193,0x0003003e, - 0x000009f4,0x000009f3,0x00050051,0x00000030,0x000009f5,0x000009e5,0x00000007,0x00050041, - 0x00000242,0x000009f6,0x000009e6,0x0000035f,0x0003003e,0x000009f6,0x000009f5,0x00050051, - 0x00000337,0x000009f7,0x000009a4,0x00000009,0x00050041,0x0000034e,0x000009f8,0x000009a0, - 0x00000399,0x00050051,0x00000030,0x000009f9,0x000009f7,0x00000000,0x00050041,0x00000242, - 0x000009fa,0x000009f8,0x000001d9,0x0003003e,0x000009fa,0x000009f9,0x00050051,0x00000030, - 0x000009fb,0x000009f7,0x00000001,0x00050041,0x00000242,0x000009fc,0x000009f8,0x00000210, - 0x0003003e,0x000009fc,0x000009fb,0x00050051,0x00000030,0x000009fd,0x000009f7,0x00000002, - 0x00050041,0x00000242,0x000009fe,0x000009f8,0x00000319,0x0003003e,0x000009fe,0x000009fd, - 0x00050051,0x00000030,0x000009ff,0x000009f7,0x00000003,0x00050041,0x00000242,0x00000a00, - 0x000009f8,0x0000031b,0x0003003e,0x00000a00,0x000009ff,0x00050051,0x00000030,0x00000a01, - 0x000009f7,0x00000004,0x00050041,0x00000242,0x00000a02,0x000009f8,0x000001e0,0x0003003e, - 0x00000a02,0x00000a01,0x00050051,0x00000030,0x00000a03,0x000009f7,0x00000005,0x00050041, - 0x00000242,0x00000a04,0x000009f8,0x00000197,0x0003003e,0x00000a04,0x00000a03,0x00050051, - 0x00000030,0x00000a05,0x000009f7,0x00000006,0x00050041,0x00000242,0x00000a06,0x000009f8, - 0x00000193,0x0003003e,0x00000a06,0x00000a05,0x00050051,0x00000030,0x00000a07,0x000009f7, - 0x00000007,0x00050041,0x00000242,0x00000a08,0x000009f8,0x0000035f,0x0003003e,0x00000a08, - 0x00000a07,0x00050051,0x00000338,0x00000a09,0x000009a4,0x0000000a,0x00050041,0x0000034e, - 0x00000a0a,0x000009a0,0x000003ac,0x00050051,0x00000030,0x00000a0b,0x00000a09,0x00000000, - 0x00050041,0x00000242,0x00000a0c,0x00000a0a,0x000001d9,0x0003003e,0x00000a0c,0x00000a0b, - 0x00050051,0x00000030,0x00000a0d,0x00000a09,0x00000001,0x00050041,0x00000242,0x00000a0e, - 0x00000a0a,0x00000210,0x0003003e,0x00000a0e,0x00000a0d,0x00050051,0x00000030,0x00000a0f, - 0x00000a09,0x00000002,0x00050041,0x00000242,0x00000a10,0x00000a0a,0x00000319,0x0003003e, - 0x00000a10,0x00000a0f,0x00050051,0x00000030,0x00000a11,0x00000a09,0x00000003,0x00050041, - 0x00000242,0x00000a12,0x00000a0a,0x0000031b,0x0003003e,0x00000a12,0x00000a11,0x00050051, - 0x00000030,0x00000a13,0x00000a09,0x00000004,0x00050041,0x00000242,0x00000a14,0x00000a0a, - 0x000001e0,0x0003003e,0x00000a14,0x00000a13,0x00050051,0x00000030,0x00000a15,0x00000a09, - 0x00000005,0x00050041,0x00000242,0x00000a16,0x00000a0a,0x00000197,0x0003003e,0x00000a16, - 0x00000a15,0x00050051,0x00000030,0x00000a17,0x00000a09,0x00000006,0x00050041,0x00000242, - 0x00000a18,0x00000a0a,0x00000193,0x0003003e,0x00000a18,0x00000a17,0x00050051,0x00000030, - 0x00000a19,0x00000a09,0x00000007,0x00050041,0x00000242,0x00000a1a,0x00000a0a,0x0000035f, - 0x0003003e,0x00000a1a,0x00000a19,0x00050051,0x00000030,0x00000a1b,0x000009a4,0x0000000b, - 0x00050041,0x00000242,0x00000a1c,0x000009a0,0x000003bf,0x0003003e,0x00000a1c,0x00000a1b, - 0x00050051,0x00000030,0x00000a1d,0x000009a4,0x0000000c,0x00050041,0x00000242,0x00000a1e, - 0x000009a0,0x000000e9,0x0003003e,0x00000a1e,0x00000a1d,0x00050041,0x0000001f,0x00000a20, - 0x00000995,0x0000031b,0x0004003d,0x00000010,0x00000a21,0x00000a20,0x0006000c,0x00000010, - 0x00000a22,0x00000001,0x00000045,0x00000a21,0x0003003e,0x00000a1f,0x00000a22,0x0004003d, - 0x00000010,0x00000a24,0x00000865,0x0004007f,0x00000010,0x00000a25,0x00000a24,0x0003003e, - 0x00000a23,0x00000a25,0x00050041,0x00000242,0x00000a27,0x000009a0,0x000001d9,0x0004003d, - 0x00000030,0x00000a28,0x00000a27,0x0008004f,0x00000010,0x00000a29,0x00000a28,0x00000a28, - 0x00000000,0x00000001,0x00000002,0x0003003e,0x00000a26,0x00000a29,0x00060041,0x0000002a, - 0x00000a2b,0x000009a0,0x000000e9,0x00000137,0x0004003d,0x00000008,0x00000a2c,0x00000a2b, - 0x000500ba,0x0000005d,0x00000a2d,0x00000a2c,0x000000f6,0x000300f7,0x00000a30,0x00000000, - 0x000400fa,0x00000a2d,0x00000a2f,0x00000a3a,0x000200f8,0x00000a2f,0x0004003d,0x00000033, - 0x00000a32,0x000009a0,0x0003003e,0x00000a31,0x00000a32,0x00050039,0x00000010,0x00000a33, - 0x0000003b,0x00000a31,0x00050083,0x00000010,0x00000a34,0x0000027f,0x00000a33,0x00060041, - 0x0000002a,0x00000a35,0x000009a0,0x000000e9,0x000000c2,0x0004003d,0x00000008,0x00000a36, - 0x00000a35,0x0008000c,0x00000008,0x00000a37,0x00000001,0x0000002b,0x00000a36,0x000000cc, - 0x000000dc,0x00050083,0x00000008,0x00000a38,0x000000dc,0x00000a37,0x0005008e,0x00000010, - 0x00000a39,0x00000a34,0x00000a38,0x0003003e,0x00000a2e,0x00000a39,0x000200f9,0x00000a30, - 0x000200f8,0x00000a3a,0x0003003e,0x00000a2e,0x0000027f,0x000200f9,0x00000a30,0x000200f8, - 0x00000a30,0x0004003d,0x00000010,0x00000a3b,0x00000a2e,0x0003003e,0x00000a2a,0x00000a3b, - 0x0004003d,0x00000010,0x00000a3d,0x00000a2a,0x0004003d,0x00000010,0x00000a3e,0x00000a26, - 0x00050085,0x00000010,0x00000a3f,0x00000a3d,0x00000a3e,0x0004003d,0x00000010,0x00000a41, - 0x00000a1f,0x0003003e,0x00000a40,0x00000a41,0x00050039,0x00000010,0x00000a42,0x00000028, - 0x00000a40,0x00050085,0x00000010,0x00000a43,0x00000a3f,0x00000a42,0x00060050,0x00000010, - 0x00000a44,0x00000215,0x00000215,0x00000215,0x00050088,0x00000010,0x00000a45,0x00000a43, - 0x00000a44,0x0003003e,0x00000a3c,0x00000a45,0x00060041,0x0000002a,0x00000a47,0x000009a0, - 0x000000e9,0x00000137,0x0004003d,0x00000008,0x00000a48,0x00000a47,0x000500ba,0x0000005d, - 0x00000a49,0x00000a48,0x000000f6,0x000300f7,0x00000a4c,0x00000000,0x000400fa,0x00000a49, - 0x00000a4b,0x00000a50,0x000200f8,0x00000a4b,0x00060041,0x0000002a,0x00000a4d,0x000009a0, - 0x000000e9,0x000000ba,0x0004003d,0x00000008,0x00000a4e,0x00000a4d,0x0008000c,0x00000008, - 0x00000a4f,0x00000001,0x0000002b,0x00000a4e,0x000000cc,0x000000dc,0x0003003e,0x00000a4a, - 0x00000a4f,0x000200f9,0x00000a4c,0x000200f8,0x00000a50,0x0003003e,0x00000a4a,0x000000dc, - 0x000200f9,0x00000a4c,0x000200f8,0x00000a4c,0x0004003d,0x00000008,0x00000a51,0x00000a4a, - 0x0003003e,0x00000a46,0x00000a51,0x0004003d,0x00000010,0x00000a53,0x00000a23,0x0004003d, - 0x00000010,0x00000a54,0x00000a1f,0x0007000c,0x00000010,0x00000a55,0x00000001,0x00000047, - 0x00000a53,0x00000a54,0x0006000c,0x00000010,0x00000a56,0x00000001,0x00000045,0x00000a55, - 0x0003003e,0x00000a52,0x00000a56,0x00060041,0x0000002a,0x00000a58,0x000009a0,0x000000e9, - 0x00000137,0x0004003d,0x00000008,0x00000a59,0x00000a58,0x000500ba,0x0000005d,0x00000a5a, - 0x00000a59,0x000000f6,0x000300f7,0x00000a5d,0x00000000,0x000400fa,0x00000a5a,0x00000a5c, - 0x00000a61,0x000200f8,0x00000a5c,0x0004003d,0x00000033,0x00000a5f,0x000009a0,0x0003003e, - 0x00000a5e,0x00000a5f,0x00050039,0x00000010,0x00000a60,0x0000003b,0x00000a5e,0x0003003e, - 0x00000a5b,0x00000a60,0x000200f9,0x00000a5d,0x000200f8,0x00000a61,0x00050041,0x00000242, - 0x00000a62,0x000009a0,0x00000319,0x0004003d,0x00000030,0x00000a63,0x00000a62,0x0008004f, - 0x00000010,0x00000a64,0x00000a63,0x00000a63,0x00000000,0x00000001,0x00000002,0x00060050, - 0x00000010,0x00000a65,0x000000f6,0x000000f6,0x000000f6,0x0008000c,0x00000010,0x00000a66, - 0x00000001,0x0000002e,0x00000241,0x00000a64,0x00000a65,0x0003003e,0x00000a5b,0x00000a66, - 0x000200f9,0x00000a5d,0x000200f8,0x00000a5d,0x0004003d,0x00000010,0x00000a67,0x00000a5b, - 0x0003003e,0x00000a57,0x00000a67,0x0004003d,0x00000010,0x00000a69,0x00000a1f,0x0004003d, - 0x00000010,0x00000a6a,0x00000a23,0x00050094,0x00000008,0x00000a6b,0x00000a69,0x00000a6a, - 0x0007000c,0x00000008,0x00000a6c,0x00000001,0x00000028,0x00000a6b,0x000000cc,0x0003003e, - 0x00000a68,0x00000a6c,0x0004003d,0x00000010,0x00000a6e,0x00000a57,0x0004003d,0x00000010, - 0x00000a6f,0x00000a57,0x00050083,0x00000010,0x00000a70,0x0000027f,0x00000a6f,0x0004003d, - 0x00000008,0x00000a71,0x00000a68,0x00050083,0x00000008,0x00000a72,0x000000dc,0x00000a71, - 0x0007000c,0x00000008,0x00000a73,0x00000001,0x0000001a,0x00000a72,0x00000285,0x0005008e, - 0x00000010,0x00000a74,0x00000a70,0x00000a73,0x00050081,0x00000010,0x00000a75,0x00000a6e, - 0x00000a74,0x0003003e,0x00000a6d,0x00000a75,0x0004003d,0x00000010,0x00000a77,0x00000a6d, - 0x0004003d,0x00000010,0x00000a79,0x00000a52,0x0003003e,0x00000a78,0x00000a79,0x0004003d, - 0x00000008,0x00000a7b,0x00000a46,0x0003003e,0x00000a7a,0x00000a7b,0x00060039,0x00000010, - 0x00000a7c,0x0000002e,0x00000a78,0x00000a7a,0x00050085,0x00000010,0x00000a7d,0x00000a77, - 0x00000a7c,0x0003003e,0x00000a76,0x00000a7d,0x0004003d,0x00000010,0x00000a7f,0x00000a3c, - 0x0004003d,0x00000010,0x00000a80,0x00000a76,0x00050081,0x00000010,0x00000a81,0x00000a7f, - 0x00000a80,0x0003003e,0x00000a7e,0x00000a81,0x00060041,0x0000002a,0x00000a82,0x000009a0, - 0x000000e9,0x00000137,0x0004003d,0x00000008,0x00000a83,0x00000a82,0x000500ba,0x0000005d, - 0x00000a84,0x00000a83,0x000000f6,0x000300f7,0x00000a86,0x00000000,0x000400fa,0x00000a84, - 0x00000a85,0x00000a94,0x000200f8,0x00000a85,0x00050041,0x0000001f,0x00000a88,0x00000995, - 0x00000319,0x0004003d,0x00000010,0x00000a89,0x00000a88,0x0003003e,0x00000a87,0x00000a89, - 0x00050041,0x0000001f,0x00000a8b,0x00000995,0x0000031b,0x0004003d,0x00000010,0x00000a8c, - 0x00000a8b,0x0003003e,0x00000a8a,0x00000a8c,0x0004003d,0x00000010,0x00000a8e,0x00000865, - 0x0003003e,0x00000a8d,0x00000a8e,0x0004003d,0x00000033,0x00000a90,0x000009a0,0x0003003e, - 0x00000a8f,0x00000a90,0x00080039,0x00000010,0x00000a91,0x0000007c,0x00000a87,0x00000a8a, - 0x00000a8d,0x00000a8f,0x0004003d,0x00000010,0x00000a92,0x00000a7e,0x00050081,0x00000010, - 0x00000a93,0x00000a92,0x00000a91,0x0003003e,0x00000a7e,0x00000a93,0x000200f9,0x00000a86, - 0x000200f8,0x00000a94,0x00060041,0x0000002a,0x00000a95,0x000009a0,0x000001e0,0x000000f2, - 0x0004003d,0x00000008,0x00000a96,0x00000a95,0x000500ba,0x0000005d,0x00000a97,0x00000a96, - 0x000000f6,0x000300f7,0x00000a99,0x00000000,0x000400fa,0x00000a97,0x00000a98,0x00000a99, - 0x000200f8,0x00000a98,0x00050041,0x00000546,0x00000a9b,0x000000e8,0x000001d9,0x0004003d, - 0x000000e5,0x00000a9c,0x00000a9b,0x00050041,0x0000001f,0x00000a9d,0x00000995,0x00000319, - 0x0004003d,0x00000010,0x00000a9e,0x00000a9d,0x00050051,0x00000008,0x00000a9f,0x00000a9e, - 0x00000000,0x00050051,0x00000008,0x00000aa0,0x00000a9e,0x00000001,0x00050051,0x00000008, - 0x00000aa1,0x00000a9e,0x00000002,0x00070050,0x00000030,0x00000aa2,0x00000a9f,0x00000aa0, - 0x00000aa1,0x000000dc,0x00050091,0x00000030,0x00000aa3,0x00000a9c,0x00000aa2,0x0008004f, - 0x00000010,0x00000aa4,0x00000aa3,0x00000aa3,0x00000000,0x00000001,0x00000002,0x0003003e, - 0x00000a9a,0x00000aa4,0x00050041,0x00000546,0x00000aa6,0x000000e8,0x000001d9,0x0004003d, - 0x000000e5,0x00000aa7,0x00000aa6,0x00050051,0x00000030,0x00000aa8,0x00000aa7,0x00000000, - 0x0008004f,0x00000010,0x00000aa9,0x00000aa8,0x00000aa8,0x00000000,0x00000001,0x00000002, - 0x00050051,0x00000030,0x00000aaa,0x00000aa7,0x00000001,0x0008004f,0x00000010,0x00000aab, - 0x00000aaa,0x00000aaa,0x00000000,0x00000001,0x00000002,0x00050051,0x00000030,0x00000aac, - 0x00000aa7,0x00000002,0x0008004f,0x00000010,0x00000aad,0x00000aac,0x00000aac,0x00000000, - 0x00000001,0x00000002,0x00060050,0x000003e5,0x00000aae,0x00000aa9,0x00000aab,0x00000aad, - 0x00050041,0x0000001f,0x00000aaf,0x00000995,0x0000031b,0x0004003d,0x00000010,0x00000ab0, - 0x00000aaf,0x00050091,0x00000010,0x00000ab1,0x00000aae,0x00000ab0,0x0006000c,0x00000010, - 0x00000ab2,0x00000001,0x00000045,0x00000ab1,0x0003003e,0x00000aa5,0x00000ab2,0x0004003d, - 0x00000010,0x00000ab4,0x00000a9a,0x0003003e,0x00000ab3,0x00000ab4,0x0004003d,0x00000010, - 0x00000ab6,0x00000aa5,0x0003003e,0x00000ab5,0x00000ab6,0x00050041,0x00000242,0x00000ab8, - 0x000009a0,0x000001d9,0x0004003d,0x00000030,0x00000ab9,0x00000ab8,0x0008004f,0x00000010, - 0x00000aba,0x00000ab9,0x00000ab9,0x00000000,0x00000001,0x00000002,0x0003003e,0x00000ab7, - 0x00000aba,0x0004003d,0x00000033,0x00000abc,0x000009a0,0x0003003e,0x00000abb,0x00000abc, - 0x00080039,0x00000010,0x00000abd,0x00000076,0x00000ab3,0x00000ab5,0x00000ab7,0x00000abb, - 0x0004003d,0x00000010,0x00000abe,0x00000a7e,0x00050081,0x00000010,0x00000abf,0x00000abe, - 0x00000abd,0x0003003e,0x00000a7e,0x00000abf,0x000200f9,0x00000a99,0x000200f8,0x00000a99, - 0x000200f9,0x00000a86,0x000200f8,0x00000a86,0x00050041,0x00000242,0x00000ac0,0x000009a0, - 0x0000031b,0x0004003d,0x00000030,0x00000ac1,0x00000ac0,0x0008004f,0x00000010,0x00000ac2, - 0x00000ac1,0x00000ac1,0x00000000,0x00000001,0x00000002,0x0004003d,0x00000010,0x00000ac3, - 0x00000a7e,0x00050081,0x00000010,0x00000ac4,0x00000ac3,0x00000ac2,0x0003003e,0x00000a7e, - 0x00000ac4,0x0004003d,0x0000005e,0x00000ac9,0x000007a2,0x00050041,0x0000001f,0x00000aca, - 0x00000995,0x0000031b,0x0004003d,0x00000010,0x00000acb,0x00000aca,0x00050051,0x00000008, - 0x00000acc,0x00000acb,0x00000000,0x00050051,0x00000008,0x00000acd,0x00000acb,0x00000001, - 0x00050051,0x00000008,0x00000ace,0x00000acb,0x00000002,0x00070050,0x00000030,0x00000acf, - 0x00000acc,0x00000acd,0x00000ace,0x000000dc,0x00060041,0x000000ea,0x00000ad0,0x00000ac8, - 0x000001d9,0x00000ac9,0x0003003e,0x00000ad0,0x00000acf,0x0004003d,0x0000005e,0x00000ad5, - 0x000007a2,0x00050041,0x0000001f,0x00000ad6,0x00000995,0x00000319,0x0004003d,0x00000010, - 0x00000ad7,0x00000ad6,0x00050041,0x0000002a,0x00000ad8,0x00000995,0x00000210,0x0004003d, - 0x00000008,0x00000ad9,0x00000ad8,0x00050051,0x00000008,0x00000ada,0x00000ad7,0x00000000, - 0x00050051,0x00000008,0x00000adb,0x00000ad7,0x00000001,0x00050051,0x00000008,0x00000adc, - 0x00000ad7,0x00000002,0x00070050,0x00000030,0x00000add,0x00000ada,0x00000adb,0x00000adc, - 0x00000ad9,0x00060041,0x000000ea,0x00000ade,0x00000ad4,0x000001d9,0x00000ad5,0x0003003e, - 0x00000ade,0x00000add,0x0004003d,0x0000005e,0x00000ae3,0x000007a2,0x00050041,0x00000242, - 0x00000ae4,0x000009a0,0x000001d9,0x0004003d,0x00000030,0x00000ae5,0x00000ae4,0x0008004f, - 0x00000010,0x00000ae6,0x00000ae5,0x00000ae5,0x00000000,0x00000001,0x00000002,0x00050051, - 0x00000008,0x00000ae7,0x00000ae6,0x00000000,0x00050051,0x00000008,0x00000ae8,0x00000ae6, - 0x00000001,0x00050051,0x00000008,0x00000ae9,0x00000ae6,0x00000002,0x00070050,0x00000030, - 0x00000aea,0x00000ae7,0x00000ae8,0x00000ae9,0x000000dc,0x00060041,0x000000ea,0x00000aeb, - 0x00000ae2,0x000001d9,0x00000ae3,0x0003003e,0x00000aeb,0x00000aea,0x000200f9,0x0000099f, - 0x000200f8,0x00000aec,0x0004003d,0x00000010,0x00000aee,0x00000865,0x0003003e,0x00000aed, - 0x00000aee,0x00050039,0x00000010,0x00000aef,0x00000025,0x00000aed,0x0003003e,0x00000a7e, - 0x00000aef,0x000200f9,0x0000099f,0x000200f8,0x0000099f,0x0004003d,0x00000810,0x00000af0, - 0x00000812,0x0004003d,0x00000774,0x00000af1,0x00000776,0x0004007c,0x00000815,0x00000af2, - 0x00000af1,0x0004003d,0x00000010,0x00000af3,0x00000a7e,0x00050051,0x00000008,0x00000af4, - 0x00000af3,0x00000000,0x00050051,0x00000008,0x00000af5,0x00000af3,0x00000001,0x00050051, - 0x00000008,0x00000af6,0x00000af3,0x00000002,0x00070050,0x00000030,0x00000af7,0x00000af4, - 0x00000af5,0x00000af6,0x000000dc,0x00070050,0x00000030,0x00000af8,0x000000cc,0x000000cc, - 0x000000cc,0x000000cc,0x00070050,0x00000030,0x00000af9,0x000000dc,0x000000dc,0x000000dc, - 0x000000dc,0x0008000c,0x00000030,0x00000afa,0x00000001,0x0000002b,0x00000af7,0x00000af8, - 0x00000af9,0x00040063,0x00000af0,0x00000af2,0x00000afa,0x0004003d,0x0000005e,0x00000afb, - 0x000007a2,0x0004003d,0x00000010,0x00000afc,0x00000a7e,0x00060050,0x00000010,0x00000afd, - 0x000000cc,0x000000cc,0x000000cc,0x00060050,0x00000010,0x00000afe,0x000000dc,0x000000dc, - 0x000000dc,0x0008000c,0x00000010,0x00000aff,0x00000001,0x0000002b,0x00000afc,0x00000afd, - 0x00000afe,0x00050051,0x00000008,0x00000b00,0x00000aff,0x00000000,0x00050051,0x00000008, - 0x00000b01,0x00000aff,0x00000001,0x00050051,0x00000008,0x00000b02,0x00000aff,0x00000002, - 0x00070050,0x00000030,0x00000b03,0x00000b00,0x00000b01,0x00000b02,0x000000dc,0x00060041, - 0x000000ea,0x00000b04,0x000007cb,0x000001d9,0x00000afb,0x0003003e,0x00000b04,0x00000b03, - 0x000100fd,0x000200f8,0x00000994,0x0004003d,0x00000008,0x00000b06,0x00000796,0x000500ba, - 0x0000005d,0x00000b07,0x00000b06,0x000004da,0x0004003d,0x00000008,0x00000b08,0x00000796, - 0x000500b8,0x0000005d,0x00000b09,0x00000b08,0x0000098e,0x000500a7,0x0000005d,0x00000b0a, - 0x00000b07,0x00000b09,0x000300f7,0x00000b0c,0x00000000,0x000400fa,0x00000b0a,0x00000b0b, - 0x00000b0c,0x000200f8,0x00000b0b,0x0004003d,0x00000010,0x00000b0f,0x0000085b,0x0003003e, - 0x00000b0e,0x00000b0f,0x0004003d,0x00000010,0x00000b11,0x00000865,0x0003003e,0x00000b10, - 0x00000b11,0x0003003e,0x00000b12,0x0000010b,0x00070039,0x0000005f,0x00000b13,0x00000064, - 0x00000b0e,0x00000b10,0x00000b12,0x0003003e,0x00000b0d,0x00000b13,0x00050041,0x00000315, - 0x00000b14,0x00000b0d,0x000001d9,0x0004003d,0x0000005d,0x00000b15,0x00000b14,0x000300f7, - 0x00000b17,0x00000000,0x000400fa,0x00000b15,0x00000b16,0x00000c1d,0x000200f8,0x00000b16, - 0x00050041,0x000001d7,0x00000b19,0x00000b0d,0x000001e0,0x0004003d,0x0000005e,0x00000b1a, - 0x00000b19,0x00060041,0x00000340,0x00000b1b,0x0000033d,0x000001d9,0x00000b1a,0x0004003d, - 0x00000339,0x00000b1c,0x00000b1b,0x00050051,0x00000030,0x00000b1d,0x00000b1c,0x00000000, - 0x00050041,0x00000242,0x00000b1e,0x00000b18,0x000001d9,0x0003003e,0x00000b1e,0x00000b1d, - 0x00050051,0x00000030,0x00000b1f,0x00000b1c,0x00000001,0x00050041,0x00000242,0x00000b20, - 0x00000b18,0x00000210,0x0003003e,0x00000b20,0x00000b1f,0x00050051,0x00000030,0x00000b21, - 0x00000b1c,0x00000002,0x00050041,0x00000242,0x00000b22,0x00000b18,0x00000319,0x0003003e, - 0x00000b22,0x00000b21,0x00050051,0x00000030,0x00000b23,0x00000b1c,0x00000003,0x00050041, - 0x00000242,0x00000b24,0x00000b18,0x0000031b,0x0003003e,0x00000b24,0x00000b23,0x00050051, - 0x00000030,0x00000b25,0x00000b1c,0x00000004,0x00050041,0x00000242,0x00000b26,0x00000b18, - 0x000001e0,0x0003003e,0x00000b26,0x00000b25,0x00050051,0x00000333,0x00000b27,0x00000b1c, - 0x00000005,0x00050041,0x0000034e,0x00000b28,0x00000b18,0x00000197,0x00050051,0x00000030, - 0x00000b29,0x00000b27,0x00000000,0x00050041,0x00000242,0x00000b2a,0x00000b28,0x000001d9, - 0x0003003e,0x00000b2a,0x00000b29,0x00050051,0x00000030,0x00000b2b,0x00000b27,0x00000001, - 0x00050041,0x00000242,0x00000b2c,0x00000b28,0x00000210,0x0003003e,0x00000b2c,0x00000b2b, - 0x00050051,0x00000030,0x00000b2d,0x00000b27,0x00000002,0x00050041,0x00000242,0x00000b2e, - 0x00000b28,0x00000319,0x0003003e,0x00000b2e,0x00000b2d,0x00050051,0x00000030,0x00000b2f, - 0x00000b27,0x00000003,0x00050041,0x00000242,0x00000b30,0x00000b28,0x0000031b,0x0003003e, - 0x00000b30,0x00000b2f,0x00050051,0x00000030,0x00000b31,0x00000b27,0x00000004,0x00050041, - 0x00000242,0x00000b32,0x00000b28,0x000001e0,0x0003003e,0x00000b32,0x00000b31,0x00050051, - 0x00000030,0x00000b33,0x00000b27,0x00000005,0x00050041,0x00000242,0x00000b34,0x00000b28, - 0x00000197,0x0003003e,0x00000b34,0x00000b33,0x00050051,0x00000030,0x00000b35,0x00000b27, - 0x00000006,0x00050041,0x00000242,0x00000b36,0x00000b28,0x00000193,0x0003003e,0x00000b36, - 0x00000b35,0x00050051,0x00000030,0x00000b37,0x00000b27,0x00000007,0x00050041,0x00000242, - 0x00000b38,0x00000b28,0x0000035f,0x0003003e,0x00000b38,0x00000b37,0x00050051,0x00000334, - 0x00000b39,0x00000b1c,0x00000006,0x00050041,0x0000034e,0x00000b3a,0x00000b18,0x00000193, - 0x00050051,0x00000030,0x00000b3b,0x00000b39,0x00000000,0x00050041,0x00000242,0x00000b3c, - 0x00000b3a,0x000001d9,0x0003003e,0x00000b3c,0x00000b3b,0x00050051,0x00000030,0x00000b3d, - 0x00000b39,0x00000001,0x00050041,0x00000242,0x00000b3e,0x00000b3a,0x00000210,0x0003003e, - 0x00000b3e,0x00000b3d,0x00050051,0x00000030,0x00000b3f,0x00000b39,0x00000002,0x00050041, - 0x00000242,0x00000b40,0x00000b3a,0x00000319,0x0003003e,0x00000b40,0x00000b3f,0x00050051, - 0x00000030,0x00000b41,0x00000b39,0x00000003,0x00050041,0x00000242,0x00000b42,0x00000b3a, - 0x0000031b,0x0003003e,0x00000b42,0x00000b41,0x00050051,0x00000030,0x00000b43,0x00000b39, - 0x00000004,0x00050041,0x00000242,0x00000b44,0x00000b3a,0x000001e0,0x0003003e,0x00000b44, - 0x00000b43,0x00050051,0x00000030,0x00000b45,0x00000b39,0x00000005,0x00050041,0x00000242, - 0x00000b46,0x00000b3a,0x00000197,0x0003003e,0x00000b46,0x00000b45,0x00050051,0x00000030, - 0x00000b47,0x00000b39,0x00000006,0x00050041,0x00000242,0x00000b48,0x00000b3a,0x00000193, - 0x0003003e,0x00000b48,0x00000b47,0x00050051,0x00000030,0x00000b49,0x00000b39,0x00000007, - 0x00050041,0x00000242,0x00000b4a,0x00000b3a,0x0000035f,0x0003003e,0x00000b4a,0x00000b49, - 0x00050051,0x00000335,0x00000b4b,0x00000b1c,0x00000007,0x00050041,0x0000034e,0x00000b4c, - 0x00000b18,0x0000035f,0x00050051,0x00000030,0x00000b4d,0x00000b4b,0x00000000,0x00050041, - 0x00000242,0x00000b4e,0x00000b4c,0x000001d9,0x0003003e,0x00000b4e,0x00000b4d,0x00050051, - 0x00000030,0x00000b4f,0x00000b4b,0x00000001,0x00050041,0x00000242,0x00000b50,0x00000b4c, - 0x00000210,0x0003003e,0x00000b50,0x00000b4f,0x00050051,0x00000030,0x00000b51,0x00000b4b, - 0x00000002,0x00050041,0x00000242,0x00000b52,0x00000b4c,0x00000319,0x0003003e,0x00000b52, - 0x00000b51,0x00050051,0x00000030,0x00000b53,0x00000b4b,0x00000003,0x00050041,0x00000242, - 0x00000b54,0x00000b4c,0x0000031b,0x0003003e,0x00000b54,0x00000b53,0x00050051,0x00000030, - 0x00000b55,0x00000b4b,0x00000004,0x00050041,0x00000242,0x00000b56,0x00000b4c,0x000001e0, - 0x0003003e,0x00000b56,0x00000b55,0x00050051,0x00000030,0x00000b57,0x00000b4b,0x00000005, - 0x00050041,0x00000242,0x00000b58,0x00000b4c,0x00000197,0x0003003e,0x00000b58,0x00000b57, - 0x00050051,0x00000030,0x00000b59,0x00000b4b,0x00000006,0x00050041,0x00000242,0x00000b5a, - 0x00000b4c,0x00000193,0x0003003e,0x00000b5a,0x00000b59,0x00050051,0x00000030,0x00000b5b, - 0x00000b4b,0x00000007,0x00050041,0x00000242,0x00000b5c,0x00000b4c,0x0000035f,0x0003003e, - 0x00000b5c,0x00000b5b,0x00050051,0x00000336,0x00000b5d,0x00000b1c,0x00000008,0x00050041, - 0x0000034e,0x00000b5e,0x00000b18,0x00000386,0x00050051,0x00000030,0x00000b5f,0x00000b5d, - 0x00000000,0x00050041,0x00000242,0x00000b60,0x00000b5e,0x000001d9,0x0003003e,0x00000b60, - 0x00000b5f,0x00050051,0x00000030,0x00000b61,0x00000b5d,0x00000001,0x00050041,0x00000242, - 0x00000b62,0x00000b5e,0x00000210,0x0003003e,0x00000b62,0x00000b61,0x00050051,0x00000030, - 0x00000b63,0x00000b5d,0x00000002,0x00050041,0x00000242,0x00000b64,0x00000b5e,0x00000319, - 0x0003003e,0x00000b64,0x00000b63,0x00050051,0x00000030,0x00000b65,0x00000b5d,0x00000003, - 0x00050041,0x00000242,0x00000b66,0x00000b5e,0x0000031b,0x0003003e,0x00000b66,0x00000b65, - 0x00050051,0x00000030,0x00000b67,0x00000b5d,0x00000004,0x00050041,0x00000242,0x00000b68, - 0x00000b5e,0x000001e0,0x0003003e,0x00000b68,0x00000b67,0x00050051,0x00000030,0x00000b69, - 0x00000b5d,0x00000005,0x00050041,0x00000242,0x00000b6a,0x00000b5e,0x00000197,0x0003003e, - 0x00000b6a,0x00000b69,0x00050051,0x00000030,0x00000b6b,0x00000b5d,0x00000006,0x00050041, - 0x00000242,0x00000b6c,0x00000b5e,0x00000193,0x0003003e,0x00000b6c,0x00000b6b,0x00050051, - 0x00000030,0x00000b6d,0x00000b5d,0x00000007,0x00050041,0x00000242,0x00000b6e,0x00000b5e, - 0x0000035f,0x0003003e,0x00000b6e,0x00000b6d,0x00050051,0x00000337,0x00000b6f,0x00000b1c, - 0x00000009,0x00050041,0x0000034e,0x00000b70,0x00000b18,0x00000399,0x00050051,0x00000030, - 0x00000b71,0x00000b6f,0x00000000,0x00050041,0x00000242,0x00000b72,0x00000b70,0x000001d9, - 0x0003003e,0x00000b72,0x00000b71,0x00050051,0x00000030,0x00000b73,0x00000b6f,0x00000001, - 0x00050041,0x00000242,0x00000b74,0x00000b70,0x00000210,0x0003003e,0x00000b74,0x00000b73, - 0x00050051,0x00000030,0x00000b75,0x00000b6f,0x00000002,0x00050041,0x00000242,0x00000b76, - 0x00000b70,0x00000319,0x0003003e,0x00000b76,0x00000b75,0x00050051,0x00000030,0x00000b77, - 0x00000b6f,0x00000003,0x00050041,0x00000242,0x00000b78,0x00000b70,0x0000031b,0x0003003e, - 0x00000b78,0x00000b77,0x00050051,0x00000030,0x00000b79,0x00000b6f,0x00000004,0x00050041, - 0x00000242,0x00000b7a,0x00000b70,0x000001e0,0x0003003e,0x00000b7a,0x00000b79,0x00050051, - 0x00000030,0x00000b7b,0x00000b6f,0x00000005,0x00050041,0x00000242,0x00000b7c,0x00000b70, - 0x00000197,0x0003003e,0x00000b7c,0x00000b7b,0x00050051,0x00000030,0x00000b7d,0x00000b6f, - 0x00000006,0x00050041,0x00000242,0x00000b7e,0x00000b70,0x00000193,0x0003003e,0x00000b7e, - 0x00000b7d,0x00050051,0x00000030,0x00000b7f,0x00000b6f,0x00000007,0x00050041,0x00000242, - 0x00000b80,0x00000b70,0x0000035f,0x0003003e,0x00000b80,0x00000b7f,0x00050051,0x00000338, - 0x00000b81,0x00000b1c,0x0000000a,0x00050041,0x0000034e,0x00000b82,0x00000b18,0x000003ac, - 0x00050051,0x00000030,0x00000b83,0x00000b81,0x00000000,0x00050041,0x00000242,0x00000b84, - 0x00000b82,0x000001d9,0x0003003e,0x00000b84,0x00000b83,0x00050051,0x00000030,0x00000b85, - 0x00000b81,0x00000001,0x00050041,0x00000242,0x00000b86,0x00000b82,0x00000210,0x0003003e, - 0x00000b86,0x00000b85,0x00050051,0x00000030,0x00000b87,0x00000b81,0x00000002,0x00050041, - 0x00000242,0x00000b88,0x00000b82,0x00000319,0x0003003e,0x00000b88,0x00000b87,0x00050051, - 0x00000030,0x00000b89,0x00000b81,0x00000003,0x00050041,0x00000242,0x00000b8a,0x00000b82, - 0x0000031b,0x0003003e,0x00000b8a,0x00000b89,0x00050051,0x00000030,0x00000b8b,0x00000b81, - 0x00000004,0x00050041,0x00000242,0x00000b8c,0x00000b82,0x000001e0,0x0003003e,0x00000b8c, - 0x00000b8b,0x00050051,0x00000030,0x00000b8d,0x00000b81,0x00000005,0x00050041,0x00000242, - 0x00000b8e,0x00000b82,0x00000197,0x0003003e,0x00000b8e,0x00000b8d,0x00050051,0x00000030, - 0x00000b8f,0x00000b81,0x00000006,0x00050041,0x00000242,0x00000b90,0x00000b82,0x00000193, - 0x0003003e,0x00000b90,0x00000b8f,0x00050051,0x00000030,0x00000b91,0x00000b81,0x00000007, - 0x00050041,0x00000242,0x00000b92,0x00000b82,0x0000035f,0x0003003e,0x00000b92,0x00000b91, - 0x00050051,0x00000030,0x00000b93,0x00000b1c,0x0000000b,0x00050041,0x00000242,0x00000b94, - 0x00000b18,0x000003bf,0x0003003e,0x00000b94,0x00000b93,0x00050051,0x00000030,0x00000b95, - 0x00000b1c,0x0000000c,0x00050041,0x00000242,0x00000b96,0x00000b18,0x000000e9,0x0003003e, - 0x00000b96,0x00000b95,0x00050041,0x00000007,0x00000b99,0x00000776,0x000000c2,0x0004003d, - 0x00000006,0x00000b9a,0x00000b99,0x0003003e,0x00000b98,0x00000b9a,0x00050041,0x00000007, - 0x00000b9c,0x00000776,0x000000ba,0x0004003d,0x00000006,0x00000b9d,0x00000b9c,0x0003003e, - 0x00000b9b,0x00000b9d,0x0004003d,0x00000006,0x00000b9f,0x00000791,0x0003003e,0x00000b9e, - 0x00000b9f,0x00070039,0x00000009,0x00000ba0,0x0000000e,0x00000b98,0x00000b9b,0x00000b9e, - 0x00050041,0x0000001f,0x00000ba2,0x00000b0d,0x00000319,0x0004003d,0x00000010,0x00000ba3, - 0x00000ba2,0x0003003e,0x00000ba1,0x00000ba3,0x00050041,0x0000001f,0x00000ba5,0x00000b0d, - 0x0000031b,0x0004003d,0x00000010,0x00000ba6,0x00000ba5,0x0003003e,0x00000ba4,0x00000ba6, - 0x0003003e,0x00000ba7,0x00000ba0,0x00070039,0x00000008,0x00000ba8,0x00000070,0x00000ba1, - 0x00000ba4,0x00000ba7,0x0003003e,0x00000b97,0x00000ba8,0x00060041,0x0000002a,0x00000ba9, - 0x00000b18,0x000000e9,0x00000137,0x0004003d,0x00000008,0x00000baa,0x00000ba9,0x000500ba, - 0x0000005d,0x00000bab,0x00000baa,0x000000f6,0x000300f7,0x00000bad,0x00000000,0x000400fa, - 0x00000bab,0x00000bac,0x00000bc4,0x000200f8,0x00000bac,0x00050041,0x00000242,0x00000baf, - 0x00000b18,0x000001d9,0x0004003d,0x00000030,0x00000bb0,0x00000baf,0x0008004f,0x00000010, - 0x00000bb1,0x00000bb0,0x00000bb0,0x00000000,0x00000001,0x00000002,0x0004003d,0x00000008, - 0x00000bb2,0x00000b97,0x0005008e,0x00000010,0x00000bb3,0x00000bb1,0x00000bb2,0x00050041, - 0x0000001f,0x00000bb5,0x00000b0d,0x00000319,0x0004003d,0x00000010,0x00000bb6,0x00000bb5, - 0x0003003e,0x00000bb4,0x00000bb6,0x00050041,0x0000001f,0x00000bb8,0x00000b0d,0x0000031b, - 0x0004003d,0x00000010,0x00000bb9,0x00000bb8,0x0003003e,0x00000bb7,0x00000bb9,0x0004003d, - 0x00000010,0x00000bbb,0x00000865,0x0003003e,0x00000bba,0x00000bbb,0x0004003d,0x00000033, - 0x00000bbd,0x00000b18,0x0003003e,0x00000bbc,0x00000bbd,0x00080039,0x00000010,0x00000bbe, - 0x0000007c,0x00000bb4,0x00000bb7,0x00000bba,0x00000bbc,0x00050081,0x00000010,0x00000bbf, - 0x00000bb3,0x00000bbe,0x00050041,0x00000242,0x00000bc0,0x00000b18,0x0000031b,0x0004003d, - 0x00000030,0x00000bc1,0x00000bc0,0x0008004f,0x00000010,0x00000bc2,0x00000bc1,0x00000bc1, - 0x00000000,0x00000001,0x00000002,0x00050081,0x00000010,0x00000bc3,0x00000bbf,0x00000bc2, - 0x0003003e,0x00000bae,0x00000bc3,0x000200f9,0x00000bad,0x000200f8,0x00000bc4,0x00060041, - 0x0000002a,0x00000bc5,0x00000b18,0x000001e0,0x000000f2,0x0004003d,0x00000008,0x00000bc6, - 0x00000bc5,0x000500ba,0x0000005d,0x00000bc7,0x00000bc6,0x000000f6,0x000300f7,0x00000bc9, - 0x00000000,0x000400fa,0x00000bc7,0x00000bc8,0x00000bf8,0x000200f8,0x00000bc8,0x00050041, - 0x00000546,0x00000bcb,0x000000e8,0x000001d9,0x0004003d,0x000000e5,0x00000bcc,0x00000bcb, - 0x00050041,0x0000001f,0x00000bcd,0x00000b0d,0x00000319,0x0004003d,0x00000010,0x00000bce, - 0x00000bcd,0x00050051,0x00000008,0x00000bcf,0x00000bce,0x00000000,0x00050051,0x00000008, - 0x00000bd0,0x00000bce,0x00000001,0x00050051,0x00000008,0x00000bd1,0x00000bce,0x00000002, - 0x00070050,0x00000030,0x00000bd2,0x00000bcf,0x00000bd0,0x00000bd1,0x000000dc,0x00050091, - 0x00000030,0x00000bd3,0x00000bcc,0x00000bd2,0x0008004f,0x00000010,0x00000bd4,0x00000bd3, - 0x00000bd3,0x00000000,0x00000001,0x00000002,0x0003003e,0x00000bca,0x00000bd4,0x00050041, - 0x00000546,0x00000bd6,0x000000e8,0x000001d9,0x0004003d,0x000000e5,0x00000bd7,0x00000bd6, - 0x00050051,0x00000030,0x00000bd8,0x00000bd7,0x00000000,0x0008004f,0x00000010,0x00000bd9, - 0x00000bd8,0x00000bd8,0x00000000,0x00000001,0x00000002,0x00050051,0x00000030,0x00000bda, - 0x00000bd7,0x00000001,0x0008004f,0x00000010,0x00000bdb,0x00000bda,0x00000bda,0x00000000, - 0x00000001,0x00000002,0x00050051,0x00000030,0x00000bdc,0x00000bd7,0x00000002,0x0008004f, - 0x00000010,0x00000bdd,0x00000bdc,0x00000bdc,0x00000000,0x00000001,0x00000002,0x00060050, - 0x000003e5,0x00000bde,0x00000bd9,0x00000bdb,0x00000bdd,0x00050041,0x0000001f,0x00000bdf, - 0x00000b0d,0x0000031b,0x0004003d,0x00000010,0x00000be0,0x00000bdf,0x00050091,0x00000010, - 0x00000be1,0x00000bde,0x00000be0,0x0006000c,0x00000010,0x00000be2,0x00000001,0x00000045, - 0x00000be1,0x0003003e,0x00000bd5,0x00000be2,0x00050041,0x00000242,0x00000be3,0x00000b18, - 0x000001d9,0x0004003d,0x00000030,0x00000be4,0x00000be3,0x0008004f,0x00000010,0x00000be5, - 0x00000be4,0x00000be4,0x00000000,0x00000001,0x00000002,0x0004003d,0x00000008,0x00000be6, - 0x00000b97,0x0005008e,0x00000010,0x00000be7,0x00000be5,0x00000be6,0x0004003d,0x00000010, - 0x00000be9,0x00000bca,0x0003003e,0x00000be8,0x00000be9,0x0004003d,0x00000010,0x00000beb, - 0x00000bd5,0x0003003e,0x00000bea,0x00000beb,0x00050041,0x00000242,0x00000bed,0x00000b18, - 0x000001d9,0x0004003d,0x00000030,0x00000bee,0x00000bed,0x0008004f,0x00000010,0x00000bef, - 0x00000bee,0x00000bee,0x00000000,0x00000001,0x00000002,0x0003003e,0x00000bec,0x00000bef, - 0x0004003d,0x00000033,0x00000bf1,0x00000b18,0x0003003e,0x00000bf0,0x00000bf1,0x00080039, - 0x00000010,0x00000bf2,0x00000076,0x00000be8,0x00000bea,0x00000bec,0x00000bf0,0x00050081, - 0x00000010,0x00000bf3,0x00000be7,0x00000bf2,0x00050041,0x00000242,0x00000bf4,0x00000b18, - 0x0000031b,0x0004003d,0x00000030,0x00000bf5,0x00000bf4,0x0008004f,0x00000010,0x00000bf6, - 0x00000bf5,0x00000bf5,0x00000000,0x00000001,0x00000002,0x00050081,0x00000010,0x00000bf7, - 0x00000bf3,0x00000bf6,0x0003003e,0x00000bae,0x00000bf7,0x000200f9,0x00000bc9,0x000200f8, - 0x00000bf8,0x00050041,0x00000242,0x00000bf9,0x00000b18,0x000001d9,0x0004003d,0x00000030, - 0x00000bfa,0x00000bf9,0x0008004f,0x00000010,0x00000bfb,0x00000bfa,0x00000bfa,0x00000000, - 0x00000001,0x00000002,0x0004003d,0x00000008,0x00000bfc,0x00000b97,0x0005008e,0x00000010, - 0x00000bfd,0x00000bfb,0x00000bfc,0x00050041,0x00000242,0x00000bfe,0x00000b18,0x0000031b, - 0x0004003d,0x00000030,0x00000bff,0x00000bfe,0x0008004f,0x00000010,0x00000c00,0x00000bff, - 0x00000bff,0x00000000,0x00000001,0x00000002,0x00050081,0x00000010,0x00000c01,0x00000bfd, - 0x00000c00,0x0003003e,0x00000bae,0x00000c01,0x000200f9,0x00000bc9,0x000200f8,0x00000bc9, - 0x000200f9,0x00000bad,0x000200f8,0x00000bad,0x0004003d,0x0000005e,0x00000c02,0x000007a2, - 0x00050041,0x0000001f,0x00000c03,0x00000b0d,0x0000031b,0x0004003d,0x00000010,0x00000c04, - 0x00000c03,0x00050051,0x00000008,0x00000c05,0x00000c04,0x00000000,0x00050051,0x00000008, - 0x00000c06,0x00000c04,0x00000001,0x00050051,0x00000008,0x00000c07,0x00000c04,0x00000002, - 0x00070050,0x00000030,0x00000c08,0x00000c05,0x00000c06,0x00000c07,0x000000dc,0x00060041, - 0x000000ea,0x00000c09,0x00000ac8,0x000001d9,0x00000c02,0x0003003e,0x00000c09,0x00000c08, - 0x0004003d,0x0000005e,0x00000c0a,0x000007a2,0x00050041,0x0000001f,0x00000c0b,0x00000b0d, - 0x00000319,0x0004003d,0x00000010,0x00000c0c,0x00000c0b,0x00050041,0x0000002a,0x00000c0d, - 0x00000b0d,0x00000210,0x0004003d,0x00000008,0x00000c0e,0x00000c0d,0x00050051,0x00000008, - 0x00000c0f,0x00000c0c,0x00000000,0x00050051,0x00000008,0x00000c10,0x00000c0c,0x00000001, - 0x00050051,0x00000008,0x00000c11,0x00000c0c,0x00000002,0x00070050,0x00000030,0x00000c12, - 0x00000c0f,0x00000c10,0x00000c11,0x00000c0e,0x00060041,0x000000ea,0x00000c13,0x00000ad4, - 0x000001d9,0x00000c0a,0x0003003e,0x00000c13,0x00000c12,0x0004003d,0x0000005e,0x00000c14, - 0x000007a2,0x00050041,0x00000242,0x00000c15,0x00000b18,0x000001d9,0x0004003d,0x00000030, - 0x00000c16,0x00000c15,0x0008004f,0x00000010,0x00000c17,0x00000c16,0x00000c16,0x00000000, - 0x00000001,0x00000002,0x00050051,0x00000008,0x00000c18,0x00000c17,0x00000000,0x00050051, - 0x00000008,0x00000c19,0x00000c17,0x00000001,0x00050051,0x00000008,0x00000c1a,0x00000c17, - 0x00000002,0x00070050,0x00000030,0x00000c1b,0x00000c18,0x00000c19,0x00000c1a,0x000000dc, - 0x00060041,0x000000ea,0x00000c1c,0x00000ae2,0x000001d9,0x00000c14,0x0003003e,0x00000c1c, - 0x00000c1b,0x000200f9,0x00000b17,0x000200f8,0x00000c1d,0x00050041,0x00000007,0x00000c1f, - 0x00000776,0x000000ba,0x0004003d,0x00000006,0x00000c20,0x00000c1f,0x00040070,0x00000008, - 0x00000c21,0x00000c20,0x00060041,0x000000f3,0x00000c22,0x000000e8,0x000001e0,0x000000ba, - 0x0004003d,0x00000008,0x00000c23,0x00000c22,0x0007000c,0x00000008,0x00000c24,0x00000001, - 0x00000028,0x00000c23,0x000000dc,0x00050088,0x00000008,0x00000c25,0x00000c21,0x00000c24, - 0x0008000c,0x00000008,0x00000c26,0x00000001,0x0000002b,0x00000c25,0x000000cc,0x000000dc, - 0x0003003e,0x00000c1e,0x00000c26,0x00050041,0x000000ea,0x00000c27,0x000000e8,0x00000197, - 0x0004003d,0x00000030,0x00000c28,0x00000c27,0x0008004f,0x00000010,0x00000c29,0x00000c28, - 0x00000c28,0x00000000,0x00000001,0x00000002,0x00050041,0x000000ea,0x00000c2a,0x000000e8, - 0x00000193,0x0004003d,0x00000030,0x00000c2b,0x00000c2a,0x0008004f,0x00000010,0x00000c2c, - 0x00000c2b,0x00000c2b,0x00000000,0x00000001,0x00000002,0x0004003d,0x00000008,0x00000c2d, - 0x00000c1e,0x00060050,0x00000010,0x00000c2e,0x00000c2d,0x00000c2d,0x00000c2d,0x0008000c, - 0x00000010,0x00000c2f,0x00000001,0x0000002e,0x00000c29,0x00000c2c,0x00000c2e,0x0003003e, - 0x00000bae,0x00000c2f,0x00060041,0x000000f3,0x00000c30,0x000000e8,0x000000e9,0x000000c2, - 0x0004003d,0x00000008,0x00000c31,0x00000c30,0x000500ba,0x0000005d,0x00000c32,0x00000c31, - 0x000004b9,0x000300f7,0x00000c34,0x00000000,0x000400fa,0x00000c32,0x00000c33,0x00000c34, - 0x000200f8,0x00000c33,0x0004003d,0x00000010,0x00000c36,0x00000865,0x0003003e,0x00000c35, - 0x00000c36,0x00050039,0x00000010,0x00000c37,0x00000025,0x00000c35,0x0003003e,0x00000bae, - 0x00000c37,0x000200f9,0x00000c34,0x000200f8,0x00000c34,0x000200f9,0x00000b17,0x000200f8, - 0x00000b17,0x0004003d,0x00000810,0x00000c38,0x00000812,0x0004003d,0x00000774,0x00000c39, - 0x00000776,0x0004007c,0x00000815,0x00000c3a,0x00000c39,0x0004003d,0x00000010,0x00000c3b, - 0x00000bae,0x00050051,0x00000008,0x00000c3c,0x00000c3b,0x00000000,0x00050051,0x00000008, - 0x00000c3d,0x00000c3b,0x00000001,0x00050051,0x00000008,0x00000c3e,0x00000c3b,0x00000002, - 0x00070050,0x00000030,0x00000c3f,0x00000c3c,0x00000c3d,0x00000c3e,0x000000dc,0x00070050, - 0x00000030,0x00000c40,0x000000cc,0x000000cc,0x000000cc,0x000000cc,0x00070050,0x00000030, - 0x00000c41,0x000000dc,0x000000dc,0x000000dc,0x000000dc,0x0008000c,0x00000030,0x00000c42, - 0x00000001,0x0000002b,0x00000c3f,0x00000c40,0x00000c41,0x00040063,0x00000c38,0x00000c3a, - 0x00000c42,0x000100fd,0x000200f8,0x00000b0c,0x0003003e,0x00000c44,0x0000010d,0x0003003e, - 0x00000c45,0x0000027f,0x0004003d,0x00000010,0x00000c47,0x0000085b,0x0003003e,0x00000c46, - 0x00000c47,0x0004003d,0x00000010,0x00000c49,0x00000865,0x0003003e,0x00000c48,0x00000c49, - 0x0003003e,0x00000c4a,0x000000dc,0x0003003e,0x00000c4b,0x000001d9,0x000200f9,0x00000c4c, - 0x000200f8,0x00000c4c,0x000400f6,0x00000c4e,0x00000c4f,0x00000000,0x000200f9,0x00000c50, - 0x000200f8,0x00000c50,0x0004003d,0x0000005e,0x00000c51,0x00000c4b,0x0004003d,0x0000005e, - 0x00000c52,0x0000079c,0x000500b1,0x0000005d,0x00000c53,0x00000c51,0x00000c52,0x000400fa, - 0x00000c53,0x00000c4d,0x00000c4e,0x000200f8,0x00000c4d,0x0004003d,0x00000010,0x00000c56, - 0x00000c46,0x0003003e,0x00000c55,0x00000c56,0x0004003d,0x00000010,0x00000c58,0x00000c48, - 0x0003003e,0x00000c57,0x00000c58,0x0003003e,0x00000c59,0x0000010b,0x00070039,0x0000005f, - 0x00000c5a,0x00000064,0x00000c55,0x00000c57,0x00000c59,0x0003003e,0x00000c54,0x00000c5a, - 0x00050041,0x00000315,0x00000c5b,0x00000c54,0x000001d9,0x0004003d,0x0000005d,0x00000c5c, - 0x00000c5b,0x000400a8,0x0000005d,0x00000c5d,0x00000c5c,0x000300f7,0x00000c5f,0x00000000, - 0x000400fa,0x00000c5d,0x00000c5e,0x00000c5f,0x000200f8,0x00000c5e,0x00050041,0x00000007, - 0x00000c61,0x00000776,0x000000ba,0x0004003d,0x00000006,0x00000c62,0x00000c61,0x00040070, - 0x00000008,0x00000c63,0x00000c62,0x00060041,0x000000f3,0x00000c64,0x000000e8,0x000001e0, - 0x000000ba,0x0004003d,0x00000008,0x00000c65,0x00000c64,0x0007000c,0x00000008,0x00000c66, - 0x00000001,0x00000028,0x00000c65,0x000000dc,0x00050088,0x00000008,0x00000c67,0x00000c63, - 0x00000c66,0x0008000c,0x00000008,0x00000c68,0x00000001,0x0000002b,0x00000c67,0x000000cc, - 0x000000dc,0x0003003e,0x00000c60,0x00000c68,0x0004003d,0x00000010,0x00000c6b,0x00000c48, - 0x0003003e,0x00000c6a,0x00000c6b,0x00050039,0x00000010,0x00000c6c,0x00000025,0x00000c6a, - 0x0003003e,0x00000c69,0x00000c6c,0x00060041,0x000000f3,0x00000c6d,0x000000e8,0x000000e9, - 0x000000c2,0x0004003d,0x00000008,0x00000c6e,0x00000c6d,0x000500bc,0x0000005d,0x00000c6f, - 0x00000c6e,0x000004b9,0x000300f7,0x00000c71,0x00000000,0x000400fa,0x00000c6f,0x00000c70, - 0x00000c71,0x000200f8,0x00000c70,0x00050041,0x000000ea,0x00000c72,0x000000e8,0x00000197, - 0x0004003d,0x00000030,0x00000c73,0x00000c72,0x0008004f,0x00000010,0x00000c74,0x00000c73, - 0x00000c73,0x00000000,0x00000001,0x00000002,0x00050041,0x000000ea,0x00000c75,0x000000e8, - 0x00000193,0x0004003d,0x00000030,0x00000c76,0x00000c75,0x0008004f,0x00000010,0x00000c77, - 0x00000c76,0x00000c76,0x00000000,0x00000001,0x00000002,0x0004003d,0x00000008,0x00000c78, - 0x00000c60,0x00060050,0x00000010,0x00000c79,0x00000c78,0x00000c78,0x00000c78,0x0008000c, - 0x00000010,0x00000c7a,0x00000001,0x0000002e,0x00000c74,0x00000c77,0x00000c79,0x0003003e, - 0x00000c69,0x00000c7a,0x000200f9,0x00000c71,0x000200f8,0x00000c71,0x0004003d,0x00000010, - 0x00000c7b,0x00000c45,0x0004003d,0x00000010,0x00000c7c,0x00000c69,0x00050085,0x00000010, - 0x00000c7d,0x00000c7b,0x00000c7c,0x0004003d,0x00000010,0x00000c7e,0x00000c44,0x00050081, - 0x00000010,0x00000c7f,0x00000c7e,0x00000c7d,0x0003003e,0x00000c44,0x00000c7f,0x0004003d, - 0x0000005e,0x00000c80,0x00000c4b,0x000500aa,0x0000005d,0x00000c81,0x00000c80,0x000001d9, - 0x000300f7,0x00000c83,0x00000000,0x000400fa,0x00000c81,0x00000c82,0x00000c83,0x000200f8, - 0x00000c82,0x0004003d,0x0000005e,0x00000c84,0x000007a2,0x0004003d,0x00000010,0x00000c85, - 0x00000c48,0x0004007f,0x00000010,0x00000c86,0x00000c85,0x00050051,0x00000008,0x00000c87, - 0x00000c86,0x00000000,0x00050051,0x00000008,0x00000c88,0x00000c86,0x00000001,0x00050051, - 0x00000008,0x00000c89,0x00000c86,0x00000002,0x00070050,0x00000030,0x00000c8a,0x00000c87, - 0x00000c88,0x00000c89,0x000000dc,0x00060041,0x000000ea,0x00000c8b,0x00000ac8,0x000001d9, - 0x00000c84,0x0003003e,0x00000c8b,0x00000c8a,0x0004003d,0x0000005e,0x00000c8c,0x000007a2, - 0x00060041,0x000000ea,0x00000c8f,0x00000ad4,0x000001d9,0x00000c8c,0x0003003e,0x00000c8f, - 0x00000c8e,0x0004003d,0x0000005e,0x00000c90,0x000007a2,0x00060041,0x000000ea,0x00000c92, - 0x00000ae2,0x000001d9,0x00000c90,0x0003003e,0x00000c92,0x00000c91,0x0004003d,0x0000005e, - 0x00000c97,0x000007a2,0x00060041,0x000000ea,0x00000c98,0x00000c96,0x000001d9,0x00000c97, - 0x0003003e,0x00000c98,0x00000c91,0x000200f9,0x00000c83,0x000200f8,0x00000c83,0x000200f9, - 0x00000c4e,0x000200f8,0x00000c5f,0x0004003d,0x0000005e,0x00000c9a,0x00000c4b,0x000500aa, - 0x0000005d,0x00000c9b,0x00000c9a,0x000001d9,0x000300f7,0x00000c9d,0x00000000,0x000400fa, - 0x00000c9b,0x00000c9c,0x00000c9d,0x000200f8,0x00000c9c,0x0004003d,0x0000005e,0x00000c9e, - 0x000007a2,0x00050041,0x0000001f,0x00000c9f,0x00000c54,0x0000031b,0x0004003d,0x00000010, - 0x00000ca0,0x00000c9f,0x00050051,0x00000008,0x00000ca1,0x00000ca0,0x00000000,0x00050051, - 0x00000008,0x00000ca2,0x00000ca0,0x00000001,0x00050051,0x00000008,0x00000ca3,0x00000ca0, - 0x00000002,0x00070050,0x00000030,0x00000ca4,0x00000ca1,0x00000ca2,0x00000ca3,0x000000dc, - 0x00060041,0x000000ea,0x00000ca5,0x00000ac8,0x000001d9,0x00000c9e,0x0003003e,0x00000ca5, - 0x00000ca4,0x0004003d,0x0000005e,0x00000ca6,0x000007a2,0x00050041,0x0000001f,0x00000ca7, - 0x00000c54,0x00000319,0x0004003d,0x00000010,0x00000ca8,0x00000ca7,0x00050041,0x0000002a, - 0x00000ca9,0x00000c54,0x00000210,0x0004003d,0x00000008,0x00000caa,0x00000ca9,0x00050051, - 0x00000008,0x00000cab,0x00000ca8,0x00000000,0x00050051,0x00000008,0x00000cac,0x00000ca8, - 0x00000001,0x00050051,0x00000008,0x00000cad,0x00000ca8,0x00000002,0x00070050,0x00000030, - 0x00000cae,0x00000cab,0x00000cac,0x00000cad,0x00000caa,0x00060041,0x000000ea,0x00000caf, - 0x00000ad4,0x000001d9,0x00000ca6,0x0003003e,0x00000caf,0x00000cae,0x00050041,0x00000546, - 0x00000cb1,0x000000e8,0x00000399,0x0004003d,0x000000e5,0x00000cb2,0x00000cb1,0x00050041, - 0x0000001f,0x00000cb3,0x00000c54,0x00000319,0x0004003d,0x00000010,0x00000cb4,0x00000cb3, - 0x00050051,0x00000008,0x00000cb5,0x00000cb4,0x00000000,0x00050051,0x00000008,0x00000cb6, - 0x00000cb4,0x00000001,0x00050051,0x00000008,0x00000cb7,0x00000cb4,0x00000002,0x00070050, - 0x00000030,0x00000cb8,0x00000cb5,0x00000cb6,0x00000cb7,0x000000dc,0x00050091,0x00000030, - 0x00000cb9,0x00000cb2,0x00000cb8,0x0003003e,0x00000cb0,0x00000cb9,0x0003003e,0x00000cba, - 0x00000cbb,0x0003003e,0x00000cbc,0x000000cc,0x00050041,0x0000002a,0x00000cbd,0x00000cb0, - 0x000000f2,0x0004003d,0x00000008,0x00000cbe,0x00000cbd,0x000500ba,0x0000005d,0x00000cbf, - 0x00000cbe,0x000000cc,0x000300f7,0x00000cc1,0x00000000,0x000400fa,0x00000cbf,0x00000cc0, - 0x00000cc1,0x000200f8,0x00000cc0,0x00050041,0x0000002a,0x00000cc3,0x00000cb0,0x000000c2, - 0x0004003d,0x00000008,0x00000cc4,0x00000cc3,0x00050041,0x0000002a,0x00000cc5,0x00000cb0, - 0x000000f2,0x0004003d,0x00000008,0x00000cc6,0x00000cc5,0x00050088,0x00000008,0x00000cc7, - 0x00000cc4,0x00000cc6,0x00050041,0x0000002a,0x00000cc8,0x00000cb0,0x000000ba,0x0004003d, - 0x00000008,0x00000cc9,0x00000cc8,0x00050041,0x0000002a,0x00000cca,0x00000cb0,0x000000f2, - 0x0004003d,0x00000008,0x00000ccb,0x00000cca,0x00050088,0x00000008,0x00000ccc,0x00000cc9, - 0x00000ccb,0x0004007f,0x00000008,0x00000ccd,0x00000ccc,0x00050050,0x00000009,0x00000cce, - 0x00000cc7,0x00000ccd,0x0003003e,0x00000cc2,0x00000cce,0x00050041,0x0000002a,0x00000ccf, - 0x00000cc2,0x000000c2,0x0004003d,0x00000008,0x00000cd0,0x00000ccf,0x0006000c,0x00000008, - 0x00000cd1,0x00000001,0x00000004,0x00000cd0,0x000500bc,0x0000005d,0x00000cd2,0x00000cd1, - 0x000000dc,0x000300f7,0x00000cd4,0x00000000,0x000400fa,0x00000cd2,0x00000cd3,0x00000cd4, - 0x000200f8,0x00000cd3,0x00050041,0x0000002a,0x00000cd5,0x00000cc2,0x000000ba,0x0004003d, - 0x00000008,0x00000cd6,0x00000cd5,0x0006000c,0x00000008,0x00000cd7,0x00000001,0x00000004, - 0x00000cd6,0x000500bc,0x0000005d,0x00000cd8,0x00000cd7,0x000000dc,0x000200f9,0x00000cd4, - 0x000200f8,0x00000cd4,0x000700f5,0x0000005d,0x00000cd9,0x00000cd2,0x00000cc0,0x00000cd8, - 0x00000cd3,0x000300f7,0x00000cdb,0x00000000,0x000400fa,0x00000cd9,0x00000cda,0x00000cdb, - 0x000200f8,0x00000cda,0x0004003d,0x00000009,0x00000cdc,0x00000cc2,0x0004003d,0x00000009, - 0x00000cdd,0x0000083d,0x00050083,0x00000009,0x00000cde,0x00000cdc,0x00000cdd,0x0003003e, - 0x00000cba,0x00000cde,0x0004003d,0x00000009,0x00000cdf,0x00000cba,0x0004003d,0x00000009, - 0x00000ce0,0x00000cba,0x00050094,0x00000008,0x00000ce1,0x00000cdf,0x00000ce0,0x000500b8, - 0x0000005d,0x00000ce2,0x00000ce1,0x000000dc,0x000600a9,0x00000008,0x00000ce3,0x00000ce2, - 0x000000dc,0x000000cc,0x0003003e,0x00000cbc,0x00000ce3,0x000200f9,0x00000cdb,0x000200f8, - 0x00000cdb,0x000200f9,0x00000cc1,0x000200f8,0x00000cc1,0x0004003d,0x0000005e,0x00000ce4, - 0x000007a2,0x0004003d,0x00000009,0x00000ce5,0x00000cba,0x0004003d,0x00000008,0x00000ce6, - 0x00000cbc,0x00050051,0x00000008,0x00000ce7,0x00000ce5,0x00000000,0x00050051,0x00000008, - 0x00000ce8,0x00000ce5,0x00000001,0x00070050,0x00000030,0x00000ce9,0x00000ce7,0x00000ce8, - 0x00000ce6,0x000000cc,0x00060041,0x000000ea,0x00000cea,0x00000c96,0x000001d9,0x00000ce4, - 0x0003003e,0x00000cea,0x00000ce9,0x000200f9,0x00000c9d,0x000200f8,0x00000c9d,0x00050041, - 0x000001d7,0x00000cec,0x00000c54,0x000001e0,0x0004003d,0x0000005e,0x00000ced,0x00000cec, - 0x00060041,0x00000340,0x00000cee,0x0000033d,0x000001d9,0x00000ced,0x0004003d,0x00000339, - 0x00000cef,0x00000cee,0x00050051,0x00000030,0x00000cf0,0x00000cef,0x00000000,0x00050041, - 0x00000242,0x00000cf1,0x00000ceb,0x000001d9,0x0003003e,0x00000cf1,0x00000cf0,0x00050051, - 0x00000030,0x00000cf2,0x00000cef,0x00000001,0x00050041,0x00000242,0x00000cf3,0x00000ceb, - 0x00000210,0x0003003e,0x00000cf3,0x00000cf2,0x00050051,0x00000030,0x00000cf4,0x00000cef, - 0x00000002,0x00050041,0x00000242,0x00000cf5,0x00000ceb,0x00000319,0x0003003e,0x00000cf5, - 0x00000cf4,0x00050051,0x00000030,0x00000cf6,0x00000cef,0x00000003,0x00050041,0x00000242, - 0x00000cf7,0x00000ceb,0x0000031b,0x0003003e,0x00000cf7,0x00000cf6,0x00050051,0x00000030, - 0x00000cf8,0x00000cef,0x00000004,0x00050041,0x00000242,0x00000cf9,0x00000ceb,0x000001e0, - 0x0003003e,0x00000cf9,0x00000cf8,0x00050051,0x00000333,0x00000cfa,0x00000cef,0x00000005, - 0x00050041,0x0000034e,0x00000cfb,0x00000ceb,0x00000197,0x00050051,0x00000030,0x00000cfc, - 0x00000cfa,0x00000000,0x00050041,0x00000242,0x00000cfd,0x00000cfb,0x000001d9,0x0003003e, - 0x00000cfd,0x00000cfc,0x00050051,0x00000030,0x00000cfe,0x00000cfa,0x00000001,0x00050041, - 0x00000242,0x00000cff,0x00000cfb,0x00000210,0x0003003e,0x00000cff,0x00000cfe,0x00050051, - 0x00000030,0x00000d00,0x00000cfa,0x00000002,0x00050041,0x00000242,0x00000d01,0x00000cfb, - 0x00000319,0x0003003e,0x00000d01,0x00000d00,0x00050051,0x00000030,0x00000d02,0x00000cfa, - 0x00000003,0x00050041,0x00000242,0x00000d03,0x00000cfb,0x0000031b,0x0003003e,0x00000d03, - 0x00000d02,0x00050051,0x00000030,0x00000d04,0x00000cfa,0x00000004,0x00050041,0x00000242, - 0x00000d05,0x00000cfb,0x000001e0,0x0003003e,0x00000d05,0x00000d04,0x00050051,0x00000030, - 0x00000d06,0x00000cfa,0x00000005,0x00050041,0x00000242,0x00000d07,0x00000cfb,0x00000197, - 0x0003003e,0x00000d07,0x00000d06,0x00050051,0x00000030,0x00000d08,0x00000cfa,0x00000006, - 0x00050041,0x00000242,0x00000d09,0x00000cfb,0x00000193,0x0003003e,0x00000d09,0x00000d08, - 0x00050051,0x00000030,0x00000d0a,0x00000cfa,0x00000007,0x00050041,0x00000242,0x00000d0b, - 0x00000cfb,0x0000035f,0x0003003e,0x00000d0b,0x00000d0a,0x00050051,0x00000334,0x00000d0c, - 0x00000cef,0x00000006,0x00050041,0x0000034e,0x00000d0d,0x00000ceb,0x00000193,0x00050051, - 0x00000030,0x00000d0e,0x00000d0c,0x00000000,0x00050041,0x00000242,0x00000d0f,0x00000d0d, - 0x000001d9,0x0003003e,0x00000d0f,0x00000d0e,0x00050051,0x00000030,0x00000d10,0x00000d0c, - 0x00000001,0x00050041,0x00000242,0x00000d11,0x00000d0d,0x00000210,0x0003003e,0x00000d11, - 0x00000d10,0x00050051,0x00000030,0x00000d12,0x00000d0c,0x00000002,0x00050041,0x00000242, - 0x00000d13,0x00000d0d,0x00000319,0x0003003e,0x00000d13,0x00000d12,0x00050051,0x00000030, - 0x00000d14,0x00000d0c,0x00000003,0x00050041,0x00000242,0x00000d15,0x00000d0d,0x0000031b, - 0x0003003e,0x00000d15,0x00000d14,0x00050051,0x00000030,0x00000d16,0x00000d0c,0x00000004, - 0x00050041,0x00000242,0x00000d17,0x00000d0d,0x000001e0,0x0003003e,0x00000d17,0x00000d16, - 0x00050051,0x00000030,0x00000d18,0x00000d0c,0x00000005,0x00050041,0x00000242,0x00000d19, - 0x00000d0d,0x00000197,0x0003003e,0x00000d19,0x00000d18,0x00050051,0x00000030,0x00000d1a, - 0x00000d0c,0x00000006,0x00050041,0x00000242,0x00000d1b,0x00000d0d,0x00000193,0x0003003e, - 0x00000d1b,0x00000d1a,0x00050051,0x00000030,0x00000d1c,0x00000d0c,0x00000007,0x00050041, - 0x00000242,0x00000d1d,0x00000d0d,0x0000035f,0x0003003e,0x00000d1d,0x00000d1c,0x00050051, - 0x00000335,0x00000d1e,0x00000cef,0x00000007,0x00050041,0x0000034e,0x00000d1f,0x00000ceb, - 0x0000035f,0x00050051,0x00000030,0x00000d20,0x00000d1e,0x00000000,0x00050041,0x00000242, - 0x00000d21,0x00000d1f,0x000001d9,0x0003003e,0x00000d21,0x00000d20,0x00050051,0x00000030, - 0x00000d22,0x00000d1e,0x00000001,0x00050041,0x00000242,0x00000d23,0x00000d1f,0x00000210, - 0x0003003e,0x00000d23,0x00000d22,0x00050051,0x00000030,0x00000d24,0x00000d1e,0x00000002, - 0x00050041,0x00000242,0x00000d25,0x00000d1f,0x00000319,0x0003003e,0x00000d25,0x00000d24, - 0x00050051,0x00000030,0x00000d26,0x00000d1e,0x00000003,0x00050041,0x00000242,0x00000d27, - 0x00000d1f,0x0000031b,0x0003003e,0x00000d27,0x00000d26,0x00050051,0x00000030,0x00000d28, - 0x00000d1e,0x00000004,0x00050041,0x00000242,0x00000d29,0x00000d1f,0x000001e0,0x0003003e, - 0x00000d29,0x00000d28,0x00050051,0x00000030,0x00000d2a,0x00000d1e,0x00000005,0x00050041, - 0x00000242,0x00000d2b,0x00000d1f,0x00000197,0x0003003e,0x00000d2b,0x00000d2a,0x00050051, - 0x00000030,0x00000d2c,0x00000d1e,0x00000006,0x00050041,0x00000242,0x00000d2d,0x00000d1f, - 0x00000193,0x0003003e,0x00000d2d,0x00000d2c,0x00050051,0x00000030,0x00000d2e,0x00000d1e, - 0x00000007,0x00050041,0x00000242,0x00000d2f,0x00000d1f,0x0000035f,0x0003003e,0x00000d2f, - 0x00000d2e,0x00050051,0x00000336,0x00000d30,0x00000cef,0x00000008,0x00050041,0x0000034e, - 0x00000d31,0x00000ceb,0x00000386,0x00050051,0x00000030,0x00000d32,0x00000d30,0x00000000, - 0x00050041,0x00000242,0x00000d33,0x00000d31,0x000001d9,0x0003003e,0x00000d33,0x00000d32, - 0x00050051,0x00000030,0x00000d34,0x00000d30,0x00000001,0x00050041,0x00000242,0x00000d35, - 0x00000d31,0x00000210,0x0003003e,0x00000d35,0x00000d34,0x00050051,0x00000030,0x00000d36, - 0x00000d30,0x00000002,0x00050041,0x00000242,0x00000d37,0x00000d31,0x00000319,0x0003003e, - 0x00000d37,0x00000d36,0x00050051,0x00000030,0x00000d38,0x00000d30,0x00000003,0x00050041, - 0x00000242,0x00000d39,0x00000d31,0x0000031b,0x0003003e,0x00000d39,0x00000d38,0x00050051, - 0x00000030,0x00000d3a,0x00000d30,0x00000004,0x00050041,0x00000242,0x00000d3b,0x00000d31, - 0x000001e0,0x0003003e,0x00000d3b,0x00000d3a,0x00050051,0x00000030,0x00000d3c,0x00000d30, - 0x00000005,0x00050041,0x00000242,0x00000d3d,0x00000d31,0x00000197,0x0003003e,0x00000d3d, - 0x00000d3c,0x00050051,0x00000030,0x00000d3e,0x00000d30,0x00000006,0x00050041,0x00000242, - 0x00000d3f,0x00000d31,0x00000193,0x0003003e,0x00000d3f,0x00000d3e,0x00050051,0x00000030, - 0x00000d40,0x00000d30,0x00000007,0x00050041,0x00000242,0x00000d41,0x00000d31,0x0000035f, - 0x0003003e,0x00000d41,0x00000d40,0x00050051,0x00000337,0x00000d42,0x00000cef,0x00000009, - 0x00050041,0x0000034e,0x00000d43,0x00000ceb,0x00000399,0x00050051,0x00000030,0x00000d44, - 0x00000d42,0x00000000,0x00050041,0x00000242,0x00000d45,0x00000d43,0x000001d9,0x0003003e, - 0x00000d45,0x00000d44,0x00050051,0x00000030,0x00000d46,0x00000d42,0x00000001,0x00050041, - 0x00000242,0x00000d47,0x00000d43,0x00000210,0x0003003e,0x00000d47,0x00000d46,0x00050051, - 0x00000030,0x00000d48,0x00000d42,0x00000002,0x00050041,0x00000242,0x00000d49,0x00000d43, - 0x00000319,0x0003003e,0x00000d49,0x00000d48,0x00050051,0x00000030,0x00000d4a,0x00000d42, - 0x00000003,0x00050041,0x00000242,0x00000d4b,0x00000d43,0x0000031b,0x0003003e,0x00000d4b, - 0x00000d4a,0x00050051,0x00000030,0x00000d4c,0x00000d42,0x00000004,0x00050041,0x00000242, - 0x00000d4d,0x00000d43,0x000001e0,0x0003003e,0x00000d4d,0x00000d4c,0x00050051,0x00000030, - 0x00000d4e,0x00000d42,0x00000005,0x00050041,0x00000242,0x00000d4f,0x00000d43,0x00000197, - 0x0003003e,0x00000d4f,0x00000d4e,0x00050051,0x00000030,0x00000d50,0x00000d42,0x00000006, - 0x00050041,0x00000242,0x00000d51,0x00000d43,0x00000193,0x0003003e,0x00000d51,0x00000d50, - 0x00050051,0x00000030,0x00000d52,0x00000d42,0x00000007,0x00050041,0x00000242,0x00000d53, - 0x00000d43,0x0000035f,0x0003003e,0x00000d53,0x00000d52,0x00050051,0x00000338,0x00000d54, - 0x00000cef,0x0000000a,0x00050041,0x0000034e,0x00000d55,0x00000ceb,0x000003ac,0x00050051, - 0x00000030,0x00000d56,0x00000d54,0x00000000,0x00050041,0x00000242,0x00000d57,0x00000d55, - 0x000001d9,0x0003003e,0x00000d57,0x00000d56,0x00050051,0x00000030,0x00000d58,0x00000d54, - 0x00000001,0x00050041,0x00000242,0x00000d59,0x00000d55,0x00000210,0x0003003e,0x00000d59, - 0x00000d58,0x00050051,0x00000030,0x00000d5a,0x00000d54,0x00000002,0x00050041,0x00000242, - 0x00000d5b,0x00000d55,0x00000319,0x0003003e,0x00000d5b,0x00000d5a,0x00050051,0x00000030, - 0x00000d5c,0x00000d54,0x00000003,0x00050041,0x00000242,0x00000d5d,0x00000d55,0x0000031b, - 0x0003003e,0x00000d5d,0x00000d5c,0x00050051,0x00000030,0x00000d5e,0x00000d54,0x00000004, - 0x00050041,0x00000242,0x00000d5f,0x00000d55,0x000001e0,0x0003003e,0x00000d5f,0x00000d5e, - 0x00050051,0x00000030,0x00000d60,0x00000d54,0x00000005,0x00050041,0x00000242,0x00000d61, - 0x00000d55,0x00000197,0x0003003e,0x00000d61,0x00000d60,0x00050051,0x00000030,0x00000d62, - 0x00000d54,0x00000006,0x00050041,0x00000242,0x00000d63,0x00000d55,0x00000193,0x0003003e, - 0x00000d63,0x00000d62,0x00050051,0x00000030,0x00000d64,0x00000d54,0x00000007,0x00050041, - 0x00000242,0x00000d65,0x00000d55,0x0000035f,0x0003003e,0x00000d65,0x00000d64,0x00050051, - 0x00000030,0x00000d66,0x00000cef,0x0000000b,0x00050041,0x00000242,0x00000d67,0x00000ceb, - 0x000003bf,0x0003003e,0x00000d67,0x00000d66,0x00050051,0x00000030,0x00000d68,0x00000cef, - 0x0000000c,0x00050041,0x00000242,0x00000d69,0x00000ceb,0x000000e9,0x0003003e,0x00000d69, - 0x00000d68,0x0004003d,0x0000005e,0x00000d6a,0x00000c4b,0x000500aa,0x0000005d,0x00000d6b, - 0x00000d6a,0x000001d9,0x000300f7,0x00000d6d,0x00000000,0x000400fa,0x00000d6b,0x00000d6c, - 0x00000d6d,0x000200f8,0x00000d6c,0x0004003d,0x0000005e,0x00000d6e,0x000007a2,0x00050041, - 0x00000242,0x00000d6f,0x00000ceb,0x000001d9,0x0004003d,0x00000030,0x00000d70,0x00000d6f, - 0x0008004f,0x00000010,0x00000d71,0x00000d70,0x00000d70,0x00000000,0x00000001,0x00000002, - 0x00050051,0x00000008,0x00000d72,0x00000d71,0x00000000,0x00050051,0x00000008,0x00000d73, - 0x00000d71,0x00000001,0x00050051,0x00000008,0x00000d74,0x00000d71,0x00000002,0x00070050, - 0x00000030,0x00000d75,0x00000d72,0x00000d73,0x00000d74,0x000000dc,0x00060041,0x000000ea, - 0x00000d76,0x00000ae2,0x000001d9,0x00000d6e,0x0003003e,0x00000d76,0x00000d75,0x000200f9, - 0x00000d6d,0x000200f8,0x00000d6d,0x0003003e,0x00000d77,0x000000dc,0x0004003d,0x0000005e, - 0x00000d78,0x00000c4b,0x000500ad,0x0000005d,0x00000d79,0x00000d78,0x000001d9,0x000300f7, - 0x00000d7b,0x00000000,0x000400fa,0x00000d79,0x00000d7a,0x00000d7b,0x000200f8,0x00000d7a, - 0x00060041,0x000000f3,0x00000d7c,0x000000e8,0x000003bf,0x000000ba,0x0004003d,0x00000008, - 0x00000d7d,0x00000d7c,0x000500ba,0x0000005d,0x00000d7e,0x00000d7d,0x000000f6,0x000200f9, - 0x00000d7b,0x000200f8,0x00000d7b,0x000700f5,0x0000005d,0x00000d7f,0x00000d79,0x00000d6d, - 0x00000d7e,0x00000d7a,0x000300f7,0x00000d81,0x00000000,0x000400fa,0x00000d7f,0x00000d80, - 0x00000d81,0x000200f8,0x00000d80,0x00060041,0x000000f3,0x00000d82,0x000000e8,0x000003bf, - 0x000000c2,0x0004003d,0x00000008,0x00000d83,0x00000d82,0x000500ba,0x0000005d,0x00000d84, - 0x00000d83,0x000000f6,0x000200f9,0x00000d81,0x000200f8,0x00000d81,0x000700f5,0x0000005d, - 0x00000d85,0x00000d7f,0x00000d7b,0x00000d84,0x00000d80,0x000300f7,0x00000d87,0x00000000, - 0x000400fa,0x00000d85,0x00000d86,0x00000d87,0x000200f8,0x00000d86,0x00060041,0x000000f3, - 0x00000d88,0x000000e8,0x000003bf,0x00000137,0x0004003d,0x00000008,0x00000d89,0x00000d88, - 0x000500ba,0x0000005d,0x00000d8a,0x00000d89,0x000000f6,0x000300f7,0x00000d8c,0x00000000, - 0x000400fa,0x00000d8a,0x00000d8b,0x00000db9,0x000200f8,0x00000d8b,0x00060041,0x0000002a, - 0x00000d8e,0x00000ceb,0x000003bf,0x00000137,0x0004003d,0x00000008,0x00000d8f,0x00000d8e, - 0x0004006e,0x0000005e,0x00000d90,0x00000d8f,0x00050041,0x000001d7,0x00000d91,0x00000c54, - 0x00000197,0x0004003d,0x0000005e,0x00000d92,0x00000d91,0x00050080,0x0000005e,0x00000d93, - 0x00000d90,0x00000d92,0x0003003e,0x00000d8d,0x00000d93,0x0004003d,0x0000005e,0x00000d94, - 0x00000d8d,0x000500af,0x0000005d,0x00000d95,0x00000d94,0x000001d9,0x000300f7,0x00000d97, - 0x00000000,0x000400fa,0x00000d95,0x00000d96,0x00000d97,0x000200f8,0x00000d96,0x0004003d, - 0x0000005e,0x00000d98,0x00000d8d,0x00060041,0x000000f3,0x00000d99,0x000000e8,0x000003bf, - 0x000000c2,0x0004003d,0x00000008,0x00000d9a,0x00000d99,0x0004006e,0x0000005e,0x00000d9b, - 0x00000d9a,0x000500b1,0x0000005d,0x00000d9c,0x00000d98,0x00000d9b,0x000200f9,0x00000d97, - 0x000200f8,0x00000d97,0x000700f5,0x0000005d,0x00000d9d,0x00000d95,0x00000d8b,0x00000d9c, - 0x00000d96,0x000300f7,0x00000d9f,0x00000000,0x000400fa,0x00000d9d,0x00000d9e,0x00000d9f, - 0x000200f8,0x00000d9e,0x0004003d,0x0000005e,0x00000da1,0x00000d8d,0x00080041,0x000000f3, - 0x00000da2,0x0000065c,0x000001d9,0x00000da1,0x000001d9,0x000000f2,0x0004003d,0x00000008, - 0x00000da3,0x00000da2,0x0007000c,0x00000008,0x00000da4,0x00000001,0x00000028,0x00000da3, - 0x0000066f,0x0003003e,0x00000da0,0x00000da4,0x00060041,0x000000f3,0x00000da6,0x000000e8, - 0x000003bf,0x000000c2,0x0004003d,0x00000008,0x00000da7,0x00000da6,0x0004003d,0x00000008, - 0x00000da8,0x00000da0,0x00050085,0x00000008,0x00000da9,0x00000da7,0x00000da8,0x00050088, - 0x00000008,0x00000daa,0x000000dc,0x00000da9,0x0003003e,0x00000da5,0x00000daa,0x0004003d, - 0x00000008,0x00000dac,0x00000c4a,0x0007000c,0x00000008,0x00000dad,0x00000001,0x00000028, - 0x00000dac,0x0000066f,0x0003003e,0x00000dab,0x00000dad,0x0004003d,0x00000008,0x00000dae, - 0x00000dab,0x0004003d,0x00000008,0x00000daf,0x00000dab,0x00050085,0x00000008,0x00000db0, - 0x00000dae,0x00000daf,0x0004003d,0x00000008,0x00000db1,0x00000dab,0x0004003d,0x00000008, - 0x00000db2,0x00000dab,0x00050085,0x00000008,0x00000db3,0x00000db1,0x00000db2,0x0004003d, - 0x00000008,0x00000db4,0x00000da5,0x0004003d,0x00000008,0x00000db5,0x00000da5,0x00050085, - 0x00000008,0x00000db6,0x00000db4,0x00000db5,0x00050081,0x00000008,0x00000db7,0x00000db3, - 0x00000db6,0x00050088,0x00000008,0x00000db8,0x00000db0,0x00000db7,0x0003003e,0x00000d77, - 0x00000db8,0x000200f9,0x00000d9f,0x000200f8,0x00000d9f,0x000200f9,0x00000d8c,0x000200f8, - 0x00000db9,0x0003003e,0x00000d77,0x000000cc,0x000200f9,0x00000d8c,0x000200f8,0x00000d8c, - 0x000200f9,0x00000d87,0x000200f8,0x00000d87,0x0004003d,0x00000010,0x00000dba,0x00000c45, - 0x00050041,0x00000242,0x00000dbb,0x00000ceb,0x0000031b,0x0004003d,0x00000030,0x00000dbc, - 0x00000dbb,0x0008004f,0x00000010,0x00000dbd,0x00000dbc,0x00000dbc,0x00000000,0x00000001, - 0x00000002,0x00050085,0x00000010,0x00000dbe,0x00000dba,0x00000dbd,0x0004003d,0x00000008, - 0x00000dbf,0x00000d77,0x0005008e,0x00000010,0x00000dc0,0x00000dbe,0x00000dbf,0x0004003d, - 0x00000010,0x00000dc1,0x00000c44,0x00050081,0x00000010,0x00000dc2,0x00000dc1,0x00000dc0, - 0x0003003e,0x00000c44,0x00000dc2,0x00050041,0x00000242,0x00000dc3,0x00000ceb,0x0000031b, - 0x0004003d,0x00000030,0x00000dc4,0x00000dc3,0x0008004f,0x00000010,0x00000dc5,0x00000dc4, - 0x00000dc4,0x00000000,0x00000001,0x00000002,0x00050041,0x00000242,0x00000dc6,0x00000ceb, - 0x0000031b,0x0004003d,0x00000030,0x00000dc7,0x00000dc6,0x0008004f,0x00000010,0x00000dc8, - 0x00000dc7,0x00000dc7,0x00000000,0x00000001,0x00000002,0x00050094,0x00000008,0x00000dc9, - 0x00000dc5,0x00000dc8,0x000500ba,0x0000005d,0x00000dca,0x00000dc9,0x000000cc,0x000300f7, - 0x00000dcc,0x00000000,0x000400fa,0x00000dca,0x00000dcb,0x00000dcc,0x000200f8,0x00000dcb, - 0x000200f9,0x00000c4e,0x000200f8,0x00000dcc,0x0004003d,0x00000010,0x00000dce,0x00000c45, - 0x00050041,0x0000001f,0x00000dd0,0x00000c54,0x00000319,0x0004003d,0x00000010,0x00000dd1, - 0x00000dd0,0x0003003e,0x00000dcf,0x00000dd1,0x00050041,0x0000001f,0x00000dd3,0x00000c54, - 0x0000031b,0x0004003d,0x00000010,0x00000dd4,0x00000dd3,0x0003003e,0x00000dd2,0x00000dd4, - 0x0004003d,0x00000010,0x00000dd6,0x00000c48,0x0003003e,0x00000dd5,0x00000dd6,0x0004003d, - 0x00000033,0x00000dd8,0x00000ceb,0x0003003e,0x00000dd7,0x00000dd8,0x00080039,0x00000010, - 0x00000dd9,0x0000007c,0x00000dcf,0x00000dd2,0x00000dd5,0x00000dd7,0x00050085,0x00000010, - 0x00000dda,0x00000dce,0x00000dd9,0x0004003d,0x00000010,0x00000ddb,0x00000c44,0x00050081, - 0x00000010,0x00000ddc,0x00000ddb,0x00000dda,0x0003003e,0x00000c44,0x00000ddc,0x00060041, - 0x000000f3,0x00000ddd,0x000000e8,0x000003bf,0x000000ba,0x0004003d,0x00000008,0x00000dde, - 0x00000ddd,0x000500ba,0x0000005d,0x00000ddf,0x00000dde,0x000000f6,0x000300f7,0x00000de1, - 0x00000000,0x000400fa,0x00000ddf,0x00000de0,0x00000de1,0x000200f8,0x00000de0,0x0004003d, - 0x00000010,0x00000de2,0x00000c45,0x0004003d,0x00000006,0x00000de3,0x00000791,0x0004003d, - 0x0000005e,0x00000de4,0x00000c4b,0x0004007c,0x00000006,0x00000de5,0x00000de4,0x00050084, - 0x00000006,0x00000de7,0x00000de5,0x00000de6,0x00050080,0x00000006,0x00000de8,0x00000de3, - 0x00000de7,0x00050080,0x00000006,0x00000dea,0x00000de8,0x00000de9,0x00050041,0x00000007, - 0x00000dec,0x00000776,0x000000c2,0x0004003d,0x00000006,0x00000ded,0x00000dec,0x0003003e, - 0x00000deb,0x00000ded,0x00050041,0x00000007,0x00000def,0x00000776,0x000000ba,0x0004003d, - 0x00000006,0x00000df0,0x00000def,0x0003003e,0x00000dee,0x00000df0,0x0003003e,0x00000df1, - 0x00000dea,0x00070039,0x00000010,0x00000df2,0x00000015,0x00000deb,0x00000dee,0x00000df1, - 0x00050041,0x0000001f,0x00000df4,0x00000c54,0x00000319,0x0004003d,0x00000010,0x00000df5, - 0x00000df4,0x0003003e,0x00000df3,0x00000df5,0x00050041,0x0000001f,0x00000df7,0x00000c54, - 0x0000031b,0x0004003d,0x00000010,0x00000df8,0x00000df7,0x0003003e,0x00000df6,0x00000df8, - 0x0004003d,0x00000033,0x00000dfa,0x00000ceb,0x0003003e,0x00000df9,0x00000dfa,0x0003003e, - 0x00000dfb,0x00000df2,0x00080039,0x00000010,0x00000dfc,0x00000083,0x00000df3,0x00000df6, - 0x00000df9,0x00000dfb,0x00050085,0x00000010,0x00000dfd,0x00000de2,0x00000dfc,0x0004003d, - 0x00000010,0x00000dfe,0x00000c44,0x00050081,0x00000010,0x00000dff,0x00000dfe,0x00000dfd, - 0x0003003e,0x00000c44,0x00000dff,0x000200f9,0x00000de1,0x000200f8,0x00000de1,0x00050041, - 0x0000001f,0x00000e01,0x00000c54,0x0000031b,0x0004003d,0x00000010,0x00000e02,0x00000e01, - 0x0006000c,0x00000010,0x00000e03,0x00000001,0x00000045,0x00000e02,0x0003003e,0x00000e00, - 0x00000e03,0x00050041,0x00000242,0x00000e05,0x00000ceb,0x000001d9,0x0004003d,0x00000030, - 0x00000e06,0x00000e05,0x0008004f,0x00000010,0x00000e07,0x00000e06,0x00000e06,0x00000000, - 0x00000001,0x00000002,0x0003003e,0x00000e04,0x00000e07,0x00060041,0x0000002a,0x00000e08, - 0x00000ceb,0x000000e9,0x00000137,0x0004003d,0x00000008,0x00000e09,0x00000e08,0x000500ba, - 0x0000005d,0x00000e0a,0x00000e09,0x000000f6,0x000300f7,0x00000e0c,0x00000000,0x000400fa, - 0x00000e0a,0x00000e0b,0x00000eff,0x000200f8,0x00000e0b,0x00050041,0x0000002a,0x00000e0e, - 0x00000e00,0x00000137,0x0004003d,0x00000008,0x00000e0f,0x00000e0e,0x0006000c,0x00000008, - 0x00000e10,0x00000001,0x00000004,0x00000e0f,0x000500b8,0x0000005d,0x00000e11,0x00000e10, - 0x000001c5,0x00060050,0x000001c9,0x00000e13,0x00000e11,0x00000e11,0x00000e11,0x000600a9, - 0x00000010,0x00000e14,0x00000e13,0x00000e12,0x000001c8,0x0003003e,0x00000e0d,0x00000e14, - 0x0004003d,0x00000010,0x00000e16,0x00000e0d,0x0004003d,0x00000010,0x00000e17,0x00000e00, - 0x0007000c,0x00000010,0x00000e18,0x00000001,0x00000044,0x00000e16,0x00000e17,0x0006000c, - 0x00000010,0x00000e19,0x00000001,0x00000045,0x00000e18,0x0003003e,0x00000e15,0x00000e19, - 0x0004003d,0x00000010,0x00000e1b,0x00000e00,0x0004003d,0x00000010,0x00000e1c,0x00000e15, - 0x0007000c,0x00000010,0x00000e1d,0x00000001,0x00000044,0x00000e1b,0x00000e1c,0x0003003e, - 0x00000e1a,0x00000e1d,0x0004003d,0x00000010,0x00000e1f,0x00000c48,0x0004007f,0x00000010, - 0x00000e20,0x00000e1f,0x0003003e,0x00000e1e,0x00000e20,0x0004003d,0x00000010,0x00000e22, - 0x00000e00,0x0004003d,0x00000010,0x00000e23,0x00000e1e,0x00050094,0x00000008,0x00000e24, - 0x00000e22,0x00000e23,0x0007000c,0x00000008,0x00000e25,0x00000001,0x00000028,0x00000e24, - 0x00000294,0x0003003e,0x00000e21,0x00000e25,0x00060041,0x0000002a,0x00000e27,0x00000ceb, - 0x000000e9,0x000000c2,0x0004003d,0x00000008,0x00000e28,0x00000e27,0x0008000c,0x00000008, - 0x00000e29,0x00000001,0x0000002b,0x00000e28,0x000000cc,0x000000dc,0x0003003e,0x00000e26, - 0x00000e29,0x0004003d,0x00000033,0x00000e2c,0x00000ceb,0x0003003e,0x00000e2b,0x00000e2c, - 0x00050039,0x00000008,0x00000e2d,0x00000037,0x00000e2b,0x0003003e,0x00000e2a,0x00000e2d, - 0x0004003d,0x00000033,0x00000e30,0x00000ceb,0x0003003e,0x00000e2f,0x00000e30,0x00050039, - 0x00000010,0x00000e31,0x0000003b,0x00000e2f,0x0003003e,0x00000e2e,0x00000e31,0x0004003d, - 0x00000008,0x00000e34,0x00000e21,0x0003003e,0x00000e33,0x00000e34,0x0004003d,0x00000010, - 0x00000e36,0x00000e2e,0x0003003e,0x00000e35,0x00000e36,0x00060039,0x00000010,0x00000e37, - 0x0000004f,0x00000e33,0x00000e35,0x0003003e,0x00000e32,0x00000e37,0x0004003d,0x00000006, - 0x00000e39,0x00000791,0x0004003d,0x0000005e,0x00000e3a,0x00000c4b,0x0004007c,0x00000006, - 0x00000e3b,0x00000e3a,0x00050084,0x00000006,0x00000e3d,0x00000e3b,0x00000e3c,0x00050080, - 0x00000006,0x00000e3e,0x00000e39,0x00000e3d,0x00050080,0x00000006,0x00000e3f,0x00000e3e, - 0x000000ba,0x00050041,0x00000007,0x00000e41,0x00000776,0x000000c2,0x0004003d,0x00000006, - 0x00000e42,0x00000e41,0x0003003e,0x00000e40,0x00000e42,0x00050041,0x00000007,0x00000e44, - 0x00000776,0x000000ba,0x0004003d,0x00000006,0x00000e45,0x00000e44,0x0003003e,0x00000e43, - 0x00000e45,0x0003003e,0x00000e46,0x00000e3f,0x00070039,0x00000009,0x00000e47,0x0000000e, - 0x00000e40,0x00000e43,0x00000e46,0x0003003e,0x00000e38,0x00000e47,0x00050041,0x0000002a, - 0x00000e48,0x00000e38,0x000000c2,0x0004003d,0x00000008,0x00000e49,0x00000e48,0x000500b8, - 0x0000005d,0x00000e4a,0x00000e49,0x000000f6,0x000300f7,0x00000e4c,0x00000000,0x000400fa, - 0x00000e4a,0x00000e4b,0x00000e87,0x000200f8,0x00000e4b,0x0004003d,0x00000006,0x00000e4e, - 0x00000791,0x0004003d,0x0000005e,0x00000e4f,0x00000c4b,0x0004007c,0x00000006,0x00000e50, - 0x00000e4f,0x00050084,0x00000006,0x00000e51,0x00000e50,0x00000e3c,0x00050080,0x00000006, - 0x00000e52,0x00000e4e,0x00000e51,0x00050080,0x00000006,0x00000e53,0x00000e52,0x000000f2, - 0x00050041,0x00000007,0x00000e55,0x00000776,0x000000c2,0x0004003d,0x00000006,0x00000e56, - 0x00000e55,0x0003003e,0x00000e54,0x00000e56,0x00050041,0x00000007,0x00000e58,0x00000776, - 0x000000ba,0x0004003d,0x00000006,0x00000e59,0x00000e58,0x0003003e,0x00000e57,0x00000e59, - 0x0003003e,0x00000e5a,0x00000e53,0x00070039,0x00000009,0x00000e5b,0x0000000e,0x00000e54, - 0x00000e57,0x00000e5a,0x0003003e,0x00000e5c,0x00000e5b,0x00050039,0x00000010,0x00000e5d, - 0x0000001a,0x00000e5c,0x0003003e,0x00000e4d,0x00000e5d,0x0004003d,0x00000010,0x00000e5f, - 0x00000e15,0x00050041,0x0000002a,0x00000e60,0x00000e4d,0x000000c2,0x0004003d,0x00000008, - 0x00000e61,0x00000e60,0x0005008e,0x00000010,0x00000e62,0x00000e5f,0x00000e61,0x0004003d, - 0x00000010,0x00000e63,0x00000e1a,0x00050041,0x0000002a,0x00000e64,0x00000e4d,0x000000ba, - 0x0004003d,0x00000008,0x00000e65,0x00000e64,0x0005008e,0x00000010,0x00000e66,0x00000e63, - 0x00000e65,0x00050081,0x00000010,0x00000e67,0x00000e62,0x00000e66,0x0004003d,0x00000010, - 0x00000e68,0x00000e00,0x00050041,0x0000002a,0x00000e69,0x00000e4d,0x00000137,0x0004003d, - 0x00000008,0x00000e6a,0x00000e69,0x0005008e,0x00000010,0x00000e6b,0x00000e68,0x00000e6a, - 0x00050081,0x00000010,0x00000e6c,0x00000e67,0x00000e6b,0x0006000c,0x00000010,0x00000e6d, - 0x00000001,0x00000045,0x00000e6c,0x0003003e,0x00000e5e,0x00000e6d,0x00050041,0x0000002a, - 0x00000e6f,0x00000e4d,0x00000137,0x0004003d,0x00000008,0x00000e70,0x00000e6f,0x00050085, - 0x00000008,0x00000e71,0x000000f6,0x00000e70,0x00050088,0x00000008,0x00000e72,0x00000e71, - 0x00000215,0x0003003e,0x00000e6e,0x00000e72,0x0004003d,0x00000008,0x00000e73,0x00000e6e, - 0x0003003e,0x00000c4a,0x00000e73,0x0004003d,0x00000010,0x00000e75,0x00000e32,0x00050083, - 0x00000010,0x00000e76,0x0000027f,0x00000e75,0x0004003d,0x00000008,0x00000e77,0x00000e26, - 0x00050083,0x00000008,0x00000e78,0x000000dc,0x00000e77,0x0005008e,0x00000010,0x00000e79, - 0x00000e76,0x00000e78,0x0003003e,0x00000e74,0x00000e79,0x0004003d,0x00000010,0x00000e7a, - 0x00000e74,0x0004003d,0x00000010,0x00000e7b,0x00000e04,0x00050085,0x00000010,0x00000e7c, - 0x00000e7a,0x00000e7b,0x00050041,0x0000002a,0x00000e7d,0x00000e4d,0x00000137,0x0004003d, - 0x00000008,0x00000e7e,0x00000e7d,0x0005008e,0x00000010,0x00000e7f,0x00000e7c,0x00000e7e, - 0x0004003d,0x00000008,0x00000e80,0x00000e6e,0x00050085,0x00000008,0x00000e81,0x00000e80, - 0x00000215,0x0007000c,0x00000008,0x00000e82,0x00000001,0x00000028,0x00000e81,0x0000025e, - 0x00060050,0x00000010,0x00000e83,0x00000e82,0x00000e82,0x00000e82,0x00050088,0x00000010, - 0x00000e84,0x00000e7f,0x00000e83,0x0004003d,0x00000010,0x00000e85,0x00000c45,0x00050085, - 0x00000010,0x00000e86,0x00000e85,0x00000e84,0x0003003e,0x00000c45,0x00000e86,0x000200f9, - 0x00000e4c,0x000200f8,0x00000e87,0x0004003d,0x00000010,0x00000e89,0x00000e1e,0x0004003d, - 0x00000010,0x00000e8a,0x00000e15,0x00050094,0x00000008,0x00000e8b,0x00000e89,0x00000e8a, - 0x0004003d,0x00000010,0x00000e8c,0x00000e1e,0x0004003d,0x00000010,0x00000e8d,0x00000e1a, - 0x00050094,0x00000008,0x00000e8e,0x00000e8c,0x00000e8d,0x0004003d,0x00000010,0x00000e8f, - 0x00000e1e,0x0004003d,0x00000010,0x00000e90,0x00000e00,0x00050094,0x00000008,0x00000e91, - 0x00000e8f,0x00000e90,0x00060050,0x00000010,0x00000e92,0x00000e8b,0x00000e8e,0x00000e91, - 0x0003003e,0x00000e88,0x00000e92,0x0004003d,0x00000006,0x00000e94,0x00000791,0x0004003d, - 0x0000005e,0x00000e95,0x00000c4b,0x0004007c,0x00000006,0x00000e96,0x00000e95,0x00050084, - 0x00000006,0x00000e97,0x00000e96,0x00000e3c,0x00050080,0x00000006,0x00000e98,0x00000e94, - 0x00000e97,0x00050080,0x00000006,0x00000e9a,0x00000e98,0x00000e99,0x00050041,0x00000007, - 0x00000e9c,0x00000776,0x000000c2,0x0004003d,0x00000006,0x00000e9d,0x00000e9c,0x0003003e, - 0x00000e9b,0x00000e9d,0x00050041,0x00000007,0x00000e9f,0x00000776,0x000000ba,0x0004003d, - 0x00000006,0x00000ea0,0x00000e9f,0x0003003e,0x00000e9e,0x00000ea0,0x0003003e,0x00000ea1, - 0x00000e9a,0x00070039,0x00000009,0x00000ea2,0x0000000e,0x00000e9b,0x00000e9e,0x00000ea1, - 0x0003003e,0x00000ea3,0x00000ea2,0x0004003d,0x00000008,0x00000ea5,0x00000e2a,0x0003003e, - 0x00000ea4,0x00000ea5,0x00060039,0x00000010,0x00000ea6,0x0000005b,0x00000ea3,0x00000ea4, - 0x0003003e,0x00000e93,0x00000ea6,0x0004003d,0x00000010,0x00000ea8,0x00000e15,0x00050041, - 0x0000002a,0x00000ea9,0x00000e93,0x000000c2,0x0004003d,0x00000008,0x00000eaa,0x00000ea9, - 0x0005008e,0x00000010,0x00000eab,0x00000ea8,0x00000eaa,0x0004003d,0x00000010,0x00000eac, - 0x00000e1a,0x00050041,0x0000002a,0x00000ead,0x00000e93,0x000000ba,0x0004003d,0x00000008, - 0x00000eae,0x00000ead,0x0005008e,0x00000010,0x00000eaf,0x00000eac,0x00000eae,0x00050081, - 0x00000010,0x00000eb0,0x00000eab,0x00000eaf,0x0004003d,0x00000010,0x00000eb1,0x00000e00, - 0x00050041,0x0000002a,0x00000eb2,0x00000e93,0x00000137,0x0004003d,0x00000008,0x00000eb3, - 0x00000eb2,0x0005008e,0x00000010,0x00000eb4,0x00000eb1,0x00000eb3,0x00050081,0x00000010, - 0x00000eb5,0x00000eb0,0x00000eb4,0x0006000c,0x00000010,0x00000eb6,0x00000001,0x00000045, - 0x00000eb5,0x0003003e,0x00000ea7,0x00000eb6,0x0004003d,0x00000010,0x00000eb8,0x00000e1e, - 0x0004007f,0x00000010,0x00000eb9,0x00000eb8,0x0004003d,0x00000010,0x00000eba,0x00000ea7, - 0x0007000c,0x00000010,0x00000ebb,0x00000001,0x00000047,0x00000eb9,0x00000eba,0x0006000c, - 0x00000010,0x00000ebc,0x00000001,0x00000045,0x00000ebb,0x0003003e,0x00000eb7,0x00000ebc, - 0x0004003d,0x00000010,0x00000ebe,0x00000e00,0x0004003d,0x00000010,0x00000ebf,0x00000eb7, - 0x00050094,0x00000008,0x00000ec0,0x00000ebe,0x00000ebf,0x0007000c,0x00000008,0x00000ec1, - 0x00000001,0x00000028,0x00000ec0,0x000000cc,0x0003003e,0x00000ebd,0x00000ec1,0x0004003d, - 0x00000010,0x00000ec3,0x00000e1e,0x0004003d,0x00000010,0x00000ec4,0x00000ea7,0x00050094, - 0x00000008,0x00000ec5,0x00000ec3,0x00000ec4,0x0007000c,0x00000008,0x00000ec6,0x00000001, - 0x00000028,0x00000ec5,0x000000cc,0x0003003e,0x00000ec2,0x00000ec6,0x0004003d,0x00000010, - 0x00000ec8,0x00000e00,0x0004003d,0x00000010,0x00000ec9,0x00000ea7,0x00050094,0x00000008, - 0x00000eca,0x00000ec8,0x00000ec9,0x0007000c,0x00000008,0x00000ecb,0x00000001,0x00000028, - 0x00000eca,0x000000cc,0x0003003e,0x00000ec7,0x00000ecb,0x0004003d,0x00000008,0x00000ecc, - 0x00000ebd,0x000500bc,0x0000005d,0x00000ecd,0x00000ecc,0x000000cc,0x000300f7,0x00000ecf, - 0x00000000,0x000400fa,0x00000ecd,0x00000ece,0x00000ed4,0x000200f8,0x00000ece,0x0004003d, - 0x00000010,0x00000ed0,0x00000c48,0x0004003d,0x00000010,0x00000ed1,0x00000e00,0x0007000c, - 0x00000010,0x00000ed2,0x00000001,0x00000047,0x00000ed0,0x00000ed1,0x0006000c,0x00000010, - 0x00000ed3,0x00000001,0x00000045,0x00000ed2,0x0003003e,0x00000e5e,0x00000ed3,0x000200f9, - 0x00000ecf,0x000200f8,0x00000ed4,0x0004003d,0x00000010,0x00000ed5,0x00000eb7,0x0003003e, - 0x00000e5e,0x00000ed5,0x000200f9,0x00000ecf,0x000200f8,0x00000ecf,0x0004003d,0x00000008, - 0x00000ed8,0x00000ec2,0x0003003e,0x00000ed7,0x00000ed8,0x0004003d,0x00000010,0x00000eda, - 0x00000e2e,0x0003003e,0x00000ed9,0x00000eda,0x00060039,0x00000010,0x00000edb,0x0000004f, - 0x00000ed7,0x00000ed9,0x0003003e,0x00000ed6,0x00000edb,0x0004003d,0x00000008,0x00000ede, - 0x00000e21,0x0003003e,0x00000edd,0x00000ede,0x0004003d,0x00000008,0x00000ee0,0x00000ebd, - 0x0003003e,0x00000edf,0x00000ee0,0x0004003d,0x00000008,0x00000ee2,0x00000e2a,0x0003003e, - 0x00000ee1,0x00000ee2,0x00070039,0x00000008,0x00000ee3,0x0000004a,0x00000edd,0x00000edf, - 0x00000ee1,0x0003003e,0x00000edc,0x00000ee3,0x0004003d,0x00000008,0x00000ee5,0x00000ec7, - 0x0003003e,0x00000ee4,0x00000ee5,0x0004003d,0x00000008,0x00000ee7,0x00000e2a,0x0003003e, - 0x00000ee6,0x00000ee7,0x00060039,0x00000008,0x00000ee8,0x00000040,0x00000ee4,0x00000ee6, - 0x00050085,0x00000008,0x00000ee9,0x000000f6,0x00000ee8,0x0004003d,0x00000008,0x00000eea, - 0x00000ec7,0x00050085,0x00000008,0x00000eeb,0x00000ee9,0x00000eea,0x0004003d,0x00000008, - 0x00000eec,0x00000ec2,0x00050085,0x00000008,0x00000eed,0x000001ed,0x00000eec,0x0007000c, - 0x00000008,0x00000eee,0x00000001,0x00000028,0x00000eed,0x0000066f,0x00050088,0x00000008, - 0x00000eef,0x00000eeb,0x00000eee,0x0003003e,0x00000c4a,0x00000eef,0x0004003d,0x00000010, - 0x00000ef0,0x00000ed6,0x0004003d,0x00000008,0x00000ef1,0x00000edc,0x0005008e,0x00000010, - 0x00000ef2,0x00000ef0,0x00000ef1,0x0004003d,0x00000008,0x00000ef3,0x00000ec2,0x0005008e, - 0x00000010,0x00000ef4,0x00000ef2,0x00000ef3,0x0004003d,0x00000008,0x00000ef5,0x00000e21, - 0x0004003d,0x00000008,0x00000ef6,0x00000ec7,0x00050085,0x00000008,0x00000ef7,0x00000ef5, - 0x00000ef6,0x0007000c,0x00000008,0x00000ef8,0x00000001,0x00000028,0x00000ef7,0x00000294, - 0x00060050,0x00000010,0x00000ef9,0x00000ef8,0x00000ef8,0x00000ef8,0x00050088,0x00000010, - 0x00000efa,0x00000ef4,0x00000ef9,0x00060050,0x00000010,0x00000efb,0x000000f6,0x000000f6, - 0x000000f6,0x00050088,0x00000010,0x00000efc,0x00000efa,0x00000efb,0x0004003d,0x00000010, - 0x00000efd,0x00000c45,0x00050085,0x00000010,0x00000efe,0x00000efd,0x00000efc,0x0003003e, - 0x00000c45,0x00000efe,0x000200f9,0x00000e4c,0x000200f8,0x00000e4c,0x000200f9,0x00000e0c, - 0x000200f8,0x00000eff,0x00060041,0x0000002a,0x00000f01,0x00000ceb,0x000001e0,0x000000c2, - 0x0004003d,0x00000008,0x00000f02,0x00000f01,0x0008000c,0x00000008,0x00000f03,0x00000001, - 0x0000002b,0x00000f02,0x000000cc,0x000000dc,0x0003003e,0x00000f00,0x00000f03,0x00050041, - 0x0000002a,0x00000f05,0x00000e00,0x00000137,0x0004003d,0x00000008,0x00000f06,0x00000f05, - 0x0006000c,0x00000008,0x00000f07,0x00000001,0x00000004,0x00000f06,0x000500b8,0x0000005d, - 0x00000f08,0x00000f07,0x000001c5,0x00060050,0x000001c9,0x00000f09,0x00000f08,0x00000f08, - 0x00000f08,0x000600a9,0x00000010,0x00000f0a,0x00000f09,0x00000e12,0x000001c8,0x0003003e, - 0x00000f04,0x00000f0a,0x0004003d,0x00000010,0x00000f0c,0x00000f04,0x0004003d,0x00000010, - 0x00000f0d,0x00000e00,0x0007000c,0x00000010,0x00000f0e,0x00000001,0x00000044,0x00000f0c, - 0x00000f0d,0x0006000c,0x00000010,0x00000f0f,0x00000001,0x00000045,0x00000f0e,0x0003003e, - 0x00000f0b,0x00000f0f,0x0004003d,0x00000010,0x00000f11,0x00000e00,0x0004003d,0x00000010, - 0x00000f12,0x00000f0b,0x0007000c,0x00000010,0x00000f13,0x00000001,0x00000044,0x00000f11, - 0x00000f12,0x0003003e,0x00000f10,0x00000f13,0x0004003d,0x00000006,0x00000f14,0x00000791, - 0x0004003d,0x0000005e,0x00000f15,0x00000c4b,0x0004007c,0x00000006,0x00000f16,0x00000f15, - 0x00050084,0x00000006,0x00000f18,0x00000f16,0x00000f17,0x00050080,0x00000006,0x00000f19, - 0x00000f14,0x00000f18,0x00050080,0x00000006,0x00000f1b,0x00000f19,0x00000f1a,0x00050041, - 0x00000007,0x00000f1d,0x00000776,0x000000c2,0x0004003d,0x00000006,0x00000f1e,0x00000f1d, - 0x0003003e,0x00000f1c,0x00000f1e,0x00050041,0x00000007,0x00000f20,0x00000776,0x000000ba, - 0x0004003d,0x00000006,0x00000f21,0x00000f20,0x0003003e,0x00000f1f,0x00000f21,0x0003003e, - 0x00000f22,0x00000f1b,0x00070039,0x00000009,0x00000f23,0x0000000e,0x00000f1c,0x00000f1f, - 0x00000f22,0x00050051,0x00000008,0x00000f24,0x00000f23,0x00000000,0x0004003d,0x00000008, - 0x00000f25,0x00000f00,0x000500b8,0x0000005d,0x00000f26,0x00000f24,0x00000f25,0x000300f7, - 0x00000f28,0x00000000,0x000400fa,0x00000f26,0x00000f27,0x00000f3a,0x000200f8,0x00000f27, - 0x0004003d,0x00000010,0x00000f29,0x00000c48,0x0004003d,0x00000010,0x00000f2a,0x00000e00, - 0x0007000c,0x00000010,0x00000f2b,0x00000001,0x00000047,0x00000f29,0x00000f2a,0x0003003e, - 0x00000e5e,0x00000f2b,0x0004003d,0x00000008,0x00000f2c,0x00000f00,0x0007000c,0x00000008, - 0x00000f2d,0x00000001,0x00000028,0x00000f2c,0x000004b9,0x0003003e,0x00000c4a,0x00000f2d, - 0x0004003d,0x00000010,0x00000f2e,0x00000e04,0x00050041,0x00000242,0x00000f2f,0x00000ceb, - 0x00000319,0x0004003d,0x00000030,0x00000f30,0x00000f2f,0x0008004f,0x00000010,0x00000f31, - 0x00000f30,0x00000f30,0x00000000,0x00000001,0x00000002,0x00060050,0x00000010,0x00000f32, - 0x000000f6,0x000000f6,0x000000f6,0x0008000c,0x00000010,0x00000f33,0x00000001,0x0000002e, - 0x00000f2e,0x00000f31,0x00000f32,0x0004003d,0x00000008,0x00000f34,0x00000f00,0x0007000c, - 0x00000008,0x00000f35,0x00000001,0x00000028,0x00000f34,0x000004b9,0x00060050,0x00000010, - 0x00000f36,0x00000f35,0x00000f35,0x00000f35,0x00050088,0x00000010,0x00000f37,0x00000f33, - 0x00000f36,0x0004003d,0x00000010,0x00000f38,0x00000c45,0x00050085,0x00000010,0x00000f39, - 0x00000f38,0x00000f37,0x0003003e,0x00000c45,0x00000f39,0x000200f9,0x00000f28,0x000200f8, - 0x00000f3a,0x0004003d,0x00000006,0x00000f3c,0x00000791,0x0004003d,0x0000005e,0x00000f3d, - 0x00000c4b,0x0004007c,0x00000006,0x00000f3e,0x00000f3d,0x00050084,0x00000006,0x00000f3f, - 0x00000f3e,0x00000e3c,0x00050080,0x00000006,0x00000f40,0x00000f3c,0x00000f3f,0x00050080, - 0x00000006,0x00000f41,0x00000f40,0x000000ba,0x00050041,0x00000007,0x00000f43,0x00000776, - 0x000000c2,0x0004003d,0x00000006,0x00000f44,0x00000f43,0x0003003e,0x00000f42,0x00000f44, - 0x00050041,0x00000007,0x00000f46,0x00000776,0x000000ba,0x0004003d,0x00000006,0x00000f47, - 0x00000f46,0x0003003e,0x00000f45,0x00000f47,0x0003003e,0x00000f48,0x00000f41,0x00070039, - 0x00000009,0x00000f49,0x0000000e,0x00000f42,0x00000f45,0x00000f48,0x0003003e,0x00000f4a, - 0x00000f49,0x00050039,0x00000010,0x00000f4b,0x0000001a,0x00000f4a,0x0003003e,0x00000f3b, - 0x00000f4b,0x0004003d,0x00000010,0x00000f4c,0x00000f0b,0x00050041,0x0000002a,0x00000f4d, - 0x00000f3b,0x000000c2,0x0004003d,0x00000008,0x00000f4e,0x00000f4d,0x0005008e,0x00000010, - 0x00000f4f,0x00000f4c,0x00000f4e,0x0004003d,0x00000010,0x00000f50,0x00000f10,0x00050041, - 0x0000002a,0x00000f51,0x00000f3b,0x000000ba,0x0004003d,0x00000008,0x00000f52,0x00000f51, - 0x0005008e,0x00000010,0x00000f53,0x00000f50,0x00000f52,0x00050081,0x00000010,0x00000f54, - 0x00000f4f,0x00000f53,0x0004003d,0x00000010,0x00000f55,0x00000e00,0x00050041,0x0000002a, - 0x00000f56,0x00000f3b,0x00000137,0x0004003d,0x00000008,0x00000f57,0x00000f56,0x0005008e, - 0x00000010,0x00000f58,0x00000f55,0x00000f57,0x00050081,0x00000010,0x00000f59,0x00000f54, - 0x00000f58,0x0006000c,0x00000010,0x00000f5a,0x00000001,0x00000045,0x00000f59,0x0003003e, - 0x00000e5e,0x00000f5a,0x00050041,0x0000002a,0x00000f5b,0x00000f3b,0x00000137,0x0004003d, - 0x00000008,0x00000f5c,0x00000f5b,0x00050088,0x00000008,0x00000f5d,0x00000f5c,0x00000215, - 0x0003003e,0x00000c4a,0x00000f5d,0x0004003d,0x00000010,0x00000f5e,0x00000e04,0x0004003d, - 0x00000008,0x00000f5f,0x00000f00,0x00050083,0x00000008,0x00000f60,0x000000dc,0x00000f5f, - 0x0007000c,0x00000008,0x00000f61,0x00000001,0x00000028,0x00000f60,0x000004b9,0x00060050, - 0x00000010,0x00000f62,0x00000f61,0x00000f61,0x00000f61,0x00050088,0x00000010,0x00000f63, - 0x00000f5e,0x00000f62,0x0004003d,0x00000010,0x00000f64,0x00000c45,0x00050085,0x00000010, - 0x00000f65,0x00000f64,0x00000f63,0x0003003e,0x00000c45,0x00000f65,0x000200f9,0x00000f28, - 0x000200f8,0x00000f28,0x000200f9,0x00000e0c,0x000200f8,0x00000e0c,0x00050041,0x0000001f, - 0x00000f66,0x00000c54,0x00000319,0x0004003d,0x00000010,0x00000f67,0x00000f66,0x0004003d, - 0x00000010,0x00000f68,0x00000e00,0x0005008e,0x00000010,0x00000f69,0x00000f68,0x0000023c, - 0x00050081,0x00000010,0x00000f6a,0x00000f67,0x00000f69,0x0003003e,0x00000c46,0x00000f6a, - 0x0004003d,0x00000010,0x00000f6b,0x00000e5e,0x0006000c,0x00000010,0x00000f6c,0x00000001, - 0x00000045,0x00000f6b,0x0003003e,0x00000c48,0x00000f6c,0x0004003d,0x0000005e,0x00000f6d, - 0x00000c4b,0x000500ad,0x0000005d,0x00000f6e,0x00000f6d,0x000001d9,0x000300f7,0x00000f70, - 0x00000000,0x000400fa,0x00000f6e,0x00000f6f,0x00000f70,0x000200f8,0x00000f6f,0x00050041, - 0x0000002a,0x00000f72,0x00000c45,0x000000c2,0x0004003d,0x00000008,0x00000f73,0x00000f72, - 0x00050041,0x0000002a,0x00000f74,0x00000c45,0x000000ba,0x0004003d,0x00000008,0x00000f75, - 0x00000f74,0x0007000c,0x00000008,0x00000f76,0x00000001,0x00000028,0x00000f73,0x00000f75, - 0x00050041,0x0000002a,0x00000f77,0x00000c45,0x00000137,0x0004003d,0x00000008,0x00000f78, - 0x00000f77,0x0007000c,0x00000008,0x00000f79,0x00000001,0x00000028,0x00000f76,0x00000f78, - 0x0008000c,0x00000008,0x00000f7b,0x00000001,0x0000002b,0x00000f79,0x000000fe,0x00000f7a, - 0x0003003e,0x00000f71,0x00000f7b,0x0004003d,0x00000006,0x00000f7c,0x00000791,0x0004003d, - 0x0000005e,0x00000f7d,0x00000c4b,0x0004007c,0x00000006,0x00000f7e,0x00000f7d,0x00050084, - 0x00000006,0x00000f80,0x00000f7e,0x00000f7f,0x00050080,0x00000006,0x00000f81,0x00000f7c, - 0x00000f80,0x00050080,0x00000006,0x00000f83,0x00000f81,0x00000f82,0x00050041,0x00000007, - 0x00000f85,0x00000776,0x000000c2,0x0004003d,0x00000006,0x00000f86,0x00000f85,0x0003003e, - 0x00000f84,0x00000f86,0x00050041,0x00000007,0x00000f88,0x00000776,0x000000ba,0x0004003d, - 0x00000006,0x00000f89,0x00000f88,0x0003003e,0x00000f87,0x00000f89,0x0003003e,0x00000f8a, - 0x00000f83,0x00070039,0x00000009,0x00000f8b,0x0000000e,0x00000f84,0x00000f87,0x00000f8a, - 0x00050051,0x00000008,0x00000f8c,0x00000f8b,0x00000000,0x0004003d,0x00000008,0x00000f8d, - 0x00000f71,0x000500ba,0x0000005d,0x00000f8e,0x00000f8c,0x00000f8d,0x000300f7,0x00000f90, - 0x00000000,0x000400fa,0x00000f8e,0x00000f8f,0x00000f90,0x000200f8,0x00000f8f,0x000200f9, - 0x00000c4e,0x000200f8,0x00000f90,0x0004003d,0x00000008,0x00000f92,0x00000f71,0x0004003d, - 0x00000010,0x00000f93,0x00000c45,0x00060050,0x00000010,0x00000f94,0x00000f92,0x00000f92, - 0x00000f92,0x00050088,0x00000010,0x00000f95,0x00000f93,0x00000f94,0x0003003e,0x00000c45, - 0x00000f95,0x000200f9,0x00000f70,0x000200f8,0x00000f70,0x000200f9,0x00000c4f,0x000200f8, - 0x00000c4f,0x0004003d,0x0000005e,0x00000f96,0x00000c4b,0x00050080,0x0000005e,0x00000f97, - 0x00000f96,0x00000210,0x0003003e,0x00000c4b,0x00000f97,0x000200f9,0x00000c4c,0x000200f8, - 0x00000c4e,0x0004003d,0x00000010,0x00000f99,0x00000c44,0x00050051,0x00000008,0x00000f9a, - 0x00000f99,0x00000000,0x00050051,0x00000008,0x00000f9b,0x00000f99,0x00000001,0x00050051, - 0x00000008,0x00000f9c,0x00000f99,0x00000002,0x00070050,0x00000030,0x00000f9d,0x00000f9a, - 0x00000f9b,0x00000f9c,0x000000dc,0x0003003e,0x00000f98,0x00000f9d,0x0004003d,0x00000008, - 0x00000f9e,0x00000799,0x000500ba,0x0000005d,0x00000f9f,0x00000f9e,0x000000f6,0x000300f7, - 0x00000fa1,0x00000000,0x000400fa,0x00000f9f,0x00000fa0,0x000010be,0x000200f8,0x00000fa0, - 0x0004003d,0x0000005e,0x00000fa3,0x000007a2,0x00060041,0x000000ea,0x00000fa4,0x000007cb, - 0x000001d9,0x00000fa3,0x0004003d,0x00000030,0x00000fa5,0x00000fa4,0x0003003e,0x00000fa2, - 0x00000fa5,0x0004003d,0x0000005e,0x00000fa7,0x000007a2,0x00060041,0x000000ea,0x00000fa8, - 0x000007e8,0x000001d9,0x00000fa7,0x0004003d,0x00000030,0x00000fa9,0x00000fa8,0x0003003e, - 0x00000fa6,0x00000fa9,0x00060041,0x000000f3,0x00000fab,0x000000e8,0x00000386,0x00000137, - 0x0004003d,0x00000008,0x00000fac,0x00000fab,0x0003003e,0x00000faa,0x00000fac,0x0004003d, - 0x00000008,0x00000fad,0x00000faa,0x000500ba,0x0000005d,0x00000fae,0x00000fad,0x000000cc, - 0x000300f7,0x00000fb0,0x00000000,0x000400fa,0x00000fae,0x00000faf,0x00000fb0,0x000200f8, - 0x00000faf,0x00050041,0x0000002a,0x00000fb1,0x00000fa2,0x000000f2,0x0004003d,0x00000008, - 0x00000fb2,0x00000fb1,0x000500ba,0x0000005d,0x00000fb3,0x00000fb2,0x000000dc,0x000200f9, - 0x00000fb0,0x000200f8,0x00000fb0,0x000700f5,0x0000005d,0x00000fb4,0x00000fae,0x00000fa0, - 0x00000fb3,0x00000faf,0x000300f7,0x00000fb6,0x00000000,0x000400fa,0x00000fb4,0x00000fb5, - 0x00000fb6,0x000200f8,0x00000fb5,0x0004003d,0x00000030,0x00000fb8,0x00000fa2,0x0008004f, - 0x00000010,0x00000fb9,0x00000fb8,0x00000fb8,0x00000000,0x00000001,0x00000002,0x00050041, - 0x0000002a,0x00000fba,0x00000fa2,0x000000f2,0x0004003d,0x00000008,0x00000fbb,0x00000fba, - 0x00060050,0x00000010,0x00000fbc,0x00000fbb,0x00000fbb,0x00000fbb,0x00050088,0x00000010, - 0x00000fbd,0x00000fb9,0x00000fbc,0x0003003e,0x00000fb7,0x00000fbd,0x0004003d,0x00000030, - 0x00000fbf,0x00000fa6,0x0008004f,0x00000010,0x00000fc0,0x00000fbf,0x00000fbf,0x00000000, - 0x00000001,0x00000002,0x00050041,0x0000002a,0x00000fc1,0x00000fa2,0x000000f2,0x0004003d, - 0x00000008,0x00000fc2,0x00000fc1,0x00060050,0x00000010,0x00000fc3,0x00000fc2,0x00000fc2, - 0x00000fc2,0x00050088,0x00000010,0x00000fc4,0x00000fc0,0x00000fc3,0x0004003d,0x00000010, - 0x00000fc5,0x00000fb7,0x0004003d,0x00000010,0x00000fc6,0x00000fb7,0x00050085,0x00000010, - 0x00000fc7,0x00000fc5,0x00000fc6,0x00050083,0x00000010,0x00000fc8,0x00000fc4,0x00000fc7, - 0x0007000c,0x00000010,0x00000fc9,0x00000001,0x00000028,0x00000fc8,0x0000010d,0x0003003e, - 0x00000fbe,0x00000fc9,0x00050041,0x0000002a,0x00000fcb,0x00000fbe,0x000000c2,0x0004003d, - 0x00000008,0x00000fcc,0x00000fcb,0x00050041,0x0000002a,0x00000fcd,0x00000fbe,0x000000ba, - 0x0004003d,0x00000008,0x00000fce,0x00000fcd,0x00050041,0x0000002a,0x00000fcf,0x00000fbe, - 0x00000137,0x0004003d,0x00000008,0x00000fd0,0x00000fcf,0x0007000c,0x00000008,0x00000fd1, - 0x00000001,0x00000028,0x00000fce,0x00000fd0,0x0007000c,0x00000008,0x00000fd2,0x00000001, - 0x00000028,0x00000fcc,0x00000fd1,0x0006000c,0x00000008,0x00000fd3,0x00000001,0x0000001f, - 0x00000fd2,0x0003003e,0x00000fca,0x00000fd3,0x00050041,0x0000002a,0x00000fd5,0x00000f98, - 0x000000c2,0x0004003d,0x00000008,0x00000fd6,0x00000fd5,0x00050041,0x0000002a,0x00000fd7, - 0x00000f98,0x000000ba,0x0004003d,0x00000008,0x00000fd8,0x00000fd7,0x0007000c,0x00000008, - 0x00000fd9,0x00000001,0x00000028,0x00000fd6,0x00000fd8,0x00050041,0x0000002a,0x00000fda, - 0x00000f98,0x00000137,0x0004003d,0x00000008,0x00000fdb,0x00000fda,0x0007000c,0x00000008, - 0x00000fdc,0x00000001,0x00000028,0x00000fd9,0x00000fdb,0x0003003e,0x00000fd4,0x00000fdc, - 0x00050041,0x0000002a,0x00000fde,0x00000fb7,0x000000c2,0x0004003d,0x00000008,0x00000fdf, - 0x00000fde,0x00050041,0x0000002a,0x00000fe0,0x00000fb7,0x000000ba,0x0004003d,0x00000008, - 0x00000fe1,0x00000fe0,0x0007000c,0x00000008,0x00000fe2,0x00000001,0x00000028,0x00000fdf, - 0x00000fe1,0x00050041,0x0000002a,0x00000fe3,0x00000fb7,0x00000137,0x0004003d,0x00000008, - 0x00000fe4,0x00000fe3,0x0007000c,0x00000008,0x00000fe5,0x00000001,0x00000028,0x00000fe2, - 0x00000fe4,0x0003003e,0x00000fdd,0x00000fe5,0x0004003d,0x00000008,0x00000fe6,0x00000fca, - 0x000500ba,0x0000005d,0x00000fe7,0x00000fe6,0x00000110,0x000300f7,0x00000fe9,0x00000000, - 0x000400fa,0x00000fe7,0x00000fe8,0x00000fe9,0x000200f8,0x00000fe8,0x0004003d,0x00000008, - 0x00000fea,0x00000fd4,0x0004003d,0x00000008,0x00000feb,0x00000fdd,0x0004003d,0x00000008, - 0x00000fec,0x00000faa,0x0004003d,0x00000008,0x00000fed,0x00000fca,0x00050085,0x00000008, - 0x00000fee,0x00000fec,0x00000fed,0x00050081,0x00000008,0x00000fef,0x00000feb,0x00000fee, - 0x000500ba,0x0000005d,0x00000ff0,0x00000fea,0x00000fef,0x000200f9,0x00000fe9,0x000200f8, - 0x00000fe9,0x000700f5,0x0000005d,0x00000ff1,0x00000fe7,0x00000fb5,0x00000ff0,0x00000fe8, - 0x000300f7,0x00000ff3,0x00000000,0x000400fa,0x00000ff1,0x00000ff2,0x00000ff3,0x000200f8, - 0x00000ff2,0x0004003d,0x00000010,0x00000ff4,0x00000fb7,0x00050051,0x00000008,0x00000ff5, - 0x00000ff4,0x00000000,0x00050051,0x00000008,0x00000ff6,0x00000ff4,0x00000001,0x00050051, - 0x00000008,0x00000ff7,0x00000ff4,0x00000002,0x00070050,0x00000030,0x00000ff8,0x00000ff5, - 0x00000ff6,0x00000ff7,0x000000dc,0x0003003e,0x00000f98,0x00000ff8,0x000200f9,0x00000ff3, - 0x000200f8,0x00000ff3,0x000200f9,0x00000fb6,0x000200f8,0x00000fb6,0x00060041,0x000000f3, - 0x00000ff9,0x000000e8,0x000003ac,0x000000c2,0x0004003d,0x00000008,0x00000ffa,0x00000ff9, - 0x000500ba,0x0000005d,0x00000ffb,0x00000ffa,0x000000f6,0x000300f7,0x00000ffd,0x00000000, - 0x000400fa,0x00000ffb,0x00000ffc,0x00000ffd,0x000200f8,0x00000ffc,0x0003003e,0x00000fa2, - 0x00000c91,0x0003003e,0x00000fa6,0x00000c91,0x0004003d,0x0000005e,0x00000ffe,0x000007a2, - 0x00070041,0x000000f3,0x00000fff,0x00000ad4,0x000001d9,0x00000ffe,0x000000f2,0x0004003d, - 0x00000008,0x00001000,0x00000fff,0x000500b8,0x0000005d,0x00001001,0x00001000,0x00000c8d, - 0x000300f7,0x00001003,0x00000000,0x000400fa,0x00001001,0x00001002,0x00001003,0x000200f8, - 0x00001002,0x00050041,0x00000546,0x00001005,0x000000e8,0x00000399,0x0004003d,0x000000e5, - 0x00001006,0x00001005,0x0004003d,0x0000005e,0x00001007,0x000007a2,0x00060041,0x000000ea, - 0x00001008,0x00000ad4,0x000001d9,0x00001007,0x0004003d,0x00000030,0x00001009,0x00001008, - 0x0008004f,0x00000010,0x0000100a,0x00001009,0x00001009,0x00000000,0x00000001,0x00000002, - 0x00050051,0x00000008,0x0000100b,0x0000100a,0x00000000,0x00050051,0x00000008,0x0000100c, - 0x0000100a,0x00000001,0x00050051,0x00000008,0x0000100d,0x0000100a,0x00000002,0x00070050, - 0x00000030,0x0000100e,0x0000100b,0x0000100c,0x0000100d,0x000000dc,0x00050091,0x00000030, - 0x0000100f,0x00001006,0x0000100e,0x0003003e,0x00001004,0x0000100f,0x00050041,0x0000002a, - 0x00001010,0x00001004,0x000000f2,0x0004003d,0x00000008,0x00001011,0x00001010,0x000500ba, - 0x0000005d,0x00001012,0x00001011,0x000000cc,0x000300f7,0x00001014,0x00000000,0x000400fa, - 0x00001012,0x00001013,0x00001014,0x000200f8,0x00001013,0x0004003d,0x00000030,0x00001016, - 0x00001004,0x0007004f,0x00000009,0x00001017,0x00001016,0x00001016,0x00000000,0x00000001, - 0x00050041,0x0000002a,0x00001018,0x00001004,0x000000f2,0x0004003d,0x00000008,0x00001019, - 0x00001018,0x00050050,0x00000009,0x0000101a,0x00001019,0x00001019,0x00050088,0x00000009, - 0x0000101b,0x00001017,0x0000101a,0x0003003e,0x00001015,0x0000101b,0x00050041,0x0000002a, - 0x0000101d,0x00001015,0x000000c2,0x0004003d,0x00000008,0x0000101e,0x0000101d,0x00050085, - 0x00000008,0x0000101f,0x0000101e,0x000000f6,0x00050081,0x00000008,0x00001020,0x0000101f, - 0x000000f6,0x00050041,0x0000002a,0x00001021,0x00001015,0x000000ba,0x0004003d,0x00000008, - 0x00001022,0x00001021,0x00050085,0x00000008,0x00001023,0x00001022,0x000000f6,0x00050083, - 0x00000008,0x00001024,0x000000f6,0x00001023,0x00050050,0x00000009,0x00001025,0x00001020, - 0x00001024,0x00050041,0x000000ea,0x00001026,0x000000e8,0x000001e0,0x0004003d,0x00000030, - 0x00001027,0x00001026,0x0007004f,0x00000009,0x00001028,0x00001027,0x00001027,0x00000000, - 0x00000001,0x00050085,0x00000009,0x00001029,0x00001025,0x00001028,0x0003003e,0x0000101c, - 0x00001029,0x00050041,0x000000ea,0x0000102c,0x000000e8,0x000001e0,0x0004003d,0x00000030, - 0x0000102d,0x0000102c,0x0007004f,0x00000009,0x0000102e,0x0000102d,0x0000102d,0x00000000, - 0x00000001,0x0004006e,0x00000815,0x0000102f,0x0000102e,0x0003003e,0x0000102b,0x0000102f, - 0x0004003d,0x00000009,0x00001031,0x0000101c,0x0006000c,0x00000009,0x00001032,0x00000001, - 0x00000008,0x00001031,0x0004006e,0x00000815,0x00001033,0x00001032,0x0003003e,0x00001030, - 0x00001033,0x00050041,0x000001d7,0x00001034,0x00001030,0x000000c2,0x0004003d,0x0000005e, - 0x00001035,0x00001034,0x000500af,0x0000005d,0x00001036,0x00001035,0x000001d9,0x000300f7, - 0x00001038,0x00000000,0x000400fa,0x00001036,0x00001037,0x00001038,0x000200f8,0x00001037, - 0x00050041,0x000001d7,0x00001039,0x00001030,0x000000ba,0x0004003d,0x0000005e,0x0000103a, - 0x00001039,0x000500af,0x0000005d,0x0000103b,0x0000103a,0x000001d9,0x000200f9,0x00001038, - 0x000200f8,0x00001038,0x000700f5,0x0000005d,0x0000103c,0x00001036,0x00001013,0x0000103b, - 0x00001037,0x000300f7,0x0000103e,0x00000000,0x000400fa,0x0000103c,0x0000103d,0x0000103e, - 0x000200f8,0x0000103d,0x00050041,0x000001d7,0x0000103f,0x00001030,0x000000c2,0x0004003d, - 0x0000005e,0x00001040,0x0000103f,0x00050041,0x000001d7,0x00001041,0x0000102b,0x000000c2, - 0x0004003d,0x0000005e,0x00001042,0x00001041,0x000500b1,0x0000005d,0x00001043,0x00001040, - 0x00001042,0x000200f9,0x0000103e,0x000200f8,0x0000103e,0x000700f5,0x0000005d,0x00001044, - 0x0000103c,0x00001038,0x00001043,0x0000103d,0x000300f7,0x00001046,0x00000000,0x000400fa, - 0x00001044,0x00001045,0x00001046,0x000200f8,0x00001045,0x00050041,0x000001d7,0x00001047, - 0x00001030,0x000000ba,0x0004003d,0x0000005e,0x00001048,0x00001047,0x00050041,0x000001d7, - 0x00001049,0x0000102b,0x000000ba,0x0004003d,0x0000005e,0x0000104a,0x00001049,0x000500b1, - 0x0000005d,0x0000104b,0x00001048,0x0000104a,0x000200f9,0x00001046,0x000200f8,0x00001046, - 0x000700f5,0x0000005d,0x0000104c,0x00001044,0x0000103e,0x0000104b,0x00001045,0x000300f7, - 0x0000104e,0x00000000,0x000400fa,0x0000104c,0x0000104d,0x0000104e,0x000200f8,0x0000104d, - 0x00050041,0x000001d7,0x00001050,0x00001030,0x000000ba,0x0004003d,0x0000005e,0x00001051, - 0x00001050,0x00050041,0x000001d7,0x00001052,0x0000102b,0x000000c2,0x0004003d,0x0000005e, - 0x00001053,0x00001052,0x00050084,0x0000005e,0x00001054,0x00001051,0x00001053,0x00050041, - 0x000001d7,0x00001055,0x00001030,0x000000c2,0x0004003d,0x0000005e,0x00001056,0x00001055, - 0x00050080,0x0000005e,0x00001057,0x00001054,0x00001056,0x0003003e,0x0000104f,0x00001057, - 0x0004003d,0x0000005e,0x0000105d,0x0000104f,0x00060041,0x000000ea,0x0000105e,0x0000105c, - 0x000001d9,0x0000105d,0x0004003d,0x00000030,0x0000105f,0x0000105e,0x0008004f,0x00000010, - 0x00001060,0x0000105f,0x0000105f,0x00000000,0x00000001,0x00000002,0x0004003d,0x0000005e, - 0x00001061,0x000007a2,0x00060041,0x000000ea,0x00001062,0x00000ad4,0x000001d9,0x00001061, - 0x0004003d,0x00000030,0x00001063,0x00001062,0x0008004f,0x00000010,0x00001064,0x00001063, - 0x00001063,0x00000000,0x00000001,0x00000002,0x00050083,0x00000010,0x00001065,0x00001060, - 0x00001064,0x0003003e,0x00001058,0x00001065,0x0004003d,0x0000005e,0x00001066,0x0000104f, - 0x00070041,0x000000f3,0x00001067,0x0000105c,0x000001d9,0x00001066,0x000000f2,0x0004003d, - 0x00000008,0x00001068,0x00001067,0x000500b8,0x0000005d,0x00001069,0x00001068,0x00000c8d, - 0x000300f7,0x0000106b,0x00000000,0x000400fa,0x00001069,0x0000106a,0x0000106b,0x000200f8, - 0x0000106a,0x0004003d,0x00000010,0x0000106c,0x00001058,0x0004003d,0x00000010,0x0000106d, - 0x00001058,0x00050094,0x00000008,0x0000106e,0x0000106c,0x0000106d,0x0004003d,0x0000005e, - 0x00001071,0x000007a2,0x00060041,0x000000ea,0x00001072,0x00000ad4,0x000001d9,0x00001071, - 0x0004003d,0x00000030,0x00001073,0x00001072,0x0008004f,0x00000010,0x00001074,0x00001073, - 0x00001073,0x00000000,0x00000001,0x00000002,0x0004003d,0x0000005e,0x00001075,0x000007a2, - 0x00060041,0x000000ea,0x00001076,0x00000ad4,0x000001d9,0x00001075,0x0004003d,0x00000030, - 0x00001077,0x00001076,0x0008004f,0x00000010,0x00001078,0x00001077,0x00001077,0x00000000, - 0x00000001,0x00000002,0x00050094,0x00000008,0x00001079,0x00001074,0x00001078,0x00050085, - 0x00000008,0x0000107a,0x00001070,0x00001079,0x0007000c,0x00000008,0x0000107b,0x00000001, - 0x00000028,0x0000106f,0x0000107a,0x000500b8,0x0000005d,0x0000107c,0x0000106e,0x0000107b, - 0x000200f9,0x0000106b,0x000200f8,0x0000106b,0x000700f5,0x0000005d,0x0000107d,0x00001069, - 0x0000104d,0x0000107c,0x0000106a,0x000300f7,0x0000107f,0x00000000,0x000400fa,0x0000107d, - 0x0000107e,0x0000107f,0x000200f8,0x0000107e,0x0004003d,0x0000005e,0x00001084,0x0000104f, - 0x00060041,0x000000ea,0x00001085,0x00001083,0x000001d9,0x00001084,0x0004003d,0x00000030, - 0x00001086,0x00001085,0x0003003e,0x00000fa2,0x00001086,0x0004003d,0x0000005e,0x0000108b, - 0x0000104f,0x00060041,0x000000ea,0x0000108c,0x0000108a,0x000001d9,0x0000108b,0x0004003d, - 0x00000030,0x0000108d,0x0000108c,0x0003003e,0x00000fa6,0x0000108d,0x00060041,0x00001092, - 0x00001093,0x00001091,0x000001d9,0x00000210,0x000700ea,0x00000006,0x00001094,0x00001093, - 0x000000ba,0x000000c2,0x000000ba,0x000200f9,0x0000107f,0x000200f8,0x0000107f,0x000200f9, - 0x0000104e,0x000200f8,0x0000104e,0x000200f9,0x00001014,0x000200f8,0x00001014,0x000200f9, - 0x00001003,0x000200f8,0x00001003,0x000200f9,0x00000ffd,0x000200f8,0x00000ffd,0x0004003d, - 0x00000030,0x00001095,0x00000f98,0x0008004f,0x00000010,0x00001096,0x00001095,0x00001095, - 0x00000000,0x00000001,0x00000002,0x0004003d,0x00000030,0x00001097,0x00000fa2,0x0008004f, - 0x00000010,0x00001098,0x00001097,0x00001097,0x00000000,0x00000001,0x00000002,0x00050081, - 0x00000010,0x00001099,0x00001098,0x00001096,0x00050041,0x0000002a,0x0000109a,0x00000fa2, - 0x000000c2,0x00050051,0x00000008,0x0000109b,0x00001099,0x00000000,0x0003003e,0x0000109a, - 0x0000109b,0x00050041,0x0000002a,0x0000109c,0x00000fa2,0x000000ba,0x00050051,0x00000008, - 0x0000109d,0x00001099,0x00000001,0x0003003e,0x0000109c,0x0000109d,0x00050041,0x0000002a, - 0x0000109e,0x00000fa2,0x00000137,0x00050051,0x00000008,0x0000109f,0x00001099,0x00000002, - 0x0003003e,0x0000109e,0x0000109f,0x00050041,0x0000002a,0x000010a0,0x00000fa2,0x000000f2, - 0x0004003d,0x00000008,0x000010a1,0x000010a0,0x00050081,0x00000008,0x000010a2,0x000010a1, - 0x000000dc,0x00050041,0x0000002a,0x000010a3,0x00000fa2,0x000000f2,0x0003003e,0x000010a3, - 0x000010a2,0x0004003d,0x0000005e,0x000010a4,0x000007a2,0x0004003d,0x00000030,0x000010a5, - 0x00000fa2,0x00060041,0x000000ea,0x000010a6,0x000007cb,0x000001d9,0x000010a4,0x0003003e, - 0x000010a6,0x000010a5,0x0004003d,0x00000030,0x000010a7,0x00000f98,0x0008004f,0x00000010, - 0x000010a8,0x000010a7,0x000010a7,0x00000000,0x00000001,0x00000002,0x0004003d,0x00000030, - 0x000010a9,0x00000f98,0x0008004f,0x00000010,0x000010aa,0x000010a9,0x000010a9,0x00000000, - 0x00000001,0x00000002,0x00050085,0x00000010,0x000010ab,0x000010a8,0x000010aa,0x0004003d, - 0x00000030,0x000010ac,0x00000fa6,0x0008004f,0x00000010,0x000010ad,0x000010ac,0x000010ac, - 0x00000000,0x00000001,0x00000002,0x00050081,0x00000010,0x000010ae,0x000010ad,0x000010ab, - 0x00050041,0x0000002a,0x000010af,0x00000fa6,0x000000c2,0x00050051,0x00000008,0x000010b0, - 0x000010ae,0x00000000,0x0003003e,0x000010af,0x000010b0,0x00050041,0x0000002a,0x000010b1, - 0x00000fa6,0x000000ba,0x00050051,0x00000008,0x000010b2,0x000010ae,0x00000001,0x0003003e, - 0x000010b1,0x000010b2,0x00050041,0x0000002a,0x000010b3,0x00000fa6,0x00000137,0x00050051, - 0x00000008,0x000010b4,0x000010ae,0x00000002,0x0003003e,0x000010b3,0x000010b4,0x00050041, - 0x0000002a,0x000010b5,0x00000fa6,0x000000f2,0x0004003d,0x00000008,0x000010b6,0x000010b5, - 0x00050081,0x00000008,0x000010b7,0x000010b6,0x000000dc,0x00050041,0x0000002a,0x000010b8, - 0x00000fa6,0x000000f2,0x0003003e,0x000010b8,0x000010b7,0x0004003d,0x0000005e,0x000010b9, - 0x000007a2,0x0004003d,0x00000030,0x000010ba,0x00000fa6,0x00060041,0x000000ea,0x000010bb, - 0x000007e8,0x000001d9,0x000010b9,0x0003003e,0x000010bb,0x000010ba,0x00060041,0x00001092, - 0x000010bc,0x00001091,0x000001d9,0x000001d9,0x000700ea,0x00000006,0x000010bd,0x000010bc, - 0x000000ba,0x000000c2,0x000000ba,0x000200f9,0x00000fa1,0x000200f8,0x000010be,0x0004003d, - 0x0000005e,0x000010bf,0x000007a2,0x0004003d,0x00000030,0x000010c0,0x00000f98,0x00060041, - 0x000000ea,0x000010c1,0x000007cb,0x000001d9,0x000010bf,0x0003003e,0x000010c1,0x000010c0, - 0x000200f9,0x00000fa1,0x000200f8,0x00000fa1,0x0004003d,0x00000810,0x000010c2,0x00000812, - 0x0004003d,0x00000774,0x000010c3,0x00000776,0x0004007c,0x00000815,0x000010c4,0x000010c3, - 0x0004003d,0x00000030,0x000010c5,0x00000f98,0x00070050,0x00000030,0x000010c6,0x000000cc, - 0x000000cc,0x000000cc,0x000000cc,0x00070050,0x00000030,0x000010c7,0x000000dc,0x000000dc, - 0x000000dc,0x000000dc,0x0008000c,0x00000030,0x000010c8,0x00000001,0x0000002b,0x000010c5, - 0x000010c6,0x000010c7,0x00040063,0x000010c2,0x000010c4,0x000010c8,0x000100fd,0x00010038, - 0x00050036,0x00000009,0x0000000e,0x00000000,0x0000000a,0x00030037,0x00000007,0x0000000b, - 0x00030037,0x00000007,0x0000000c,0x00030037,0x00000007,0x0000000d,0x000200f8,0x0000000f, - 0x0004003b,0x00000007,0x00000085,0x00000007,0x0004003d,0x00000006,0x00000086,0x0000000b, - 0x00050084,0x00000006,0x00000088,0x00000086,0x00000087,0x0004003d,0x00000006,0x00000089, - 0x0000000c,0x00050084,0x00000006,0x0000008b,0x00000089,0x0000008a,0x00050080,0x00000006, - 0x0000008c,0x00000088,0x0000008b,0x0004003d,0x00000006,0x0000008d,0x0000000d,0x00050084, - 0x00000006,0x0000008f,0x0000008d,0x0000008e,0x00050080,0x00000006,0x00000090,0x0000008c, - 0x0000008f,0x00050080,0x00000006,0x00000092,0x00000090,0x00000091,0x0003003e,0x00000085, - 0x00000092,0x0004003d,0x00000006,0x00000093,0x00000085,0x0004003d,0x00000006,0x00000094, - 0x00000085,0x000500c2,0x00000006,0x00000096,0x00000094,0x00000095,0x000500c6,0x00000006, - 0x00000097,0x00000093,0x00000096,0x00050084,0x00000006,0x00000099,0x00000097,0x00000098, - 0x0003003e,0x00000085,0x00000099,0x0004003d,0x00000006,0x0000009a,0x00000085,0x0004003d, - 0x00000006,0x0000009b,0x00000085,0x000500c2,0x00000006,0x0000009d,0x0000009b,0x0000009c, - 0x000500c6,0x00000006,0x0000009e,0x0000009a,0x0000009d,0x00050084,0x00000006,0x000000a0, - 0x0000009e,0x0000009f,0x0003003e,0x00000085,0x000000a0,0x0004003d,0x00000006,0x000000a1, - 0x00000085,0x000500c2,0x00000006,0x000000a2,0x000000a1,0x00000095,0x0004003d,0x00000006, - 0x000000a3,0x00000085,0x000500c6,0x00000006,0x000000a4,0x000000a3,0x000000a2,0x0003003e, - 0x00000085,0x000000a4,0x0004003d,0x00000006,0x000000a5,0x00000085,0x000500c7,0x00000006, - 0x000000a7,0x000000a5,0x000000a6,0x00040070,0x00000008,0x000000a8,0x000000a7,0x0004003d, - 0x00000006,0x000000a9,0x00000085,0x000500c2,0x00000006,0x000000aa,0x000000a9,0x00000095, - 0x000500c7,0x00000006,0x000000ab,0x000000aa,0x000000a6,0x00040070,0x00000008,0x000000ac, - 0x000000ab,0x00050050,0x00000009,0x000000ad,0x000000a8,0x000000ac,0x0005008e,0x00000009, - 0x000000af,0x000000ad,0x000000ae,0x000200fe,0x000000af,0x00010038,0x00050036,0x00000010, - 0x00000015,0x00000000,0x00000011,0x00030037,0x00000007,0x00000012,0x00030037,0x00000007, - 0x00000013,0x00030037,0x00000007,0x00000014,0x000200f8,0x00000016,0x0004003b,0x00000007, - 0x000000b2,0x00000007,0x0004003b,0x00000007,0x000000b4,0x00000007,0x0004003b,0x00000007, - 0x000000b6,0x00000007,0x0004003b,0x00000007,0x000000bc,0x00000007,0x0004003b,0x00000007, - 0x000000be,0x00000007,0x0004003b,0x00000007,0x000000c0,0x00000007,0x0004003d,0x00000006, - 0x000000b3,0x00000012,0x0003003e,0x000000b2,0x000000b3,0x0004003d,0x00000006,0x000000b5, - 0x00000013,0x0003003e,0x000000b4,0x000000b5,0x0004003d,0x00000006,0x000000b7,0x00000014, - 0x0003003e,0x000000b6,0x000000b7,0x00070039,0x00000009,0x000000b8,0x0000000e,0x000000b2, - 0x000000b4,0x000000b6,0x0004003d,0x00000006,0x000000b9,0x00000014,0x00050080,0x00000006, - 0x000000bb,0x000000b9,0x000000ba,0x0004003d,0x00000006,0x000000bd,0x00000012,0x0003003e, - 0x000000bc,0x000000bd,0x0004003d,0x00000006,0x000000bf,0x00000013,0x0003003e,0x000000be, - 0x000000bf,0x0003003e,0x000000c0,0x000000bb,0x00070039,0x00000009,0x000000c1,0x0000000e, - 0x000000bc,0x000000be,0x000000c0,0x00050051,0x00000008,0x000000c3,0x000000c1,0x00000000, - 0x00050051,0x00000008,0x000000c4,0x000000b8,0x00000000,0x00050051,0x00000008,0x000000c5, - 0x000000b8,0x00000001,0x00060050,0x00000010,0x000000c6,0x000000c4,0x000000c5,0x000000c3, - 0x000200fe,0x000000c6,0x00010038,0x00050036,0x00000010,0x0000001a,0x00000000,0x00000018, - 0x00030037,0x00000017,0x00000019,0x000200f8,0x0000001b,0x0004003b,0x0000002a,0x000000c9, - 0x00000007,0x0004003b,0x0000002a,0x000000cf,0x00000007,0x00050041,0x0000002a,0x000000ca, - 0x00000019,0x000000c2,0x0004003d,0x00000008,0x000000cb,0x000000ca,0x0007000c,0x00000008, - 0x000000cd,0x00000001,0x00000028,0x000000cb,0x000000cc,0x0006000c,0x00000008,0x000000ce, - 0x00000001,0x0000001f,0x000000cd,0x0003003e,0x000000c9,0x000000ce,0x00050041,0x0000002a, - 0x000000d1,0x00000019,0x000000ba,0x0004003d,0x00000008,0x000000d2,0x000000d1,0x00050085, - 0x00000008,0x000000d3,0x000000d0,0x000000d2,0x0003003e,0x000000cf,0x000000d3,0x0004003d, - 0x00000008,0x000000d4,0x000000c9,0x0004003d,0x00000008,0x000000d5,0x000000cf,0x0006000c, - 0x00000008,0x000000d6,0x00000001,0x0000000e,0x000000d5,0x00050085,0x00000008,0x000000d7, - 0x000000d4,0x000000d6,0x0004003d,0x00000008,0x000000d8,0x000000c9,0x0004003d,0x00000008, - 0x000000d9,0x000000cf,0x0006000c,0x00000008,0x000000da,0x00000001,0x0000000d,0x000000d9, - 0x00050085,0x00000008,0x000000db,0x000000d8,0x000000da,0x00050041,0x0000002a,0x000000dd, - 0x00000019,0x000000c2,0x0004003d,0x00000008,0x000000de,0x000000dd,0x00050083,0x00000008, - 0x000000df,0x000000dc,0x000000de,0x0007000c,0x00000008,0x000000e0,0x00000001,0x00000028, - 0x000000df,0x000000cc,0x0006000c,0x00000008,0x000000e1,0x00000001,0x0000001f,0x000000e0, - 0x00060050,0x00000010,0x000000e2,0x000000d7,0x000000db,0x000000e1,0x000200fe,0x000000e2, - 0x00010038,0x00050036,0x00000010,0x0000001d,0x00000000,0x0000001c,0x000200f8,0x0000001e, - 0x00050041,0x000000ea,0x000000eb,0x000000e8,0x000000e9,0x0004003d,0x00000030,0x000000ec, - 0x000000eb,0x0008004f,0x00000010,0x000000ed,0x000000ec,0x000000ec,0x00000001,0x00000002, - 0x00000003,0x0006000c,0x00000010,0x000000ee,0x00000001,0x00000045,0x000000ed,0x000200fe, - 0x000000ee,0x00010038,0x00050036,0x00000010,0x00000022,0x00000000,0x00000020,0x00030037, - 0x0000001f,0x00000021,0x000200f8,0x00000023,0x0004003b,0x0000002a,0x000000fa,0x00000007, - 0x0004003b,0x0000002a,0x00000100,0x00000007,0x0004003b,0x0000002a,0x00000104,0x00000007, - 0x0004003b,0x0000001f,0x00000107,0x00000007,0x0004003b,0x0000002a,0x0000010a,0x00000007, - 0x0004003b,0x0000001f,0x0000010c,0x00000007,0x0004003b,0x0000002a,0x00000114,0x00000007, - 0x0004003b,0x0000002a,0x00000128,0x00000007,0x0004003b,0x0000002a,0x0000013d,0x00000007, - 0x0004003b,0x0000002a,0x00000150,0x00000007,0x0004003b,0x0000002a,0x00000164,0x00000007, - 0x0004003b,0x0000002a,0x0000017a,0x00000007,0x0004003b,0x0000002a,0x0000018d,0x00000007, - 0x00060041,0x000000f3,0x000000f4,0x000000e8,0x000000f1,0x000000f2,0x0004003d,0x00000008, - 0x000000f5,0x000000f4,0x000500ba,0x0000005d,0x000000f7,0x000000f5,0x000000f6,0x000300f7, - 0x000000f9,0x00000000,0x000400fa,0x000000f7,0x000000f8,0x000000f9,0x000200f8,0x000000f8, - 0x00060041,0x000000f3,0x000000fc,0x000000e8,0x000000fb,0x000000c2,0x0004003d,0x00000008, - 0x000000fd,0x000000fc,0x0007000c,0x00000008,0x000000ff,0x00000001,0x00000028,0x000000fd, - 0x000000fe,0x0003003e,0x000000fa,0x000000ff,0x00060041,0x000000f3,0x00000102,0x000000e8, - 0x00000101,0x000000f2,0x0004003d,0x00000008,0x00000103,0x00000102,0x0003003e,0x00000100, - 0x00000103,0x00060041,0x000000f3,0x00000105,0x000000e8,0x00000095,0x000000f2,0x0004003d, - 0x00000008,0x00000106,0x00000105,0x0003003e,0x00000104,0x00000106,0x0004003d,0x00000010, - 0x00000108,0x00000021,0x0006000c,0x00000010,0x00000109,0x00000001,0x00000045,0x00000108, - 0x0003003e,0x00000107,0x00000109,0x0003003e,0x0000010a,0x0000010b,0x0003003e,0x0000010c, - 0x0000010d,0x00050041,0x0000002a,0x0000010e,0x00000107,0x000000c2,0x0004003d,0x00000008, - 0x0000010f,0x0000010e,0x000500ba,0x0000005d,0x00000111,0x0000010f,0x00000110,0x000300f7, - 0x00000113,0x00000000,0x000400fa,0x00000111,0x00000112,0x00000113,0x000200f8,0x00000112, - 0x0004003d,0x00000008,0x00000115,0x000000fa,0x00050041,0x0000002a,0x00000116,0x00000107, - 0x000000c2,0x0004003d,0x00000008,0x00000117,0x00000116,0x00050088,0x00000008,0x00000118, - 0x00000115,0x00000117,0x0003003e,0x00000114,0x00000118,0x0004003d,0x00000008,0x00000119, - 0x00000114,0x0004003d,0x00000008,0x0000011a,0x0000010a,0x000500b8,0x0000005d,0x0000011b, - 0x00000119,0x0000011a,0x000300f7,0x0000011d,0x00000000,0x000400fa,0x0000011b,0x0000011c, - 0x0000011d,0x000200f8,0x0000011c,0x0004003d,0x00000008,0x0000011e,0x00000114,0x0003003e, - 0x0000010a,0x0000011e,0x00050041,0x000000ea,0x0000011f,0x000000e8,0x000000f1,0x0004003d, - 0x00000030,0x00000120,0x0000011f,0x0008004f,0x00000010,0x00000121,0x00000120,0x00000120, - 0x00000000,0x00000001,0x00000002,0x0003003e,0x0000010c,0x00000121,0x000200f9,0x0000011d, - 0x000200f8,0x0000011d,0x000200f9,0x00000113,0x000200f8,0x00000113,0x00050041,0x0000002a, - 0x00000122,0x00000107,0x000000c2,0x0004003d,0x00000008,0x00000123,0x00000122,0x000500b8, - 0x0000005d,0x00000125,0x00000123,0x00000124,0x000300f7,0x00000127,0x00000000,0x000400fa, - 0x00000125,0x00000126,0x00000127,0x000200f8,0x00000126,0x0004003d,0x00000008,0x00000129, - 0x000000fa,0x0004007f,0x00000008,0x0000012a,0x00000129,0x00050041,0x0000002a,0x0000012b, - 0x00000107,0x000000c2,0x0004003d,0x00000008,0x0000012c,0x0000012b,0x00050088,0x00000008, - 0x0000012d,0x0000012a,0x0000012c,0x0003003e,0x00000128,0x0000012d,0x0004003d,0x00000008, - 0x0000012e,0x00000128,0x0004003d,0x00000008,0x0000012f,0x0000010a,0x000500b8,0x0000005d, - 0x00000130,0x0000012e,0x0000012f,0x000300f7,0x00000132,0x00000000,0x000400fa,0x00000130, - 0x00000131,0x00000132,0x000200f8,0x00000131,0x0004003d,0x00000008,0x00000133,0x00000128, - 0x0003003e,0x0000010a,0x00000133,0x00050041,0x000000ea,0x00000134,0x000000e8,0x000000f1, - 0x0004003d,0x00000030,0x00000135,0x00000134,0x0008004f,0x00000010,0x00000136,0x00000135, - 0x00000135,0x00000000,0x00000001,0x00000002,0x0003003e,0x0000010c,0x00000136,0x000200f9, - 0x00000132,0x000200f8,0x00000132,0x000200f9,0x00000127,0x000200f8,0x00000127,0x00050041, - 0x0000002a,0x00000138,0x00000107,0x00000137,0x0004003d,0x00000008,0x00000139,0x00000138, - 0x000500ba,0x0000005d,0x0000013a,0x00000139,0x00000110,0x000300f7,0x0000013c,0x00000000, - 0x000400fa,0x0000013a,0x0000013b,0x0000013c,0x000200f8,0x0000013b,0x0004003d,0x00000008, - 0x0000013e,0x000000fa,0x00050041,0x0000002a,0x0000013f,0x00000107,0x00000137,0x0004003d, - 0x00000008,0x00000140,0x0000013f,0x00050088,0x00000008,0x00000141,0x0000013e,0x00000140, - 0x0003003e,0x0000013d,0x00000141,0x0004003d,0x00000008,0x00000142,0x0000013d,0x0004003d, - 0x00000008,0x00000143,0x0000010a,0x000500b8,0x0000005d,0x00000144,0x00000142,0x00000143, - 0x000300f7,0x00000146,0x00000000,0x000400fa,0x00000144,0x00000145,0x00000146,0x000200f8, - 0x00000145,0x0004003d,0x00000008,0x00000147,0x0000013d,0x0003003e,0x0000010a,0x00000147, - 0x00050041,0x000000ea,0x00000148,0x000000e8,0x000000f1,0x0004003d,0x00000030,0x00000149, - 0x00000148,0x0008004f,0x00000010,0x0000014a,0x00000149,0x00000149,0x00000000,0x00000001, - 0x00000002,0x0003003e,0x0000010c,0x0000014a,0x000200f9,0x00000146,0x000200f8,0x00000146, - 0x000200f9,0x0000013c,0x000200f8,0x0000013c,0x00050041,0x0000002a,0x0000014b,0x00000107, - 0x00000137,0x0004003d,0x00000008,0x0000014c,0x0000014b,0x000500b8,0x0000005d,0x0000014d, - 0x0000014c,0x00000124,0x000300f7,0x0000014f,0x00000000,0x000400fa,0x0000014d,0x0000014e, - 0x0000014f,0x000200f8,0x0000014e,0x0004003d,0x00000008,0x00000151,0x000000fa,0x0004007f, - 0x00000008,0x00000152,0x00000151,0x00050041,0x0000002a,0x00000153,0x00000107,0x00000137, - 0x0004003d,0x00000008,0x00000154,0x00000153,0x00050088,0x00000008,0x00000155,0x00000152, - 0x00000154,0x0003003e,0x00000150,0x00000155,0x0004003d,0x00000008,0x00000156,0x00000150, - 0x0004003d,0x00000008,0x00000157,0x0000010a,0x000500b8,0x0000005d,0x00000158,0x00000156, - 0x00000157,0x000300f7,0x0000015a,0x00000000,0x000400fa,0x00000158,0x00000159,0x0000015a, - 0x000200f8,0x00000159,0x0004003d,0x00000008,0x0000015b,0x00000150,0x0003003e,0x0000010a, - 0x0000015b,0x00050041,0x000000ea,0x0000015c,0x000000e8,0x000000f1,0x0004003d,0x00000030, - 0x0000015d,0x0000015c,0x0008004f,0x00000010,0x0000015e,0x0000015d,0x0000015d,0x00000000, - 0x00000001,0x00000002,0x0003003e,0x0000010c,0x0000015e,0x000200f9,0x0000015a,0x000200f8, - 0x0000015a,0x000200f9,0x0000014f,0x000200f8,0x0000014f,0x00050041,0x0000002a,0x0000015f, - 0x00000107,0x000000ba,0x0004003d,0x00000008,0x00000160,0x0000015f,0x000500b8,0x0000005d, - 0x00000161,0x00000160,0x00000124,0x000300f7,0x00000163,0x00000000,0x000400fa,0x00000161, - 0x00000162,0x00000163,0x000200f8,0x00000162,0x0004003d,0x00000008,0x00000165,0x00000100, - 0x00050041,0x0000002a,0x00000166,0x00000107,0x000000ba,0x0004003d,0x00000008,0x00000167, - 0x00000166,0x00050088,0x00000008,0x00000168,0x00000165,0x00000167,0x0003003e,0x00000164, - 0x00000168,0x0004003d,0x00000008,0x00000169,0x00000164,0x000500be,0x0000005d,0x0000016a, - 0x00000169,0x000000cc,0x0004003d,0x00000008,0x0000016b,0x00000164,0x0004003d,0x00000008, - 0x0000016c,0x0000010a,0x000500b8,0x0000005d,0x0000016d,0x0000016b,0x0000016c,0x000500a7, - 0x0000005d,0x0000016e,0x0000016a,0x0000016d,0x000300f7,0x00000170,0x00000000,0x000400fa, - 0x0000016e,0x0000016f,0x00000170,0x000200f8,0x0000016f,0x0004003d,0x00000008,0x00000171, - 0x00000164,0x0003003e,0x0000010a,0x00000171,0x00050041,0x000000ea,0x00000172,0x000000e8, - 0x00000101,0x0004003d,0x00000030,0x00000173,0x00000172,0x0008004f,0x00000010,0x00000174, - 0x00000173,0x00000173,0x00000000,0x00000001,0x00000002,0x0003003e,0x0000010c,0x00000174, - 0x000200f9,0x00000170,0x000200f8,0x00000170,0x000200f9,0x00000163,0x000200f8,0x00000163, - 0x00050041,0x0000002a,0x00000175,0x00000107,0x000000ba,0x0004003d,0x00000008,0x00000176, - 0x00000175,0x000500ba,0x0000005d,0x00000177,0x00000176,0x00000110,0x000300f7,0x00000179, - 0x00000000,0x000400fa,0x00000177,0x00000178,0x00000179,0x000200f8,0x00000178,0x0004003d, - 0x00000008,0x0000017b,0x00000104,0x00050041,0x0000002a,0x0000017c,0x00000107,0x000000ba, - 0x0004003d,0x00000008,0x0000017d,0x0000017c,0x00050088,0x00000008,0x0000017e,0x0000017b, - 0x0000017d,0x0003003e,0x0000017a,0x0000017e,0x0004003d,0x00000008,0x0000017f,0x0000017a, - 0x000500be,0x0000005d,0x00000180,0x0000017f,0x000000cc,0x0004003d,0x00000008,0x00000181, - 0x0000017a,0x0004003d,0x00000008,0x00000182,0x0000010a,0x000500b8,0x0000005d,0x00000183, - 0x00000181,0x00000182,0x000500a7,0x0000005d,0x00000184,0x00000180,0x00000183,0x000300f7, - 0x00000186,0x00000000,0x000400fa,0x00000184,0x00000185,0x00000186,0x000200f8,0x00000185, - 0x0004003d,0x00000008,0x00000187,0x0000017a,0x0003003e,0x0000010a,0x00000187,0x00050041, - 0x000000ea,0x00000188,0x000000e8,0x00000095,0x0004003d,0x00000030,0x00000189,0x00000188, - 0x0008004f,0x00000010,0x0000018a,0x00000189,0x00000189,0x00000000,0x00000001,0x00000002, - 0x0003003e,0x0000010c,0x0000018a,0x000200f9,0x00000186,0x000200f8,0x00000186,0x000200f9, - 0x00000179,0x000200f8,0x00000179,0x0004003d,0x00000010,0x0000018b,0x0000010c,0x000200fe, - 0x0000018b,0x000200f8,0x000000f9,0x00050041,0x0000002a,0x0000018e,0x00000021,0x000000ba, - 0x0004003d,0x00000008,0x0000018f,0x0000018e,0x00050085,0x00000008,0x00000190,0x0000018f, - 0x000000f6,0x00050081,0x00000008,0x00000191,0x00000190,0x000000f6,0x0008000c,0x00000008, - 0x00000192,0x00000001,0x0000002b,0x00000191,0x000000cc,0x000000dc,0x0003003e,0x0000018d, - 0x00000192,0x00050041,0x000000ea,0x00000194,0x000000e8,0x00000193,0x0004003d,0x00000030, - 0x00000195,0x00000194,0x0008004f,0x00000010,0x00000196,0x00000195,0x00000195,0x00000000, - 0x00000001,0x00000002,0x00050041,0x000000ea,0x00000198,0x000000e8,0x00000197,0x0004003d, - 0x00000030,0x00000199,0x00000198,0x0008004f,0x00000010,0x0000019a,0x00000199,0x00000199, - 0x00000000,0x00000001,0x00000002,0x0004003d,0x00000008,0x0000019b,0x0000018d,0x00060050, - 0x00000010,0x0000019c,0x0000019b,0x0000019b,0x0000019b,0x0008000c,0x00000010,0x0000019d, - 0x00000001,0x0000002e,0x00000196,0x0000019a,0x0000019c,0x000200fe,0x0000019d,0x00010038, - 0x00050036,0x00000010,0x00000025,0x00000000,0x00000020,0x00030037,0x0000001f,0x00000024, - 0x000200f8,0x00000026,0x0004003b,0x0000001f,0x000001a0,0x00000007,0x0004003b,0x0000001f, - 0x000001a3,0x00000007,0x0004003b,0x0000001f,0x000001a4,0x00000007,0x0004003b,0x0000002a, - 0x000001aa,0x00000007,0x0004003b,0x0000001f,0x000001af,0x00000007,0x0004003d,0x00000010, - 0x000001a1,0x00000024,0x0006000c,0x00000010,0x000001a2,0x00000001,0x00000045,0x000001a1, - 0x0003003e,0x000001a0,0x000001a2,0x0004003d,0x00000010,0x000001a5,0x000001a0,0x0003003e, - 0x000001a4,0x000001a5,0x00050039,0x00000010,0x000001a6,0x00000022,0x000001a4,0x00060041, - 0x000000f3,0x000001a7,0x000000e8,0x000000e9,0x000000c2,0x0004003d,0x00000008,0x000001a8, - 0x000001a7,0x0005008e,0x00000010,0x000001a9,0x000001a6,0x000001a8,0x0003003e,0x000001a3, - 0x000001a9,0x0004003d,0x00000010,0x000001ab,0x000001a0,0x00040039,0x00000010,0x000001ac, - 0x0000001d,0x00050094,0x00000008,0x000001ad,0x000001ab,0x000001ac,0x0007000c,0x00000008, - 0x000001ae,0x00000001,0x00000028,0x000001ad,0x000000cc,0x0003003e,0x000001aa,0x000001ae, - 0x00050041,0x000000ea,0x000001b0,0x000000e8,0x0000009c,0x0004003d,0x00000030,0x000001b1, - 0x000001b0,0x0008004f,0x00000010,0x000001b2,0x000001b1,0x000001b1,0x00000000,0x00000001, - 0x00000002,0x0004003d,0x00000008,0x000001b3,0x000001aa,0x00060041,0x000000f3,0x000001b4, - 0x000000e8,0x0000009c,0x000000f2,0x0004003d,0x00000008,0x000001b5,0x000001b4,0x0007000c, - 0x00000008,0x000001b6,0x00000001,0x00000028,0x000001b5,0x000000dc,0x0007000c,0x00000008, - 0x000001b7,0x00000001,0x0000001a,0x000001b3,0x000001b6,0x0005008e,0x00000010,0x000001b8, - 0x000001b2,0x000001b7,0x0003003e,0x000001af,0x000001b8,0x0004003d,0x00000010,0x000001b9, - 0x000001a3,0x0004003d,0x00000010,0x000001ba,0x000001af,0x00060041,0x000000f3,0x000001bb, - 0x000000e8,0x000000e9,0x000000c2,0x0004003d,0x00000008,0x000001bc,0x000001bb,0x0005008e, - 0x00000010,0x000001bd,0x000001ba,0x000001bc,0x00050081,0x00000010,0x000001be,0x000001b9, - 0x000001bd,0x000200fe,0x000001be,0x00010038,0x00050036,0x00000010,0x00000028,0x00000000, - 0x00000020,0x00030037,0x0000001f,0x00000027,0x000200f8,0x00000029,0x0004003b,0x0000001f, - 0x000001c1,0x00000007,0x0004003b,0x0000001f,0x000001cc,0x00000007,0x0004003b,0x0000001f, - 0x000001d1,0x00000007,0x0004003b,0x0000002a,0x000001d5,0x00000007,0x0004003b,0x0000001f, - 0x000001d6,0x00000007,0x0004003b,0x000001d7,0x000001d8,0x00000007,0x0004003b,0x0000002a, - 0x000001e2,0x00000007,0x0004003b,0x0000002a,0x000001e9,0x00000007,0x0004003b,0x0000002a, - 0x000001f1,0x00000007,0x0004003b,0x0000001f,0x000001f8,0x00000007,0x0004003b,0x0000001f, - 0x0000020a,0x00000007,0x00050041,0x0000002a,0x000001c2,0x00000027,0x000000ba,0x0004003d, - 0x00000008,0x000001c3,0x000001c2,0x0006000c,0x00000008,0x000001c4,0x00000001,0x00000004, - 0x000001c3,0x000500b8,0x0000005d,0x000001c6,0x000001c4,0x000001c5,0x00060050,0x000001c9, - 0x000001ca,0x000001c6,0x000001c6,0x000001c6,0x000600a9,0x00000010,0x000001cb,0x000001ca, - 0x000001c7,0x000001c8,0x0003003e,0x000001c1,0x000001cb,0x0004003d,0x00000010,0x000001cd, - 0x000001c1,0x0004003d,0x00000010,0x000001ce,0x00000027,0x0007000c,0x00000010,0x000001cf, - 0x00000001,0x00000044,0x000001cd,0x000001ce,0x0006000c,0x00000010,0x000001d0,0x00000001, - 0x00000045,0x000001cf,0x0003003e,0x000001cc,0x000001d0,0x0004003d,0x00000010,0x000001d2, - 0x00000027,0x0004003d,0x00000010,0x000001d3,0x000001cc,0x0007000c,0x00000010,0x000001d4, - 0x00000001,0x00000044,0x000001d2,0x000001d3,0x0003003e,0x000001d1,0x000001d4,0x0003003e, - 0x000001d5,0x000000cc,0x0003003e,0x000001d6,0x0000010d,0x0003003e,0x000001d8,0x000001d9, - 0x000200f9,0x000001da,0x000200f8,0x000001da,0x000400f6,0x000001dc,0x000001dd,0x00000000, - 0x000200f9,0x000001de,0x000200f8,0x000001de,0x0004003d,0x0000005e,0x000001df,0x000001d8, - 0x000500b1,0x0000005d,0x000001e1,0x000001df,0x000001e0,0x000400fa,0x000001e1,0x000001db, - 0x000001dc,0x000200f8,0x000001db,0x0004003d,0x0000005e,0x000001e3,0x000001d8,0x0004006f, - 0x00000008,0x000001e4,0x000001e3,0x0004003d,0x00000008,0x000001e5,0x000001d5,0x00050081, - 0x00000008,0x000001e6,0x000001e4,0x000001e5,0x00050085,0x00000008,0x000001e8,0x000001e6, - 0x000001e7,0x0003003e,0x000001e2,0x000001e8,0x0004003d,0x0000005e,0x000001ea,0x000001d8, - 0x0004006f,0x00000008,0x000001eb,0x000001ea,0x00050081,0x00000008,0x000001ec,0x000001eb, - 0x000000f6,0x00050088,0x00000008,0x000001ee,0x000001ec,0x000001ed,0x0007000c,0x00000008, - 0x000001ef,0x00000001,0x00000028,0x000001ee,0x000000cc,0x0006000c,0x00000008,0x000001f0, - 0x00000001,0x0000001f,0x000001ef,0x0003003e,0x000001e9,0x000001f0,0x0004003d,0x00000008, - 0x000001f2,0x000001e9,0x0004003d,0x00000008,0x000001f3,0x000001e9,0x00050085,0x00000008, - 0x000001f4,0x000001f2,0x000001f3,0x00050083,0x00000008,0x000001f5,0x000000dc,0x000001f4, - 0x0007000c,0x00000008,0x000001f6,0x00000001,0x00000028,0x000001f5,0x000000cc,0x0006000c, - 0x00000008,0x000001f7,0x00000001,0x0000001f,0x000001f6,0x0003003e,0x000001f1,0x000001f7, - 0x0004003d,0x00000010,0x000001f9,0x000001cc,0x0004003d,0x00000008,0x000001fa,0x000001e2, - 0x0006000c,0x00000008,0x000001fb,0x00000001,0x0000000e,0x000001fa,0x0004003d,0x00000008, - 0x000001fc,0x000001f1,0x00050085,0x00000008,0x000001fd,0x000001fb,0x000001fc,0x0005008e, - 0x00000010,0x000001fe,0x000001f9,0x000001fd,0x0004003d,0x00000010,0x000001ff,0x000001d1, - 0x0004003d,0x00000008,0x00000200,0x000001e2,0x0006000c,0x00000008,0x00000201,0x00000001, - 0x0000000d,0x00000200,0x0004003d,0x00000008,0x00000202,0x000001f1,0x00050085,0x00000008, - 0x00000203,0x00000201,0x00000202,0x0005008e,0x00000010,0x00000204,0x000001ff,0x00000203, - 0x00050081,0x00000010,0x00000205,0x000001fe,0x00000204,0x0004003d,0x00000010,0x00000206, - 0x00000027,0x0004003d,0x00000008,0x00000207,0x000001e9,0x0005008e,0x00000010,0x00000208, - 0x00000206,0x00000207,0x00050081,0x00000010,0x00000209,0x00000205,0x00000208,0x0003003e, - 0x000001f8,0x00000209,0x0004003d,0x00000010,0x0000020b,0x000001f8,0x0003003e,0x0000020a, - 0x0000020b,0x00050039,0x00000010,0x0000020c,0x00000022,0x0000020a,0x0004003d,0x00000010, - 0x0000020d,0x000001d6,0x00050081,0x00000010,0x0000020e,0x0000020d,0x0000020c,0x0003003e, - 0x000001d6,0x0000020e,0x000200f9,0x000001dd,0x000200f8,0x000001dd,0x0004003d,0x0000005e, - 0x0000020f,0x000001d8,0x00050080,0x0000005e,0x00000211,0x0000020f,0x00000210,0x0003003e, - 0x000001d8,0x00000211,0x000200f9,0x000001da,0x000200f8,0x000001dc,0x0004003d,0x00000010, - 0x00000212,0x000001d6,0x00060050,0x00000010,0x00000213,0x000001ed,0x000001ed,0x000001ed, - 0x00050088,0x00000010,0x00000214,0x00000212,0x00000213,0x0005008e,0x00000010,0x00000216, - 0x00000214,0x00000215,0x00060041,0x000000f3,0x00000217,0x000000e8,0x000000e9,0x000000c2, - 0x0004003d,0x00000008,0x00000218,0x00000217,0x0005008e,0x00000010,0x00000219,0x00000216, - 0x00000218,0x000200fe,0x00000219,0x00010038,0x00050036,0x00000010,0x0000002e,0x00000000, - 0x0000002b,0x00030037,0x0000001f,0x0000002c,0x00030037,0x0000002a,0x0000002d,0x000200f8, - 0x0000002f,0x0004003b,0x0000001f,0x0000021c,0x00000007,0x0004003b,0x0000002a,0x0000021f, - 0x00000007,0x0004003b,0x0000001f,0x00000222,0x00000007,0x0004003b,0x0000001f,0x00000223, - 0x00000007,0x0004003b,0x0000002a,0x00000226,0x00000007,0x0004003d,0x00000010,0x0000021d, - 0x0000002c,0x0006000c,0x00000010,0x0000021e,0x00000001,0x00000045,0x0000021d,0x0003003e, - 0x0000021c,0x0000021e,0x0004003d,0x00000008,0x00000220,0x0000002d,0x0008000c,0x00000008, - 0x00000221,0x00000001,0x0000002b,0x00000220,0x000000cc,0x000000dc,0x0003003e,0x0000021f, - 0x00000221,0x0004003d,0x00000010,0x00000224,0x0000021c,0x0003003e,0x00000223,0x00000224, - 0x00050039,0x00000010,0x00000225,0x00000025,0x00000223,0x0003003e,0x00000222,0x00000225, - 0x0004003d,0x00000010,0x00000227,0x0000021c,0x00040039,0x00000010,0x00000228,0x0000001d, - 0x00050094,0x00000008,0x00000229,0x00000227,0x00000228,0x0007000c,0x00000008,0x0000022a, - 0x00000001,0x00000028,0x00000229,0x000000cc,0x0003003e,0x00000226,0x0000022a,0x0004003d, - 0x00000008,0x0000022d,0x00000226,0x00050085,0x00000008,0x0000022e,0x0000022c,0x0000022d, - 0x00050081,0x00000008,0x0000022f,0x0000022b,0x0000022e,0x0004003d,0x00000008,0x00000230, - 0x0000021f,0x0008000c,0x00000008,0x00000231,0x00000001,0x0000002e,0x000000dc,0x0000022f, - 0x00000230,0x0004003d,0x00000010,0x00000232,0x00000222,0x0005008e,0x00000010,0x00000233, - 0x00000232,0x00000231,0x0003003e,0x00000222,0x00000233,0x0004003d,0x00000010,0x00000234, - 0x00000222,0x000200fe,0x00000234,0x00010038,0x00050036,0x00000008,0x00000037,0x00000000, - 0x00000035,0x00030037,0x00000034,0x00000036,0x000200f8,0x00000038,0x00060041,0x0000002a, - 0x00000237,0x00000036,0x000000e9,0x000000ba,0x0004003d,0x00000008,0x00000238,0x00000237, - 0x00060041,0x0000002a,0x00000239,0x00000036,0x000000e9,0x000000ba,0x0004003d,0x00000008, - 0x0000023a,0x00000239,0x00050085,0x00000008,0x0000023b,0x00000238,0x0000023a,0x0008000c, - 0x00000008,0x0000023d,0x00000001,0x0000002b,0x0000023b,0x0000023c,0x000000dc,0x000200fe, - 0x0000023d,0x00010038,0x00050036,0x00000010,0x0000003b,0x00000000,0x00000039,0x00030037, - 0x00000034,0x0000003a,0x000200f8,0x0000003c,0x00050041,0x00000242,0x00000243,0x0000003a, - 0x000001d9,0x0004003d,0x00000030,0x00000244,0x00000243,0x0008004f,0x00000010,0x00000245, - 0x00000244,0x00000244,0x00000000,0x00000001,0x00000002,0x00060041,0x0000002a,0x00000246, - 0x0000003a,0x000000e9,0x000000c2,0x0004003d,0x00000008,0x00000247,0x00000246,0x0008000c, - 0x00000008,0x00000248,0x00000001,0x0000002b,0x00000247,0x000000cc,0x000000dc,0x00060050, - 0x00000010,0x00000249,0x00000248,0x00000248,0x00000248,0x0008000c,0x00000010,0x0000024a, - 0x00000001,0x0000002e,0x00000241,0x00000245,0x00000249,0x000200fe,0x0000024a,0x00010038, - 0x00050036,0x00000008,0x00000040,0x00000000,0x0000003d,0x00030037,0x0000002a,0x0000003e, - 0x00030037,0x0000002a,0x0000003f,0x000200f8,0x00000041,0x0004003b,0x0000002a,0x0000024d, - 0x00000007,0x0004003b,0x0000002a,0x00000251,0x00000007,0x0004003d,0x00000008,0x0000024e, - 0x0000003f,0x0004003d,0x00000008,0x0000024f,0x0000003f,0x00050085,0x00000008,0x00000250, - 0x0000024e,0x0000024f,0x0003003e,0x0000024d,0x00000250,0x0004003d,0x00000008,0x00000252, - 0x0000003e,0x0004003d,0x00000008,0x00000253,0x0000003e,0x00050085,0x00000008,0x00000254, - 0x00000252,0x00000253,0x0004003d,0x00000008,0x00000255,0x0000024d,0x00050083,0x00000008, - 0x00000256,0x00000255,0x000000dc,0x00050085,0x00000008,0x00000257,0x00000254,0x00000256, - 0x00050081,0x00000008,0x00000258,0x00000257,0x000000dc,0x0003003e,0x00000251,0x00000258, - 0x0004003d,0x00000008,0x00000259,0x0000024d,0x0004003d,0x00000008,0x0000025a,0x00000251, - 0x00050085,0x00000008,0x0000025b,0x00000215,0x0000025a,0x0004003d,0x00000008,0x0000025c, - 0x00000251,0x00050085,0x00000008,0x0000025d,0x0000025b,0x0000025c,0x0007000c,0x00000008, - 0x0000025f,0x00000001,0x00000028,0x0000025d,0x0000025e,0x00050088,0x00000008,0x00000260, - 0x00000259,0x0000025f,0x000200fe,0x00000260,0x00010038,0x00050036,0x00000008,0x00000044, - 0x00000000,0x0000003d,0x00030037,0x0000002a,0x00000042,0x00030037,0x0000002a,0x00000043, - 0x000200f8,0x00000045,0x0004003b,0x0000002a,0x00000263,0x00000007,0x0004003d,0x00000008, - 0x00000264,0x00000043,0x00050085,0x00000008,0x00000265,0x00000264,0x000000f6,0x0003003e, - 0x00000263,0x00000265,0x0004003d,0x00000008,0x00000266,0x00000042,0x0004003d,0x00000008, - 0x00000267,0x00000042,0x0004003d,0x00000008,0x00000268,0x00000263,0x00050083,0x00000008, - 0x00000269,0x000000dc,0x00000268,0x00050085,0x00000008,0x0000026a,0x00000267,0x00000269, - 0x0004003d,0x00000008,0x0000026b,0x00000263,0x00050081,0x00000008,0x0000026c,0x0000026a, - 0x0000026b,0x0007000c,0x00000008,0x0000026d,0x00000001,0x00000028,0x0000026c,0x0000025e, - 0x00050088,0x00000008,0x0000026e,0x00000266,0x0000026d,0x000200fe,0x0000026e,0x00010038, - 0x00050036,0x00000008,0x0000004a,0x00000000,0x00000046,0x00030037,0x0000002a,0x00000047, - 0x00030037,0x0000002a,0x00000048,0x00030037,0x0000002a,0x00000049,0x000200f8,0x0000004b, - 0x0004003b,0x0000002a,0x00000271,0x00000007,0x0004003b,0x0000002a,0x00000273,0x00000007, - 0x0004003b,0x0000002a,0x00000276,0x00000007,0x0004003b,0x0000002a,0x00000278,0x00000007, - 0x0004003d,0x00000008,0x00000272,0x00000047,0x0003003e,0x00000271,0x00000272,0x0004003d, - 0x00000008,0x00000274,0x00000049,0x0003003e,0x00000273,0x00000274,0x00060039,0x00000008, - 0x00000275,0x00000044,0x00000271,0x00000273,0x0004003d,0x00000008,0x00000277,0x00000048, - 0x0003003e,0x00000276,0x00000277,0x0004003d,0x00000008,0x00000279,0x00000049,0x0003003e, - 0x00000278,0x00000279,0x00060039,0x00000008,0x0000027a,0x00000044,0x00000276,0x00000278, - 0x00050085,0x00000008,0x0000027b,0x00000275,0x0000027a,0x000200fe,0x0000027b,0x00010038, - 0x00050036,0x00000010,0x0000004f,0x00000000,0x0000004c,0x00030037,0x0000002a,0x0000004d, - 0x00030037,0x0000001f,0x0000004e,0x000200f8,0x00000050,0x0004003d,0x00000010,0x0000027e, - 0x0000004e,0x0004003d,0x00000010,0x00000280,0x0000004e,0x00050083,0x00000010,0x00000281, - 0x0000027f,0x00000280,0x0004003d,0x00000008,0x00000282,0x0000004d,0x00050083,0x00000008, - 0x00000283,0x000000dc,0x00000282,0x0008000c,0x00000008,0x00000284,0x00000001,0x0000002b, - 0x00000283,0x000000cc,0x000000dc,0x0007000c,0x00000008,0x00000286,0x00000001,0x0000001a, - 0x00000284,0x00000285,0x0005008e,0x00000010,0x00000287,0x00000281,0x00000286,0x00050081, - 0x00000010,0x00000288,0x0000027e,0x00000287,0x000200fe,0x00000288,0x00010038,0x00050036, - 0x00000010,0x00000056,0x00000000,0x00000051,0x00030037,0x0000001f,0x00000052,0x00030037, - 0x0000001f,0x00000053,0x00030037,0x0000001f,0x00000054,0x00030037,0x00000034,0x00000055, - 0x000200f8,0x00000057,0x0004003b,0x0000001f,0x0000028b,0x00000007,0x0004003b,0x0000002a, - 0x00000290,0x00000007,0x0004003b,0x0000002a,0x00000296,0x00000007,0x0004003b,0x0000002a, - 0x0000029b,0x00000007,0x0004003b,0x0000002a,0x000002a0,0x00000007,0x0004003b,0x0000002a, - 0x000002a5,0x00000007,0x0004003b,0x00000034,0x000002a6,0x00000007,0x0004003b,0x0000001f, - 0x000002a9,0x00000007,0x0004003b,0x00000034,0x000002aa,0x00000007,0x0004003b,0x0000002a, - 0x000002ad,0x00000007,0x0004003b,0x0000001f,0x000002af,0x00000007,0x0004003b,0x0000001f, - 0x000002b1,0x00000007,0x0004003b,0x0000002a,0x000002c1,0x00000007,0x0004003b,0x0000002a, - 0x000002c3,0x00000007,0x0004003b,0x0000002a,0x000002c7,0x00000007,0x0004003b,0x0000002a, - 0x000002c9,0x00000007,0x0004003b,0x0000002a,0x000002cb,0x00000007,0x0004003d,0x00000010, - 0x0000028c,0x00000053,0x0004003d,0x00000010,0x0000028d,0x00000054,0x00050081,0x00000010, - 0x0000028e,0x0000028c,0x0000028d,0x0006000c,0x00000010,0x0000028f,0x00000001,0x00000045, - 0x0000028e,0x0003003e,0x0000028b,0x0000028f,0x0004003d,0x00000010,0x00000291,0x00000052, - 0x0004003d,0x00000010,0x00000292,0x00000053,0x00050094,0x00000008,0x00000293,0x00000291, - 0x00000292,0x0007000c,0x00000008,0x00000295,0x00000001,0x00000028,0x00000293,0x00000294, - 0x0003003e,0x00000290,0x00000295,0x0004003d,0x00000010,0x00000297,0x00000052,0x0004003d, - 0x00000010,0x00000298,0x00000054,0x00050094,0x00000008,0x00000299,0x00000297,0x00000298, - 0x0007000c,0x00000008,0x0000029a,0x00000001,0x00000028,0x00000299,0x000000cc,0x0003003e, - 0x00000296,0x0000029a,0x0004003d,0x00000010,0x0000029c,0x00000052,0x0004003d,0x00000010, - 0x0000029d,0x0000028b,0x00050094,0x00000008,0x0000029e,0x0000029c,0x0000029d,0x0007000c, - 0x00000008,0x0000029f,0x00000001,0x00000028,0x0000029e,0x000000cc,0x0003003e,0x0000029b, - 0x0000029f,0x0004003d,0x00000010,0x000002a1,0x00000053,0x0004003d,0x00000010,0x000002a2, - 0x0000028b,0x00050094,0x00000008,0x000002a3,0x000002a1,0x000002a2,0x0007000c,0x00000008, - 0x000002a4,0x00000001,0x00000028,0x000002a3,0x000000cc,0x0003003e,0x000002a0,0x000002a4, - 0x0004003d,0x00000033,0x000002a7,0x00000055,0x0003003e,0x000002a6,0x000002a7,0x00050039, - 0x00000008,0x000002a8,0x00000037,0x000002a6,0x0003003e,0x000002a5,0x000002a8,0x0004003d, - 0x00000033,0x000002ab,0x00000055,0x0003003e,0x000002aa,0x000002ab,0x00050039,0x00000010, - 0x000002ac,0x0000003b,0x000002aa,0x0004003d,0x00000008,0x000002ae,0x000002a0,0x0003003e, - 0x000002ad,0x000002ae,0x0003003e,0x000002af,0x000002ac,0x00060039,0x00000010,0x000002b0, - 0x0000004f,0x000002ad,0x000002af,0x0003003e,0x000002a9,0x000002b0,0x0004003d,0x00000010, - 0x000002b2,0x000002a9,0x00050083,0x00000010,0x000002b3,0x0000027f,0x000002b2,0x00060041, - 0x0000002a,0x000002b4,0x00000055,0x000000e9,0x000000c2,0x0004003d,0x00000008,0x000002b5, - 0x000002b4,0x0008000c,0x00000008,0x000002b6,0x00000001,0x0000002b,0x000002b5,0x000000cc, - 0x000000dc,0x00050083,0x00000008,0x000002b7,0x000000dc,0x000002b6,0x0005008e,0x00000010, - 0x000002b8,0x000002b3,0x000002b7,0x0003003e,0x000002b1,0x000002b8,0x0004003d,0x00000010, - 0x000002b9,0x000002b1,0x00050041,0x00000242,0x000002ba,0x00000055,0x000001d9,0x0004003d, - 0x00000030,0x000002bb,0x000002ba,0x0008004f,0x00000010,0x000002bc,0x000002bb,0x000002bb, - 0x00000000,0x00000001,0x00000002,0x00050085,0x00000010,0x000002bd,0x000002b9,0x000002bc, - 0x00060050,0x00000010,0x000002be,0x00000215,0x00000215,0x00000215,0x00050088,0x00000010, - 0x000002bf,0x000002bd,0x000002be,0x0004003d,0x00000010,0x000002c0,0x000002a9,0x0004003d, - 0x00000008,0x000002c2,0x0000029b,0x0003003e,0x000002c1,0x000002c2,0x0004003d,0x00000008, - 0x000002c4,0x000002a5,0x0003003e,0x000002c3,0x000002c4,0x00060039,0x00000008,0x000002c5, - 0x00000040,0x000002c1,0x000002c3,0x0005008e,0x00000010,0x000002c6,0x000002c0,0x000002c5, - 0x0004003d,0x00000008,0x000002c8,0x00000290,0x0003003e,0x000002c7,0x000002c8,0x0004003d, - 0x00000008,0x000002ca,0x00000296,0x0003003e,0x000002c9,0x000002ca,0x0004003d,0x00000008, - 0x000002cc,0x000002a5,0x0003003e,0x000002cb,0x000002cc,0x00070039,0x00000008,0x000002cd, - 0x0000004a,0x000002c7,0x000002c9,0x000002cb,0x0005008e,0x00000010,0x000002ce,0x000002c6, - 0x000002cd,0x0004003d,0x00000008,0x000002cf,0x00000290,0x00050085,0x00000008,0x000002d0, - 0x000001ed,0x000002cf,0x0004003d,0x00000008,0x000002d1,0x00000296,0x00050085,0x00000008, - 0x000002d2,0x000002d0,0x000002d1,0x0007000c,0x00000008,0x000002d3,0x00000001,0x00000028, - 0x000002d2,0x00000294,0x00060050,0x00000010,0x000002d4,0x000002d3,0x000002d3,0x000002d3, - 0x00050088,0x00000010,0x000002d5,0x000002ce,0x000002d4,0x00050081,0x00000010,0x000002d6, - 0x000002bf,0x000002d5,0x000200fe,0x000002d6,0x00010038,0x00050036,0x00000010,0x0000005b, - 0x00000000,0x00000058,0x00030037,0x00000017,0x00000059,0x00030037,0x0000002a,0x0000005a, - 0x000200f8,0x0000005c,0x0004003b,0x0000002a,0x000002d9,0x00000007,0x0004003b,0x0000002a, - 0x000002dd,0x00000007,0x0004003b,0x0000002a,0x000002ec,0x00000007,0x00050041,0x0000002a, - 0x000002da,0x00000059,0x000000ba,0x0004003d,0x00000008,0x000002db,0x000002da,0x00050085, - 0x00000008,0x000002dc,0x000000d0,0x000002db,0x0003003e,0x000002d9,0x000002dc,0x00050041, - 0x0000002a,0x000002de,0x00000059,0x000000c2,0x0004003d,0x00000008,0x000002df,0x000002de, - 0x00050083,0x00000008,0x000002e0,0x000000dc,0x000002df,0x0004003d,0x00000008,0x000002e1, - 0x0000005a,0x0004003d,0x00000008,0x000002e2,0x0000005a,0x00050085,0x00000008,0x000002e3, - 0x000002e1,0x000002e2,0x00050083,0x00000008,0x000002e4,0x000002e3,0x000000dc,0x00050041, - 0x0000002a,0x000002e5,0x00000059,0x000000c2,0x0004003d,0x00000008,0x000002e6,0x000002e5, - 0x00050085,0x00000008,0x000002e7,0x000002e4,0x000002e6,0x00050081,0x00000008,0x000002e8, - 0x000000dc,0x000002e7,0x00050088,0x00000008,0x000002e9,0x000002e0,0x000002e8,0x0007000c, - 0x00000008,0x000002ea,0x00000001,0x00000028,0x000002e9,0x000000cc,0x0006000c,0x00000008, - 0x000002eb,0x00000001,0x0000001f,0x000002ea,0x0003003e,0x000002dd,0x000002eb,0x0004003d, - 0x00000008,0x000002ed,0x000002dd,0x0004003d,0x00000008,0x000002ee,0x000002dd,0x00050085, - 0x00000008,0x000002ef,0x000002ed,0x000002ee,0x00050083,0x00000008,0x000002f0,0x000000dc, - 0x000002ef,0x0007000c,0x00000008,0x000002f1,0x00000001,0x00000028,0x000002f0,0x000000cc, - 0x0006000c,0x00000008,0x000002f2,0x00000001,0x0000001f,0x000002f1,0x0003003e,0x000002ec, - 0x000002f2,0x0004003d,0x00000008,0x000002f3,0x000002ec,0x0004003d,0x00000008,0x000002f4, - 0x000002d9,0x0006000c,0x00000008,0x000002f5,0x00000001,0x0000000e,0x000002f4,0x00050085, - 0x00000008,0x000002f6,0x000002f3,0x000002f5,0x0004003d,0x00000008,0x000002f7,0x000002ec, - 0x0004003d,0x00000008,0x000002f8,0x000002d9,0x0006000c,0x00000008,0x000002f9,0x00000001, - 0x0000000d,0x000002f8,0x00050085,0x00000008,0x000002fa,0x000002f7,0x000002f9,0x0004003d, - 0x00000008,0x000002fb,0x000002dd,0x00060050,0x00000010,0x000002fc,0x000002f6,0x000002fa, - 0x000002fb,0x000200fe,0x000002fc,0x00010038,0x00050036,0x0000005f,0x00000064,0x00000000, - 0x00000060,0x00030037,0x0000001f,0x00000061,0x00030037,0x0000001f,0x00000062,0x00030037, - 0x0000002a,0x00000063,0x000200f8,0x00000065,0x0004003b,0x00000310,0x00000311,0x00000007, - 0x0004003b,0x00000034,0x00000332,0x00000007,0x0004003b,0x00000007,0x000003c3,0x00000007, - 0x0004003b,0x00000007,0x000003c6,0x00000007,0x0004003b,0x0000001f,0x000003cc,0x00000007, - 0x0004003b,0x000003e1,0x000003e2,0x00000007,0x0004003b,0x0000001f,0x000003f4,0x00000007, - 0x0004003d,0x00000302,0x00000305,0x00000304,0x0004003d,0x00000010,0x00000307,0x00000061, - 0x0004003d,0x00000010,0x00000308,0x00000062,0x0004003d,0x00000008,0x00000309,0x00000063, - 0x00091179,0x00000301,0x00000305,0x000000ba,0x00000306,0x00000307,0x0000023c,0x00000308, - 0x00000309,0x000200f9,0x0000030a,0x000200f8,0x0000030a,0x000400f6,0x0000030c,0x0000030d, - 0x00000000,0x000200f9,0x0000030e,0x000200f8,0x0000030e,0x0004117d,0x0000005d,0x0000030f, - 0x00000301,0x000400fa,0x0000030f,0x0000030b,0x0000030c,0x000200f8,0x0000030b,0x000200f9, - 0x0000030d,0x000200f8,0x0000030d,0x000200f9,0x0000030a,0x000200f8,0x0000030c,0x0005117f, - 0x00000006,0x00000313,0x00000301,0x00000210,0x000500aa,0x0000005d,0x00000314,0x00000313, - 0x000000ba,0x00050041,0x00000315,0x00000316,0x00000311,0x000001d9,0x0003003e,0x00000316, - 0x00000314,0x00050041,0x0000002a,0x00000318,0x00000311,0x00000210,0x0003003e,0x00000318, - 0x00000317,0x00050041,0x0000001f,0x0000031a,0x00000311,0x00000319,0x0003003e,0x0000031a, - 0x0000010d,0x00050041,0x0000001f,0x0000031c,0x00000311,0x0000031b,0x0003003e,0x0000031c, - 0x0000010d,0x00050041,0x000001d7,0x0000031d,0x00000311,0x000001e0,0x0003003e,0x0000031d, - 0x000001d9,0x00050041,0x00000315,0x0000031e,0x00000311,0x000001d9,0x0004003d,0x0000005d, - 0x0000031f,0x0000031e,0x000400a8,0x0000005d,0x00000320,0x0000031f,0x000300f7,0x00000322, - 0x00000000,0x000400fa,0x00000320,0x00000321,0x00000322,0x000200f8,0x00000321,0x0004003d, - 0x0000005f,0x00000323,0x00000311,0x000200fe,0x00000323,0x000200f8,0x00000322,0x00051782, - 0x00000008,0x00000325,0x00000301,0x00000210,0x00050041,0x0000002a,0x00000326,0x00000311, - 0x00000210,0x0003003e,0x00000326,0x00000325,0x0004003d,0x00000010,0x00000327,0x00000061, - 0x0004003d,0x00000010,0x00000328,0x00000062,0x00050041,0x0000002a,0x00000329,0x00000311, - 0x00000210,0x0004003d,0x00000008,0x0000032a,0x00000329,0x0005008e,0x00000010,0x0000032b, - 0x00000328,0x0000032a,0x00050081,0x00000010,0x0000032c,0x00000327,0x0000032b,0x00050041, - 0x0000001f,0x0000032d,0x00000311,0x00000319,0x0003003e,0x0000032d,0x0000032c,0x00051783, - 0x0000005e,0x0000032e,0x00000301,0x00000210,0x00050041,0x000001d7,0x0000032f,0x00000311, - 0x000001e0,0x0003003e,0x0000032f,0x0000032e,0x00051787,0x0000005e,0x00000330,0x00000301, - 0x00000210,0x00050041,0x000001d7,0x00000331,0x00000311,0x00000197,0x0003003e,0x00000331, - 0x00000330,0x00050041,0x000001d7,0x0000033e,0x00000311,0x000001e0,0x0004003d,0x0000005e, - 0x0000033f,0x0000033e,0x00060041,0x00000340,0x00000341,0x0000033d,0x000001d9,0x0000033f, - 0x0004003d,0x00000339,0x00000342,0x00000341,0x00050051,0x00000030,0x00000343,0x00000342, - 0x00000000,0x00050041,0x00000242,0x00000344,0x00000332,0x000001d9,0x0003003e,0x00000344, - 0x00000343,0x00050051,0x00000030,0x00000345,0x00000342,0x00000001,0x00050041,0x00000242, - 0x00000346,0x00000332,0x00000210,0x0003003e,0x00000346,0x00000345,0x00050051,0x00000030, - 0x00000347,0x00000342,0x00000002,0x00050041,0x00000242,0x00000348,0x00000332,0x00000319, - 0x0003003e,0x00000348,0x00000347,0x00050051,0x00000030,0x00000349,0x00000342,0x00000003, - 0x00050041,0x00000242,0x0000034a,0x00000332,0x0000031b,0x0003003e,0x0000034a,0x00000349, - 0x00050051,0x00000030,0x0000034b,0x00000342,0x00000004,0x00050041,0x00000242,0x0000034c, - 0x00000332,0x000001e0,0x0003003e,0x0000034c,0x0000034b,0x00050051,0x00000333,0x0000034d, - 0x00000342,0x00000005,0x00050041,0x0000034e,0x0000034f,0x00000332,0x00000197,0x00050051, - 0x00000030,0x00000350,0x0000034d,0x00000000,0x00050041,0x00000242,0x00000351,0x0000034f, - 0x000001d9,0x0003003e,0x00000351,0x00000350,0x00050051,0x00000030,0x00000352,0x0000034d, - 0x00000001,0x00050041,0x00000242,0x00000353,0x0000034f,0x00000210,0x0003003e,0x00000353, - 0x00000352,0x00050051,0x00000030,0x00000354,0x0000034d,0x00000002,0x00050041,0x00000242, - 0x00000355,0x0000034f,0x00000319,0x0003003e,0x00000355,0x00000354,0x00050051,0x00000030, - 0x00000356,0x0000034d,0x00000003,0x00050041,0x00000242,0x00000357,0x0000034f,0x0000031b, - 0x0003003e,0x00000357,0x00000356,0x00050051,0x00000030,0x00000358,0x0000034d,0x00000004, - 0x00050041,0x00000242,0x00000359,0x0000034f,0x000001e0,0x0003003e,0x00000359,0x00000358, - 0x00050051,0x00000030,0x0000035a,0x0000034d,0x00000005,0x00050041,0x00000242,0x0000035b, - 0x0000034f,0x00000197,0x0003003e,0x0000035b,0x0000035a,0x00050051,0x00000030,0x0000035c, - 0x0000034d,0x00000006,0x00050041,0x00000242,0x0000035d,0x0000034f,0x00000193,0x0003003e, - 0x0000035d,0x0000035c,0x00050051,0x00000030,0x0000035e,0x0000034d,0x00000007,0x00050041, - 0x00000242,0x00000360,0x0000034f,0x0000035f,0x0003003e,0x00000360,0x0000035e,0x00050051, - 0x00000334,0x00000361,0x00000342,0x00000006,0x00050041,0x0000034e,0x00000362,0x00000332, - 0x00000193,0x00050051,0x00000030,0x00000363,0x00000361,0x00000000,0x00050041,0x00000242, - 0x00000364,0x00000362,0x000001d9,0x0003003e,0x00000364,0x00000363,0x00050051,0x00000030, - 0x00000365,0x00000361,0x00000001,0x00050041,0x00000242,0x00000366,0x00000362,0x00000210, - 0x0003003e,0x00000366,0x00000365,0x00050051,0x00000030,0x00000367,0x00000361,0x00000002, - 0x00050041,0x00000242,0x00000368,0x00000362,0x00000319,0x0003003e,0x00000368,0x00000367, - 0x00050051,0x00000030,0x00000369,0x00000361,0x00000003,0x00050041,0x00000242,0x0000036a, - 0x00000362,0x0000031b,0x0003003e,0x0000036a,0x00000369,0x00050051,0x00000030,0x0000036b, - 0x00000361,0x00000004,0x00050041,0x00000242,0x0000036c,0x00000362,0x000001e0,0x0003003e, - 0x0000036c,0x0000036b,0x00050051,0x00000030,0x0000036d,0x00000361,0x00000005,0x00050041, - 0x00000242,0x0000036e,0x00000362,0x00000197,0x0003003e,0x0000036e,0x0000036d,0x00050051, - 0x00000030,0x0000036f,0x00000361,0x00000006,0x00050041,0x00000242,0x00000370,0x00000362, - 0x00000193,0x0003003e,0x00000370,0x0000036f,0x00050051,0x00000030,0x00000371,0x00000361, - 0x00000007,0x00050041,0x00000242,0x00000372,0x00000362,0x0000035f,0x0003003e,0x00000372, - 0x00000371,0x00050051,0x00000335,0x00000373,0x00000342,0x00000007,0x00050041,0x0000034e, - 0x00000374,0x00000332,0x0000035f,0x00050051,0x00000030,0x00000375,0x00000373,0x00000000, - 0x00050041,0x00000242,0x00000376,0x00000374,0x000001d9,0x0003003e,0x00000376,0x00000375, - 0x00050051,0x00000030,0x00000377,0x00000373,0x00000001,0x00050041,0x00000242,0x00000378, - 0x00000374,0x00000210,0x0003003e,0x00000378,0x00000377,0x00050051,0x00000030,0x00000379, - 0x00000373,0x00000002,0x00050041,0x00000242,0x0000037a,0x00000374,0x00000319,0x0003003e, - 0x0000037a,0x00000379,0x00050051,0x00000030,0x0000037b,0x00000373,0x00000003,0x00050041, - 0x00000242,0x0000037c,0x00000374,0x0000031b,0x0003003e,0x0000037c,0x0000037b,0x00050051, - 0x00000030,0x0000037d,0x00000373,0x00000004,0x00050041,0x00000242,0x0000037e,0x00000374, - 0x000001e0,0x0003003e,0x0000037e,0x0000037d,0x00050051,0x00000030,0x0000037f,0x00000373, - 0x00000005,0x00050041,0x00000242,0x00000380,0x00000374,0x00000197,0x0003003e,0x00000380, - 0x0000037f,0x00050051,0x00000030,0x00000381,0x00000373,0x00000006,0x00050041,0x00000242, - 0x00000382,0x00000374,0x00000193,0x0003003e,0x00000382,0x00000381,0x00050051,0x00000030, - 0x00000383,0x00000373,0x00000007,0x00050041,0x00000242,0x00000384,0x00000374,0x0000035f, - 0x0003003e,0x00000384,0x00000383,0x00050051,0x00000336,0x00000385,0x00000342,0x00000008, - 0x00050041,0x0000034e,0x00000387,0x00000332,0x00000386,0x00050051,0x00000030,0x00000388, - 0x00000385,0x00000000,0x00050041,0x00000242,0x00000389,0x00000387,0x000001d9,0x0003003e, - 0x00000389,0x00000388,0x00050051,0x00000030,0x0000038a,0x00000385,0x00000001,0x00050041, - 0x00000242,0x0000038b,0x00000387,0x00000210,0x0003003e,0x0000038b,0x0000038a,0x00050051, - 0x00000030,0x0000038c,0x00000385,0x00000002,0x00050041,0x00000242,0x0000038d,0x00000387, - 0x00000319,0x0003003e,0x0000038d,0x0000038c,0x00050051,0x00000030,0x0000038e,0x00000385, - 0x00000003,0x00050041,0x00000242,0x0000038f,0x00000387,0x0000031b,0x0003003e,0x0000038f, - 0x0000038e,0x00050051,0x00000030,0x00000390,0x00000385,0x00000004,0x00050041,0x00000242, - 0x00000391,0x00000387,0x000001e0,0x0003003e,0x00000391,0x00000390,0x00050051,0x00000030, - 0x00000392,0x00000385,0x00000005,0x00050041,0x00000242,0x00000393,0x00000387,0x00000197, - 0x0003003e,0x00000393,0x00000392,0x00050051,0x00000030,0x00000394,0x00000385,0x00000006, - 0x00050041,0x00000242,0x00000395,0x00000387,0x00000193,0x0003003e,0x00000395,0x00000394, - 0x00050051,0x00000030,0x00000396,0x00000385,0x00000007,0x00050041,0x00000242,0x00000397, - 0x00000387,0x0000035f,0x0003003e,0x00000397,0x00000396,0x00050051,0x00000337,0x00000398, - 0x00000342,0x00000009,0x00050041,0x0000034e,0x0000039a,0x00000332,0x00000399,0x00050051, - 0x00000030,0x0000039b,0x00000398,0x00000000,0x00050041,0x00000242,0x0000039c,0x0000039a, - 0x000001d9,0x0003003e,0x0000039c,0x0000039b,0x00050051,0x00000030,0x0000039d,0x00000398, - 0x00000001,0x00050041,0x00000242,0x0000039e,0x0000039a,0x00000210,0x0003003e,0x0000039e, - 0x0000039d,0x00050051,0x00000030,0x0000039f,0x00000398,0x00000002,0x00050041,0x00000242, - 0x000003a0,0x0000039a,0x00000319,0x0003003e,0x000003a0,0x0000039f,0x00050051,0x00000030, - 0x000003a1,0x00000398,0x00000003,0x00050041,0x00000242,0x000003a2,0x0000039a,0x0000031b, - 0x0003003e,0x000003a2,0x000003a1,0x00050051,0x00000030,0x000003a3,0x00000398,0x00000004, - 0x00050041,0x00000242,0x000003a4,0x0000039a,0x000001e0,0x0003003e,0x000003a4,0x000003a3, - 0x00050051,0x00000030,0x000003a5,0x00000398,0x00000005,0x00050041,0x00000242,0x000003a6, - 0x0000039a,0x00000197,0x0003003e,0x000003a6,0x000003a5,0x00050051,0x00000030,0x000003a7, - 0x00000398,0x00000006,0x00050041,0x00000242,0x000003a8,0x0000039a,0x00000193,0x0003003e, - 0x000003a8,0x000003a7,0x00050051,0x00000030,0x000003a9,0x00000398,0x00000007,0x00050041, - 0x00000242,0x000003aa,0x0000039a,0x0000035f,0x0003003e,0x000003aa,0x000003a9,0x00050051, - 0x00000338,0x000003ab,0x00000342,0x0000000a,0x00050041,0x0000034e,0x000003ad,0x00000332, - 0x000003ac,0x00050051,0x00000030,0x000003ae,0x000003ab,0x00000000,0x00050041,0x00000242, - 0x000003af,0x000003ad,0x000001d9,0x0003003e,0x000003af,0x000003ae,0x00050051,0x00000030, - 0x000003b0,0x000003ab,0x00000001,0x00050041,0x00000242,0x000003b1,0x000003ad,0x00000210, - 0x0003003e,0x000003b1,0x000003b0,0x00050051,0x00000030,0x000003b2,0x000003ab,0x00000002, - 0x00050041,0x00000242,0x000003b3,0x000003ad,0x00000319,0x0003003e,0x000003b3,0x000003b2, - 0x00050051,0x00000030,0x000003b4,0x000003ab,0x00000003,0x00050041,0x00000242,0x000003b5, - 0x000003ad,0x0000031b,0x0003003e,0x000003b5,0x000003b4,0x00050051,0x00000030,0x000003b6, - 0x000003ab,0x00000004,0x00050041,0x00000242,0x000003b7,0x000003ad,0x000001e0,0x0003003e, - 0x000003b7,0x000003b6,0x00050051,0x00000030,0x000003b8,0x000003ab,0x00000005,0x00050041, - 0x00000242,0x000003b9,0x000003ad,0x00000197,0x0003003e,0x000003b9,0x000003b8,0x00050051, - 0x00000030,0x000003ba,0x000003ab,0x00000006,0x00050041,0x00000242,0x000003bb,0x000003ad, - 0x00000193,0x0003003e,0x000003bb,0x000003ba,0x00050051,0x00000030,0x000003bc,0x000003ab, - 0x00000007,0x00050041,0x00000242,0x000003bd,0x000003ad,0x0000035f,0x0003003e,0x000003bd, - 0x000003bc,0x00050051,0x00000030,0x000003be,0x00000342,0x0000000b,0x00050041,0x00000242, - 0x000003c0,0x00000332,0x000003bf,0x0003003e,0x000003c0,0x000003be,0x00050051,0x00000030, - 0x000003c1,0x00000342,0x0000000c,0x00050041,0x00000242,0x000003c2,0x00000332,0x000000e9, - 0x0003003e,0x000003c2,0x000003c1,0x00051787,0x0000005e,0x000003c4,0x00000301,0x00000210, - 0x0004007c,0x00000006,0x000003c5,0x000003c4,0x0003003e,0x000003c3,0x000003c5,0x00060041, - 0x0000002a,0x000003c7,0x00000332,0x000003bf,0x000000c2,0x0004003d,0x00000008,0x000003c8, - 0x000003c7,0x0004006d,0x00000006,0x000003c9,0x000003c8,0x0004003d,0x00000006,0x000003ca, - 0x000003c3,0x00050080,0x00000006,0x000003cb,0x000003c9,0x000003ca,0x0003003e,0x000003c6, - 0x000003cb,0x0004003d,0x00000006,0x000003d1,0x000003c6,0x00060041,0x000000ea,0x000003d2, - 0x000003d0,0x000001d9,0x000003d1,0x0004003d,0x00000030,0x000003d3,0x000003d2,0x0008004f, - 0x00000010,0x000003d4,0x000003d3,0x000003d3,0x00000000,0x00000001,0x00000002,0x0003003e, - 0x000003cc,0x000003d4,0x0004003d,0x00000010,0x000003d5,0x000003cc,0x0004003d,0x00000010, - 0x000003d6,0x000003cc,0x00050094,0x00000008,0x000003d7,0x000003d5,0x000003d6,0x000500b8, - 0x0000005d,0x000003d9,0x000003d7,0x000003d8,0x000300f7,0x000003db,0x00000000,0x000400fa, - 0x000003d9,0x000003da,0x000003db,0x000200f8,0x000003da,0x00050041,0x00000315,0x000003dd, - 0x00000311,0x000001d9,0x0003003e,0x000003dd,0x000003dc,0x0004003d,0x0000005f,0x000003de, - 0x00000311,0x000200fe,0x000003de,0x000200f8,0x000003db,0x0005178f,0x000003e0,0x000003e3, - 0x00000301,0x00000210,0x0003003e,0x000003e2,0x000003e3,0x0004003d,0x000003e0,0x000003e4, - 0x000003e2,0x00050051,0x00000010,0x000003e6,0x000003e4,0x00000000,0x00050051,0x00000010, - 0x000003e7,0x000003e4,0x00000001,0x00050051,0x00000010,0x000003e8,0x000003e4,0x00000002, - 0x00060050,0x000003e5,0x000003e9,0x000003e6,0x000003e7,0x000003e8,0x0006000c,0x000003e5, - 0x000003ea,0x00000001,0x00000022,0x000003e9,0x00040054,0x000003e5,0x000003eb,0x000003ea, - 0x00050051,0x00000010,0x000003ec,0x000003eb,0x00000000,0x00050051,0x00000010,0x000003ed, - 0x000003eb,0x00000001,0x00050051,0x00000010,0x000003ee,0x000003eb,0x00000002,0x00060050, - 0x000003e5,0x000003ef,0x000003ec,0x000003ed,0x000003ee,0x0004003d,0x00000010,0x000003f0, - 0x000003cc,0x00050091,0x00000010,0x000003f1,0x000003ef,0x000003f0,0x0006000c,0x00000010, - 0x000003f2,0x00000001,0x00000045,0x000003f1,0x00050041,0x0000001f,0x000003f3,0x00000311, - 0x0000031b,0x0003003e,0x000003f3,0x000003f2,0x0004003d,0x00000010,0x000003f5,0x00000061, - 0x00050041,0x0000001f,0x000003f6,0x00000311,0x00000319,0x0004003d,0x00000010,0x000003f7, - 0x000003f6,0x00050083,0x00000010,0x000003f8,0x000003f5,0x000003f7,0x0006000c,0x00000010, - 0x000003f9,0x00000001,0x00000045,0x000003f8,0x0003003e,0x000003f4,0x000003f9,0x00050041, - 0x0000001f,0x000003fa,0x00000311,0x0000031b,0x0004003d,0x00000010,0x000003fb,0x000003fa, - 0x0004003d,0x00000010,0x000003fc,0x000003f4,0x00050094,0x00000008,0x000003fd,0x000003fb, - 0x000003fc,0x000500b8,0x0000005d,0x000003fe,0x000003fd,0x000000cc,0x000300f7,0x00000400, - 0x00000000,0x000400fa,0x000003fe,0x000003ff,0x00000400,0x000200f8,0x000003ff,0x00050041, - 0x0000001f,0x00000401,0x00000311,0x0000031b,0x0004003d,0x00000010,0x00000402,0x00000401, - 0x0004007f,0x00000010,0x00000403,0x00000402,0x00050041,0x0000001f,0x00000404,0x00000311, - 0x0000031b,0x0003003e,0x00000404,0x00000403,0x000200f9,0x00000400,0x000200f8,0x00000400, - 0x0004003d,0x0000005f,0x00000405,0x00000311,0x000200fe,0x00000405,0x00010038,0x00050036, - 0x0000005d,0x0000006a,0x00000000,0x00000066,0x00030037,0x0000001f,0x00000067,0x00030037, - 0x0000001f,0x00000068,0x00030037,0x0000002a,0x00000069,0x000200f8,0x0000006b,0x0004003d, - 0x00000302,0x00000409,0x00000304,0x0004003d,0x00000010,0x0000040a,0x00000067,0x0004003d, - 0x00000010,0x0000040b,0x00000068,0x0004003d,0x00000008,0x0000040c,0x00000069,0x00091179, - 0x00000408,0x00000409,0x000000ba,0x00000306,0x0000040a,0x0000023c,0x0000040b,0x0000040c, - 0x000200f9,0x0000040d,0x000200f8,0x0000040d,0x000400f6,0x0000040f,0x00000410,0x00000000, - 0x000200f9,0x00000411,0x000200f8,0x00000411,0x0004117d,0x0000005d,0x00000412,0x00000408, - 0x000400fa,0x00000412,0x0000040e,0x0000040f,0x000200f8,0x0000040e,0x000200fe,0x00000312, - 0x000200f8,0x00000410,0x000200f9,0x0000040d,0x000200f8,0x0000040f,0x0005117f,0x00000006, - 0x00000414,0x00000408,0x00000210,0x000500aa,0x0000005d,0x00000415,0x00000414,0x000000ba, - 0x000200fe,0x00000415,0x00010038,0x00050036,0x00000008,0x00000070,0x00000000,0x0000006c, - 0x00030037,0x0000001f,0x0000006d,0x00030037,0x0000001f,0x0000006e,0x00030037,0x00000017, - 0x0000006f,0x000200f8,0x00000071,0x0004003b,0x0000001f,0x00000418,0x00000007,0x0004003b, - 0x0000001f,0x0000041b,0x00000007,0x0004003b,0x0000001f,0x00000422,0x00000007,0x0004003b, - 0x0000001f,0x00000427,0x00000007,0x0004003b,0x0000002a,0x0000042b,0x00000007,0x0004003b, - 0x0000001f,0x0000042f,0x00000007,0x0004003b,0x0000002a,0x00000434,0x00000007,0x0004003b, - 0x000001d7,0x00000435,0x00000007,0x0004003b,0x0000002a,0x0000043d,0x00000007,0x0004003b, - 0x0000002a,0x00000442,0x00000007,0x0004003b,0x0000002a,0x00000445,0x00000007,0x0004003b, - 0x0000002a,0x0000044c,0x00000007,0x0004003b,0x0000001f,0x00000453,0x00000007,0x0004003b, - 0x0000001f,0x00000465,0x00000007,0x0004003b,0x0000001f,0x00000467,0x00000007,0x0004003b, - 0x0000002a,0x00000469,0x00000007,0x0004003d,0x00000010,0x00000419,0x0000006e,0x0006000c, - 0x00000010,0x0000041a,0x00000001,0x00000045,0x00000419,0x0003003e,0x00000418,0x0000041a, - 0x00050041,0x0000002a,0x0000041c,0x00000418,0x000000ba,0x0004003d,0x00000008,0x0000041d, - 0x0000041c,0x0006000c,0x00000008,0x0000041e,0x00000001,0x00000004,0x0000041d,0x000500b8, - 0x0000005d,0x0000041f,0x0000041e,0x000001c5,0x00060050,0x000001c9,0x00000420,0x0000041f, - 0x0000041f,0x0000041f,0x000600a9,0x00000010,0x00000421,0x00000420,0x000001c7,0x000001c8, - 0x0003003e,0x0000041b,0x00000421,0x0004003d,0x00000010,0x00000423,0x0000041b,0x0004003d, - 0x00000010,0x00000424,0x00000418,0x0007000c,0x00000010,0x00000425,0x00000001,0x00000044, - 0x00000423,0x00000424,0x0006000c,0x00000010,0x00000426,0x00000001,0x00000045,0x00000425, - 0x0003003e,0x00000422,0x00000426,0x0004003d,0x00000010,0x00000428,0x00000418,0x0004003d, - 0x00000010,0x00000429,0x00000422,0x0007000c,0x00000010,0x0000042a,0x00000001,0x00000044, - 0x00000428,0x00000429,0x0003003e,0x00000427,0x0000042a,0x00050041,0x0000002a,0x0000042c, - 0x0000006f,0x000000c2,0x0004003d,0x00000008,0x0000042d,0x0000042c,0x00050085,0x00000008, - 0x0000042e,0x0000042d,0x000000d0,0x0003003e,0x0000042b,0x0000042e,0x0004003d,0x00000010, - 0x00000430,0x0000006d,0x0004003d,0x00000010,0x00000431,0x00000418,0x0005008e,0x00000010, - 0x00000432,0x00000431,0x0000023c,0x00050081,0x00000010,0x00000433,0x00000430,0x00000432, - 0x0003003e,0x0000042f,0x00000433,0x0003003e,0x00000434,0x000000cc,0x0003003e,0x00000435, - 0x000001d9,0x000200f9,0x00000436,0x000200f8,0x00000436,0x000400f6,0x00000438,0x00000439, - 0x00000000,0x000200f9,0x0000043a,0x000200f8,0x0000043a,0x0004003d,0x0000005e,0x0000043b, - 0x00000435,0x000500b1,0x0000005d,0x0000043c,0x0000043b,0x00000386,0x000400fa,0x0000043c, - 0x00000437,0x00000438,0x000200f8,0x00000437,0x0004003d,0x0000005e,0x0000043e,0x00000435, - 0x0004006f,0x00000008,0x0000043f,0x0000043e,0x0004003d,0x00000008,0x00000440,0x0000042b, - 0x00050081,0x00000008,0x00000441,0x0000043f,0x00000440,0x0003003e,0x0000043d,0x00000441, - 0x0004003d,0x00000008,0x00000443,0x0000043d,0x00050085,0x00000008,0x00000444,0x00000443, - 0x000001e7,0x0003003e,0x00000442,0x00000444,0x0004003d,0x0000005e,0x00000446,0x00000435, - 0x0004006f,0x00000008,0x00000447,0x00000446,0x00050081,0x00000008,0x00000448,0x00000447, - 0x000000f6,0x00050088,0x00000008,0x0000044a,0x00000448,0x00000449,0x00050083,0x00000008, - 0x0000044b,0x000000dc,0x0000044a,0x0003003e,0x00000445,0x0000044b,0x0004003d,0x00000008, - 0x0000044d,0x00000445,0x0004003d,0x00000008,0x0000044e,0x00000445,0x00050085,0x00000008, - 0x0000044f,0x0000044d,0x0000044e,0x00050083,0x00000008,0x00000450,0x000000dc,0x0000044f, - 0x0007000c,0x00000008,0x00000451,0x00000001,0x00000028,0x00000450,0x000000cc,0x0006000c, - 0x00000008,0x00000452,0x00000001,0x0000001f,0x00000451,0x0003003e,0x0000044c,0x00000452, - 0x0004003d,0x00000010,0x00000454,0x00000422,0x0004003d,0x00000008,0x00000455,0x00000442, - 0x0006000c,0x00000008,0x00000456,0x00000001,0x0000000e,0x00000455,0x0004003d,0x00000008, - 0x00000457,0x0000044c,0x00050085,0x00000008,0x00000458,0x00000456,0x00000457,0x0005008e, - 0x00000010,0x00000459,0x00000454,0x00000458,0x0004003d,0x00000010,0x0000045a,0x00000427, - 0x0004003d,0x00000008,0x0000045b,0x00000442,0x0006000c,0x00000008,0x0000045c,0x00000001, - 0x0000000d,0x0000045b,0x0004003d,0x00000008,0x0000045d,0x0000044c,0x00050085,0x00000008, - 0x0000045e,0x0000045c,0x0000045d,0x0005008e,0x00000010,0x0000045f,0x0000045a,0x0000045e, - 0x00050081,0x00000010,0x00000460,0x00000459,0x0000045f,0x0004003d,0x00000010,0x00000461, - 0x00000418,0x0004003d,0x00000008,0x00000462,0x00000445,0x0005008e,0x00000010,0x00000463, - 0x00000461,0x00000462,0x00050081,0x00000010,0x00000464,0x00000460,0x00000463,0x0003003e, - 0x00000453,0x00000464,0x0004003d,0x00000010,0x00000466,0x0000042f,0x0003003e,0x00000465, - 0x00000466,0x0004003d,0x00000010,0x00000468,0x00000453,0x0003003e,0x00000467,0x00000468, - 0x0003003e,0x00000469,0x0000010b,0x00070039,0x0000005d,0x0000046a,0x0000006a,0x00000465, - 0x00000467,0x00000469,0x000400a8,0x0000005d,0x0000046b,0x0000046a,0x000300f7,0x0000046d, - 0x00000000,0x000400fa,0x0000046b,0x0000046c,0x0000046d,0x000200f8,0x0000046c,0x0004003d, - 0x00000008,0x0000046e,0x00000434,0x00050081,0x00000008,0x0000046f,0x0000046e,0x000000dc, - 0x0003003e,0x00000434,0x0000046f,0x000200f9,0x0000046d,0x000200f8,0x0000046d,0x000200f9, - 0x00000439,0x000200f8,0x00000439,0x0004003d,0x0000005e,0x00000470,0x00000435,0x00050080, - 0x0000005e,0x00000471,0x00000470,0x00000210,0x0003003e,0x00000435,0x00000471,0x000200f9, - 0x00000436,0x000200f8,0x00000438,0x0004003d,0x00000008,0x00000472,0x00000434,0x00050088, - 0x00000008,0x00000473,0x00000472,0x00000449,0x000200fe,0x00000473,0x00010038,0x00050036, - 0x00000010,0x00000076,0x00000000,0x00000051,0x00030037,0x0000001f,0x00000072,0x00030037, - 0x0000001f,0x00000073,0x00030037,0x0000001f,0x00000074,0x00030037,0x00000034,0x00000075, - 0x000200f8,0x00000077,0x0004003b,0x0000001f,0x00000476,0x00000007,0x0004003b,0x0000001f, - 0x00000479,0x00000007,0x0004003b,0x0000001f,0x0000048b,0x00000007,0x0004003b,0x000001d7, - 0x0000048f,0x00000007,0x0004003b,0x000001d7,0x00000493,0x00000007,0x0004003b,0x0000001f, - 0x000004a1,0x00000007,0x0004003b,0x0000002a,0x000004a6,0x00000007,0x0004003b,0x0000002a, - 0x000004a7,0x00000007,0x0004003b,0x0000001f,0x000004ae,0x00000007,0x0004003b,0x0000002a, - 0x000004b5,0x00000007,0x0004003b,0x0000001f,0x000004c2,0x00000007,0x0004003b,0x0000001f, - 0x000004de,0x00000007,0x0004003b,0x0000001f,0x000004e4,0x00000007,0x0004003b,0x0000002a, - 0x000004ec,0x00000007,0x0004003b,0x0000001f,0x000004fe,0x00000007,0x0004003b,0x0000002a, - 0x00000501,0x00000007,0x0004003b,0x0000001f,0x00000506,0x00000007,0x0004003b,0x0000002a, - 0x0000050b,0x00000007,0x0004003b,0x0000002a,0x00000510,0x00000007,0x0004003b,0x0000002a, - 0x00000516,0x00000007,0x0004003b,0x0000002a,0x00000519,0x00000007,0x0004003b,0x0000001f, - 0x00000521,0x00000007,0x0004003b,0x0000001f,0x00000525,0x00000007,0x0004003d,0x00000010, - 0x00000477,0x00000073,0x0006000c,0x00000010,0x00000478,0x00000001,0x00000045,0x00000477, - 0x0003003e,0x00000476,0x00000478,0x0004003d,0x00000010,0x0000047a,0x00000072,0x0004007f, - 0x00000010,0x0000047b,0x0000047a,0x0006000c,0x00000010,0x0000047c,0x00000001,0x00000045, - 0x0000047b,0x0003003e,0x00000479,0x0000047c,0x00060041,0x0000002a,0x0000047d,0x00000075, - 0x000001e0,0x000000ba,0x0004003d,0x00000008,0x0000047e,0x0000047d,0x000500ba,0x0000005d, - 0x0000047f,0x0000047e,0x000000f6,0x000300f7,0x00000481,0x00000000,0x000400fa,0x0000047f, - 0x00000480,0x00000481,0x000200f8,0x00000480,0x0004003d,0x00000010,0x00000482,0x00000476, - 0x0004003d,0x00000010,0x00000483,0x00000479,0x00050094,0x00000008,0x00000484,0x00000482, - 0x00000483,0x000500b8,0x0000005d,0x00000485,0x00000484,0x000000cc,0x000200f9,0x00000481, - 0x000200f8,0x00000481,0x000700f5,0x0000005d,0x00000486,0x0000047f,0x00000077,0x00000485, - 0x00000480,0x000300f7,0x00000488,0x00000000,0x000400fa,0x00000486,0x00000487,0x00000488, - 0x000200f8,0x00000487,0x0004003d,0x00000010,0x00000489,0x00000476,0x0004007f,0x00000010, - 0x0000048a,0x00000489,0x0003003e,0x00000476,0x0000048a,0x000200f9,0x00000488,0x000200f8, - 0x00000488,0x00050041,0x00000242,0x0000048c,0x00000075,0x00000210,0x0004003d,0x00000030, - 0x0000048d,0x0000048c,0x0008004f,0x00000010,0x0000048e,0x0000048d,0x0000048d,0x00000000, - 0x00000001,0x00000002,0x0003003e,0x0000048b,0x0000048e,0x00060041,0x0000002a,0x00000490, - 0x00000075,0x000001e0,0x00000137,0x0004003d,0x00000008,0x00000491,0x00000490,0x0004006e, - 0x0000005e,0x00000492,0x00000491,0x0003003e,0x0000048f,0x00000492,0x0003003e,0x00000493, - 0x000001d9,0x000200f9,0x00000494,0x000200f8,0x00000494,0x000400f6,0x00000496,0x00000497, - 0x00000000,0x000200f9,0x00000498,0x000200f8,0x00000498,0x0004003d,0x0000005e,0x00000499, - 0x00000493,0x000500b1,0x0000005d,0x0000049a,0x00000499,0x00000386,0x000400fa,0x0000049a, - 0x00000495,0x00000496,0x000200f8,0x00000495,0x0004003d,0x0000005e,0x0000049b,0x00000493, - 0x0004003d,0x0000005e,0x0000049c,0x0000048f,0x000500af,0x0000005d,0x0000049d,0x0000049b, - 0x0000049c,0x000300f7,0x0000049f,0x00000000,0x000400fa,0x0000049d,0x0000049e,0x0000049f, - 0x000200f8,0x0000049e,0x000200f9,0x00000496,0x000200f8,0x0000049f,0x0004003d,0x0000005e, - 0x000004a2,0x00000493,0x00060041,0x00000242,0x000004a3,0x00000075,0x0000035f,0x000004a2, - 0x0004003d,0x00000030,0x000004a4,0x000004a3,0x0008004f,0x00000010,0x000004a5,0x000004a4, - 0x000004a4,0x00000000,0x00000001,0x00000002,0x0003003e,0x000004a1,0x000004a5,0x0003003e, - 0x000004a6,0x000000dc,0x0003003e,0x000004a7,0x000000dc,0x0004003d,0x0000005e,0x000004a8, - 0x00000493,0x00070041,0x0000002a,0x000004a9,0x00000075,0x00000197,0x000004a8,0x000000c2, - 0x0004003d,0x00000008,0x000004aa,0x000004a9,0x000500ba,0x0000005d,0x000004ab,0x000004aa, - 0x000000f6,0x000300f7,0x000004ad,0x00000000,0x000400fa,0x000004ab,0x000004ac,0x000004ad, - 0x000200f8,0x000004ac,0x0004003d,0x0000005e,0x000004af,0x00000493,0x00060041,0x00000242, - 0x000004b0,0x00000075,0x00000386,0x000004af,0x0004003d,0x00000030,0x000004b1,0x000004b0, - 0x0008004f,0x00000010,0x000004b2,0x000004b1,0x000004b1,0x00000000,0x00000001,0x00000002, - 0x0004003d,0x00000010,0x000004b3,0x00000072,0x00050083,0x00000010,0x000004b4,0x000004b2, - 0x000004b3,0x0003003e,0x000004ae,0x000004b4,0x0004003d,0x00000010,0x000004b6,0x000004ae, - 0x0006000c,0x00000008,0x000004b7,0x00000001,0x00000042,0x000004b6,0x0003003e,0x000004b5, - 0x000004b7,0x0004003d,0x00000008,0x000004b8,0x000004b5,0x000500bc,0x0000005d,0x000004ba, - 0x000004b8,0x000004b9,0x000300f7,0x000004bc,0x00000000,0x000400fa,0x000004ba,0x000004bb, - 0x000004bc,0x000200f8,0x000004bb,0x000200f9,0x00000497,0x000200f8,0x000004bc,0x0004003d, - 0x00000010,0x000004be,0x000004ae,0x0004003d,0x00000008,0x000004bf,0x000004b5,0x00060050, - 0x00000010,0x000004c0,0x000004bf,0x000004bf,0x000004bf,0x00050088,0x00000010,0x000004c1, - 0x000004be,0x000004c0,0x0003003e,0x000004a1,0x000004c1,0x0004003d,0x0000005e,0x000004c3, - 0x00000493,0x00060041,0x00000242,0x000004c4,0x00000075,0x00000399,0x000004c3,0x0004003d, - 0x00000030,0x000004c5,0x000004c4,0x0008004f,0x00000010,0x000004c6,0x000004c5,0x000004c5, - 0x00000000,0x00000001,0x00000002,0x0003003e,0x000004c2,0x000004c6,0x00050041,0x0000002a, - 0x000004c7,0x000004c2,0x00000137,0x0004003d,0x00000008,0x000004c8,0x000004c7,0x00050041, - 0x0000002a,0x000004c9,0x000004c2,0x000000ba,0x0004003d,0x00000008,0x000004ca,0x000004c9, - 0x0004003d,0x00000008,0x000004cb,0x000004b5,0x00050085,0x00000008,0x000004cc,0x000004ca, - 0x000004cb,0x00050081,0x00000008,0x000004cd,0x000004c8,0x000004cc,0x00050041,0x0000002a, - 0x000004ce,0x000004c2,0x000000c2,0x0004003d,0x00000008,0x000004cf,0x000004ce,0x0004003d, - 0x00000008,0x000004d0,0x000004b5,0x00050085,0x00000008,0x000004d1,0x000004cf,0x000004d0, - 0x0004003d,0x00000008,0x000004d2,0x000004b5,0x00050085,0x00000008,0x000004d3,0x000004d1, - 0x000004d2,0x00050081,0x00000008,0x000004d4,0x000004cd,0x000004d3,0x0007000c,0x00000008, - 0x000004d5,0x00000001,0x00000028,0x000004d4,0x000004b9,0x00050088,0x00000008,0x000004d6, - 0x000000dc,0x000004d5,0x0003003e,0x000004a6,0x000004d6,0x0004003d,0x0000005e,0x000004d7, - 0x00000493,0x00070041,0x0000002a,0x000004d8,0x00000075,0x00000197,0x000004d7,0x000000c2, - 0x0004003d,0x00000008,0x000004d9,0x000004d8,0x000500ba,0x0000005d,0x000004db,0x000004d9, - 0x000004da,0x000300f7,0x000004dd,0x00000000,0x000400fa,0x000004db,0x000004dc,0x000004dd, - 0x000200f8,0x000004dc,0x0004003d,0x0000005e,0x000004df,0x00000493,0x00060041,0x00000242, - 0x000004e0,0x00000075,0x0000035f,0x000004df,0x0004003d,0x00000030,0x000004e1,0x000004e0, - 0x0008004f,0x00000010,0x000004e2,0x000004e1,0x000004e1,0x00000000,0x00000001,0x00000002, - 0x0006000c,0x00000010,0x000004e3,0x00000001,0x00000045,0x000004e2,0x0003003e,0x000004de, - 0x000004e3,0x0004003d,0x00000010,0x000004e5,0x00000072,0x0004003d,0x0000005e,0x000004e6, - 0x00000493,0x00060041,0x00000242,0x000004e7,0x00000075,0x00000386,0x000004e6,0x0004003d, - 0x00000030,0x000004e8,0x000004e7,0x0008004f,0x00000010,0x000004e9,0x000004e8,0x000004e8, - 0x00000000,0x00000001,0x00000002,0x00050083,0x00000010,0x000004ea,0x000004e5,0x000004e9, - 0x0006000c,0x00000010,0x000004eb,0x00000001,0x00000045,0x000004ea,0x0003003e,0x000004e4, - 0x000004eb,0x0004003d,0x00000010,0x000004ed,0x000004de,0x0004003d,0x00000010,0x000004ee, - 0x000004e4,0x00050094,0x00000008,0x000004ef,0x000004ed,0x000004ee,0x0003003e,0x000004ec, - 0x000004ef,0x0004003d,0x00000008,0x000004f0,0x000004ec,0x0004003d,0x0000005e,0x000004f1, - 0x00000493,0x00070041,0x0000002a,0x000004f2,0x00000075,0x000003ac,0x000004f1,0x000000c2, - 0x0004003d,0x00000008,0x000004f3,0x000004f2,0x000500b8,0x0000005d,0x000004f4,0x000004f0, - 0x000004f3,0x000300f7,0x000004f6,0x00000000,0x000400fa,0x000004f4,0x000004f5,0x000004f6, - 0x000200f8,0x000004f5,0x000200f9,0x00000497,0x000200f8,0x000004f6,0x0004003d,0x00000008, - 0x000004f8,0x000004ec,0x0007000c,0x00000008,0x000004f9,0x00000001,0x00000028,0x000004f8, - 0x000000cc,0x0004003d,0x0000005e,0x000004fa,0x00000493,0x00070041,0x0000002a,0x000004fb, - 0x00000075,0x000003ac,0x000004fa,0x000000ba,0x0004003d,0x00000008,0x000004fc,0x000004fb, - 0x0007000c,0x00000008,0x000004fd,0x00000001,0x0000001a,0x000004f9,0x000004fc,0x0003003e, - 0x000004a7,0x000004fd,0x000200f9,0x000004dd,0x000200f8,0x000004dd,0x000200f9,0x000004ad, - 0x000200f8,0x000004ad,0x0004003d,0x00000010,0x000004ff,0x000004a1,0x0006000c,0x00000010, - 0x00000500,0x00000001,0x00000045,0x000004ff,0x0003003e,0x000004fe,0x00000500,0x0004003d, - 0x00000010,0x00000502,0x00000476,0x0004003d,0x00000010,0x00000503,0x000004fe,0x00050094, - 0x00000008,0x00000504,0x00000502,0x00000503,0x0007000c,0x00000008,0x00000505,0x00000001, - 0x00000028,0x00000504,0x000000cc,0x0003003e,0x00000501,0x00000505,0x0004003d,0x00000010, - 0x00000507,0x000004fe,0x0004003d,0x00000010,0x00000508,0x00000479,0x00050081,0x00000010, - 0x00000509,0x00000507,0x00000508,0x0006000c,0x00000010,0x0000050a,0x00000001,0x00000045, - 0x00000509,0x0003003e,0x00000506,0x0000050a,0x0004003d,0x00000010,0x0000050c,0x00000476, - 0x0004003d,0x00000010,0x0000050d,0x00000506,0x00050094,0x00000008,0x0000050e,0x0000050c, - 0x0000050d,0x0007000c,0x00000008,0x0000050f,0x00000001,0x00000028,0x0000050e,0x000000cc, - 0x0003003e,0x0000050b,0x0000050f,0x00060041,0x0000002a,0x00000511,0x00000075,0x000001e0, - 0x000000c2,0x0004003d,0x00000008,0x00000512,0x00000511,0x00050085,0x00000008,0x00000514, - 0x00000512,0x00000513,0x0007000c,0x00000008,0x00000515,0x00000001,0x00000028,0x00000514, - 0x000000cc,0x0003003e,0x00000510,0x00000515,0x0004003d,0x00000008,0x00000517,0x00000510, - 0x000500ba,0x0000005d,0x00000518,0x00000517,0x000000cc,0x000300f7,0x0000051b,0x00000000, - 0x000400fa,0x00000518,0x0000051a,0x0000051f,0x000200f8,0x0000051a,0x0004003d,0x00000008, - 0x0000051c,0x0000050b,0x0004003d,0x00000008,0x0000051d,0x00000510,0x0007000c,0x00000008, - 0x0000051e,0x00000001,0x0000001a,0x0000051c,0x0000051d,0x0003003e,0x00000519,0x0000051e, - 0x000200f9,0x0000051b,0x000200f8,0x0000051f,0x0003003e,0x00000519,0x000000cc,0x000200f9, - 0x0000051b,0x000200f8,0x0000051b,0x0004003d,0x00000008,0x00000520,0x00000519,0x0003003e, - 0x00000516,0x00000520,0x0004003d,0x00000010,0x00000522,0x00000074,0x0004003d,0x00000008, - 0x00000523,0x00000501,0x0005008e,0x00000010,0x00000524,0x00000522,0x00000523,0x0003003e, - 0x00000521,0x00000524,0x00050041,0x00000242,0x00000526,0x00000075,0x00000319,0x0004003d, - 0x00000030,0x00000527,0x00000526,0x0008004f,0x00000010,0x00000528,0x00000527,0x00000527, - 0x00000000,0x00000001,0x00000002,0x0004003d,0x00000008,0x00000529,0x00000516,0x0005008e, - 0x00000010,0x0000052a,0x00000528,0x00000529,0x0003003e,0x00000525,0x0000052a,0x0004003d, - 0x0000005e,0x0000052b,0x00000493,0x00060041,0x00000242,0x0000052c,0x00000075,0x00000193, - 0x0000052b,0x0004003d,0x00000030,0x0000052d,0x0000052c,0x0008004f,0x00000010,0x0000052e, - 0x0000052d,0x0000052d,0x00000000,0x00000001,0x00000002,0x0004003d,0x00000008,0x0000052f, - 0x000004a6,0x0005008e,0x00000010,0x00000530,0x0000052e,0x0000052f,0x0004003d,0x00000008, - 0x00000531,0x000004a7,0x0005008e,0x00000010,0x00000532,0x00000530,0x00000531,0x0004003d, - 0x00000010,0x00000533,0x00000521,0x0004003d,0x00000010,0x00000534,0x00000525,0x00050081, - 0x00000010,0x00000535,0x00000533,0x00000534,0x00050085,0x00000010,0x00000536,0x00000532, - 0x00000535,0x0004003d,0x00000010,0x00000537,0x0000048b,0x00050081,0x00000010,0x00000538, - 0x00000537,0x00000536,0x0003003e,0x0000048b,0x00000538,0x000200f9,0x00000497,0x000200f8, - 0x00000497,0x0004003d,0x0000005e,0x00000539,0x00000493,0x00050080,0x0000005e,0x0000053a, - 0x00000539,0x00000210,0x0003003e,0x00000493,0x0000053a,0x000200f9,0x00000494,0x000200f8, - 0x00000496,0x0004003d,0x00000010,0x0000053b,0x0000048b,0x00050041,0x00000242,0x0000053c, - 0x00000075,0x0000031b,0x0004003d,0x00000030,0x0000053d,0x0000053c,0x0008004f,0x00000010, - 0x0000053e,0x0000053d,0x0000053d,0x00000000,0x00000001,0x00000002,0x00050081,0x00000010, - 0x0000053f,0x0000053b,0x0000053e,0x00060050,0x00000010,0x00000540,0x000000cc,0x000000cc, - 0x000000cc,0x00060050,0x00000010,0x00000541,0x000000dc,0x000000dc,0x000000dc,0x0008000c, - 0x00000010,0x00000542,0x00000001,0x0000002b,0x0000053f,0x00000540,0x00000541,0x000200fe, - 0x00000542,0x00010038,0x00050036,0x00000010,0x0000007c,0x00000000,0x00000051,0x00030037, - 0x0000001f,0x00000078,0x00030037,0x0000001f,0x00000079,0x00030037,0x0000001f,0x0000007a, - 0x00030037,0x00000034,0x0000007b,0x000200f8,0x0000007d,0x0004003b,0x0000001f,0x00000545, - 0x00000007,0x0004003b,0x0000001f,0x00000550,0x00000007,0x0004003b,0x0000001f,0x0000055d, - 0x00000007,0x0004003b,0x0000001f,0x00000561,0x00000007,0x0004003b,0x000001d7,0x00000565, - 0x00000007,0x0004003b,0x000001d7,0x00000569,0x00000007,0x0004003b,0x0000002a,0x00000577, - 0x00000007,0x0004003b,0x0000002a,0x00000578,0x00000007,0x0004003b,0x0000002a,0x00000579, - 0x00000007,0x0004003b,0x0000001f,0x00000580,0x00000007,0x0004003b,0x0000001f,0x0000058e, - 0x00000007,0x0004003b,0x0000001f,0x00000593,0x00000007,0x0004003b,0x0000001f,0x000005ae, - 0x00000007,0x0004003b,0x0000001f,0x000005b4,0x00000007,0x0004003b,0x0000002a,0x000005bc, - 0x00000007,0x0004003b,0x0000002a,0x000005d3,0x00000007,0x0004003b,0x0000001f,0x000005dd, - 0x00000007,0x0004003b,0x0000001f,0x000005ef,0x00000007,0x0004003b,0x0000001f,0x000005f0, - 0x00000007,0x0004003b,0x0000002a,0x000005f2,0x00000007,0x0004003b,0x0000001f,0x000005fc, - 0x00000007,0x0004003b,0x0000001f,0x000005ff,0x00000007,0x0004003b,0x0000001f,0x00000601, - 0x00000007,0x0004003b,0x0000001f,0x00000603,0x00000007,0x0004003b,0x00000034,0x00000604, - 0x00000007,0x0004003b,0x0000001f,0x0000060a,0x00000007,0x0004003b,0x0000002a,0x00000610, - 0x00000007,0x0004003b,0x0000002a,0x00000615,0x00000007,0x0004003b,0x0000002a,0x0000061a, - 0x00000007,0x0004003b,0x0000002a,0x0000061d,0x00000007,0x00050041,0x00000546,0x00000547, - 0x000000e8,0x000001d9,0x0004003d,0x000000e5,0x00000548,0x00000547,0x0004003d,0x00000010, - 0x00000549,0x00000078,0x00050051,0x00000008,0x0000054a,0x00000549,0x00000000,0x00050051, - 0x00000008,0x0000054b,0x00000549,0x00000001,0x00050051,0x00000008,0x0000054c,0x00000549, - 0x00000002,0x00070050,0x00000030,0x0000054d,0x0000054a,0x0000054b,0x0000054c,0x000000dc, - 0x00050091,0x00000030,0x0000054e,0x00000548,0x0000054d,0x0008004f,0x00000010,0x0000054f, - 0x0000054e,0x0000054e,0x00000000,0x00000001,0x00000002,0x0003003e,0x00000545,0x0000054f, - 0x00050041,0x00000546,0x00000551,0x000000e8,0x000001d9,0x0004003d,0x000000e5,0x00000552, - 0x00000551,0x00050051,0x00000030,0x00000553,0x00000552,0x00000000,0x0008004f,0x00000010, - 0x00000554,0x00000553,0x00000553,0x00000000,0x00000001,0x00000002,0x00050051,0x00000030, - 0x00000555,0x00000552,0x00000001,0x0008004f,0x00000010,0x00000556,0x00000555,0x00000555, - 0x00000000,0x00000001,0x00000002,0x00050051,0x00000030,0x00000557,0x00000552,0x00000002, - 0x0008004f,0x00000010,0x00000558,0x00000557,0x00000557,0x00000000,0x00000001,0x00000002, - 0x00060050,0x000003e5,0x00000559,0x00000554,0x00000556,0x00000558,0x0004003d,0x00000010, - 0x0000055a,0x00000079,0x00050091,0x00000010,0x0000055b,0x00000559,0x0000055a,0x0006000c, - 0x00000010,0x0000055c,0x00000001,0x00000045,0x0000055b,0x0003003e,0x00000550,0x0000055c, - 0x0004003d,0x00000010,0x0000055e,0x00000545,0x0004007f,0x00000010,0x0000055f,0x0000055e, - 0x0006000c,0x00000010,0x00000560,0x00000001,0x00000045,0x0000055f,0x0003003e,0x0000055d, - 0x00000560,0x00050041,0x00000242,0x00000562,0x0000007b,0x00000210,0x0004003d,0x00000030, - 0x00000563,0x00000562,0x0008004f,0x00000010,0x00000564,0x00000563,0x00000563,0x00000000, - 0x00000001,0x00000002,0x0003003e,0x00000561,0x00000564,0x00060041,0x0000002a,0x00000566, - 0x0000007b,0x000001e0,0x00000137,0x0004003d,0x00000008,0x00000567,0x00000566,0x0004006e, - 0x0000005e,0x00000568,0x00000567,0x0003003e,0x00000565,0x00000568,0x0003003e,0x00000569, - 0x000001d9,0x000200f9,0x0000056a,0x000200f8,0x0000056a,0x000400f6,0x0000056c,0x0000056d, - 0x00000000,0x000200f9,0x0000056e,0x000200f8,0x0000056e,0x0004003d,0x0000005e,0x0000056f, - 0x00000569,0x000500b1,0x0000005d,0x00000570,0x0000056f,0x00000386,0x000400fa,0x00000570, - 0x0000056b,0x0000056c,0x000200f8,0x0000056b,0x0004003d,0x0000005e,0x00000571,0x00000569, - 0x0004003d,0x0000005e,0x00000572,0x00000565,0x000500af,0x0000005d,0x00000573,0x00000571, - 0x00000572,0x000300f7,0x00000575,0x00000000,0x000400fa,0x00000573,0x00000574,0x00000575, - 0x000200f8,0x00000574,0x000200f9,0x0000056c,0x000200f8,0x00000575,0x0003003e,0x00000577, - 0x000000dc,0x0003003e,0x00000578,0x000000dc,0x0003003e,0x00000579,0x0000010b,0x0004003d, - 0x0000005e,0x0000057a,0x00000569,0x00070041,0x0000002a,0x0000057b,0x0000007b,0x00000197, - 0x0000057a,0x000000c2,0x0004003d,0x00000008,0x0000057c,0x0000057b,0x000500ba,0x0000005d, - 0x0000057d,0x0000057c,0x000000f6,0x000300f7,0x0000057f,0x00000000,0x000400fa,0x0000057d, - 0x0000057e,0x000005ce,0x000200f8,0x0000057e,0x0004003d,0x0000005e,0x00000581,0x00000569, - 0x00060041,0x00000242,0x00000582,0x0000007b,0x00000386,0x00000581,0x0004003d,0x00000030, - 0x00000583,0x00000582,0x0008004f,0x00000010,0x00000584,0x00000583,0x00000583,0x00000000, - 0x00000001,0x00000002,0x0004003d,0x00000010,0x00000585,0x00000545,0x00050083,0x00000010, - 0x00000586,0x00000584,0x00000585,0x0003003e,0x00000580,0x00000586,0x0004003d,0x00000010, - 0x00000587,0x00000580,0x0006000c,0x00000008,0x00000588,0x00000001,0x00000042,0x00000587, - 0x0003003e,0x00000579,0x00000588,0x0004003d,0x00000008,0x00000589,0x00000579,0x000500bc, - 0x0000005d,0x0000058a,0x00000589,0x000004b9,0x000300f7,0x0000058c,0x00000000,0x000400fa, - 0x0000058a,0x0000058b,0x0000058c,0x000200f8,0x0000058b,0x000200f9,0x0000056d,0x000200f8, - 0x0000058c,0x0004003d,0x00000010,0x0000058f,0x00000580,0x0004003d,0x00000008,0x00000590, - 0x00000579,0x00060050,0x00000010,0x00000591,0x00000590,0x00000590,0x00000590,0x00050088, - 0x00000010,0x00000592,0x0000058f,0x00000591,0x0003003e,0x0000058e,0x00000592,0x0004003d, - 0x0000005e,0x00000594,0x00000569,0x00060041,0x00000242,0x00000595,0x0000007b,0x00000399, - 0x00000594,0x0004003d,0x00000030,0x00000596,0x00000595,0x0008004f,0x00000010,0x00000597, - 0x00000596,0x00000596,0x00000000,0x00000001,0x00000002,0x0003003e,0x00000593,0x00000597, - 0x00050041,0x0000002a,0x00000598,0x00000593,0x00000137,0x0004003d,0x00000008,0x00000599, - 0x00000598,0x00050041,0x0000002a,0x0000059a,0x00000593,0x000000ba,0x0004003d,0x00000008, - 0x0000059b,0x0000059a,0x0004003d,0x00000008,0x0000059c,0x00000579,0x00050085,0x00000008, - 0x0000059d,0x0000059b,0x0000059c,0x00050081,0x00000008,0x0000059e,0x00000599,0x0000059d, - 0x00050041,0x0000002a,0x0000059f,0x00000593,0x000000c2,0x0004003d,0x00000008,0x000005a0, - 0x0000059f,0x0004003d,0x00000008,0x000005a1,0x00000579,0x00050085,0x00000008,0x000005a2, - 0x000005a0,0x000005a1,0x0004003d,0x00000008,0x000005a3,0x00000579,0x00050085,0x00000008, - 0x000005a4,0x000005a2,0x000005a3,0x00050081,0x00000008,0x000005a5,0x0000059e,0x000005a4, - 0x0007000c,0x00000008,0x000005a6,0x00000001,0x00000028,0x000005a5,0x000004b9,0x00050088, - 0x00000008,0x000005a7,0x000000dc,0x000005a6,0x0003003e,0x00000577,0x000005a7,0x0004003d, - 0x0000005e,0x000005a8,0x00000569,0x00070041,0x0000002a,0x000005a9,0x0000007b,0x00000197, - 0x000005a8,0x000000c2,0x0004003d,0x00000008,0x000005aa,0x000005a9,0x000500ba,0x0000005d, - 0x000005ab,0x000005aa,0x000004da,0x000300f7,0x000005ad,0x00000000,0x000400fa,0x000005ab, - 0x000005ac,0x000005ad,0x000200f8,0x000005ac,0x0004003d,0x0000005e,0x000005af,0x00000569, - 0x00060041,0x00000242,0x000005b0,0x0000007b,0x0000035f,0x000005af,0x0004003d,0x00000030, - 0x000005b1,0x000005b0,0x0008004f,0x00000010,0x000005b2,0x000005b1,0x000005b1,0x00000000, - 0x00000001,0x00000002,0x0006000c,0x00000010,0x000005b3,0x00000001,0x00000045,0x000005b2, - 0x0003003e,0x000005ae,0x000005b3,0x0004003d,0x00000010,0x000005b5,0x00000545,0x0004003d, - 0x0000005e,0x000005b6,0x00000569,0x00060041,0x00000242,0x000005b7,0x0000007b,0x00000386, - 0x000005b6,0x0004003d,0x00000030,0x000005b8,0x000005b7,0x0008004f,0x00000010,0x000005b9, - 0x000005b8,0x000005b8,0x00000000,0x00000001,0x00000002,0x00050083,0x00000010,0x000005ba, - 0x000005b5,0x000005b9,0x0006000c,0x00000010,0x000005bb,0x00000001,0x00000045,0x000005ba, - 0x0003003e,0x000005b4,0x000005bb,0x0004003d,0x00000010,0x000005bd,0x000005ae,0x0004003d, - 0x00000010,0x000005be,0x000005b4,0x00050094,0x00000008,0x000005bf,0x000005bd,0x000005be, - 0x0003003e,0x000005bc,0x000005bf,0x0004003d,0x00000008,0x000005c0,0x000005bc,0x0004003d, - 0x0000005e,0x000005c1,0x00000569,0x00070041,0x0000002a,0x000005c2,0x0000007b,0x000003ac, - 0x000005c1,0x000000c2,0x0004003d,0x00000008,0x000005c3,0x000005c2,0x000500b8,0x0000005d, - 0x000005c4,0x000005c0,0x000005c3,0x000300f7,0x000005c6,0x00000000,0x000400fa,0x000005c4, - 0x000005c5,0x000005c6,0x000200f8,0x000005c5,0x000200f9,0x0000056d,0x000200f8,0x000005c6, - 0x0004003d,0x00000008,0x000005c8,0x000005bc,0x0007000c,0x00000008,0x000005c9,0x00000001, - 0x00000028,0x000005c8,0x000000cc,0x0004003d,0x0000005e,0x000005ca,0x00000569,0x00070041, - 0x0000002a,0x000005cb,0x0000007b,0x000003ac,0x000005ca,0x000000ba,0x0004003d,0x00000008, - 0x000005cc,0x000005cb,0x0007000c,0x00000008,0x000005cd,0x00000001,0x0000001a,0x000005c9, - 0x000005cc,0x0003003e,0x00000578,0x000005cd,0x000200f9,0x000005ad,0x000200f8,0x000005ad, - 0x000200f9,0x0000057f,0x000200f8,0x000005ce,0x0004003d,0x0000005e,0x000005cf,0x00000569, - 0x00060041,0x00000242,0x000005d0,0x0000007b,0x0000035f,0x000005cf,0x0004003d,0x00000030, - 0x000005d1,0x000005d0,0x0008004f,0x00000010,0x000005d2,0x000005d1,0x000005d1,0x00000000, - 0x00000001,0x00000002,0x0003003e,0x0000058e,0x000005d2,0x000200f9,0x0000057f,0x000200f8, - 0x0000057f,0x0004003d,0x00000010,0x000005d4,0x00000550,0x0004003d,0x00000010,0x000005d5, - 0x0000058e,0x0006000c,0x00000010,0x000005d6,0x00000001,0x00000045,0x000005d5,0x00050094, - 0x00000008,0x000005d7,0x000005d4,0x000005d6,0x0003003e,0x000005d3,0x000005d7,0x0004003d, - 0x00000008,0x000005d8,0x000005d3,0x000500bc,0x0000005d,0x000005d9,0x000005d8,0x000000cc, - 0x000300f7,0x000005db,0x00000000,0x000400fa,0x000005d9,0x000005da,0x000005db,0x000200f8, - 0x000005da,0x000200f9,0x0000056d,0x000200f8,0x000005db,0x00050041,0x00000546,0x000005de, - 0x000000e8,0x00000210,0x0004003d,0x000000e5,0x000005df,0x000005de,0x0004003d,0x00000010, - 0x000005e0,0x0000058e,0x0006000c,0x00000010,0x000005e1,0x00000001,0x00000045,0x000005e0, - 0x00050051,0x00000008,0x000005e2,0x000005e1,0x00000000,0x00050051,0x00000008,0x000005e3, - 0x000005e1,0x00000001,0x00050051,0x00000008,0x000005e4,0x000005e1,0x00000002,0x00070050, - 0x00000030,0x000005e5,0x000005e2,0x000005e3,0x000005e4,0x000000cc,0x00050091,0x00000030, - 0x000005e6,0x000005df,0x000005e5,0x0008004f,0x00000010,0x000005e7,0x000005e6,0x000005e6, - 0x00000000,0x00000001,0x00000002,0x0006000c,0x00000010,0x000005e8,0x00000001,0x00000045, - 0x000005e7,0x0003003e,0x000005dd,0x000005e8,0x0004003d,0x00000010,0x000005e9,0x00000078, - 0x0004003d,0x00000010,0x000005ea,0x00000079,0x0005008e,0x00000010,0x000005eb,0x000005ea, - 0x0000023c,0x00050081,0x00000010,0x000005ec,0x000005e9,0x000005eb,0x0004003d,0x00000008, - 0x000005ed,0x00000579,0x00050083,0x00000008,0x000005ee,0x000005ed,0x0000023c,0x0003003e, - 0x000005ef,0x000005ec,0x0004003d,0x00000010,0x000005f1,0x000005dd,0x0003003e,0x000005f0, - 0x000005f1,0x0003003e,0x000005f2,0x000005ee,0x00070039,0x0000005d,0x000005f3,0x0000006a, - 0x000005ef,0x000005f0,0x000005f2,0x000300f7,0x000005f5,0x00000000,0x000400fa,0x000005f3, - 0x000005f4,0x000005f5,0x000200f8,0x000005f4,0x000200f9,0x0000056d,0x000200f8,0x000005f5, - 0x00060041,0x0000002a,0x000005f7,0x0000007b,0x000000e9,0x00000137,0x0004003d,0x00000008, - 0x000005f8,0x000005f7,0x000500ba,0x0000005d,0x000005f9,0x000005f8,0x000000f6,0x000300f7, - 0x000005fb,0x00000000,0x000400fa,0x000005f9,0x000005fa,0x00000609,0x000200f8,0x000005fa, - 0x0004003d,0x00000010,0x000005fd,0x0000058e,0x0006000c,0x00000010,0x000005fe,0x00000001, - 0x00000045,0x000005fd,0x0004003d,0x00000010,0x00000600,0x00000550,0x0003003e,0x000005ff, - 0x00000600,0x0004003d,0x00000010,0x00000602,0x0000055d,0x0003003e,0x00000601,0x00000602, - 0x0003003e,0x00000603,0x000005fe,0x0004003d,0x00000033,0x00000605,0x0000007b,0x0003003e, - 0x00000604,0x00000605,0x00080039,0x00000010,0x00000606,0x00000056,0x000005ff,0x00000601, - 0x00000603,0x00000604,0x0004003d,0x00000008,0x00000607,0x000005d3,0x0005008e,0x00000010, - 0x00000608,0x00000606,0x00000607,0x0003003e,0x000005fc,0x00000608,0x000200f9,0x000005fb, - 0x000200f8,0x00000609,0x0004003d,0x00000010,0x0000060b,0x0000058e,0x0006000c,0x00000010, - 0x0000060c,0x00000001,0x00000045,0x0000060b,0x0004003d,0x00000010,0x0000060d,0x0000055d, - 0x00050081,0x00000010,0x0000060e,0x0000060c,0x0000060d,0x0006000c,0x00000010,0x0000060f, - 0x00000001,0x00000045,0x0000060e,0x0003003e,0x0000060a,0x0000060f,0x0004003d,0x00000010, - 0x00000611,0x00000550,0x0004003d,0x00000010,0x00000612,0x0000060a,0x00050094,0x00000008, - 0x00000613,0x00000611,0x00000612,0x0007000c,0x00000008,0x00000614,0x00000001,0x00000028, - 0x00000613,0x000000cc,0x0003003e,0x00000610,0x00000614,0x00060041,0x0000002a,0x00000616, - 0x0000007b,0x000001e0,0x000000c2,0x0004003d,0x00000008,0x00000617,0x00000616,0x00050085, - 0x00000008,0x00000618,0x00000617,0x00000513,0x0007000c,0x00000008,0x00000619,0x00000001, - 0x00000028,0x00000618,0x000000cc,0x0003003e,0x00000615,0x00000619,0x0004003d,0x00000008, - 0x0000061b,0x00000615,0x000500ba,0x0000005d,0x0000061c,0x0000061b,0x000000cc,0x000300f7, - 0x0000061f,0x00000000,0x000400fa,0x0000061c,0x0000061e,0x00000623,0x000200f8,0x0000061e, - 0x0004003d,0x00000008,0x00000620,0x00000610,0x0004003d,0x00000008,0x00000621,0x00000615, - 0x0007000c,0x00000008,0x00000622,0x00000001,0x0000001a,0x00000620,0x00000621,0x0003003e, - 0x0000061d,0x00000622,0x000200f9,0x0000061f,0x000200f8,0x00000623,0x0003003e,0x0000061d, - 0x000000cc,0x000200f9,0x0000061f,0x000200f8,0x0000061f,0x0004003d,0x00000008,0x00000624, - 0x0000061d,0x0003003e,0x0000061a,0x00000624,0x00050041,0x00000242,0x00000625,0x0000007b, - 0x000001d9,0x0004003d,0x00000030,0x00000626,0x00000625,0x0008004f,0x00000010,0x00000627, - 0x00000626,0x00000626,0x00000000,0x00000001,0x00000002,0x0004003d,0x00000008,0x00000628, - 0x000005d3,0x0005008e,0x00000010,0x00000629,0x00000627,0x00000628,0x00050041,0x00000242, - 0x0000062a,0x0000007b,0x00000319,0x0004003d,0x00000030,0x0000062b,0x0000062a,0x0008004f, - 0x00000010,0x0000062c,0x0000062b,0x0000062b,0x00000000,0x00000001,0x00000002,0x0004003d, - 0x00000008,0x0000062d,0x0000061a,0x0005008e,0x00000010,0x0000062e,0x0000062c,0x0000062d, - 0x00050081,0x00000010,0x0000062f,0x00000629,0x0000062e,0x0003003e,0x000005fc,0x0000062f, - 0x000200f9,0x000005fb,0x000200f8,0x000005fb,0x0004003d,0x0000005e,0x00000630,0x00000569, - 0x00060041,0x00000242,0x00000631,0x0000007b,0x00000193,0x00000630,0x0004003d,0x00000030, - 0x00000632,0x00000631,0x0008004f,0x00000010,0x00000633,0x00000632,0x00000632,0x00000000, - 0x00000001,0x00000002,0x0004003d,0x00000008,0x00000634,0x00000577,0x0005008e,0x00000010, - 0x00000635,0x00000633,0x00000634,0x0004003d,0x00000008,0x00000636,0x00000578,0x0005008e, - 0x00000010,0x00000637,0x00000635,0x00000636,0x0004003d,0x00000010,0x00000638,0x000005fc, - 0x00050085,0x00000010,0x00000639,0x00000637,0x00000638,0x0004003d,0x00000010,0x0000063a, - 0x00000561,0x00050081,0x00000010,0x0000063b,0x0000063a,0x00000639,0x0003003e,0x00000561, - 0x0000063b,0x000200f9,0x0000056d,0x000200f8,0x0000056d,0x0004003d,0x0000005e,0x0000063c, - 0x00000569,0x00050080,0x0000005e,0x0000063d,0x0000063c,0x00000210,0x0003003e,0x00000569, - 0x0000063d,0x000200f9,0x0000056a,0x000200f8,0x0000056c,0x0004003d,0x00000010,0x0000063e, - 0x00000561,0x00060050,0x00000010,0x0000063f,0x000000cc,0x000000cc,0x000000cc,0x00060050, - 0x00000010,0x00000640,0x000000dc,0x000000dc,0x000000dc,0x0008000c,0x00000010,0x00000641, - 0x00000001,0x0000002b,0x0000063e,0x0000063f,0x00000640,0x000200fe,0x00000641,0x00010038, - 0x00050036,0x00000010,0x00000083,0x00000000,0x0000007e,0x00030037,0x0000001f,0x0000007f, - 0x00030037,0x0000001f,0x00000080,0x00030037,0x00000034,0x00000081,0x00030037,0x0000001f, - 0x00000082,0x000200f8,0x00000084,0x0004003b,0x0000002a,0x00000644,0x00000007,0x0004003b, - 0x000001d7,0x0000064c,0x00000007,0x0004003b,0x00000656,0x00000657,0x00000007,0x0004003b, - 0x0000002a,0x0000066c,0x00000007,0x0004003b,0x0000002a,0x00000671,0x00000007,0x0004003b, - 0x0000002a,0x00000674,0x00000007,0x0004003b,0x0000001f,0x00000681,0x00000007,0x0004003b, - 0x0000001f,0x00000696,0x00000007,0x0004003b,0x0000001f,0x000006a0,0x00000007,0x0004003b, - 0x0000001f,0x000006b0,0x00000007,0x0004003b,0x0000001f,0x000006c0,0x00000007,0x0004003b, - 0x0000002a,0x000006c4,0x00000007,0x0004003b,0x0000001f,0x000006d1,0x00000007,0x0004003b, - 0x0000002a,0x000006d5,0x00000007,0x0004003b,0x0000001f,0x000006dd,0x00000007,0x0004003b, - 0x0000002a,0x000006e2,0x00000007,0x0004003b,0x0000002a,0x000006e7,0x00000007,0x0004003b, - 0x0000001f,0x000006f9,0x00000007,0x0004003b,0x0000001f,0x000006fa,0x00000007,0x0004003b, - 0x0000002a,0x000006fc,0x00000007,0x0004003b,0x0000001f,0x00000701,0x00000007,0x0004003b, - 0x0000001f,0x0000070b,0x00000007,0x0004003b,0x0000001f,0x00000718,0x00000007,0x0004003b, - 0x0000001f,0x0000071c,0x00000007,0x0004003b,0x0000001f,0x0000072c,0x00000007,0x0004003b, - 0x0000001f,0x0000072d,0x00000007,0x0004003b,0x0000001f,0x0000072f,0x00000007,0x0004003b, - 0x0000001f,0x00000731,0x00000007,0x0004003b,0x00000034,0x00000733,0x00000007,0x0004003b, - 0x0000001f,0x00000739,0x00000007,0x0004003b,0x0000002a,0x0000073e,0x00000007,0x0004003b, - 0x0000002a,0x00000743,0x00000007,0x0004003b,0x0000002a,0x00000748,0x00000007,0x0004003b, - 0x0000002a,0x0000074b,0x00000007,0x0004003b,0x0000002a,0x0000075e,0x00000007,0x00060041, - 0x000000f3,0x00000645,0x000000e8,0x000003bf,0x000000c2,0x0004003d,0x00000008,0x00000646, - 0x00000645,0x0003003e,0x00000644,0x00000646,0x0004003d,0x00000008,0x00000647,0x00000644, - 0x000500b8,0x0000005d,0x00000648,0x00000647,0x000000f6,0x000300f7,0x0000064a,0x00000000, - 0x000400fa,0x00000648,0x00000649,0x0000064a,0x000200f8,0x00000649,0x000200fe,0x0000010d, - 0x000200f8,0x0000064a,0x00050041,0x0000002a,0x0000064d,0x00000082,0x000000c2,0x0004003d, - 0x00000008,0x0000064e,0x0000064d,0x0004003d,0x00000008,0x0000064f,0x00000644,0x00050085, - 0x00000008,0x00000650,0x0000064e,0x0000064f,0x0004003d,0x00000008,0x00000651,0x00000644, - 0x00050083,0x00000008,0x00000652,0x00000651,0x000000dc,0x0008000c,0x00000008,0x00000653, - 0x00000001,0x0000002b,0x00000650,0x000000cc,0x00000652,0x0004006e,0x0000005e,0x00000654, - 0x00000653,0x0003003e,0x0000064c,0x00000654,0x0004003d,0x0000005e,0x0000065d,0x0000064c, - 0x00060041,0x0000065e,0x0000065f,0x0000065c,0x000001d9,0x0000065d,0x0004003d,0x00000658, - 0x00000660,0x0000065f,0x00050051,0x00000030,0x00000661,0x00000660,0x00000000,0x00050041, - 0x00000242,0x00000662,0x00000657,0x000001d9,0x0003003e,0x00000662,0x00000661,0x00050051, - 0x00000030,0x00000663,0x00000660,0x00000001,0x00050041,0x00000242,0x00000664,0x00000657, - 0x00000210,0x0003003e,0x00000664,0x00000663,0x00050051,0x00000030,0x00000665,0x00000660, - 0x00000002,0x00050041,0x00000242,0x00000666,0x00000657,0x00000319,0x0003003e,0x00000666, - 0x00000665,0x00050051,0x00000030,0x00000667,0x00000660,0x00000003,0x00050041,0x00000242, - 0x00000668,0x00000657,0x0000031b,0x0003003e,0x00000668,0x00000667,0x00050051,0x000000e5, - 0x00000669,0x00000660,0x00000004,0x00050041,0x0000066a,0x0000066b,0x00000657,0x000001e0, - 0x0003003e,0x0000066b,0x00000669,0x00060041,0x0000002a,0x0000066d,0x00000657,0x000001d9, - 0x000000f2,0x0004003d,0x00000008,0x0000066e,0x0000066d,0x0007000c,0x00000008,0x00000670, - 0x00000001,0x00000028,0x0000066e,0x0000066f,0x0003003e,0x0000066c,0x00000670,0x00050041, - 0x0000002a,0x00000672,0x00000082,0x000000ba,0x0004003d,0x00000008,0x00000673,0x00000672, - 0x0003003e,0x00000671,0x00000673,0x00050041,0x0000002a,0x00000675,0x00000082,0x00000137, - 0x0004003d,0x00000008,0x00000676,0x00000675,0x0003003e,0x00000674,0x00000676,0x0004003d, - 0x00000008,0x00000677,0x00000671,0x0004003d,0x00000008,0x00000678,0x00000674,0x00050081, - 0x00000008,0x00000679,0x00000677,0x00000678,0x000500ba,0x0000005d,0x0000067a,0x00000679, - 0x000000dc,0x000300f7,0x0000067c,0x00000000,0x000400fa,0x0000067a,0x0000067b,0x0000067c, - 0x000200f8,0x0000067b,0x0004003d,0x00000008,0x0000067d,0x00000671,0x00050083,0x00000008, - 0x0000067e,0x000000dc,0x0000067d,0x0003003e,0x00000671,0x0000067e,0x0004003d,0x00000008, - 0x0000067f,0x00000674,0x00050083,0x00000008,0x00000680,0x000000dc,0x0000067f,0x0003003e, - 0x00000674,0x00000680,0x000200f9,0x0000067c,0x000200f8,0x0000067c,0x00050041,0x00000242, - 0x00000682,0x00000657,0x000001d9,0x0004003d,0x00000030,0x00000683,0x00000682,0x0008004f, - 0x00000010,0x00000684,0x00000683,0x00000683,0x00000000,0x00000001,0x00000002,0x0004003d, - 0x00000008,0x00000685,0x00000671,0x00050083,0x00000008,0x00000686,0x000000dc,0x00000685, - 0x0004003d,0x00000008,0x00000687,0x00000674,0x00050083,0x00000008,0x00000688,0x00000686, - 0x00000687,0x0005008e,0x00000010,0x00000689,0x00000684,0x00000688,0x00050041,0x00000242, - 0x0000068a,0x00000657,0x00000210,0x0004003d,0x00000030,0x0000068b,0x0000068a,0x0008004f, - 0x00000010,0x0000068c,0x0000068b,0x0000068b,0x00000000,0x00000001,0x00000002,0x0004003d, - 0x00000008,0x0000068d,0x00000671,0x0005008e,0x00000010,0x0000068e,0x0000068c,0x0000068d, - 0x00050081,0x00000010,0x0000068f,0x00000689,0x0000068e,0x00050041,0x00000242,0x00000690, - 0x00000657,0x00000319,0x0004003d,0x00000030,0x00000691,0x00000690,0x0008004f,0x00000010, - 0x00000692,0x00000691,0x00000691,0x00000000,0x00000001,0x00000002,0x0004003d,0x00000008, - 0x00000693,0x00000674,0x0005008e,0x00000010,0x00000694,0x00000692,0x00000693,0x00050081, - 0x00000010,0x00000695,0x0000068f,0x00000694,0x0003003e,0x00000681,0x00000695,0x00050041, - 0x0000066a,0x00000697,0x00000657,0x000001e0,0x0004003d,0x000000e5,0x00000698,0x00000697, - 0x0004003d,0x00000010,0x00000699,0x00000681,0x00050051,0x00000008,0x0000069a,0x00000699, - 0x00000000,0x00050051,0x00000008,0x0000069b,0x00000699,0x00000001,0x00050051,0x00000008, - 0x0000069c,0x00000699,0x00000002,0x00070050,0x00000030,0x0000069d,0x0000069a,0x0000069b, - 0x0000069c,0x000000dc,0x00050091,0x00000030,0x0000069e,0x00000698,0x0000069d,0x0008004f, - 0x00000010,0x0000069f,0x0000069e,0x0000069e,0x00000000,0x00000001,0x00000002,0x0003003e, - 0x00000696,0x0000069f,0x00050041,0x0000066a,0x000006a1,0x00000657,0x000001e0,0x0004003d, - 0x000000e5,0x000006a2,0x000006a1,0x00050041,0x00000242,0x000006a3,0x00000657,0x00000210, - 0x0004003d,0x00000030,0x000006a4,0x000006a3,0x0008004f,0x00000010,0x000006a5,0x000006a4, - 0x000006a4,0x00000000,0x00000001,0x00000002,0x00050041,0x00000242,0x000006a6,0x00000657, - 0x000001d9,0x0004003d,0x00000030,0x000006a7,0x000006a6,0x0008004f,0x00000010,0x000006a8, - 0x000006a7,0x000006a7,0x00000000,0x00000001,0x00000002,0x00050083,0x00000010,0x000006a9, - 0x000006a5,0x000006a8,0x00050051,0x00000008,0x000006aa,0x000006a9,0x00000000,0x00050051, - 0x00000008,0x000006ab,0x000006a9,0x00000001,0x00050051,0x00000008,0x000006ac,0x000006a9, - 0x00000002,0x00070050,0x00000030,0x000006ad,0x000006aa,0x000006ab,0x000006ac,0x000000cc, - 0x00050091,0x00000030,0x000006ae,0x000006a2,0x000006ad,0x0008004f,0x00000010,0x000006af, - 0x000006ae,0x000006ae,0x00000000,0x00000001,0x00000002,0x0003003e,0x000006a0,0x000006af, - 0x00050041,0x0000066a,0x000006b1,0x00000657,0x000001e0,0x0004003d,0x000000e5,0x000006b2, - 0x000006b1,0x00050041,0x00000242,0x000006b3,0x00000657,0x00000319,0x0004003d,0x00000030, - 0x000006b4,0x000006b3,0x0008004f,0x00000010,0x000006b5,0x000006b4,0x000006b4,0x00000000, - 0x00000001,0x00000002,0x00050041,0x00000242,0x000006b6,0x00000657,0x000001d9,0x0004003d, - 0x00000030,0x000006b7,0x000006b6,0x0008004f,0x00000010,0x000006b8,0x000006b7,0x000006b7, - 0x00000000,0x00000001,0x00000002,0x00050083,0x00000010,0x000006b9,0x000006b5,0x000006b8, - 0x00050051,0x00000008,0x000006ba,0x000006b9,0x00000000,0x00050051,0x00000008,0x000006bb, - 0x000006b9,0x00000001,0x00050051,0x00000008,0x000006bc,0x000006b9,0x00000002,0x00070050, - 0x00000030,0x000006bd,0x000006ba,0x000006bb,0x000006bc,0x000000cc,0x00050091,0x00000030, - 0x000006be,0x000006b2,0x000006bd,0x0008004f,0x00000010,0x000006bf,0x000006be,0x000006be, - 0x00000000,0x00000001,0x00000002,0x0003003e,0x000006b0,0x000006bf,0x0004003d,0x00000010, - 0x000006c1,0x000006a0,0x0004003d,0x00000010,0x000006c2,0x000006b0,0x0007000c,0x00000010, - 0x000006c3,0x00000001,0x00000044,0x000006c1,0x000006c2,0x0003003e,0x000006c0,0x000006c3, - 0x0004003d,0x00000010,0x000006c5,0x000006c0,0x0006000c,0x00000008,0x000006c6,0x00000001, - 0x00000042,0x000006c5,0x0003003e,0x000006c4,0x000006c6,0x0004003d,0x00000008,0x000006c7, - 0x000006c4,0x000500b8,0x0000005d,0x000006c9,0x000006c7,0x000006c8,0x000300f7,0x000006cb, - 0x00000000,0x000400fa,0x000006c9,0x000006ca,0x000006cb,0x000200f8,0x000006ca,0x000200fe, - 0x0000010d,0x000200f8,0x000006cb,0x0004003d,0x00000008,0x000006cd,0x000006c4,0x0004003d, - 0x00000010,0x000006ce,0x000006c0,0x00060050,0x00000010,0x000006cf,0x000006cd,0x000006cd, - 0x000006cd,0x00050088,0x00000010,0x000006d0,0x000006ce,0x000006cf,0x0003003e,0x000006c0, - 0x000006d0,0x0004003d,0x00000010,0x000006d2,0x00000696,0x0004003d,0x00000010,0x000006d3, - 0x0000007f,0x00050083,0x00000010,0x000006d4,0x000006d2,0x000006d3,0x0003003e,0x000006d1, - 0x000006d4,0x0004003d,0x00000010,0x000006d6,0x000006d1,0x0006000c,0x00000008,0x000006d7, - 0x00000001,0x00000042,0x000006d6,0x0003003e,0x000006d5,0x000006d7,0x0004003d,0x00000008, - 0x000006d8,0x000006d5,0x000500b8,0x0000005d,0x000006d9,0x000006d8,0x000004b9,0x000300f7, - 0x000006db,0x00000000,0x000400fa,0x000006d9,0x000006da,0x000006db,0x000200f8,0x000006da, - 0x000200fe,0x0000010d,0x000200f8,0x000006db,0x0004003d,0x00000010,0x000006de,0x000006d1, - 0x0004003d,0x00000008,0x000006df,0x000006d5,0x00060050,0x00000010,0x000006e0,0x000006df, - 0x000006df,0x000006df,0x00050088,0x00000010,0x000006e1,0x000006de,0x000006e0,0x0003003e, - 0x000006dd,0x000006e1,0x0004003d,0x00000010,0x000006e3,0x000006c0,0x0004003d,0x00000010, - 0x000006e4,0x000006dd,0x0004007f,0x00000010,0x000006e5,0x000006e4,0x00050094,0x00000008, - 0x000006e6,0x000006e3,0x000006e5,0x0003003e,0x000006e2,0x000006e6,0x0004003d,0x00000010, - 0x000006e8,0x00000080,0x0004003d,0x00000010,0x000006e9,0x000006dd,0x00050094,0x00000008, - 0x000006ea,0x000006e8,0x000006e9,0x0003003e,0x000006e7,0x000006ea,0x0004003d,0x00000008, - 0x000006eb,0x000006e2,0x000500bc,0x0000005d,0x000006ec,0x000006eb,0x000000cc,0x0004003d, - 0x00000008,0x000006ed,0x000006e7,0x000500bc,0x0000005d,0x000006ee,0x000006ed,0x000000cc, - 0x000500a6,0x0000005d,0x000006ef,0x000006ec,0x000006ee,0x000300f7,0x000006f1,0x00000000, - 0x000400fa,0x000006ef,0x000006f0,0x000006f1,0x000200f8,0x000006f0,0x000200fe,0x0000010d, - 0x000200f8,0x000006f1,0x0004003d,0x00000010,0x000006f3,0x0000007f,0x0004003d,0x00000010, - 0x000006f4,0x00000080,0x0005008e,0x00000010,0x000006f5,0x000006f4,0x0000023c,0x00050081, - 0x00000010,0x000006f6,0x000006f3,0x000006f5,0x0004003d,0x00000008,0x000006f7,0x000006d5, - 0x00050083,0x00000008,0x000006f8,0x000006f7,0x0000023c,0x0003003e,0x000006f9,0x000006f6, - 0x0004003d,0x00000010,0x000006fb,0x000006dd,0x0003003e,0x000006fa,0x000006fb,0x0003003e, - 0x000006fc,0x000006f8,0x00070039,0x0000005d,0x000006fd,0x0000006a,0x000006f9,0x000006fa, - 0x000006fc,0x000300f7,0x000006ff,0x00000000,0x000400fa,0x000006fd,0x000006fe,0x000006ff, - 0x000200f8,0x000006fe,0x000200fe,0x0000010d,0x000200f8,0x000006ff,0x00050041,0x00000546, - 0x00000702,0x000000e8,0x000001d9,0x0004003d,0x000000e5,0x00000703,0x00000702,0x0004003d, - 0x00000010,0x00000704,0x0000007f,0x00050051,0x00000008,0x00000705,0x00000704,0x00000000, - 0x00050051,0x00000008,0x00000706,0x00000704,0x00000001,0x00050051,0x00000008,0x00000707, - 0x00000704,0x00000002,0x00070050,0x00000030,0x00000708,0x00000705,0x00000706,0x00000707, - 0x000000dc,0x00050091,0x00000030,0x00000709,0x00000703,0x00000708,0x0008004f,0x00000010, - 0x0000070a,0x00000709,0x00000709,0x00000000,0x00000001,0x00000002,0x0003003e,0x00000701, - 0x0000070a,0x00050041,0x00000546,0x0000070c,0x000000e8,0x000001d9,0x0004003d,0x000000e5, - 0x0000070d,0x0000070c,0x00050051,0x00000030,0x0000070e,0x0000070d,0x00000000,0x0008004f, - 0x00000010,0x0000070f,0x0000070e,0x0000070e,0x00000000,0x00000001,0x00000002,0x00050051, - 0x00000030,0x00000710,0x0000070d,0x00000001,0x0008004f,0x00000010,0x00000711,0x00000710, - 0x00000710,0x00000000,0x00000001,0x00000002,0x00050051,0x00000030,0x00000712,0x0000070d, - 0x00000002,0x0008004f,0x00000010,0x00000713,0x00000712,0x00000712,0x00000000,0x00000001, - 0x00000002,0x00060050,0x000003e5,0x00000714,0x0000070f,0x00000711,0x00000713,0x0004003d, - 0x00000010,0x00000715,0x00000080,0x00050091,0x00000010,0x00000716,0x00000714,0x00000715, - 0x0006000c,0x00000010,0x00000717,0x00000001,0x00000045,0x00000716,0x0003003e,0x0000070b, - 0x00000717,0x0004003d,0x00000010,0x00000719,0x00000701,0x0004007f,0x00000010,0x0000071a, - 0x00000719,0x0006000c,0x00000010,0x0000071b,0x00000001,0x00000045,0x0000071a,0x0003003e, - 0x00000718,0x0000071b,0x00050041,0x00000546,0x0000071d,0x000000e8,0x000001d9,0x0004003d, - 0x000000e5,0x0000071e,0x0000071d,0x0004003d,0x00000010,0x0000071f,0x000006dd,0x00050051, - 0x00000008,0x00000720,0x0000071f,0x00000000,0x00050051,0x00000008,0x00000721,0x0000071f, - 0x00000001,0x00050051,0x00000008,0x00000722,0x0000071f,0x00000002,0x00070050,0x00000030, - 0x00000723,0x00000720,0x00000721,0x00000722,0x000000cc,0x00050091,0x00000030,0x00000724, - 0x0000071e,0x00000723,0x0008004f,0x00000010,0x00000725,0x00000724,0x00000724,0x00000000, - 0x00000001,0x00000002,0x0006000c,0x00000010,0x00000726,0x00000001,0x00000045,0x00000725, - 0x0003003e,0x0000071c,0x00000726,0x00060041,0x0000002a,0x00000727,0x00000081,0x000000e9, - 0x00000137,0x0004003d,0x00000008,0x00000728,0x00000727,0x000500ba,0x0000005d,0x00000729, - 0x00000728,0x000000f6,0x000300f7,0x0000072b,0x00000000,0x000400fa,0x00000729,0x0000072a, - 0x00000738,0x000200f8,0x0000072a,0x0004003d,0x00000010,0x0000072e,0x0000070b,0x0003003e, - 0x0000072d,0x0000072e,0x0004003d,0x00000010,0x00000730,0x00000718,0x0003003e,0x0000072f, - 0x00000730,0x0004003d,0x00000010,0x00000732,0x0000071c,0x0003003e,0x00000731,0x00000732, - 0x0004003d,0x00000033,0x00000734,0x00000081,0x0003003e,0x00000733,0x00000734,0x00080039, - 0x00000010,0x00000735,0x00000056,0x0000072d,0x0000072f,0x00000731,0x00000733,0x0004003d, - 0x00000008,0x00000736,0x000006e7,0x0005008e,0x00000010,0x00000737,0x00000735,0x00000736, - 0x0003003e,0x0000072c,0x00000737,0x000200f9,0x0000072b,0x000200f8,0x00000738,0x0004003d, - 0x00000010,0x0000073a,0x0000071c,0x0004003d,0x00000010,0x0000073b,0x00000718,0x00050081, - 0x00000010,0x0000073c,0x0000073a,0x0000073b,0x0006000c,0x00000010,0x0000073d,0x00000001, - 0x00000045,0x0000073c,0x0003003e,0x00000739,0x0000073d,0x0004003d,0x00000010,0x0000073f, - 0x0000070b,0x0004003d,0x00000010,0x00000740,0x00000739,0x00050094,0x00000008,0x00000741, - 0x0000073f,0x00000740,0x0007000c,0x00000008,0x00000742,0x00000001,0x00000028,0x00000741, - 0x000000cc,0x0003003e,0x0000073e,0x00000742,0x00060041,0x0000002a,0x00000744,0x00000081, - 0x000001e0,0x000000c2,0x0004003d,0x00000008,0x00000745,0x00000744,0x00050085,0x00000008, - 0x00000746,0x00000745,0x00000513,0x0007000c,0x00000008,0x00000747,0x00000001,0x00000028, - 0x00000746,0x000000cc,0x0003003e,0x00000743,0x00000747,0x0004003d,0x00000008,0x00000749, - 0x00000743,0x000500ba,0x0000005d,0x0000074a,0x00000749,0x000000cc,0x000300f7,0x0000074d, - 0x00000000,0x000400fa,0x0000074a,0x0000074c,0x00000751,0x000200f8,0x0000074c,0x0004003d, - 0x00000008,0x0000074e,0x0000073e,0x0004003d,0x00000008,0x0000074f,0x00000743,0x0007000c, - 0x00000008,0x00000750,0x00000001,0x0000001a,0x0000074e,0x0000074f,0x0003003e,0x0000074b, - 0x00000750,0x000200f9,0x0000074d,0x000200f8,0x00000751,0x0003003e,0x0000074b,0x000000cc, - 0x000200f9,0x0000074d,0x000200f8,0x0000074d,0x0004003d,0x00000008,0x00000752,0x0000074b, - 0x0003003e,0x00000748,0x00000752,0x00050041,0x00000242,0x00000753,0x00000081,0x000001d9, - 0x0004003d,0x00000030,0x00000754,0x00000753,0x0008004f,0x00000010,0x00000755,0x00000754, - 0x00000754,0x00000000,0x00000001,0x00000002,0x0004003d,0x00000008,0x00000756,0x000006e7, - 0x0005008e,0x00000010,0x00000757,0x00000755,0x00000756,0x00050041,0x00000242,0x00000758, - 0x00000081,0x00000319,0x0004003d,0x00000030,0x00000759,0x00000758,0x0008004f,0x00000010, - 0x0000075a,0x00000759,0x00000759,0x00000000,0x00000001,0x00000002,0x0004003d,0x00000008, - 0x0000075b,0x00000748,0x0005008e,0x00000010,0x0000075c,0x0000075a,0x0000075b,0x00050081, - 0x00000010,0x0000075d,0x00000757,0x0000075c,0x0003003e,0x0000072c,0x0000075d,0x000200f9, - 0x0000072b,0x000200f8,0x0000072b,0x0004003d,0x00000008,0x0000075f,0x00000644,0x0004003d, - 0x00000008,0x00000760,0x0000066c,0x00050085,0x00000008,0x00000761,0x0000075f,0x00000760, - 0x00050088,0x00000008,0x00000762,0x000000dc,0x00000761,0x0003003e,0x0000075e,0x00000762, - 0x00050041,0x00000242,0x00000763,0x00000657,0x0000031b,0x0004003d,0x00000030,0x00000764, - 0x00000763,0x0008004f,0x00000010,0x00000765,0x00000764,0x00000764,0x00000000,0x00000001, - 0x00000002,0x0004003d,0x00000010,0x00000766,0x0000072c,0x00050085,0x00000010,0x00000767, - 0x00000765,0x00000766,0x0004003d,0x00000008,0x00000768,0x000006e2,0x0005008e,0x00000010, - 0x00000769,0x00000767,0x00000768,0x0004003d,0x00000008,0x0000076a,0x000006d5,0x0004003d, - 0x00000008,0x0000076b,0x000006d5,0x00050085,0x00000008,0x0000076c,0x0000076a,0x0000076b, - 0x0004003d,0x00000008,0x0000076d,0x0000075e,0x00050085,0x00000008,0x0000076e,0x0000076c, - 0x0000076d,0x0007000c,0x00000008,0x0000076f,0x00000001,0x00000028,0x0000076e,0x0000066f, - 0x00060050,0x00000010,0x00000770,0x0000076f,0x0000076f,0x0000076f,0x00050088,0x00000010, - 0x00000771,0x00000769,0x00000770,0x000200fe,0x00000771,0x00010038 + 0x5b346676,0x762d5d38,0x385b3466,0x66762d5d,0x5d385b34,0x3466762d,0x3466762d,0x66763b31, + 0x00003b33,0x00050005,0x0000007f,0x6c726f77,0x736f5064,0x00000000,0x00040005,0x00000080, + 0x6c726f77,0x00004e64,0x00030005,0x00000081,0x0074616d,0x00050005,0x00000082,0x706d6173, + 0x6958656c,0x00000000,0x00030005,0x00000085,0x00000073,0x00040005,0x000000b2,0x61726170, + 0x0000006d,0x00040005,0x000000b4,0x61726170,0x0000006d,0x00040005,0x000000b6,0x61726170, + 0x0000006d,0x00040005,0x000000bc,0x61726170,0x0000006d,0x00040005,0x000000be,0x61726170, + 0x0000006d,0x00040005,0x000000c0,0x61726170,0x0000006d,0x00030005,0x000000c9,0x00000061, + 0x00030005,0x000000cf,0x00696870,0x00050005,0x000000e6,0x6d617246,0x6f6c4265,0x00006b63, + 0x00050006,0x000000e6,0x00000000,0x69765f75,0x00007765,0x00070006,0x000000e6,0x00000001, + 0x69765f75,0x6e497765,0x73726576,0x00000065,0x00070006,0x000000e6,0x00000002,0x72705f75, + 0x6e496a6f,0x73726576,0x00000065,0x00060006,0x000000e6,0x00000003,0x61635f75,0x6172656d, + 0x00736f50,0x00060006,0x000000e6,0x00000004,0x69765f75,0x6f707765,0x00007472,0x00050006, + 0x000000e6,0x00000005,0x67625f75,0x00706f54,0x00060006,0x000000e6,0x00000006,0x67625f75, + 0x74746f42,0x00006d6f,0x00050006,0x000000e6,0x00000007,0x74735f75,0x00657461,0x00060006, + 0x000000e6,0x00000008,0x64615f75,0x69747061,0x00006576,0x00070006,0x000000e6,0x00000009, + 0x72705f75,0x69567665,0x72507765,0x00006a6f,0x00060006,0x000000e6,0x0000000a,0x65745f75, + 0x726f706d,0x00006c61,0x00050006,0x000000e6,0x0000000b,0x656e5f75,0x00000065,0x00050006, + 0x000000e6,0x0000000c,0x6e655f75,0x00000076,0x00060006,0x000000e6,0x0000000d,0x6e655f75, + 0x6c6f4376,0x0000726f,0x00060006,0x000000e6,0x0000000e,0x6e655f75,0x6f6f5276,0x0000006d, + 0x00070006,0x000000e6,0x0000000f,0x6e655f75,0x6f6f5276,0x6f6c466d,0x0000726f,0x00070006, + 0x000000e6,0x00000010,0x6e655f75,0x6f6f5276,0x6965436d,0x0000006c,0x00070006,0x000000e6, + 0x00000011,0x6e655f75,0x6f6f5276,0x6163536d,0x0000656c,0x00040005,0x000000e8,0x6d617266, + 0x00000065,0x00030005,0x000000fa,0x00000045,0x00040005,0x00000100,0x6f6f6c66,0x00005972, + 0x00040005,0x00000104,0x6c696563,0x00000059,0x00030005,0x00000107,0x0000006e,0x00030005, + 0x0000010a,0x00000074,0x00040005,0x0000010c,0x6f6c6f63,0x00000072,0x00030005,0x00000114, + 0x00007874,0x00030005,0x00000128,0x00007874,0x00030005,0x0000013d,0x00007a74,0x00030005, + 0x00000150,0x00007a74,0x00030005,0x00000164,0x00007974,0x00030005,0x0000017a,0x00007974, + 0x00030005,0x0000018d,0x00000074,0x00030005,0x000001a0,0x0000006e,0x00030005,0x000001a3, + 0x00766e65,0x00040005,0x000001a4,0x61726170,0x0000006d,0x00030005,0x000001aa,0x00000064, + 0x00030005,0x000001af,0x006e7573,0x00030005,0x000001c1,0x00007075,0x00040005,0x000001cc, + 0x676e6174,0x00746e65,0x00050005,0x000001d1,0x61746962,0x6e65676e,0x00000074,0x00040005, + 0x000001d5,0x73616870,0x00000065,0x00030005,0x000001d6,0x00727269,0x00030005,0x000001d8, + 0x00000069,0x00030005,0x000001e2,0x00006966,0x00040005,0x000001e9,0x54736f63,0x00000000, + 0x00040005,0x000001f1,0x546e6973,0x00000000,0x00030005,0x000001f8,0x00726964,0x00040005, + 0x0000020a,0x61726170,0x0000006d,0x00030005,0x0000021c,0x00006e72,0x00040005,0x0000021f, + 0x67756f72,0x00000068,0x00050005,0x00000222,0x69646172,0x65636e61,0x00000000,0x00040005, + 0x00000223,0x61726170,0x0000006d,0x00050005,0x00000226,0x416e7573,0x6e67696c,0x00000000, + 0x00030005,0x0000024d,0x00003261,0x00030005,0x00000251,0x00000064,0x00030005,0x00000263, + 0x0000006b,0x00040005,0x00000271,0x61726170,0x0000006d,0x00040005,0x00000273,0x61726170, + 0x0000006d,0x00040005,0x00000276,0x61726170,0x0000006d,0x00040005,0x00000278,0x61726170, + 0x0000006d,0x00030005,0x0000028b,0x00000048,0x00040005,0x00000290,0x746f644e,0x00000056, + 0x00040005,0x00000296,0x746f644e,0x0000004c,0x00040005,0x0000029b,0x746f644e,0x00000048, + 0x00040005,0x000002a0,0x746f6456,0x00000048,0x00030005,0x000002a5,0x00000061,0x00040005, + 0x000002a6,0x61726170,0x0000006d,0x00030005,0x000002a9,0x00000046,0x00040005,0x000002aa, + 0x61726170,0x0000006d,0x00040005,0x000002ad,0x61726170,0x0000006d,0x00040005,0x000002af, + 0x61726170,0x0000006d,0x00030005,0x000002b1,0x0000646b,0x00040005,0x000002c1,0x61726170, + 0x0000006d,0x00040005,0x000002c3,0x61726170,0x0000006d,0x00040005,0x000002c7,0x61726170, + 0x0000006d,0x00040005,0x000002c9,0x61726170,0x0000006d,0x00040005,0x000002cb,0x61726170, + 0x0000006d,0x00030005,0x000002d9,0x00696870,0x00050005,0x000002dd,0x54736f63,0x61746568, + 0x00000000,0x00050005,0x000002ec,0x546e6973,0x61746568,0x00000000,0x00030005,0x00000301, + 0x00000071,0x00040005,0x00000304,0x73616c74,0x00000000,0x00030005,0x00000311,0x00000068, + 0x00030005,0x00000332,0x0074616d,0x00050005,0x00000339,0x614d5452,0x69726574,0x00006c61, + 0x00050006,0x00000339,0x00000000,0x66666964,0x00657375,0x00050006,0x00000339,0x00000001, + 0x69626d61,0x00746e65,0x00060006,0x00000339,0x00000002,0x63657073,0x72616c75,0x00000000, + 0x00060006,0x00000339,0x00000003,0x73696d65,0x65766973,0x00000000,0x00050006,0x00000339, + 0x00000004,0x61726170,0x0000736d,0x00060006,0x00000339,0x00000005,0x6867696c,0x70795474, + 0x00000065,0x00060006,0x00000339,0x00000006,0x6867696c,0x6c6f4374,0x0000726f,0x00070006, + 0x00000339,0x00000007,0x6867696c,0x72694474,0x69746365,0x00006e6f,0x00070006,0x00000339, + 0x00000008,0x6867696c,0x736f5074,0x6f697469,0x0000006e,0x00080006,0x00000339,0x00000009, + 0x6867696c,0x74744174,0x61756e65,0x6e6f6974,0x00000000,0x00060006,0x00000339,0x0000000a, + 0x6867696c,0x6f705374,0x00000074,0x00070006,0x00000339,0x0000000b,0x61697274,0x656c676e, + 0x61746144,0x00000000,0x00040006,0x00000339,0x0000000c,0x00726270,0x00050005,0x0000033b, + 0x6574614d,0x6c616972,0x00000073,0x00060006,0x0000033b,0x00000000,0x6574616d,0x6c616972, + 0x00000073,0x00050005,0x0000033d,0x4274616d,0x65666675,0x00000072,0x00040005,0x000003c3, + 0x6d697270,0x00000000,0x00050005,0x000003c6,0x6d726f6e,0x6e496c61,0x00786564,0x00040005, + 0x000003cc,0x4e6a626f,0x00000000,0x00050005,0x000003ce,0x6d726f4e,0x6f506c61,0x00006c6f, + 0x00070006,0x000003ce,0x00000000,0x61697274,0x656c676e,0x6d726f4e,0x00736c61,0x00070005, + 0x000003d0,0x6d726f6e,0x6f506c61,0x75426c6f,0x72656666,0x00000000,0x00050005,0x000003e2, + 0x546a626f,0x726f576f,0x0000646c,0x00040005,0x000003f4,0x61526f74,0x00000079,0x00060005, + 0x00000408,0x6e617274,0x74696d73,0x636e6174,0x00000065,0x00050005,0x00000409,0x4f727563, + 0x69676972,0x0000006e,0x00040005,0x0000040b,0x4d727563,0x00007861,0x00030005,0x0000040d, + 0x00000069,0x00030005,0x00000415,0x00000071,0x00030005,0x00000425,0x0074616d,0x00040005, + 0x000004a3,0x68706c61,0x00000061,0x00040005,0x000004b6,0x54746968,0x00000000,0x00040005, + 0x000004b8,0x65766f6d,0x00000064,0x00030005,0x000004c8,0x0000004e,0x00030005,0x000004cb, + 0x00007075,0x00030005,0x000004d2,0x00000054,0x00030005,0x000004d7,0x00000042,0x00040005, + 0x000004db,0x73616870,0x00000065,0x00030005,0x000004df,0x00000050,0x00040005,0x000004e4, + 0x69736976,0x00656c62,0x00030005,0x000004e5,0x00000069,0x00030005,0x000004ed,0x00006966, + 0x00030005,0x000004f2,0x00696870,0x00040005,0x000004f5,0x54736f63,0x00000000,0x00040005, + 0x000004fc,0x546e6973,0x00000000,0x00030005,0x00000503,0x00726964,0x00040005,0x00000515, + 0x61726170,0x0000006d,0x00040005,0x00000517,0x61726170,0x0000006d,0x00040005,0x00000519, + 0x61726170,0x0000006d,0x00030005,0x00000523,0x0000004e,0x00030005,0x00000526,0x00000056, + 0x00050005,0x0000053b,0x4374696c,0x726f6c6f,0x00000000,0x00050005,0x0000053f,0x6867696c, + 0x756f4374,0x0000746e,0x00030005,0x00000543,0x00000069,0x00030005,0x00000551,0x0000004c, + 0x00050005,0x00000556,0x65747461,0x7461756e,0x006e6f69,0x00050005,0x00000557,0x746f7073, + 0x74636146,0x0000726f,0x00050005,0x0000055e,0x6867696c,0x63655674,0x00726f74,0x00060005, + 0x00000565,0x74736964,0x65636e61,0x694c6f54,0x00746867,0x00030005,0x00000571,0x00747461, + 0x00040005,0x0000058d,0x656e6f63,0x00726944,0x00050005,0x00000593,0x6d6f7266,0x6867694c, + 0x00000074,0x00040005,0x0000059b,0x746f7073,0x00736f43,0x00030005,0x000005ad,0x00006e4c, + 0x00040005,0x000005b0,0x746f644e,0x0000004c,0x00030005,0x000005b5,0x00000048,0x00040005, + 0x000005ba,0x746f644e,0x00000048,0x00050005,0x000005bf,0x6e696873,0x73656e69,0x00000073, + 0x00060005,0x000005c5,0x63657073,0x72616c75,0x74636146,0x0000726f,0x00040005,0x000005d0, + 0x66666964,0x00657375,0x00050005,0x000005d4,0x63657073,0x72616c75,0x00000000,0x00030005, + 0x000005f4,0x0000004e,0x00030005,0x000005f7,0x00000056,0x00030005,0x000005fe,0x0074696c, + 0x00050005,0x00000602,0x6867696c,0x756f4374,0x0000746e,0x00030005,0x00000606,0x00000069, + 0x00050005,0x00000614,0x65747461,0x7461756e,0x006e6f69,0x00050005,0x00000615,0x746f7073, + 0x74636146,0x0000726f,0x00050005,0x00000616,0x74736964,0x694c6f54,0x00746867,0x00050005, + 0x0000061d,0x6867696c,0x63655674,0x00726f74,0x00030005,0x0000062b,0x0000004c,0x00030005, + 0x00000630,0x00747461,0x00040005,0x0000064b,0x656e6f63,0x00726944,0x00050005,0x00000651, + 0x6d6f7266,0x6867694c,0x00000074,0x00040005,0x00000659,0x746f7073,0x00736f43,0x00040005, + 0x00000672,0x746f644e,0x0000004c,0x00040005,0x0000067b,0x6e617274,0x00006d73,0x00040005, + 0x00000682,0x61726170,0x0000006d,0x00040005,0x00000683,0x61726170,0x0000006d,0x00040005, + 0x00000685,0x61726170,0x0000006d,0x00060005,0x00000691,0x746e6f63,0x75626972,0x6e6f6974, + 0x00000000,0x00040005,0x00000694,0x61726170,0x0000006d,0x00040005,0x00000696,0x61726170, + 0x0000006d,0x00040005,0x00000698,0x61726170,0x0000006d,0x00040005,0x00000699,0x61726170, + 0x0000006d,0x00030005,0x0000069f,0x00000048,0x00040005,0x000006a5,0x746f644e,0x00000048, + 0x00050005,0x000006aa,0x6e696873,0x73656e69,0x00000073,0x00060005,0x000006af,0x63657073, + 0x72616c75,0x74636146,0x0000726f,0x00030005,0x000006db,0x0000004e,0x00030005,0x000006e3, + 0x00000074,0x00050005,0x000006ec,0x5465654e,0x6e616972,0x00656c67,0x00040006,0x000006ec, + 0x00000000,0x00003076,0x00040006,0x000006ec,0x00000001,0x00003176,0x00040006,0x000006ec, + 0x00000002,0x00003276,0x00050006,0x000006ec,0x00000003,0x6f6c6f63,0x00000072,0x00050006, + 0x000006ec,0x00000004,0x726f6678,0x0000006d,0x00030005,0x000006ee,0x0000746e,0x00050005, + 0x000006ef,0x5465654e,0x6e616972,0x00656c67,0x00040006,0x000006ef,0x00000000,0x00003076, + 0x00040006,0x000006ef,0x00000001,0x00003176,0x00040006,0x000006ef,0x00000002,0x00003276, + 0x00050006,0x000006ef,0x00000003,0x6f6c6f63,0x00000072,0x00050006,0x000006ef,0x00000004, + 0x726f6678,0x0000006d,0x00040005,0x000006f1,0x5065654e,0x006c6f6f,0x00060006,0x000006f1, + 0x00000000,0x61697274,0x656c676e,0x00000073,0x00040005,0x000006f3,0x5065656e,0x006c6f6f, + 0x00040005,0x00000703,0x61657261,0x00000000,0x00030005,0x00000708,0x00003062,0x00030005, + 0x0000070b,0x00003162,0x00040005,0x00000718,0x6a624f70,0x00000000,0x00040005,0x0000072d, + 0x726f5770,0x0000646c,0x00030005,0x00000737,0x00003165,0x00030005,0x00000747,0x00003265, + 0x00040005,0x00000757,0x6867696c,0x00004e74,0x00050005,0x0000075b,0x6867696c,0x654c4e74, + 0x0000006e,0x00040005,0x00000768,0x694c6f74,0x00746867,0x00040005,0x0000076c,0x74736964, + 0x00000000,0x00030005,0x00000774,0x0000004c,0x00040005,0x00000779,0x4c736f63,0x00000000, + 0x00040005,0x0000077e,0x53736f63,0x00000000,0x00040005,0x0000078a,0x6e617274,0x00006d73, + 0x00040005,0x00000791,0x61726170,0x0000006d,0x00040005,0x00000792,0x61726170,0x0000006d, + 0x00040005,0x00000794,0x61726170,0x0000006d,0x00040005,0x0000079b,0x64616873,0x00004e65, + 0x00040005,0x0000079e,0x64616873,0x00005665,0x00060005,0x000007aa,0x746e6f63,0x75626972, + 0x6e6f6974,0x00000000,0x00040005,0x000007ab,0x61726170,0x0000006d,0x00040005,0x000007ad, + 0x61726170,0x0000006d,0x00040005,0x000007af,0x61726170,0x0000006d,0x00040005,0x000007b1, + 0x61726170,0x0000006d,0x00030005,0x000007b7,0x00000048,0x00040005,0x000007bc,0x746f644e, + 0x00000048,0x00050005,0x000007c1,0x6e696873,0x73656e69,0x00000073,0x00060005,0x000007c6, + 0x63657073,0x72616c75,0x74636146,0x0000726f,0x00030005,0x000007dc,0x00666470,0x00030005, + 0x000007f6,0x00007870,0x00080005,0x000007f9,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f, + 0x496e6f69,0x00000044,0x00050005,0x00000811,0x6d617266,0x646e4965,0x00007865,0x00050005, + 0x00000816,0x6e457470,0x656c6261,0x00000064,0x00060005,0x00000819,0x75636361,0x616c756d, + 0x676e6974,0x00000000,0x00050005,0x0000081c,0x4278616d,0x636e756f,0x00007365,0x00040005, + 0x00000822,0x65646e69,0x00000078,0x00040005,0x00000847,0x6572506e,0x00000076,0x00050005, + 0x00000849,0x75636341,0x6675426d,0x00726566,0x00050006,0x00000849,0x00000000,0x75636361, + 0x0000006d,0x00030005,0x0000084b,0x00000000,0x00050005,0x00000851,0x536e696d,0x6c706d61, + 0x00007365,0x00040005,0x0000085b,0x6e61656d,0x00000000,0x00030005,0x00000864,0x00003276, + 0x00050005,0x00000866,0x536d7553,0x66754271,0x00726566,0x00040006,0x00000866,0x00000000, + 0x00007173,0x00030005,0x00000868,0x00000000,0x00040005,0x00000876,0x566c6572,0x00007261, + 0x00030005,0x0000087f,0x0000326d,0x00060005,0x00000892,0x726f7473,0x49656761,0x6567616d, + 0x00000000,0x00040005,0x000008a0,0x7474696a,0x00007265,0x00040005,0x000008a9,0x61726170, + 0x0000006d,0x00040005,0x000008ac,0x61726170,0x0000006d,0x00040005,0x000008af,0x61726170, + 0x0000006d,0x00030005,0x000008b2,0x00007675,0x00030005,0x000008bd,0x0063646e,0x00050005, + 0x000008c7,0x77656976,0x67726154,0x00007465,0x00040005,0x000008d0,0x56726964,0x00776569, + 0x00040005,0x000008dc,0x6769726f,0x00006e69,0x00030005,0x000008e6,0x00726964,0x00030005, + 0x00000901,0x00000068,0x00040005,0x00000902,0x61726170,0x0000006d,0x00040005,0x00000904, + 0x61726170,0x0000006d,0x00040005,0x00000906,0x61726170,0x0000006d,0x00030005,0x0000091a, + 0x00000068,0x00040005,0x0000091b,0x61726170,0x0000006d,0x00040005,0x0000091d,0x61726170, + 0x0000006d,0x00040005,0x0000091f,0x61726170,0x0000006d,0x00030005,0x00000921,0x00626772, + 0x00030005,0x00000926,0x0074616d,0x00040005,0x000009aa,0x61726170,0x0000006d,0x00040005, + 0x000009ad,0x61726170,0x0000006d,0x00040005,0x000009b0,0x61726170,0x0000006d,0x00040005, + 0x000009b2,0x61726170,0x0000006d,0x00040005,0x000009bf,0x61726170,0x0000006d,0x00040005, + 0x000009c2,0x61726170,0x0000006d,0x00040005,0x000009c5,0x61726170,0x0000006d,0x00040005, + 0x000009c9,0x61726170,0x0000006d,0x00030005,0x000009d1,0x00000074,0x00040005,0x000009e8, + 0x61726170,0x0000006d,0x00030005,0x000009ff,0x00000068,0x00040005,0x00000a00,0x61726170, + 0x0000006d,0x00040005,0x00000a02,0x61726170,0x0000006d,0x00040005,0x00000a04,0x61726170, + 0x0000006d,0x00030005,0x00000a0a,0x0074616d,0x00030005,0x00000a89,0x0000004e,0x00030005, + 0x00000a8d,0x00000056,0x00040005,0x00000a90,0x66666964,0x00657375,0x00030005,0x00000a94, + 0x0000646b,0x00040005,0x00000a9b,0x61726170,0x0000006d,0x00050005,0x00000aa6,0x446c6269, + 0x75666669,0x00006573,0x00040005,0x00000aaa,0x61726170,0x0000006d,0x00050005,0x00000ab0, + 0x67756f72,0x73656e68,0x00000073,0x00030005,0x00000abc,0x00000052,0x00030005,0x00000ac1, + 0x00003046,0x00040005,0x00000ac8,0x61726170,0x0000006d,0x00040005,0x00000ad2,0x746f644e, + 0x00000056,0x00040005,0x00000ad7,0x73657246,0x00000000,0x00040005,0x00000ae0,0x536c6269, + 0x00636570,0x00040005,0x00000ae2,0x61726170,0x0000006d,0x00040005,0x00000ae4,0x61726170, + 0x0000006d,0x00030005,0x00000ae8,0x00626772,0x00040005,0x00000af1,0x61726170,0x0000006d, + 0x00040005,0x00000af4,0x61726170,0x0000006d,0x00040005,0x00000af7,0x61726170,0x0000006d, + 0x00040005,0x00000af9,0x61726170,0x0000006d,0x00040005,0x00000b04,0x61726170,0x0000006d, + 0x00040005,0x00000b07,0x61726170,0x0000006d,0x00040005,0x00000b0a,0x61726170,0x0000006d, + 0x00040005,0x00000b0e,0x61726170,0x0000006d,0x00060005,0x00000b19,0x6d726f4e,0x75426c61, + 0x72656666,0x00000000,0x00050006,0x00000b19,0x00000000,0x6d726f6e,0x00736c61,0x00030005, + 0x00000b1b,0x00000000,0x00060005,0x00000b25,0x69736f50,0x6e6f6974,0x66667542,0x00007265, + 0x00060006,0x00000b25,0x00000000,0x69736f70,0x6e6f6974,0x00000073,0x00030005,0x00000b27, + 0x00000000,0x00060005,0x00000b33,0x65626c41,0x75426f64,0x72656666,0x00000000,0x00050006, + 0x00000b33,0x00000000,0x65626c61,0x00736f64,0x00030005,0x00000b35,0x00000000,0x00040005, + 0x00000b40,0x61726170,0x0000006d,0x00030005,0x00000b60,0x00000068,0x00040005,0x00000b61, + 0x61726170,0x0000006d,0x00040005,0x00000b63,0x61726170,0x0000006d,0x00040005,0x00000b65, + 0x61726170,0x0000006d,0x00030005,0x00000b6b,0x0074616d,0x00030005,0x00000bea,0x00006f61, + 0x00040005,0x00000beb,0x61726170,0x0000006d,0x00040005,0x00000bee,0x61726170,0x0000006d, + 0x00040005,0x00000bf1,0x61726170,0x0000006d,0x00040005,0x00000bf4,0x61726170,0x0000006d, + 0x00040005,0x00000bf7,0x61726170,0x0000006d,0x00040005,0x00000bfa,0x61726170,0x0000006d, + 0x00030005,0x00000c01,0x00626772,0x00040005,0x00000c07,0x61726170,0x0000006d,0x00040005, + 0x00000c0a,0x61726170,0x0000006d,0x00040005,0x00000c0d,0x61726170,0x0000006d,0x00040005, + 0x00000c0f,0x61726170,0x0000006d,0x00040005,0x00000c22,0x61726170,0x0000006d,0x00040005, + 0x00000c25,0x61726170,0x0000006d,0x00040005,0x00000c28,0x61726170,0x0000006d,0x00040005, + 0x00000c2c,0x61726170,0x0000006d,0x00030005,0x00000c5a,0x00000074,0x00040005,0x00000c71, + 0x61726170,0x0000006d,0x00050005,0x00000c80,0x69646172,0x65636e61,0x00000000,0x00040005, + 0x00000c81,0x67696577,0x00007468,0x00050005,0x00000c82,0x4f796172,0x69676972,0x0000006e, + 0x00040005,0x00000c84,0x44796172,0x00007269,0x00040005,0x00000c86,0x7473616c,0x00666450, + 0x00040005,0x00000c87,0x6e756f62,0x00006563,0x00030005,0x00000c90,0x00000068,0x00040005, + 0x00000c91,0x61726170,0x0000006d,0x00040005,0x00000c93,0x61726170,0x0000006d,0x00040005, + 0x00000c95,0x61726170,0x0000006d,0x00030005,0x00000c9c,0x00000074,0x00040005,0x00000ca5, + 0x4d766e65,0x00737369,0x00040005,0x00000ca6,0x61726170,0x0000006d,0x00060005,0x00000cd0, + 0x69746f4d,0x75426e6f,0x72656666,0x00000000,0x00050006,0x00000cd0,0x00000000,0x69746f6d, + 0x00736e6f,0x00030005,0x00000cd2,0x00000000,0x00050005,0x00000cec,0x76657270,0x70696c43, + 0x00000000,0x00040005,0x00000cf6,0x65766f6d,0x00000000,0x00040005,0x00000cf8,0x696c6176, + 0x00000064,0x00040005,0x00000cfe,0x76657270,0x0063644e,0x00030005,0x00000d27,0x0074616d, + 0x00060005,0x00000db3,0x73696d65,0x6e6f6973,0x67696557,0x00007468,0x00040005,0x00000dc9, + 0x6c6f6f70,0x00786449,0x00040005,0x00000ddc,0x61657261,0x00746948,0x00040005,0x00000de1, + 0x65654e70,0x00000000,0x00040005,0x00000de7,0x64734270,0x00000066,0x00040005,0x00000e0a, + 0x68706c61,0x00000061,0x00040005,0x00000e11,0x61726170,0x0000006d,0x00040005,0x00000e14, + 0x61726170,0x0000006d,0x00040005,0x00000e17,0x61726170,0x0000006d,0x00040005,0x00000e19, + 0x61726170,0x0000006d,0x00040005,0x00000e2f,0x61726170,0x0000006d,0x00040005,0x00000e32, + 0x61726170,0x0000006d,0x00040005,0x00000e35,0x61726170,0x0000006d,0x00040005,0x00000e37, + 0x61726170,0x0000006d,0x00040005,0x00000e3a,0x61726170,0x0000006d,0x00040005,0x00000e3d, + 0x61726170,0x0000006d,0x00040005,0x00000e3f,0x61726170,0x0000006d,0x00030005,0x00000e44, + 0x0000006e,0x00040005,0x00000e48,0x65626c61,0x00006f64,0x00030005,0x00000e5f,0x00007075, + 0x00040005,0x00000e67,0x676e6174,0x00746e65,0x00050005,0x00000e6c,0x61746962,0x6e65676e, + 0x00000074,0x00030005,0x00000e70,0x00000056,0x00040005,0x00000e73,0x746f644e,0x00000056, + 0x00050005,0x00000e78,0x6174656d,0x63696c6c,0x00000000,0x00030005,0x00000e7c,0x00000061, + 0x00040005,0x00000e7d,0x61726170,0x0000006d,0x00030005,0x00000e80,0x00003046,0x00040005, + 0x00000e81,0x61726170,0x0000006d,0x00030005,0x00000e84,0x00007646,0x00040005,0x00000e85, + 0x61726170,0x0000006d,0x00040005,0x00000e87,0x61726170,0x0000006d,0x00030005,0x00000e8a, + 0x00003275,0x00040005,0x00000e92,0x61726170,0x0000006d,0x00040005,0x00000e95,0x61726170, + 0x0000006d,0x00040005,0x00000e98,0x61726170,0x0000006d,0x00030005,0x00000e9f,0x00000073, + 0x00040005,0x00000ea6,0x61726170,0x0000006d,0x00040005,0x00000ea9,0x61726170,0x0000006d, + 0x00040005,0x00000eac,0x61726170,0x0000006d,0x00040005,0x00000eae,0x61726170,0x0000006d, + 0x00040005,0x00000eb0,0x4477656e,0x00007269,0x00030005,0x00000ec0,0x00666470,0x00030005, + 0x00000ec6,0x0000646b,0x00030005,0x00000eda,0x00007456,0x00030005,0x00000ee5,0x00007448, + 0x00040005,0x00000eed,0x61726170,0x0000006d,0x00040005,0x00000ef0,0x61726170,0x0000006d, + 0x00040005,0x00000ef3,0x61726170,0x0000006d,0x00040005,0x00000ef5,0x61726170,0x0000006d, + 0x00040005,0x00000ef6,0x61726170,0x0000006d,0x00030005,0x00000ef9,0x00000048,0x00030005, + 0x00000f09,0x0000004c,0x00040005,0x00000f0f,0x746f644e,0x0000004c,0x00040005,0x00000f14, + 0x746f6456,0x00000048,0x00040005,0x00000f19,0x746f644e,0x00000048,0x00030005,0x00000f28, + 0x00000046,0x00040005,0x00000f29,0x61726170,0x0000006d,0x00040005,0x00000f2b,0x61726170, + 0x0000006d,0x00030005,0x00000f2e,0x00000047,0x00040005,0x00000f2f,0x61726170,0x0000006d, + 0x00040005,0x00000f31,0x61726170,0x0000006d,0x00040005,0x00000f33,0x61726170,0x0000006d, + 0x00040005,0x00000f36,0x61726170,0x0000006d,0x00040005,0x00000f38,0x61726170,0x0000006d, + 0x00050005,0x00000f52,0x63657073,0x626f7250,0x00000000,0x00030005,0x00000f56,0x00007075, + 0x00040005,0x00000f5d,0x676e6174,0x00746e65,0x00050005,0x00000f62,0x61746962,0x6e65676e, + 0x00000074,0x00040005,0x00000f6e,0x61726170,0x0000006d,0x00040005,0x00000f71,0x61726170, + 0x0000006d,0x00040005,0x00000f74,0x61726170,0x0000006d,0x00030005,0x00000f8d,0x00000073, + 0x00040005,0x00000f94,0x61726170,0x0000006d,0x00040005,0x00000f97,0x61726170,0x0000006d, + 0x00040005,0x00000f9a,0x61726170,0x0000006d,0x00040005,0x00000f9c,0x61726170,0x0000006d, + 0x00030005,0x00000fc3,0x00000070,0x00040005,0x00000fd6,0x61726170,0x0000006d,0x00040005, + 0x00000fd9,0x61726170,0x0000006d,0x00040005,0x00000fdc,0x61726170,0x0000006d,0x00050005, + 0x00000fea,0x4374756f,0x726f6c6f,0x00000000,0x00030005,0x00000ff4,0x00636361,0x00030005, + 0x00000ff8,0x00000073,0x00060005,0x00000ffc,0x65726966,0x53796c66,0x616d6769,0x00000000, + 0x00040005,0x00001009,0x6e61656d,0x00000000,0x00030005,0x00001010,0x00003276,0x00040005, + 0x0000101c,0x6d676973,0x00000061,0x00050005,0x00001026,0x706d6173,0x754c656c,0x0000006d, + 0x00040005,0x0000102f,0x6e61656d,0x006d754c,0x00040005,0x00001056,0x43646c6f,0x0070696c, + 0x00040005,0x00001067,0x4e646c6f,0x00006364,0x00040005,0x0000106e,0x50646c6f,0x00004678, + 0x00040005,0x0000107d,0x69537076,0x0000657a,0x00050005,0x00001082,0x50646c6f,0x6c657869, + 0x00000000,0x00030005,0x000010a1,0x00000071,0x00040005,0x000010aa,0x746c6564,0x00000061, + 0x00080005,0x000010ac,0x69736f50,0x6e6f6974,0x74736948,0x4279726f,0x65666675,0x00000072, + 0x00050006,0x000010ac,0x00000000,0x48736f70,0x00747369,0x00030005,0x000010ae,0x00000000, + 0x00070005,0x000010d3,0x75636341,0x7369486d,0x79726f74,0x66667542,0x00007265,0x00060006, + 0x000010d3,0x00000000,0x75636361,0x7369486d,0x00000074,0x00030005,0x000010d5,0x00000000, + 0x00070005,0x000010da,0x536d7553,0x73694871,0x79726f74,0x66667542,0x00007265,0x00050006, + 0x000010da,0x00000000,0x69487173,0x00007473,0x00030005,0x000010dc,0x00000000,0x00060005, + 0x000010e1,0x69746341,0x6f436576,0x65746e75,0x00000072,0x00050006,0x000010e1,0x00000000, + 0x6e756f63,0x00007374,0x00030005,0x000010e3,0x00000000,0x00030047,0x000000e6,0x00000002, + 0x00040048,0x000000e6,0x00000000,0x00000005,0x00050048,0x000000e6,0x00000000,0x00000007, + 0x00000010,0x00050048,0x000000e6,0x00000000,0x00000023,0x00000000,0x00040048,0x000000e6, + 0x00000001,0x00000005,0x00050048,0x000000e6,0x00000001,0x00000007,0x00000010,0x00050048, + 0x000000e6,0x00000001,0x00000023,0x00000040,0x00040048,0x000000e6,0x00000002,0x00000005, + 0x00050048,0x000000e6,0x00000002,0x00000007,0x00000010,0x00050048,0x000000e6,0x00000002, + 0x00000023,0x00000080,0x00050048,0x000000e6,0x00000003,0x00000023,0x000000c0,0x00050048, + 0x000000e6,0x00000004,0x00000023,0x000000d0,0x00050048,0x000000e6,0x00000005,0x00000023, + 0x000000e0,0x00050048,0x000000e6,0x00000006,0x00000023,0x000000f0,0x00050048,0x000000e6, + 0x00000007,0x00000023,0x00000100,0x00050048,0x000000e6,0x00000008,0x00000023,0x00000110, + 0x00040048,0x000000e6,0x00000009,0x00000005,0x00050048,0x000000e6,0x00000009,0x00000007, + 0x00000010,0x00050048,0x000000e6,0x00000009,0x00000023,0x00000120,0x00050048,0x000000e6, + 0x0000000a,0x00000023,0x00000160,0x00050048,0x000000e6,0x0000000b,0x00000023,0x00000170, + 0x00050048,0x000000e6,0x0000000c,0x00000023,0x00000180,0x00050048,0x000000e6,0x0000000d, + 0x00000023,0x00000190,0x00050048,0x000000e6,0x0000000e,0x00000023,0x000001a0,0x00050048, + 0x000000e6,0x0000000f,0x00000023,0x000001b0,0x00050048,0x000000e6,0x00000010,0x00000023, + 0x000001c0,0x00050048,0x000000e6,0x00000011,0x00000023,0x000001d0,0x00040047,0x000000e8, + 0x00000021,0x00000002,0x00040047,0x000000e8,0x00000022,0x00000000,0x00040047,0x00000304, + 0x00000021,0x00000000,0x00040047,0x00000304,0x00000022,0x00000000,0x00040047,0x00000333, + 0x00000006,0x00000010,0x00040047,0x00000334,0x00000006,0x00000010,0x00040047,0x00000335, + 0x00000006,0x00000010,0x00040047,0x00000336,0x00000006,0x00000010,0x00040047,0x00000337, + 0x00000006,0x00000010,0x00040047,0x00000338,0x00000006,0x00000010,0x00050048,0x00000339, + 0x00000000,0x00000023,0x00000000,0x00050048,0x00000339,0x00000001,0x00000023,0x00000010, + 0x00050048,0x00000339,0x00000002,0x00000023,0x00000020,0x00050048,0x00000339,0x00000003, + 0x00000023,0x00000030,0x00050048,0x00000339,0x00000004,0x00000023,0x00000040,0x00050048, + 0x00000339,0x00000005,0x00000023,0x00000050,0x00050048,0x00000339,0x00000006,0x00000023, + 0x000000d0,0x00050048,0x00000339,0x00000007,0x00000023,0x00000150,0x00050048,0x00000339, + 0x00000008,0x00000023,0x000001d0,0x00050048,0x00000339,0x00000009,0x00000023,0x00000250, + 0x00050048,0x00000339,0x0000000a,0x00000023,0x000002d0,0x00050048,0x00000339,0x0000000b, + 0x00000023,0x00000350,0x00050048,0x00000339,0x0000000c,0x00000023,0x00000360,0x00040047, + 0x0000033a,0x00000006,0x00000370,0x00030047,0x0000033b,0x00000003,0x00050048,0x0000033b, + 0x00000000,0x00000023,0x00000000,0x00040047,0x0000033d,0x00000021,0x00000003,0x00040047, + 0x0000033d,0x00000022,0x00000000,0x00040047,0x000003cd,0x00000006,0x00000010,0x00030047, + 0x000003ce,0x00000003,0x00040048,0x000003ce,0x00000000,0x00000018,0x00050048,0x000003ce, + 0x00000000,0x00000023,0x00000000,0x00030047,0x000003d0,0x00000018,0x00040047,0x000003d0, + 0x00000021,0x00000007,0x00040047,0x000003d0,0x00000022,0x00000000,0x00050048,0x000006ef, + 0x00000000,0x00000023,0x00000000,0x00050048,0x000006ef,0x00000001,0x00000023,0x00000010, + 0x00050048,0x000006ef,0x00000002,0x00000023,0x00000020,0x00050048,0x000006ef,0x00000003, + 0x00000023,0x00000030,0x00040048,0x000006ef,0x00000004,0x00000005,0x00050048,0x000006ef, + 0x00000004,0x00000007,0x00000010,0x00050048,0x000006ef,0x00000004,0x00000023,0x00000040, + 0x00040047,0x000006f0,0x00000006,0x00000080,0x00030047,0x000006f1,0x00000003,0x00040048, + 0x000006f1,0x00000000,0x00000018,0x00050048,0x000006f1,0x00000000,0x00000023,0x00000000, + 0x00030047,0x000006f3,0x00000018,0x00040047,0x000006f3,0x00000021,0x0000000d,0x00040047, + 0x000006f3,0x00000022,0x00000000,0x00040047,0x000007f9,0x0000000b,0x0000001c,0x00040047, + 0x00000848,0x00000006,0x00000010,0x00030047,0x00000849,0x00000003,0x00050048,0x00000849, + 0x00000000,0x00000023,0x00000000,0x00040047,0x0000084b,0x00000021,0x00000004,0x00040047, + 0x0000084b,0x00000022,0x00000000,0x00040047,0x00000865,0x00000006,0x00000010,0x00030047, + 0x00000866,0x00000003,0x00050048,0x00000866,0x00000000,0x00000023,0x00000000,0x00040047, + 0x00000868,0x00000021,0x00000008,0x00040047,0x00000868,0x00000022,0x00000000,0x00040047, + 0x00000892,0x00000021,0x00000001,0x00040047,0x00000892,0x00000022,0x00000000,0x00040047, + 0x00000b18,0x00000006,0x00000010,0x00030047,0x00000b19,0x00000003,0x00050048,0x00000b19, + 0x00000000,0x00000023,0x00000000,0x00040047,0x00000b1b,0x00000021,0x00000005,0x00040047, + 0x00000b1b,0x00000022,0x00000000,0x00040047,0x00000b24,0x00000006,0x00000010,0x00030047, + 0x00000b25,0x00000003,0x00050048,0x00000b25,0x00000000,0x00000023,0x00000000,0x00040047, + 0x00000b27,0x00000021,0x00000006,0x00040047,0x00000b27,0x00000022,0x00000000,0x00040047, + 0x00000b32,0x00000006,0x00000010,0x00030047,0x00000b33,0x00000003,0x00050048,0x00000b33, + 0x00000000,0x00000023,0x00000000,0x00040047,0x00000b35,0x00000021,0x0000000e,0x00040047, + 0x00000b35,0x00000022,0x00000000,0x00040047,0x00000ccf,0x00000006,0x00000010,0x00030047, + 0x00000cd0,0x00000003,0x00050048,0x00000cd0,0x00000000,0x00000023,0x00000000,0x00040047, + 0x00000cd2,0x00000021,0x0000000f,0x00040047,0x00000cd2,0x00000022,0x00000000,0x00040047, + 0x000010ab,0x00000006,0x00000010,0x00030047,0x000010ac,0x00000003,0x00050048,0x000010ac, + 0x00000000,0x00000023,0x00000000,0x00040047,0x000010ae,0x00000021,0x0000000c,0x00040047, + 0x000010ae,0x00000022,0x00000000,0x00040047,0x000010d2,0x00000006,0x00000010,0x00030047, + 0x000010d3,0x00000003,0x00050048,0x000010d3,0x00000000,0x00000023,0x00000000,0x00040047, + 0x000010d5,0x00000021,0x0000000a,0x00040047,0x000010d5,0x00000022,0x00000000,0x00040047, + 0x000010d9,0x00000006,0x00000010,0x00030047,0x000010da,0x00000003,0x00050048,0x000010da, + 0x00000000,0x00000023,0x00000000,0x00040047,0x000010dc,0x00000021,0x0000000b,0x00040047, + 0x000010dc,0x00000022,0x00000000,0x00040047,0x000010e0,0x00000006,0x00000004,0x00030047, + 0x000010e1,0x00000003,0x00050048,0x000010e1,0x00000000,0x00000023,0x00000000,0x00040047, + 0x000010e3,0x00000021,0x00000009,0x00040047,0x000010e3,0x00000022,0x00000000,0x00040047, + 0x0000111b,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002, + 0x00040015,0x00000006,0x00000020,0x00000000,0x00040020,0x00000007,0x00000007,0x00000006, + 0x00030016,0x00000008,0x00000020,0x00040017,0x00000009,0x00000008,0x00000002,0x00060021, + 0x0000000a,0x00000009,0x00000007,0x00000007,0x00000007,0x00040017,0x00000010,0x00000008, + 0x00000003,0x00060021,0x00000011,0x00000010,0x00000007,0x00000007,0x00000007,0x00040020, + 0x00000017,0x00000007,0x00000009,0x00040021,0x00000018,0x00000010,0x00000017,0x00030021, + 0x0000001c,0x00000010,0x00040020,0x0000001f,0x00000007,0x00000010,0x00040021,0x00000020, + 0x00000010,0x0000001f,0x00040020,0x0000002a,0x00000007,0x00000008,0x00050021,0x0000002b, + 0x00000010,0x0000001f,0x0000002a,0x00040017,0x00000030,0x00000008,0x00000004,0x0004002b, + 0x00000006,0x00000031,0x00000008,0x0004001c,0x00000032,0x00000030,0x00000031,0x000f001e, + 0x00000033,0x00000030,0x00000030,0x00000030,0x00000030,0x00000030,0x00000032,0x00000032, + 0x00000032,0x00000032,0x00000032,0x00000032,0x00000030,0x00000030,0x00040020,0x00000034, + 0x00000007,0x00000033,0x00040021,0x00000035,0x00000008,0x00000034,0x00040021,0x00000039, + 0x00000010,0x00000034,0x00050021,0x0000003d,0x00000008,0x0000002a,0x0000002a,0x00060021, + 0x00000046,0x00000008,0x0000002a,0x0000002a,0x0000002a,0x00050021,0x0000004c,0x00000010, + 0x0000002a,0x0000001f,0x00070021,0x00000051,0x00000010,0x0000001f,0x0000001f,0x0000001f, + 0x00000034,0x00050021,0x00000058,0x00000010,0x00000017,0x0000002a,0x00020014,0x0000005d, + 0x00040015,0x0000005e,0x00000020,0x00000001,0x0008001e,0x0000005f,0x0000005d,0x00000008, + 0x00000010,0x00000010,0x0000005e,0x0000005e,0x00060021,0x00000060,0x0000005f,0x0000001f, + 0x0000001f,0x0000002a,0x00060021,0x00000066,0x00000008,0x0000001f,0x0000001f,0x0000002a, + 0x00060021,0x0000006c,0x00000008,0x0000001f,0x0000001f,0x00000017,0x00070021,0x0000007e, + 0x00000010,0x0000001f,0x0000001f,0x00000034,0x0000001f,0x0004002b,0x00000006,0x00000087, + 0x2c9277b5,0x0004002b,0x00000006,0x0000008a,0xac564b05,0x0004002b,0x00000006,0x0000008e, + 0x9e3779b1,0x0004002b,0x00000006,0x00000091,0x00024961,0x0004002b,0x0000005e,0x00000095, + 0x00000010,0x0004002b,0x00000006,0x00000098,0x85ebca77,0x0004002b,0x0000005e,0x0000009c, + 0x0000000d,0x0004002b,0x00000006,0x0000009f,0xc2b2ae3d,0x0004002b,0x00000006,0x000000a6, + 0x0000ffff,0x0004002b,0x00000008,0x000000ae,0x37800000,0x0004002b,0x00000006,0x000000ba, + 0x00000001,0x0004002b,0x00000006,0x000000c2,0x00000000,0x0004002b,0x00000008,0x000000cc, + 0x00000000,0x0004002b,0x00000008,0x000000d0,0x40c90fdb,0x0004002b,0x00000008,0x000000dc, + 0x3f800000,0x00040018,0x000000e5,0x00000030,0x00000004,0x0014001e,0x000000e6,0x000000e5, + 0x000000e5,0x000000e5,0x00000030,0x00000030,0x00000030,0x00000030,0x00000030,0x00000030, + 0x000000e5,0x00000030,0x00000030,0x00000030,0x00000030,0x00000030,0x00000030,0x00000030, + 0x00000030,0x00040020,0x000000e7,0x00000002,0x000000e6,0x0004003b,0x000000e7,0x000000e8, + 0x00000002,0x0004002b,0x0000005e,0x000000e9,0x0000000c,0x00040020,0x000000ea,0x00000002, + 0x00000030,0x0004002b,0x0000005e,0x000000f1,0x0000000e,0x0004002b,0x00000006,0x000000f2, + 0x00000003,0x00040020,0x000000f3,0x00000002,0x00000008,0x0004002b,0x00000008,0x000000f6, + 0x3f000000,0x0004002b,0x0000005e,0x000000fb,0x00000011,0x0004002b,0x00000008,0x000000fe, + 0x3dcccccd,0x0004002b,0x0000005e,0x00000101,0x0000000f,0x0004002b,0x00000008,0x0000010b, + 0x7149f2ca,0x0006002c,0x00000010,0x0000010d,0x000000cc,0x000000cc,0x000000cc,0x0004002b, + 0x00000008,0x00000110,0x3727c5ac,0x0004002b,0x00000008,0x00000124,0xb727c5ac,0x0004002b, + 0x00000006,0x00000137,0x00000002,0x0004002b,0x0000005e,0x00000193,0x00000006,0x0004002b, + 0x0000005e,0x00000197,0x00000005,0x0004002b,0x00000008,0x000001c5,0x3f7fbe77,0x0006002c, + 0x00000010,0x000001c7,0x000000cc,0x000000dc,0x000000cc,0x0006002c,0x00000010,0x000001c8, + 0x000000dc,0x000000cc,0x000000cc,0x00040017,0x000001c9,0x0000005d,0x00000003,0x00040020, + 0x000001d7,0x00000007,0x0000005e,0x0004002b,0x0000005e,0x000001d9,0x00000000,0x0004002b, + 0x0000005e,0x000001e0,0x00000004,0x0004002b,0x00000008,0x000001e7,0x401998f2,0x0004002b, + 0x00000008,0x000001ed,0x40800000,0x0004002b,0x0000005e,0x00000210,0x00000001,0x0004002b, + 0x00000008,0x00000215,0x40490fdb,0x0004002b,0x00000008,0x0000022b,0x3e99999a,0x0004002b, + 0x00000008,0x0000022c,0x3f333333,0x0004002b,0x00000008,0x0000023c,0x3a83126f,0x0004002b, + 0x00000008,0x00000240,0x3d23d70a,0x0006002c,0x00000010,0x00000241,0x00000240,0x00000240, + 0x00000240,0x00040020,0x00000242,0x00000007,0x00000030,0x0004002b,0x00000008,0x0000025e, + 0x33d6bf95,0x0006002c,0x00000010,0x0000027f,0x000000dc,0x000000dc,0x000000dc,0x0004002b, + 0x00000008,0x00000285,0x40a00000,0x0004002b,0x00000008,0x00000294,0x358637bd,0x00021178, + 0x000002ff,0x00040020,0x00000300,0x00000006,0x000002ff,0x0004003b,0x00000300,0x00000301, + 0x00000006,0x000214dd,0x00000302,0x00040020,0x00000303,0x00000000,0x00000302,0x0004003b, + 0x00000303,0x00000304,0x00000000,0x0004002b,0x00000006,0x00000306,0x000000ff,0x00040020, + 0x00000310,0x00000007,0x0000005f,0x00030029,0x0000005d,0x00000312,0x00040020,0x00000315, + 0x00000007,0x0000005d,0x0004002b,0x00000008,0x00000317,0xbf800000,0x0004002b,0x0000005e, + 0x00000319,0x00000002,0x0004002b,0x0000005e,0x0000031b,0x00000003,0x0004001c,0x00000333, + 0x00000030,0x00000031,0x0004001c,0x00000334,0x00000030,0x00000031,0x0004001c,0x00000335, + 0x00000030,0x00000031,0x0004001c,0x00000336,0x00000030,0x00000031,0x0004001c,0x00000337, + 0x00000030,0x00000031,0x0004001c,0x00000338,0x00000030,0x00000031,0x000f001e,0x00000339, + 0x00000030,0x00000030,0x00000030,0x00000030,0x00000030,0x00000333,0x00000334,0x00000335, + 0x00000336,0x00000337,0x00000338,0x00000030,0x00000030,0x0003001d,0x0000033a,0x00000339, + 0x0003001e,0x0000033b,0x0000033a,0x00040020,0x0000033c,0x00000002,0x0000033b,0x0004003b, + 0x0000033c,0x0000033d,0x00000002,0x00040020,0x00000340,0x00000002,0x00000339,0x00040020, + 0x0000034e,0x00000007,0x00000032,0x0004002b,0x0000005e,0x0000035f,0x00000007,0x0004002b, + 0x0000005e,0x00000386,0x00000008,0x0004002b,0x0000005e,0x00000399,0x00000009,0x0004002b, + 0x0000005e,0x000003ac,0x0000000a,0x0004002b,0x0000005e,0x000003bf,0x0000000b,0x0003001d, + 0x000003cd,0x00000030,0x0003001e,0x000003ce,0x000003cd,0x00040020,0x000003cf,0x00000002, + 0x000003ce,0x0004003b,0x000003cf,0x000003d0,0x00000002,0x0004002b,0x00000008,0x000003d8, + 0x2b8cbccc,0x0003002a,0x0000005d,0x000003dc,0x00040018,0x000003e0,0x00000010,0x00000004, + 0x00040020,0x000003e1,0x00000007,0x000003e0,0x00040018,0x000003e5,0x00000010,0x00000003, + 0x0004003b,0x00000300,0x00000415,0x00000006,0x0004002b,0x00000008,0x000004b1,0x38d1b717, + 0x0004002b,0x00000008,0x000004f9,0x41000000,0x0004002b,0x00000008,0x00000589,0x3fc00000, + 0x0004002b,0x00000008,0x000005c2,0x43000000,0x0007001e,0x000006ec,0x00000030,0x00000030, + 0x00000030,0x00000030,0x000000e5,0x00040020,0x000006ed,0x00000007,0x000006ec,0x0007001e, + 0x000006ef,0x00000030,0x00000030,0x00000030,0x00000030,0x000000e5,0x0003001d,0x000006f0, + 0x000006ef,0x0003001e,0x000006f1,0x000006f0,0x00040020,0x000006f2,0x00000002,0x000006f1, + 0x0004003b,0x000006f2,0x000006f3,0x00000002,0x00040020,0x000006f5,0x00000002,0x000006ef, + 0x00040020,0x00000701,0x00000007,0x000000e5,0x0004002b,0x00000008,0x00000706,0x322bcc77, + 0x0004002b,0x00000008,0x0000075f,0x3089705f,0x00040017,0x000007f4,0x00000006,0x00000002, + 0x00040020,0x000007f5,0x00000007,0x000007f4,0x00040017,0x000007f7,0x00000006,0x00000003, + 0x00040020,0x000007f8,0x00000001,0x000007f7,0x0004003b,0x000007f8,0x000007f9,0x00000001, + 0x0004002b,0x00000008,0x0000081f,0x41800000,0x0003001d,0x00000848,0x00000030,0x0003001e, + 0x00000849,0x00000848,0x00040020,0x0000084a,0x00000002,0x00000849,0x0004003b,0x0000084a, + 0x0000084b,0x00000002,0x0003001d,0x00000865,0x00000030,0x0003001e,0x00000866,0x00000865, + 0x00040020,0x00000867,0x00000002,0x00000866,0x0004003b,0x00000867,0x00000868,0x00000002, + 0x0004002b,0x00000008,0x00000883,0x2edbe6ff,0x00090019,0x00000890,0x00000008,0x00000001, + 0x00000000,0x00000000,0x00000000,0x00000002,0x00000004,0x00040020,0x00000891,0x00000000, + 0x00000890,0x0004003b,0x00000891,0x00000892,0x00000000,0x00040017,0x00000895,0x0000005e, + 0x00000002,0x0005002c,0x00000009,0x000008a1,0x000000f6,0x000000f6,0x0005002c,0x00000009, + 0x000008ba,0x000000dc,0x000000dc,0x0004002b,0x00000008,0x000008bf,0x40000000,0x00040020, + 0x000008c8,0x00000002,0x000000e5,0x0007002c,0x00000030,0x000008e9,0x000000cc,0x000000cc, + 0x00000317,0x000000cc,0x0004002b,0x00000008,0x000008fd,0x40600000,0x0004002b,0x00000008, + 0x0000090d,0x3f666666,0x0004002b,0x00000008,0x0000090e,0x3e4ccccd,0x0007002c,0x00000030, + 0x0000090f,0x0000090d,0x0000090e,0x000000fe,0x000000dc,0x0004002b,0x00000008,0x00000910, + 0x3f4ccccd,0x0007002c,0x00000030,0x00000911,0x000000fe,0x00000910,0x0000022b,0x000000dc, + 0x00040017,0x00000912,0x0000005d,0x00000004,0x0004002b,0x00000008,0x000009f8,0x40200000, + 0x0003001d,0x00000b18,0x00000030,0x0003001e,0x00000b19,0x00000b18,0x00040020,0x00000b1a, + 0x00000002,0x00000b19,0x0004003b,0x00000b1a,0x00000b1b,0x00000002,0x0003001d,0x00000b24, + 0x00000030,0x0003001e,0x00000b25,0x00000b24,0x00040020,0x00000b26,0x00000002,0x00000b25, + 0x0004003b,0x00000b26,0x00000b27,0x00000002,0x0003001d,0x00000b32,0x00000030,0x0003001e, + 0x00000b33,0x00000b32,0x00040020,0x00000b34,0x00000002,0x00000b33,0x0004003b,0x00000b34, + 0x00000b35,0x00000002,0x0004002b,0x00000008,0x00000cc9,0x4b189680,0x0007002c,0x00000030, + 0x00000cca,0x000000cc,0x000000cc,0x000000cc,0x00000cc9,0x0007002c,0x00000030,0x00000ccd, + 0x000000cc,0x000000cc,0x000000cc,0x000000cc,0x0003001d,0x00000ccf,0x00000030,0x0003001e, + 0x00000cd0,0x00000ccf,0x00040020,0x00000cd1,0x00000002,0x00000cd0,0x0004003b,0x00000cd1, + 0x00000cd2,0x00000002,0x0005002c,0x00000009,0x00000cf7,0x000000cc,0x000000cc,0x0004002b, + 0x00000006,0x00000e2a,0x000002d7,0x0004002b,0x00000006,0x00000e2d,0x0000000b,0x0006002c, + 0x00000010,0x00000e64,0x000000cc,0x000000cc,0x000000dc,0x0004002b,0x00000006,0x00000e8e, + 0x00000397,0x0004002b,0x00000006,0x00000eeb,0x00000005,0x0004002b,0x00000006,0x00000f69, + 0x000001af,0x0004002b,0x00000006,0x00000f6c,0x00000009,0x0004002b,0x00000008,0x00000fcc, + 0x3f733333,0x0004002b,0x00000006,0x00000fd1,0x000001f7,0x0004002b,0x00000006,0x00000fd4, + 0x00000007,0x00040020,0x0000107c,0x00000007,0x00000895,0x0003001d,0x000010ab,0x00000030, + 0x0003001e,0x000010ac,0x000010ab,0x00040020,0x000010ad,0x00000002,0x000010ac,0x0004003b, + 0x000010ad,0x000010ae,0x00000002,0x0004002b,0x00000008,0x000010c1,0x39d1b717,0x0004002b, + 0x00000008,0x000010c2,0x368637bd,0x0003001d,0x000010d2,0x00000030,0x0003001e,0x000010d3, + 0x000010d2,0x00040020,0x000010d4,0x00000002,0x000010d3,0x0004003b,0x000010d4,0x000010d5, + 0x00000002,0x0003001d,0x000010d9,0x00000030,0x0003001e,0x000010da,0x000010d9,0x00040020, + 0x000010db,0x00000002,0x000010da,0x0004003b,0x000010db,0x000010dc,0x00000002,0x0003001d, + 0x000010e0,0x00000006,0x0003001e,0x000010e1,0x000010e0,0x00040020,0x000010e2,0x00000002, + 0x000010e1,0x0004003b,0x000010e2,0x000010e3,0x00000002,0x00040020,0x000010e4,0x00000002, + 0x00000006,0x0006002c,0x000007f7,0x0000111b,0x00000031,0x00000031,0x000000ba,0x00050036, + 0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x000007f5, + 0x000007f6,0x00000007,0x0004003b,0x00000007,0x00000811,0x00000007,0x0004003b,0x0000002a, + 0x00000816,0x00000007,0x0004003b,0x0000002a,0x00000819,0x00000007,0x0004003b,0x000001d7, + 0x0000081c,0x00000007,0x0004003b,0x000001d7,0x00000822,0x00000007,0x0004003b,0x00000007, + 0x00000847,0x00000007,0x0004003b,0x00000007,0x00000851,0x00000007,0x0004003b,0x0000001f, + 0x0000085b,0x00000007,0x0004003b,0x0000001f,0x00000864,0x00000007,0x0004003b,0x0000002a, + 0x00000876,0x00000007,0x0004003b,0x0000002a,0x0000087f,0x00000007,0x0004003b,0x00000017, + 0x000008a0,0x00000007,0x0004003b,0x00000007,0x000008a9,0x00000007,0x0004003b,0x00000007, + 0x000008ac,0x00000007,0x0004003b,0x00000007,0x000008af,0x00000007,0x0004003b,0x00000017, + 0x000008b2,0x00000007,0x0004003b,0x00000017,0x000008bd,0x00000007,0x0004003b,0x00000242, + 0x000008c7,0x00000007,0x0004003b,0x0000001f,0x000008d0,0x00000007,0x0004003b,0x0000001f, + 0x000008dc,0x00000007,0x0004003b,0x0000001f,0x000008e6,0x00000007,0x0004003b,0x00000310, + 0x00000901,0x00000007,0x0004003b,0x0000001f,0x00000902,0x00000007,0x0004003b,0x0000001f, + 0x00000904,0x00000007,0x0004003b,0x0000002a,0x00000906,0x00000007,0x0004003b,0x00000310, + 0x0000091a,0x00000007,0x0004003b,0x0000001f,0x0000091b,0x00000007,0x0004003b,0x0000001f, + 0x0000091d,0x00000007,0x0004003b,0x0000002a,0x0000091f,0x00000007,0x0004003b,0x0000001f, + 0x00000921,0x00000007,0x0004003b,0x00000034,0x00000926,0x00000007,0x0004003b,0x0000001f, + 0x000009aa,0x00000007,0x0004003b,0x0000001f,0x000009ad,0x00000007,0x0004003b,0x0000001f, + 0x000009b0,0x00000007,0x0004003b,0x00000034,0x000009b2,0x00000007,0x0004003b,0x0000001f, + 0x000009bf,0x00000007,0x0004003b,0x0000001f,0x000009c2,0x00000007,0x0004003b,0x0000001f, + 0x000009c5,0x00000007,0x0004003b,0x00000034,0x000009c9,0x00000007,0x0004003b,0x0000002a, + 0x000009d1,0x00000007,0x0004003b,0x0000001f,0x000009e8,0x00000007,0x0004003b,0x00000310, + 0x000009ff,0x00000007,0x0004003b,0x0000001f,0x00000a00,0x00000007,0x0004003b,0x0000001f, + 0x00000a02,0x00000007,0x0004003b,0x0000002a,0x00000a04,0x00000007,0x0004003b,0x00000034, + 0x00000a0a,0x00000007,0x0004003b,0x0000001f,0x00000a89,0x00000007,0x0004003b,0x0000001f, + 0x00000a8d,0x00000007,0x0004003b,0x0000001f,0x00000a90,0x00000007,0x0004003b,0x0000001f, + 0x00000a94,0x00000007,0x0004003b,0x0000001f,0x00000a98,0x00000007,0x0004003b,0x00000034, + 0x00000a9b,0x00000007,0x0004003b,0x0000001f,0x00000aa6,0x00000007,0x0004003b,0x0000001f, + 0x00000aaa,0x00000007,0x0004003b,0x0000002a,0x00000ab0,0x00000007,0x0004003b,0x0000002a, + 0x00000ab4,0x00000007,0x0004003b,0x0000001f,0x00000abc,0x00000007,0x0004003b,0x0000001f, + 0x00000ac1,0x00000007,0x0004003b,0x0000001f,0x00000ac5,0x00000007,0x0004003b,0x00000034, + 0x00000ac8,0x00000007,0x0004003b,0x0000002a,0x00000ad2,0x00000007,0x0004003b,0x0000001f, + 0x00000ad7,0x00000007,0x0004003b,0x0000001f,0x00000ae0,0x00000007,0x0004003b,0x0000001f, + 0x00000ae2,0x00000007,0x0004003b,0x0000002a,0x00000ae4,0x00000007,0x0004003b,0x0000001f, + 0x00000ae8,0x00000007,0x0004003b,0x0000001f,0x00000af1,0x00000007,0x0004003b,0x0000001f, + 0x00000af4,0x00000007,0x0004003b,0x0000001f,0x00000af7,0x00000007,0x0004003b,0x00000034, + 0x00000af9,0x00000007,0x0004003b,0x0000001f,0x00000b04,0x00000007,0x0004003b,0x0000001f, + 0x00000b07,0x00000007,0x0004003b,0x0000001f,0x00000b0a,0x00000007,0x0004003b,0x00000034, + 0x00000b0e,0x00000007,0x0004003b,0x0000001f,0x00000b40,0x00000007,0x0004003b,0x00000310, + 0x00000b60,0x00000007,0x0004003b,0x0000001f,0x00000b61,0x00000007,0x0004003b,0x0000001f, + 0x00000b63,0x00000007,0x0004003b,0x0000002a,0x00000b65,0x00000007,0x0004003b,0x00000034, + 0x00000b6b,0x00000007,0x0004003b,0x0000002a,0x00000bea,0x00000007,0x0004003b,0x00000007, + 0x00000beb,0x00000007,0x0004003b,0x00000007,0x00000bee,0x00000007,0x0004003b,0x00000007, + 0x00000bf1,0x00000007,0x0004003b,0x0000001f,0x00000bf4,0x00000007,0x0004003b,0x0000001f, + 0x00000bf7,0x00000007,0x0004003b,0x00000017,0x00000bfa,0x00000007,0x0004003b,0x0000001f, + 0x00000c01,0x00000007,0x0004003b,0x0000001f,0x00000c07,0x00000007,0x0004003b,0x0000001f, + 0x00000c0a,0x00000007,0x0004003b,0x0000001f,0x00000c0d,0x00000007,0x0004003b,0x00000034, + 0x00000c0f,0x00000007,0x0004003b,0x0000001f,0x00000c22,0x00000007,0x0004003b,0x0000001f, + 0x00000c25,0x00000007,0x0004003b,0x0000001f,0x00000c28,0x00000007,0x0004003b,0x00000034, + 0x00000c2c,0x00000007,0x0004003b,0x0000002a,0x00000c5a,0x00000007,0x0004003b,0x0000001f, + 0x00000c71,0x00000007,0x0004003b,0x0000001f,0x00000c80,0x00000007,0x0004003b,0x0000001f, + 0x00000c81,0x00000007,0x0004003b,0x0000001f,0x00000c82,0x00000007,0x0004003b,0x0000001f, + 0x00000c84,0x00000007,0x0004003b,0x0000002a,0x00000c86,0x00000007,0x0004003b,0x000001d7, + 0x00000c87,0x00000007,0x0004003b,0x00000310,0x00000c90,0x00000007,0x0004003b,0x0000001f, + 0x00000c91,0x00000007,0x0004003b,0x0000001f,0x00000c93,0x00000007,0x0004003b,0x0000002a, + 0x00000c95,0x00000007,0x0004003b,0x0000002a,0x00000c9c,0x00000007,0x0004003b,0x0000001f, + 0x00000ca5,0x00000007,0x0004003b,0x0000001f,0x00000ca6,0x00000007,0x0004003b,0x00000242, + 0x00000cec,0x00000007,0x0004003b,0x00000017,0x00000cf6,0x00000007,0x0004003b,0x0000002a, + 0x00000cf8,0x00000007,0x0004003b,0x00000017,0x00000cfe,0x00000007,0x0004003b,0x00000034, + 0x00000d27,0x00000007,0x0004003b,0x0000002a,0x00000db3,0x00000007,0x0004003b,0x000001d7, + 0x00000dc9,0x00000007,0x0004003b,0x0000002a,0x00000ddc,0x00000007,0x0004003b,0x0000002a, + 0x00000de1,0x00000007,0x0004003b,0x0000002a,0x00000de7,0x00000007,0x0004003b,0x0000002a, + 0x00000e0a,0x00000007,0x0004003b,0x0000001f,0x00000e11,0x00000007,0x0004003b,0x0000001f, + 0x00000e14,0x00000007,0x0004003b,0x0000001f,0x00000e17,0x00000007,0x0004003b,0x00000034, + 0x00000e19,0x00000007,0x0004003b,0x00000007,0x00000e2f,0x00000007,0x0004003b,0x00000007, + 0x00000e32,0x00000007,0x0004003b,0x00000007,0x00000e35,0x00000007,0x0004003b,0x0000001f, + 0x00000e37,0x00000007,0x0004003b,0x0000001f,0x00000e3a,0x00000007,0x0004003b,0x00000034, + 0x00000e3d,0x00000007,0x0004003b,0x0000001f,0x00000e3f,0x00000007,0x0004003b,0x0000001f, + 0x00000e44,0x00000007,0x0004003b,0x0000001f,0x00000e48,0x00000007,0x0004003b,0x0000001f, + 0x00000e5f,0x00000007,0x0004003b,0x0000001f,0x00000e67,0x00000007,0x0004003b,0x0000001f, + 0x00000e6c,0x00000007,0x0004003b,0x0000001f,0x00000e70,0x00000007,0x0004003b,0x0000002a, + 0x00000e73,0x00000007,0x0004003b,0x0000002a,0x00000e78,0x00000007,0x0004003b,0x0000002a, + 0x00000e7c,0x00000007,0x0004003b,0x00000034,0x00000e7d,0x00000007,0x0004003b,0x0000001f, + 0x00000e80,0x00000007,0x0004003b,0x00000034,0x00000e81,0x00000007,0x0004003b,0x0000001f, + 0x00000e84,0x00000007,0x0004003b,0x0000002a,0x00000e85,0x00000007,0x0004003b,0x0000001f, + 0x00000e87,0x00000007,0x0004003b,0x00000017,0x00000e8a,0x00000007,0x0004003b,0x00000007, + 0x00000e92,0x00000007,0x0004003b,0x00000007,0x00000e95,0x00000007,0x0004003b,0x00000007, + 0x00000e98,0x00000007,0x0004003b,0x0000001f,0x00000e9f,0x00000007,0x0004003b,0x00000007, + 0x00000ea6,0x00000007,0x0004003b,0x00000007,0x00000ea9,0x00000007,0x0004003b,0x00000007, + 0x00000eac,0x00000007,0x0004003b,0x00000017,0x00000eae,0x00000007,0x0004003b,0x0000001f, + 0x00000eb0,0x00000007,0x0004003b,0x0000002a,0x00000ec0,0x00000007,0x0004003b,0x0000001f, + 0x00000ec6,0x00000007,0x0004003b,0x0000001f,0x00000eda,0x00000007,0x0004003b,0x0000001f, + 0x00000ee5,0x00000007,0x0004003b,0x00000007,0x00000eed,0x00000007,0x0004003b,0x00000007, + 0x00000ef0,0x00000007,0x0004003b,0x00000007,0x00000ef3,0x00000007,0x0004003b,0x00000017, + 0x00000ef5,0x00000007,0x0004003b,0x0000002a,0x00000ef6,0x00000007,0x0004003b,0x0000001f, + 0x00000ef9,0x00000007,0x0004003b,0x0000001f,0x00000f09,0x00000007,0x0004003b,0x0000002a, + 0x00000f0f,0x00000007,0x0004003b,0x0000002a,0x00000f14,0x00000007,0x0004003b,0x0000002a, + 0x00000f19,0x00000007,0x0004003b,0x0000001f,0x00000f28,0x00000007,0x0004003b,0x0000002a, + 0x00000f29,0x00000007,0x0004003b,0x0000001f,0x00000f2b,0x00000007,0x0004003b,0x0000002a, + 0x00000f2e,0x00000007,0x0004003b,0x0000002a,0x00000f2f,0x00000007,0x0004003b,0x0000002a, + 0x00000f31,0x00000007,0x0004003b,0x0000002a,0x00000f33,0x00000007,0x0004003b,0x0000002a, + 0x00000f36,0x00000007,0x0004003b,0x0000002a,0x00000f38,0x00000007,0x0004003b,0x0000002a, + 0x00000f52,0x00000007,0x0004003b,0x0000001f,0x00000f56,0x00000007,0x0004003b,0x0000001f, + 0x00000f5d,0x00000007,0x0004003b,0x0000001f,0x00000f62,0x00000007,0x0004003b,0x00000007, + 0x00000f6e,0x00000007,0x0004003b,0x00000007,0x00000f71,0x00000007,0x0004003b,0x00000007, + 0x00000f74,0x00000007,0x0004003b,0x0000001f,0x00000f8d,0x00000007,0x0004003b,0x00000007, + 0x00000f94,0x00000007,0x0004003b,0x00000007,0x00000f97,0x00000007,0x0004003b,0x00000007, + 0x00000f9a,0x00000007,0x0004003b,0x00000017,0x00000f9c,0x00000007,0x0004003b,0x0000002a, + 0x00000fc3,0x00000007,0x0004003b,0x00000007,0x00000fd6,0x00000007,0x0004003b,0x00000007, + 0x00000fd9,0x00000007,0x0004003b,0x00000007,0x00000fdc,0x00000007,0x0004003b,0x00000242, + 0x00000fea,0x00000007,0x0004003b,0x00000242,0x00000ff4,0x00000007,0x0004003b,0x00000242, + 0x00000ff8,0x00000007,0x0004003b,0x0000002a,0x00000ffc,0x00000007,0x0004003b,0x0000001f, + 0x00001009,0x00000007,0x0004003b,0x0000001f,0x00001010,0x00000007,0x0004003b,0x0000002a, + 0x0000101c,0x00000007,0x0004003b,0x0000002a,0x00001026,0x00000007,0x0004003b,0x0000002a, + 0x0000102f,0x00000007,0x0004003b,0x00000242,0x00001056,0x00000007,0x0004003b,0x00000017, + 0x00001067,0x00000007,0x0004003b,0x00000017,0x0000106e,0x00000007,0x0004003b,0x0000107c, + 0x0000107d,0x00000007,0x0004003b,0x0000107c,0x00001082,0x00000007,0x0004003b,0x000001d7, + 0x000010a1,0x00000007,0x0004003b,0x0000001f,0x000010aa,0x00000007,0x0004003d,0x000007f7, + 0x000007fa,0x000007f9,0x0007004f,0x000007f4,0x000007fb,0x000007fa,0x000007fa,0x00000000, + 0x00000001,0x0003003e,0x000007f6,0x000007fb,0x00050041,0x00000007,0x000007fc,0x000007f6, + 0x000000c2,0x0004003d,0x00000006,0x000007fd,0x000007fc,0x00060041,0x000000f3,0x000007fe, + 0x000000e8,0x000001e0,0x000000c2,0x0004003d,0x00000008,0x000007ff,0x000007fe,0x0007000c, + 0x00000008,0x00000800,0x00000001,0x00000028,0x000007ff,0x000000dc,0x0004006d,0x00000006, + 0x00000801,0x00000800,0x000500ae,0x0000005d,0x00000802,0x000007fd,0x00000801,0x000400a8, + 0x0000005d,0x00000803,0x00000802,0x000300f7,0x00000805,0x00000000,0x000400fa,0x00000803, + 0x00000804,0x00000805,0x000200f8,0x00000804,0x00050041,0x00000007,0x00000806,0x000007f6, + 0x000000ba,0x0004003d,0x00000006,0x00000807,0x00000806,0x00060041,0x000000f3,0x00000808, + 0x000000e8,0x000001e0,0x000000ba,0x0004003d,0x00000008,0x00000809,0x00000808,0x0007000c, + 0x00000008,0x0000080a,0x00000001,0x00000028,0x00000809,0x000000dc,0x0004006d,0x00000006, + 0x0000080b,0x0000080a,0x000500ae,0x0000005d,0x0000080c,0x00000807,0x0000080b,0x000200f9, + 0x00000805,0x000200f8,0x00000805,0x000700f5,0x0000005d,0x0000080d,0x00000802,0x00000005, + 0x0000080c,0x00000804,0x000300f7,0x0000080f,0x00000000,0x000400fa,0x0000080d,0x0000080e, + 0x0000080f,0x000200f8,0x0000080e,0x000100fd,0x000200f8,0x0000080f,0x00060041,0x000000f3, + 0x00000812,0x000000e8,0x0000035f,0x000000c2,0x0004003d,0x00000008,0x00000813,0x00000812, + 0x0007000c,0x00000008,0x00000814,0x00000001,0x00000028,0x00000813,0x000000cc,0x0004006d, + 0x00000006,0x00000815,0x00000814,0x0003003e,0x00000811,0x00000815,0x00060041,0x000000f3, + 0x00000817,0x000000e8,0x0000035f,0x000000ba,0x0004003d,0x00000008,0x00000818,0x00000817, + 0x0003003e,0x00000816,0x00000818,0x00060041,0x000000f3,0x0000081a,0x000000e8,0x0000035f, + 0x00000137,0x0004003d,0x00000008,0x0000081b,0x0000081a,0x0003003e,0x00000819,0x0000081b, + 0x00060041,0x000000f3,0x0000081d,0x000000e8,0x0000035f,0x000000f2,0x0004003d,0x00000008, + 0x0000081e,0x0000081d,0x0008000c,0x00000008,0x00000820,0x00000001,0x0000002b,0x0000081e, + 0x000000dc,0x0000081f,0x0004006e,0x0000005e,0x00000821,0x00000820,0x0003003e,0x0000081c, + 0x00000821,0x00050041,0x00000007,0x00000823,0x000007f6,0x000000ba,0x0004003d,0x00000006, + 0x00000824,0x00000823,0x00060041,0x000000f3,0x00000825,0x000000e8,0x000001e0,0x000000c2, + 0x0004003d,0x00000008,0x00000826,0x00000825,0x0007000c,0x00000008,0x00000827,0x00000001, + 0x00000028,0x00000826,0x000000dc,0x0004006d,0x00000006,0x00000828,0x00000827,0x00050084, + 0x00000006,0x00000829,0x00000824,0x00000828,0x00050041,0x00000007,0x0000082a,0x000007f6, + 0x000000c2,0x0004003d,0x00000006,0x0000082b,0x0000082a,0x00050080,0x00000006,0x0000082c, + 0x00000829,0x0000082b,0x0004007c,0x0000005e,0x0000082d,0x0000082c,0x0003003e,0x00000822, + 0x0000082d,0x0004003d,0x00000008,0x0000082e,0x00000816,0x000500ba,0x0000005d,0x0000082f, + 0x0000082e,0x000000f6,0x0004003d,0x00000008,0x00000830,0x00000819,0x000500ba,0x0000005d, + 0x00000831,0x00000830,0x000000f6,0x000500a7,0x0000005d,0x00000832,0x0000082f,0x00000831, + 0x000300f7,0x00000834,0x00000000,0x000400fa,0x00000832,0x00000833,0x00000834,0x000200f8, + 0x00000833,0x00060041,0x000000f3,0x00000835,0x000000e8,0x00000386,0x000000ba,0x0004003d, + 0x00000008,0x00000836,0x00000835,0x000500ba,0x0000005d,0x00000837,0x00000836,0x000000cc, + 0x000200f9,0x00000834,0x000200f8,0x00000834,0x000700f5,0x0000005d,0x00000838,0x00000832, + 0x0000080f,0x00000837,0x00000833,0x000300f7,0x0000083a,0x00000000,0x000400fa,0x00000838, + 0x00000839,0x0000083a,0x000200f8,0x00000839,0x00060041,0x000000f3,0x0000083b,0x000000e8, + 0x000003ac,0x000000c2,0x0004003d,0x00000008,0x0000083c,0x0000083b,0x000500b8,0x0000005d, + 0x0000083d,0x0000083c,0x000000f6,0x000200f9,0x0000083a,0x000200f8,0x0000083a,0x000700f5, + 0x0000005d,0x0000083e,0x00000838,0x00000834,0x0000083d,0x00000839,0x000300f7,0x00000840, + 0x00000000,0x000400fa,0x0000083e,0x0000083f,0x00000840,0x000200f8,0x0000083f,0x00060041, + 0x000000f3,0x00000841,0x000000e8,0x00000386,0x000000f2,0x0004003d,0x00000008,0x00000842, + 0x00000841,0x000500ba,0x0000005d,0x00000843,0x00000842,0x000000f6,0x000200f9,0x00000840, + 0x000200f8,0x00000840,0x000700f5,0x0000005d,0x00000844,0x0000083e,0x0000083a,0x00000843, + 0x0000083f,0x000300f7,0x00000846,0x00000000,0x000400fa,0x00000844,0x00000845,0x00000846, + 0x000200f8,0x00000845,0x0004003d,0x0000005e,0x0000084c,0x00000822,0x00070041,0x000000f3, + 0x0000084d,0x0000084b,0x000001d9,0x0000084c,0x000000f2,0x0004003d,0x00000008,0x0000084e, + 0x0000084d,0x0007000c,0x00000008,0x0000084f,0x00000001,0x00000028,0x0000084e,0x000000cc, + 0x0004006d,0x00000006,0x00000850,0x0000084f,0x0003003e,0x00000847,0x00000850,0x00060041, + 0x000000f3,0x00000852,0x000000e8,0x00000386,0x000000c2,0x0004003d,0x00000008,0x00000853, + 0x00000852,0x0007000c,0x00000008,0x00000854,0x00000001,0x00000028,0x00000853,0x000000dc, + 0x0004006d,0x00000006,0x00000855,0x00000854,0x0003003e,0x00000851,0x00000855,0x0004003d, + 0x00000006,0x00000856,0x00000847,0x0004003d,0x00000006,0x00000857,0x00000851,0x000500ae, + 0x0000005d,0x00000858,0x00000856,0x00000857,0x000300f7,0x0000085a,0x00000000,0x000400fa, + 0x00000858,0x00000859,0x0000085a,0x000200f8,0x00000859,0x0004003d,0x0000005e,0x0000085c, + 0x00000822,0x00060041,0x000000ea,0x0000085d,0x0000084b,0x000001d9,0x0000085c,0x0004003d, + 0x00000030,0x0000085e,0x0000085d,0x0008004f,0x00000010,0x0000085f,0x0000085e,0x0000085e, + 0x00000000,0x00000001,0x00000002,0x0004003d,0x00000006,0x00000860,0x00000847,0x00040070, + 0x00000008,0x00000861,0x00000860,0x00060050,0x00000010,0x00000862,0x00000861,0x00000861, + 0x00000861,0x00050088,0x00000010,0x00000863,0x0000085f,0x00000862,0x0003003e,0x0000085b, + 0x00000863,0x0004003d,0x0000005e,0x00000869,0x00000822,0x00060041,0x000000ea,0x0000086a, + 0x00000868,0x000001d9,0x00000869,0x0004003d,0x00000030,0x0000086b,0x0000086a,0x0008004f, + 0x00000010,0x0000086c,0x0000086b,0x0000086b,0x00000000,0x00000001,0x00000002,0x0004003d, + 0x00000006,0x0000086d,0x00000847,0x00040070,0x00000008,0x0000086e,0x0000086d,0x00060050, + 0x00000010,0x0000086f,0x0000086e,0x0000086e,0x0000086e,0x00050088,0x00000010,0x00000870, + 0x0000086c,0x0000086f,0x0004003d,0x00000010,0x00000871,0x0000085b,0x0004003d,0x00000010, + 0x00000872,0x0000085b,0x00050085,0x00000010,0x00000873,0x00000871,0x00000872,0x00050083, + 0x00000010,0x00000874,0x00000870,0x00000873,0x0007000c,0x00000010,0x00000875,0x00000001, + 0x00000028,0x00000874,0x0000010d,0x0003003e,0x00000864,0x00000875,0x00050041,0x0000002a, + 0x00000877,0x00000864,0x000000c2,0x0004003d,0x00000008,0x00000878,0x00000877,0x00050041, + 0x0000002a,0x00000879,0x00000864,0x000000ba,0x0004003d,0x00000008,0x0000087a,0x00000879, + 0x00050041,0x0000002a,0x0000087b,0x00000864,0x00000137,0x0004003d,0x00000008,0x0000087c, + 0x0000087b,0x0007000c,0x00000008,0x0000087d,0x00000001,0x00000028,0x0000087a,0x0000087c, + 0x0007000c,0x00000008,0x0000087e,0x00000001,0x00000028,0x00000878,0x0000087d,0x0003003e, + 0x00000876,0x0000087e,0x0004003d,0x00000010,0x00000880,0x0000085b,0x0004003d,0x00000010, + 0x00000881,0x0000085b,0x00050094,0x00000008,0x00000882,0x00000880,0x00000881,0x0007000c, + 0x00000008,0x00000884,0x00000001,0x00000028,0x00000882,0x00000883,0x0003003e,0x0000087f, + 0x00000884,0x0004003d,0x00000008,0x00000885,0x00000876,0x00060041,0x000000f3,0x00000886, + 0x000000e8,0x00000386,0x000000ba,0x0004003d,0x00000008,0x00000887,0x00000886,0x00060041, + 0x000000f3,0x00000888,0x000000e8,0x00000386,0x000000ba,0x0004003d,0x00000008,0x00000889, + 0x00000888,0x00050085,0x00000008,0x0000088a,0x00000887,0x00000889,0x0004003d,0x00000008, + 0x0000088b,0x0000087f,0x00050085,0x00000008,0x0000088c,0x0000088a,0x0000088b,0x000500b8, + 0x0000005d,0x0000088d,0x00000885,0x0000088c,0x000300f7,0x0000088f,0x00000000,0x000400fa, + 0x0000088d,0x0000088e,0x0000088f,0x000200f8,0x0000088e,0x0004003d,0x00000890,0x00000893, + 0x00000892,0x0004003d,0x000007f4,0x00000894,0x000007f6,0x0004007c,0x00000895,0x00000896, + 0x00000894,0x0004003d,0x00000010,0x00000897,0x0000085b,0x00050051,0x00000008,0x00000898, + 0x00000897,0x00000000,0x00050051,0x00000008,0x00000899,0x00000897,0x00000001,0x00050051, + 0x00000008,0x0000089a,0x00000897,0x00000002,0x00070050,0x00000030,0x0000089b,0x00000898, + 0x00000899,0x0000089a,0x000000dc,0x00070050,0x00000030,0x0000089c,0x000000cc,0x000000cc, + 0x000000cc,0x000000cc,0x00070050,0x00000030,0x0000089d,0x000000dc,0x000000dc,0x000000dc, + 0x000000dc,0x0008000c,0x00000030,0x0000089e,0x00000001,0x0000002b,0x0000089b,0x0000089c, + 0x0000089d,0x00040063,0x00000893,0x00000896,0x0000089e,0x000100fd,0x000200f8,0x0000088f, + 0x000200f9,0x0000085a,0x000200f8,0x0000085a,0x000200f9,0x00000846,0x000200f8,0x00000846, + 0x0003003e,0x000008a0,0x000008a1,0x0004003d,0x00000008,0x000008a2,0x00000816,0x000500ba, + 0x0000005d,0x000008a3,0x000008a2,0x000000f6,0x0004003d,0x00000008,0x000008a4,0x00000819, + 0x000500ba,0x0000005d,0x000008a5,0x000008a4,0x000000f6,0x000500a7,0x0000005d,0x000008a6, + 0x000008a3,0x000008a5,0x000300f7,0x000008a8,0x00000000,0x000400fa,0x000008a6,0x000008a7, + 0x000008a8,0x000200f8,0x000008a7,0x00050041,0x00000007,0x000008aa,0x000007f6,0x000000c2, + 0x0004003d,0x00000006,0x000008ab,0x000008aa,0x0003003e,0x000008a9,0x000008ab,0x00050041, + 0x00000007,0x000008ad,0x000007f6,0x000000ba,0x0004003d,0x00000006,0x000008ae,0x000008ad, + 0x0003003e,0x000008ac,0x000008ae,0x0004003d,0x00000006,0x000008b0,0x00000811,0x0003003e, + 0x000008af,0x000008b0,0x00070039,0x00000009,0x000008b1,0x0000000e,0x000008a9,0x000008ac, + 0x000008af,0x0003003e,0x000008a0,0x000008b1,0x000200f9,0x000008a8,0x000200f8,0x000008a8, + 0x0004003d,0x000007f4,0x000008b3,0x000007f6,0x00040070,0x00000009,0x000008b4,0x000008b3, + 0x0004003d,0x00000009,0x000008b5,0x000008a0,0x00050081,0x00000009,0x000008b6,0x000008b4, + 0x000008b5,0x00050041,0x000000ea,0x000008b7,0x000000e8,0x000001e0,0x0004003d,0x00000030, + 0x000008b8,0x000008b7,0x0007004f,0x00000009,0x000008b9,0x000008b8,0x000008b8,0x00000000, + 0x00000001,0x0007000c,0x00000009,0x000008bb,0x00000001,0x00000028,0x000008b9,0x000008ba, + 0x00050088,0x00000009,0x000008bc,0x000008b6,0x000008bb,0x0003003e,0x000008b2,0x000008bc, + 0x0004003d,0x00000009,0x000008be,0x000008b2,0x0005008e,0x00000009,0x000008c0,0x000008be, + 0x000008bf,0x00050050,0x00000009,0x000008c1,0x000000dc,0x000000dc,0x00050083,0x00000009, + 0x000008c2,0x000008c0,0x000008c1,0x0003003e,0x000008bd,0x000008c2,0x00050041,0x0000002a, + 0x000008c3,0x000008bd,0x000000ba,0x0004003d,0x00000008,0x000008c4,0x000008c3,0x0004007f, + 0x00000008,0x000008c5,0x000008c4,0x00050041,0x0000002a,0x000008c6,0x000008bd,0x000000ba, + 0x0003003e,0x000008c6,0x000008c5,0x00050041,0x000008c8,0x000008c9,0x000000e8,0x00000319, + 0x0004003d,0x000000e5,0x000008ca,0x000008c9,0x0004003d,0x00000009,0x000008cb,0x000008bd, + 0x00050051,0x00000008,0x000008cc,0x000008cb,0x00000000,0x00050051,0x00000008,0x000008cd, + 0x000008cb,0x00000001,0x00070050,0x00000030,0x000008ce,0x000008cc,0x000008cd,0x00000317, + 0x000000dc,0x00050091,0x00000030,0x000008cf,0x000008ca,0x000008ce,0x0003003e,0x000008c7, + 0x000008cf,0x0004003d,0x00000030,0x000008d1,0x000008c7,0x0008004f,0x00000010,0x000008d2, + 0x000008d1,0x000008d1,0x00000000,0x00000001,0x00000002,0x00050041,0x0000002a,0x000008d3, + 0x000008c7,0x000000f2,0x0004003d,0x00000008,0x000008d4,0x000008d3,0x00060050,0x00000010, + 0x000008d5,0x000008d4,0x000008d4,0x000008d4,0x00050088,0x00000010,0x000008d6,0x000008d2, + 0x000008d5,0x0003003e,0x000008d0,0x000008d6,0x00060041,0x000000f3,0x000008d7,0x000000e8, + 0x000001e0,0x00000137,0x0004003d,0x00000008,0x000008d8,0x000008d7,0x000500ba,0x0000005d, + 0x000008d9,0x000008d8,0x000000f6,0x000300f7,0x000008db,0x00000000,0x000400fa,0x000008d9, + 0x000008da,0x000008ed,0x000200f8,0x000008da,0x00050041,0x000008c8,0x000008dd,0x000000e8, + 0x00000210,0x0004003d,0x000000e5,0x000008de,0x000008dd,0x0004003d,0x00000010,0x000008df, + 0x000008d0,0x0007004f,0x00000009,0x000008e0,0x000008df,0x000008df,0x00000000,0x00000001, + 0x00050051,0x00000008,0x000008e1,0x000008e0,0x00000000,0x00050051,0x00000008,0x000008e2, + 0x000008e0,0x00000001,0x00070050,0x00000030,0x000008e3,0x000008e1,0x000008e2,0x000000cc, + 0x000000dc,0x00050091,0x00000030,0x000008e4,0x000008de,0x000008e3,0x0008004f,0x00000010, + 0x000008e5,0x000008e4,0x000008e4,0x00000000,0x00000001,0x00000002,0x0003003e,0x000008dc, + 0x000008e5,0x00050041,0x000008c8,0x000008e7,0x000000e8,0x00000210,0x0004003d,0x000000e5, + 0x000008e8,0x000008e7,0x00050091,0x00000030,0x000008ea,0x000008e8,0x000008e9,0x0008004f, + 0x00000010,0x000008eb,0x000008ea,0x000008ea,0x00000000,0x00000001,0x00000002,0x0006000c, + 0x00000010,0x000008ec,0x00000001,0x00000045,0x000008eb,0x0003003e,0x000008e6,0x000008ec, + 0x000200f9,0x000008db,0x000200f8,0x000008ed,0x00050041,0x000000ea,0x000008ee,0x000000e8, + 0x0000031b,0x0004003d,0x00000030,0x000008ef,0x000008ee,0x0008004f,0x00000010,0x000008f0, + 0x000008ef,0x000008ef,0x00000000,0x00000001,0x00000002,0x0003003e,0x000008dc,0x000008f0, + 0x00050041,0x000008c8,0x000008f1,0x000000e8,0x00000210,0x0004003d,0x000000e5,0x000008f2, + 0x000008f1,0x0004003d,0x00000010,0x000008f3,0x000008d0,0x00050051,0x00000008,0x000008f4, + 0x000008f3,0x00000000,0x00050051,0x00000008,0x000008f5,0x000008f3,0x00000001,0x00050051, + 0x00000008,0x000008f6,0x000008f3,0x00000002,0x00070050,0x00000030,0x000008f7,0x000008f4, + 0x000008f5,0x000008f6,0x000000cc,0x00050091,0x00000030,0x000008f8,0x000008f2,0x000008f7, + 0x0008004f,0x00000010,0x000008f9,0x000008f8,0x000008f8,0x00000000,0x00000001,0x00000002, + 0x0006000c,0x00000010,0x000008fa,0x00000001,0x00000045,0x000008f9,0x0003003e,0x000008e6, + 0x000008fa,0x000200f9,0x000008db,0x000200f8,0x000008db,0x00060041,0x000000f3,0x000008fb, + 0x000000e8,0x0000035f,0x000000ba,0x0004003d,0x00000008,0x000008fc,0x000008fb,0x000500ba, + 0x0000005d,0x000008fe,0x000008fc,0x000008fd,0x000300f7,0x00000900,0x00000000,0x000400fa, + 0x000008fe,0x000008ff,0x00000900,0x000200f8,0x000008ff,0x0004003d,0x00000010,0x00000903, + 0x000008dc,0x0003003e,0x00000902,0x00000903,0x0004003d,0x00000010,0x00000905,0x000008e6, + 0x0003003e,0x00000904,0x00000905,0x0003003e,0x00000906,0x0000010b,0x00070039,0x0000005f, + 0x00000907,0x00000064,0x00000902,0x00000904,0x00000906,0x0003003e,0x00000901,0x00000907, + 0x0004003d,0x00000890,0x00000908,0x00000892,0x0004003d,0x000007f4,0x00000909,0x000007f6, + 0x0004007c,0x00000895,0x0000090a,0x00000909,0x00050041,0x00000315,0x0000090b,0x00000901, + 0x000001d9,0x0004003d,0x0000005d,0x0000090c,0x0000090b,0x00070050,0x00000912,0x00000913, + 0x0000090c,0x0000090c,0x0000090c,0x0000090c,0x000600a9,0x00000030,0x00000914,0x00000913, + 0x0000090f,0x00000911,0x00040063,0x00000908,0x0000090a,0x00000914,0x000100fd,0x000200f8, + 0x00000900,0x0004003d,0x00000008,0x00000916,0x00000816,0x000500b8,0x0000005d,0x00000917, + 0x00000916,0x000000f6,0x000300f7,0x00000919,0x00000000,0x000400fa,0x00000917,0x00000918, + 0x00000919,0x000200f8,0x00000918,0x0004003d,0x00000010,0x0000091c,0x000008dc,0x0003003e, + 0x0000091b,0x0000091c,0x0004003d,0x00000010,0x0000091e,0x000008e6,0x0003003e,0x0000091d, + 0x0000091e,0x0003003e,0x0000091f,0x0000010b,0x00070039,0x0000005f,0x00000920,0x00000064, + 0x0000091b,0x0000091d,0x0000091f,0x0003003e,0x0000091a,0x00000920,0x0003003e,0x00000921, + 0x0000010d,0x00050041,0x00000315,0x00000922,0x0000091a,0x000001d9,0x0004003d,0x0000005d, + 0x00000923,0x00000922,0x000300f7,0x00000925,0x00000000,0x000400fa,0x00000923,0x00000924, + 0x000009d0,0x000200f8,0x00000924,0x00050041,0x000001d7,0x00000927,0x0000091a,0x000001e0, + 0x0004003d,0x0000005e,0x00000928,0x00000927,0x00060041,0x00000340,0x00000929,0x0000033d, + 0x000001d9,0x00000928,0x0004003d,0x00000339,0x0000092a,0x00000929,0x00050051,0x00000030, + 0x0000092b,0x0000092a,0x00000000,0x00050041,0x00000242,0x0000092c,0x00000926,0x000001d9, + 0x0003003e,0x0000092c,0x0000092b,0x00050051,0x00000030,0x0000092d,0x0000092a,0x00000001, + 0x00050041,0x00000242,0x0000092e,0x00000926,0x00000210,0x0003003e,0x0000092e,0x0000092d, + 0x00050051,0x00000030,0x0000092f,0x0000092a,0x00000002,0x00050041,0x00000242,0x00000930, + 0x00000926,0x00000319,0x0003003e,0x00000930,0x0000092f,0x00050051,0x00000030,0x00000931, + 0x0000092a,0x00000003,0x00050041,0x00000242,0x00000932,0x00000926,0x0000031b,0x0003003e, + 0x00000932,0x00000931,0x00050051,0x00000030,0x00000933,0x0000092a,0x00000004,0x00050041, + 0x00000242,0x00000934,0x00000926,0x000001e0,0x0003003e,0x00000934,0x00000933,0x00050051, + 0x00000333,0x00000935,0x0000092a,0x00000005,0x00050041,0x0000034e,0x00000936,0x00000926, + 0x00000197,0x00050051,0x00000030,0x00000937,0x00000935,0x00000000,0x00050041,0x00000242, + 0x00000938,0x00000936,0x000001d9,0x0003003e,0x00000938,0x00000937,0x00050051,0x00000030, + 0x00000939,0x00000935,0x00000001,0x00050041,0x00000242,0x0000093a,0x00000936,0x00000210, + 0x0003003e,0x0000093a,0x00000939,0x00050051,0x00000030,0x0000093b,0x00000935,0x00000002, + 0x00050041,0x00000242,0x0000093c,0x00000936,0x00000319,0x0003003e,0x0000093c,0x0000093b, + 0x00050051,0x00000030,0x0000093d,0x00000935,0x00000003,0x00050041,0x00000242,0x0000093e, + 0x00000936,0x0000031b,0x0003003e,0x0000093e,0x0000093d,0x00050051,0x00000030,0x0000093f, + 0x00000935,0x00000004,0x00050041,0x00000242,0x00000940,0x00000936,0x000001e0,0x0003003e, + 0x00000940,0x0000093f,0x00050051,0x00000030,0x00000941,0x00000935,0x00000005,0x00050041, + 0x00000242,0x00000942,0x00000936,0x00000197,0x0003003e,0x00000942,0x00000941,0x00050051, + 0x00000030,0x00000943,0x00000935,0x00000006,0x00050041,0x00000242,0x00000944,0x00000936, + 0x00000193,0x0003003e,0x00000944,0x00000943,0x00050051,0x00000030,0x00000945,0x00000935, + 0x00000007,0x00050041,0x00000242,0x00000946,0x00000936,0x0000035f,0x0003003e,0x00000946, + 0x00000945,0x00050051,0x00000334,0x00000947,0x0000092a,0x00000006,0x00050041,0x0000034e, + 0x00000948,0x00000926,0x00000193,0x00050051,0x00000030,0x00000949,0x00000947,0x00000000, + 0x00050041,0x00000242,0x0000094a,0x00000948,0x000001d9,0x0003003e,0x0000094a,0x00000949, + 0x00050051,0x00000030,0x0000094b,0x00000947,0x00000001,0x00050041,0x00000242,0x0000094c, + 0x00000948,0x00000210,0x0003003e,0x0000094c,0x0000094b,0x00050051,0x00000030,0x0000094d, + 0x00000947,0x00000002,0x00050041,0x00000242,0x0000094e,0x00000948,0x00000319,0x0003003e, + 0x0000094e,0x0000094d,0x00050051,0x00000030,0x0000094f,0x00000947,0x00000003,0x00050041, + 0x00000242,0x00000950,0x00000948,0x0000031b,0x0003003e,0x00000950,0x0000094f,0x00050051, + 0x00000030,0x00000951,0x00000947,0x00000004,0x00050041,0x00000242,0x00000952,0x00000948, + 0x000001e0,0x0003003e,0x00000952,0x00000951,0x00050051,0x00000030,0x00000953,0x00000947, + 0x00000005,0x00050041,0x00000242,0x00000954,0x00000948,0x00000197,0x0003003e,0x00000954, + 0x00000953,0x00050051,0x00000030,0x00000955,0x00000947,0x00000006,0x00050041,0x00000242, + 0x00000956,0x00000948,0x00000193,0x0003003e,0x00000956,0x00000955,0x00050051,0x00000030, + 0x00000957,0x00000947,0x00000007,0x00050041,0x00000242,0x00000958,0x00000948,0x0000035f, + 0x0003003e,0x00000958,0x00000957,0x00050051,0x00000335,0x00000959,0x0000092a,0x00000007, + 0x00050041,0x0000034e,0x0000095a,0x00000926,0x0000035f,0x00050051,0x00000030,0x0000095b, + 0x00000959,0x00000000,0x00050041,0x00000242,0x0000095c,0x0000095a,0x000001d9,0x0003003e, + 0x0000095c,0x0000095b,0x00050051,0x00000030,0x0000095d,0x00000959,0x00000001,0x00050041, + 0x00000242,0x0000095e,0x0000095a,0x00000210,0x0003003e,0x0000095e,0x0000095d,0x00050051, + 0x00000030,0x0000095f,0x00000959,0x00000002,0x00050041,0x00000242,0x00000960,0x0000095a, + 0x00000319,0x0003003e,0x00000960,0x0000095f,0x00050051,0x00000030,0x00000961,0x00000959, + 0x00000003,0x00050041,0x00000242,0x00000962,0x0000095a,0x0000031b,0x0003003e,0x00000962, + 0x00000961,0x00050051,0x00000030,0x00000963,0x00000959,0x00000004,0x00050041,0x00000242, + 0x00000964,0x0000095a,0x000001e0,0x0003003e,0x00000964,0x00000963,0x00050051,0x00000030, + 0x00000965,0x00000959,0x00000005,0x00050041,0x00000242,0x00000966,0x0000095a,0x00000197, + 0x0003003e,0x00000966,0x00000965,0x00050051,0x00000030,0x00000967,0x00000959,0x00000006, + 0x00050041,0x00000242,0x00000968,0x0000095a,0x00000193,0x0003003e,0x00000968,0x00000967, + 0x00050051,0x00000030,0x00000969,0x00000959,0x00000007,0x00050041,0x00000242,0x0000096a, + 0x0000095a,0x0000035f,0x0003003e,0x0000096a,0x00000969,0x00050051,0x00000336,0x0000096b, + 0x0000092a,0x00000008,0x00050041,0x0000034e,0x0000096c,0x00000926,0x00000386,0x00050051, + 0x00000030,0x0000096d,0x0000096b,0x00000000,0x00050041,0x00000242,0x0000096e,0x0000096c, + 0x000001d9,0x0003003e,0x0000096e,0x0000096d,0x00050051,0x00000030,0x0000096f,0x0000096b, + 0x00000001,0x00050041,0x00000242,0x00000970,0x0000096c,0x00000210,0x0003003e,0x00000970, + 0x0000096f,0x00050051,0x00000030,0x00000971,0x0000096b,0x00000002,0x00050041,0x00000242, + 0x00000972,0x0000096c,0x00000319,0x0003003e,0x00000972,0x00000971,0x00050051,0x00000030, + 0x00000973,0x0000096b,0x00000003,0x00050041,0x00000242,0x00000974,0x0000096c,0x0000031b, + 0x0003003e,0x00000974,0x00000973,0x00050051,0x00000030,0x00000975,0x0000096b,0x00000004, + 0x00050041,0x00000242,0x00000976,0x0000096c,0x000001e0,0x0003003e,0x00000976,0x00000975, + 0x00050051,0x00000030,0x00000977,0x0000096b,0x00000005,0x00050041,0x00000242,0x00000978, + 0x0000096c,0x00000197,0x0003003e,0x00000978,0x00000977,0x00050051,0x00000030,0x00000979, + 0x0000096b,0x00000006,0x00050041,0x00000242,0x0000097a,0x0000096c,0x00000193,0x0003003e, + 0x0000097a,0x00000979,0x00050051,0x00000030,0x0000097b,0x0000096b,0x00000007,0x00050041, + 0x00000242,0x0000097c,0x0000096c,0x0000035f,0x0003003e,0x0000097c,0x0000097b,0x00050051, + 0x00000337,0x0000097d,0x0000092a,0x00000009,0x00050041,0x0000034e,0x0000097e,0x00000926, + 0x00000399,0x00050051,0x00000030,0x0000097f,0x0000097d,0x00000000,0x00050041,0x00000242, + 0x00000980,0x0000097e,0x000001d9,0x0003003e,0x00000980,0x0000097f,0x00050051,0x00000030, + 0x00000981,0x0000097d,0x00000001,0x00050041,0x00000242,0x00000982,0x0000097e,0x00000210, + 0x0003003e,0x00000982,0x00000981,0x00050051,0x00000030,0x00000983,0x0000097d,0x00000002, + 0x00050041,0x00000242,0x00000984,0x0000097e,0x00000319,0x0003003e,0x00000984,0x00000983, + 0x00050051,0x00000030,0x00000985,0x0000097d,0x00000003,0x00050041,0x00000242,0x00000986, + 0x0000097e,0x0000031b,0x0003003e,0x00000986,0x00000985,0x00050051,0x00000030,0x00000987, + 0x0000097d,0x00000004,0x00050041,0x00000242,0x00000988,0x0000097e,0x000001e0,0x0003003e, + 0x00000988,0x00000987,0x00050051,0x00000030,0x00000989,0x0000097d,0x00000005,0x00050041, + 0x00000242,0x0000098a,0x0000097e,0x00000197,0x0003003e,0x0000098a,0x00000989,0x00050051, + 0x00000030,0x0000098b,0x0000097d,0x00000006,0x00050041,0x00000242,0x0000098c,0x0000097e, + 0x00000193,0x0003003e,0x0000098c,0x0000098b,0x00050051,0x00000030,0x0000098d,0x0000097d, + 0x00000007,0x00050041,0x00000242,0x0000098e,0x0000097e,0x0000035f,0x0003003e,0x0000098e, + 0x0000098d,0x00050051,0x00000338,0x0000098f,0x0000092a,0x0000000a,0x00050041,0x0000034e, + 0x00000990,0x00000926,0x000003ac,0x00050051,0x00000030,0x00000991,0x0000098f,0x00000000, + 0x00050041,0x00000242,0x00000992,0x00000990,0x000001d9,0x0003003e,0x00000992,0x00000991, + 0x00050051,0x00000030,0x00000993,0x0000098f,0x00000001,0x00050041,0x00000242,0x00000994, + 0x00000990,0x00000210,0x0003003e,0x00000994,0x00000993,0x00050051,0x00000030,0x00000995, + 0x0000098f,0x00000002,0x00050041,0x00000242,0x00000996,0x00000990,0x00000319,0x0003003e, + 0x00000996,0x00000995,0x00050051,0x00000030,0x00000997,0x0000098f,0x00000003,0x00050041, + 0x00000242,0x00000998,0x00000990,0x0000031b,0x0003003e,0x00000998,0x00000997,0x00050051, + 0x00000030,0x00000999,0x0000098f,0x00000004,0x00050041,0x00000242,0x0000099a,0x00000990, + 0x000001e0,0x0003003e,0x0000099a,0x00000999,0x00050051,0x00000030,0x0000099b,0x0000098f, + 0x00000005,0x00050041,0x00000242,0x0000099c,0x00000990,0x00000197,0x0003003e,0x0000099c, + 0x0000099b,0x00050051,0x00000030,0x0000099d,0x0000098f,0x00000006,0x00050041,0x00000242, + 0x0000099e,0x00000990,0x00000193,0x0003003e,0x0000099e,0x0000099d,0x00050051,0x00000030, + 0x0000099f,0x0000098f,0x00000007,0x00050041,0x00000242,0x000009a0,0x00000990,0x0000035f, + 0x0003003e,0x000009a0,0x0000099f,0x00050051,0x00000030,0x000009a1,0x0000092a,0x0000000b, + 0x00050041,0x00000242,0x000009a2,0x00000926,0x000003bf,0x0003003e,0x000009a2,0x000009a1, + 0x00050051,0x00000030,0x000009a3,0x0000092a,0x0000000c,0x00050041,0x00000242,0x000009a4, + 0x00000926,0x000000e9,0x0003003e,0x000009a4,0x000009a3,0x00060041,0x0000002a,0x000009a5, + 0x00000926,0x000000e9,0x00000137,0x0004003d,0x00000008,0x000009a6,0x000009a5,0x000500ba, + 0x0000005d,0x000009a7,0x000009a6,0x000000f6,0x000300f7,0x000009a9,0x00000000,0x000400fa, + 0x000009a7,0x000009a8,0x000009b9,0x000200f8,0x000009a8,0x00050041,0x0000001f,0x000009ab, + 0x0000091a,0x00000319,0x0004003d,0x00000010,0x000009ac,0x000009ab,0x0003003e,0x000009aa, + 0x000009ac,0x00050041,0x0000001f,0x000009ae,0x0000091a,0x0000031b,0x0004003d,0x00000010, + 0x000009af,0x000009ae,0x0003003e,0x000009ad,0x000009af,0x0004003d,0x00000010,0x000009b1, + 0x000008e6,0x0003003e,0x000009b0,0x000009b1,0x0004003d,0x00000033,0x000009b3,0x00000926, + 0x0003003e,0x000009b2,0x000009b3,0x00080039,0x00000010,0x000009b4,0x0000007c,0x000009aa, + 0x000009ad,0x000009b0,0x000009b2,0x00050041,0x00000242,0x000009b5,0x00000926,0x0000031b, + 0x0004003d,0x00000030,0x000009b6,0x000009b5,0x0008004f,0x00000010,0x000009b7,0x000009b6, + 0x000009b6,0x00000000,0x00000001,0x00000002,0x00050081,0x00000010,0x000009b8,0x000009b4, + 0x000009b7,0x0003003e,0x00000921,0x000009b8,0x000200f9,0x000009a9,0x000200f8,0x000009b9, + 0x00060041,0x0000002a,0x000009ba,0x00000926,0x000001e0,0x000000f2,0x0004003d,0x00000008, + 0x000009bb,0x000009ba,0x000500ba,0x0000005d,0x000009bc,0x000009bb,0x000000f6,0x000300f7, + 0x000009be,0x00000000,0x000400fa,0x000009bc,0x000009bd,0x000009cc,0x000200f8,0x000009bd, + 0x00050041,0x0000001f,0x000009c0,0x0000091a,0x00000319,0x0004003d,0x00000010,0x000009c1, + 0x000009c0,0x0003003e,0x000009bf,0x000009c1,0x00050041,0x0000001f,0x000009c3,0x0000091a, + 0x0000031b,0x0004003d,0x00000010,0x000009c4,0x000009c3,0x0003003e,0x000009c2,0x000009c4, + 0x00050041,0x00000242,0x000009c6,0x00000926,0x000001d9,0x0004003d,0x00000030,0x000009c7, + 0x000009c6,0x0008004f,0x00000010,0x000009c8,0x000009c7,0x000009c7,0x00000000,0x00000001, + 0x00000002,0x0003003e,0x000009c5,0x000009c8,0x0004003d,0x00000033,0x000009ca,0x00000926, + 0x0003003e,0x000009c9,0x000009ca,0x00080039,0x00000010,0x000009cb,0x00000076,0x000009bf, + 0x000009c2,0x000009c5,0x000009c9,0x0003003e,0x00000921,0x000009cb,0x000200f9,0x000009be, + 0x000200f8,0x000009cc,0x00050041,0x00000242,0x000009cd,0x00000926,0x000001d9,0x0004003d, + 0x00000030,0x000009ce,0x000009cd,0x0008004f,0x00000010,0x000009cf,0x000009ce,0x000009ce, + 0x00000000,0x00000001,0x00000002,0x0003003e,0x00000921,0x000009cf,0x000200f9,0x000009be, + 0x000200f8,0x000009be,0x000200f9,0x000009a9,0x000200f8,0x000009a9,0x000200f9,0x00000925, + 0x000200f8,0x000009d0,0x00050041,0x00000007,0x000009d2,0x000007f6,0x000000ba,0x0004003d, + 0x00000006,0x000009d3,0x000009d2,0x00040070,0x00000008,0x000009d4,0x000009d3,0x00060041, + 0x000000f3,0x000009d5,0x000000e8,0x000001e0,0x000000ba,0x0004003d,0x00000008,0x000009d6, + 0x000009d5,0x0007000c,0x00000008,0x000009d7,0x00000001,0x00000028,0x000009d6,0x000000dc, + 0x00050088,0x00000008,0x000009d8,0x000009d4,0x000009d7,0x0008000c,0x00000008,0x000009d9, + 0x00000001,0x0000002b,0x000009d8,0x000000cc,0x000000dc,0x0003003e,0x000009d1,0x000009d9, + 0x00050041,0x000000ea,0x000009da,0x000000e8,0x00000197,0x0004003d,0x00000030,0x000009db, + 0x000009da,0x0008004f,0x00000010,0x000009dc,0x000009db,0x000009db,0x00000000,0x00000001, + 0x00000002,0x00050041,0x000000ea,0x000009dd,0x000000e8,0x00000193,0x0004003d,0x00000030, + 0x000009de,0x000009dd,0x0008004f,0x00000010,0x000009df,0x000009de,0x000009de,0x00000000, + 0x00000001,0x00000002,0x0004003d,0x00000008,0x000009e0,0x000009d1,0x00060050,0x00000010, + 0x000009e1,0x000009e0,0x000009e0,0x000009e0,0x0008000c,0x00000010,0x000009e2,0x00000001, + 0x0000002e,0x000009dc,0x000009df,0x000009e1,0x0003003e,0x00000921,0x000009e2,0x00060041, + 0x000000f3,0x000009e3,0x000000e8,0x000000e9,0x000000c2,0x0004003d,0x00000008,0x000009e4, + 0x000009e3,0x000500ba,0x0000005d,0x000009e5,0x000009e4,0x000004b1,0x000300f7,0x000009e7, + 0x00000000,0x000400fa,0x000009e5,0x000009e6,0x000009e7,0x000200f8,0x000009e6,0x0004003d, + 0x00000010,0x000009e9,0x000008e6,0x0003003e,0x000009e8,0x000009e9,0x00050039,0x00000010, + 0x000009ea,0x00000025,0x000009e8,0x0003003e,0x00000921,0x000009ea,0x000200f9,0x000009e7, + 0x000200f8,0x000009e7,0x000200f9,0x00000925,0x000200f8,0x00000925,0x0004003d,0x00000890, + 0x000009eb,0x00000892,0x0004003d,0x000007f4,0x000009ec,0x000007f6,0x0004007c,0x00000895, + 0x000009ed,0x000009ec,0x0004003d,0x00000010,0x000009ee,0x00000921,0x00050051,0x00000008, + 0x000009ef,0x000009ee,0x00000000,0x00050051,0x00000008,0x000009f0,0x000009ee,0x00000001, + 0x00050051,0x00000008,0x000009f1,0x000009ee,0x00000002,0x00070050,0x00000030,0x000009f2, + 0x000009ef,0x000009f0,0x000009f1,0x000000dc,0x00070050,0x00000030,0x000009f3,0x000000cc, + 0x000000cc,0x000000cc,0x000000cc,0x00070050,0x00000030,0x000009f4,0x000000dc,0x000000dc, + 0x000000dc,0x000000dc,0x0008000c,0x00000030,0x000009f5,0x00000001,0x0000002b,0x000009f2, + 0x000009f3,0x000009f4,0x00040063,0x000009eb,0x000009ed,0x000009f5,0x000100fd,0x000200f8, + 0x00000919,0x0004003d,0x00000008,0x000009f7,0x00000816,0x000500ba,0x0000005d,0x000009f9, + 0x000009f7,0x000009f8,0x0004003d,0x00000008,0x000009fa,0x00000816,0x000500b8,0x0000005d, + 0x000009fb,0x000009fa,0x000008fd,0x000500a7,0x0000005d,0x000009fc,0x000009f9,0x000009fb, + 0x000300f7,0x000009fe,0x00000000,0x000400fa,0x000009fc,0x000009fd,0x000009fe,0x000200f8, + 0x000009fd,0x0004003d,0x00000010,0x00000a01,0x000008dc,0x0003003e,0x00000a00,0x00000a01, + 0x0004003d,0x00000010,0x00000a03,0x000008e6,0x0003003e,0x00000a02,0x00000a03,0x0003003e, + 0x00000a04,0x0000010b,0x00070039,0x0000005f,0x00000a05,0x00000064,0x00000a00,0x00000a02, + 0x00000a04,0x0003003e,0x000009ff,0x00000a05,0x00050041,0x00000315,0x00000a06,0x000009ff, + 0x000001d9,0x0004003d,0x0000005d,0x00000a07,0x00000a06,0x000300f7,0x00000a09,0x00000000, + 0x000400fa,0x00000a07,0x00000a08,0x00000b3f,0x000200f8,0x00000a08,0x00050041,0x000001d7, + 0x00000a0b,0x000009ff,0x000001e0,0x0004003d,0x0000005e,0x00000a0c,0x00000a0b,0x00060041, + 0x00000340,0x00000a0d,0x0000033d,0x000001d9,0x00000a0c,0x0004003d,0x00000339,0x00000a0e, + 0x00000a0d,0x00050051,0x00000030,0x00000a0f,0x00000a0e,0x00000000,0x00050041,0x00000242, + 0x00000a10,0x00000a0a,0x000001d9,0x0003003e,0x00000a10,0x00000a0f,0x00050051,0x00000030, + 0x00000a11,0x00000a0e,0x00000001,0x00050041,0x00000242,0x00000a12,0x00000a0a,0x00000210, + 0x0003003e,0x00000a12,0x00000a11,0x00050051,0x00000030,0x00000a13,0x00000a0e,0x00000002, + 0x00050041,0x00000242,0x00000a14,0x00000a0a,0x00000319,0x0003003e,0x00000a14,0x00000a13, + 0x00050051,0x00000030,0x00000a15,0x00000a0e,0x00000003,0x00050041,0x00000242,0x00000a16, + 0x00000a0a,0x0000031b,0x0003003e,0x00000a16,0x00000a15,0x00050051,0x00000030,0x00000a17, + 0x00000a0e,0x00000004,0x00050041,0x00000242,0x00000a18,0x00000a0a,0x000001e0,0x0003003e, + 0x00000a18,0x00000a17,0x00050051,0x00000333,0x00000a19,0x00000a0e,0x00000005,0x00050041, + 0x0000034e,0x00000a1a,0x00000a0a,0x00000197,0x00050051,0x00000030,0x00000a1b,0x00000a19, + 0x00000000,0x00050041,0x00000242,0x00000a1c,0x00000a1a,0x000001d9,0x0003003e,0x00000a1c, + 0x00000a1b,0x00050051,0x00000030,0x00000a1d,0x00000a19,0x00000001,0x00050041,0x00000242, + 0x00000a1e,0x00000a1a,0x00000210,0x0003003e,0x00000a1e,0x00000a1d,0x00050051,0x00000030, + 0x00000a1f,0x00000a19,0x00000002,0x00050041,0x00000242,0x00000a20,0x00000a1a,0x00000319, + 0x0003003e,0x00000a20,0x00000a1f,0x00050051,0x00000030,0x00000a21,0x00000a19,0x00000003, + 0x00050041,0x00000242,0x00000a22,0x00000a1a,0x0000031b,0x0003003e,0x00000a22,0x00000a21, + 0x00050051,0x00000030,0x00000a23,0x00000a19,0x00000004,0x00050041,0x00000242,0x00000a24, + 0x00000a1a,0x000001e0,0x0003003e,0x00000a24,0x00000a23,0x00050051,0x00000030,0x00000a25, + 0x00000a19,0x00000005,0x00050041,0x00000242,0x00000a26,0x00000a1a,0x00000197,0x0003003e, + 0x00000a26,0x00000a25,0x00050051,0x00000030,0x00000a27,0x00000a19,0x00000006,0x00050041, + 0x00000242,0x00000a28,0x00000a1a,0x00000193,0x0003003e,0x00000a28,0x00000a27,0x00050051, + 0x00000030,0x00000a29,0x00000a19,0x00000007,0x00050041,0x00000242,0x00000a2a,0x00000a1a, + 0x0000035f,0x0003003e,0x00000a2a,0x00000a29,0x00050051,0x00000334,0x00000a2b,0x00000a0e, + 0x00000006,0x00050041,0x0000034e,0x00000a2c,0x00000a0a,0x00000193,0x00050051,0x00000030, + 0x00000a2d,0x00000a2b,0x00000000,0x00050041,0x00000242,0x00000a2e,0x00000a2c,0x000001d9, + 0x0003003e,0x00000a2e,0x00000a2d,0x00050051,0x00000030,0x00000a2f,0x00000a2b,0x00000001, + 0x00050041,0x00000242,0x00000a30,0x00000a2c,0x00000210,0x0003003e,0x00000a30,0x00000a2f, + 0x00050051,0x00000030,0x00000a31,0x00000a2b,0x00000002,0x00050041,0x00000242,0x00000a32, + 0x00000a2c,0x00000319,0x0003003e,0x00000a32,0x00000a31,0x00050051,0x00000030,0x00000a33, + 0x00000a2b,0x00000003,0x00050041,0x00000242,0x00000a34,0x00000a2c,0x0000031b,0x0003003e, + 0x00000a34,0x00000a33,0x00050051,0x00000030,0x00000a35,0x00000a2b,0x00000004,0x00050041, + 0x00000242,0x00000a36,0x00000a2c,0x000001e0,0x0003003e,0x00000a36,0x00000a35,0x00050051, + 0x00000030,0x00000a37,0x00000a2b,0x00000005,0x00050041,0x00000242,0x00000a38,0x00000a2c, + 0x00000197,0x0003003e,0x00000a38,0x00000a37,0x00050051,0x00000030,0x00000a39,0x00000a2b, + 0x00000006,0x00050041,0x00000242,0x00000a3a,0x00000a2c,0x00000193,0x0003003e,0x00000a3a, + 0x00000a39,0x00050051,0x00000030,0x00000a3b,0x00000a2b,0x00000007,0x00050041,0x00000242, + 0x00000a3c,0x00000a2c,0x0000035f,0x0003003e,0x00000a3c,0x00000a3b,0x00050051,0x00000335, + 0x00000a3d,0x00000a0e,0x00000007,0x00050041,0x0000034e,0x00000a3e,0x00000a0a,0x0000035f, + 0x00050051,0x00000030,0x00000a3f,0x00000a3d,0x00000000,0x00050041,0x00000242,0x00000a40, + 0x00000a3e,0x000001d9,0x0003003e,0x00000a40,0x00000a3f,0x00050051,0x00000030,0x00000a41, + 0x00000a3d,0x00000001,0x00050041,0x00000242,0x00000a42,0x00000a3e,0x00000210,0x0003003e, + 0x00000a42,0x00000a41,0x00050051,0x00000030,0x00000a43,0x00000a3d,0x00000002,0x00050041, + 0x00000242,0x00000a44,0x00000a3e,0x00000319,0x0003003e,0x00000a44,0x00000a43,0x00050051, + 0x00000030,0x00000a45,0x00000a3d,0x00000003,0x00050041,0x00000242,0x00000a46,0x00000a3e, + 0x0000031b,0x0003003e,0x00000a46,0x00000a45,0x00050051,0x00000030,0x00000a47,0x00000a3d, + 0x00000004,0x00050041,0x00000242,0x00000a48,0x00000a3e,0x000001e0,0x0003003e,0x00000a48, + 0x00000a47,0x00050051,0x00000030,0x00000a49,0x00000a3d,0x00000005,0x00050041,0x00000242, + 0x00000a4a,0x00000a3e,0x00000197,0x0003003e,0x00000a4a,0x00000a49,0x00050051,0x00000030, + 0x00000a4b,0x00000a3d,0x00000006,0x00050041,0x00000242,0x00000a4c,0x00000a3e,0x00000193, + 0x0003003e,0x00000a4c,0x00000a4b,0x00050051,0x00000030,0x00000a4d,0x00000a3d,0x00000007, + 0x00050041,0x00000242,0x00000a4e,0x00000a3e,0x0000035f,0x0003003e,0x00000a4e,0x00000a4d, + 0x00050051,0x00000336,0x00000a4f,0x00000a0e,0x00000008,0x00050041,0x0000034e,0x00000a50, + 0x00000a0a,0x00000386,0x00050051,0x00000030,0x00000a51,0x00000a4f,0x00000000,0x00050041, + 0x00000242,0x00000a52,0x00000a50,0x000001d9,0x0003003e,0x00000a52,0x00000a51,0x00050051, + 0x00000030,0x00000a53,0x00000a4f,0x00000001,0x00050041,0x00000242,0x00000a54,0x00000a50, + 0x00000210,0x0003003e,0x00000a54,0x00000a53,0x00050051,0x00000030,0x00000a55,0x00000a4f, + 0x00000002,0x00050041,0x00000242,0x00000a56,0x00000a50,0x00000319,0x0003003e,0x00000a56, + 0x00000a55,0x00050051,0x00000030,0x00000a57,0x00000a4f,0x00000003,0x00050041,0x00000242, + 0x00000a58,0x00000a50,0x0000031b,0x0003003e,0x00000a58,0x00000a57,0x00050051,0x00000030, + 0x00000a59,0x00000a4f,0x00000004,0x00050041,0x00000242,0x00000a5a,0x00000a50,0x000001e0, + 0x0003003e,0x00000a5a,0x00000a59,0x00050051,0x00000030,0x00000a5b,0x00000a4f,0x00000005, + 0x00050041,0x00000242,0x00000a5c,0x00000a50,0x00000197,0x0003003e,0x00000a5c,0x00000a5b, + 0x00050051,0x00000030,0x00000a5d,0x00000a4f,0x00000006,0x00050041,0x00000242,0x00000a5e, + 0x00000a50,0x00000193,0x0003003e,0x00000a5e,0x00000a5d,0x00050051,0x00000030,0x00000a5f, + 0x00000a4f,0x00000007,0x00050041,0x00000242,0x00000a60,0x00000a50,0x0000035f,0x0003003e, + 0x00000a60,0x00000a5f,0x00050051,0x00000337,0x00000a61,0x00000a0e,0x00000009,0x00050041, + 0x0000034e,0x00000a62,0x00000a0a,0x00000399,0x00050051,0x00000030,0x00000a63,0x00000a61, + 0x00000000,0x00050041,0x00000242,0x00000a64,0x00000a62,0x000001d9,0x0003003e,0x00000a64, + 0x00000a63,0x00050051,0x00000030,0x00000a65,0x00000a61,0x00000001,0x00050041,0x00000242, + 0x00000a66,0x00000a62,0x00000210,0x0003003e,0x00000a66,0x00000a65,0x00050051,0x00000030, + 0x00000a67,0x00000a61,0x00000002,0x00050041,0x00000242,0x00000a68,0x00000a62,0x00000319, + 0x0003003e,0x00000a68,0x00000a67,0x00050051,0x00000030,0x00000a69,0x00000a61,0x00000003, + 0x00050041,0x00000242,0x00000a6a,0x00000a62,0x0000031b,0x0003003e,0x00000a6a,0x00000a69, + 0x00050051,0x00000030,0x00000a6b,0x00000a61,0x00000004,0x00050041,0x00000242,0x00000a6c, + 0x00000a62,0x000001e0,0x0003003e,0x00000a6c,0x00000a6b,0x00050051,0x00000030,0x00000a6d, + 0x00000a61,0x00000005,0x00050041,0x00000242,0x00000a6e,0x00000a62,0x00000197,0x0003003e, + 0x00000a6e,0x00000a6d,0x00050051,0x00000030,0x00000a6f,0x00000a61,0x00000006,0x00050041, + 0x00000242,0x00000a70,0x00000a62,0x00000193,0x0003003e,0x00000a70,0x00000a6f,0x00050051, + 0x00000030,0x00000a71,0x00000a61,0x00000007,0x00050041,0x00000242,0x00000a72,0x00000a62, + 0x0000035f,0x0003003e,0x00000a72,0x00000a71,0x00050051,0x00000338,0x00000a73,0x00000a0e, + 0x0000000a,0x00050041,0x0000034e,0x00000a74,0x00000a0a,0x000003ac,0x00050051,0x00000030, + 0x00000a75,0x00000a73,0x00000000,0x00050041,0x00000242,0x00000a76,0x00000a74,0x000001d9, + 0x0003003e,0x00000a76,0x00000a75,0x00050051,0x00000030,0x00000a77,0x00000a73,0x00000001, + 0x00050041,0x00000242,0x00000a78,0x00000a74,0x00000210,0x0003003e,0x00000a78,0x00000a77, + 0x00050051,0x00000030,0x00000a79,0x00000a73,0x00000002,0x00050041,0x00000242,0x00000a7a, + 0x00000a74,0x00000319,0x0003003e,0x00000a7a,0x00000a79,0x00050051,0x00000030,0x00000a7b, + 0x00000a73,0x00000003,0x00050041,0x00000242,0x00000a7c,0x00000a74,0x0000031b,0x0003003e, + 0x00000a7c,0x00000a7b,0x00050051,0x00000030,0x00000a7d,0x00000a73,0x00000004,0x00050041, + 0x00000242,0x00000a7e,0x00000a74,0x000001e0,0x0003003e,0x00000a7e,0x00000a7d,0x00050051, + 0x00000030,0x00000a7f,0x00000a73,0x00000005,0x00050041,0x00000242,0x00000a80,0x00000a74, + 0x00000197,0x0003003e,0x00000a80,0x00000a7f,0x00050051,0x00000030,0x00000a81,0x00000a73, + 0x00000006,0x00050041,0x00000242,0x00000a82,0x00000a74,0x00000193,0x0003003e,0x00000a82, + 0x00000a81,0x00050051,0x00000030,0x00000a83,0x00000a73,0x00000007,0x00050041,0x00000242, + 0x00000a84,0x00000a74,0x0000035f,0x0003003e,0x00000a84,0x00000a83,0x00050051,0x00000030, + 0x00000a85,0x00000a0e,0x0000000b,0x00050041,0x00000242,0x00000a86,0x00000a0a,0x000003bf, + 0x0003003e,0x00000a86,0x00000a85,0x00050051,0x00000030,0x00000a87,0x00000a0e,0x0000000c, + 0x00050041,0x00000242,0x00000a88,0x00000a0a,0x000000e9,0x0003003e,0x00000a88,0x00000a87, + 0x00050041,0x0000001f,0x00000a8a,0x000009ff,0x0000031b,0x0004003d,0x00000010,0x00000a8b, + 0x00000a8a,0x0006000c,0x00000010,0x00000a8c,0x00000001,0x00000045,0x00000a8b,0x0003003e, + 0x00000a89,0x00000a8c,0x0004003d,0x00000010,0x00000a8e,0x000008e6,0x0004007f,0x00000010, + 0x00000a8f,0x00000a8e,0x0003003e,0x00000a8d,0x00000a8f,0x00050041,0x00000242,0x00000a91, + 0x00000a0a,0x000001d9,0x0004003d,0x00000030,0x00000a92,0x00000a91,0x0008004f,0x00000010, + 0x00000a93,0x00000a92,0x00000a92,0x00000000,0x00000001,0x00000002,0x0003003e,0x00000a90, + 0x00000a93,0x00060041,0x0000002a,0x00000a95,0x00000a0a,0x000000e9,0x00000137,0x0004003d, + 0x00000008,0x00000a96,0x00000a95,0x000500ba,0x0000005d,0x00000a97,0x00000a96,0x000000f6, + 0x000300f7,0x00000a9a,0x00000000,0x000400fa,0x00000a97,0x00000a99,0x00000aa4,0x000200f8, + 0x00000a99,0x0004003d,0x00000033,0x00000a9c,0x00000a0a,0x0003003e,0x00000a9b,0x00000a9c, + 0x00050039,0x00000010,0x00000a9d,0x0000003b,0x00000a9b,0x00050083,0x00000010,0x00000a9e, + 0x0000027f,0x00000a9d,0x00060041,0x0000002a,0x00000a9f,0x00000a0a,0x000000e9,0x000000c2, + 0x0004003d,0x00000008,0x00000aa0,0x00000a9f,0x0008000c,0x00000008,0x00000aa1,0x00000001, + 0x0000002b,0x00000aa0,0x000000cc,0x000000dc,0x00050083,0x00000008,0x00000aa2,0x000000dc, + 0x00000aa1,0x0005008e,0x00000010,0x00000aa3,0x00000a9e,0x00000aa2,0x0003003e,0x00000a98, + 0x00000aa3,0x000200f9,0x00000a9a,0x000200f8,0x00000aa4,0x0003003e,0x00000a98,0x0000027f, + 0x000200f9,0x00000a9a,0x000200f8,0x00000a9a,0x0004003d,0x00000010,0x00000aa5,0x00000a98, + 0x0003003e,0x00000a94,0x00000aa5,0x0004003d,0x00000010,0x00000aa7,0x00000a94,0x0004003d, + 0x00000010,0x00000aa8,0x00000a90,0x00050085,0x00000010,0x00000aa9,0x00000aa7,0x00000aa8, + 0x0004003d,0x00000010,0x00000aab,0x00000a89,0x0003003e,0x00000aaa,0x00000aab,0x00050039, + 0x00000010,0x00000aac,0x00000028,0x00000aaa,0x00050085,0x00000010,0x00000aad,0x00000aa9, + 0x00000aac,0x00060050,0x00000010,0x00000aae,0x00000215,0x00000215,0x00000215,0x00050088, + 0x00000010,0x00000aaf,0x00000aad,0x00000aae,0x0003003e,0x00000aa6,0x00000aaf,0x00060041, + 0x0000002a,0x00000ab1,0x00000a0a,0x000000e9,0x00000137,0x0004003d,0x00000008,0x00000ab2, + 0x00000ab1,0x000500ba,0x0000005d,0x00000ab3,0x00000ab2,0x000000f6,0x000300f7,0x00000ab6, + 0x00000000,0x000400fa,0x00000ab3,0x00000ab5,0x00000aba,0x000200f8,0x00000ab5,0x00060041, + 0x0000002a,0x00000ab7,0x00000a0a,0x000000e9,0x000000ba,0x0004003d,0x00000008,0x00000ab8, + 0x00000ab7,0x0008000c,0x00000008,0x00000ab9,0x00000001,0x0000002b,0x00000ab8,0x000000cc, + 0x000000dc,0x0003003e,0x00000ab4,0x00000ab9,0x000200f9,0x00000ab6,0x000200f8,0x00000aba, + 0x0003003e,0x00000ab4,0x000000dc,0x000200f9,0x00000ab6,0x000200f8,0x00000ab6,0x0004003d, + 0x00000008,0x00000abb,0x00000ab4,0x0003003e,0x00000ab0,0x00000abb,0x0004003d,0x00000010, + 0x00000abd,0x00000a8d,0x0004003d,0x00000010,0x00000abe,0x00000a89,0x0007000c,0x00000010, + 0x00000abf,0x00000001,0x00000047,0x00000abd,0x00000abe,0x0006000c,0x00000010,0x00000ac0, + 0x00000001,0x00000045,0x00000abf,0x0003003e,0x00000abc,0x00000ac0,0x00060041,0x0000002a, + 0x00000ac2,0x00000a0a,0x000000e9,0x00000137,0x0004003d,0x00000008,0x00000ac3,0x00000ac2, + 0x000500ba,0x0000005d,0x00000ac4,0x00000ac3,0x000000f6,0x000300f7,0x00000ac7,0x00000000, + 0x000400fa,0x00000ac4,0x00000ac6,0x00000acb,0x000200f8,0x00000ac6,0x0004003d,0x00000033, + 0x00000ac9,0x00000a0a,0x0003003e,0x00000ac8,0x00000ac9,0x00050039,0x00000010,0x00000aca, + 0x0000003b,0x00000ac8,0x0003003e,0x00000ac5,0x00000aca,0x000200f9,0x00000ac7,0x000200f8, + 0x00000acb,0x00050041,0x00000242,0x00000acc,0x00000a0a,0x00000319,0x0004003d,0x00000030, + 0x00000acd,0x00000acc,0x0008004f,0x00000010,0x00000ace,0x00000acd,0x00000acd,0x00000000, + 0x00000001,0x00000002,0x00060050,0x00000010,0x00000acf,0x000000f6,0x000000f6,0x000000f6, + 0x0008000c,0x00000010,0x00000ad0,0x00000001,0x0000002e,0x00000241,0x00000ace,0x00000acf, + 0x0003003e,0x00000ac5,0x00000ad0,0x000200f9,0x00000ac7,0x000200f8,0x00000ac7,0x0004003d, + 0x00000010,0x00000ad1,0x00000ac5,0x0003003e,0x00000ac1,0x00000ad1,0x0004003d,0x00000010, + 0x00000ad3,0x00000a89,0x0004003d,0x00000010,0x00000ad4,0x00000a8d,0x00050094,0x00000008, + 0x00000ad5,0x00000ad3,0x00000ad4,0x0007000c,0x00000008,0x00000ad6,0x00000001,0x00000028, + 0x00000ad5,0x000000cc,0x0003003e,0x00000ad2,0x00000ad6,0x0004003d,0x00000010,0x00000ad8, + 0x00000ac1,0x0004003d,0x00000010,0x00000ad9,0x00000ac1,0x00050083,0x00000010,0x00000ada, + 0x0000027f,0x00000ad9,0x0004003d,0x00000008,0x00000adb,0x00000ad2,0x00050083,0x00000008, + 0x00000adc,0x000000dc,0x00000adb,0x0007000c,0x00000008,0x00000add,0x00000001,0x0000001a, + 0x00000adc,0x00000285,0x0005008e,0x00000010,0x00000ade,0x00000ada,0x00000add,0x00050081, + 0x00000010,0x00000adf,0x00000ad8,0x00000ade,0x0003003e,0x00000ad7,0x00000adf,0x0004003d, + 0x00000010,0x00000ae1,0x00000ad7,0x0004003d,0x00000010,0x00000ae3,0x00000abc,0x0003003e, + 0x00000ae2,0x00000ae3,0x0004003d,0x00000008,0x00000ae5,0x00000ab0,0x0003003e,0x00000ae4, + 0x00000ae5,0x00060039,0x00000010,0x00000ae6,0x0000002e,0x00000ae2,0x00000ae4,0x00050085, + 0x00000010,0x00000ae7,0x00000ae1,0x00000ae6,0x0003003e,0x00000ae0,0x00000ae7,0x0004003d, + 0x00000010,0x00000ae9,0x00000aa6,0x0004003d,0x00000010,0x00000aea,0x00000ae0,0x00050081, + 0x00000010,0x00000aeb,0x00000ae9,0x00000aea,0x0003003e,0x00000ae8,0x00000aeb,0x00060041, + 0x0000002a,0x00000aec,0x00000a0a,0x000000e9,0x00000137,0x0004003d,0x00000008,0x00000aed, + 0x00000aec,0x000500ba,0x0000005d,0x00000aee,0x00000aed,0x000000f6,0x000300f7,0x00000af0, + 0x00000000,0x000400fa,0x00000aee,0x00000aef,0x00000afe,0x000200f8,0x00000aef,0x00050041, + 0x0000001f,0x00000af2,0x000009ff,0x00000319,0x0004003d,0x00000010,0x00000af3,0x00000af2, + 0x0003003e,0x00000af1,0x00000af3,0x00050041,0x0000001f,0x00000af5,0x000009ff,0x0000031b, + 0x0004003d,0x00000010,0x00000af6,0x00000af5,0x0003003e,0x00000af4,0x00000af6,0x0004003d, + 0x00000010,0x00000af8,0x000008e6,0x0003003e,0x00000af7,0x00000af8,0x0004003d,0x00000033, + 0x00000afa,0x00000a0a,0x0003003e,0x00000af9,0x00000afa,0x00080039,0x00000010,0x00000afb, + 0x0000007c,0x00000af1,0x00000af4,0x00000af7,0x00000af9,0x0004003d,0x00000010,0x00000afc, + 0x00000ae8,0x00050081,0x00000010,0x00000afd,0x00000afc,0x00000afb,0x0003003e,0x00000ae8, + 0x00000afd,0x000200f9,0x00000af0,0x000200f8,0x00000afe,0x00060041,0x0000002a,0x00000aff, + 0x00000a0a,0x000001e0,0x000000f2,0x0004003d,0x00000008,0x00000b00,0x00000aff,0x000500ba, + 0x0000005d,0x00000b01,0x00000b00,0x000000f6,0x000300f7,0x00000b03,0x00000000,0x000400fa, + 0x00000b01,0x00000b02,0x00000b03,0x000200f8,0x00000b02,0x00050041,0x0000001f,0x00000b05, + 0x000009ff,0x00000319,0x0004003d,0x00000010,0x00000b06,0x00000b05,0x0003003e,0x00000b04, + 0x00000b06,0x00050041,0x0000001f,0x00000b08,0x000009ff,0x0000031b,0x0004003d,0x00000010, + 0x00000b09,0x00000b08,0x0003003e,0x00000b07,0x00000b09,0x00050041,0x00000242,0x00000b0b, + 0x00000a0a,0x000001d9,0x0004003d,0x00000030,0x00000b0c,0x00000b0b,0x0008004f,0x00000010, + 0x00000b0d,0x00000b0c,0x00000b0c,0x00000000,0x00000001,0x00000002,0x0003003e,0x00000b0a, + 0x00000b0d,0x0004003d,0x00000033,0x00000b0f,0x00000a0a,0x0003003e,0x00000b0e,0x00000b0f, + 0x00080039,0x00000010,0x00000b10,0x00000076,0x00000b04,0x00000b07,0x00000b0a,0x00000b0e, + 0x0004003d,0x00000010,0x00000b11,0x00000ae8,0x00050081,0x00000010,0x00000b12,0x00000b11, + 0x00000b10,0x0003003e,0x00000ae8,0x00000b12,0x000200f9,0x00000b03,0x000200f8,0x00000b03, + 0x000200f9,0x00000af0,0x000200f8,0x00000af0,0x00050041,0x00000242,0x00000b13,0x00000a0a, + 0x0000031b,0x0004003d,0x00000030,0x00000b14,0x00000b13,0x0008004f,0x00000010,0x00000b15, + 0x00000b14,0x00000b14,0x00000000,0x00000001,0x00000002,0x0004003d,0x00000010,0x00000b16, + 0x00000ae8,0x00050081,0x00000010,0x00000b17,0x00000b16,0x00000b15,0x0003003e,0x00000ae8, + 0x00000b17,0x0004003d,0x0000005e,0x00000b1c,0x00000822,0x00050041,0x0000001f,0x00000b1d, + 0x000009ff,0x0000031b,0x0004003d,0x00000010,0x00000b1e,0x00000b1d,0x00050051,0x00000008, + 0x00000b1f,0x00000b1e,0x00000000,0x00050051,0x00000008,0x00000b20,0x00000b1e,0x00000001, + 0x00050051,0x00000008,0x00000b21,0x00000b1e,0x00000002,0x00070050,0x00000030,0x00000b22, + 0x00000b1f,0x00000b20,0x00000b21,0x000000dc,0x00060041,0x000000ea,0x00000b23,0x00000b1b, + 0x000001d9,0x00000b1c,0x0003003e,0x00000b23,0x00000b22,0x0004003d,0x0000005e,0x00000b28, + 0x00000822,0x00050041,0x0000001f,0x00000b29,0x000009ff,0x00000319,0x0004003d,0x00000010, + 0x00000b2a,0x00000b29,0x00050041,0x0000002a,0x00000b2b,0x000009ff,0x00000210,0x0004003d, + 0x00000008,0x00000b2c,0x00000b2b,0x00050051,0x00000008,0x00000b2d,0x00000b2a,0x00000000, + 0x00050051,0x00000008,0x00000b2e,0x00000b2a,0x00000001,0x00050051,0x00000008,0x00000b2f, + 0x00000b2a,0x00000002,0x00070050,0x00000030,0x00000b30,0x00000b2d,0x00000b2e,0x00000b2f, + 0x00000b2c,0x00060041,0x000000ea,0x00000b31,0x00000b27,0x000001d9,0x00000b28,0x0003003e, + 0x00000b31,0x00000b30,0x0004003d,0x0000005e,0x00000b36,0x00000822,0x00050041,0x00000242, + 0x00000b37,0x00000a0a,0x000001d9,0x0004003d,0x00000030,0x00000b38,0x00000b37,0x0008004f, + 0x00000010,0x00000b39,0x00000b38,0x00000b38,0x00000000,0x00000001,0x00000002,0x00050051, + 0x00000008,0x00000b3a,0x00000b39,0x00000000,0x00050051,0x00000008,0x00000b3b,0x00000b39, + 0x00000001,0x00050051,0x00000008,0x00000b3c,0x00000b39,0x00000002,0x00070050,0x00000030, + 0x00000b3d,0x00000b3a,0x00000b3b,0x00000b3c,0x000000dc,0x00060041,0x000000ea,0x00000b3e, + 0x00000b35,0x000001d9,0x00000b36,0x0003003e,0x00000b3e,0x00000b3d,0x000200f9,0x00000a09, + 0x000200f8,0x00000b3f,0x0004003d,0x00000010,0x00000b41,0x000008e6,0x0003003e,0x00000b40, + 0x00000b41,0x00050039,0x00000010,0x00000b42,0x00000025,0x00000b40,0x0003003e,0x00000ae8, + 0x00000b42,0x000200f9,0x00000a09,0x000200f8,0x00000a09,0x0004003d,0x00000890,0x00000b43, + 0x00000892,0x0004003d,0x000007f4,0x00000b44,0x000007f6,0x0004007c,0x00000895,0x00000b45, + 0x00000b44,0x0004003d,0x00000010,0x00000b46,0x00000ae8,0x00050051,0x00000008,0x00000b47, + 0x00000b46,0x00000000,0x00050051,0x00000008,0x00000b48,0x00000b46,0x00000001,0x00050051, + 0x00000008,0x00000b49,0x00000b46,0x00000002,0x00070050,0x00000030,0x00000b4a,0x00000b47, + 0x00000b48,0x00000b49,0x000000dc,0x00070050,0x00000030,0x00000b4b,0x000000cc,0x000000cc, + 0x000000cc,0x000000cc,0x00070050,0x00000030,0x00000b4c,0x000000dc,0x000000dc,0x000000dc, + 0x000000dc,0x0008000c,0x00000030,0x00000b4d,0x00000001,0x0000002b,0x00000b4a,0x00000b4b, + 0x00000b4c,0x00040063,0x00000b43,0x00000b45,0x00000b4d,0x0004003d,0x0000005e,0x00000b4e, + 0x00000822,0x0004003d,0x00000010,0x00000b4f,0x00000ae8,0x00060050,0x00000010,0x00000b50, + 0x000000cc,0x000000cc,0x000000cc,0x00060050,0x00000010,0x00000b51,0x000000dc,0x000000dc, + 0x000000dc,0x0008000c,0x00000010,0x00000b52,0x00000001,0x0000002b,0x00000b4f,0x00000b50, + 0x00000b51,0x00050051,0x00000008,0x00000b53,0x00000b52,0x00000000,0x00050051,0x00000008, + 0x00000b54,0x00000b52,0x00000001,0x00050051,0x00000008,0x00000b55,0x00000b52,0x00000002, + 0x00070050,0x00000030,0x00000b56,0x00000b53,0x00000b54,0x00000b55,0x000000dc,0x00060041, + 0x000000ea,0x00000b57,0x0000084b,0x000001d9,0x00000b4e,0x0003003e,0x00000b57,0x00000b56, + 0x000100fd,0x000200f8,0x000009fe,0x0004003d,0x00000008,0x00000b59,0x00000816,0x000500ba, + 0x0000005d,0x00000b5a,0x00000b59,0x00000589,0x0004003d,0x00000008,0x00000b5b,0x00000816, + 0x000500b8,0x0000005d,0x00000b5c,0x00000b5b,0x000009f8,0x000500a7,0x0000005d,0x00000b5d, + 0x00000b5a,0x00000b5c,0x000300f7,0x00000b5f,0x00000000,0x000400fa,0x00000b5d,0x00000b5e, + 0x00000b5f,0x000200f8,0x00000b5e,0x0004003d,0x00000010,0x00000b62,0x000008dc,0x0003003e, + 0x00000b61,0x00000b62,0x0004003d,0x00000010,0x00000b64,0x000008e6,0x0003003e,0x00000b63, + 0x00000b64,0x0003003e,0x00000b65,0x0000010b,0x00070039,0x0000005f,0x00000b66,0x00000064, + 0x00000b61,0x00000b63,0x00000b65,0x0003003e,0x00000b60,0x00000b66,0x00050041,0x00000315, + 0x00000b67,0x00000b60,0x000001d9,0x0004003d,0x0000005d,0x00000b68,0x00000b67,0x000300f7, + 0x00000b6a,0x00000000,0x000400fa,0x00000b68,0x00000b69,0x00000c59,0x000200f8,0x00000b69, + 0x00050041,0x000001d7,0x00000b6c,0x00000b60,0x000001e0,0x0004003d,0x0000005e,0x00000b6d, + 0x00000b6c,0x00060041,0x00000340,0x00000b6e,0x0000033d,0x000001d9,0x00000b6d,0x0004003d, + 0x00000339,0x00000b6f,0x00000b6e,0x00050051,0x00000030,0x00000b70,0x00000b6f,0x00000000, + 0x00050041,0x00000242,0x00000b71,0x00000b6b,0x000001d9,0x0003003e,0x00000b71,0x00000b70, + 0x00050051,0x00000030,0x00000b72,0x00000b6f,0x00000001,0x00050041,0x00000242,0x00000b73, + 0x00000b6b,0x00000210,0x0003003e,0x00000b73,0x00000b72,0x00050051,0x00000030,0x00000b74, + 0x00000b6f,0x00000002,0x00050041,0x00000242,0x00000b75,0x00000b6b,0x00000319,0x0003003e, + 0x00000b75,0x00000b74,0x00050051,0x00000030,0x00000b76,0x00000b6f,0x00000003,0x00050041, + 0x00000242,0x00000b77,0x00000b6b,0x0000031b,0x0003003e,0x00000b77,0x00000b76,0x00050051, + 0x00000030,0x00000b78,0x00000b6f,0x00000004,0x00050041,0x00000242,0x00000b79,0x00000b6b, + 0x000001e0,0x0003003e,0x00000b79,0x00000b78,0x00050051,0x00000333,0x00000b7a,0x00000b6f, + 0x00000005,0x00050041,0x0000034e,0x00000b7b,0x00000b6b,0x00000197,0x00050051,0x00000030, + 0x00000b7c,0x00000b7a,0x00000000,0x00050041,0x00000242,0x00000b7d,0x00000b7b,0x000001d9, + 0x0003003e,0x00000b7d,0x00000b7c,0x00050051,0x00000030,0x00000b7e,0x00000b7a,0x00000001, + 0x00050041,0x00000242,0x00000b7f,0x00000b7b,0x00000210,0x0003003e,0x00000b7f,0x00000b7e, + 0x00050051,0x00000030,0x00000b80,0x00000b7a,0x00000002,0x00050041,0x00000242,0x00000b81, + 0x00000b7b,0x00000319,0x0003003e,0x00000b81,0x00000b80,0x00050051,0x00000030,0x00000b82, + 0x00000b7a,0x00000003,0x00050041,0x00000242,0x00000b83,0x00000b7b,0x0000031b,0x0003003e, + 0x00000b83,0x00000b82,0x00050051,0x00000030,0x00000b84,0x00000b7a,0x00000004,0x00050041, + 0x00000242,0x00000b85,0x00000b7b,0x000001e0,0x0003003e,0x00000b85,0x00000b84,0x00050051, + 0x00000030,0x00000b86,0x00000b7a,0x00000005,0x00050041,0x00000242,0x00000b87,0x00000b7b, + 0x00000197,0x0003003e,0x00000b87,0x00000b86,0x00050051,0x00000030,0x00000b88,0x00000b7a, + 0x00000006,0x00050041,0x00000242,0x00000b89,0x00000b7b,0x00000193,0x0003003e,0x00000b89, + 0x00000b88,0x00050051,0x00000030,0x00000b8a,0x00000b7a,0x00000007,0x00050041,0x00000242, + 0x00000b8b,0x00000b7b,0x0000035f,0x0003003e,0x00000b8b,0x00000b8a,0x00050051,0x00000334, + 0x00000b8c,0x00000b6f,0x00000006,0x00050041,0x0000034e,0x00000b8d,0x00000b6b,0x00000193, + 0x00050051,0x00000030,0x00000b8e,0x00000b8c,0x00000000,0x00050041,0x00000242,0x00000b8f, + 0x00000b8d,0x000001d9,0x0003003e,0x00000b8f,0x00000b8e,0x00050051,0x00000030,0x00000b90, + 0x00000b8c,0x00000001,0x00050041,0x00000242,0x00000b91,0x00000b8d,0x00000210,0x0003003e, + 0x00000b91,0x00000b90,0x00050051,0x00000030,0x00000b92,0x00000b8c,0x00000002,0x00050041, + 0x00000242,0x00000b93,0x00000b8d,0x00000319,0x0003003e,0x00000b93,0x00000b92,0x00050051, + 0x00000030,0x00000b94,0x00000b8c,0x00000003,0x00050041,0x00000242,0x00000b95,0x00000b8d, + 0x0000031b,0x0003003e,0x00000b95,0x00000b94,0x00050051,0x00000030,0x00000b96,0x00000b8c, + 0x00000004,0x00050041,0x00000242,0x00000b97,0x00000b8d,0x000001e0,0x0003003e,0x00000b97, + 0x00000b96,0x00050051,0x00000030,0x00000b98,0x00000b8c,0x00000005,0x00050041,0x00000242, + 0x00000b99,0x00000b8d,0x00000197,0x0003003e,0x00000b99,0x00000b98,0x00050051,0x00000030, + 0x00000b9a,0x00000b8c,0x00000006,0x00050041,0x00000242,0x00000b9b,0x00000b8d,0x00000193, + 0x0003003e,0x00000b9b,0x00000b9a,0x00050051,0x00000030,0x00000b9c,0x00000b8c,0x00000007, + 0x00050041,0x00000242,0x00000b9d,0x00000b8d,0x0000035f,0x0003003e,0x00000b9d,0x00000b9c, + 0x00050051,0x00000335,0x00000b9e,0x00000b6f,0x00000007,0x00050041,0x0000034e,0x00000b9f, + 0x00000b6b,0x0000035f,0x00050051,0x00000030,0x00000ba0,0x00000b9e,0x00000000,0x00050041, + 0x00000242,0x00000ba1,0x00000b9f,0x000001d9,0x0003003e,0x00000ba1,0x00000ba0,0x00050051, + 0x00000030,0x00000ba2,0x00000b9e,0x00000001,0x00050041,0x00000242,0x00000ba3,0x00000b9f, + 0x00000210,0x0003003e,0x00000ba3,0x00000ba2,0x00050051,0x00000030,0x00000ba4,0x00000b9e, + 0x00000002,0x00050041,0x00000242,0x00000ba5,0x00000b9f,0x00000319,0x0003003e,0x00000ba5, + 0x00000ba4,0x00050051,0x00000030,0x00000ba6,0x00000b9e,0x00000003,0x00050041,0x00000242, + 0x00000ba7,0x00000b9f,0x0000031b,0x0003003e,0x00000ba7,0x00000ba6,0x00050051,0x00000030, + 0x00000ba8,0x00000b9e,0x00000004,0x00050041,0x00000242,0x00000ba9,0x00000b9f,0x000001e0, + 0x0003003e,0x00000ba9,0x00000ba8,0x00050051,0x00000030,0x00000baa,0x00000b9e,0x00000005, + 0x00050041,0x00000242,0x00000bab,0x00000b9f,0x00000197,0x0003003e,0x00000bab,0x00000baa, + 0x00050051,0x00000030,0x00000bac,0x00000b9e,0x00000006,0x00050041,0x00000242,0x00000bad, + 0x00000b9f,0x00000193,0x0003003e,0x00000bad,0x00000bac,0x00050051,0x00000030,0x00000bae, + 0x00000b9e,0x00000007,0x00050041,0x00000242,0x00000baf,0x00000b9f,0x0000035f,0x0003003e, + 0x00000baf,0x00000bae,0x00050051,0x00000336,0x00000bb0,0x00000b6f,0x00000008,0x00050041, + 0x0000034e,0x00000bb1,0x00000b6b,0x00000386,0x00050051,0x00000030,0x00000bb2,0x00000bb0, + 0x00000000,0x00050041,0x00000242,0x00000bb3,0x00000bb1,0x000001d9,0x0003003e,0x00000bb3, + 0x00000bb2,0x00050051,0x00000030,0x00000bb4,0x00000bb0,0x00000001,0x00050041,0x00000242, + 0x00000bb5,0x00000bb1,0x00000210,0x0003003e,0x00000bb5,0x00000bb4,0x00050051,0x00000030, + 0x00000bb6,0x00000bb0,0x00000002,0x00050041,0x00000242,0x00000bb7,0x00000bb1,0x00000319, + 0x0003003e,0x00000bb7,0x00000bb6,0x00050051,0x00000030,0x00000bb8,0x00000bb0,0x00000003, + 0x00050041,0x00000242,0x00000bb9,0x00000bb1,0x0000031b,0x0003003e,0x00000bb9,0x00000bb8, + 0x00050051,0x00000030,0x00000bba,0x00000bb0,0x00000004,0x00050041,0x00000242,0x00000bbb, + 0x00000bb1,0x000001e0,0x0003003e,0x00000bbb,0x00000bba,0x00050051,0x00000030,0x00000bbc, + 0x00000bb0,0x00000005,0x00050041,0x00000242,0x00000bbd,0x00000bb1,0x00000197,0x0003003e, + 0x00000bbd,0x00000bbc,0x00050051,0x00000030,0x00000bbe,0x00000bb0,0x00000006,0x00050041, + 0x00000242,0x00000bbf,0x00000bb1,0x00000193,0x0003003e,0x00000bbf,0x00000bbe,0x00050051, + 0x00000030,0x00000bc0,0x00000bb0,0x00000007,0x00050041,0x00000242,0x00000bc1,0x00000bb1, + 0x0000035f,0x0003003e,0x00000bc1,0x00000bc0,0x00050051,0x00000337,0x00000bc2,0x00000b6f, + 0x00000009,0x00050041,0x0000034e,0x00000bc3,0x00000b6b,0x00000399,0x00050051,0x00000030, + 0x00000bc4,0x00000bc2,0x00000000,0x00050041,0x00000242,0x00000bc5,0x00000bc3,0x000001d9, + 0x0003003e,0x00000bc5,0x00000bc4,0x00050051,0x00000030,0x00000bc6,0x00000bc2,0x00000001, + 0x00050041,0x00000242,0x00000bc7,0x00000bc3,0x00000210,0x0003003e,0x00000bc7,0x00000bc6, + 0x00050051,0x00000030,0x00000bc8,0x00000bc2,0x00000002,0x00050041,0x00000242,0x00000bc9, + 0x00000bc3,0x00000319,0x0003003e,0x00000bc9,0x00000bc8,0x00050051,0x00000030,0x00000bca, + 0x00000bc2,0x00000003,0x00050041,0x00000242,0x00000bcb,0x00000bc3,0x0000031b,0x0003003e, + 0x00000bcb,0x00000bca,0x00050051,0x00000030,0x00000bcc,0x00000bc2,0x00000004,0x00050041, + 0x00000242,0x00000bcd,0x00000bc3,0x000001e0,0x0003003e,0x00000bcd,0x00000bcc,0x00050051, + 0x00000030,0x00000bce,0x00000bc2,0x00000005,0x00050041,0x00000242,0x00000bcf,0x00000bc3, + 0x00000197,0x0003003e,0x00000bcf,0x00000bce,0x00050051,0x00000030,0x00000bd0,0x00000bc2, + 0x00000006,0x00050041,0x00000242,0x00000bd1,0x00000bc3,0x00000193,0x0003003e,0x00000bd1, + 0x00000bd0,0x00050051,0x00000030,0x00000bd2,0x00000bc2,0x00000007,0x00050041,0x00000242, + 0x00000bd3,0x00000bc3,0x0000035f,0x0003003e,0x00000bd3,0x00000bd2,0x00050051,0x00000338, + 0x00000bd4,0x00000b6f,0x0000000a,0x00050041,0x0000034e,0x00000bd5,0x00000b6b,0x000003ac, + 0x00050051,0x00000030,0x00000bd6,0x00000bd4,0x00000000,0x00050041,0x00000242,0x00000bd7, + 0x00000bd5,0x000001d9,0x0003003e,0x00000bd7,0x00000bd6,0x00050051,0x00000030,0x00000bd8, + 0x00000bd4,0x00000001,0x00050041,0x00000242,0x00000bd9,0x00000bd5,0x00000210,0x0003003e, + 0x00000bd9,0x00000bd8,0x00050051,0x00000030,0x00000bda,0x00000bd4,0x00000002,0x00050041, + 0x00000242,0x00000bdb,0x00000bd5,0x00000319,0x0003003e,0x00000bdb,0x00000bda,0x00050051, + 0x00000030,0x00000bdc,0x00000bd4,0x00000003,0x00050041,0x00000242,0x00000bdd,0x00000bd5, + 0x0000031b,0x0003003e,0x00000bdd,0x00000bdc,0x00050051,0x00000030,0x00000bde,0x00000bd4, + 0x00000004,0x00050041,0x00000242,0x00000bdf,0x00000bd5,0x000001e0,0x0003003e,0x00000bdf, + 0x00000bde,0x00050051,0x00000030,0x00000be0,0x00000bd4,0x00000005,0x00050041,0x00000242, + 0x00000be1,0x00000bd5,0x00000197,0x0003003e,0x00000be1,0x00000be0,0x00050051,0x00000030, + 0x00000be2,0x00000bd4,0x00000006,0x00050041,0x00000242,0x00000be3,0x00000bd5,0x00000193, + 0x0003003e,0x00000be3,0x00000be2,0x00050051,0x00000030,0x00000be4,0x00000bd4,0x00000007, + 0x00050041,0x00000242,0x00000be5,0x00000bd5,0x0000035f,0x0003003e,0x00000be5,0x00000be4, + 0x00050051,0x00000030,0x00000be6,0x00000b6f,0x0000000b,0x00050041,0x00000242,0x00000be7, + 0x00000b6b,0x000003bf,0x0003003e,0x00000be7,0x00000be6,0x00050051,0x00000030,0x00000be8, + 0x00000b6f,0x0000000c,0x00050041,0x00000242,0x00000be9,0x00000b6b,0x000000e9,0x0003003e, + 0x00000be9,0x00000be8,0x00050041,0x00000007,0x00000bec,0x000007f6,0x000000c2,0x0004003d, + 0x00000006,0x00000bed,0x00000bec,0x0003003e,0x00000beb,0x00000bed,0x00050041,0x00000007, + 0x00000bef,0x000007f6,0x000000ba,0x0004003d,0x00000006,0x00000bf0,0x00000bef,0x0003003e, + 0x00000bee,0x00000bf0,0x0004003d,0x00000006,0x00000bf2,0x00000811,0x0003003e,0x00000bf1, + 0x00000bf2,0x00070039,0x00000009,0x00000bf3,0x0000000e,0x00000beb,0x00000bee,0x00000bf1, + 0x00050041,0x0000001f,0x00000bf5,0x00000b60,0x00000319,0x0004003d,0x00000010,0x00000bf6, + 0x00000bf5,0x0003003e,0x00000bf4,0x00000bf6,0x00050041,0x0000001f,0x00000bf8,0x00000b60, + 0x0000031b,0x0004003d,0x00000010,0x00000bf9,0x00000bf8,0x0003003e,0x00000bf7,0x00000bf9, + 0x0003003e,0x00000bfa,0x00000bf3,0x00070039,0x00000008,0x00000bfb,0x00000070,0x00000bf4, + 0x00000bf7,0x00000bfa,0x0003003e,0x00000bea,0x00000bfb,0x00060041,0x0000002a,0x00000bfc, + 0x00000b6b,0x000000e9,0x00000137,0x0004003d,0x00000008,0x00000bfd,0x00000bfc,0x000500ba, + 0x0000005d,0x00000bfe,0x00000bfd,0x000000f6,0x000300f7,0x00000c00,0x00000000,0x000400fa, + 0x00000bfe,0x00000bff,0x00000c17,0x000200f8,0x00000bff,0x00050041,0x00000242,0x00000c02, + 0x00000b6b,0x000001d9,0x0004003d,0x00000030,0x00000c03,0x00000c02,0x0008004f,0x00000010, + 0x00000c04,0x00000c03,0x00000c03,0x00000000,0x00000001,0x00000002,0x0004003d,0x00000008, + 0x00000c05,0x00000bea,0x0005008e,0x00000010,0x00000c06,0x00000c04,0x00000c05,0x00050041, + 0x0000001f,0x00000c08,0x00000b60,0x00000319,0x0004003d,0x00000010,0x00000c09,0x00000c08, + 0x0003003e,0x00000c07,0x00000c09,0x00050041,0x0000001f,0x00000c0b,0x00000b60,0x0000031b, + 0x0004003d,0x00000010,0x00000c0c,0x00000c0b,0x0003003e,0x00000c0a,0x00000c0c,0x0004003d, + 0x00000010,0x00000c0e,0x000008e6,0x0003003e,0x00000c0d,0x00000c0e,0x0004003d,0x00000033, + 0x00000c10,0x00000b6b,0x0003003e,0x00000c0f,0x00000c10,0x00080039,0x00000010,0x00000c11, + 0x0000007c,0x00000c07,0x00000c0a,0x00000c0d,0x00000c0f,0x00050081,0x00000010,0x00000c12, + 0x00000c06,0x00000c11,0x00050041,0x00000242,0x00000c13,0x00000b6b,0x0000031b,0x0004003d, + 0x00000030,0x00000c14,0x00000c13,0x0008004f,0x00000010,0x00000c15,0x00000c14,0x00000c14, + 0x00000000,0x00000001,0x00000002,0x00050081,0x00000010,0x00000c16,0x00000c12,0x00000c15, + 0x0003003e,0x00000c01,0x00000c16,0x000200f9,0x00000c00,0x000200f8,0x00000c17,0x00060041, + 0x0000002a,0x00000c18,0x00000b6b,0x000001e0,0x000000f2,0x0004003d,0x00000008,0x00000c19, + 0x00000c18,0x000500ba,0x0000005d,0x00000c1a,0x00000c19,0x000000f6,0x000300f7,0x00000c1c, + 0x00000000,0x000400fa,0x00000c1a,0x00000c1b,0x00000c34,0x000200f8,0x00000c1b,0x00050041, + 0x00000242,0x00000c1d,0x00000b6b,0x000001d9,0x0004003d,0x00000030,0x00000c1e,0x00000c1d, + 0x0008004f,0x00000010,0x00000c1f,0x00000c1e,0x00000c1e,0x00000000,0x00000001,0x00000002, + 0x0004003d,0x00000008,0x00000c20,0x00000bea,0x0005008e,0x00000010,0x00000c21,0x00000c1f, + 0x00000c20,0x00050041,0x0000001f,0x00000c23,0x00000b60,0x00000319,0x0004003d,0x00000010, + 0x00000c24,0x00000c23,0x0003003e,0x00000c22,0x00000c24,0x00050041,0x0000001f,0x00000c26, + 0x00000b60,0x0000031b,0x0004003d,0x00000010,0x00000c27,0x00000c26,0x0003003e,0x00000c25, + 0x00000c27,0x00050041,0x00000242,0x00000c29,0x00000b6b,0x000001d9,0x0004003d,0x00000030, + 0x00000c2a,0x00000c29,0x0008004f,0x00000010,0x00000c2b,0x00000c2a,0x00000c2a,0x00000000, + 0x00000001,0x00000002,0x0003003e,0x00000c28,0x00000c2b,0x0004003d,0x00000033,0x00000c2d, + 0x00000b6b,0x0003003e,0x00000c2c,0x00000c2d,0x00080039,0x00000010,0x00000c2e,0x00000076, + 0x00000c22,0x00000c25,0x00000c28,0x00000c2c,0x00050081,0x00000010,0x00000c2f,0x00000c21, + 0x00000c2e,0x00050041,0x00000242,0x00000c30,0x00000b6b,0x0000031b,0x0004003d,0x00000030, + 0x00000c31,0x00000c30,0x0008004f,0x00000010,0x00000c32,0x00000c31,0x00000c31,0x00000000, + 0x00000001,0x00000002,0x00050081,0x00000010,0x00000c33,0x00000c2f,0x00000c32,0x0003003e, + 0x00000c01,0x00000c33,0x000200f9,0x00000c1c,0x000200f8,0x00000c34,0x00050041,0x00000242, + 0x00000c35,0x00000b6b,0x000001d9,0x0004003d,0x00000030,0x00000c36,0x00000c35,0x0008004f, + 0x00000010,0x00000c37,0x00000c36,0x00000c36,0x00000000,0x00000001,0x00000002,0x0004003d, + 0x00000008,0x00000c38,0x00000bea,0x0005008e,0x00000010,0x00000c39,0x00000c37,0x00000c38, + 0x00050041,0x00000242,0x00000c3a,0x00000b6b,0x0000031b,0x0004003d,0x00000030,0x00000c3b, + 0x00000c3a,0x0008004f,0x00000010,0x00000c3c,0x00000c3b,0x00000c3b,0x00000000,0x00000001, + 0x00000002,0x00050081,0x00000010,0x00000c3d,0x00000c39,0x00000c3c,0x0003003e,0x00000c01, + 0x00000c3d,0x000200f9,0x00000c1c,0x000200f8,0x00000c1c,0x000200f9,0x00000c00,0x000200f8, + 0x00000c00,0x0004003d,0x0000005e,0x00000c3e,0x00000822,0x00050041,0x0000001f,0x00000c3f, + 0x00000b60,0x0000031b,0x0004003d,0x00000010,0x00000c40,0x00000c3f,0x00050051,0x00000008, + 0x00000c41,0x00000c40,0x00000000,0x00050051,0x00000008,0x00000c42,0x00000c40,0x00000001, + 0x00050051,0x00000008,0x00000c43,0x00000c40,0x00000002,0x00070050,0x00000030,0x00000c44, + 0x00000c41,0x00000c42,0x00000c43,0x000000dc,0x00060041,0x000000ea,0x00000c45,0x00000b1b, + 0x000001d9,0x00000c3e,0x0003003e,0x00000c45,0x00000c44,0x0004003d,0x0000005e,0x00000c46, + 0x00000822,0x00050041,0x0000001f,0x00000c47,0x00000b60,0x00000319,0x0004003d,0x00000010, + 0x00000c48,0x00000c47,0x00050041,0x0000002a,0x00000c49,0x00000b60,0x00000210,0x0004003d, + 0x00000008,0x00000c4a,0x00000c49,0x00050051,0x00000008,0x00000c4b,0x00000c48,0x00000000, + 0x00050051,0x00000008,0x00000c4c,0x00000c48,0x00000001,0x00050051,0x00000008,0x00000c4d, + 0x00000c48,0x00000002,0x00070050,0x00000030,0x00000c4e,0x00000c4b,0x00000c4c,0x00000c4d, + 0x00000c4a,0x00060041,0x000000ea,0x00000c4f,0x00000b27,0x000001d9,0x00000c46,0x0003003e, + 0x00000c4f,0x00000c4e,0x0004003d,0x0000005e,0x00000c50,0x00000822,0x00050041,0x00000242, + 0x00000c51,0x00000b6b,0x000001d9,0x0004003d,0x00000030,0x00000c52,0x00000c51,0x0008004f, + 0x00000010,0x00000c53,0x00000c52,0x00000c52,0x00000000,0x00000001,0x00000002,0x00050051, + 0x00000008,0x00000c54,0x00000c53,0x00000000,0x00050051,0x00000008,0x00000c55,0x00000c53, + 0x00000001,0x00050051,0x00000008,0x00000c56,0x00000c53,0x00000002,0x00070050,0x00000030, + 0x00000c57,0x00000c54,0x00000c55,0x00000c56,0x000000dc,0x00060041,0x000000ea,0x00000c58, + 0x00000b35,0x000001d9,0x00000c50,0x0003003e,0x00000c58,0x00000c57,0x000200f9,0x00000b6a, + 0x000200f8,0x00000c59,0x00050041,0x00000007,0x00000c5b,0x000007f6,0x000000ba,0x0004003d, + 0x00000006,0x00000c5c,0x00000c5b,0x00040070,0x00000008,0x00000c5d,0x00000c5c,0x00060041, + 0x000000f3,0x00000c5e,0x000000e8,0x000001e0,0x000000ba,0x0004003d,0x00000008,0x00000c5f, + 0x00000c5e,0x0007000c,0x00000008,0x00000c60,0x00000001,0x00000028,0x00000c5f,0x000000dc, + 0x00050088,0x00000008,0x00000c61,0x00000c5d,0x00000c60,0x0008000c,0x00000008,0x00000c62, + 0x00000001,0x0000002b,0x00000c61,0x000000cc,0x000000dc,0x0003003e,0x00000c5a,0x00000c62, + 0x00050041,0x000000ea,0x00000c63,0x000000e8,0x00000197,0x0004003d,0x00000030,0x00000c64, + 0x00000c63,0x0008004f,0x00000010,0x00000c65,0x00000c64,0x00000c64,0x00000000,0x00000001, + 0x00000002,0x00050041,0x000000ea,0x00000c66,0x000000e8,0x00000193,0x0004003d,0x00000030, + 0x00000c67,0x00000c66,0x0008004f,0x00000010,0x00000c68,0x00000c67,0x00000c67,0x00000000, + 0x00000001,0x00000002,0x0004003d,0x00000008,0x00000c69,0x00000c5a,0x00060050,0x00000010, + 0x00000c6a,0x00000c69,0x00000c69,0x00000c69,0x0008000c,0x00000010,0x00000c6b,0x00000001, + 0x0000002e,0x00000c65,0x00000c68,0x00000c6a,0x0003003e,0x00000c01,0x00000c6b,0x00060041, + 0x000000f3,0x00000c6c,0x000000e8,0x000000e9,0x000000c2,0x0004003d,0x00000008,0x00000c6d, + 0x00000c6c,0x000500ba,0x0000005d,0x00000c6e,0x00000c6d,0x000004b1,0x000300f7,0x00000c70, + 0x00000000,0x000400fa,0x00000c6e,0x00000c6f,0x00000c70,0x000200f8,0x00000c6f,0x0004003d, + 0x00000010,0x00000c72,0x000008e6,0x0003003e,0x00000c71,0x00000c72,0x00050039,0x00000010, + 0x00000c73,0x00000025,0x00000c71,0x0003003e,0x00000c01,0x00000c73,0x000200f9,0x00000c70, + 0x000200f8,0x00000c70,0x000200f9,0x00000b6a,0x000200f8,0x00000b6a,0x0004003d,0x00000890, + 0x00000c74,0x00000892,0x0004003d,0x000007f4,0x00000c75,0x000007f6,0x0004007c,0x00000895, + 0x00000c76,0x00000c75,0x0004003d,0x00000010,0x00000c77,0x00000c01,0x00050051,0x00000008, + 0x00000c78,0x00000c77,0x00000000,0x00050051,0x00000008,0x00000c79,0x00000c77,0x00000001, + 0x00050051,0x00000008,0x00000c7a,0x00000c77,0x00000002,0x00070050,0x00000030,0x00000c7b, + 0x00000c78,0x00000c79,0x00000c7a,0x000000dc,0x00070050,0x00000030,0x00000c7c,0x000000cc, + 0x000000cc,0x000000cc,0x000000cc,0x00070050,0x00000030,0x00000c7d,0x000000dc,0x000000dc, + 0x000000dc,0x000000dc,0x0008000c,0x00000030,0x00000c7e,0x00000001,0x0000002b,0x00000c7b, + 0x00000c7c,0x00000c7d,0x00040063,0x00000c74,0x00000c76,0x00000c7e,0x000100fd,0x000200f8, + 0x00000b5f,0x0003003e,0x00000c80,0x0000010d,0x0003003e,0x00000c81,0x0000027f,0x0004003d, + 0x00000010,0x00000c83,0x000008dc,0x0003003e,0x00000c82,0x00000c83,0x0004003d,0x00000010, + 0x00000c85,0x000008e6,0x0003003e,0x00000c84,0x00000c85,0x0003003e,0x00000c86,0x000000dc, + 0x0003003e,0x00000c87,0x000001d9,0x000200f9,0x00000c88,0x000200f8,0x00000c88,0x000400f6, + 0x00000c8a,0x00000c8b,0x00000000,0x000200f9,0x00000c8c,0x000200f8,0x00000c8c,0x0004003d, + 0x0000005e,0x00000c8d,0x00000c87,0x0004003d,0x0000005e,0x00000c8e,0x0000081c,0x000500b1, + 0x0000005d,0x00000c8f,0x00000c8d,0x00000c8e,0x000400fa,0x00000c8f,0x00000c89,0x00000c8a, + 0x000200f8,0x00000c89,0x0004003d,0x00000010,0x00000c92,0x00000c82,0x0003003e,0x00000c91, + 0x00000c92,0x0004003d,0x00000010,0x00000c94,0x00000c84,0x0003003e,0x00000c93,0x00000c94, + 0x0003003e,0x00000c95,0x0000010b,0x00070039,0x0000005f,0x00000c96,0x00000064,0x00000c91, + 0x00000c93,0x00000c95,0x0003003e,0x00000c90,0x00000c96,0x00050041,0x00000315,0x00000c97, + 0x00000c90,0x000001d9,0x0004003d,0x0000005d,0x00000c98,0x00000c97,0x000400a8,0x0000005d, + 0x00000c99,0x00000c98,0x000300f7,0x00000c9b,0x00000000,0x000400fa,0x00000c99,0x00000c9a, + 0x00000c9b,0x000200f8,0x00000c9a,0x00050041,0x00000007,0x00000c9d,0x000007f6,0x000000ba, + 0x0004003d,0x00000006,0x00000c9e,0x00000c9d,0x00040070,0x00000008,0x00000c9f,0x00000c9e, + 0x00060041,0x000000f3,0x00000ca0,0x000000e8,0x000001e0,0x000000ba,0x0004003d,0x00000008, + 0x00000ca1,0x00000ca0,0x0007000c,0x00000008,0x00000ca2,0x00000001,0x00000028,0x00000ca1, + 0x000000dc,0x00050088,0x00000008,0x00000ca3,0x00000c9f,0x00000ca2,0x0008000c,0x00000008, + 0x00000ca4,0x00000001,0x0000002b,0x00000ca3,0x000000cc,0x000000dc,0x0003003e,0x00000c9c, + 0x00000ca4,0x0004003d,0x00000010,0x00000ca7,0x00000c84,0x0003003e,0x00000ca6,0x00000ca7, + 0x00050039,0x00000010,0x00000ca8,0x00000025,0x00000ca6,0x0003003e,0x00000ca5,0x00000ca8, + 0x00060041,0x000000f3,0x00000ca9,0x000000e8,0x000000e9,0x000000c2,0x0004003d,0x00000008, + 0x00000caa,0x00000ca9,0x000500bc,0x0000005d,0x00000cab,0x00000caa,0x000004b1,0x000300f7, + 0x00000cad,0x00000000,0x000400fa,0x00000cab,0x00000cac,0x00000cad,0x000200f8,0x00000cac, + 0x00050041,0x000000ea,0x00000cae,0x000000e8,0x00000197,0x0004003d,0x00000030,0x00000caf, + 0x00000cae,0x0008004f,0x00000010,0x00000cb0,0x00000caf,0x00000caf,0x00000000,0x00000001, + 0x00000002,0x00050041,0x000000ea,0x00000cb1,0x000000e8,0x00000193,0x0004003d,0x00000030, + 0x00000cb2,0x00000cb1,0x0008004f,0x00000010,0x00000cb3,0x00000cb2,0x00000cb2,0x00000000, + 0x00000001,0x00000002,0x0004003d,0x00000008,0x00000cb4,0x00000c9c,0x00060050,0x00000010, + 0x00000cb5,0x00000cb4,0x00000cb4,0x00000cb4,0x0008000c,0x00000010,0x00000cb6,0x00000001, + 0x0000002e,0x00000cb0,0x00000cb3,0x00000cb5,0x0003003e,0x00000ca5,0x00000cb6,0x000200f9, + 0x00000cad,0x000200f8,0x00000cad,0x0004003d,0x00000010,0x00000cb7,0x00000c81,0x0004003d, + 0x00000010,0x00000cb8,0x00000ca5,0x00050085,0x00000010,0x00000cb9,0x00000cb7,0x00000cb8, + 0x0004003d,0x00000010,0x00000cba,0x00000c80,0x00050081,0x00000010,0x00000cbb,0x00000cba, + 0x00000cb9,0x0003003e,0x00000c80,0x00000cbb,0x0004003d,0x0000005e,0x00000cbc,0x00000c87, + 0x000500aa,0x0000005d,0x00000cbd,0x00000cbc,0x000001d9,0x000300f7,0x00000cbf,0x00000000, + 0x000400fa,0x00000cbd,0x00000cbe,0x00000cbf,0x000200f8,0x00000cbe,0x0004003d,0x0000005e, + 0x00000cc0,0x00000822,0x0004003d,0x00000010,0x00000cc1,0x00000c84,0x0004007f,0x00000010, + 0x00000cc2,0x00000cc1,0x00050051,0x00000008,0x00000cc3,0x00000cc2,0x00000000,0x00050051, + 0x00000008,0x00000cc4,0x00000cc2,0x00000001,0x00050051,0x00000008,0x00000cc5,0x00000cc2, + 0x00000002,0x00070050,0x00000030,0x00000cc6,0x00000cc3,0x00000cc4,0x00000cc5,0x000000dc, + 0x00060041,0x000000ea,0x00000cc7,0x00000b1b,0x000001d9,0x00000cc0,0x0003003e,0x00000cc7, + 0x00000cc6,0x0004003d,0x0000005e,0x00000cc8,0x00000822,0x00060041,0x000000ea,0x00000ccb, + 0x00000b27,0x000001d9,0x00000cc8,0x0003003e,0x00000ccb,0x00000cca,0x0004003d,0x0000005e, + 0x00000ccc,0x00000822,0x00060041,0x000000ea,0x00000cce,0x00000b35,0x000001d9,0x00000ccc, + 0x0003003e,0x00000cce,0x00000ccd,0x0004003d,0x0000005e,0x00000cd3,0x00000822,0x00060041, + 0x000000ea,0x00000cd4,0x00000cd2,0x000001d9,0x00000cd3,0x0003003e,0x00000cd4,0x00000ccd, + 0x000200f9,0x00000cbf,0x000200f8,0x00000cbf,0x000200f9,0x00000c8a,0x000200f8,0x00000c9b, + 0x0004003d,0x0000005e,0x00000cd6,0x00000c87,0x000500aa,0x0000005d,0x00000cd7,0x00000cd6, + 0x000001d9,0x000300f7,0x00000cd9,0x00000000,0x000400fa,0x00000cd7,0x00000cd8,0x00000cd9, + 0x000200f8,0x00000cd8,0x0004003d,0x0000005e,0x00000cda,0x00000822,0x00050041,0x0000001f, + 0x00000cdb,0x00000c90,0x0000031b,0x0004003d,0x00000010,0x00000cdc,0x00000cdb,0x00050051, + 0x00000008,0x00000cdd,0x00000cdc,0x00000000,0x00050051,0x00000008,0x00000cde,0x00000cdc, + 0x00000001,0x00050051,0x00000008,0x00000cdf,0x00000cdc,0x00000002,0x00070050,0x00000030, + 0x00000ce0,0x00000cdd,0x00000cde,0x00000cdf,0x000000dc,0x00060041,0x000000ea,0x00000ce1, + 0x00000b1b,0x000001d9,0x00000cda,0x0003003e,0x00000ce1,0x00000ce0,0x0004003d,0x0000005e, + 0x00000ce2,0x00000822,0x00050041,0x0000001f,0x00000ce3,0x00000c90,0x00000319,0x0004003d, + 0x00000010,0x00000ce4,0x00000ce3,0x00050041,0x0000002a,0x00000ce5,0x00000c90,0x00000210, + 0x0004003d,0x00000008,0x00000ce6,0x00000ce5,0x00050051,0x00000008,0x00000ce7,0x00000ce4, + 0x00000000,0x00050051,0x00000008,0x00000ce8,0x00000ce4,0x00000001,0x00050051,0x00000008, + 0x00000ce9,0x00000ce4,0x00000002,0x00070050,0x00000030,0x00000cea,0x00000ce7,0x00000ce8, + 0x00000ce9,0x00000ce6,0x00060041,0x000000ea,0x00000ceb,0x00000b27,0x000001d9,0x00000ce2, + 0x0003003e,0x00000ceb,0x00000cea,0x00050041,0x000008c8,0x00000ced,0x000000e8,0x00000399, + 0x0004003d,0x000000e5,0x00000cee,0x00000ced,0x00050041,0x0000001f,0x00000cef,0x00000c90, + 0x00000319,0x0004003d,0x00000010,0x00000cf0,0x00000cef,0x00050051,0x00000008,0x00000cf1, + 0x00000cf0,0x00000000,0x00050051,0x00000008,0x00000cf2,0x00000cf0,0x00000001,0x00050051, + 0x00000008,0x00000cf3,0x00000cf0,0x00000002,0x00070050,0x00000030,0x00000cf4,0x00000cf1, + 0x00000cf2,0x00000cf3,0x000000dc,0x00050091,0x00000030,0x00000cf5,0x00000cee,0x00000cf4, + 0x0003003e,0x00000cec,0x00000cf5,0x0003003e,0x00000cf6,0x00000cf7,0x0003003e,0x00000cf8, + 0x000000cc,0x00050041,0x0000002a,0x00000cf9,0x00000cec,0x000000f2,0x0004003d,0x00000008, + 0x00000cfa,0x00000cf9,0x000500ba,0x0000005d,0x00000cfb,0x00000cfa,0x000000cc,0x000300f7, + 0x00000cfd,0x00000000,0x000400fa,0x00000cfb,0x00000cfc,0x00000cfd,0x000200f8,0x00000cfc, + 0x00050041,0x0000002a,0x00000cff,0x00000cec,0x000000c2,0x0004003d,0x00000008,0x00000d00, + 0x00000cff,0x00050041,0x0000002a,0x00000d01,0x00000cec,0x000000f2,0x0004003d,0x00000008, + 0x00000d02,0x00000d01,0x00050088,0x00000008,0x00000d03,0x00000d00,0x00000d02,0x00050041, + 0x0000002a,0x00000d04,0x00000cec,0x000000ba,0x0004003d,0x00000008,0x00000d05,0x00000d04, + 0x00050041,0x0000002a,0x00000d06,0x00000cec,0x000000f2,0x0004003d,0x00000008,0x00000d07, + 0x00000d06,0x00050088,0x00000008,0x00000d08,0x00000d05,0x00000d07,0x0004007f,0x00000008, + 0x00000d09,0x00000d08,0x00050050,0x00000009,0x00000d0a,0x00000d03,0x00000d09,0x0003003e, + 0x00000cfe,0x00000d0a,0x00050041,0x0000002a,0x00000d0b,0x00000cfe,0x000000c2,0x0004003d, + 0x00000008,0x00000d0c,0x00000d0b,0x0006000c,0x00000008,0x00000d0d,0x00000001,0x00000004, + 0x00000d0c,0x000500bc,0x0000005d,0x00000d0e,0x00000d0d,0x000000dc,0x000300f7,0x00000d10, + 0x00000000,0x000400fa,0x00000d0e,0x00000d0f,0x00000d10,0x000200f8,0x00000d0f,0x00050041, + 0x0000002a,0x00000d11,0x00000cfe,0x000000ba,0x0004003d,0x00000008,0x00000d12,0x00000d11, + 0x0006000c,0x00000008,0x00000d13,0x00000001,0x00000004,0x00000d12,0x000500bc,0x0000005d, + 0x00000d14,0x00000d13,0x000000dc,0x000200f9,0x00000d10,0x000200f8,0x00000d10,0x000700f5, + 0x0000005d,0x00000d15,0x00000d0e,0x00000cfc,0x00000d14,0x00000d0f,0x000300f7,0x00000d17, + 0x00000000,0x000400fa,0x00000d15,0x00000d16,0x00000d17,0x000200f8,0x00000d16,0x0004003d, + 0x00000009,0x00000d18,0x00000cfe,0x0004003d,0x00000009,0x00000d19,0x000008bd,0x00050083, + 0x00000009,0x00000d1a,0x00000d18,0x00000d19,0x0003003e,0x00000cf6,0x00000d1a,0x0004003d, + 0x00000009,0x00000d1b,0x00000cf6,0x0004003d,0x00000009,0x00000d1c,0x00000cf6,0x00050094, + 0x00000008,0x00000d1d,0x00000d1b,0x00000d1c,0x000500b8,0x0000005d,0x00000d1e,0x00000d1d, + 0x000000dc,0x000600a9,0x00000008,0x00000d1f,0x00000d1e,0x000000dc,0x000000cc,0x0003003e, + 0x00000cf8,0x00000d1f,0x000200f9,0x00000d17,0x000200f8,0x00000d17,0x000200f9,0x00000cfd, + 0x000200f8,0x00000cfd,0x0004003d,0x0000005e,0x00000d20,0x00000822,0x0004003d,0x00000009, + 0x00000d21,0x00000cf6,0x0004003d,0x00000008,0x00000d22,0x00000cf8,0x00050051,0x00000008, + 0x00000d23,0x00000d21,0x00000000,0x00050051,0x00000008,0x00000d24,0x00000d21,0x00000001, + 0x00070050,0x00000030,0x00000d25,0x00000d23,0x00000d24,0x00000d22,0x000000cc,0x00060041, + 0x000000ea,0x00000d26,0x00000cd2,0x000001d9,0x00000d20,0x0003003e,0x00000d26,0x00000d25, + 0x000200f9,0x00000cd9,0x000200f8,0x00000cd9,0x00050041,0x000001d7,0x00000d28,0x00000c90, + 0x000001e0,0x0004003d,0x0000005e,0x00000d29,0x00000d28,0x00060041,0x00000340,0x00000d2a, + 0x0000033d,0x000001d9,0x00000d29,0x0004003d,0x00000339,0x00000d2b,0x00000d2a,0x00050051, + 0x00000030,0x00000d2c,0x00000d2b,0x00000000,0x00050041,0x00000242,0x00000d2d,0x00000d27, + 0x000001d9,0x0003003e,0x00000d2d,0x00000d2c,0x00050051,0x00000030,0x00000d2e,0x00000d2b, + 0x00000001,0x00050041,0x00000242,0x00000d2f,0x00000d27,0x00000210,0x0003003e,0x00000d2f, + 0x00000d2e,0x00050051,0x00000030,0x00000d30,0x00000d2b,0x00000002,0x00050041,0x00000242, + 0x00000d31,0x00000d27,0x00000319,0x0003003e,0x00000d31,0x00000d30,0x00050051,0x00000030, + 0x00000d32,0x00000d2b,0x00000003,0x00050041,0x00000242,0x00000d33,0x00000d27,0x0000031b, + 0x0003003e,0x00000d33,0x00000d32,0x00050051,0x00000030,0x00000d34,0x00000d2b,0x00000004, + 0x00050041,0x00000242,0x00000d35,0x00000d27,0x000001e0,0x0003003e,0x00000d35,0x00000d34, + 0x00050051,0x00000333,0x00000d36,0x00000d2b,0x00000005,0x00050041,0x0000034e,0x00000d37, + 0x00000d27,0x00000197,0x00050051,0x00000030,0x00000d38,0x00000d36,0x00000000,0x00050041, + 0x00000242,0x00000d39,0x00000d37,0x000001d9,0x0003003e,0x00000d39,0x00000d38,0x00050051, + 0x00000030,0x00000d3a,0x00000d36,0x00000001,0x00050041,0x00000242,0x00000d3b,0x00000d37, + 0x00000210,0x0003003e,0x00000d3b,0x00000d3a,0x00050051,0x00000030,0x00000d3c,0x00000d36, + 0x00000002,0x00050041,0x00000242,0x00000d3d,0x00000d37,0x00000319,0x0003003e,0x00000d3d, + 0x00000d3c,0x00050051,0x00000030,0x00000d3e,0x00000d36,0x00000003,0x00050041,0x00000242, + 0x00000d3f,0x00000d37,0x0000031b,0x0003003e,0x00000d3f,0x00000d3e,0x00050051,0x00000030, + 0x00000d40,0x00000d36,0x00000004,0x00050041,0x00000242,0x00000d41,0x00000d37,0x000001e0, + 0x0003003e,0x00000d41,0x00000d40,0x00050051,0x00000030,0x00000d42,0x00000d36,0x00000005, + 0x00050041,0x00000242,0x00000d43,0x00000d37,0x00000197,0x0003003e,0x00000d43,0x00000d42, + 0x00050051,0x00000030,0x00000d44,0x00000d36,0x00000006,0x00050041,0x00000242,0x00000d45, + 0x00000d37,0x00000193,0x0003003e,0x00000d45,0x00000d44,0x00050051,0x00000030,0x00000d46, + 0x00000d36,0x00000007,0x00050041,0x00000242,0x00000d47,0x00000d37,0x0000035f,0x0003003e, + 0x00000d47,0x00000d46,0x00050051,0x00000334,0x00000d48,0x00000d2b,0x00000006,0x00050041, + 0x0000034e,0x00000d49,0x00000d27,0x00000193,0x00050051,0x00000030,0x00000d4a,0x00000d48, + 0x00000000,0x00050041,0x00000242,0x00000d4b,0x00000d49,0x000001d9,0x0003003e,0x00000d4b, + 0x00000d4a,0x00050051,0x00000030,0x00000d4c,0x00000d48,0x00000001,0x00050041,0x00000242, + 0x00000d4d,0x00000d49,0x00000210,0x0003003e,0x00000d4d,0x00000d4c,0x00050051,0x00000030, + 0x00000d4e,0x00000d48,0x00000002,0x00050041,0x00000242,0x00000d4f,0x00000d49,0x00000319, + 0x0003003e,0x00000d4f,0x00000d4e,0x00050051,0x00000030,0x00000d50,0x00000d48,0x00000003, + 0x00050041,0x00000242,0x00000d51,0x00000d49,0x0000031b,0x0003003e,0x00000d51,0x00000d50, + 0x00050051,0x00000030,0x00000d52,0x00000d48,0x00000004,0x00050041,0x00000242,0x00000d53, + 0x00000d49,0x000001e0,0x0003003e,0x00000d53,0x00000d52,0x00050051,0x00000030,0x00000d54, + 0x00000d48,0x00000005,0x00050041,0x00000242,0x00000d55,0x00000d49,0x00000197,0x0003003e, + 0x00000d55,0x00000d54,0x00050051,0x00000030,0x00000d56,0x00000d48,0x00000006,0x00050041, + 0x00000242,0x00000d57,0x00000d49,0x00000193,0x0003003e,0x00000d57,0x00000d56,0x00050051, + 0x00000030,0x00000d58,0x00000d48,0x00000007,0x00050041,0x00000242,0x00000d59,0x00000d49, + 0x0000035f,0x0003003e,0x00000d59,0x00000d58,0x00050051,0x00000335,0x00000d5a,0x00000d2b, + 0x00000007,0x00050041,0x0000034e,0x00000d5b,0x00000d27,0x0000035f,0x00050051,0x00000030, + 0x00000d5c,0x00000d5a,0x00000000,0x00050041,0x00000242,0x00000d5d,0x00000d5b,0x000001d9, + 0x0003003e,0x00000d5d,0x00000d5c,0x00050051,0x00000030,0x00000d5e,0x00000d5a,0x00000001, + 0x00050041,0x00000242,0x00000d5f,0x00000d5b,0x00000210,0x0003003e,0x00000d5f,0x00000d5e, + 0x00050051,0x00000030,0x00000d60,0x00000d5a,0x00000002,0x00050041,0x00000242,0x00000d61, + 0x00000d5b,0x00000319,0x0003003e,0x00000d61,0x00000d60,0x00050051,0x00000030,0x00000d62, + 0x00000d5a,0x00000003,0x00050041,0x00000242,0x00000d63,0x00000d5b,0x0000031b,0x0003003e, + 0x00000d63,0x00000d62,0x00050051,0x00000030,0x00000d64,0x00000d5a,0x00000004,0x00050041, + 0x00000242,0x00000d65,0x00000d5b,0x000001e0,0x0003003e,0x00000d65,0x00000d64,0x00050051, + 0x00000030,0x00000d66,0x00000d5a,0x00000005,0x00050041,0x00000242,0x00000d67,0x00000d5b, + 0x00000197,0x0003003e,0x00000d67,0x00000d66,0x00050051,0x00000030,0x00000d68,0x00000d5a, + 0x00000006,0x00050041,0x00000242,0x00000d69,0x00000d5b,0x00000193,0x0003003e,0x00000d69, + 0x00000d68,0x00050051,0x00000030,0x00000d6a,0x00000d5a,0x00000007,0x00050041,0x00000242, + 0x00000d6b,0x00000d5b,0x0000035f,0x0003003e,0x00000d6b,0x00000d6a,0x00050051,0x00000336, + 0x00000d6c,0x00000d2b,0x00000008,0x00050041,0x0000034e,0x00000d6d,0x00000d27,0x00000386, + 0x00050051,0x00000030,0x00000d6e,0x00000d6c,0x00000000,0x00050041,0x00000242,0x00000d6f, + 0x00000d6d,0x000001d9,0x0003003e,0x00000d6f,0x00000d6e,0x00050051,0x00000030,0x00000d70, + 0x00000d6c,0x00000001,0x00050041,0x00000242,0x00000d71,0x00000d6d,0x00000210,0x0003003e, + 0x00000d71,0x00000d70,0x00050051,0x00000030,0x00000d72,0x00000d6c,0x00000002,0x00050041, + 0x00000242,0x00000d73,0x00000d6d,0x00000319,0x0003003e,0x00000d73,0x00000d72,0x00050051, + 0x00000030,0x00000d74,0x00000d6c,0x00000003,0x00050041,0x00000242,0x00000d75,0x00000d6d, + 0x0000031b,0x0003003e,0x00000d75,0x00000d74,0x00050051,0x00000030,0x00000d76,0x00000d6c, + 0x00000004,0x00050041,0x00000242,0x00000d77,0x00000d6d,0x000001e0,0x0003003e,0x00000d77, + 0x00000d76,0x00050051,0x00000030,0x00000d78,0x00000d6c,0x00000005,0x00050041,0x00000242, + 0x00000d79,0x00000d6d,0x00000197,0x0003003e,0x00000d79,0x00000d78,0x00050051,0x00000030, + 0x00000d7a,0x00000d6c,0x00000006,0x00050041,0x00000242,0x00000d7b,0x00000d6d,0x00000193, + 0x0003003e,0x00000d7b,0x00000d7a,0x00050051,0x00000030,0x00000d7c,0x00000d6c,0x00000007, + 0x00050041,0x00000242,0x00000d7d,0x00000d6d,0x0000035f,0x0003003e,0x00000d7d,0x00000d7c, + 0x00050051,0x00000337,0x00000d7e,0x00000d2b,0x00000009,0x00050041,0x0000034e,0x00000d7f, + 0x00000d27,0x00000399,0x00050051,0x00000030,0x00000d80,0x00000d7e,0x00000000,0x00050041, + 0x00000242,0x00000d81,0x00000d7f,0x000001d9,0x0003003e,0x00000d81,0x00000d80,0x00050051, + 0x00000030,0x00000d82,0x00000d7e,0x00000001,0x00050041,0x00000242,0x00000d83,0x00000d7f, + 0x00000210,0x0003003e,0x00000d83,0x00000d82,0x00050051,0x00000030,0x00000d84,0x00000d7e, + 0x00000002,0x00050041,0x00000242,0x00000d85,0x00000d7f,0x00000319,0x0003003e,0x00000d85, + 0x00000d84,0x00050051,0x00000030,0x00000d86,0x00000d7e,0x00000003,0x00050041,0x00000242, + 0x00000d87,0x00000d7f,0x0000031b,0x0003003e,0x00000d87,0x00000d86,0x00050051,0x00000030, + 0x00000d88,0x00000d7e,0x00000004,0x00050041,0x00000242,0x00000d89,0x00000d7f,0x000001e0, + 0x0003003e,0x00000d89,0x00000d88,0x00050051,0x00000030,0x00000d8a,0x00000d7e,0x00000005, + 0x00050041,0x00000242,0x00000d8b,0x00000d7f,0x00000197,0x0003003e,0x00000d8b,0x00000d8a, + 0x00050051,0x00000030,0x00000d8c,0x00000d7e,0x00000006,0x00050041,0x00000242,0x00000d8d, + 0x00000d7f,0x00000193,0x0003003e,0x00000d8d,0x00000d8c,0x00050051,0x00000030,0x00000d8e, + 0x00000d7e,0x00000007,0x00050041,0x00000242,0x00000d8f,0x00000d7f,0x0000035f,0x0003003e, + 0x00000d8f,0x00000d8e,0x00050051,0x00000338,0x00000d90,0x00000d2b,0x0000000a,0x00050041, + 0x0000034e,0x00000d91,0x00000d27,0x000003ac,0x00050051,0x00000030,0x00000d92,0x00000d90, + 0x00000000,0x00050041,0x00000242,0x00000d93,0x00000d91,0x000001d9,0x0003003e,0x00000d93, + 0x00000d92,0x00050051,0x00000030,0x00000d94,0x00000d90,0x00000001,0x00050041,0x00000242, + 0x00000d95,0x00000d91,0x00000210,0x0003003e,0x00000d95,0x00000d94,0x00050051,0x00000030, + 0x00000d96,0x00000d90,0x00000002,0x00050041,0x00000242,0x00000d97,0x00000d91,0x00000319, + 0x0003003e,0x00000d97,0x00000d96,0x00050051,0x00000030,0x00000d98,0x00000d90,0x00000003, + 0x00050041,0x00000242,0x00000d99,0x00000d91,0x0000031b,0x0003003e,0x00000d99,0x00000d98, + 0x00050051,0x00000030,0x00000d9a,0x00000d90,0x00000004,0x00050041,0x00000242,0x00000d9b, + 0x00000d91,0x000001e0,0x0003003e,0x00000d9b,0x00000d9a,0x00050051,0x00000030,0x00000d9c, + 0x00000d90,0x00000005,0x00050041,0x00000242,0x00000d9d,0x00000d91,0x00000197,0x0003003e, + 0x00000d9d,0x00000d9c,0x00050051,0x00000030,0x00000d9e,0x00000d90,0x00000006,0x00050041, + 0x00000242,0x00000d9f,0x00000d91,0x00000193,0x0003003e,0x00000d9f,0x00000d9e,0x00050051, + 0x00000030,0x00000da0,0x00000d90,0x00000007,0x00050041,0x00000242,0x00000da1,0x00000d91, + 0x0000035f,0x0003003e,0x00000da1,0x00000da0,0x00050051,0x00000030,0x00000da2,0x00000d2b, + 0x0000000b,0x00050041,0x00000242,0x00000da3,0x00000d27,0x000003bf,0x0003003e,0x00000da3, + 0x00000da2,0x00050051,0x00000030,0x00000da4,0x00000d2b,0x0000000c,0x00050041,0x00000242, + 0x00000da5,0x00000d27,0x000000e9,0x0003003e,0x00000da5,0x00000da4,0x0004003d,0x0000005e, + 0x00000da6,0x00000c87,0x000500aa,0x0000005d,0x00000da7,0x00000da6,0x000001d9,0x000300f7, + 0x00000da9,0x00000000,0x000400fa,0x00000da7,0x00000da8,0x00000da9,0x000200f8,0x00000da8, + 0x0004003d,0x0000005e,0x00000daa,0x00000822,0x00050041,0x00000242,0x00000dab,0x00000d27, + 0x000001d9,0x0004003d,0x00000030,0x00000dac,0x00000dab,0x0008004f,0x00000010,0x00000dad, + 0x00000dac,0x00000dac,0x00000000,0x00000001,0x00000002,0x00050051,0x00000008,0x00000dae, + 0x00000dad,0x00000000,0x00050051,0x00000008,0x00000daf,0x00000dad,0x00000001,0x00050051, + 0x00000008,0x00000db0,0x00000dad,0x00000002,0x00070050,0x00000030,0x00000db1,0x00000dae, + 0x00000daf,0x00000db0,0x000000dc,0x00060041,0x000000ea,0x00000db2,0x00000b35,0x000001d9, + 0x00000daa,0x0003003e,0x00000db2,0x00000db1,0x000200f9,0x00000da9,0x000200f8,0x00000da9, + 0x0003003e,0x00000db3,0x000000dc,0x0004003d,0x0000005e,0x00000db4,0x00000c87,0x000500ad, + 0x0000005d,0x00000db5,0x00000db4,0x000001d9,0x000300f7,0x00000db7,0x00000000,0x000400fa, + 0x00000db5,0x00000db6,0x00000db7,0x000200f8,0x00000db6,0x00060041,0x000000f3,0x00000db8, + 0x000000e8,0x000003bf,0x000000ba,0x0004003d,0x00000008,0x00000db9,0x00000db8,0x000500ba, + 0x0000005d,0x00000dba,0x00000db9,0x000000f6,0x000200f9,0x00000db7,0x000200f8,0x00000db7, + 0x000700f5,0x0000005d,0x00000dbb,0x00000db5,0x00000da9,0x00000dba,0x00000db6,0x000300f7, + 0x00000dbd,0x00000000,0x000400fa,0x00000dbb,0x00000dbc,0x00000dbd,0x000200f8,0x00000dbc, + 0x00060041,0x000000f3,0x00000dbe,0x000000e8,0x000003bf,0x000000c2,0x0004003d,0x00000008, + 0x00000dbf,0x00000dbe,0x000500ba,0x0000005d,0x00000dc0,0x00000dbf,0x000000f6,0x000200f9, + 0x00000dbd,0x000200f8,0x00000dbd,0x000700f5,0x0000005d,0x00000dc1,0x00000dbb,0x00000db7, + 0x00000dc0,0x00000dbc,0x000300f7,0x00000dc3,0x00000000,0x000400fa,0x00000dc1,0x00000dc2, + 0x00000dc3,0x000200f8,0x00000dc2,0x00060041,0x000000f3,0x00000dc4,0x000000e8,0x000003bf, + 0x00000137,0x0004003d,0x00000008,0x00000dc5,0x00000dc4,0x000500ba,0x0000005d,0x00000dc6, + 0x00000dc5,0x000000f6,0x000300f7,0x00000dc8,0x00000000,0x000400fa,0x00000dc6,0x00000dc7, + 0x00000df5,0x000200f8,0x00000dc7,0x00060041,0x0000002a,0x00000dca,0x00000d27,0x000003bf, + 0x00000137,0x0004003d,0x00000008,0x00000dcb,0x00000dca,0x0004006e,0x0000005e,0x00000dcc, + 0x00000dcb,0x00050041,0x000001d7,0x00000dcd,0x00000c90,0x00000197,0x0004003d,0x0000005e, + 0x00000dce,0x00000dcd,0x00050080,0x0000005e,0x00000dcf,0x00000dcc,0x00000dce,0x0003003e, + 0x00000dc9,0x00000dcf,0x0004003d,0x0000005e,0x00000dd0,0x00000dc9,0x000500af,0x0000005d, + 0x00000dd1,0x00000dd0,0x000001d9,0x000300f7,0x00000dd3,0x00000000,0x000400fa,0x00000dd1, + 0x00000dd2,0x00000dd3,0x000200f8,0x00000dd2,0x0004003d,0x0000005e,0x00000dd4,0x00000dc9, + 0x00060041,0x000000f3,0x00000dd5,0x000000e8,0x000003bf,0x000000c2,0x0004003d,0x00000008, + 0x00000dd6,0x00000dd5,0x0004006e,0x0000005e,0x00000dd7,0x00000dd6,0x000500b1,0x0000005d, + 0x00000dd8,0x00000dd4,0x00000dd7,0x000200f9,0x00000dd3,0x000200f8,0x00000dd3,0x000700f5, + 0x0000005d,0x00000dd9,0x00000dd1,0x00000dc7,0x00000dd8,0x00000dd2,0x000300f7,0x00000ddb, + 0x00000000,0x000400fa,0x00000dd9,0x00000dda,0x00000ddb,0x000200f8,0x00000dda,0x0004003d, + 0x0000005e,0x00000ddd,0x00000dc9,0x00080041,0x000000f3,0x00000dde,0x000006f3,0x000001d9, + 0x00000ddd,0x000001d9,0x000000f2,0x0004003d,0x00000008,0x00000ddf,0x00000dde,0x0007000c, + 0x00000008,0x00000de0,0x00000001,0x00000028,0x00000ddf,0x00000706,0x0003003e,0x00000ddc, + 0x00000de0,0x00060041,0x000000f3,0x00000de2,0x000000e8,0x000003bf,0x000000c2,0x0004003d, + 0x00000008,0x00000de3,0x00000de2,0x0004003d,0x00000008,0x00000de4,0x00000ddc,0x00050085, + 0x00000008,0x00000de5,0x00000de3,0x00000de4,0x00050088,0x00000008,0x00000de6,0x000000dc, + 0x00000de5,0x0003003e,0x00000de1,0x00000de6,0x0004003d,0x00000008,0x00000de8,0x00000c86, + 0x0007000c,0x00000008,0x00000de9,0x00000001,0x00000028,0x00000de8,0x00000706,0x0003003e, + 0x00000de7,0x00000de9,0x0004003d,0x00000008,0x00000dea,0x00000de7,0x0004003d,0x00000008, + 0x00000deb,0x00000de7,0x00050085,0x00000008,0x00000dec,0x00000dea,0x00000deb,0x0004003d, + 0x00000008,0x00000ded,0x00000de7,0x0004003d,0x00000008,0x00000dee,0x00000de7,0x00050085, + 0x00000008,0x00000def,0x00000ded,0x00000dee,0x0004003d,0x00000008,0x00000df0,0x00000de1, + 0x0004003d,0x00000008,0x00000df1,0x00000de1,0x00050085,0x00000008,0x00000df2,0x00000df0, + 0x00000df1,0x00050081,0x00000008,0x00000df3,0x00000def,0x00000df2,0x00050088,0x00000008, + 0x00000df4,0x00000dec,0x00000df3,0x0003003e,0x00000db3,0x00000df4,0x000200f9,0x00000ddb, + 0x000200f8,0x00000ddb,0x000200f9,0x00000dc8,0x000200f8,0x00000df5,0x0003003e,0x00000db3, + 0x000000cc,0x000200f9,0x00000dc8,0x000200f8,0x00000dc8,0x000200f9,0x00000dc3,0x000200f8, + 0x00000dc3,0x0004003d,0x00000010,0x00000df6,0x00000c81,0x00050041,0x00000242,0x00000df7, + 0x00000d27,0x0000031b,0x0004003d,0x00000030,0x00000df8,0x00000df7,0x0008004f,0x00000010, + 0x00000df9,0x00000df8,0x00000df8,0x00000000,0x00000001,0x00000002,0x00050085,0x00000010, + 0x00000dfa,0x00000df6,0x00000df9,0x0004003d,0x00000008,0x00000dfb,0x00000db3,0x0005008e, + 0x00000010,0x00000dfc,0x00000dfa,0x00000dfb,0x0004003d,0x00000010,0x00000dfd,0x00000c80, + 0x00050081,0x00000010,0x00000dfe,0x00000dfd,0x00000dfc,0x0003003e,0x00000c80,0x00000dfe, + 0x00050041,0x00000242,0x00000dff,0x00000d27,0x0000031b,0x0004003d,0x00000030,0x00000e00, + 0x00000dff,0x0008004f,0x00000010,0x00000e01,0x00000e00,0x00000e00,0x00000000,0x00000001, + 0x00000002,0x00050041,0x00000242,0x00000e02,0x00000d27,0x0000031b,0x0004003d,0x00000030, + 0x00000e03,0x00000e02,0x0008004f,0x00000010,0x00000e04,0x00000e03,0x00000e03,0x00000000, + 0x00000001,0x00000002,0x00050094,0x00000008,0x00000e05,0x00000e01,0x00000e04,0x000500ba, + 0x0000005d,0x00000e06,0x00000e05,0x000000cc,0x000300f7,0x00000e08,0x00000000,0x000400fa, + 0x00000e06,0x00000e07,0x00000e08,0x000200f8,0x00000e07,0x000200f9,0x00000c8a,0x000200f8, + 0x00000e08,0x00060041,0x0000002a,0x00000e0b,0x00000d27,0x000001d9,0x000000f2,0x0004003d, + 0x00000008,0x00000e0c,0x00000e0b,0x0008000c,0x00000008,0x00000e0d,0x00000001,0x0000002b, + 0x00000e0c,0x000000cc,0x000000dc,0x0003003e,0x00000e0a,0x00000e0d,0x0004003d,0x00000010, + 0x00000e0e,0x00000c81,0x0004003d,0x00000008,0x00000e0f,0x00000e0a,0x0005008e,0x00000010, + 0x00000e10,0x00000e0e,0x00000e0f,0x00050041,0x0000001f,0x00000e12,0x00000c90,0x00000319, + 0x0004003d,0x00000010,0x00000e13,0x00000e12,0x0003003e,0x00000e11,0x00000e13,0x00050041, + 0x0000001f,0x00000e15,0x00000c90,0x0000031b,0x0004003d,0x00000010,0x00000e16,0x00000e15, + 0x0003003e,0x00000e14,0x00000e16,0x0004003d,0x00000010,0x00000e18,0x00000c84,0x0003003e, + 0x00000e17,0x00000e18,0x0004003d,0x00000033,0x00000e1a,0x00000d27,0x0003003e,0x00000e19, + 0x00000e1a,0x00080039,0x00000010,0x00000e1b,0x0000007c,0x00000e11,0x00000e14,0x00000e17, + 0x00000e19,0x00050085,0x00000010,0x00000e1c,0x00000e10,0x00000e1b,0x0004003d,0x00000010, + 0x00000e1d,0x00000c80,0x00050081,0x00000010,0x00000e1e,0x00000e1d,0x00000e1c,0x0003003e, + 0x00000c80,0x00000e1e,0x00060041,0x000000f3,0x00000e1f,0x000000e8,0x000003bf,0x000000ba, + 0x0004003d,0x00000008,0x00000e20,0x00000e1f,0x000500ba,0x0000005d,0x00000e21,0x00000e20, + 0x000000f6,0x000300f7,0x00000e23,0x00000000,0x000400fa,0x00000e21,0x00000e22,0x00000e23, + 0x000200f8,0x00000e22,0x0004003d,0x00000010,0x00000e24,0x00000c81,0x0004003d,0x00000008, + 0x00000e25,0x00000e0a,0x0005008e,0x00000010,0x00000e26,0x00000e24,0x00000e25,0x0004003d, + 0x00000006,0x00000e27,0x00000811,0x0004003d,0x0000005e,0x00000e28,0x00000c87,0x0004007c, + 0x00000006,0x00000e29,0x00000e28,0x00050084,0x00000006,0x00000e2b,0x00000e29,0x00000e2a, + 0x00050080,0x00000006,0x00000e2c,0x00000e27,0x00000e2b,0x00050080,0x00000006,0x00000e2e, + 0x00000e2c,0x00000e2d,0x00050041,0x00000007,0x00000e30,0x000007f6,0x000000c2,0x0004003d, + 0x00000006,0x00000e31,0x00000e30,0x0003003e,0x00000e2f,0x00000e31,0x00050041,0x00000007, + 0x00000e33,0x000007f6,0x000000ba,0x0004003d,0x00000006,0x00000e34,0x00000e33,0x0003003e, + 0x00000e32,0x00000e34,0x0003003e,0x00000e35,0x00000e2e,0x00070039,0x00000010,0x00000e36, + 0x00000015,0x00000e2f,0x00000e32,0x00000e35,0x00050041,0x0000001f,0x00000e38,0x00000c90, + 0x00000319,0x0004003d,0x00000010,0x00000e39,0x00000e38,0x0003003e,0x00000e37,0x00000e39, + 0x00050041,0x0000001f,0x00000e3b,0x00000c90,0x0000031b,0x0004003d,0x00000010,0x00000e3c, + 0x00000e3b,0x0003003e,0x00000e3a,0x00000e3c,0x0004003d,0x00000033,0x00000e3e,0x00000d27, + 0x0003003e,0x00000e3d,0x00000e3e,0x0003003e,0x00000e3f,0x00000e36,0x00080039,0x00000010, + 0x00000e40,0x00000083,0x00000e37,0x00000e3a,0x00000e3d,0x00000e3f,0x00050085,0x00000010, + 0x00000e41,0x00000e26,0x00000e40,0x0004003d,0x00000010,0x00000e42,0x00000c80,0x00050081, + 0x00000010,0x00000e43,0x00000e42,0x00000e41,0x0003003e,0x00000c80,0x00000e43,0x000200f9, + 0x00000e23,0x000200f8,0x00000e23,0x00050041,0x0000001f,0x00000e45,0x00000c90,0x0000031b, + 0x0004003d,0x00000010,0x00000e46,0x00000e45,0x0006000c,0x00000010,0x00000e47,0x00000001, + 0x00000045,0x00000e46,0x0003003e,0x00000e44,0x00000e47,0x00050041,0x00000242,0x00000e49, + 0x00000d27,0x000001d9,0x0004003d,0x00000030,0x00000e4a,0x00000e49,0x0008004f,0x00000010, + 0x00000e4b,0x00000e4a,0x00000e4a,0x00000000,0x00000001,0x00000002,0x0003003e,0x00000e48, + 0x00000e4b,0x0004003d,0x00000008,0x00000e4c,0x00000e0a,0x000500b8,0x0000005d,0x00000e4d, + 0x00000e4c,0x000000dc,0x000300f7,0x00000e4f,0x00000000,0x000400fa,0x00000e4d,0x00000e4e, + 0x00000e4f,0x000200f8,0x00000e4e,0x0004003d,0x00000008,0x00000e50,0x00000e0a,0x00050083, + 0x00000008,0x00000e51,0x000000dc,0x00000e50,0x0004003d,0x00000010,0x00000e52,0x00000c81, + 0x0005008e,0x00000010,0x00000e53,0x00000e52,0x00000e51,0x0003003e,0x00000c81,0x00000e53, + 0x00050041,0x0000001f,0x00000e54,0x00000c90,0x00000319,0x0004003d,0x00000010,0x00000e55, + 0x00000e54,0x0004003d,0x00000010,0x00000e56,0x00000c84,0x0005008e,0x00000010,0x00000e57, + 0x00000e56,0x0000023c,0x00050081,0x00000010,0x00000e58,0x00000e55,0x00000e57,0x0003003e, + 0x00000c82,0x00000e58,0x000200f9,0x00000c8b,0x000200f8,0x00000e4f,0x00060041,0x0000002a, + 0x00000e5a,0x00000d27,0x000000e9,0x00000137,0x0004003d,0x00000008,0x00000e5b,0x00000e5a, + 0x000500ba,0x0000005d,0x00000e5c,0x00000e5b,0x000000f6,0x000300f7,0x00000e5e,0x00000000, + 0x000400fa,0x00000e5c,0x00000e5d,0x00000f51,0x000200f8,0x00000e5d,0x00050041,0x0000002a, + 0x00000e60,0x00000e44,0x00000137,0x0004003d,0x00000008,0x00000e61,0x00000e60,0x0006000c, + 0x00000008,0x00000e62,0x00000001,0x00000004,0x00000e61,0x000500b8,0x0000005d,0x00000e63, + 0x00000e62,0x000001c5,0x00060050,0x000001c9,0x00000e65,0x00000e63,0x00000e63,0x00000e63, + 0x000600a9,0x00000010,0x00000e66,0x00000e65,0x00000e64,0x000001c8,0x0003003e,0x00000e5f, + 0x00000e66,0x0004003d,0x00000010,0x00000e68,0x00000e5f,0x0004003d,0x00000010,0x00000e69, + 0x00000e44,0x0007000c,0x00000010,0x00000e6a,0x00000001,0x00000044,0x00000e68,0x00000e69, + 0x0006000c,0x00000010,0x00000e6b,0x00000001,0x00000045,0x00000e6a,0x0003003e,0x00000e67, + 0x00000e6b,0x0004003d,0x00000010,0x00000e6d,0x00000e44,0x0004003d,0x00000010,0x00000e6e, + 0x00000e67,0x0007000c,0x00000010,0x00000e6f,0x00000001,0x00000044,0x00000e6d,0x00000e6e, + 0x0003003e,0x00000e6c,0x00000e6f,0x0004003d,0x00000010,0x00000e71,0x00000c84,0x0004007f, + 0x00000010,0x00000e72,0x00000e71,0x0003003e,0x00000e70,0x00000e72,0x0004003d,0x00000010, + 0x00000e74,0x00000e44,0x0004003d,0x00000010,0x00000e75,0x00000e70,0x00050094,0x00000008, + 0x00000e76,0x00000e74,0x00000e75,0x0007000c,0x00000008,0x00000e77,0x00000001,0x00000028, + 0x00000e76,0x00000294,0x0003003e,0x00000e73,0x00000e77,0x00060041,0x0000002a,0x00000e79, + 0x00000d27,0x000000e9,0x000000c2,0x0004003d,0x00000008,0x00000e7a,0x00000e79,0x0008000c, + 0x00000008,0x00000e7b,0x00000001,0x0000002b,0x00000e7a,0x000000cc,0x000000dc,0x0003003e, + 0x00000e78,0x00000e7b,0x0004003d,0x00000033,0x00000e7e,0x00000d27,0x0003003e,0x00000e7d, + 0x00000e7e,0x00050039,0x00000008,0x00000e7f,0x00000037,0x00000e7d,0x0003003e,0x00000e7c, + 0x00000e7f,0x0004003d,0x00000033,0x00000e82,0x00000d27,0x0003003e,0x00000e81,0x00000e82, + 0x00050039,0x00000010,0x00000e83,0x0000003b,0x00000e81,0x0003003e,0x00000e80,0x00000e83, + 0x0004003d,0x00000008,0x00000e86,0x00000e73,0x0003003e,0x00000e85,0x00000e86,0x0004003d, + 0x00000010,0x00000e88,0x00000e80,0x0003003e,0x00000e87,0x00000e88,0x00060039,0x00000010, + 0x00000e89,0x0000004f,0x00000e85,0x00000e87,0x0003003e,0x00000e84,0x00000e89,0x0004003d, + 0x00000006,0x00000e8b,0x00000811,0x0004003d,0x0000005e,0x00000e8c,0x00000c87,0x0004007c, + 0x00000006,0x00000e8d,0x00000e8c,0x00050084,0x00000006,0x00000e8f,0x00000e8d,0x00000e8e, + 0x00050080,0x00000006,0x00000e90,0x00000e8b,0x00000e8f,0x00050080,0x00000006,0x00000e91, + 0x00000e90,0x000000ba,0x00050041,0x00000007,0x00000e93,0x000007f6,0x000000c2,0x0004003d, + 0x00000006,0x00000e94,0x00000e93,0x0003003e,0x00000e92,0x00000e94,0x00050041,0x00000007, + 0x00000e96,0x000007f6,0x000000ba,0x0004003d,0x00000006,0x00000e97,0x00000e96,0x0003003e, + 0x00000e95,0x00000e97,0x0003003e,0x00000e98,0x00000e91,0x00070039,0x00000009,0x00000e99, + 0x0000000e,0x00000e92,0x00000e95,0x00000e98,0x0003003e,0x00000e8a,0x00000e99,0x00050041, + 0x0000002a,0x00000e9a,0x00000e8a,0x000000c2,0x0004003d,0x00000008,0x00000e9b,0x00000e9a, + 0x000500b8,0x0000005d,0x00000e9c,0x00000e9b,0x000000f6,0x000300f7,0x00000e9e,0x00000000, + 0x000400fa,0x00000e9c,0x00000e9d,0x00000ed9,0x000200f8,0x00000e9d,0x0004003d,0x00000006, + 0x00000ea0,0x00000811,0x0004003d,0x0000005e,0x00000ea1,0x00000c87,0x0004007c,0x00000006, + 0x00000ea2,0x00000ea1,0x00050084,0x00000006,0x00000ea3,0x00000ea2,0x00000e8e,0x00050080, + 0x00000006,0x00000ea4,0x00000ea0,0x00000ea3,0x00050080,0x00000006,0x00000ea5,0x00000ea4, + 0x000000f2,0x00050041,0x00000007,0x00000ea7,0x000007f6,0x000000c2,0x0004003d,0x00000006, + 0x00000ea8,0x00000ea7,0x0003003e,0x00000ea6,0x00000ea8,0x00050041,0x00000007,0x00000eaa, + 0x000007f6,0x000000ba,0x0004003d,0x00000006,0x00000eab,0x00000eaa,0x0003003e,0x00000ea9, + 0x00000eab,0x0003003e,0x00000eac,0x00000ea5,0x00070039,0x00000009,0x00000ead,0x0000000e, + 0x00000ea6,0x00000ea9,0x00000eac,0x0003003e,0x00000eae,0x00000ead,0x00050039,0x00000010, + 0x00000eaf,0x0000001a,0x00000eae,0x0003003e,0x00000e9f,0x00000eaf,0x0004003d,0x00000010, + 0x00000eb1,0x00000e67,0x00050041,0x0000002a,0x00000eb2,0x00000e9f,0x000000c2,0x0004003d, + 0x00000008,0x00000eb3,0x00000eb2,0x0005008e,0x00000010,0x00000eb4,0x00000eb1,0x00000eb3, + 0x0004003d,0x00000010,0x00000eb5,0x00000e6c,0x00050041,0x0000002a,0x00000eb6,0x00000e9f, + 0x000000ba,0x0004003d,0x00000008,0x00000eb7,0x00000eb6,0x0005008e,0x00000010,0x00000eb8, + 0x00000eb5,0x00000eb7,0x00050081,0x00000010,0x00000eb9,0x00000eb4,0x00000eb8,0x0004003d, + 0x00000010,0x00000eba,0x00000e44,0x00050041,0x0000002a,0x00000ebb,0x00000e9f,0x00000137, + 0x0004003d,0x00000008,0x00000ebc,0x00000ebb,0x0005008e,0x00000010,0x00000ebd,0x00000eba, + 0x00000ebc,0x00050081,0x00000010,0x00000ebe,0x00000eb9,0x00000ebd,0x0006000c,0x00000010, + 0x00000ebf,0x00000001,0x00000045,0x00000ebe,0x0003003e,0x00000eb0,0x00000ebf,0x00050041, + 0x0000002a,0x00000ec1,0x00000e9f,0x00000137,0x0004003d,0x00000008,0x00000ec2,0x00000ec1, + 0x00050085,0x00000008,0x00000ec3,0x000000f6,0x00000ec2,0x00050088,0x00000008,0x00000ec4, + 0x00000ec3,0x00000215,0x0003003e,0x00000ec0,0x00000ec4,0x0004003d,0x00000008,0x00000ec5, + 0x00000ec0,0x0003003e,0x00000c86,0x00000ec5,0x0004003d,0x00000010,0x00000ec7,0x00000e84, + 0x00050083,0x00000010,0x00000ec8,0x0000027f,0x00000ec7,0x0004003d,0x00000008,0x00000ec9, + 0x00000e78,0x00050083,0x00000008,0x00000eca,0x000000dc,0x00000ec9,0x0005008e,0x00000010, + 0x00000ecb,0x00000ec8,0x00000eca,0x0003003e,0x00000ec6,0x00000ecb,0x0004003d,0x00000010, + 0x00000ecc,0x00000ec6,0x0004003d,0x00000010,0x00000ecd,0x00000e48,0x00050085,0x00000010, + 0x00000ece,0x00000ecc,0x00000ecd,0x00050041,0x0000002a,0x00000ecf,0x00000e9f,0x00000137, + 0x0004003d,0x00000008,0x00000ed0,0x00000ecf,0x0005008e,0x00000010,0x00000ed1,0x00000ece, + 0x00000ed0,0x0004003d,0x00000008,0x00000ed2,0x00000ec0,0x00050085,0x00000008,0x00000ed3, + 0x00000ed2,0x00000215,0x0007000c,0x00000008,0x00000ed4,0x00000001,0x00000028,0x00000ed3, + 0x0000025e,0x00060050,0x00000010,0x00000ed5,0x00000ed4,0x00000ed4,0x00000ed4,0x00050088, + 0x00000010,0x00000ed6,0x00000ed1,0x00000ed5,0x0004003d,0x00000010,0x00000ed7,0x00000c81, + 0x00050085,0x00000010,0x00000ed8,0x00000ed7,0x00000ed6,0x0003003e,0x00000c81,0x00000ed8, + 0x000200f9,0x00000e9e,0x000200f8,0x00000ed9,0x0004003d,0x00000010,0x00000edb,0x00000e70, + 0x0004003d,0x00000010,0x00000edc,0x00000e67,0x00050094,0x00000008,0x00000edd,0x00000edb, + 0x00000edc,0x0004003d,0x00000010,0x00000ede,0x00000e70,0x0004003d,0x00000010,0x00000edf, + 0x00000e6c,0x00050094,0x00000008,0x00000ee0,0x00000ede,0x00000edf,0x0004003d,0x00000010, + 0x00000ee1,0x00000e70,0x0004003d,0x00000010,0x00000ee2,0x00000e44,0x00050094,0x00000008, + 0x00000ee3,0x00000ee1,0x00000ee2,0x00060050,0x00000010,0x00000ee4,0x00000edd,0x00000ee0, + 0x00000ee3,0x0003003e,0x00000eda,0x00000ee4,0x0004003d,0x00000006,0x00000ee6,0x00000811, + 0x0004003d,0x0000005e,0x00000ee7,0x00000c87,0x0004007c,0x00000006,0x00000ee8,0x00000ee7, + 0x00050084,0x00000006,0x00000ee9,0x00000ee8,0x00000e8e,0x00050080,0x00000006,0x00000eea, + 0x00000ee6,0x00000ee9,0x00050080,0x00000006,0x00000eec,0x00000eea,0x00000eeb,0x00050041, + 0x00000007,0x00000eee,0x000007f6,0x000000c2,0x0004003d,0x00000006,0x00000eef,0x00000eee, + 0x0003003e,0x00000eed,0x00000eef,0x00050041,0x00000007,0x00000ef1,0x000007f6,0x000000ba, + 0x0004003d,0x00000006,0x00000ef2,0x00000ef1,0x0003003e,0x00000ef0,0x00000ef2,0x0003003e, + 0x00000ef3,0x00000eec,0x00070039,0x00000009,0x00000ef4,0x0000000e,0x00000eed,0x00000ef0, + 0x00000ef3,0x0003003e,0x00000ef5,0x00000ef4,0x0004003d,0x00000008,0x00000ef7,0x00000e7c, + 0x0003003e,0x00000ef6,0x00000ef7,0x00060039,0x00000010,0x00000ef8,0x0000005b,0x00000ef5, + 0x00000ef6,0x0003003e,0x00000ee5,0x00000ef8,0x0004003d,0x00000010,0x00000efa,0x00000e67, + 0x00050041,0x0000002a,0x00000efb,0x00000ee5,0x000000c2,0x0004003d,0x00000008,0x00000efc, + 0x00000efb,0x0005008e,0x00000010,0x00000efd,0x00000efa,0x00000efc,0x0004003d,0x00000010, + 0x00000efe,0x00000e6c,0x00050041,0x0000002a,0x00000eff,0x00000ee5,0x000000ba,0x0004003d, + 0x00000008,0x00000f00,0x00000eff,0x0005008e,0x00000010,0x00000f01,0x00000efe,0x00000f00, + 0x00050081,0x00000010,0x00000f02,0x00000efd,0x00000f01,0x0004003d,0x00000010,0x00000f03, + 0x00000e44,0x00050041,0x0000002a,0x00000f04,0x00000ee5,0x00000137,0x0004003d,0x00000008, + 0x00000f05,0x00000f04,0x0005008e,0x00000010,0x00000f06,0x00000f03,0x00000f05,0x00050081, + 0x00000010,0x00000f07,0x00000f02,0x00000f06,0x0006000c,0x00000010,0x00000f08,0x00000001, + 0x00000045,0x00000f07,0x0003003e,0x00000ef9,0x00000f08,0x0004003d,0x00000010,0x00000f0a, + 0x00000e70,0x0004007f,0x00000010,0x00000f0b,0x00000f0a,0x0004003d,0x00000010,0x00000f0c, + 0x00000ef9,0x0007000c,0x00000010,0x00000f0d,0x00000001,0x00000047,0x00000f0b,0x00000f0c, + 0x0006000c,0x00000010,0x00000f0e,0x00000001,0x00000045,0x00000f0d,0x0003003e,0x00000f09, + 0x00000f0e,0x0004003d,0x00000010,0x00000f10,0x00000e44,0x0004003d,0x00000010,0x00000f11, + 0x00000f09,0x00050094,0x00000008,0x00000f12,0x00000f10,0x00000f11,0x0007000c,0x00000008, + 0x00000f13,0x00000001,0x00000028,0x00000f12,0x000000cc,0x0003003e,0x00000f0f,0x00000f13, + 0x0004003d,0x00000010,0x00000f15,0x00000e70,0x0004003d,0x00000010,0x00000f16,0x00000ef9, + 0x00050094,0x00000008,0x00000f17,0x00000f15,0x00000f16,0x0007000c,0x00000008,0x00000f18, + 0x00000001,0x00000028,0x00000f17,0x000000cc,0x0003003e,0x00000f14,0x00000f18,0x0004003d, + 0x00000010,0x00000f1a,0x00000e44,0x0004003d,0x00000010,0x00000f1b,0x00000ef9,0x00050094, + 0x00000008,0x00000f1c,0x00000f1a,0x00000f1b,0x0007000c,0x00000008,0x00000f1d,0x00000001, + 0x00000028,0x00000f1c,0x000000cc,0x0003003e,0x00000f19,0x00000f1d,0x0004003d,0x00000008, + 0x00000f1e,0x00000f0f,0x000500bc,0x0000005d,0x00000f1f,0x00000f1e,0x000000cc,0x000300f7, + 0x00000f21,0x00000000,0x000400fa,0x00000f1f,0x00000f20,0x00000f26,0x000200f8,0x00000f20, + 0x0004003d,0x00000010,0x00000f22,0x00000c84,0x0004003d,0x00000010,0x00000f23,0x00000e44, + 0x0007000c,0x00000010,0x00000f24,0x00000001,0x00000047,0x00000f22,0x00000f23,0x0006000c, + 0x00000010,0x00000f25,0x00000001,0x00000045,0x00000f24,0x0003003e,0x00000eb0,0x00000f25, + 0x000200f9,0x00000f21,0x000200f8,0x00000f26,0x0004003d,0x00000010,0x00000f27,0x00000f09, + 0x0003003e,0x00000eb0,0x00000f27,0x000200f9,0x00000f21,0x000200f8,0x00000f21,0x0004003d, + 0x00000008,0x00000f2a,0x00000f14,0x0003003e,0x00000f29,0x00000f2a,0x0004003d,0x00000010, + 0x00000f2c,0x00000e80,0x0003003e,0x00000f2b,0x00000f2c,0x00060039,0x00000010,0x00000f2d, + 0x0000004f,0x00000f29,0x00000f2b,0x0003003e,0x00000f28,0x00000f2d,0x0004003d,0x00000008, + 0x00000f30,0x00000e73,0x0003003e,0x00000f2f,0x00000f30,0x0004003d,0x00000008,0x00000f32, + 0x00000f0f,0x0003003e,0x00000f31,0x00000f32,0x0004003d,0x00000008,0x00000f34,0x00000e7c, + 0x0003003e,0x00000f33,0x00000f34,0x00070039,0x00000008,0x00000f35,0x0000004a,0x00000f2f, + 0x00000f31,0x00000f33,0x0003003e,0x00000f2e,0x00000f35,0x0004003d,0x00000008,0x00000f37, + 0x00000f19,0x0003003e,0x00000f36,0x00000f37,0x0004003d,0x00000008,0x00000f39,0x00000e7c, + 0x0003003e,0x00000f38,0x00000f39,0x00060039,0x00000008,0x00000f3a,0x00000040,0x00000f36, + 0x00000f38,0x00050085,0x00000008,0x00000f3b,0x000000f6,0x00000f3a,0x0004003d,0x00000008, + 0x00000f3c,0x00000f19,0x00050085,0x00000008,0x00000f3d,0x00000f3b,0x00000f3c,0x0004003d, + 0x00000008,0x00000f3e,0x00000f14,0x00050085,0x00000008,0x00000f3f,0x000001ed,0x00000f3e, + 0x0007000c,0x00000008,0x00000f40,0x00000001,0x00000028,0x00000f3f,0x00000706,0x00050088, + 0x00000008,0x00000f41,0x00000f3d,0x00000f40,0x0003003e,0x00000c86,0x00000f41,0x0004003d, + 0x00000010,0x00000f42,0x00000f28,0x0004003d,0x00000008,0x00000f43,0x00000f2e,0x0005008e, + 0x00000010,0x00000f44,0x00000f42,0x00000f43,0x0004003d,0x00000008,0x00000f45,0x00000f14, + 0x0005008e,0x00000010,0x00000f46,0x00000f44,0x00000f45,0x0004003d,0x00000008,0x00000f47, + 0x00000e73,0x0004003d,0x00000008,0x00000f48,0x00000f19,0x00050085,0x00000008,0x00000f49, + 0x00000f47,0x00000f48,0x0007000c,0x00000008,0x00000f4a,0x00000001,0x00000028,0x00000f49, + 0x00000294,0x00060050,0x00000010,0x00000f4b,0x00000f4a,0x00000f4a,0x00000f4a,0x00050088, + 0x00000010,0x00000f4c,0x00000f46,0x00000f4b,0x00060050,0x00000010,0x00000f4d,0x000000f6, + 0x000000f6,0x000000f6,0x00050088,0x00000010,0x00000f4e,0x00000f4c,0x00000f4d,0x0004003d, + 0x00000010,0x00000f4f,0x00000c81,0x00050085,0x00000010,0x00000f50,0x00000f4f,0x00000f4e, + 0x0003003e,0x00000c81,0x00000f50,0x000200f9,0x00000e9e,0x000200f8,0x00000e9e,0x000200f9, + 0x00000e5e,0x000200f8,0x00000f51,0x00060041,0x0000002a,0x00000f53,0x00000d27,0x000001e0, + 0x000000c2,0x0004003d,0x00000008,0x00000f54,0x00000f53,0x0008000c,0x00000008,0x00000f55, + 0x00000001,0x0000002b,0x00000f54,0x000000cc,0x000000dc,0x0003003e,0x00000f52,0x00000f55, + 0x00050041,0x0000002a,0x00000f57,0x00000e44,0x00000137,0x0004003d,0x00000008,0x00000f58, + 0x00000f57,0x0006000c,0x00000008,0x00000f59,0x00000001,0x00000004,0x00000f58,0x000500b8, + 0x0000005d,0x00000f5a,0x00000f59,0x000001c5,0x00060050,0x000001c9,0x00000f5b,0x00000f5a, + 0x00000f5a,0x00000f5a,0x000600a9,0x00000010,0x00000f5c,0x00000f5b,0x00000e64,0x000001c8, + 0x0003003e,0x00000f56,0x00000f5c,0x0004003d,0x00000010,0x00000f5e,0x00000f56,0x0004003d, + 0x00000010,0x00000f5f,0x00000e44,0x0007000c,0x00000010,0x00000f60,0x00000001,0x00000044, + 0x00000f5e,0x00000f5f,0x0006000c,0x00000010,0x00000f61,0x00000001,0x00000045,0x00000f60, + 0x0003003e,0x00000f5d,0x00000f61,0x0004003d,0x00000010,0x00000f63,0x00000e44,0x0004003d, + 0x00000010,0x00000f64,0x00000f5d,0x0007000c,0x00000010,0x00000f65,0x00000001,0x00000044, + 0x00000f63,0x00000f64,0x0003003e,0x00000f62,0x00000f65,0x0004003d,0x00000006,0x00000f66, + 0x00000811,0x0004003d,0x0000005e,0x00000f67,0x00000c87,0x0004007c,0x00000006,0x00000f68, + 0x00000f67,0x00050084,0x00000006,0x00000f6a,0x00000f68,0x00000f69,0x00050080,0x00000006, + 0x00000f6b,0x00000f66,0x00000f6a,0x00050080,0x00000006,0x00000f6d,0x00000f6b,0x00000f6c, + 0x00050041,0x00000007,0x00000f6f,0x000007f6,0x000000c2,0x0004003d,0x00000006,0x00000f70, + 0x00000f6f,0x0003003e,0x00000f6e,0x00000f70,0x00050041,0x00000007,0x00000f72,0x000007f6, + 0x000000ba,0x0004003d,0x00000006,0x00000f73,0x00000f72,0x0003003e,0x00000f71,0x00000f73, + 0x0003003e,0x00000f74,0x00000f6d,0x00070039,0x00000009,0x00000f75,0x0000000e,0x00000f6e, + 0x00000f71,0x00000f74,0x00050051,0x00000008,0x00000f76,0x00000f75,0x00000000,0x0004003d, + 0x00000008,0x00000f77,0x00000f52,0x000500b8,0x0000005d,0x00000f78,0x00000f76,0x00000f77, + 0x000300f7,0x00000f7a,0x00000000,0x000400fa,0x00000f78,0x00000f79,0x00000f8c,0x000200f8, + 0x00000f79,0x0004003d,0x00000010,0x00000f7b,0x00000c84,0x0004003d,0x00000010,0x00000f7c, + 0x00000e44,0x0007000c,0x00000010,0x00000f7d,0x00000001,0x00000047,0x00000f7b,0x00000f7c, + 0x0003003e,0x00000eb0,0x00000f7d,0x0004003d,0x00000008,0x00000f7e,0x00000f52,0x0007000c, + 0x00000008,0x00000f7f,0x00000001,0x00000028,0x00000f7e,0x000004b1,0x0003003e,0x00000c86, + 0x00000f7f,0x0004003d,0x00000010,0x00000f80,0x00000e48,0x00050041,0x00000242,0x00000f81, + 0x00000d27,0x00000319,0x0004003d,0x00000030,0x00000f82,0x00000f81,0x0008004f,0x00000010, + 0x00000f83,0x00000f82,0x00000f82,0x00000000,0x00000001,0x00000002,0x00060050,0x00000010, + 0x00000f84,0x000000f6,0x000000f6,0x000000f6,0x0008000c,0x00000010,0x00000f85,0x00000001, + 0x0000002e,0x00000f80,0x00000f83,0x00000f84,0x0004003d,0x00000008,0x00000f86,0x00000f52, + 0x0007000c,0x00000008,0x00000f87,0x00000001,0x00000028,0x00000f86,0x000004b1,0x00060050, + 0x00000010,0x00000f88,0x00000f87,0x00000f87,0x00000f87,0x00050088,0x00000010,0x00000f89, + 0x00000f85,0x00000f88,0x0004003d,0x00000010,0x00000f8a,0x00000c81,0x00050085,0x00000010, + 0x00000f8b,0x00000f8a,0x00000f89,0x0003003e,0x00000c81,0x00000f8b,0x000200f9,0x00000f7a, + 0x000200f8,0x00000f8c,0x0004003d,0x00000006,0x00000f8e,0x00000811,0x0004003d,0x0000005e, + 0x00000f8f,0x00000c87,0x0004007c,0x00000006,0x00000f90,0x00000f8f,0x00050084,0x00000006, + 0x00000f91,0x00000f90,0x00000e8e,0x00050080,0x00000006,0x00000f92,0x00000f8e,0x00000f91, + 0x00050080,0x00000006,0x00000f93,0x00000f92,0x000000ba,0x00050041,0x00000007,0x00000f95, + 0x000007f6,0x000000c2,0x0004003d,0x00000006,0x00000f96,0x00000f95,0x0003003e,0x00000f94, + 0x00000f96,0x00050041,0x00000007,0x00000f98,0x000007f6,0x000000ba,0x0004003d,0x00000006, + 0x00000f99,0x00000f98,0x0003003e,0x00000f97,0x00000f99,0x0003003e,0x00000f9a,0x00000f93, + 0x00070039,0x00000009,0x00000f9b,0x0000000e,0x00000f94,0x00000f97,0x00000f9a,0x0003003e, + 0x00000f9c,0x00000f9b,0x00050039,0x00000010,0x00000f9d,0x0000001a,0x00000f9c,0x0003003e, + 0x00000f8d,0x00000f9d,0x0004003d,0x00000010,0x00000f9e,0x00000f5d,0x00050041,0x0000002a, + 0x00000f9f,0x00000f8d,0x000000c2,0x0004003d,0x00000008,0x00000fa0,0x00000f9f,0x0005008e, + 0x00000010,0x00000fa1,0x00000f9e,0x00000fa0,0x0004003d,0x00000010,0x00000fa2,0x00000f62, + 0x00050041,0x0000002a,0x00000fa3,0x00000f8d,0x000000ba,0x0004003d,0x00000008,0x00000fa4, + 0x00000fa3,0x0005008e,0x00000010,0x00000fa5,0x00000fa2,0x00000fa4,0x00050081,0x00000010, + 0x00000fa6,0x00000fa1,0x00000fa5,0x0004003d,0x00000010,0x00000fa7,0x00000e44,0x00050041, + 0x0000002a,0x00000fa8,0x00000f8d,0x00000137,0x0004003d,0x00000008,0x00000fa9,0x00000fa8, + 0x0005008e,0x00000010,0x00000faa,0x00000fa7,0x00000fa9,0x00050081,0x00000010,0x00000fab, + 0x00000fa6,0x00000faa,0x0006000c,0x00000010,0x00000fac,0x00000001,0x00000045,0x00000fab, + 0x0003003e,0x00000eb0,0x00000fac,0x00050041,0x0000002a,0x00000fad,0x00000f8d,0x00000137, + 0x0004003d,0x00000008,0x00000fae,0x00000fad,0x00050088,0x00000008,0x00000faf,0x00000fae, + 0x00000215,0x0003003e,0x00000c86,0x00000faf,0x0004003d,0x00000010,0x00000fb0,0x00000e48, + 0x0004003d,0x00000008,0x00000fb1,0x00000f52,0x00050083,0x00000008,0x00000fb2,0x000000dc, + 0x00000fb1,0x0007000c,0x00000008,0x00000fb3,0x00000001,0x00000028,0x00000fb2,0x000004b1, + 0x00060050,0x00000010,0x00000fb4,0x00000fb3,0x00000fb3,0x00000fb3,0x00050088,0x00000010, + 0x00000fb5,0x00000fb0,0x00000fb4,0x0004003d,0x00000010,0x00000fb6,0x00000c81,0x00050085, + 0x00000010,0x00000fb7,0x00000fb6,0x00000fb5,0x0003003e,0x00000c81,0x00000fb7,0x000200f9, + 0x00000f7a,0x000200f8,0x00000f7a,0x000200f9,0x00000e5e,0x000200f8,0x00000e5e,0x00050041, + 0x0000001f,0x00000fb8,0x00000c90,0x00000319,0x0004003d,0x00000010,0x00000fb9,0x00000fb8, + 0x0004003d,0x00000010,0x00000fba,0x00000e44,0x0005008e,0x00000010,0x00000fbb,0x00000fba, + 0x0000023c,0x00050081,0x00000010,0x00000fbc,0x00000fb9,0x00000fbb,0x0003003e,0x00000c82, + 0x00000fbc,0x0004003d,0x00000010,0x00000fbd,0x00000eb0,0x0006000c,0x00000010,0x00000fbe, + 0x00000001,0x00000045,0x00000fbd,0x0003003e,0x00000c84,0x00000fbe,0x0004003d,0x0000005e, + 0x00000fbf,0x00000c87,0x000500ad,0x0000005d,0x00000fc0,0x00000fbf,0x000001d9,0x000300f7, + 0x00000fc2,0x00000000,0x000400fa,0x00000fc0,0x00000fc1,0x00000fc2,0x000200f8,0x00000fc1, + 0x00050041,0x0000002a,0x00000fc4,0x00000c81,0x000000c2,0x0004003d,0x00000008,0x00000fc5, + 0x00000fc4,0x00050041,0x0000002a,0x00000fc6,0x00000c81,0x000000ba,0x0004003d,0x00000008, + 0x00000fc7,0x00000fc6,0x0007000c,0x00000008,0x00000fc8,0x00000001,0x00000028,0x00000fc5, + 0x00000fc7,0x00050041,0x0000002a,0x00000fc9,0x00000c81,0x00000137,0x0004003d,0x00000008, + 0x00000fca,0x00000fc9,0x0007000c,0x00000008,0x00000fcb,0x00000001,0x00000028,0x00000fc8, + 0x00000fca,0x0008000c,0x00000008,0x00000fcd,0x00000001,0x0000002b,0x00000fcb,0x000000fe, + 0x00000fcc,0x0003003e,0x00000fc3,0x00000fcd,0x0004003d,0x00000006,0x00000fce,0x00000811, + 0x0004003d,0x0000005e,0x00000fcf,0x00000c87,0x0004007c,0x00000006,0x00000fd0,0x00000fcf, + 0x00050084,0x00000006,0x00000fd2,0x00000fd0,0x00000fd1,0x00050080,0x00000006,0x00000fd3, + 0x00000fce,0x00000fd2,0x00050080,0x00000006,0x00000fd5,0x00000fd3,0x00000fd4,0x00050041, + 0x00000007,0x00000fd7,0x000007f6,0x000000c2,0x0004003d,0x00000006,0x00000fd8,0x00000fd7, + 0x0003003e,0x00000fd6,0x00000fd8,0x00050041,0x00000007,0x00000fda,0x000007f6,0x000000ba, + 0x0004003d,0x00000006,0x00000fdb,0x00000fda,0x0003003e,0x00000fd9,0x00000fdb,0x0003003e, + 0x00000fdc,0x00000fd5,0x00070039,0x00000009,0x00000fdd,0x0000000e,0x00000fd6,0x00000fd9, + 0x00000fdc,0x00050051,0x00000008,0x00000fde,0x00000fdd,0x00000000,0x0004003d,0x00000008, + 0x00000fdf,0x00000fc3,0x000500ba,0x0000005d,0x00000fe0,0x00000fde,0x00000fdf,0x000300f7, + 0x00000fe2,0x00000000,0x000400fa,0x00000fe0,0x00000fe1,0x00000fe2,0x000200f8,0x00000fe1, + 0x000200f9,0x00000c8a,0x000200f8,0x00000fe2,0x0004003d,0x00000008,0x00000fe4,0x00000fc3, + 0x0004003d,0x00000010,0x00000fe5,0x00000c81,0x00060050,0x00000010,0x00000fe6,0x00000fe4, + 0x00000fe4,0x00000fe4,0x00050088,0x00000010,0x00000fe7,0x00000fe5,0x00000fe6,0x0003003e, + 0x00000c81,0x00000fe7,0x000200f9,0x00000fc2,0x000200f8,0x00000fc2,0x000200f9,0x00000c8b, + 0x000200f8,0x00000c8b,0x0004003d,0x0000005e,0x00000fe8,0x00000c87,0x00050080,0x0000005e, + 0x00000fe9,0x00000fe8,0x00000210,0x0003003e,0x00000c87,0x00000fe9,0x000200f9,0x00000c88, + 0x000200f8,0x00000c8a,0x0004003d,0x00000010,0x00000feb,0x00000c80,0x00050051,0x00000008, + 0x00000fec,0x00000feb,0x00000000,0x00050051,0x00000008,0x00000fed,0x00000feb,0x00000001, + 0x00050051,0x00000008,0x00000fee,0x00000feb,0x00000002,0x00070050,0x00000030,0x00000fef, + 0x00000fec,0x00000fed,0x00000fee,0x000000dc,0x0003003e,0x00000fea,0x00000fef,0x0004003d, + 0x00000008,0x00000ff0,0x00000819,0x000500ba,0x0000005d,0x00000ff1,0x00000ff0,0x000000f6, + 0x000300f7,0x00000ff3,0x00000000,0x000400fa,0x00000ff1,0x00000ff2,0x00001110,0x000200f8, + 0x00000ff2,0x0004003d,0x0000005e,0x00000ff5,0x00000822,0x00060041,0x000000ea,0x00000ff6, + 0x0000084b,0x000001d9,0x00000ff5,0x0004003d,0x00000030,0x00000ff7,0x00000ff6,0x0003003e, + 0x00000ff4,0x00000ff7,0x0004003d,0x0000005e,0x00000ff9,0x00000822,0x00060041,0x000000ea, + 0x00000ffa,0x00000868,0x000001d9,0x00000ff9,0x0004003d,0x00000030,0x00000ffb,0x00000ffa, + 0x0003003e,0x00000ff8,0x00000ffb,0x00060041,0x000000f3,0x00000ffd,0x000000e8,0x00000386, + 0x00000137,0x0004003d,0x00000008,0x00000ffe,0x00000ffd,0x0003003e,0x00000ffc,0x00000ffe, + 0x0004003d,0x00000008,0x00000fff,0x00000ffc,0x000500ba,0x0000005d,0x00001000,0x00000fff, + 0x000000cc,0x000300f7,0x00001002,0x00000000,0x000400fa,0x00001000,0x00001001,0x00001002, + 0x000200f8,0x00001001,0x00050041,0x0000002a,0x00001003,0x00000ff4,0x000000f2,0x0004003d, + 0x00000008,0x00001004,0x00001003,0x000500ba,0x0000005d,0x00001005,0x00001004,0x000000dc, + 0x000200f9,0x00001002,0x000200f8,0x00001002,0x000700f5,0x0000005d,0x00001006,0x00001000, + 0x00000ff2,0x00001005,0x00001001,0x000300f7,0x00001008,0x00000000,0x000400fa,0x00001006, + 0x00001007,0x00001008,0x000200f8,0x00001007,0x0004003d,0x00000030,0x0000100a,0x00000ff4, + 0x0008004f,0x00000010,0x0000100b,0x0000100a,0x0000100a,0x00000000,0x00000001,0x00000002, + 0x00050041,0x0000002a,0x0000100c,0x00000ff4,0x000000f2,0x0004003d,0x00000008,0x0000100d, + 0x0000100c,0x00060050,0x00000010,0x0000100e,0x0000100d,0x0000100d,0x0000100d,0x00050088, + 0x00000010,0x0000100f,0x0000100b,0x0000100e,0x0003003e,0x00001009,0x0000100f,0x0004003d, + 0x00000030,0x00001011,0x00000ff8,0x0008004f,0x00000010,0x00001012,0x00001011,0x00001011, + 0x00000000,0x00000001,0x00000002,0x00050041,0x0000002a,0x00001013,0x00000ff4,0x000000f2, + 0x0004003d,0x00000008,0x00001014,0x00001013,0x00060050,0x00000010,0x00001015,0x00001014, + 0x00001014,0x00001014,0x00050088,0x00000010,0x00001016,0x00001012,0x00001015,0x0004003d, + 0x00000010,0x00001017,0x00001009,0x0004003d,0x00000010,0x00001018,0x00001009,0x00050085, + 0x00000010,0x00001019,0x00001017,0x00001018,0x00050083,0x00000010,0x0000101a,0x00001016, + 0x00001019,0x0007000c,0x00000010,0x0000101b,0x00000001,0x00000028,0x0000101a,0x0000010d, + 0x0003003e,0x00001010,0x0000101b,0x00050041,0x0000002a,0x0000101d,0x00001010,0x000000c2, + 0x0004003d,0x00000008,0x0000101e,0x0000101d,0x00050041,0x0000002a,0x0000101f,0x00001010, + 0x000000ba,0x0004003d,0x00000008,0x00001020,0x0000101f,0x00050041,0x0000002a,0x00001021, + 0x00001010,0x00000137,0x0004003d,0x00000008,0x00001022,0x00001021,0x0007000c,0x00000008, + 0x00001023,0x00000001,0x00000028,0x00001020,0x00001022,0x0007000c,0x00000008,0x00001024, + 0x00000001,0x00000028,0x0000101e,0x00001023,0x0006000c,0x00000008,0x00001025,0x00000001, + 0x0000001f,0x00001024,0x0003003e,0x0000101c,0x00001025,0x00050041,0x0000002a,0x00001027, + 0x00000fea,0x000000c2,0x0004003d,0x00000008,0x00001028,0x00001027,0x00050041,0x0000002a, + 0x00001029,0x00000fea,0x000000ba,0x0004003d,0x00000008,0x0000102a,0x00001029,0x0007000c, + 0x00000008,0x0000102b,0x00000001,0x00000028,0x00001028,0x0000102a,0x00050041,0x0000002a, + 0x0000102c,0x00000fea,0x00000137,0x0004003d,0x00000008,0x0000102d,0x0000102c,0x0007000c, + 0x00000008,0x0000102e,0x00000001,0x00000028,0x0000102b,0x0000102d,0x0003003e,0x00001026, + 0x0000102e,0x00050041,0x0000002a,0x00001030,0x00001009,0x000000c2,0x0004003d,0x00000008, + 0x00001031,0x00001030,0x00050041,0x0000002a,0x00001032,0x00001009,0x000000ba,0x0004003d, + 0x00000008,0x00001033,0x00001032,0x0007000c,0x00000008,0x00001034,0x00000001,0x00000028, + 0x00001031,0x00001033,0x00050041,0x0000002a,0x00001035,0x00001009,0x00000137,0x0004003d, + 0x00000008,0x00001036,0x00001035,0x0007000c,0x00000008,0x00001037,0x00000001,0x00000028, + 0x00001034,0x00001036,0x0003003e,0x0000102f,0x00001037,0x0004003d,0x00000008,0x00001038, + 0x0000101c,0x000500ba,0x0000005d,0x00001039,0x00001038,0x00000110,0x000300f7,0x0000103b, + 0x00000000,0x000400fa,0x00001039,0x0000103a,0x0000103b,0x000200f8,0x0000103a,0x0004003d, + 0x00000008,0x0000103c,0x00001026,0x0004003d,0x00000008,0x0000103d,0x0000102f,0x0004003d, + 0x00000008,0x0000103e,0x00000ffc,0x0004003d,0x00000008,0x0000103f,0x0000101c,0x00050085, + 0x00000008,0x00001040,0x0000103e,0x0000103f,0x00050081,0x00000008,0x00001041,0x0000103d, + 0x00001040,0x000500ba,0x0000005d,0x00001042,0x0000103c,0x00001041,0x000200f9,0x0000103b, + 0x000200f8,0x0000103b,0x000700f5,0x0000005d,0x00001043,0x00001039,0x00001007,0x00001042, + 0x0000103a,0x000300f7,0x00001045,0x00000000,0x000400fa,0x00001043,0x00001044,0x00001045, + 0x000200f8,0x00001044,0x0004003d,0x00000010,0x00001046,0x00001009,0x00050051,0x00000008, + 0x00001047,0x00001046,0x00000000,0x00050051,0x00000008,0x00001048,0x00001046,0x00000001, + 0x00050051,0x00000008,0x00001049,0x00001046,0x00000002,0x00070050,0x00000030,0x0000104a, + 0x00001047,0x00001048,0x00001049,0x000000dc,0x0003003e,0x00000fea,0x0000104a,0x000200f9, + 0x00001045,0x000200f8,0x00001045,0x000200f9,0x00001008,0x000200f8,0x00001008,0x00060041, + 0x000000f3,0x0000104b,0x000000e8,0x000003ac,0x000000c2,0x0004003d,0x00000008,0x0000104c, + 0x0000104b,0x000500ba,0x0000005d,0x0000104d,0x0000104c,0x000000f6,0x000300f7,0x0000104f, + 0x00000000,0x000400fa,0x0000104d,0x0000104e,0x0000104f,0x000200f8,0x0000104e,0x0003003e, + 0x00000ff4,0x00000ccd,0x0003003e,0x00000ff8,0x00000ccd,0x0004003d,0x0000005e,0x00001050, + 0x00000822,0x00070041,0x000000f3,0x00001051,0x00000b27,0x000001d9,0x00001050,0x000000f2, + 0x0004003d,0x00000008,0x00001052,0x00001051,0x000500b8,0x0000005d,0x00001053,0x00001052, + 0x00000cc9,0x000300f7,0x00001055,0x00000000,0x000400fa,0x00001053,0x00001054,0x00001055, + 0x000200f8,0x00001054,0x00050041,0x000008c8,0x00001057,0x000000e8,0x00000399,0x0004003d, + 0x000000e5,0x00001058,0x00001057,0x0004003d,0x0000005e,0x00001059,0x00000822,0x00060041, + 0x000000ea,0x0000105a,0x00000b27,0x000001d9,0x00001059,0x0004003d,0x00000030,0x0000105b, + 0x0000105a,0x0008004f,0x00000010,0x0000105c,0x0000105b,0x0000105b,0x00000000,0x00000001, + 0x00000002,0x00050051,0x00000008,0x0000105d,0x0000105c,0x00000000,0x00050051,0x00000008, + 0x0000105e,0x0000105c,0x00000001,0x00050051,0x00000008,0x0000105f,0x0000105c,0x00000002, + 0x00070050,0x00000030,0x00001060,0x0000105d,0x0000105e,0x0000105f,0x000000dc,0x00050091, + 0x00000030,0x00001061,0x00001058,0x00001060,0x0003003e,0x00001056,0x00001061,0x00050041, + 0x0000002a,0x00001062,0x00001056,0x000000f2,0x0004003d,0x00000008,0x00001063,0x00001062, + 0x000500ba,0x0000005d,0x00001064,0x00001063,0x000000cc,0x000300f7,0x00001066,0x00000000, + 0x000400fa,0x00001064,0x00001065,0x00001066,0x000200f8,0x00001065,0x0004003d,0x00000030, + 0x00001068,0x00001056,0x0007004f,0x00000009,0x00001069,0x00001068,0x00001068,0x00000000, + 0x00000001,0x00050041,0x0000002a,0x0000106a,0x00001056,0x000000f2,0x0004003d,0x00000008, + 0x0000106b,0x0000106a,0x00050050,0x00000009,0x0000106c,0x0000106b,0x0000106b,0x00050088, + 0x00000009,0x0000106d,0x00001069,0x0000106c,0x0003003e,0x00001067,0x0000106d,0x00050041, + 0x0000002a,0x0000106f,0x00001067,0x000000c2,0x0004003d,0x00000008,0x00001070,0x0000106f, + 0x00050085,0x00000008,0x00001071,0x00001070,0x000000f6,0x00050081,0x00000008,0x00001072, + 0x00001071,0x000000f6,0x00050041,0x0000002a,0x00001073,0x00001067,0x000000ba,0x0004003d, + 0x00000008,0x00001074,0x00001073,0x00050085,0x00000008,0x00001075,0x00001074,0x000000f6, + 0x00050083,0x00000008,0x00001076,0x000000f6,0x00001075,0x00050050,0x00000009,0x00001077, + 0x00001072,0x00001076,0x00050041,0x000000ea,0x00001078,0x000000e8,0x000001e0,0x0004003d, + 0x00000030,0x00001079,0x00001078,0x0007004f,0x00000009,0x0000107a,0x00001079,0x00001079, + 0x00000000,0x00000001,0x00050085,0x00000009,0x0000107b,0x00001077,0x0000107a,0x0003003e, + 0x0000106e,0x0000107b,0x00050041,0x000000ea,0x0000107e,0x000000e8,0x000001e0,0x0004003d, + 0x00000030,0x0000107f,0x0000107e,0x0007004f,0x00000009,0x00001080,0x0000107f,0x0000107f, + 0x00000000,0x00000001,0x0004006e,0x00000895,0x00001081,0x00001080,0x0003003e,0x0000107d, + 0x00001081,0x0004003d,0x00000009,0x00001083,0x0000106e,0x0006000c,0x00000009,0x00001084, + 0x00000001,0x00000008,0x00001083,0x0004006e,0x00000895,0x00001085,0x00001084,0x0003003e, + 0x00001082,0x00001085,0x00050041,0x000001d7,0x00001086,0x00001082,0x000000c2,0x0004003d, + 0x0000005e,0x00001087,0x00001086,0x000500af,0x0000005d,0x00001088,0x00001087,0x000001d9, + 0x000300f7,0x0000108a,0x00000000,0x000400fa,0x00001088,0x00001089,0x0000108a,0x000200f8, + 0x00001089,0x00050041,0x000001d7,0x0000108b,0x00001082,0x000000ba,0x0004003d,0x0000005e, + 0x0000108c,0x0000108b,0x000500af,0x0000005d,0x0000108d,0x0000108c,0x000001d9,0x000200f9, + 0x0000108a,0x000200f8,0x0000108a,0x000700f5,0x0000005d,0x0000108e,0x00001088,0x00001065, + 0x0000108d,0x00001089,0x000300f7,0x00001090,0x00000000,0x000400fa,0x0000108e,0x0000108f, + 0x00001090,0x000200f8,0x0000108f,0x00050041,0x000001d7,0x00001091,0x00001082,0x000000c2, + 0x0004003d,0x0000005e,0x00001092,0x00001091,0x00050041,0x000001d7,0x00001093,0x0000107d, + 0x000000c2,0x0004003d,0x0000005e,0x00001094,0x00001093,0x000500b1,0x0000005d,0x00001095, + 0x00001092,0x00001094,0x000200f9,0x00001090,0x000200f8,0x00001090,0x000700f5,0x0000005d, + 0x00001096,0x0000108e,0x0000108a,0x00001095,0x0000108f,0x000300f7,0x00001098,0x00000000, + 0x000400fa,0x00001096,0x00001097,0x00001098,0x000200f8,0x00001097,0x00050041,0x000001d7, + 0x00001099,0x00001082,0x000000ba,0x0004003d,0x0000005e,0x0000109a,0x00001099,0x00050041, + 0x000001d7,0x0000109b,0x0000107d,0x000000ba,0x0004003d,0x0000005e,0x0000109c,0x0000109b, + 0x000500b1,0x0000005d,0x0000109d,0x0000109a,0x0000109c,0x000200f9,0x00001098,0x000200f8, + 0x00001098,0x000700f5,0x0000005d,0x0000109e,0x00001096,0x00001090,0x0000109d,0x00001097, + 0x000300f7,0x000010a0,0x00000000,0x000400fa,0x0000109e,0x0000109f,0x000010a0,0x000200f8, + 0x0000109f,0x00050041,0x000001d7,0x000010a2,0x00001082,0x000000ba,0x0004003d,0x0000005e, + 0x000010a3,0x000010a2,0x00050041,0x000001d7,0x000010a4,0x0000107d,0x000000c2,0x0004003d, + 0x0000005e,0x000010a5,0x000010a4,0x00050084,0x0000005e,0x000010a6,0x000010a3,0x000010a5, + 0x00050041,0x000001d7,0x000010a7,0x00001082,0x000000c2,0x0004003d,0x0000005e,0x000010a8, + 0x000010a7,0x00050080,0x0000005e,0x000010a9,0x000010a6,0x000010a8,0x0003003e,0x000010a1, + 0x000010a9,0x0004003d,0x0000005e,0x000010af,0x000010a1,0x00060041,0x000000ea,0x000010b0, + 0x000010ae,0x000001d9,0x000010af,0x0004003d,0x00000030,0x000010b1,0x000010b0,0x0008004f, + 0x00000010,0x000010b2,0x000010b1,0x000010b1,0x00000000,0x00000001,0x00000002,0x0004003d, + 0x0000005e,0x000010b3,0x00000822,0x00060041,0x000000ea,0x000010b4,0x00000b27,0x000001d9, + 0x000010b3,0x0004003d,0x00000030,0x000010b5,0x000010b4,0x0008004f,0x00000010,0x000010b6, + 0x000010b5,0x000010b5,0x00000000,0x00000001,0x00000002,0x00050083,0x00000010,0x000010b7, + 0x000010b2,0x000010b6,0x0003003e,0x000010aa,0x000010b7,0x0004003d,0x0000005e,0x000010b8, + 0x000010a1,0x00070041,0x000000f3,0x000010b9,0x000010ae,0x000001d9,0x000010b8,0x000000f2, + 0x0004003d,0x00000008,0x000010ba,0x000010b9,0x000500b8,0x0000005d,0x000010bb,0x000010ba, + 0x00000cc9,0x000300f7,0x000010bd,0x00000000,0x000400fa,0x000010bb,0x000010bc,0x000010bd, + 0x000200f8,0x000010bc,0x0004003d,0x00000010,0x000010be,0x000010aa,0x0004003d,0x00000010, + 0x000010bf,0x000010aa,0x00050094,0x00000008,0x000010c0,0x000010be,0x000010bf,0x0004003d, + 0x0000005e,0x000010c3,0x00000822,0x00060041,0x000000ea,0x000010c4,0x00000b27,0x000001d9, + 0x000010c3,0x0004003d,0x00000030,0x000010c5,0x000010c4,0x0008004f,0x00000010,0x000010c6, + 0x000010c5,0x000010c5,0x00000000,0x00000001,0x00000002,0x0004003d,0x0000005e,0x000010c7, + 0x00000822,0x00060041,0x000000ea,0x000010c8,0x00000b27,0x000001d9,0x000010c7,0x0004003d, + 0x00000030,0x000010c9,0x000010c8,0x0008004f,0x00000010,0x000010ca,0x000010c9,0x000010c9, + 0x00000000,0x00000001,0x00000002,0x00050094,0x00000008,0x000010cb,0x000010c6,0x000010ca, + 0x00050085,0x00000008,0x000010cc,0x000010c2,0x000010cb,0x0007000c,0x00000008,0x000010cd, + 0x00000001,0x00000028,0x000010c1,0x000010cc,0x000500b8,0x0000005d,0x000010ce,0x000010c0, + 0x000010cd,0x000200f9,0x000010bd,0x000200f8,0x000010bd,0x000700f5,0x0000005d,0x000010cf, + 0x000010bb,0x0000109f,0x000010ce,0x000010bc,0x000300f7,0x000010d1,0x00000000,0x000400fa, + 0x000010cf,0x000010d0,0x000010d1,0x000200f8,0x000010d0,0x0004003d,0x0000005e,0x000010d6, + 0x000010a1,0x00060041,0x000000ea,0x000010d7,0x000010d5,0x000001d9,0x000010d6,0x0004003d, + 0x00000030,0x000010d8,0x000010d7,0x0003003e,0x00000ff4,0x000010d8,0x0004003d,0x0000005e, + 0x000010dd,0x000010a1,0x00060041,0x000000ea,0x000010de,0x000010dc,0x000001d9,0x000010dd, + 0x0004003d,0x00000030,0x000010df,0x000010de,0x0003003e,0x00000ff8,0x000010df,0x00060041, + 0x000010e4,0x000010e5,0x000010e3,0x000001d9,0x00000210,0x000700ea,0x00000006,0x000010e6, + 0x000010e5,0x000000ba,0x000000c2,0x000000ba,0x000200f9,0x000010d1,0x000200f8,0x000010d1, + 0x000200f9,0x000010a0,0x000200f8,0x000010a0,0x000200f9,0x00001066,0x000200f8,0x00001066, + 0x000200f9,0x00001055,0x000200f8,0x00001055,0x000200f9,0x0000104f,0x000200f8,0x0000104f, + 0x0004003d,0x00000030,0x000010e7,0x00000fea,0x0008004f,0x00000010,0x000010e8,0x000010e7, + 0x000010e7,0x00000000,0x00000001,0x00000002,0x0004003d,0x00000030,0x000010e9,0x00000ff4, + 0x0008004f,0x00000010,0x000010ea,0x000010e9,0x000010e9,0x00000000,0x00000001,0x00000002, + 0x00050081,0x00000010,0x000010eb,0x000010ea,0x000010e8,0x00050041,0x0000002a,0x000010ec, + 0x00000ff4,0x000000c2,0x00050051,0x00000008,0x000010ed,0x000010eb,0x00000000,0x0003003e, + 0x000010ec,0x000010ed,0x00050041,0x0000002a,0x000010ee,0x00000ff4,0x000000ba,0x00050051, + 0x00000008,0x000010ef,0x000010eb,0x00000001,0x0003003e,0x000010ee,0x000010ef,0x00050041, + 0x0000002a,0x000010f0,0x00000ff4,0x00000137,0x00050051,0x00000008,0x000010f1,0x000010eb, + 0x00000002,0x0003003e,0x000010f0,0x000010f1,0x00050041,0x0000002a,0x000010f2,0x00000ff4, + 0x000000f2,0x0004003d,0x00000008,0x000010f3,0x000010f2,0x00050081,0x00000008,0x000010f4, + 0x000010f3,0x000000dc,0x00050041,0x0000002a,0x000010f5,0x00000ff4,0x000000f2,0x0003003e, + 0x000010f5,0x000010f4,0x0004003d,0x0000005e,0x000010f6,0x00000822,0x0004003d,0x00000030, + 0x000010f7,0x00000ff4,0x00060041,0x000000ea,0x000010f8,0x0000084b,0x000001d9,0x000010f6, + 0x0003003e,0x000010f8,0x000010f7,0x0004003d,0x00000030,0x000010f9,0x00000fea,0x0008004f, + 0x00000010,0x000010fa,0x000010f9,0x000010f9,0x00000000,0x00000001,0x00000002,0x0004003d, + 0x00000030,0x000010fb,0x00000fea,0x0008004f,0x00000010,0x000010fc,0x000010fb,0x000010fb, + 0x00000000,0x00000001,0x00000002,0x00050085,0x00000010,0x000010fd,0x000010fa,0x000010fc, + 0x0004003d,0x00000030,0x000010fe,0x00000ff8,0x0008004f,0x00000010,0x000010ff,0x000010fe, + 0x000010fe,0x00000000,0x00000001,0x00000002,0x00050081,0x00000010,0x00001100,0x000010ff, + 0x000010fd,0x00050041,0x0000002a,0x00001101,0x00000ff8,0x000000c2,0x00050051,0x00000008, + 0x00001102,0x00001100,0x00000000,0x0003003e,0x00001101,0x00001102,0x00050041,0x0000002a, + 0x00001103,0x00000ff8,0x000000ba,0x00050051,0x00000008,0x00001104,0x00001100,0x00000001, + 0x0003003e,0x00001103,0x00001104,0x00050041,0x0000002a,0x00001105,0x00000ff8,0x00000137, + 0x00050051,0x00000008,0x00001106,0x00001100,0x00000002,0x0003003e,0x00001105,0x00001106, + 0x00050041,0x0000002a,0x00001107,0x00000ff8,0x000000f2,0x0004003d,0x00000008,0x00001108, + 0x00001107,0x00050081,0x00000008,0x00001109,0x00001108,0x000000dc,0x00050041,0x0000002a, + 0x0000110a,0x00000ff8,0x000000f2,0x0003003e,0x0000110a,0x00001109,0x0004003d,0x0000005e, + 0x0000110b,0x00000822,0x0004003d,0x00000030,0x0000110c,0x00000ff8,0x00060041,0x000000ea, + 0x0000110d,0x00000868,0x000001d9,0x0000110b,0x0003003e,0x0000110d,0x0000110c,0x00060041, + 0x000010e4,0x0000110e,0x000010e3,0x000001d9,0x000001d9,0x000700ea,0x00000006,0x0000110f, + 0x0000110e,0x000000ba,0x000000c2,0x000000ba,0x000200f9,0x00000ff3,0x000200f8,0x00001110, + 0x0004003d,0x0000005e,0x00001111,0x00000822,0x0004003d,0x00000030,0x00001112,0x00000fea, + 0x00060041,0x000000ea,0x00001113,0x0000084b,0x000001d9,0x00001111,0x0003003e,0x00001113, + 0x00001112,0x000200f9,0x00000ff3,0x000200f8,0x00000ff3,0x0004003d,0x00000890,0x00001114, + 0x00000892,0x0004003d,0x000007f4,0x00001115,0x000007f6,0x0004007c,0x00000895,0x00001116, + 0x00001115,0x0004003d,0x00000030,0x00001117,0x00000fea,0x00070050,0x00000030,0x00001118, + 0x000000cc,0x000000cc,0x000000cc,0x000000cc,0x00070050,0x00000030,0x00001119,0x000000dc, + 0x000000dc,0x000000dc,0x000000dc,0x0008000c,0x00000030,0x0000111a,0x00000001,0x0000002b, + 0x00001117,0x00001118,0x00001119,0x00040063,0x00001114,0x00001116,0x0000111a,0x000100fd, + 0x00010038,0x00050036,0x00000009,0x0000000e,0x00000000,0x0000000a,0x00030037,0x00000007, + 0x0000000b,0x00030037,0x00000007,0x0000000c,0x00030037,0x00000007,0x0000000d,0x000200f8, + 0x0000000f,0x0004003b,0x00000007,0x00000085,0x00000007,0x0004003d,0x00000006,0x00000086, + 0x0000000b,0x00050084,0x00000006,0x00000088,0x00000086,0x00000087,0x0004003d,0x00000006, + 0x00000089,0x0000000c,0x00050084,0x00000006,0x0000008b,0x00000089,0x0000008a,0x00050080, + 0x00000006,0x0000008c,0x00000088,0x0000008b,0x0004003d,0x00000006,0x0000008d,0x0000000d, + 0x00050084,0x00000006,0x0000008f,0x0000008d,0x0000008e,0x00050080,0x00000006,0x00000090, + 0x0000008c,0x0000008f,0x00050080,0x00000006,0x00000092,0x00000090,0x00000091,0x0003003e, + 0x00000085,0x00000092,0x0004003d,0x00000006,0x00000093,0x00000085,0x0004003d,0x00000006, + 0x00000094,0x00000085,0x000500c2,0x00000006,0x00000096,0x00000094,0x00000095,0x000500c6, + 0x00000006,0x00000097,0x00000093,0x00000096,0x00050084,0x00000006,0x00000099,0x00000097, + 0x00000098,0x0003003e,0x00000085,0x00000099,0x0004003d,0x00000006,0x0000009a,0x00000085, + 0x0004003d,0x00000006,0x0000009b,0x00000085,0x000500c2,0x00000006,0x0000009d,0x0000009b, + 0x0000009c,0x000500c6,0x00000006,0x0000009e,0x0000009a,0x0000009d,0x00050084,0x00000006, + 0x000000a0,0x0000009e,0x0000009f,0x0003003e,0x00000085,0x000000a0,0x0004003d,0x00000006, + 0x000000a1,0x00000085,0x000500c2,0x00000006,0x000000a2,0x000000a1,0x00000095,0x0004003d, + 0x00000006,0x000000a3,0x00000085,0x000500c6,0x00000006,0x000000a4,0x000000a3,0x000000a2, + 0x0003003e,0x00000085,0x000000a4,0x0004003d,0x00000006,0x000000a5,0x00000085,0x000500c7, + 0x00000006,0x000000a7,0x000000a5,0x000000a6,0x00040070,0x00000008,0x000000a8,0x000000a7, + 0x0004003d,0x00000006,0x000000a9,0x00000085,0x000500c2,0x00000006,0x000000aa,0x000000a9, + 0x00000095,0x000500c7,0x00000006,0x000000ab,0x000000aa,0x000000a6,0x00040070,0x00000008, + 0x000000ac,0x000000ab,0x00050050,0x00000009,0x000000ad,0x000000a8,0x000000ac,0x0005008e, + 0x00000009,0x000000af,0x000000ad,0x000000ae,0x000200fe,0x000000af,0x00010038,0x00050036, + 0x00000010,0x00000015,0x00000000,0x00000011,0x00030037,0x00000007,0x00000012,0x00030037, + 0x00000007,0x00000013,0x00030037,0x00000007,0x00000014,0x000200f8,0x00000016,0x0004003b, + 0x00000007,0x000000b2,0x00000007,0x0004003b,0x00000007,0x000000b4,0x00000007,0x0004003b, + 0x00000007,0x000000b6,0x00000007,0x0004003b,0x00000007,0x000000bc,0x00000007,0x0004003b, + 0x00000007,0x000000be,0x00000007,0x0004003b,0x00000007,0x000000c0,0x00000007,0x0004003d, + 0x00000006,0x000000b3,0x00000012,0x0003003e,0x000000b2,0x000000b3,0x0004003d,0x00000006, + 0x000000b5,0x00000013,0x0003003e,0x000000b4,0x000000b5,0x0004003d,0x00000006,0x000000b7, + 0x00000014,0x0003003e,0x000000b6,0x000000b7,0x00070039,0x00000009,0x000000b8,0x0000000e, + 0x000000b2,0x000000b4,0x000000b6,0x0004003d,0x00000006,0x000000b9,0x00000014,0x00050080, + 0x00000006,0x000000bb,0x000000b9,0x000000ba,0x0004003d,0x00000006,0x000000bd,0x00000012, + 0x0003003e,0x000000bc,0x000000bd,0x0004003d,0x00000006,0x000000bf,0x00000013,0x0003003e, + 0x000000be,0x000000bf,0x0003003e,0x000000c0,0x000000bb,0x00070039,0x00000009,0x000000c1, + 0x0000000e,0x000000bc,0x000000be,0x000000c0,0x00050051,0x00000008,0x000000c3,0x000000c1, + 0x00000000,0x00050051,0x00000008,0x000000c4,0x000000b8,0x00000000,0x00050051,0x00000008, + 0x000000c5,0x000000b8,0x00000001,0x00060050,0x00000010,0x000000c6,0x000000c4,0x000000c5, + 0x000000c3,0x000200fe,0x000000c6,0x00010038,0x00050036,0x00000010,0x0000001a,0x00000000, + 0x00000018,0x00030037,0x00000017,0x00000019,0x000200f8,0x0000001b,0x0004003b,0x0000002a, + 0x000000c9,0x00000007,0x0004003b,0x0000002a,0x000000cf,0x00000007,0x00050041,0x0000002a, + 0x000000ca,0x00000019,0x000000c2,0x0004003d,0x00000008,0x000000cb,0x000000ca,0x0007000c, + 0x00000008,0x000000cd,0x00000001,0x00000028,0x000000cb,0x000000cc,0x0006000c,0x00000008, + 0x000000ce,0x00000001,0x0000001f,0x000000cd,0x0003003e,0x000000c9,0x000000ce,0x00050041, + 0x0000002a,0x000000d1,0x00000019,0x000000ba,0x0004003d,0x00000008,0x000000d2,0x000000d1, + 0x00050085,0x00000008,0x000000d3,0x000000d0,0x000000d2,0x0003003e,0x000000cf,0x000000d3, + 0x0004003d,0x00000008,0x000000d4,0x000000c9,0x0004003d,0x00000008,0x000000d5,0x000000cf, + 0x0006000c,0x00000008,0x000000d6,0x00000001,0x0000000e,0x000000d5,0x00050085,0x00000008, + 0x000000d7,0x000000d4,0x000000d6,0x0004003d,0x00000008,0x000000d8,0x000000c9,0x0004003d, + 0x00000008,0x000000d9,0x000000cf,0x0006000c,0x00000008,0x000000da,0x00000001,0x0000000d, + 0x000000d9,0x00050085,0x00000008,0x000000db,0x000000d8,0x000000da,0x00050041,0x0000002a, + 0x000000dd,0x00000019,0x000000c2,0x0004003d,0x00000008,0x000000de,0x000000dd,0x00050083, + 0x00000008,0x000000df,0x000000dc,0x000000de,0x0007000c,0x00000008,0x000000e0,0x00000001, + 0x00000028,0x000000df,0x000000cc,0x0006000c,0x00000008,0x000000e1,0x00000001,0x0000001f, + 0x000000e0,0x00060050,0x00000010,0x000000e2,0x000000d7,0x000000db,0x000000e1,0x000200fe, + 0x000000e2,0x00010038,0x00050036,0x00000010,0x0000001d,0x00000000,0x0000001c,0x000200f8, + 0x0000001e,0x00050041,0x000000ea,0x000000eb,0x000000e8,0x000000e9,0x0004003d,0x00000030, + 0x000000ec,0x000000eb,0x0008004f,0x00000010,0x000000ed,0x000000ec,0x000000ec,0x00000001, + 0x00000002,0x00000003,0x0006000c,0x00000010,0x000000ee,0x00000001,0x00000045,0x000000ed, + 0x000200fe,0x000000ee,0x00010038,0x00050036,0x00000010,0x00000022,0x00000000,0x00000020, + 0x00030037,0x0000001f,0x00000021,0x000200f8,0x00000023,0x0004003b,0x0000002a,0x000000fa, + 0x00000007,0x0004003b,0x0000002a,0x00000100,0x00000007,0x0004003b,0x0000002a,0x00000104, + 0x00000007,0x0004003b,0x0000001f,0x00000107,0x00000007,0x0004003b,0x0000002a,0x0000010a, + 0x00000007,0x0004003b,0x0000001f,0x0000010c,0x00000007,0x0004003b,0x0000002a,0x00000114, + 0x00000007,0x0004003b,0x0000002a,0x00000128,0x00000007,0x0004003b,0x0000002a,0x0000013d, + 0x00000007,0x0004003b,0x0000002a,0x00000150,0x00000007,0x0004003b,0x0000002a,0x00000164, + 0x00000007,0x0004003b,0x0000002a,0x0000017a,0x00000007,0x0004003b,0x0000002a,0x0000018d, + 0x00000007,0x00060041,0x000000f3,0x000000f4,0x000000e8,0x000000f1,0x000000f2,0x0004003d, + 0x00000008,0x000000f5,0x000000f4,0x000500ba,0x0000005d,0x000000f7,0x000000f5,0x000000f6, + 0x000300f7,0x000000f9,0x00000000,0x000400fa,0x000000f7,0x000000f8,0x000000f9,0x000200f8, + 0x000000f8,0x00060041,0x000000f3,0x000000fc,0x000000e8,0x000000fb,0x000000c2,0x0004003d, + 0x00000008,0x000000fd,0x000000fc,0x0007000c,0x00000008,0x000000ff,0x00000001,0x00000028, + 0x000000fd,0x000000fe,0x0003003e,0x000000fa,0x000000ff,0x00060041,0x000000f3,0x00000102, + 0x000000e8,0x00000101,0x000000f2,0x0004003d,0x00000008,0x00000103,0x00000102,0x0003003e, + 0x00000100,0x00000103,0x00060041,0x000000f3,0x00000105,0x000000e8,0x00000095,0x000000f2, + 0x0004003d,0x00000008,0x00000106,0x00000105,0x0003003e,0x00000104,0x00000106,0x0004003d, + 0x00000010,0x00000108,0x00000021,0x0006000c,0x00000010,0x00000109,0x00000001,0x00000045, + 0x00000108,0x0003003e,0x00000107,0x00000109,0x0003003e,0x0000010a,0x0000010b,0x0003003e, + 0x0000010c,0x0000010d,0x00050041,0x0000002a,0x0000010e,0x00000107,0x000000c2,0x0004003d, + 0x00000008,0x0000010f,0x0000010e,0x000500ba,0x0000005d,0x00000111,0x0000010f,0x00000110, + 0x000300f7,0x00000113,0x00000000,0x000400fa,0x00000111,0x00000112,0x00000113,0x000200f8, + 0x00000112,0x0004003d,0x00000008,0x00000115,0x000000fa,0x00050041,0x0000002a,0x00000116, + 0x00000107,0x000000c2,0x0004003d,0x00000008,0x00000117,0x00000116,0x00050088,0x00000008, + 0x00000118,0x00000115,0x00000117,0x0003003e,0x00000114,0x00000118,0x0004003d,0x00000008, + 0x00000119,0x00000114,0x0004003d,0x00000008,0x0000011a,0x0000010a,0x000500b8,0x0000005d, + 0x0000011b,0x00000119,0x0000011a,0x000300f7,0x0000011d,0x00000000,0x000400fa,0x0000011b, + 0x0000011c,0x0000011d,0x000200f8,0x0000011c,0x0004003d,0x00000008,0x0000011e,0x00000114, + 0x0003003e,0x0000010a,0x0000011e,0x00050041,0x000000ea,0x0000011f,0x000000e8,0x000000f1, + 0x0004003d,0x00000030,0x00000120,0x0000011f,0x0008004f,0x00000010,0x00000121,0x00000120, + 0x00000120,0x00000000,0x00000001,0x00000002,0x0003003e,0x0000010c,0x00000121,0x000200f9, + 0x0000011d,0x000200f8,0x0000011d,0x000200f9,0x00000113,0x000200f8,0x00000113,0x00050041, + 0x0000002a,0x00000122,0x00000107,0x000000c2,0x0004003d,0x00000008,0x00000123,0x00000122, + 0x000500b8,0x0000005d,0x00000125,0x00000123,0x00000124,0x000300f7,0x00000127,0x00000000, + 0x000400fa,0x00000125,0x00000126,0x00000127,0x000200f8,0x00000126,0x0004003d,0x00000008, + 0x00000129,0x000000fa,0x0004007f,0x00000008,0x0000012a,0x00000129,0x00050041,0x0000002a, + 0x0000012b,0x00000107,0x000000c2,0x0004003d,0x00000008,0x0000012c,0x0000012b,0x00050088, + 0x00000008,0x0000012d,0x0000012a,0x0000012c,0x0003003e,0x00000128,0x0000012d,0x0004003d, + 0x00000008,0x0000012e,0x00000128,0x0004003d,0x00000008,0x0000012f,0x0000010a,0x000500b8, + 0x0000005d,0x00000130,0x0000012e,0x0000012f,0x000300f7,0x00000132,0x00000000,0x000400fa, + 0x00000130,0x00000131,0x00000132,0x000200f8,0x00000131,0x0004003d,0x00000008,0x00000133, + 0x00000128,0x0003003e,0x0000010a,0x00000133,0x00050041,0x000000ea,0x00000134,0x000000e8, + 0x000000f1,0x0004003d,0x00000030,0x00000135,0x00000134,0x0008004f,0x00000010,0x00000136, + 0x00000135,0x00000135,0x00000000,0x00000001,0x00000002,0x0003003e,0x0000010c,0x00000136, + 0x000200f9,0x00000132,0x000200f8,0x00000132,0x000200f9,0x00000127,0x000200f8,0x00000127, + 0x00050041,0x0000002a,0x00000138,0x00000107,0x00000137,0x0004003d,0x00000008,0x00000139, + 0x00000138,0x000500ba,0x0000005d,0x0000013a,0x00000139,0x00000110,0x000300f7,0x0000013c, + 0x00000000,0x000400fa,0x0000013a,0x0000013b,0x0000013c,0x000200f8,0x0000013b,0x0004003d, + 0x00000008,0x0000013e,0x000000fa,0x00050041,0x0000002a,0x0000013f,0x00000107,0x00000137, + 0x0004003d,0x00000008,0x00000140,0x0000013f,0x00050088,0x00000008,0x00000141,0x0000013e, + 0x00000140,0x0003003e,0x0000013d,0x00000141,0x0004003d,0x00000008,0x00000142,0x0000013d, + 0x0004003d,0x00000008,0x00000143,0x0000010a,0x000500b8,0x0000005d,0x00000144,0x00000142, + 0x00000143,0x000300f7,0x00000146,0x00000000,0x000400fa,0x00000144,0x00000145,0x00000146, + 0x000200f8,0x00000145,0x0004003d,0x00000008,0x00000147,0x0000013d,0x0003003e,0x0000010a, + 0x00000147,0x00050041,0x000000ea,0x00000148,0x000000e8,0x000000f1,0x0004003d,0x00000030, + 0x00000149,0x00000148,0x0008004f,0x00000010,0x0000014a,0x00000149,0x00000149,0x00000000, + 0x00000001,0x00000002,0x0003003e,0x0000010c,0x0000014a,0x000200f9,0x00000146,0x000200f8, + 0x00000146,0x000200f9,0x0000013c,0x000200f8,0x0000013c,0x00050041,0x0000002a,0x0000014b, + 0x00000107,0x00000137,0x0004003d,0x00000008,0x0000014c,0x0000014b,0x000500b8,0x0000005d, + 0x0000014d,0x0000014c,0x00000124,0x000300f7,0x0000014f,0x00000000,0x000400fa,0x0000014d, + 0x0000014e,0x0000014f,0x000200f8,0x0000014e,0x0004003d,0x00000008,0x00000151,0x000000fa, + 0x0004007f,0x00000008,0x00000152,0x00000151,0x00050041,0x0000002a,0x00000153,0x00000107, + 0x00000137,0x0004003d,0x00000008,0x00000154,0x00000153,0x00050088,0x00000008,0x00000155, + 0x00000152,0x00000154,0x0003003e,0x00000150,0x00000155,0x0004003d,0x00000008,0x00000156, + 0x00000150,0x0004003d,0x00000008,0x00000157,0x0000010a,0x000500b8,0x0000005d,0x00000158, + 0x00000156,0x00000157,0x000300f7,0x0000015a,0x00000000,0x000400fa,0x00000158,0x00000159, + 0x0000015a,0x000200f8,0x00000159,0x0004003d,0x00000008,0x0000015b,0x00000150,0x0003003e, + 0x0000010a,0x0000015b,0x00050041,0x000000ea,0x0000015c,0x000000e8,0x000000f1,0x0004003d, + 0x00000030,0x0000015d,0x0000015c,0x0008004f,0x00000010,0x0000015e,0x0000015d,0x0000015d, + 0x00000000,0x00000001,0x00000002,0x0003003e,0x0000010c,0x0000015e,0x000200f9,0x0000015a, + 0x000200f8,0x0000015a,0x000200f9,0x0000014f,0x000200f8,0x0000014f,0x00050041,0x0000002a, + 0x0000015f,0x00000107,0x000000ba,0x0004003d,0x00000008,0x00000160,0x0000015f,0x000500b8, + 0x0000005d,0x00000161,0x00000160,0x00000124,0x000300f7,0x00000163,0x00000000,0x000400fa, + 0x00000161,0x00000162,0x00000163,0x000200f8,0x00000162,0x0004003d,0x00000008,0x00000165, + 0x00000100,0x00050041,0x0000002a,0x00000166,0x00000107,0x000000ba,0x0004003d,0x00000008, + 0x00000167,0x00000166,0x00050088,0x00000008,0x00000168,0x00000165,0x00000167,0x0003003e, + 0x00000164,0x00000168,0x0004003d,0x00000008,0x00000169,0x00000164,0x000500be,0x0000005d, + 0x0000016a,0x00000169,0x000000cc,0x0004003d,0x00000008,0x0000016b,0x00000164,0x0004003d, + 0x00000008,0x0000016c,0x0000010a,0x000500b8,0x0000005d,0x0000016d,0x0000016b,0x0000016c, + 0x000500a7,0x0000005d,0x0000016e,0x0000016a,0x0000016d,0x000300f7,0x00000170,0x00000000, + 0x000400fa,0x0000016e,0x0000016f,0x00000170,0x000200f8,0x0000016f,0x0004003d,0x00000008, + 0x00000171,0x00000164,0x0003003e,0x0000010a,0x00000171,0x00050041,0x000000ea,0x00000172, + 0x000000e8,0x00000101,0x0004003d,0x00000030,0x00000173,0x00000172,0x0008004f,0x00000010, + 0x00000174,0x00000173,0x00000173,0x00000000,0x00000001,0x00000002,0x0003003e,0x0000010c, + 0x00000174,0x000200f9,0x00000170,0x000200f8,0x00000170,0x000200f9,0x00000163,0x000200f8, + 0x00000163,0x00050041,0x0000002a,0x00000175,0x00000107,0x000000ba,0x0004003d,0x00000008, + 0x00000176,0x00000175,0x000500ba,0x0000005d,0x00000177,0x00000176,0x00000110,0x000300f7, + 0x00000179,0x00000000,0x000400fa,0x00000177,0x00000178,0x00000179,0x000200f8,0x00000178, + 0x0004003d,0x00000008,0x0000017b,0x00000104,0x00050041,0x0000002a,0x0000017c,0x00000107, + 0x000000ba,0x0004003d,0x00000008,0x0000017d,0x0000017c,0x00050088,0x00000008,0x0000017e, + 0x0000017b,0x0000017d,0x0003003e,0x0000017a,0x0000017e,0x0004003d,0x00000008,0x0000017f, + 0x0000017a,0x000500be,0x0000005d,0x00000180,0x0000017f,0x000000cc,0x0004003d,0x00000008, + 0x00000181,0x0000017a,0x0004003d,0x00000008,0x00000182,0x0000010a,0x000500b8,0x0000005d, + 0x00000183,0x00000181,0x00000182,0x000500a7,0x0000005d,0x00000184,0x00000180,0x00000183, + 0x000300f7,0x00000186,0x00000000,0x000400fa,0x00000184,0x00000185,0x00000186,0x000200f8, + 0x00000185,0x0004003d,0x00000008,0x00000187,0x0000017a,0x0003003e,0x0000010a,0x00000187, + 0x00050041,0x000000ea,0x00000188,0x000000e8,0x00000095,0x0004003d,0x00000030,0x00000189, + 0x00000188,0x0008004f,0x00000010,0x0000018a,0x00000189,0x00000189,0x00000000,0x00000001, + 0x00000002,0x0003003e,0x0000010c,0x0000018a,0x000200f9,0x00000186,0x000200f8,0x00000186, + 0x000200f9,0x00000179,0x000200f8,0x00000179,0x0004003d,0x00000010,0x0000018b,0x0000010c, + 0x000200fe,0x0000018b,0x000200f8,0x000000f9,0x00050041,0x0000002a,0x0000018e,0x00000021, + 0x000000ba,0x0004003d,0x00000008,0x0000018f,0x0000018e,0x00050085,0x00000008,0x00000190, + 0x0000018f,0x000000f6,0x00050081,0x00000008,0x00000191,0x00000190,0x000000f6,0x0008000c, + 0x00000008,0x00000192,0x00000001,0x0000002b,0x00000191,0x000000cc,0x000000dc,0x0003003e, + 0x0000018d,0x00000192,0x00050041,0x000000ea,0x00000194,0x000000e8,0x00000193,0x0004003d, + 0x00000030,0x00000195,0x00000194,0x0008004f,0x00000010,0x00000196,0x00000195,0x00000195, + 0x00000000,0x00000001,0x00000002,0x00050041,0x000000ea,0x00000198,0x000000e8,0x00000197, + 0x0004003d,0x00000030,0x00000199,0x00000198,0x0008004f,0x00000010,0x0000019a,0x00000199, + 0x00000199,0x00000000,0x00000001,0x00000002,0x0004003d,0x00000008,0x0000019b,0x0000018d, + 0x00060050,0x00000010,0x0000019c,0x0000019b,0x0000019b,0x0000019b,0x0008000c,0x00000010, + 0x0000019d,0x00000001,0x0000002e,0x00000196,0x0000019a,0x0000019c,0x000200fe,0x0000019d, + 0x00010038,0x00050036,0x00000010,0x00000025,0x00000000,0x00000020,0x00030037,0x0000001f, + 0x00000024,0x000200f8,0x00000026,0x0004003b,0x0000001f,0x000001a0,0x00000007,0x0004003b, + 0x0000001f,0x000001a3,0x00000007,0x0004003b,0x0000001f,0x000001a4,0x00000007,0x0004003b, + 0x0000002a,0x000001aa,0x00000007,0x0004003b,0x0000001f,0x000001af,0x00000007,0x0004003d, + 0x00000010,0x000001a1,0x00000024,0x0006000c,0x00000010,0x000001a2,0x00000001,0x00000045, + 0x000001a1,0x0003003e,0x000001a0,0x000001a2,0x0004003d,0x00000010,0x000001a5,0x000001a0, + 0x0003003e,0x000001a4,0x000001a5,0x00050039,0x00000010,0x000001a6,0x00000022,0x000001a4, + 0x00060041,0x000000f3,0x000001a7,0x000000e8,0x000000e9,0x000000c2,0x0004003d,0x00000008, + 0x000001a8,0x000001a7,0x0005008e,0x00000010,0x000001a9,0x000001a6,0x000001a8,0x0003003e, + 0x000001a3,0x000001a9,0x0004003d,0x00000010,0x000001ab,0x000001a0,0x00040039,0x00000010, + 0x000001ac,0x0000001d,0x00050094,0x00000008,0x000001ad,0x000001ab,0x000001ac,0x0007000c, + 0x00000008,0x000001ae,0x00000001,0x00000028,0x000001ad,0x000000cc,0x0003003e,0x000001aa, + 0x000001ae,0x00050041,0x000000ea,0x000001b0,0x000000e8,0x0000009c,0x0004003d,0x00000030, + 0x000001b1,0x000001b0,0x0008004f,0x00000010,0x000001b2,0x000001b1,0x000001b1,0x00000000, + 0x00000001,0x00000002,0x0004003d,0x00000008,0x000001b3,0x000001aa,0x00060041,0x000000f3, + 0x000001b4,0x000000e8,0x0000009c,0x000000f2,0x0004003d,0x00000008,0x000001b5,0x000001b4, + 0x0007000c,0x00000008,0x000001b6,0x00000001,0x00000028,0x000001b5,0x000000dc,0x0007000c, + 0x00000008,0x000001b7,0x00000001,0x0000001a,0x000001b3,0x000001b6,0x0005008e,0x00000010, + 0x000001b8,0x000001b2,0x000001b7,0x0003003e,0x000001af,0x000001b8,0x0004003d,0x00000010, + 0x000001b9,0x000001a3,0x0004003d,0x00000010,0x000001ba,0x000001af,0x00060041,0x000000f3, + 0x000001bb,0x000000e8,0x000000e9,0x000000c2,0x0004003d,0x00000008,0x000001bc,0x000001bb, + 0x0005008e,0x00000010,0x000001bd,0x000001ba,0x000001bc,0x00050081,0x00000010,0x000001be, + 0x000001b9,0x000001bd,0x000200fe,0x000001be,0x00010038,0x00050036,0x00000010,0x00000028, + 0x00000000,0x00000020,0x00030037,0x0000001f,0x00000027,0x000200f8,0x00000029,0x0004003b, + 0x0000001f,0x000001c1,0x00000007,0x0004003b,0x0000001f,0x000001cc,0x00000007,0x0004003b, + 0x0000001f,0x000001d1,0x00000007,0x0004003b,0x0000002a,0x000001d5,0x00000007,0x0004003b, + 0x0000001f,0x000001d6,0x00000007,0x0004003b,0x000001d7,0x000001d8,0x00000007,0x0004003b, + 0x0000002a,0x000001e2,0x00000007,0x0004003b,0x0000002a,0x000001e9,0x00000007,0x0004003b, + 0x0000002a,0x000001f1,0x00000007,0x0004003b,0x0000001f,0x000001f8,0x00000007,0x0004003b, + 0x0000001f,0x0000020a,0x00000007,0x00050041,0x0000002a,0x000001c2,0x00000027,0x000000ba, + 0x0004003d,0x00000008,0x000001c3,0x000001c2,0x0006000c,0x00000008,0x000001c4,0x00000001, + 0x00000004,0x000001c3,0x000500b8,0x0000005d,0x000001c6,0x000001c4,0x000001c5,0x00060050, + 0x000001c9,0x000001ca,0x000001c6,0x000001c6,0x000001c6,0x000600a9,0x00000010,0x000001cb, + 0x000001ca,0x000001c7,0x000001c8,0x0003003e,0x000001c1,0x000001cb,0x0004003d,0x00000010, + 0x000001cd,0x000001c1,0x0004003d,0x00000010,0x000001ce,0x00000027,0x0007000c,0x00000010, + 0x000001cf,0x00000001,0x00000044,0x000001cd,0x000001ce,0x0006000c,0x00000010,0x000001d0, + 0x00000001,0x00000045,0x000001cf,0x0003003e,0x000001cc,0x000001d0,0x0004003d,0x00000010, + 0x000001d2,0x00000027,0x0004003d,0x00000010,0x000001d3,0x000001cc,0x0007000c,0x00000010, + 0x000001d4,0x00000001,0x00000044,0x000001d2,0x000001d3,0x0003003e,0x000001d1,0x000001d4, + 0x0003003e,0x000001d5,0x000000cc,0x0003003e,0x000001d6,0x0000010d,0x0003003e,0x000001d8, + 0x000001d9,0x000200f9,0x000001da,0x000200f8,0x000001da,0x000400f6,0x000001dc,0x000001dd, + 0x00000000,0x000200f9,0x000001de,0x000200f8,0x000001de,0x0004003d,0x0000005e,0x000001df, + 0x000001d8,0x000500b1,0x0000005d,0x000001e1,0x000001df,0x000001e0,0x000400fa,0x000001e1, + 0x000001db,0x000001dc,0x000200f8,0x000001db,0x0004003d,0x0000005e,0x000001e3,0x000001d8, + 0x0004006f,0x00000008,0x000001e4,0x000001e3,0x0004003d,0x00000008,0x000001e5,0x000001d5, + 0x00050081,0x00000008,0x000001e6,0x000001e4,0x000001e5,0x00050085,0x00000008,0x000001e8, + 0x000001e6,0x000001e7,0x0003003e,0x000001e2,0x000001e8,0x0004003d,0x0000005e,0x000001ea, + 0x000001d8,0x0004006f,0x00000008,0x000001eb,0x000001ea,0x00050081,0x00000008,0x000001ec, + 0x000001eb,0x000000f6,0x00050088,0x00000008,0x000001ee,0x000001ec,0x000001ed,0x0007000c, + 0x00000008,0x000001ef,0x00000001,0x00000028,0x000001ee,0x000000cc,0x0006000c,0x00000008, + 0x000001f0,0x00000001,0x0000001f,0x000001ef,0x0003003e,0x000001e9,0x000001f0,0x0004003d, + 0x00000008,0x000001f2,0x000001e9,0x0004003d,0x00000008,0x000001f3,0x000001e9,0x00050085, + 0x00000008,0x000001f4,0x000001f2,0x000001f3,0x00050083,0x00000008,0x000001f5,0x000000dc, + 0x000001f4,0x0007000c,0x00000008,0x000001f6,0x00000001,0x00000028,0x000001f5,0x000000cc, + 0x0006000c,0x00000008,0x000001f7,0x00000001,0x0000001f,0x000001f6,0x0003003e,0x000001f1, + 0x000001f7,0x0004003d,0x00000010,0x000001f9,0x000001cc,0x0004003d,0x00000008,0x000001fa, + 0x000001e2,0x0006000c,0x00000008,0x000001fb,0x00000001,0x0000000e,0x000001fa,0x0004003d, + 0x00000008,0x000001fc,0x000001f1,0x00050085,0x00000008,0x000001fd,0x000001fb,0x000001fc, + 0x0005008e,0x00000010,0x000001fe,0x000001f9,0x000001fd,0x0004003d,0x00000010,0x000001ff, + 0x000001d1,0x0004003d,0x00000008,0x00000200,0x000001e2,0x0006000c,0x00000008,0x00000201, + 0x00000001,0x0000000d,0x00000200,0x0004003d,0x00000008,0x00000202,0x000001f1,0x00050085, + 0x00000008,0x00000203,0x00000201,0x00000202,0x0005008e,0x00000010,0x00000204,0x000001ff, + 0x00000203,0x00050081,0x00000010,0x00000205,0x000001fe,0x00000204,0x0004003d,0x00000010, + 0x00000206,0x00000027,0x0004003d,0x00000008,0x00000207,0x000001e9,0x0005008e,0x00000010, + 0x00000208,0x00000206,0x00000207,0x00050081,0x00000010,0x00000209,0x00000205,0x00000208, + 0x0003003e,0x000001f8,0x00000209,0x0004003d,0x00000010,0x0000020b,0x000001f8,0x0003003e, + 0x0000020a,0x0000020b,0x00050039,0x00000010,0x0000020c,0x00000022,0x0000020a,0x0004003d, + 0x00000010,0x0000020d,0x000001d6,0x00050081,0x00000010,0x0000020e,0x0000020d,0x0000020c, + 0x0003003e,0x000001d6,0x0000020e,0x000200f9,0x000001dd,0x000200f8,0x000001dd,0x0004003d, + 0x0000005e,0x0000020f,0x000001d8,0x00050080,0x0000005e,0x00000211,0x0000020f,0x00000210, + 0x0003003e,0x000001d8,0x00000211,0x000200f9,0x000001da,0x000200f8,0x000001dc,0x0004003d, + 0x00000010,0x00000212,0x000001d6,0x00060050,0x00000010,0x00000213,0x000001ed,0x000001ed, + 0x000001ed,0x00050088,0x00000010,0x00000214,0x00000212,0x00000213,0x0005008e,0x00000010, + 0x00000216,0x00000214,0x00000215,0x00060041,0x000000f3,0x00000217,0x000000e8,0x000000e9, + 0x000000c2,0x0004003d,0x00000008,0x00000218,0x00000217,0x0005008e,0x00000010,0x00000219, + 0x00000216,0x00000218,0x000200fe,0x00000219,0x00010038,0x00050036,0x00000010,0x0000002e, + 0x00000000,0x0000002b,0x00030037,0x0000001f,0x0000002c,0x00030037,0x0000002a,0x0000002d, + 0x000200f8,0x0000002f,0x0004003b,0x0000001f,0x0000021c,0x00000007,0x0004003b,0x0000002a, + 0x0000021f,0x00000007,0x0004003b,0x0000001f,0x00000222,0x00000007,0x0004003b,0x0000001f, + 0x00000223,0x00000007,0x0004003b,0x0000002a,0x00000226,0x00000007,0x0004003d,0x00000010, + 0x0000021d,0x0000002c,0x0006000c,0x00000010,0x0000021e,0x00000001,0x00000045,0x0000021d, + 0x0003003e,0x0000021c,0x0000021e,0x0004003d,0x00000008,0x00000220,0x0000002d,0x0008000c, + 0x00000008,0x00000221,0x00000001,0x0000002b,0x00000220,0x000000cc,0x000000dc,0x0003003e, + 0x0000021f,0x00000221,0x0004003d,0x00000010,0x00000224,0x0000021c,0x0003003e,0x00000223, + 0x00000224,0x00050039,0x00000010,0x00000225,0x00000025,0x00000223,0x0003003e,0x00000222, + 0x00000225,0x0004003d,0x00000010,0x00000227,0x0000021c,0x00040039,0x00000010,0x00000228, + 0x0000001d,0x00050094,0x00000008,0x00000229,0x00000227,0x00000228,0x0007000c,0x00000008, + 0x0000022a,0x00000001,0x00000028,0x00000229,0x000000cc,0x0003003e,0x00000226,0x0000022a, + 0x0004003d,0x00000008,0x0000022d,0x00000226,0x00050085,0x00000008,0x0000022e,0x0000022c, + 0x0000022d,0x00050081,0x00000008,0x0000022f,0x0000022b,0x0000022e,0x0004003d,0x00000008, + 0x00000230,0x0000021f,0x0008000c,0x00000008,0x00000231,0x00000001,0x0000002e,0x000000dc, + 0x0000022f,0x00000230,0x0004003d,0x00000010,0x00000232,0x00000222,0x0005008e,0x00000010, + 0x00000233,0x00000232,0x00000231,0x0003003e,0x00000222,0x00000233,0x0004003d,0x00000010, + 0x00000234,0x00000222,0x000200fe,0x00000234,0x00010038,0x00050036,0x00000008,0x00000037, + 0x00000000,0x00000035,0x00030037,0x00000034,0x00000036,0x000200f8,0x00000038,0x00060041, + 0x0000002a,0x00000237,0x00000036,0x000000e9,0x000000ba,0x0004003d,0x00000008,0x00000238, + 0x00000237,0x00060041,0x0000002a,0x00000239,0x00000036,0x000000e9,0x000000ba,0x0004003d, + 0x00000008,0x0000023a,0x00000239,0x00050085,0x00000008,0x0000023b,0x00000238,0x0000023a, + 0x0008000c,0x00000008,0x0000023d,0x00000001,0x0000002b,0x0000023b,0x0000023c,0x000000dc, + 0x000200fe,0x0000023d,0x00010038,0x00050036,0x00000010,0x0000003b,0x00000000,0x00000039, + 0x00030037,0x00000034,0x0000003a,0x000200f8,0x0000003c,0x00050041,0x00000242,0x00000243, + 0x0000003a,0x000001d9,0x0004003d,0x00000030,0x00000244,0x00000243,0x0008004f,0x00000010, + 0x00000245,0x00000244,0x00000244,0x00000000,0x00000001,0x00000002,0x00060041,0x0000002a, + 0x00000246,0x0000003a,0x000000e9,0x000000c2,0x0004003d,0x00000008,0x00000247,0x00000246, + 0x0008000c,0x00000008,0x00000248,0x00000001,0x0000002b,0x00000247,0x000000cc,0x000000dc, + 0x00060050,0x00000010,0x00000249,0x00000248,0x00000248,0x00000248,0x0008000c,0x00000010, + 0x0000024a,0x00000001,0x0000002e,0x00000241,0x00000245,0x00000249,0x000200fe,0x0000024a, + 0x00010038,0x00050036,0x00000008,0x00000040,0x00000000,0x0000003d,0x00030037,0x0000002a, + 0x0000003e,0x00030037,0x0000002a,0x0000003f,0x000200f8,0x00000041,0x0004003b,0x0000002a, + 0x0000024d,0x00000007,0x0004003b,0x0000002a,0x00000251,0x00000007,0x0004003d,0x00000008, + 0x0000024e,0x0000003f,0x0004003d,0x00000008,0x0000024f,0x0000003f,0x00050085,0x00000008, + 0x00000250,0x0000024e,0x0000024f,0x0003003e,0x0000024d,0x00000250,0x0004003d,0x00000008, + 0x00000252,0x0000003e,0x0004003d,0x00000008,0x00000253,0x0000003e,0x00050085,0x00000008, + 0x00000254,0x00000252,0x00000253,0x0004003d,0x00000008,0x00000255,0x0000024d,0x00050083, + 0x00000008,0x00000256,0x00000255,0x000000dc,0x00050085,0x00000008,0x00000257,0x00000254, + 0x00000256,0x00050081,0x00000008,0x00000258,0x00000257,0x000000dc,0x0003003e,0x00000251, + 0x00000258,0x0004003d,0x00000008,0x00000259,0x0000024d,0x0004003d,0x00000008,0x0000025a, + 0x00000251,0x00050085,0x00000008,0x0000025b,0x00000215,0x0000025a,0x0004003d,0x00000008, + 0x0000025c,0x00000251,0x00050085,0x00000008,0x0000025d,0x0000025b,0x0000025c,0x0007000c, + 0x00000008,0x0000025f,0x00000001,0x00000028,0x0000025d,0x0000025e,0x00050088,0x00000008, + 0x00000260,0x00000259,0x0000025f,0x000200fe,0x00000260,0x00010038,0x00050036,0x00000008, + 0x00000044,0x00000000,0x0000003d,0x00030037,0x0000002a,0x00000042,0x00030037,0x0000002a, + 0x00000043,0x000200f8,0x00000045,0x0004003b,0x0000002a,0x00000263,0x00000007,0x0004003d, + 0x00000008,0x00000264,0x00000043,0x00050085,0x00000008,0x00000265,0x00000264,0x000000f6, + 0x0003003e,0x00000263,0x00000265,0x0004003d,0x00000008,0x00000266,0x00000042,0x0004003d, + 0x00000008,0x00000267,0x00000042,0x0004003d,0x00000008,0x00000268,0x00000263,0x00050083, + 0x00000008,0x00000269,0x000000dc,0x00000268,0x00050085,0x00000008,0x0000026a,0x00000267, + 0x00000269,0x0004003d,0x00000008,0x0000026b,0x00000263,0x00050081,0x00000008,0x0000026c, + 0x0000026a,0x0000026b,0x0007000c,0x00000008,0x0000026d,0x00000001,0x00000028,0x0000026c, + 0x0000025e,0x00050088,0x00000008,0x0000026e,0x00000266,0x0000026d,0x000200fe,0x0000026e, + 0x00010038,0x00050036,0x00000008,0x0000004a,0x00000000,0x00000046,0x00030037,0x0000002a, + 0x00000047,0x00030037,0x0000002a,0x00000048,0x00030037,0x0000002a,0x00000049,0x000200f8, + 0x0000004b,0x0004003b,0x0000002a,0x00000271,0x00000007,0x0004003b,0x0000002a,0x00000273, + 0x00000007,0x0004003b,0x0000002a,0x00000276,0x00000007,0x0004003b,0x0000002a,0x00000278, + 0x00000007,0x0004003d,0x00000008,0x00000272,0x00000047,0x0003003e,0x00000271,0x00000272, + 0x0004003d,0x00000008,0x00000274,0x00000049,0x0003003e,0x00000273,0x00000274,0x00060039, + 0x00000008,0x00000275,0x00000044,0x00000271,0x00000273,0x0004003d,0x00000008,0x00000277, + 0x00000048,0x0003003e,0x00000276,0x00000277,0x0004003d,0x00000008,0x00000279,0x00000049, + 0x0003003e,0x00000278,0x00000279,0x00060039,0x00000008,0x0000027a,0x00000044,0x00000276, + 0x00000278,0x00050085,0x00000008,0x0000027b,0x00000275,0x0000027a,0x000200fe,0x0000027b, + 0x00010038,0x00050036,0x00000010,0x0000004f,0x00000000,0x0000004c,0x00030037,0x0000002a, + 0x0000004d,0x00030037,0x0000001f,0x0000004e,0x000200f8,0x00000050,0x0004003d,0x00000010, + 0x0000027e,0x0000004e,0x0004003d,0x00000010,0x00000280,0x0000004e,0x00050083,0x00000010, + 0x00000281,0x0000027f,0x00000280,0x0004003d,0x00000008,0x00000282,0x0000004d,0x00050083, + 0x00000008,0x00000283,0x000000dc,0x00000282,0x0008000c,0x00000008,0x00000284,0x00000001, + 0x0000002b,0x00000283,0x000000cc,0x000000dc,0x0007000c,0x00000008,0x00000286,0x00000001, + 0x0000001a,0x00000284,0x00000285,0x0005008e,0x00000010,0x00000287,0x00000281,0x00000286, + 0x00050081,0x00000010,0x00000288,0x0000027e,0x00000287,0x000200fe,0x00000288,0x00010038, + 0x00050036,0x00000010,0x00000056,0x00000000,0x00000051,0x00030037,0x0000001f,0x00000052, + 0x00030037,0x0000001f,0x00000053,0x00030037,0x0000001f,0x00000054,0x00030037,0x00000034, + 0x00000055,0x000200f8,0x00000057,0x0004003b,0x0000001f,0x0000028b,0x00000007,0x0004003b, + 0x0000002a,0x00000290,0x00000007,0x0004003b,0x0000002a,0x00000296,0x00000007,0x0004003b, + 0x0000002a,0x0000029b,0x00000007,0x0004003b,0x0000002a,0x000002a0,0x00000007,0x0004003b, + 0x0000002a,0x000002a5,0x00000007,0x0004003b,0x00000034,0x000002a6,0x00000007,0x0004003b, + 0x0000001f,0x000002a9,0x00000007,0x0004003b,0x00000034,0x000002aa,0x00000007,0x0004003b, + 0x0000002a,0x000002ad,0x00000007,0x0004003b,0x0000001f,0x000002af,0x00000007,0x0004003b, + 0x0000001f,0x000002b1,0x00000007,0x0004003b,0x0000002a,0x000002c1,0x00000007,0x0004003b, + 0x0000002a,0x000002c3,0x00000007,0x0004003b,0x0000002a,0x000002c7,0x00000007,0x0004003b, + 0x0000002a,0x000002c9,0x00000007,0x0004003b,0x0000002a,0x000002cb,0x00000007,0x0004003d, + 0x00000010,0x0000028c,0x00000053,0x0004003d,0x00000010,0x0000028d,0x00000054,0x00050081, + 0x00000010,0x0000028e,0x0000028c,0x0000028d,0x0006000c,0x00000010,0x0000028f,0x00000001, + 0x00000045,0x0000028e,0x0003003e,0x0000028b,0x0000028f,0x0004003d,0x00000010,0x00000291, + 0x00000052,0x0004003d,0x00000010,0x00000292,0x00000053,0x00050094,0x00000008,0x00000293, + 0x00000291,0x00000292,0x0007000c,0x00000008,0x00000295,0x00000001,0x00000028,0x00000293, + 0x00000294,0x0003003e,0x00000290,0x00000295,0x0004003d,0x00000010,0x00000297,0x00000052, + 0x0004003d,0x00000010,0x00000298,0x00000054,0x00050094,0x00000008,0x00000299,0x00000297, + 0x00000298,0x0007000c,0x00000008,0x0000029a,0x00000001,0x00000028,0x00000299,0x000000cc, + 0x0003003e,0x00000296,0x0000029a,0x0004003d,0x00000010,0x0000029c,0x00000052,0x0004003d, + 0x00000010,0x0000029d,0x0000028b,0x00050094,0x00000008,0x0000029e,0x0000029c,0x0000029d, + 0x0007000c,0x00000008,0x0000029f,0x00000001,0x00000028,0x0000029e,0x000000cc,0x0003003e, + 0x0000029b,0x0000029f,0x0004003d,0x00000010,0x000002a1,0x00000053,0x0004003d,0x00000010, + 0x000002a2,0x0000028b,0x00050094,0x00000008,0x000002a3,0x000002a1,0x000002a2,0x0007000c, + 0x00000008,0x000002a4,0x00000001,0x00000028,0x000002a3,0x000000cc,0x0003003e,0x000002a0, + 0x000002a4,0x0004003d,0x00000033,0x000002a7,0x00000055,0x0003003e,0x000002a6,0x000002a7, + 0x00050039,0x00000008,0x000002a8,0x00000037,0x000002a6,0x0003003e,0x000002a5,0x000002a8, + 0x0004003d,0x00000033,0x000002ab,0x00000055,0x0003003e,0x000002aa,0x000002ab,0x00050039, + 0x00000010,0x000002ac,0x0000003b,0x000002aa,0x0004003d,0x00000008,0x000002ae,0x000002a0, + 0x0003003e,0x000002ad,0x000002ae,0x0003003e,0x000002af,0x000002ac,0x00060039,0x00000010, + 0x000002b0,0x0000004f,0x000002ad,0x000002af,0x0003003e,0x000002a9,0x000002b0,0x0004003d, + 0x00000010,0x000002b2,0x000002a9,0x00050083,0x00000010,0x000002b3,0x0000027f,0x000002b2, + 0x00060041,0x0000002a,0x000002b4,0x00000055,0x000000e9,0x000000c2,0x0004003d,0x00000008, + 0x000002b5,0x000002b4,0x0008000c,0x00000008,0x000002b6,0x00000001,0x0000002b,0x000002b5, + 0x000000cc,0x000000dc,0x00050083,0x00000008,0x000002b7,0x000000dc,0x000002b6,0x0005008e, + 0x00000010,0x000002b8,0x000002b3,0x000002b7,0x0003003e,0x000002b1,0x000002b8,0x0004003d, + 0x00000010,0x000002b9,0x000002b1,0x00050041,0x00000242,0x000002ba,0x00000055,0x000001d9, + 0x0004003d,0x00000030,0x000002bb,0x000002ba,0x0008004f,0x00000010,0x000002bc,0x000002bb, + 0x000002bb,0x00000000,0x00000001,0x00000002,0x00050085,0x00000010,0x000002bd,0x000002b9, + 0x000002bc,0x00060050,0x00000010,0x000002be,0x00000215,0x00000215,0x00000215,0x00050088, + 0x00000010,0x000002bf,0x000002bd,0x000002be,0x0004003d,0x00000010,0x000002c0,0x000002a9, + 0x0004003d,0x00000008,0x000002c2,0x0000029b,0x0003003e,0x000002c1,0x000002c2,0x0004003d, + 0x00000008,0x000002c4,0x000002a5,0x0003003e,0x000002c3,0x000002c4,0x00060039,0x00000008, + 0x000002c5,0x00000040,0x000002c1,0x000002c3,0x0005008e,0x00000010,0x000002c6,0x000002c0, + 0x000002c5,0x0004003d,0x00000008,0x000002c8,0x00000290,0x0003003e,0x000002c7,0x000002c8, + 0x0004003d,0x00000008,0x000002ca,0x00000296,0x0003003e,0x000002c9,0x000002ca,0x0004003d, + 0x00000008,0x000002cc,0x000002a5,0x0003003e,0x000002cb,0x000002cc,0x00070039,0x00000008, + 0x000002cd,0x0000004a,0x000002c7,0x000002c9,0x000002cb,0x0005008e,0x00000010,0x000002ce, + 0x000002c6,0x000002cd,0x0004003d,0x00000008,0x000002cf,0x00000290,0x00050085,0x00000008, + 0x000002d0,0x000001ed,0x000002cf,0x0004003d,0x00000008,0x000002d1,0x00000296,0x00050085, + 0x00000008,0x000002d2,0x000002d0,0x000002d1,0x0007000c,0x00000008,0x000002d3,0x00000001, + 0x00000028,0x000002d2,0x00000294,0x00060050,0x00000010,0x000002d4,0x000002d3,0x000002d3, + 0x000002d3,0x00050088,0x00000010,0x000002d5,0x000002ce,0x000002d4,0x00050081,0x00000010, + 0x000002d6,0x000002bf,0x000002d5,0x000200fe,0x000002d6,0x00010038,0x00050036,0x00000010, + 0x0000005b,0x00000000,0x00000058,0x00030037,0x00000017,0x00000059,0x00030037,0x0000002a, + 0x0000005a,0x000200f8,0x0000005c,0x0004003b,0x0000002a,0x000002d9,0x00000007,0x0004003b, + 0x0000002a,0x000002dd,0x00000007,0x0004003b,0x0000002a,0x000002ec,0x00000007,0x00050041, + 0x0000002a,0x000002da,0x00000059,0x000000ba,0x0004003d,0x00000008,0x000002db,0x000002da, + 0x00050085,0x00000008,0x000002dc,0x000000d0,0x000002db,0x0003003e,0x000002d9,0x000002dc, + 0x00050041,0x0000002a,0x000002de,0x00000059,0x000000c2,0x0004003d,0x00000008,0x000002df, + 0x000002de,0x00050083,0x00000008,0x000002e0,0x000000dc,0x000002df,0x0004003d,0x00000008, + 0x000002e1,0x0000005a,0x0004003d,0x00000008,0x000002e2,0x0000005a,0x00050085,0x00000008, + 0x000002e3,0x000002e1,0x000002e2,0x00050083,0x00000008,0x000002e4,0x000002e3,0x000000dc, + 0x00050041,0x0000002a,0x000002e5,0x00000059,0x000000c2,0x0004003d,0x00000008,0x000002e6, + 0x000002e5,0x00050085,0x00000008,0x000002e7,0x000002e4,0x000002e6,0x00050081,0x00000008, + 0x000002e8,0x000000dc,0x000002e7,0x00050088,0x00000008,0x000002e9,0x000002e0,0x000002e8, + 0x0007000c,0x00000008,0x000002ea,0x00000001,0x00000028,0x000002e9,0x000000cc,0x0006000c, + 0x00000008,0x000002eb,0x00000001,0x0000001f,0x000002ea,0x0003003e,0x000002dd,0x000002eb, + 0x0004003d,0x00000008,0x000002ed,0x000002dd,0x0004003d,0x00000008,0x000002ee,0x000002dd, + 0x00050085,0x00000008,0x000002ef,0x000002ed,0x000002ee,0x00050083,0x00000008,0x000002f0, + 0x000000dc,0x000002ef,0x0007000c,0x00000008,0x000002f1,0x00000001,0x00000028,0x000002f0, + 0x000000cc,0x0006000c,0x00000008,0x000002f2,0x00000001,0x0000001f,0x000002f1,0x0003003e, + 0x000002ec,0x000002f2,0x0004003d,0x00000008,0x000002f3,0x000002ec,0x0004003d,0x00000008, + 0x000002f4,0x000002d9,0x0006000c,0x00000008,0x000002f5,0x00000001,0x0000000e,0x000002f4, + 0x00050085,0x00000008,0x000002f6,0x000002f3,0x000002f5,0x0004003d,0x00000008,0x000002f7, + 0x000002ec,0x0004003d,0x00000008,0x000002f8,0x000002d9,0x0006000c,0x00000008,0x000002f9, + 0x00000001,0x0000000d,0x000002f8,0x00050085,0x00000008,0x000002fa,0x000002f7,0x000002f9, + 0x0004003d,0x00000008,0x000002fb,0x000002dd,0x00060050,0x00000010,0x000002fc,0x000002f6, + 0x000002fa,0x000002fb,0x000200fe,0x000002fc,0x00010038,0x00050036,0x0000005f,0x00000064, + 0x00000000,0x00000060,0x00030037,0x0000001f,0x00000061,0x00030037,0x0000001f,0x00000062, + 0x00030037,0x0000002a,0x00000063,0x000200f8,0x00000065,0x0004003b,0x00000310,0x00000311, + 0x00000007,0x0004003b,0x00000034,0x00000332,0x00000007,0x0004003b,0x00000007,0x000003c3, + 0x00000007,0x0004003b,0x00000007,0x000003c6,0x00000007,0x0004003b,0x0000001f,0x000003cc, + 0x00000007,0x0004003b,0x000003e1,0x000003e2,0x00000007,0x0004003b,0x0000001f,0x000003f4, + 0x00000007,0x0004003d,0x00000302,0x00000305,0x00000304,0x0004003d,0x00000010,0x00000307, + 0x00000061,0x0004003d,0x00000010,0x00000308,0x00000062,0x0004003d,0x00000008,0x00000309, + 0x00000063,0x00091179,0x00000301,0x00000305,0x000000ba,0x00000306,0x00000307,0x0000023c, + 0x00000308,0x00000309,0x000200f9,0x0000030a,0x000200f8,0x0000030a,0x000400f6,0x0000030c, + 0x0000030d,0x00000000,0x000200f9,0x0000030e,0x000200f8,0x0000030e,0x0004117d,0x0000005d, + 0x0000030f,0x00000301,0x000400fa,0x0000030f,0x0000030b,0x0000030c,0x000200f8,0x0000030b, + 0x000200f9,0x0000030d,0x000200f8,0x0000030d,0x000200f9,0x0000030a,0x000200f8,0x0000030c, + 0x0005117f,0x00000006,0x00000313,0x00000301,0x00000210,0x000500aa,0x0000005d,0x00000314, + 0x00000313,0x000000ba,0x00050041,0x00000315,0x00000316,0x00000311,0x000001d9,0x0003003e, + 0x00000316,0x00000314,0x00050041,0x0000002a,0x00000318,0x00000311,0x00000210,0x0003003e, + 0x00000318,0x00000317,0x00050041,0x0000001f,0x0000031a,0x00000311,0x00000319,0x0003003e, + 0x0000031a,0x0000010d,0x00050041,0x0000001f,0x0000031c,0x00000311,0x0000031b,0x0003003e, + 0x0000031c,0x0000010d,0x00050041,0x000001d7,0x0000031d,0x00000311,0x000001e0,0x0003003e, + 0x0000031d,0x000001d9,0x00050041,0x00000315,0x0000031e,0x00000311,0x000001d9,0x0004003d, + 0x0000005d,0x0000031f,0x0000031e,0x000400a8,0x0000005d,0x00000320,0x0000031f,0x000300f7, + 0x00000322,0x00000000,0x000400fa,0x00000320,0x00000321,0x00000322,0x000200f8,0x00000321, + 0x0004003d,0x0000005f,0x00000323,0x00000311,0x000200fe,0x00000323,0x000200f8,0x00000322, + 0x00051782,0x00000008,0x00000325,0x00000301,0x00000210,0x00050041,0x0000002a,0x00000326, + 0x00000311,0x00000210,0x0003003e,0x00000326,0x00000325,0x0004003d,0x00000010,0x00000327, + 0x00000061,0x0004003d,0x00000010,0x00000328,0x00000062,0x00050041,0x0000002a,0x00000329, + 0x00000311,0x00000210,0x0004003d,0x00000008,0x0000032a,0x00000329,0x0005008e,0x00000010, + 0x0000032b,0x00000328,0x0000032a,0x00050081,0x00000010,0x0000032c,0x00000327,0x0000032b, + 0x00050041,0x0000001f,0x0000032d,0x00000311,0x00000319,0x0003003e,0x0000032d,0x0000032c, + 0x00051783,0x0000005e,0x0000032e,0x00000301,0x00000210,0x00050041,0x000001d7,0x0000032f, + 0x00000311,0x000001e0,0x0003003e,0x0000032f,0x0000032e,0x00051787,0x0000005e,0x00000330, + 0x00000301,0x00000210,0x00050041,0x000001d7,0x00000331,0x00000311,0x00000197,0x0003003e, + 0x00000331,0x00000330,0x00050041,0x000001d7,0x0000033e,0x00000311,0x000001e0,0x0004003d, + 0x0000005e,0x0000033f,0x0000033e,0x00060041,0x00000340,0x00000341,0x0000033d,0x000001d9, + 0x0000033f,0x0004003d,0x00000339,0x00000342,0x00000341,0x00050051,0x00000030,0x00000343, + 0x00000342,0x00000000,0x00050041,0x00000242,0x00000344,0x00000332,0x000001d9,0x0003003e, + 0x00000344,0x00000343,0x00050051,0x00000030,0x00000345,0x00000342,0x00000001,0x00050041, + 0x00000242,0x00000346,0x00000332,0x00000210,0x0003003e,0x00000346,0x00000345,0x00050051, + 0x00000030,0x00000347,0x00000342,0x00000002,0x00050041,0x00000242,0x00000348,0x00000332, + 0x00000319,0x0003003e,0x00000348,0x00000347,0x00050051,0x00000030,0x00000349,0x00000342, + 0x00000003,0x00050041,0x00000242,0x0000034a,0x00000332,0x0000031b,0x0003003e,0x0000034a, + 0x00000349,0x00050051,0x00000030,0x0000034b,0x00000342,0x00000004,0x00050041,0x00000242, + 0x0000034c,0x00000332,0x000001e0,0x0003003e,0x0000034c,0x0000034b,0x00050051,0x00000333, + 0x0000034d,0x00000342,0x00000005,0x00050041,0x0000034e,0x0000034f,0x00000332,0x00000197, + 0x00050051,0x00000030,0x00000350,0x0000034d,0x00000000,0x00050041,0x00000242,0x00000351, + 0x0000034f,0x000001d9,0x0003003e,0x00000351,0x00000350,0x00050051,0x00000030,0x00000352, + 0x0000034d,0x00000001,0x00050041,0x00000242,0x00000353,0x0000034f,0x00000210,0x0003003e, + 0x00000353,0x00000352,0x00050051,0x00000030,0x00000354,0x0000034d,0x00000002,0x00050041, + 0x00000242,0x00000355,0x0000034f,0x00000319,0x0003003e,0x00000355,0x00000354,0x00050051, + 0x00000030,0x00000356,0x0000034d,0x00000003,0x00050041,0x00000242,0x00000357,0x0000034f, + 0x0000031b,0x0003003e,0x00000357,0x00000356,0x00050051,0x00000030,0x00000358,0x0000034d, + 0x00000004,0x00050041,0x00000242,0x00000359,0x0000034f,0x000001e0,0x0003003e,0x00000359, + 0x00000358,0x00050051,0x00000030,0x0000035a,0x0000034d,0x00000005,0x00050041,0x00000242, + 0x0000035b,0x0000034f,0x00000197,0x0003003e,0x0000035b,0x0000035a,0x00050051,0x00000030, + 0x0000035c,0x0000034d,0x00000006,0x00050041,0x00000242,0x0000035d,0x0000034f,0x00000193, + 0x0003003e,0x0000035d,0x0000035c,0x00050051,0x00000030,0x0000035e,0x0000034d,0x00000007, + 0x00050041,0x00000242,0x00000360,0x0000034f,0x0000035f,0x0003003e,0x00000360,0x0000035e, + 0x00050051,0x00000334,0x00000361,0x00000342,0x00000006,0x00050041,0x0000034e,0x00000362, + 0x00000332,0x00000193,0x00050051,0x00000030,0x00000363,0x00000361,0x00000000,0x00050041, + 0x00000242,0x00000364,0x00000362,0x000001d9,0x0003003e,0x00000364,0x00000363,0x00050051, + 0x00000030,0x00000365,0x00000361,0x00000001,0x00050041,0x00000242,0x00000366,0x00000362, + 0x00000210,0x0003003e,0x00000366,0x00000365,0x00050051,0x00000030,0x00000367,0x00000361, + 0x00000002,0x00050041,0x00000242,0x00000368,0x00000362,0x00000319,0x0003003e,0x00000368, + 0x00000367,0x00050051,0x00000030,0x00000369,0x00000361,0x00000003,0x00050041,0x00000242, + 0x0000036a,0x00000362,0x0000031b,0x0003003e,0x0000036a,0x00000369,0x00050051,0x00000030, + 0x0000036b,0x00000361,0x00000004,0x00050041,0x00000242,0x0000036c,0x00000362,0x000001e0, + 0x0003003e,0x0000036c,0x0000036b,0x00050051,0x00000030,0x0000036d,0x00000361,0x00000005, + 0x00050041,0x00000242,0x0000036e,0x00000362,0x00000197,0x0003003e,0x0000036e,0x0000036d, + 0x00050051,0x00000030,0x0000036f,0x00000361,0x00000006,0x00050041,0x00000242,0x00000370, + 0x00000362,0x00000193,0x0003003e,0x00000370,0x0000036f,0x00050051,0x00000030,0x00000371, + 0x00000361,0x00000007,0x00050041,0x00000242,0x00000372,0x00000362,0x0000035f,0x0003003e, + 0x00000372,0x00000371,0x00050051,0x00000335,0x00000373,0x00000342,0x00000007,0x00050041, + 0x0000034e,0x00000374,0x00000332,0x0000035f,0x00050051,0x00000030,0x00000375,0x00000373, + 0x00000000,0x00050041,0x00000242,0x00000376,0x00000374,0x000001d9,0x0003003e,0x00000376, + 0x00000375,0x00050051,0x00000030,0x00000377,0x00000373,0x00000001,0x00050041,0x00000242, + 0x00000378,0x00000374,0x00000210,0x0003003e,0x00000378,0x00000377,0x00050051,0x00000030, + 0x00000379,0x00000373,0x00000002,0x00050041,0x00000242,0x0000037a,0x00000374,0x00000319, + 0x0003003e,0x0000037a,0x00000379,0x00050051,0x00000030,0x0000037b,0x00000373,0x00000003, + 0x00050041,0x00000242,0x0000037c,0x00000374,0x0000031b,0x0003003e,0x0000037c,0x0000037b, + 0x00050051,0x00000030,0x0000037d,0x00000373,0x00000004,0x00050041,0x00000242,0x0000037e, + 0x00000374,0x000001e0,0x0003003e,0x0000037e,0x0000037d,0x00050051,0x00000030,0x0000037f, + 0x00000373,0x00000005,0x00050041,0x00000242,0x00000380,0x00000374,0x00000197,0x0003003e, + 0x00000380,0x0000037f,0x00050051,0x00000030,0x00000381,0x00000373,0x00000006,0x00050041, + 0x00000242,0x00000382,0x00000374,0x00000193,0x0003003e,0x00000382,0x00000381,0x00050051, + 0x00000030,0x00000383,0x00000373,0x00000007,0x00050041,0x00000242,0x00000384,0x00000374, + 0x0000035f,0x0003003e,0x00000384,0x00000383,0x00050051,0x00000336,0x00000385,0x00000342, + 0x00000008,0x00050041,0x0000034e,0x00000387,0x00000332,0x00000386,0x00050051,0x00000030, + 0x00000388,0x00000385,0x00000000,0x00050041,0x00000242,0x00000389,0x00000387,0x000001d9, + 0x0003003e,0x00000389,0x00000388,0x00050051,0x00000030,0x0000038a,0x00000385,0x00000001, + 0x00050041,0x00000242,0x0000038b,0x00000387,0x00000210,0x0003003e,0x0000038b,0x0000038a, + 0x00050051,0x00000030,0x0000038c,0x00000385,0x00000002,0x00050041,0x00000242,0x0000038d, + 0x00000387,0x00000319,0x0003003e,0x0000038d,0x0000038c,0x00050051,0x00000030,0x0000038e, + 0x00000385,0x00000003,0x00050041,0x00000242,0x0000038f,0x00000387,0x0000031b,0x0003003e, + 0x0000038f,0x0000038e,0x00050051,0x00000030,0x00000390,0x00000385,0x00000004,0x00050041, + 0x00000242,0x00000391,0x00000387,0x000001e0,0x0003003e,0x00000391,0x00000390,0x00050051, + 0x00000030,0x00000392,0x00000385,0x00000005,0x00050041,0x00000242,0x00000393,0x00000387, + 0x00000197,0x0003003e,0x00000393,0x00000392,0x00050051,0x00000030,0x00000394,0x00000385, + 0x00000006,0x00050041,0x00000242,0x00000395,0x00000387,0x00000193,0x0003003e,0x00000395, + 0x00000394,0x00050051,0x00000030,0x00000396,0x00000385,0x00000007,0x00050041,0x00000242, + 0x00000397,0x00000387,0x0000035f,0x0003003e,0x00000397,0x00000396,0x00050051,0x00000337, + 0x00000398,0x00000342,0x00000009,0x00050041,0x0000034e,0x0000039a,0x00000332,0x00000399, + 0x00050051,0x00000030,0x0000039b,0x00000398,0x00000000,0x00050041,0x00000242,0x0000039c, + 0x0000039a,0x000001d9,0x0003003e,0x0000039c,0x0000039b,0x00050051,0x00000030,0x0000039d, + 0x00000398,0x00000001,0x00050041,0x00000242,0x0000039e,0x0000039a,0x00000210,0x0003003e, + 0x0000039e,0x0000039d,0x00050051,0x00000030,0x0000039f,0x00000398,0x00000002,0x00050041, + 0x00000242,0x000003a0,0x0000039a,0x00000319,0x0003003e,0x000003a0,0x0000039f,0x00050051, + 0x00000030,0x000003a1,0x00000398,0x00000003,0x00050041,0x00000242,0x000003a2,0x0000039a, + 0x0000031b,0x0003003e,0x000003a2,0x000003a1,0x00050051,0x00000030,0x000003a3,0x00000398, + 0x00000004,0x00050041,0x00000242,0x000003a4,0x0000039a,0x000001e0,0x0003003e,0x000003a4, + 0x000003a3,0x00050051,0x00000030,0x000003a5,0x00000398,0x00000005,0x00050041,0x00000242, + 0x000003a6,0x0000039a,0x00000197,0x0003003e,0x000003a6,0x000003a5,0x00050051,0x00000030, + 0x000003a7,0x00000398,0x00000006,0x00050041,0x00000242,0x000003a8,0x0000039a,0x00000193, + 0x0003003e,0x000003a8,0x000003a7,0x00050051,0x00000030,0x000003a9,0x00000398,0x00000007, + 0x00050041,0x00000242,0x000003aa,0x0000039a,0x0000035f,0x0003003e,0x000003aa,0x000003a9, + 0x00050051,0x00000338,0x000003ab,0x00000342,0x0000000a,0x00050041,0x0000034e,0x000003ad, + 0x00000332,0x000003ac,0x00050051,0x00000030,0x000003ae,0x000003ab,0x00000000,0x00050041, + 0x00000242,0x000003af,0x000003ad,0x000001d9,0x0003003e,0x000003af,0x000003ae,0x00050051, + 0x00000030,0x000003b0,0x000003ab,0x00000001,0x00050041,0x00000242,0x000003b1,0x000003ad, + 0x00000210,0x0003003e,0x000003b1,0x000003b0,0x00050051,0x00000030,0x000003b2,0x000003ab, + 0x00000002,0x00050041,0x00000242,0x000003b3,0x000003ad,0x00000319,0x0003003e,0x000003b3, + 0x000003b2,0x00050051,0x00000030,0x000003b4,0x000003ab,0x00000003,0x00050041,0x00000242, + 0x000003b5,0x000003ad,0x0000031b,0x0003003e,0x000003b5,0x000003b4,0x00050051,0x00000030, + 0x000003b6,0x000003ab,0x00000004,0x00050041,0x00000242,0x000003b7,0x000003ad,0x000001e0, + 0x0003003e,0x000003b7,0x000003b6,0x00050051,0x00000030,0x000003b8,0x000003ab,0x00000005, + 0x00050041,0x00000242,0x000003b9,0x000003ad,0x00000197,0x0003003e,0x000003b9,0x000003b8, + 0x00050051,0x00000030,0x000003ba,0x000003ab,0x00000006,0x00050041,0x00000242,0x000003bb, + 0x000003ad,0x00000193,0x0003003e,0x000003bb,0x000003ba,0x00050051,0x00000030,0x000003bc, + 0x000003ab,0x00000007,0x00050041,0x00000242,0x000003bd,0x000003ad,0x0000035f,0x0003003e, + 0x000003bd,0x000003bc,0x00050051,0x00000030,0x000003be,0x00000342,0x0000000b,0x00050041, + 0x00000242,0x000003c0,0x00000332,0x000003bf,0x0003003e,0x000003c0,0x000003be,0x00050051, + 0x00000030,0x000003c1,0x00000342,0x0000000c,0x00050041,0x00000242,0x000003c2,0x00000332, + 0x000000e9,0x0003003e,0x000003c2,0x000003c1,0x00051787,0x0000005e,0x000003c4,0x00000301, + 0x00000210,0x0004007c,0x00000006,0x000003c5,0x000003c4,0x0003003e,0x000003c3,0x000003c5, + 0x00060041,0x0000002a,0x000003c7,0x00000332,0x000003bf,0x000000c2,0x0004003d,0x00000008, + 0x000003c8,0x000003c7,0x0004006d,0x00000006,0x000003c9,0x000003c8,0x0004003d,0x00000006, + 0x000003ca,0x000003c3,0x00050080,0x00000006,0x000003cb,0x000003c9,0x000003ca,0x0003003e, + 0x000003c6,0x000003cb,0x0004003d,0x00000006,0x000003d1,0x000003c6,0x00060041,0x000000ea, + 0x000003d2,0x000003d0,0x000001d9,0x000003d1,0x0004003d,0x00000030,0x000003d3,0x000003d2, + 0x0008004f,0x00000010,0x000003d4,0x000003d3,0x000003d3,0x00000000,0x00000001,0x00000002, + 0x0003003e,0x000003cc,0x000003d4,0x0004003d,0x00000010,0x000003d5,0x000003cc,0x0004003d, + 0x00000010,0x000003d6,0x000003cc,0x00050094,0x00000008,0x000003d7,0x000003d5,0x000003d6, + 0x000500b8,0x0000005d,0x000003d9,0x000003d7,0x000003d8,0x000300f7,0x000003db,0x00000000, + 0x000400fa,0x000003d9,0x000003da,0x000003db,0x000200f8,0x000003da,0x00050041,0x00000315, + 0x000003dd,0x00000311,0x000001d9,0x0003003e,0x000003dd,0x000003dc,0x0004003d,0x0000005f, + 0x000003de,0x00000311,0x000200fe,0x000003de,0x000200f8,0x000003db,0x0005178f,0x000003e0, + 0x000003e3,0x00000301,0x00000210,0x0003003e,0x000003e2,0x000003e3,0x0004003d,0x000003e0, + 0x000003e4,0x000003e2,0x00050051,0x00000010,0x000003e6,0x000003e4,0x00000000,0x00050051, + 0x00000010,0x000003e7,0x000003e4,0x00000001,0x00050051,0x00000010,0x000003e8,0x000003e4, + 0x00000002,0x00060050,0x000003e5,0x000003e9,0x000003e6,0x000003e7,0x000003e8,0x0006000c, + 0x000003e5,0x000003ea,0x00000001,0x00000022,0x000003e9,0x00040054,0x000003e5,0x000003eb, + 0x000003ea,0x00050051,0x00000010,0x000003ec,0x000003eb,0x00000000,0x00050051,0x00000010, + 0x000003ed,0x000003eb,0x00000001,0x00050051,0x00000010,0x000003ee,0x000003eb,0x00000002, + 0x00060050,0x000003e5,0x000003ef,0x000003ec,0x000003ed,0x000003ee,0x0004003d,0x00000010, + 0x000003f0,0x000003cc,0x00050091,0x00000010,0x000003f1,0x000003ef,0x000003f0,0x0006000c, + 0x00000010,0x000003f2,0x00000001,0x00000045,0x000003f1,0x00050041,0x0000001f,0x000003f3, + 0x00000311,0x0000031b,0x0003003e,0x000003f3,0x000003f2,0x0004003d,0x00000010,0x000003f5, + 0x00000061,0x00050041,0x0000001f,0x000003f6,0x00000311,0x00000319,0x0004003d,0x00000010, + 0x000003f7,0x000003f6,0x00050083,0x00000010,0x000003f8,0x000003f5,0x000003f7,0x0006000c, + 0x00000010,0x000003f9,0x00000001,0x00000045,0x000003f8,0x0003003e,0x000003f4,0x000003f9, + 0x00050041,0x0000001f,0x000003fa,0x00000311,0x0000031b,0x0004003d,0x00000010,0x000003fb, + 0x000003fa,0x0004003d,0x00000010,0x000003fc,0x000003f4,0x00050094,0x00000008,0x000003fd, + 0x000003fb,0x000003fc,0x000500b8,0x0000005d,0x000003fe,0x000003fd,0x000000cc,0x000300f7, + 0x00000400,0x00000000,0x000400fa,0x000003fe,0x000003ff,0x00000400,0x000200f8,0x000003ff, + 0x00050041,0x0000001f,0x00000401,0x00000311,0x0000031b,0x0004003d,0x00000010,0x00000402, + 0x00000401,0x0004007f,0x00000010,0x00000403,0x00000402,0x00050041,0x0000001f,0x00000404, + 0x00000311,0x0000031b,0x0003003e,0x00000404,0x00000403,0x000200f9,0x00000400,0x000200f8, + 0x00000400,0x0004003d,0x0000005f,0x00000405,0x00000311,0x000200fe,0x00000405,0x00010038, + 0x00050036,0x00000008,0x0000006a,0x00000000,0x00000066,0x00030037,0x0000001f,0x00000067, + 0x00030037,0x0000001f,0x00000068,0x00030037,0x0000002a,0x00000069,0x000200f8,0x0000006b, + 0x0004003b,0x0000002a,0x00000408,0x00000007,0x0004003b,0x0000001f,0x00000409,0x00000007, + 0x0004003b,0x0000002a,0x0000040b,0x00000007,0x0004003b,0x000001d7,0x0000040d,0x00000007, + 0x0004003b,0x00000034,0x00000425,0x00000007,0x0004003b,0x0000002a,0x000004a3,0x00000007, + 0x0004003b,0x0000002a,0x000004b6,0x00000007,0x0004003b,0x0000002a,0x000004b8,0x00000007, + 0x0003003e,0x00000408,0x000000dc,0x0004003d,0x00000010,0x0000040a,0x00000067,0x0003003e, + 0x00000409,0x0000040a,0x0004003d,0x00000008,0x0000040c,0x00000069,0x0003003e,0x0000040b, + 0x0000040c,0x0003003e,0x0000040d,0x000001d9,0x000200f9,0x0000040e,0x000200f8,0x0000040e, + 0x000400f6,0x00000410,0x00000411,0x00000000,0x000200f9,0x00000412,0x000200f8,0x00000412, + 0x0004003d,0x0000005e,0x00000413,0x0000040d,0x000500b1,0x0000005d,0x00000414,0x00000413, + 0x00000386,0x000400fa,0x00000414,0x0000040f,0x00000410,0x000200f8,0x0000040f,0x0004003d, + 0x00000302,0x00000416,0x00000304,0x0004003d,0x00000010,0x00000417,0x00000409,0x0004003d, + 0x00000010,0x00000418,0x00000068,0x0004003d,0x00000008,0x00000419,0x0000040b,0x00091179, + 0x00000415,0x00000416,0x000000ba,0x00000306,0x00000417,0x0000023c,0x00000418,0x00000419, + 0x000200f9,0x0000041a,0x000200f8,0x0000041a,0x000400f6,0x0000041c,0x0000041d,0x00000000, + 0x000200f9,0x0000041e,0x000200f8,0x0000041e,0x0004117d,0x0000005d,0x0000041f,0x00000415, + 0x000400fa,0x0000041f,0x0000041b,0x0000041c,0x000200f8,0x0000041b,0x000200f9,0x0000041d, + 0x000200f8,0x0000041d,0x000200f9,0x0000041a,0x000200f8,0x0000041c,0x0005117f,0x00000006, + 0x00000420,0x00000415,0x00000210,0x000500ab,0x0000005d,0x00000421,0x00000420,0x000000ba, + 0x000300f7,0x00000423,0x00000000,0x000400fa,0x00000421,0x00000422,0x00000423,0x000200f8, + 0x00000422,0x000200f9,0x00000410,0x000200f8,0x00000423,0x00051783,0x0000005e,0x00000426, + 0x00000415,0x00000210,0x00060041,0x00000340,0x00000427,0x0000033d,0x000001d9,0x00000426, + 0x0004003d,0x00000339,0x00000428,0x00000427,0x00050051,0x00000030,0x00000429,0x00000428, + 0x00000000,0x00050041,0x00000242,0x0000042a,0x00000425,0x000001d9,0x0003003e,0x0000042a, + 0x00000429,0x00050051,0x00000030,0x0000042b,0x00000428,0x00000001,0x00050041,0x00000242, + 0x0000042c,0x00000425,0x00000210,0x0003003e,0x0000042c,0x0000042b,0x00050051,0x00000030, + 0x0000042d,0x00000428,0x00000002,0x00050041,0x00000242,0x0000042e,0x00000425,0x00000319, + 0x0003003e,0x0000042e,0x0000042d,0x00050051,0x00000030,0x0000042f,0x00000428,0x00000003, + 0x00050041,0x00000242,0x00000430,0x00000425,0x0000031b,0x0003003e,0x00000430,0x0000042f, + 0x00050051,0x00000030,0x00000431,0x00000428,0x00000004,0x00050041,0x00000242,0x00000432, + 0x00000425,0x000001e0,0x0003003e,0x00000432,0x00000431,0x00050051,0x00000333,0x00000433, + 0x00000428,0x00000005,0x00050041,0x0000034e,0x00000434,0x00000425,0x00000197,0x00050051, + 0x00000030,0x00000435,0x00000433,0x00000000,0x00050041,0x00000242,0x00000436,0x00000434, + 0x000001d9,0x0003003e,0x00000436,0x00000435,0x00050051,0x00000030,0x00000437,0x00000433, + 0x00000001,0x00050041,0x00000242,0x00000438,0x00000434,0x00000210,0x0003003e,0x00000438, + 0x00000437,0x00050051,0x00000030,0x00000439,0x00000433,0x00000002,0x00050041,0x00000242, + 0x0000043a,0x00000434,0x00000319,0x0003003e,0x0000043a,0x00000439,0x00050051,0x00000030, + 0x0000043b,0x00000433,0x00000003,0x00050041,0x00000242,0x0000043c,0x00000434,0x0000031b, + 0x0003003e,0x0000043c,0x0000043b,0x00050051,0x00000030,0x0000043d,0x00000433,0x00000004, + 0x00050041,0x00000242,0x0000043e,0x00000434,0x000001e0,0x0003003e,0x0000043e,0x0000043d, + 0x00050051,0x00000030,0x0000043f,0x00000433,0x00000005,0x00050041,0x00000242,0x00000440, + 0x00000434,0x00000197,0x0003003e,0x00000440,0x0000043f,0x00050051,0x00000030,0x00000441, + 0x00000433,0x00000006,0x00050041,0x00000242,0x00000442,0x00000434,0x00000193,0x0003003e, + 0x00000442,0x00000441,0x00050051,0x00000030,0x00000443,0x00000433,0x00000007,0x00050041, + 0x00000242,0x00000444,0x00000434,0x0000035f,0x0003003e,0x00000444,0x00000443,0x00050051, + 0x00000334,0x00000445,0x00000428,0x00000006,0x00050041,0x0000034e,0x00000446,0x00000425, + 0x00000193,0x00050051,0x00000030,0x00000447,0x00000445,0x00000000,0x00050041,0x00000242, + 0x00000448,0x00000446,0x000001d9,0x0003003e,0x00000448,0x00000447,0x00050051,0x00000030, + 0x00000449,0x00000445,0x00000001,0x00050041,0x00000242,0x0000044a,0x00000446,0x00000210, + 0x0003003e,0x0000044a,0x00000449,0x00050051,0x00000030,0x0000044b,0x00000445,0x00000002, + 0x00050041,0x00000242,0x0000044c,0x00000446,0x00000319,0x0003003e,0x0000044c,0x0000044b, + 0x00050051,0x00000030,0x0000044d,0x00000445,0x00000003,0x00050041,0x00000242,0x0000044e, + 0x00000446,0x0000031b,0x0003003e,0x0000044e,0x0000044d,0x00050051,0x00000030,0x0000044f, + 0x00000445,0x00000004,0x00050041,0x00000242,0x00000450,0x00000446,0x000001e0,0x0003003e, + 0x00000450,0x0000044f,0x00050051,0x00000030,0x00000451,0x00000445,0x00000005,0x00050041, + 0x00000242,0x00000452,0x00000446,0x00000197,0x0003003e,0x00000452,0x00000451,0x00050051, + 0x00000030,0x00000453,0x00000445,0x00000006,0x00050041,0x00000242,0x00000454,0x00000446, + 0x00000193,0x0003003e,0x00000454,0x00000453,0x00050051,0x00000030,0x00000455,0x00000445, + 0x00000007,0x00050041,0x00000242,0x00000456,0x00000446,0x0000035f,0x0003003e,0x00000456, + 0x00000455,0x00050051,0x00000335,0x00000457,0x00000428,0x00000007,0x00050041,0x0000034e, + 0x00000458,0x00000425,0x0000035f,0x00050051,0x00000030,0x00000459,0x00000457,0x00000000, + 0x00050041,0x00000242,0x0000045a,0x00000458,0x000001d9,0x0003003e,0x0000045a,0x00000459, + 0x00050051,0x00000030,0x0000045b,0x00000457,0x00000001,0x00050041,0x00000242,0x0000045c, + 0x00000458,0x00000210,0x0003003e,0x0000045c,0x0000045b,0x00050051,0x00000030,0x0000045d, + 0x00000457,0x00000002,0x00050041,0x00000242,0x0000045e,0x00000458,0x00000319,0x0003003e, + 0x0000045e,0x0000045d,0x00050051,0x00000030,0x0000045f,0x00000457,0x00000003,0x00050041, + 0x00000242,0x00000460,0x00000458,0x0000031b,0x0003003e,0x00000460,0x0000045f,0x00050051, + 0x00000030,0x00000461,0x00000457,0x00000004,0x00050041,0x00000242,0x00000462,0x00000458, + 0x000001e0,0x0003003e,0x00000462,0x00000461,0x00050051,0x00000030,0x00000463,0x00000457, + 0x00000005,0x00050041,0x00000242,0x00000464,0x00000458,0x00000197,0x0003003e,0x00000464, + 0x00000463,0x00050051,0x00000030,0x00000465,0x00000457,0x00000006,0x00050041,0x00000242, + 0x00000466,0x00000458,0x00000193,0x0003003e,0x00000466,0x00000465,0x00050051,0x00000030, + 0x00000467,0x00000457,0x00000007,0x00050041,0x00000242,0x00000468,0x00000458,0x0000035f, + 0x0003003e,0x00000468,0x00000467,0x00050051,0x00000336,0x00000469,0x00000428,0x00000008, + 0x00050041,0x0000034e,0x0000046a,0x00000425,0x00000386,0x00050051,0x00000030,0x0000046b, + 0x00000469,0x00000000,0x00050041,0x00000242,0x0000046c,0x0000046a,0x000001d9,0x0003003e, + 0x0000046c,0x0000046b,0x00050051,0x00000030,0x0000046d,0x00000469,0x00000001,0x00050041, + 0x00000242,0x0000046e,0x0000046a,0x00000210,0x0003003e,0x0000046e,0x0000046d,0x00050051, + 0x00000030,0x0000046f,0x00000469,0x00000002,0x00050041,0x00000242,0x00000470,0x0000046a, + 0x00000319,0x0003003e,0x00000470,0x0000046f,0x00050051,0x00000030,0x00000471,0x00000469, + 0x00000003,0x00050041,0x00000242,0x00000472,0x0000046a,0x0000031b,0x0003003e,0x00000472, + 0x00000471,0x00050051,0x00000030,0x00000473,0x00000469,0x00000004,0x00050041,0x00000242, + 0x00000474,0x0000046a,0x000001e0,0x0003003e,0x00000474,0x00000473,0x00050051,0x00000030, + 0x00000475,0x00000469,0x00000005,0x00050041,0x00000242,0x00000476,0x0000046a,0x00000197, + 0x0003003e,0x00000476,0x00000475,0x00050051,0x00000030,0x00000477,0x00000469,0x00000006, + 0x00050041,0x00000242,0x00000478,0x0000046a,0x00000193,0x0003003e,0x00000478,0x00000477, + 0x00050051,0x00000030,0x00000479,0x00000469,0x00000007,0x00050041,0x00000242,0x0000047a, + 0x0000046a,0x0000035f,0x0003003e,0x0000047a,0x00000479,0x00050051,0x00000337,0x0000047b, + 0x00000428,0x00000009,0x00050041,0x0000034e,0x0000047c,0x00000425,0x00000399,0x00050051, + 0x00000030,0x0000047d,0x0000047b,0x00000000,0x00050041,0x00000242,0x0000047e,0x0000047c, + 0x000001d9,0x0003003e,0x0000047e,0x0000047d,0x00050051,0x00000030,0x0000047f,0x0000047b, + 0x00000001,0x00050041,0x00000242,0x00000480,0x0000047c,0x00000210,0x0003003e,0x00000480, + 0x0000047f,0x00050051,0x00000030,0x00000481,0x0000047b,0x00000002,0x00050041,0x00000242, + 0x00000482,0x0000047c,0x00000319,0x0003003e,0x00000482,0x00000481,0x00050051,0x00000030, + 0x00000483,0x0000047b,0x00000003,0x00050041,0x00000242,0x00000484,0x0000047c,0x0000031b, + 0x0003003e,0x00000484,0x00000483,0x00050051,0x00000030,0x00000485,0x0000047b,0x00000004, + 0x00050041,0x00000242,0x00000486,0x0000047c,0x000001e0,0x0003003e,0x00000486,0x00000485, + 0x00050051,0x00000030,0x00000487,0x0000047b,0x00000005,0x00050041,0x00000242,0x00000488, + 0x0000047c,0x00000197,0x0003003e,0x00000488,0x00000487,0x00050051,0x00000030,0x00000489, + 0x0000047b,0x00000006,0x00050041,0x00000242,0x0000048a,0x0000047c,0x00000193,0x0003003e, + 0x0000048a,0x00000489,0x00050051,0x00000030,0x0000048b,0x0000047b,0x00000007,0x00050041, + 0x00000242,0x0000048c,0x0000047c,0x0000035f,0x0003003e,0x0000048c,0x0000048b,0x00050051, + 0x00000338,0x0000048d,0x00000428,0x0000000a,0x00050041,0x0000034e,0x0000048e,0x00000425, + 0x000003ac,0x00050051,0x00000030,0x0000048f,0x0000048d,0x00000000,0x00050041,0x00000242, + 0x00000490,0x0000048e,0x000001d9,0x0003003e,0x00000490,0x0000048f,0x00050051,0x00000030, + 0x00000491,0x0000048d,0x00000001,0x00050041,0x00000242,0x00000492,0x0000048e,0x00000210, + 0x0003003e,0x00000492,0x00000491,0x00050051,0x00000030,0x00000493,0x0000048d,0x00000002, + 0x00050041,0x00000242,0x00000494,0x0000048e,0x00000319,0x0003003e,0x00000494,0x00000493, + 0x00050051,0x00000030,0x00000495,0x0000048d,0x00000003,0x00050041,0x00000242,0x00000496, + 0x0000048e,0x0000031b,0x0003003e,0x00000496,0x00000495,0x00050051,0x00000030,0x00000497, + 0x0000048d,0x00000004,0x00050041,0x00000242,0x00000498,0x0000048e,0x000001e0,0x0003003e, + 0x00000498,0x00000497,0x00050051,0x00000030,0x00000499,0x0000048d,0x00000005,0x00050041, + 0x00000242,0x0000049a,0x0000048e,0x00000197,0x0003003e,0x0000049a,0x00000499,0x00050051, + 0x00000030,0x0000049b,0x0000048d,0x00000006,0x00050041,0x00000242,0x0000049c,0x0000048e, + 0x00000193,0x0003003e,0x0000049c,0x0000049b,0x00050051,0x00000030,0x0000049d,0x0000048d, + 0x00000007,0x00050041,0x00000242,0x0000049e,0x0000048e,0x0000035f,0x0003003e,0x0000049e, + 0x0000049d,0x00050051,0x00000030,0x0000049f,0x00000428,0x0000000b,0x00050041,0x00000242, + 0x000004a0,0x00000425,0x000003bf,0x0003003e,0x000004a0,0x0000049f,0x00050051,0x00000030, + 0x000004a1,0x00000428,0x0000000c,0x00050041,0x00000242,0x000004a2,0x00000425,0x000000e9, + 0x0003003e,0x000004a2,0x000004a1,0x00060041,0x0000002a,0x000004a4,0x00000425,0x000001d9, + 0x000000f2,0x0004003d,0x00000008,0x000004a5,0x000004a4,0x0008000c,0x00000008,0x000004a6, + 0x00000001,0x0000002b,0x000004a5,0x000000cc,0x000000dc,0x0003003e,0x000004a3,0x000004a6, + 0x0004003d,0x00000008,0x000004a7,0x000004a3,0x000500be,0x0000005d,0x000004a8,0x000004a7, + 0x000000dc,0x000300f7,0x000004aa,0x00000000,0x000400fa,0x000004a8,0x000004a9,0x000004aa, + 0x000200f8,0x000004a9,0x000200fe,0x000000cc,0x000200f8,0x000004aa,0x0004003d,0x00000008, + 0x000004ac,0x000004a3,0x00050083,0x00000008,0x000004ad,0x000000dc,0x000004ac,0x0004003d, + 0x00000008,0x000004ae,0x00000408,0x00050085,0x00000008,0x000004af,0x000004ae,0x000004ad, + 0x0003003e,0x00000408,0x000004af,0x0004003d,0x00000008,0x000004b0,0x00000408,0x000500b8, + 0x0000005d,0x000004b2,0x000004b0,0x000004b1,0x000300f7,0x000004b4,0x00000000,0x000400fa, + 0x000004b2,0x000004b3,0x000004b4,0x000200f8,0x000004b3,0x000200fe,0x000000cc,0x000200f8, + 0x000004b4,0x00051782,0x00000008,0x000004b7,0x00000415,0x00000210,0x0003003e,0x000004b6, + 0x000004b7,0x0004003d,0x00000008,0x000004b9,0x000004b6,0x00050081,0x00000008,0x000004ba, + 0x000004b9,0x0000023c,0x0003003e,0x000004b8,0x000004ba,0x0004003d,0x00000010,0x000004bb, + 0x00000068,0x0004003d,0x00000008,0x000004bc,0x000004b8,0x0005008e,0x00000010,0x000004bd, + 0x000004bb,0x000004bc,0x0004003d,0x00000010,0x000004be,0x00000409,0x00050081,0x00000010, + 0x000004bf,0x000004be,0x000004bd,0x0003003e,0x00000409,0x000004bf,0x0004003d,0x00000008, + 0x000004c0,0x000004b8,0x0004003d,0x00000008,0x000004c1,0x0000040b,0x00050083,0x00000008, + 0x000004c2,0x000004c1,0x000004c0,0x0003003e,0x0000040b,0x000004c2,0x000200f9,0x00000411, + 0x000200f8,0x00000411,0x0004003d,0x0000005e,0x000004c3,0x0000040d,0x00050080,0x0000005e, + 0x000004c4,0x000004c3,0x00000210,0x0003003e,0x0000040d,0x000004c4,0x000200f9,0x0000040e, + 0x000200f8,0x00000410,0x0004003d,0x00000008,0x000004c5,0x00000408,0x000200fe,0x000004c5, + 0x00010038,0x00050036,0x00000008,0x00000070,0x00000000,0x0000006c,0x00030037,0x0000001f, + 0x0000006d,0x00030037,0x0000001f,0x0000006e,0x00030037,0x00000017,0x0000006f,0x000200f8, + 0x00000071,0x0004003b,0x0000001f,0x000004c8,0x00000007,0x0004003b,0x0000001f,0x000004cb, + 0x00000007,0x0004003b,0x0000001f,0x000004d2,0x00000007,0x0004003b,0x0000001f,0x000004d7, + 0x00000007,0x0004003b,0x0000002a,0x000004db,0x00000007,0x0004003b,0x0000001f,0x000004df, + 0x00000007,0x0004003b,0x0000002a,0x000004e4,0x00000007,0x0004003b,0x000001d7,0x000004e5, + 0x00000007,0x0004003b,0x0000002a,0x000004ed,0x00000007,0x0004003b,0x0000002a,0x000004f2, + 0x00000007,0x0004003b,0x0000002a,0x000004f5,0x00000007,0x0004003b,0x0000002a,0x000004fc, + 0x00000007,0x0004003b,0x0000001f,0x00000503,0x00000007,0x0004003b,0x0000001f,0x00000515, + 0x00000007,0x0004003b,0x0000001f,0x00000517,0x00000007,0x0004003b,0x0000002a,0x00000519, + 0x00000007,0x0004003d,0x00000010,0x000004c9,0x0000006e,0x0006000c,0x00000010,0x000004ca, + 0x00000001,0x00000045,0x000004c9,0x0003003e,0x000004c8,0x000004ca,0x00050041,0x0000002a, + 0x000004cc,0x000004c8,0x000000ba,0x0004003d,0x00000008,0x000004cd,0x000004cc,0x0006000c, + 0x00000008,0x000004ce,0x00000001,0x00000004,0x000004cd,0x000500b8,0x0000005d,0x000004cf, + 0x000004ce,0x000001c5,0x00060050,0x000001c9,0x000004d0,0x000004cf,0x000004cf,0x000004cf, + 0x000600a9,0x00000010,0x000004d1,0x000004d0,0x000001c7,0x000001c8,0x0003003e,0x000004cb, + 0x000004d1,0x0004003d,0x00000010,0x000004d3,0x000004cb,0x0004003d,0x00000010,0x000004d4, + 0x000004c8,0x0007000c,0x00000010,0x000004d5,0x00000001,0x00000044,0x000004d3,0x000004d4, + 0x0006000c,0x00000010,0x000004d6,0x00000001,0x00000045,0x000004d5,0x0003003e,0x000004d2, + 0x000004d6,0x0004003d,0x00000010,0x000004d8,0x000004c8,0x0004003d,0x00000010,0x000004d9, + 0x000004d2,0x0007000c,0x00000010,0x000004da,0x00000001,0x00000044,0x000004d8,0x000004d9, + 0x0003003e,0x000004d7,0x000004da,0x00050041,0x0000002a,0x000004dc,0x0000006f,0x000000c2, + 0x0004003d,0x00000008,0x000004dd,0x000004dc,0x00050085,0x00000008,0x000004de,0x000004dd, + 0x000000d0,0x0003003e,0x000004db,0x000004de,0x0004003d,0x00000010,0x000004e0,0x0000006d, + 0x0004003d,0x00000010,0x000004e1,0x000004c8,0x0005008e,0x00000010,0x000004e2,0x000004e1, + 0x0000023c,0x00050081,0x00000010,0x000004e3,0x000004e0,0x000004e2,0x0003003e,0x000004df, + 0x000004e3,0x0003003e,0x000004e4,0x000000cc,0x0003003e,0x000004e5,0x000001d9,0x000200f9, + 0x000004e6,0x000200f8,0x000004e6,0x000400f6,0x000004e8,0x000004e9,0x00000000,0x000200f9, + 0x000004ea,0x000200f8,0x000004ea,0x0004003d,0x0000005e,0x000004eb,0x000004e5,0x000500b1, + 0x0000005d,0x000004ec,0x000004eb,0x00000386,0x000400fa,0x000004ec,0x000004e7,0x000004e8, + 0x000200f8,0x000004e7,0x0004003d,0x0000005e,0x000004ee,0x000004e5,0x0004006f,0x00000008, + 0x000004ef,0x000004ee,0x0004003d,0x00000008,0x000004f0,0x000004db,0x00050081,0x00000008, + 0x000004f1,0x000004ef,0x000004f0,0x0003003e,0x000004ed,0x000004f1,0x0004003d,0x00000008, + 0x000004f3,0x000004ed,0x00050085,0x00000008,0x000004f4,0x000004f3,0x000001e7,0x0003003e, + 0x000004f2,0x000004f4,0x0004003d,0x0000005e,0x000004f6,0x000004e5,0x0004006f,0x00000008, + 0x000004f7,0x000004f6,0x00050081,0x00000008,0x000004f8,0x000004f7,0x000000f6,0x00050088, + 0x00000008,0x000004fa,0x000004f8,0x000004f9,0x00050083,0x00000008,0x000004fb,0x000000dc, + 0x000004fa,0x0003003e,0x000004f5,0x000004fb,0x0004003d,0x00000008,0x000004fd,0x000004f5, + 0x0004003d,0x00000008,0x000004fe,0x000004f5,0x00050085,0x00000008,0x000004ff,0x000004fd, + 0x000004fe,0x00050083,0x00000008,0x00000500,0x000000dc,0x000004ff,0x0007000c,0x00000008, + 0x00000501,0x00000001,0x00000028,0x00000500,0x000000cc,0x0006000c,0x00000008,0x00000502, + 0x00000001,0x0000001f,0x00000501,0x0003003e,0x000004fc,0x00000502,0x0004003d,0x00000010, + 0x00000504,0x000004d2,0x0004003d,0x00000008,0x00000505,0x000004f2,0x0006000c,0x00000008, + 0x00000506,0x00000001,0x0000000e,0x00000505,0x0004003d,0x00000008,0x00000507,0x000004fc, + 0x00050085,0x00000008,0x00000508,0x00000506,0x00000507,0x0005008e,0x00000010,0x00000509, + 0x00000504,0x00000508,0x0004003d,0x00000010,0x0000050a,0x000004d7,0x0004003d,0x00000008, + 0x0000050b,0x000004f2,0x0006000c,0x00000008,0x0000050c,0x00000001,0x0000000d,0x0000050b, + 0x0004003d,0x00000008,0x0000050d,0x000004fc,0x00050085,0x00000008,0x0000050e,0x0000050c, + 0x0000050d,0x0005008e,0x00000010,0x0000050f,0x0000050a,0x0000050e,0x00050081,0x00000010, + 0x00000510,0x00000509,0x0000050f,0x0004003d,0x00000010,0x00000511,0x000004c8,0x0004003d, + 0x00000008,0x00000512,0x000004f5,0x0005008e,0x00000010,0x00000513,0x00000511,0x00000512, + 0x00050081,0x00000010,0x00000514,0x00000510,0x00000513,0x0003003e,0x00000503,0x00000514, + 0x0004003d,0x00000010,0x00000516,0x000004df,0x0003003e,0x00000515,0x00000516,0x0004003d, + 0x00000010,0x00000518,0x00000503,0x0003003e,0x00000517,0x00000518,0x0003003e,0x00000519, + 0x0000010b,0x00070039,0x00000008,0x0000051a,0x0000006a,0x00000515,0x00000517,0x00000519, + 0x0004003d,0x00000008,0x0000051b,0x000004e4,0x00050081,0x00000008,0x0000051c,0x0000051b, + 0x0000051a,0x0003003e,0x000004e4,0x0000051c,0x000200f9,0x000004e9,0x000200f8,0x000004e9, + 0x0004003d,0x0000005e,0x0000051d,0x000004e5,0x00050080,0x0000005e,0x0000051e,0x0000051d, + 0x00000210,0x0003003e,0x000004e5,0x0000051e,0x000200f9,0x000004e6,0x000200f8,0x000004e8, + 0x0004003d,0x00000008,0x0000051f,0x000004e4,0x00050088,0x00000008,0x00000520,0x0000051f, + 0x000004f9,0x000200fe,0x00000520,0x00010038,0x00050036,0x00000010,0x00000076,0x00000000, + 0x00000051,0x00030037,0x0000001f,0x00000072,0x00030037,0x0000001f,0x00000073,0x00030037, + 0x0000001f,0x00000074,0x00030037,0x00000034,0x00000075,0x000200f8,0x00000077,0x0004003b, + 0x0000001f,0x00000523,0x00000007,0x0004003b,0x0000001f,0x00000526,0x00000007,0x0004003b, + 0x0000001f,0x0000053b,0x00000007,0x0004003b,0x000001d7,0x0000053f,0x00000007,0x0004003b, + 0x000001d7,0x00000543,0x00000007,0x0004003b,0x0000001f,0x00000551,0x00000007,0x0004003b, + 0x0000002a,0x00000556,0x00000007,0x0004003b,0x0000002a,0x00000557,0x00000007,0x0004003b, + 0x0000001f,0x0000055e,0x00000007,0x0004003b,0x0000002a,0x00000565,0x00000007,0x0004003b, + 0x0000001f,0x00000571,0x00000007,0x0004003b,0x0000001f,0x0000058d,0x00000007,0x0004003b, + 0x0000001f,0x00000593,0x00000007,0x0004003b,0x0000002a,0x0000059b,0x00000007,0x0004003b, + 0x0000001f,0x000005ad,0x00000007,0x0004003b,0x0000002a,0x000005b0,0x00000007,0x0004003b, + 0x0000001f,0x000005b5,0x00000007,0x0004003b,0x0000002a,0x000005ba,0x00000007,0x0004003b, + 0x0000002a,0x000005bf,0x00000007,0x0004003b,0x0000002a,0x000005c5,0x00000007,0x0004003b, + 0x0000002a,0x000005c8,0x00000007,0x0004003b,0x0000001f,0x000005d0,0x00000007,0x0004003b, + 0x0000001f,0x000005d4,0x00000007,0x0004003d,0x00000010,0x00000524,0x00000073,0x0006000c, + 0x00000010,0x00000525,0x00000001,0x00000045,0x00000524,0x0003003e,0x00000523,0x00000525, + 0x00050041,0x000000ea,0x00000527,0x000000e8,0x0000031b,0x0004003d,0x00000030,0x00000528, + 0x00000527,0x0008004f,0x00000010,0x00000529,0x00000528,0x00000528,0x00000000,0x00000001, + 0x00000002,0x0004003d,0x00000010,0x0000052a,0x00000072,0x00050083,0x00000010,0x0000052b, + 0x00000529,0x0000052a,0x0006000c,0x00000010,0x0000052c,0x00000001,0x00000045,0x0000052b, + 0x0003003e,0x00000526,0x0000052c,0x00060041,0x0000002a,0x0000052d,0x00000075,0x000001e0, + 0x000000ba,0x0004003d,0x00000008,0x0000052e,0x0000052d,0x000500ba,0x0000005d,0x0000052f, + 0x0000052e,0x000000f6,0x000300f7,0x00000531,0x00000000,0x000400fa,0x0000052f,0x00000530, + 0x00000531,0x000200f8,0x00000530,0x0004003d,0x00000010,0x00000532,0x00000523,0x0004003d, + 0x00000010,0x00000533,0x00000526,0x00050094,0x00000008,0x00000534,0x00000532,0x00000533, + 0x000500b8,0x0000005d,0x00000535,0x00000534,0x000000cc,0x000200f9,0x00000531,0x000200f8, + 0x00000531,0x000700f5,0x0000005d,0x00000536,0x0000052f,0x00000077,0x00000535,0x00000530, + 0x000300f7,0x00000538,0x00000000,0x000400fa,0x00000536,0x00000537,0x00000538,0x000200f8, + 0x00000537,0x0004003d,0x00000010,0x00000539,0x00000523,0x0004007f,0x00000010,0x0000053a, + 0x00000539,0x0003003e,0x00000523,0x0000053a,0x000200f9,0x00000538,0x000200f8,0x00000538, + 0x00050041,0x00000242,0x0000053c,0x00000075,0x00000210,0x0004003d,0x00000030,0x0000053d, + 0x0000053c,0x0008004f,0x00000010,0x0000053e,0x0000053d,0x0000053d,0x00000000,0x00000001, + 0x00000002,0x0003003e,0x0000053b,0x0000053e,0x00060041,0x0000002a,0x00000540,0x00000075, + 0x000001e0,0x00000137,0x0004003d,0x00000008,0x00000541,0x00000540,0x0004006e,0x0000005e, + 0x00000542,0x00000541,0x0003003e,0x0000053f,0x00000542,0x0003003e,0x00000543,0x000001d9, + 0x000200f9,0x00000544,0x000200f8,0x00000544,0x000400f6,0x00000546,0x00000547,0x00000000, + 0x000200f9,0x00000548,0x000200f8,0x00000548,0x0004003d,0x0000005e,0x00000549,0x00000543, + 0x000500b1,0x0000005d,0x0000054a,0x00000549,0x00000386,0x000400fa,0x0000054a,0x00000545, + 0x00000546,0x000200f8,0x00000545,0x0004003d,0x0000005e,0x0000054b,0x00000543,0x0004003d, + 0x0000005e,0x0000054c,0x0000053f,0x000500af,0x0000005d,0x0000054d,0x0000054b,0x0000054c, + 0x000300f7,0x0000054f,0x00000000,0x000400fa,0x0000054d,0x0000054e,0x0000054f,0x000200f8, + 0x0000054e,0x000200f9,0x00000546,0x000200f8,0x0000054f,0x0004003d,0x0000005e,0x00000552, + 0x00000543,0x00060041,0x00000242,0x00000553,0x00000075,0x0000035f,0x00000552,0x0004003d, + 0x00000030,0x00000554,0x00000553,0x0008004f,0x00000010,0x00000555,0x00000554,0x00000554, + 0x00000000,0x00000001,0x00000002,0x0003003e,0x00000551,0x00000555,0x0003003e,0x00000556, + 0x000000dc,0x0003003e,0x00000557,0x000000dc,0x0004003d,0x0000005e,0x00000558,0x00000543, + 0x00070041,0x0000002a,0x00000559,0x00000075,0x00000197,0x00000558,0x000000c2,0x0004003d, + 0x00000008,0x0000055a,0x00000559,0x000500ba,0x0000005d,0x0000055b,0x0000055a,0x000000f6, + 0x000300f7,0x0000055d,0x00000000,0x000400fa,0x0000055b,0x0000055c,0x0000055d,0x000200f8, + 0x0000055c,0x0004003d,0x0000005e,0x0000055f,0x00000543,0x00060041,0x00000242,0x00000560, + 0x00000075,0x00000386,0x0000055f,0x0004003d,0x00000030,0x00000561,0x00000560,0x0008004f, + 0x00000010,0x00000562,0x00000561,0x00000561,0x00000000,0x00000001,0x00000002,0x0004003d, + 0x00000010,0x00000563,0x00000072,0x00050083,0x00000010,0x00000564,0x00000562,0x00000563, + 0x0003003e,0x0000055e,0x00000564,0x0004003d,0x00000010,0x00000566,0x0000055e,0x0006000c, + 0x00000008,0x00000567,0x00000001,0x00000042,0x00000566,0x0003003e,0x00000565,0x00000567, + 0x0004003d,0x00000008,0x00000568,0x00000565,0x000500bc,0x0000005d,0x00000569,0x00000568, + 0x000004b1,0x000300f7,0x0000056b,0x00000000,0x000400fa,0x00000569,0x0000056a,0x0000056b, + 0x000200f8,0x0000056a,0x000200f9,0x00000547,0x000200f8,0x0000056b,0x0004003d,0x00000010, + 0x0000056d,0x0000055e,0x0004003d,0x00000008,0x0000056e,0x00000565,0x00060050,0x00000010, + 0x0000056f,0x0000056e,0x0000056e,0x0000056e,0x00050088,0x00000010,0x00000570,0x0000056d, + 0x0000056f,0x0003003e,0x00000551,0x00000570,0x0004003d,0x0000005e,0x00000572,0x00000543, + 0x00060041,0x00000242,0x00000573,0x00000075,0x00000399,0x00000572,0x0004003d,0x00000030, + 0x00000574,0x00000573,0x0008004f,0x00000010,0x00000575,0x00000574,0x00000574,0x00000000, + 0x00000001,0x00000002,0x0003003e,0x00000571,0x00000575,0x00050041,0x0000002a,0x00000576, + 0x00000571,0x00000137,0x0004003d,0x00000008,0x00000577,0x00000576,0x00050041,0x0000002a, + 0x00000578,0x00000571,0x000000ba,0x0004003d,0x00000008,0x00000579,0x00000578,0x0004003d, + 0x00000008,0x0000057a,0x00000565,0x00050085,0x00000008,0x0000057b,0x00000579,0x0000057a, + 0x00050081,0x00000008,0x0000057c,0x00000577,0x0000057b,0x00050041,0x0000002a,0x0000057d, + 0x00000571,0x000000c2,0x0004003d,0x00000008,0x0000057e,0x0000057d,0x0004003d,0x00000008, + 0x0000057f,0x00000565,0x00050085,0x00000008,0x00000580,0x0000057e,0x0000057f,0x0004003d, + 0x00000008,0x00000581,0x00000565,0x00050085,0x00000008,0x00000582,0x00000580,0x00000581, + 0x00050081,0x00000008,0x00000583,0x0000057c,0x00000582,0x0007000c,0x00000008,0x00000584, + 0x00000001,0x00000028,0x00000583,0x000004b1,0x00050088,0x00000008,0x00000585,0x000000dc, + 0x00000584,0x0003003e,0x00000556,0x00000585,0x0004003d,0x0000005e,0x00000586,0x00000543, + 0x00070041,0x0000002a,0x00000587,0x00000075,0x00000197,0x00000586,0x000000c2,0x0004003d, + 0x00000008,0x00000588,0x00000587,0x000500ba,0x0000005d,0x0000058a,0x00000588,0x00000589, + 0x000300f7,0x0000058c,0x00000000,0x000400fa,0x0000058a,0x0000058b,0x0000058c,0x000200f8, + 0x0000058b,0x0004003d,0x0000005e,0x0000058e,0x00000543,0x00060041,0x00000242,0x0000058f, + 0x00000075,0x0000035f,0x0000058e,0x0004003d,0x00000030,0x00000590,0x0000058f,0x0008004f, + 0x00000010,0x00000591,0x00000590,0x00000590,0x00000000,0x00000001,0x00000002,0x0006000c, + 0x00000010,0x00000592,0x00000001,0x00000045,0x00000591,0x0003003e,0x0000058d,0x00000592, + 0x0004003d,0x00000010,0x00000594,0x00000072,0x0004003d,0x0000005e,0x00000595,0x00000543, + 0x00060041,0x00000242,0x00000596,0x00000075,0x00000386,0x00000595,0x0004003d,0x00000030, + 0x00000597,0x00000596,0x0008004f,0x00000010,0x00000598,0x00000597,0x00000597,0x00000000, + 0x00000001,0x00000002,0x00050083,0x00000010,0x00000599,0x00000594,0x00000598,0x0006000c, + 0x00000010,0x0000059a,0x00000001,0x00000045,0x00000599,0x0003003e,0x00000593,0x0000059a, + 0x0004003d,0x00000010,0x0000059c,0x0000058d,0x0004003d,0x00000010,0x0000059d,0x00000593, + 0x00050094,0x00000008,0x0000059e,0x0000059c,0x0000059d,0x0003003e,0x0000059b,0x0000059e, + 0x0004003d,0x00000008,0x0000059f,0x0000059b,0x0004003d,0x0000005e,0x000005a0,0x00000543, + 0x00070041,0x0000002a,0x000005a1,0x00000075,0x000003ac,0x000005a0,0x000000c2,0x0004003d, + 0x00000008,0x000005a2,0x000005a1,0x000500b8,0x0000005d,0x000005a3,0x0000059f,0x000005a2, + 0x000300f7,0x000005a5,0x00000000,0x000400fa,0x000005a3,0x000005a4,0x000005a5,0x000200f8, + 0x000005a4,0x000200f9,0x00000547,0x000200f8,0x000005a5,0x0004003d,0x00000008,0x000005a7, + 0x0000059b,0x0007000c,0x00000008,0x000005a8,0x00000001,0x00000028,0x000005a7,0x000000cc, + 0x0004003d,0x0000005e,0x000005a9,0x00000543,0x00070041,0x0000002a,0x000005aa,0x00000075, + 0x000003ac,0x000005a9,0x000000ba,0x0004003d,0x00000008,0x000005ab,0x000005aa,0x0007000c, + 0x00000008,0x000005ac,0x00000001,0x0000001a,0x000005a8,0x000005ab,0x0003003e,0x00000557, + 0x000005ac,0x000200f9,0x0000058c,0x000200f8,0x0000058c,0x000200f9,0x0000055d,0x000200f8, + 0x0000055d,0x0004003d,0x00000010,0x000005ae,0x00000551,0x0006000c,0x00000010,0x000005af, + 0x00000001,0x00000045,0x000005ae,0x0003003e,0x000005ad,0x000005af,0x0004003d,0x00000010, + 0x000005b1,0x00000523,0x0004003d,0x00000010,0x000005b2,0x000005ad,0x00050094,0x00000008, + 0x000005b3,0x000005b1,0x000005b2,0x0007000c,0x00000008,0x000005b4,0x00000001,0x00000028, + 0x000005b3,0x000000cc,0x0003003e,0x000005b0,0x000005b4,0x0004003d,0x00000010,0x000005b6, + 0x000005ad,0x0004003d,0x00000010,0x000005b7,0x00000526,0x00050081,0x00000010,0x000005b8, + 0x000005b6,0x000005b7,0x0006000c,0x00000010,0x000005b9,0x00000001,0x00000045,0x000005b8, + 0x0003003e,0x000005b5,0x000005b9,0x0004003d,0x00000010,0x000005bb,0x00000523,0x0004003d, + 0x00000010,0x000005bc,0x000005b5,0x00050094,0x00000008,0x000005bd,0x000005bb,0x000005bc, + 0x0007000c,0x00000008,0x000005be,0x00000001,0x00000028,0x000005bd,0x000000cc,0x0003003e, + 0x000005ba,0x000005be,0x00060041,0x0000002a,0x000005c0,0x00000075,0x000001e0,0x000000c2, + 0x0004003d,0x00000008,0x000005c1,0x000005c0,0x00050085,0x00000008,0x000005c3,0x000005c1, + 0x000005c2,0x0007000c,0x00000008,0x000005c4,0x00000001,0x00000028,0x000005c3,0x000000cc, + 0x0003003e,0x000005bf,0x000005c4,0x0004003d,0x00000008,0x000005c6,0x000005bf,0x000500ba, + 0x0000005d,0x000005c7,0x000005c6,0x000000cc,0x000300f7,0x000005ca,0x00000000,0x000400fa, + 0x000005c7,0x000005c9,0x000005ce,0x000200f8,0x000005c9,0x0004003d,0x00000008,0x000005cb, + 0x000005ba,0x0004003d,0x00000008,0x000005cc,0x000005bf,0x0007000c,0x00000008,0x000005cd, + 0x00000001,0x0000001a,0x000005cb,0x000005cc,0x0003003e,0x000005c8,0x000005cd,0x000200f9, + 0x000005ca,0x000200f8,0x000005ce,0x0003003e,0x000005c8,0x000000cc,0x000200f9,0x000005ca, + 0x000200f8,0x000005ca,0x0004003d,0x00000008,0x000005cf,0x000005c8,0x0003003e,0x000005c5, + 0x000005cf,0x0004003d,0x00000010,0x000005d1,0x00000074,0x0004003d,0x00000008,0x000005d2, + 0x000005b0,0x0005008e,0x00000010,0x000005d3,0x000005d1,0x000005d2,0x0003003e,0x000005d0, + 0x000005d3,0x00050041,0x00000242,0x000005d5,0x00000075,0x00000319,0x0004003d,0x00000030, + 0x000005d6,0x000005d5,0x0008004f,0x00000010,0x000005d7,0x000005d6,0x000005d6,0x00000000, + 0x00000001,0x00000002,0x0004003d,0x00000008,0x000005d8,0x000005c5,0x0005008e,0x00000010, + 0x000005d9,0x000005d7,0x000005d8,0x0003003e,0x000005d4,0x000005d9,0x0004003d,0x0000005e, + 0x000005da,0x00000543,0x00060041,0x00000242,0x000005db,0x00000075,0x00000193,0x000005da, + 0x0004003d,0x00000030,0x000005dc,0x000005db,0x0008004f,0x00000010,0x000005dd,0x000005dc, + 0x000005dc,0x00000000,0x00000001,0x00000002,0x0004003d,0x00000008,0x000005de,0x00000556, + 0x0005008e,0x00000010,0x000005df,0x000005dd,0x000005de,0x0004003d,0x00000008,0x000005e0, + 0x00000557,0x0005008e,0x00000010,0x000005e1,0x000005df,0x000005e0,0x0004003d,0x00000010, + 0x000005e2,0x000005d0,0x0004003d,0x00000010,0x000005e3,0x000005d4,0x00050081,0x00000010, + 0x000005e4,0x000005e2,0x000005e3,0x00050085,0x00000010,0x000005e5,0x000005e1,0x000005e4, + 0x0004003d,0x00000010,0x000005e6,0x0000053b,0x00050081,0x00000010,0x000005e7,0x000005e6, + 0x000005e5,0x0003003e,0x0000053b,0x000005e7,0x000200f9,0x00000547,0x000200f8,0x00000547, + 0x0004003d,0x0000005e,0x000005e8,0x00000543,0x00050080,0x0000005e,0x000005e9,0x000005e8, + 0x00000210,0x0003003e,0x00000543,0x000005e9,0x000200f9,0x00000544,0x000200f8,0x00000546, + 0x0004003d,0x00000010,0x000005ea,0x0000053b,0x00050041,0x00000242,0x000005eb,0x00000075, + 0x0000031b,0x0004003d,0x00000030,0x000005ec,0x000005eb,0x0008004f,0x00000010,0x000005ed, + 0x000005ec,0x000005ec,0x00000000,0x00000001,0x00000002,0x00050081,0x00000010,0x000005ee, + 0x000005ea,0x000005ed,0x00060050,0x00000010,0x000005ef,0x000000cc,0x000000cc,0x000000cc, + 0x00060050,0x00000010,0x000005f0,0x000000dc,0x000000dc,0x000000dc,0x0008000c,0x00000010, + 0x000005f1,0x00000001,0x0000002b,0x000005ee,0x000005ef,0x000005f0,0x000200fe,0x000005f1, + 0x00010038,0x00050036,0x00000010,0x0000007c,0x00000000,0x00000051,0x00030037,0x0000001f, + 0x00000078,0x00030037,0x0000001f,0x00000079,0x00030037,0x0000001f,0x0000007a,0x00030037, + 0x00000034,0x0000007b,0x000200f8,0x0000007d,0x0004003b,0x0000001f,0x000005f4,0x00000007, + 0x0004003b,0x0000001f,0x000005f7,0x00000007,0x0004003b,0x0000001f,0x000005fe,0x00000007, + 0x0004003b,0x000001d7,0x00000602,0x00000007,0x0004003b,0x000001d7,0x00000606,0x00000007, + 0x0004003b,0x0000002a,0x00000614,0x00000007,0x0004003b,0x0000002a,0x00000615,0x00000007, + 0x0004003b,0x0000002a,0x00000616,0x00000007,0x0004003b,0x0000001f,0x0000061d,0x00000007, + 0x0004003b,0x0000001f,0x0000062b,0x00000007,0x0004003b,0x0000001f,0x00000630,0x00000007, + 0x0004003b,0x0000001f,0x0000064b,0x00000007,0x0004003b,0x0000001f,0x00000651,0x00000007, + 0x0004003b,0x0000002a,0x00000659,0x00000007,0x0004003b,0x0000002a,0x00000672,0x00000007, + 0x0004003b,0x0000002a,0x0000067b,0x00000007,0x0004003b,0x0000001f,0x00000682,0x00000007, + 0x0004003b,0x0000001f,0x00000683,0x00000007,0x0004003b,0x0000002a,0x00000685,0x00000007, + 0x0004003b,0x0000001f,0x00000691,0x00000007,0x0004003b,0x0000001f,0x00000694,0x00000007, + 0x0004003b,0x0000001f,0x00000696,0x00000007,0x0004003b,0x0000001f,0x00000698,0x00000007, + 0x0004003b,0x00000034,0x00000699,0x00000007,0x0004003b,0x0000001f,0x0000069f,0x00000007, + 0x0004003b,0x0000002a,0x000006a5,0x00000007,0x0004003b,0x0000002a,0x000006aa,0x00000007, + 0x0004003b,0x0000002a,0x000006af,0x00000007,0x0004003b,0x0000002a,0x000006b2,0x00000007, + 0x0004003d,0x00000010,0x000005f5,0x00000079,0x0006000c,0x00000010,0x000005f6,0x00000001, + 0x00000045,0x000005f5,0x0003003e,0x000005f4,0x000005f6,0x00050041,0x000000ea,0x000005f8, + 0x000000e8,0x0000031b,0x0004003d,0x00000030,0x000005f9,0x000005f8,0x0008004f,0x00000010, + 0x000005fa,0x000005f9,0x000005f9,0x00000000,0x00000001,0x00000002,0x0004003d,0x00000010, + 0x000005fb,0x00000078,0x00050083,0x00000010,0x000005fc,0x000005fa,0x000005fb,0x0006000c, + 0x00000010,0x000005fd,0x00000001,0x00000045,0x000005fc,0x0003003e,0x000005f7,0x000005fd, + 0x00050041,0x00000242,0x000005ff,0x0000007b,0x00000210,0x0004003d,0x00000030,0x00000600, + 0x000005ff,0x0008004f,0x00000010,0x00000601,0x00000600,0x00000600,0x00000000,0x00000001, + 0x00000002,0x0003003e,0x000005fe,0x00000601,0x00060041,0x0000002a,0x00000603,0x0000007b, + 0x000001e0,0x00000137,0x0004003d,0x00000008,0x00000604,0x00000603,0x0004006e,0x0000005e, + 0x00000605,0x00000604,0x0003003e,0x00000602,0x00000605,0x0003003e,0x00000606,0x000001d9, + 0x000200f9,0x00000607,0x000200f8,0x00000607,0x000400f6,0x00000609,0x0000060a,0x00000000, + 0x000200f9,0x0000060b,0x000200f8,0x0000060b,0x0004003d,0x0000005e,0x0000060c,0x00000606, + 0x000500b1,0x0000005d,0x0000060d,0x0000060c,0x00000386,0x000400fa,0x0000060d,0x00000608, + 0x00000609,0x000200f8,0x00000608,0x0004003d,0x0000005e,0x0000060e,0x00000606,0x0004003d, + 0x0000005e,0x0000060f,0x00000602,0x000500af,0x0000005d,0x00000610,0x0000060e,0x0000060f, + 0x000300f7,0x00000612,0x00000000,0x000400fa,0x00000610,0x00000611,0x00000612,0x000200f8, + 0x00000611,0x000200f9,0x00000609,0x000200f8,0x00000612,0x0003003e,0x00000614,0x000000dc, + 0x0003003e,0x00000615,0x000000dc,0x0003003e,0x00000616,0x0000010b,0x0004003d,0x0000005e, + 0x00000617,0x00000606,0x00070041,0x0000002a,0x00000618,0x0000007b,0x00000197,0x00000617, + 0x000000c2,0x0004003d,0x00000008,0x00000619,0x00000618,0x000500ba,0x0000005d,0x0000061a, + 0x00000619,0x000000f6,0x000300f7,0x0000061c,0x00000000,0x000400fa,0x0000061a,0x0000061b, + 0x0000066b,0x000200f8,0x0000061b,0x0004003d,0x0000005e,0x0000061e,0x00000606,0x00060041, + 0x00000242,0x0000061f,0x0000007b,0x00000386,0x0000061e,0x0004003d,0x00000030,0x00000620, + 0x0000061f,0x0008004f,0x00000010,0x00000621,0x00000620,0x00000620,0x00000000,0x00000001, + 0x00000002,0x0004003d,0x00000010,0x00000622,0x00000078,0x00050083,0x00000010,0x00000623, + 0x00000621,0x00000622,0x0003003e,0x0000061d,0x00000623,0x0004003d,0x00000010,0x00000624, + 0x0000061d,0x0006000c,0x00000008,0x00000625,0x00000001,0x00000042,0x00000624,0x0003003e, + 0x00000616,0x00000625,0x0004003d,0x00000008,0x00000626,0x00000616,0x000500bc,0x0000005d, + 0x00000627,0x00000626,0x000004b1,0x000300f7,0x00000629,0x00000000,0x000400fa,0x00000627, + 0x00000628,0x00000629,0x000200f8,0x00000628,0x000200f9,0x0000060a,0x000200f8,0x00000629, + 0x0004003d,0x00000010,0x0000062c,0x0000061d,0x0004003d,0x00000008,0x0000062d,0x00000616, + 0x00060050,0x00000010,0x0000062e,0x0000062d,0x0000062d,0x0000062d,0x00050088,0x00000010, + 0x0000062f,0x0000062c,0x0000062e,0x0003003e,0x0000062b,0x0000062f,0x0004003d,0x0000005e, + 0x00000631,0x00000606,0x00060041,0x00000242,0x00000632,0x0000007b,0x00000399,0x00000631, + 0x0004003d,0x00000030,0x00000633,0x00000632,0x0008004f,0x00000010,0x00000634,0x00000633, + 0x00000633,0x00000000,0x00000001,0x00000002,0x0003003e,0x00000630,0x00000634,0x00050041, + 0x0000002a,0x00000635,0x00000630,0x00000137,0x0004003d,0x00000008,0x00000636,0x00000635, + 0x00050041,0x0000002a,0x00000637,0x00000630,0x000000ba,0x0004003d,0x00000008,0x00000638, + 0x00000637,0x0004003d,0x00000008,0x00000639,0x00000616,0x00050085,0x00000008,0x0000063a, + 0x00000638,0x00000639,0x00050081,0x00000008,0x0000063b,0x00000636,0x0000063a,0x00050041, + 0x0000002a,0x0000063c,0x00000630,0x000000c2,0x0004003d,0x00000008,0x0000063d,0x0000063c, + 0x0004003d,0x00000008,0x0000063e,0x00000616,0x00050085,0x00000008,0x0000063f,0x0000063d, + 0x0000063e,0x0004003d,0x00000008,0x00000640,0x00000616,0x00050085,0x00000008,0x00000641, + 0x0000063f,0x00000640,0x00050081,0x00000008,0x00000642,0x0000063b,0x00000641,0x0007000c, + 0x00000008,0x00000643,0x00000001,0x00000028,0x00000642,0x000004b1,0x00050088,0x00000008, + 0x00000644,0x000000dc,0x00000643,0x0003003e,0x00000614,0x00000644,0x0004003d,0x0000005e, + 0x00000645,0x00000606,0x00070041,0x0000002a,0x00000646,0x0000007b,0x00000197,0x00000645, + 0x000000c2,0x0004003d,0x00000008,0x00000647,0x00000646,0x000500ba,0x0000005d,0x00000648, + 0x00000647,0x00000589,0x000300f7,0x0000064a,0x00000000,0x000400fa,0x00000648,0x00000649, + 0x0000064a,0x000200f8,0x00000649,0x0004003d,0x0000005e,0x0000064c,0x00000606,0x00060041, + 0x00000242,0x0000064d,0x0000007b,0x0000035f,0x0000064c,0x0004003d,0x00000030,0x0000064e, + 0x0000064d,0x0008004f,0x00000010,0x0000064f,0x0000064e,0x0000064e,0x00000000,0x00000001, + 0x00000002,0x0006000c,0x00000010,0x00000650,0x00000001,0x00000045,0x0000064f,0x0003003e, + 0x0000064b,0x00000650,0x0004003d,0x00000010,0x00000652,0x00000078,0x0004003d,0x0000005e, + 0x00000653,0x00000606,0x00060041,0x00000242,0x00000654,0x0000007b,0x00000386,0x00000653, + 0x0004003d,0x00000030,0x00000655,0x00000654,0x0008004f,0x00000010,0x00000656,0x00000655, + 0x00000655,0x00000000,0x00000001,0x00000002,0x00050083,0x00000010,0x00000657,0x00000652, + 0x00000656,0x0006000c,0x00000010,0x00000658,0x00000001,0x00000045,0x00000657,0x0003003e, + 0x00000651,0x00000658,0x0004003d,0x00000010,0x0000065a,0x0000064b,0x0004003d,0x00000010, + 0x0000065b,0x00000651,0x00050094,0x00000008,0x0000065c,0x0000065a,0x0000065b,0x0003003e, + 0x00000659,0x0000065c,0x0004003d,0x00000008,0x0000065d,0x00000659,0x0004003d,0x0000005e, + 0x0000065e,0x00000606,0x00070041,0x0000002a,0x0000065f,0x0000007b,0x000003ac,0x0000065e, + 0x000000c2,0x0004003d,0x00000008,0x00000660,0x0000065f,0x000500b8,0x0000005d,0x00000661, + 0x0000065d,0x00000660,0x000300f7,0x00000663,0x00000000,0x000400fa,0x00000661,0x00000662, + 0x00000663,0x000200f8,0x00000662,0x000200f9,0x0000060a,0x000200f8,0x00000663,0x0004003d, + 0x00000008,0x00000665,0x00000659,0x0007000c,0x00000008,0x00000666,0x00000001,0x00000028, + 0x00000665,0x000000cc,0x0004003d,0x0000005e,0x00000667,0x00000606,0x00070041,0x0000002a, + 0x00000668,0x0000007b,0x000003ac,0x00000667,0x000000ba,0x0004003d,0x00000008,0x00000669, + 0x00000668,0x0007000c,0x00000008,0x0000066a,0x00000001,0x0000001a,0x00000666,0x00000669, + 0x0003003e,0x00000615,0x0000066a,0x000200f9,0x0000064a,0x000200f8,0x0000064a,0x000200f9, + 0x0000061c,0x000200f8,0x0000066b,0x0004003d,0x0000005e,0x0000066c,0x00000606,0x00060041, + 0x00000242,0x0000066d,0x0000007b,0x0000035f,0x0000066c,0x0004003d,0x00000030,0x0000066e, + 0x0000066d,0x0008004f,0x00000010,0x0000066f,0x0000066e,0x0000066e,0x00000000,0x00000001, + 0x00000002,0x0003003e,0x0000062b,0x0000066f,0x000200f9,0x0000061c,0x000200f8,0x0000061c, + 0x0004003d,0x00000010,0x00000670,0x0000062b,0x0006000c,0x00000010,0x00000671,0x00000001, + 0x00000045,0x00000670,0x0003003e,0x0000062b,0x00000671,0x0004003d,0x00000010,0x00000673, + 0x000005f4,0x0004003d,0x00000010,0x00000674,0x0000062b,0x00050094,0x00000008,0x00000675, + 0x00000673,0x00000674,0x0003003e,0x00000672,0x00000675,0x0004003d,0x00000008,0x00000676, + 0x00000672,0x000500bc,0x0000005d,0x00000677,0x00000676,0x000000cc,0x000300f7,0x00000679, + 0x00000000,0x000400fa,0x00000677,0x00000678,0x00000679,0x000200f8,0x00000678,0x000200f9, + 0x0000060a,0x000200f8,0x00000679,0x0004003d,0x00000010,0x0000067c,0x00000078,0x0004003d, + 0x00000010,0x0000067d,0x00000079,0x0005008e,0x00000010,0x0000067e,0x0000067d,0x0000023c, + 0x00050081,0x00000010,0x0000067f,0x0000067c,0x0000067e,0x0004003d,0x00000008,0x00000680, + 0x00000616,0x00050083,0x00000008,0x00000681,0x00000680,0x0000023c,0x0003003e,0x00000682, + 0x0000067f,0x0004003d,0x00000010,0x00000684,0x0000062b,0x0003003e,0x00000683,0x00000684, + 0x0003003e,0x00000685,0x00000681,0x00070039,0x00000008,0x00000686,0x0000006a,0x00000682, + 0x00000683,0x00000685,0x0003003e,0x0000067b,0x00000686,0x0004003d,0x00000008,0x00000687, + 0x0000067b,0x000500bc,0x0000005d,0x00000688,0x00000687,0x000004b1,0x000300f7,0x0000068a, + 0x00000000,0x000400fa,0x00000688,0x00000689,0x0000068a,0x000200f8,0x00000689,0x000200f9, + 0x0000060a,0x000200f8,0x0000068a,0x00060041,0x0000002a,0x0000068c,0x0000007b,0x000000e9, + 0x00000137,0x0004003d,0x00000008,0x0000068d,0x0000068c,0x000500ba,0x0000005d,0x0000068e, + 0x0000068d,0x000000f6,0x000300f7,0x00000690,0x00000000,0x000400fa,0x0000068e,0x0000068f, + 0x0000069e,0x000200f8,0x0000068f,0x0004003d,0x00000010,0x00000692,0x0000062b,0x0006000c, + 0x00000010,0x00000693,0x00000001,0x00000045,0x00000692,0x0004003d,0x00000010,0x00000695, + 0x000005f4,0x0003003e,0x00000694,0x00000695,0x0004003d,0x00000010,0x00000697,0x000005f7, + 0x0003003e,0x00000696,0x00000697,0x0003003e,0x00000698,0x00000693,0x0004003d,0x00000033, + 0x0000069a,0x0000007b,0x0003003e,0x00000699,0x0000069a,0x00080039,0x00000010,0x0000069b, + 0x00000056,0x00000694,0x00000696,0x00000698,0x00000699,0x0004003d,0x00000008,0x0000069c, + 0x00000672,0x0005008e,0x00000010,0x0000069d,0x0000069b,0x0000069c,0x0003003e,0x00000691, + 0x0000069d,0x000200f9,0x00000690,0x000200f8,0x0000069e,0x0004003d,0x00000010,0x000006a0, + 0x0000062b,0x0006000c,0x00000010,0x000006a1,0x00000001,0x00000045,0x000006a0,0x0004003d, + 0x00000010,0x000006a2,0x000005f7,0x00050081,0x00000010,0x000006a3,0x000006a1,0x000006a2, + 0x0006000c,0x00000010,0x000006a4,0x00000001,0x00000045,0x000006a3,0x0003003e,0x0000069f, + 0x000006a4,0x0004003d,0x00000010,0x000006a6,0x000005f4,0x0004003d,0x00000010,0x000006a7, + 0x0000069f,0x00050094,0x00000008,0x000006a8,0x000006a6,0x000006a7,0x0007000c,0x00000008, + 0x000006a9,0x00000001,0x00000028,0x000006a8,0x000000cc,0x0003003e,0x000006a5,0x000006a9, + 0x00060041,0x0000002a,0x000006ab,0x0000007b,0x000001e0,0x000000c2,0x0004003d,0x00000008, + 0x000006ac,0x000006ab,0x00050085,0x00000008,0x000006ad,0x000006ac,0x000005c2,0x0007000c, + 0x00000008,0x000006ae,0x00000001,0x00000028,0x000006ad,0x000000cc,0x0003003e,0x000006aa, + 0x000006ae,0x0004003d,0x00000008,0x000006b0,0x000006aa,0x000500ba,0x0000005d,0x000006b1, + 0x000006b0,0x000000cc,0x000300f7,0x000006b4,0x00000000,0x000400fa,0x000006b1,0x000006b3, + 0x000006b8,0x000200f8,0x000006b3,0x0004003d,0x00000008,0x000006b5,0x000006a5,0x0004003d, + 0x00000008,0x000006b6,0x000006aa,0x0007000c,0x00000008,0x000006b7,0x00000001,0x0000001a, + 0x000006b5,0x000006b6,0x0003003e,0x000006b2,0x000006b7,0x000200f9,0x000006b4,0x000200f8, + 0x000006b8,0x0003003e,0x000006b2,0x000000cc,0x000200f9,0x000006b4,0x000200f8,0x000006b4, + 0x0004003d,0x00000008,0x000006b9,0x000006b2,0x0003003e,0x000006af,0x000006b9,0x00050041, + 0x00000242,0x000006ba,0x0000007b,0x000001d9,0x0004003d,0x00000030,0x000006bb,0x000006ba, + 0x0008004f,0x00000010,0x000006bc,0x000006bb,0x000006bb,0x00000000,0x00000001,0x00000002, + 0x0004003d,0x00000008,0x000006bd,0x00000672,0x0005008e,0x00000010,0x000006be,0x000006bc, + 0x000006bd,0x00050041,0x00000242,0x000006bf,0x0000007b,0x00000319,0x0004003d,0x00000030, + 0x000006c0,0x000006bf,0x0008004f,0x00000010,0x000006c1,0x000006c0,0x000006c0,0x00000000, + 0x00000001,0x00000002,0x0004003d,0x00000008,0x000006c2,0x000006af,0x0005008e,0x00000010, + 0x000006c3,0x000006c1,0x000006c2,0x00050081,0x00000010,0x000006c4,0x000006be,0x000006c3, + 0x0003003e,0x00000691,0x000006c4,0x000200f9,0x00000690,0x000200f8,0x00000690,0x0004003d, + 0x00000008,0x000006c5,0x0000067b,0x0004003d,0x0000005e,0x000006c6,0x00000606,0x00060041, + 0x00000242,0x000006c7,0x0000007b,0x00000193,0x000006c6,0x0004003d,0x00000030,0x000006c8, + 0x000006c7,0x0008004f,0x00000010,0x000006c9,0x000006c8,0x000006c8,0x00000000,0x00000001, + 0x00000002,0x0005008e,0x00000010,0x000006ca,0x000006c9,0x000006c5,0x0004003d,0x00000008, + 0x000006cb,0x00000614,0x0005008e,0x00000010,0x000006cc,0x000006ca,0x000006cb,0x0004003d, + 0x00000008,0x000006cd,0x00000615,0x0005008e,0x00000010,0x000006ce,0x000006cc,0x000006cd, + 0x0004003d,0x00000010,0x000006cf,0x00000691,0x00050085,0x00000010,0x000006d0,0x000006ce, + 0x000006cf,0x0004003d,0x00000010,0x000006d1,0x000005fe,0x00050081,0x00000010,0x000006d2, + 0x000006d1,0x000006d0,0x0003003e,0x000005fe,0x000006d2,0x000200f9,0x0000060a,0x000200f8, + 0x0000060a,0x0004003d,0x0000005e,0x000006d3,0x00000606,0x00050080,0x0000005e,0x000006d4, + 0x000006d3,0x00000210,0x0003003e,0x00000606,0x000006d4,0x000200f9,0x00000607,0x000200f8, + 0x00000609,0x0004003d,0x00000010,0x000006d5,0x000005fe,0x00060050,0x00000010,0x000006d6, + 0x000000cc,0x000000cc,0x000000cc,0x00060050,0x00000010,0x000006d7,0x000000dc,0x000000dc, + 0x000000dc,0x0008000c,0x00000010,0x000006d8,0x00000001,0x0000002b,0x000006d5,0x000006d6, + 0x000006d7,0x000200fe,0x000006d8,0x00010038,0x00050036,0x00000010,0x00000083,0x00000000, + 0x0000007e,0x00030037,0x0000001f,0x0000007f,0x00030037,0x0000001f,0x00000080,0x00030037, + 0x00000034,0x00000081,0x00030037,0x0000001f,0x00000082,0x000200f8,0x00000084,0x0004003b, + 0x0000002a,0x000006db,0x00000007,0x0004003b,0x000001d7,0x000006e3,0x00000007,0x0004003b, + 0x000006ed,0x000006ee,0x00000007,0x0004003b,0x0000002a,0x00000703,0x00000007,0x0004003b, + 0x0000002a,0x00000708,0x00000007,0x0004003b,0x0000002a,0x0000070b,0x00000007,0x0004003b, + 0x0000001f,0x00000718,0x00000007,0x0004003b,0x0000001f,0x0000072d,0x00000007,0x0004003b, + 0x0000001f,0x00000737,0x00000007,0x0004003b,0x0000001f,0x00000747,0x00000007,0x0004003b, + 0x0000001f,0x00000757,0x00000007,0x0004003b,0x0000002a,0x0000075b,0x00000007,0x0004003b, + 0x0000001f,0x00000768,0x00000007,0x0004003b,0x0000002a,0x0000076c,0x00000007,0x0004003b, + 0x0000001f,0x00000774,0x00000007,0x0004003b,0x0000002a,0x00000779,0x00000007,0x0004003b, + 0x0000002a,0x0000077e,0x00000007,0x0004003b,0x0000002a,0x0000078a,0x00000007,0x0004003b, + 0x0000001f,0x00000791,0x00000007,0x0004003b,0x0000001f,0x00000792,0x00000007,0x0004003b, + 0x0000002a,0x00000794,0x00000007,0x0004003b,0x0000001f,0x0000079b,0x00000007,0x0004003b, + 0x0000001f,0x0000079e,0x00000007,0x0004003b,0x0000001f,0x000007aa,0x00000007,0x0004003b, + 0x0000001f,0x000007ab,0x00000007,0x0004003b,0x0000001f,0x000007ad,0x00000007,0x0004003b, + 0x0000001f,0x000007af,0x00000007,0x0004003b,0x00000034,0x000007b1,0x00000007,0x0004003b, + 0x0000001f,0x000007b7,0x00000007,0x0004003b,0x0000002a,0x000007bc,0x00000007,0x0004003b, + 0x0000002a,0x000007c1,0x00000007,0x0004003b,0x0000002a,0x000007c6,0x00000007,0x0004003b, + 0x0000002a,0x000007c9,0x00000007,0x0004003b,0x0000002a,0x000007dc,0x00000007,0x00060041, + 0x000000f3,0x000006dc,0x000000e8,0x000003bf,0x000000c2,0x0004003d,0x00000008,0x000006dd, + 0x000006dc,0x0003003e,0x000006db,0x000006dd,0x0004003d,0x00000008,0x000006de,0x000006db, + 0x000500b8,0x0000005d,0x000006df,0x000006de,0x000000f6,0x000300f7,0x000006e1,0x00000000, + 0x000400fa,0x000006df,0x000006e0,0x000006e1,0x000200f8,0x000006e0,0x000200fe,0x0000010d, + 0x000200f8,0x000006e1,0x00050041,0x0000002a,0x000006e4,0x00000082,0x000000c2,0x0004003d, + 0x00000008,0x000006e5,0x000006e4,0x0004003d,0x00000008,0x000006e6,0x000006db,0x00050085, + 0x00000008,0x000006e7,0x000006e5,0x000006e6,0x0004003d,0x00000008,0x000006e8,0x000006db, + 0x00050083,0x00000008,0x000006e9,0x000006e8,0x000000dc,0x0008000c,0x00000008,0x000006ea, + 0x00000001,0x0000002b,0x000006e7,0x000000cc,0x000006e9,0x0004006e,0x0000005e,0x000006eb, + 0x000006ea,0x0003003e,0x000006e3,0x000006eb,0x0004003d,0x0000005e,0x000006f4,0x000006e3, + 0x00060041,0x000006f5,0x000006f6,0x000006f3,0x000001d9,0x000006f4,0x0004003d,0x000006ef, + 0x000006f7,0x000006f6,0x00050051,0x00000030,0x000006f8,0x000006f7,0x00000000,0x00050041, + 0x00000242,0x000006f9,0x000006ee,0x000001d9,0x0003003e,0x000006f9,0x000006f8,0x00050051, + 0x00000030,0x000006fa,0x000006f7,0x00000001,0x00050041,0x00000242,0x000006fb,0x000006ee, + 0x00000210,0x0003003e,0x000006fb,0x000006fa,0x00050051,0x00000030,0x000006fc,0x000006f7, + 0x00000002,0x00050041,0x00000242,0x000006fd,0x000006ee,0x00000319,0x0003003e,0x000006fd, + 0x000006fc,0x00050051,0x00000030,0x000006fe,0x000006f7,0x00000003,0x00050041,0x00000242, + 0x000006ff,0x000006ee,0x0000031b,0x0003003e,0x000006ff,0x000006fe,0x00050051,0x000000e5, + 0x00000700,0x000006f7,0x00000004,0x00050041,0x00000701,0x00000702,0x000006ee,0x000001e0, + 0x0003003e,0x00000702,0x00000700,0x00060041,0x0000002a,0x00000704,0x000006ee,0x000001d9, + 0x000000f2,0x0004003d,0x00000008,0x00000705,0x00000704,0x0007000c,0x00000008,0x00000707, + 0x00000001,0x00000028,0x00000705,0x00000706,0x0003003e,0x00000703,0x00000707,0x00050041, + 0x0000002a,0x00000709,0x00000082,0x000000ba,0x0004003d,0x00000008,0x0000070a,0x00000709, + 0x0003003e,0x00000708,0x0000070a,0x00050041,0x0000002a,0x0000070c,0x00000082,0x00000137, + 0x0004003d,0x00000008,0x0000070d,0x0000070c,0x0003003e,0x0000070b,0x0000070d,0x0004003d, + 0x00000008,0x0000070e,0x00000708,0x0004003d,0x00000008,0x0000070f,0x0000070b,0x00050081, + 0x00000008,0x00000710,0x0000070e,0x0000070f,0x000500ba,0x0000005d,0x00000711,0x00000710, + 0x000000dc,0x000300f7,0x00000713,0x00000000,0x000400fa,0x00000711,0x00000712,0x00000713, + 0x000200f8,0x00000712,0x0004003d,0x00000008,0x00000714,0x00000708,0x00050083,0x00000008, + 0x00000715,0x000000dc,0x00000714,0x0003003e,0x00000708,0x00000715,0x0004003d,0x00000008, + 0x00000716,0x0000070b,0x00050083,0x00000008,0x00000717,0x000000dc,0x00000716,0x0003003e, + 0x0000070b,0x00000717,0x000200f9,0x00000713,0x000200f8,0x00000713,0x00050041,0x00000242, + 0x00000719,0x000006ee,0x000001d9,0x0004003d,0x00000030,0x0000071a,0x00000719,0x0008004f, + 0x00000010,0x0000071b,0x0000071a,0x0000071a,0x00000000,0x00000001,0x00000002,0x0004003d, + 0x00000008,0x0000071c,0x00000708,0x00050083,0x00000008,0x0000071d,0x000000dc,0x0000071c, + 0x0004003d,0x00000008,0x0000071e,0x0000070b,0x00050083,0x00000008,0x0000071f,0x0000071d, + 0x0000071e,0x0005008e,0x00000010,0x00000720,0x0000071b,0x0000071f,0x00050041,0x00000242, + 0x00000721,0x000006ee,0x00000210,0x0004003d,0x00000030,0x00000722,0x00000721,0x0008004f, + 0x00000010,0x00000723,0x00000722,0x00000722,0x00000000,0x00000001,0x00000002,0x0004003d, + 0x00000008,0x00000724,0x00000708,0x0005008e,0x00000010,0x00000725,0x00000723,0x00000724, + 0x00050081,0x00000010,0x00000726,0x00000720,0x00000725,0x00050041,0x00000242,0x00000727, + 0x000006ee,0x00000319,0x0004003d,0x00000030,0x00000728,0x00000727,0x0008004f,0x00000010, + 0x00000729,0x00000728,0x00000728,0x00000000,0x00000001,0x00000002,0x0004003d,0x00000008, + 0x0000072a,0x0000070b,0x0005008e,0x00000010,0x0000072b,0x00000729,0x0000072a,0x00050081, + 0x00000010,0x0000072c,0x00000726,0x0000072b,0x0003003e,0x00000718,0x0000072c,0x00050041, + 0x00000701,0x0000072e,0x000006ee,0x000001e0,0x0004003d,0x000000e5,0x0000072f,0x0000072e, + 0x0004003d,0x00000010,0x00000730,0x00000718,0x00050051,0x00000008,0x00000731,0x00000730, + 0x00000000,0x00050051,0x00000008,0x00000732,0x00000730,0x00000001,0x00050051,0x00000008, + 0x00000733,0x00000730,0x00000002,0x00070050,0x00000030,0x00000734,0x00000731,0x00000732, + 0x00000733,0x000000dc,0x00050091,0x00000030,0x00000735,0x0000072f,0x00000734,0x0008004f, + 0x00000010,0x00000736,0x00000735,0x00000735,0x00000000,0x00000001,0x00000002,0x0003003e, + 0x0000072d,0x00000736,0x00050041,0x00000701,0x00000738,0x000006ee,0x000001e0,0x0004003d, + 0x000000e5,0x00000739,0x00000738,0x00050041,0x00000242,0x0000073a,0x000006ee,0x00000210, + 0x0004003d,0x00000030,0x0000073b,0x0000073a,0x0008004f,0x00000010,0x0000073c,0x0000073b, + 0x0000073b,0x00000000,0x00000001,0x00000002,0x00050041,0x00000242,0x0000073d,0x000006ee, + 0x000001d9,0x0004003d,0x00000030,0x0000073e,0x0000073d,0x0008004f,0x00000010,0x0000073f, + 0x0000073e,0x0000073e,0x00000000,0x00000001,0x00000002,0x00050083,0x00000010,0x00000740, + 0x0000073c,0x0000073f,0x00050051,0x00000008,0x00000741,0x00000740,0x00000000,0x00050051, + 0x00000008,0x00000742,0x00000740,0x00000001,0x00050051,0x00000008,0x00000743,0x00000740, + 0x00000002,0x00070050,0x00000030,0x00000744,0x00000741,0x00000742,0x00000743,0x000000cc, + 0x00050091,0x00000030,0x00000745,0x00000739,0x00000744,0x0008004f,0x00000010,0x00000746, + 0x00000745,0x00000745,0x00000000,0x00000001,0x00000002,0x0003003e,0x00000737,0x00000746, + 0x00050041,0x00000701,0x00000748,0x000006ee,0x000001e0,0x0004003d,0x000000e5,0x00000749, + 0x00000748,0x00050041,0x00000242,0x0000074a,0x000006ee,0x00000319,0x0004003d,0x00000030, + 0x0000074b,0x0000074a,0x0008004f,0x00000010,0x0000074c,0x0000074b,0x0000074b,0x00000000, + 0x00000001,0x00000002,0x00050041,0x00000242,0x0000074d,0x000006ee,0x000001d9,0x0004003d, + 0x00000030,0x0000074e,0x0000074d,0x0008004f,0x00000010,0x0000074f,0x0000074e,0x0000074e, + 0x00000000,0x00000001,0x00000002,0x00050083,0x00000010,0x00000750,0x0000074c,0x0000074f, + 0x00050051,0x00000008,0x00000751,0x00000750,0x00000000,0x00050051,0x00000008,0x00000752, + 0x00000750,0x00000001,0x00050051,0x00000008,0x00000753,0x00000750,0x00000002,0x00070050, + 0x00000030,0x00000754,0x00000751,0x00000752,0x00000753,0x000000cc,0x00050091,0x00000030, + 0x00000755,0x00000749,0x00000754,0x0008004f,0x00000010,0x00000756,0x00000755,0x00000755, + 0x00000000,0x00000001,0x00000002,0x0003003e,0x00000747,0x00000756,0x0004003d,0x00000010, + 0x00000758,0x00000737,0x0004003d,0x00000010,0x00000759,0x00000747,0x0007000c,0x00000010, + 0x0000075a,0x00000001,0x00000044,0x00000758,0x00000759,0x0003003e,0x00000757,0x0000075a, + 0x0004003d,0x00000010,0x0000075c,0x00000757,0x0006000c,0x00000008,0x0000075d,0x00000001, + 0x00000042,0x0000075c,0x0003003e,0x0000075b,0x0000075d,0x0004003d,0x00000008,0x0000075e, + 0x0000075b,0x000500b8,0x0000005d,0x00000760,0x0000075e,0x0000075f,0x000300f7,0x00000762, + 0x00000000,0x000400fa,0x00000760,0x00000761,0x00000762,0x000200f8,0x00000761,0x000200fe, + 0x0000010d,0x000200f8,0x00000762,0x0004003d,0x00000008,0x00000764,0x0000075b,0x0004003d, + 0x00000010,0x00000765,0x00000757,0x00060050,0x00000010,0x00000766,0x00000764,0x00000764, + 0x00000764,0x00050088,0x00000010,0x00000767,0x00000765,0x00000766,0x0003003e,0x00000757, + 0x00000767,0x0004003d,0x00000010,0x00000769,0x0000072d,0x0004003d,0x00000010,0x0000076a, + 0x0000007f,0x00050083,0x00000010,0x0000076b,0x00000769,0x0000076a,0x0003003e,0x00000768, + 0x0000076b,0x0004003d,0x00000010,0x0000076d,0x00000768,0x0006000c,0x00000008,0x0000076e, + 0x00000001,0x00000042,0x0000076d,0x0003003e,0x0000076c,0x0000076e,0x0004003d,0x00000008, + 0x0000076f,0x0000076c,0x000500b8,0x0000005d,0x00000770,0x0000076f,0x000004b1,0x000300f7, + 0x00000772,0x00000000,0x000400fa,0x00000770,0x00000771,0x00000772,0x000200f8,0x00000771, + 0x000200fe,0x0000010d,0x000200f8,0x00000772,0x0004003d,0x00000010,0x00000775,0x00000768, + 0x0004003d,0x00000008,0x00000776,0x0000076c,0x00060050,0x00000010,0x00000777,0x00000776, + 0x00000776,0x00000776,0x00050088,0x00000010,0x00000778,0x00000775,0x00000777,0x0003003e, + 0x00000774,0x00000778,0x0004003d,0x00000010,0x0000077a,0x00000757,0x0004003d,0x00000010, + 0x0000077b,0x00000774,0x0004007f,0x00000010,0x0000077c,0x0000077b,0x00050094,0x00000008, + 0x0000077d,0x0000077a,0x0000077c,0x0003003e,0x00000779,0x0000077d,0x0004003d,0x00000010, + 0x0000077f,0x00000080,0x0004003d,0x00000010,0x00000780,0x00000774,0x00050094,0x00000008, + 0x00000781,0x0000077f,0x00000780,0x0003003e,0x0000077e,0x00000781,0x0004003d,0x00000008, + 0x00000782,0x00000779,0x000500bc,0x0000005d,0x00000783,0x00000782,0x000000cc,0x0004003d, + 0x00000008,0x00000784,0x0000077e,0x000500bc,0x0000005d,0x00000785,0x00000784,0x000000cc, + 0x000500a6,0x0000005d,0x00000786,0x00000783,0x00000785,0x000300f7,0x00000788,0x00000000, + 0x000400fa,0x00000786,0x00000787,0x00000788,0x000200f8,0x00000787,0x000200fe,0x0000010d, + 0x000200f8,0x00000788,0x0004003d,0x00000010,0x0000078b,0x0000007f,0x0004003d,0x00000010, + 0x0000078c,0x00000080,0x0005008e,0x00000010,0x0000078d,0x0000078c,0x0000023c,0x00050081, + 0x00000010,0x0000078e,0x0000078b,0x0000078d,0x0004003d,0x00000008,0x0000078f,0x0000076c, + 0x00050083,0x00000008,0x00000790,0x0000078f,0x0000023c,0x0003003e,0x00000791,0x0000078e, + 0x0004003d,0x00000010,0x00000793,0x00000774,0x0003003e,0x00000792,0x00000793,0x0003003e, + 0x00000794,0x00000790,0x00070039,0x00000008,0x00000795,0x0000006a,0x00000791,0x00000792, + 0x00000794,0x0003003e,0x0000078a,0x00000795,0x0004003d,0x00000008,0x00000796,0x0000078a, + 0x000500bc,0x0000005d,0x00000797,0x00000796,0x000004b1,0x000300f7,0x00000799,0x00000000, + 0x000400fa,0x00000797,0x00000798,0x00000799,0x000200f8,0x00000798,0x000200fe,0x0000010d, + 0x000200f8,0x00000799,0x0004003d,0x00000010,0x0000079c,0x00000080,0x0006000c,0x00000010, + 0x0000079d,0x00000001,0x00000045,0x0000079c,0x0003003e,0x0000079b,0x0000079d,0x00050041, + 0x000000ea,0x0000079f,0x000000e8,0x0000031b,0x0004003d,0x00000030,0x000007a0,0x0000079f, + 0x0008004f,0x00000010,0x000007a1,0x000007a0,0x000007a0,0x00000000,0x00000001,0x00000002, + 0x0004003d,0x00000010,0x000007a2,0x0000007f,0x00050083,0x00000010,0x000007a3,0x000007a1, + 0x000007a2,0x0006000c,0x00000010,0x000007a4,0x00000001,0x00000045,0x000007a3,0x0003003e, + 0x0000079e,0x000007a4,0x00060041,0x0000002a,0x000007a5,0x00000081,0x000000e9,0x00000137, + 0x0004003d,0x00000008,0x000007a6,0x000007a5,0x000500ba,0x0000005d,0x000007a7,0x000007a6, + 0x000000f6,0x000300f7,0x000007a9,0x00000000,0x000400fa,0x000007a7,0x000007a8,0x000007b6, + 0x000200f8,0x000007a8,0x0004003d,0x00000010,0x000007ac,0x0000079b,0x0003003e,0x000007ab, + 0x000007ac,0x0004003d,0x00000010,0x000007ae,0x0000079e,0x0003003e,0x000007ad,0x000007ae, + 0x0004003d,0x00000010,0x000007b0,0x00000774,0x0003003e,0x000007af,0x000007b0,0x0004003d, + 0x00000033,0x000007b2,0x00000081,0x0003003e,0x000007b1,0x000007b2,0x00080039,0x00000010, + 0x000007b3,0x00000056,0x000007ab,0x000007ad,0x000007af,0x000007b1,0x0004003d,0x00000008, + 0x000007b4,0x0000077e,0x0005008e,0x00000010,0x000007b5,0x000007b3,0x000007b4,0x0003003e, + 0x000007aa,0x000007b5,0x000200f9,0x000007a9,0x000200f8,0x000007b6,0x0004003d,0x00000010, + 0x000007b8,0x00000774,0x0004003d,0x00000010,0x000007b9,0x0000079e,0x00050081,0x00000010, + 0x000007ba,0x000007b8,0x000007b9,0x0006000c,0x00000010,0x000007bb,0x00000001,0x00000045, + 0x000007ba,0x0003003e,0x000007b7,0x000007bb,0x0004003d,0x00000010,0x000007bd,0x0000079b, + 0x0004003d,0x00000010,0x000007be,0x000007b7,0x00050094,0x00000008,0x000007bf,0x000007bd, + 0x000007be,0x0007000c,0x00000008,0x000007c0,0x00000001,0x00000028,0x000007bf,0x000000cc, + 0x0003003e,0x000007bc,0x000007c0,0x00060041,0x0000002a,0x000007c2,0x00000081,0x000001e0, + 0x000000c2,0x0004003d,0x00000008,0x000007c3,0x000007c2,0x00050085,0x00000008,0x000007c4, + 0x000007c3,0x000005c2,0x0007000c,0x00000008,0x000007c5,0x00000001,0x00000028,0x000007c4, + 0x000000cc,0x0003003e,0x000007c1,0x000007c5,0x0004003d,0x00000008,0x000007c7,0x000007c1, + 0x000500ba,0x0000005d,0x000007c8,0x000007c7,0x000000cc,0x000300f7,0x000007cb,0x00000000, + 0x000400fa,0x000007c8,0x000007ca,0x000007cf,0x000200f8,0x000007ca,0x0004003d,0x00000008, + 0x000007cc,0x000007bc,0x0004003d,0x00000008,0x000007cd,0x000007c1,0x0007000c,0x00000008, + 0x000007ce,0x00000001,0x0000001a,0x000007cc,0x000007cd,0x0003003e,0x000007c9,0x000007ce, + 0x000200f9,0x000007cb,0x000200f8,0x000007cf,0x0003003e,0x000007c9,0x000000cc,0x000200f9, + 0x000007cb,0x000200f8,0x000007cb,0x0004003d,0x00000008,0x000007d0,0x000007c9,0x0003003e, + 0x000007c6,0x000007d0,0x00050041,0x00000242,0x000007d1,0x00000081,0x000001d9,0x0004003d, + 0x00000030,0x000007d2,0x000007d1,0x0008004f,0x00000010,0x000007d3,0x000007d2,0x000007d2, + 0x00000000,0x00000001,0x00000002,0x0004003d,0x00000008,0x000007d4,0x0000077e,0x0005008e, + 0x00000010,0x000007d5,0x000007d3,0x000007d4,0x00050041,0x00000242,0x000007d6,0x00000081, + 0x00000319,0x0004003d,0x00000030,0x000007d7,0x000007d6,0x0008004f,0x00000010,0x000007d8, + 0x000007d7,0x000007d7,0x00000000,0x00000001,0x00000002,0x0004003d,0x00000008,0x000007d9, + 0x000007c6,0x0005008e,0x00000010,0x000007da,0x000007d8,0x000007d9,0x00050081,0x00000010, + 0x000007db,0x000007d5,0x000007da,0x0003003e,0x000007aa,0x000007db,0x000200f9,0x000007a9, + 0x000200f8,0x000007a9,0x0004003d,0x00000008,0x000007dd,0x000006db,0x0004003d,0x00000008, + 0x000007de,0x00000703,0x00050085,0x00000008,0x000007df,0x000007dd,0x000007de,0x00050088, + 0x00000008,0x000007e0,0x000000dc,0x000007df,0x0003003e,0x000007dc,0x000007e0,0x0004003d, + 0x00000008,0x000007e1,0x0000078a,0x00050041,0x00000242,0x000007e2,0x000006ee,0x0000031b, + 0x0004003d,0x00000030,0x000007e3,0x000007e2,0x0008004f,0x00000010,0x000007e4,0x000007e3, + 0x000007e3,0x00000000,0x00000001,0x00000002,0x0005008e,0x00000010,0x000007e5,0x000007e4, + 0x000007e1,0x0004003d,0x00000010,0x000007e6,0x000007aa,0x00050085,0x00000010,0x000007e7, + 0x000007e5,0x000007e6,0x0004003d,0x00000008,0x000007e8,0x00000779,0x0005008e,0x00000010, + 0x000007e9,0x000007e7,0x000007e8,0x0004003d,0x00000008,0x000007ea,0x0000076c,0x0004003d, + 0x00000008,0x000007eb,0x0000076c,0x00050085,0x00000008,0x000007ec,0x000007ea,0x000007eb, + 0x0004003d,0x00000008,0x000007ed,0x000007dc,0x00050085,0x00000008,0x000007ee,0x000007ec, + 0x000007ed,0x0007000c,0x00000008,0x000007ef,0x00000001,0x00000028,0x000007ee,0x00000706, + 0x00060050,0x00000010,0x000007f0,0x000007ef,0x000007ef,0x000007ef,0x00050088,0x00000010, + 0x000007f1,0x000007e9,0x000007f0,0x000200fe,0x000007f1,0x00010038 }; const uint32_t coin_vulkan_rt_pathtrace_spirv_count = sizeof(coin_vulkan_rt_pathtrace_spirv) / sizeof(uint32_t); diff --git a/src/rendering/vulkan/rt/Raygen.spv.h b/src/rendering/vulkan/rt/Raygen.spv.h index 4342892e1ba..613a96c7263 100644 --- a/src/rendering/vulkan/rt/Raygen.spv.h +++ b/src/rendering/vulkan/rt/Raygen.spv.h @@ -1,11 +1,11 @@ // 1116.4.0 #pragma once const uint32_t coin_vulkan_rt_raygen_spirv[] = { - 0x07230203,0x00010500,0x0008000b,0x00000398,0x00000000,0x00020011,0x0000117f,0x0006000a, + 0x07230203,0x00010500,0x0008000b,0x0000037b,0x00000000,0x00020011,0x0000117f,0x0006000a, 0x5f565053,0x5f52484b,0x5f796172,0x63617274,0x00676e69,0x0006000b,0x00000001,0x4c534c47, 0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,0x000f000f,0x000014c1, - 0x00000004,0x6e69616d,0x00000000,0x00000073,0x0000011f,0x00000130,0x00000182,0x0000019e, - 0x0000022a,0x00000270,0x0000027d,0x000002a1,0x0000037a,0x00030003,0x00000002,0x000001cc, + 0x00000004,0x6e69616d,0x00000000,0x00000076,0x0000010f,0x00000114,0x00000166,0x00000182, + 0x0000020d,0x00000253,0x00000260,0x00000284,0x0000035d,0x00030003,0x00000002,0x000001cc, 0x00060004,0x455f4c47,0x725f5458,0x745f7961,0x69636172,0x0000676e,0x00040005,0x00000004, 0x6e69616d,0x00000000,0x00060005,0x0000000e,0x68736168,0x31752832,0x3b31753b,0x003b3175, 0x00030005,0x0000000b,0x00007870,0x00030005,0x0000000c,0x00007970,0x00040005,0x0000000d, @@ -27,112 +27,111 @@ const uint32_t coin_vulkan_rt_raygen_spirv[] = { 0x385b3466,0x66762d5d,0x5d385b34,0x3466762d,0x2d5d385b,0x2d346676,0x31346676,0x0000003b, 0x00050005,0x0000001d,0x6c726f77,0x736f5064,0x00000000,0x00040005,0x0000001e,0x6c726f77, 0x00004e64,0x00030005,0x0000001f,0x0074616d,0x00030005,0x00000022,0x00000073,0x00030005, - 0x00000051,0x00000061,0x00030005,0x00000058,0x00696870,0x00040005,0x0000006f,0x50657965, - 0x0000736f,0x00050005,0x00000071,0x6d617246,0x6f6c4265,0x00006b63,0x00050006,0x00000071, - 0x00000000,0x69765f75,0x00007765,0x00070006,0x00000071,0x00000001,0x69765f75,0x6e497765, - 0x73726576,0x00000065,0x00070006,0x00000071,0x00000002,0x72705f75,0x6e496a6f,0x73726576, - 0x00000065,0x00060006,0x00000071,0x00000003,0x61635f75,0x6172656d,0x00736f50,0x00060006, - 0x00000071,0x00000004,0x69765f75,0x6f707765,0x00007472,0x00050006,0x00000071,0x00000005, - 0x67625f75,0x00706f54,0x00060006,0x00000071,0x00000006,0x67625f75,0x74746f42,0x00006d6f, - 0x00050006,0x00000071,0x00000007,0x74735f75,0x00657461,0x00040005,0x00000073,0x6d617266, - 0x00000065,0x00030005,0x0000007f,0x0000004e,0x00030005,0x0000008d,0x00000056,0x00030005, - 0x00000091,0x0074696c,0x00050005,0x00000098,0x6867696c,0x756f4374,0x0000746e,0x00030005, - 0x0000009e,0x00000069,0x00050005,0x000000ae,0x65747461,0x7461756e,0x006e6f69,0x00050005, - 0x000000af,0x746f7073,0x74636146,0x0000726f,0x00050005,0x000000b0,0x74736964,0x694c6f54, - 0x00746867,0x00050005,0x000000ba,0x6867696c,0x63655674,0x00726f74,0x00030005,0x000000c9, - 0x0000004c,0x00030005,0x000000ce,0x00747461,0x00040005,0x000000eb,0x656e6f63,0x00726944, - 0x00050005,0x000000f2,0x6d6f7266,0x6867694c,0x00000074,0x00040005,0x000000fa,0x746f7073, - 0x00736f43,0x00040005,0x00000112,0x746f644e,0x0000004c,0x00040005,0x0000011d,0x6c796150, - 0x0064616f,0x00050006,0x0000011d,0x00000000,0x6f6c6f63,0x00000072,0x00050006,0x0000011d, - 0x00000001,0x6d726f6e,0x00006c61,0x00050006,0x0000011d,0x00000002,0x54736f70,0x00000000, - 0x00050006,0x0000011d,0x00000003,0x6f666e69,0x00000000,0x00060006,0x0000011d,0x00000004, - 0x6c63636f,0x64656475,0x00000000,0x00040005,0x0000011f,0x6c796170,0x0064616f,0x00040005, - 0x00000122,0x6c726f77,0x00004c64,0x00040005,0x00000130,0x73616c74,0x00000000,0x00030005, - 0x00000141,0x00000048,0x00040005,0x00000147,0x746f644e,0x00000048,0x00050005,0x0000014c, - 0x6e696873,0x73656e69,0x00000073,0x00060005,0x00000152,0x63657073,0x72616c75,0x74636146, - 0x0000726f,0x00030005,0x0000017f,0x00007870,0x00060005,0x00000182,0x4c5f6c67,0x636e7561, - 0x45444968,0x00005458,0x00050005,0x0000019b,0x6d617266,0x646e4965,0x00007865,0x00050005, - 0x0000019c,0x67796152,0x75506e65,0x00006873,0x00070006,0x0000019c,0x00000000,0x72665f75, - 0x49656d61,0x7865646e,0x00000000,0x00050006,0x0000019c,0x00000001,0x6c665f75,0x00736761, - 0x00070006,0x0000019c,0x00000002,0x616d5f75,0x756f4278,0x7365636e,0x00000000,0x00050006, - 0x0000019c,0x00000003,0x61705f75,0x00000064,0x00030005,0x0000019e,0x00006370,0x00050005, - 0x000001a3,0x6e457470,0x656c6261,0x00000064,0x00060005,0x000001a8,0x75636361,0x616c756d, - 0x676e6974,0x00000000,0x00050005,0x000001ad,0x75626564,0x6c694667,0x0000006c,0x00050005, - 0x000001b3,0x4278616d,0x636e756f,0x00007365,0x00040005,0x000001b9,0x65646e69,0x00000078, - 0x00040005,0x000001c5,0x7474696a,0x00007265,0x00040005,0x000001cc,0x61726170,0x0000006d, - 0x00040005,0x000001cf,0x61726170,0x0000006d,0x00040005,0x000001d2,0x61726170,0x0000006d, - 0x00030005,0x000001d5,0x00007675,0x00030005,0x000001e1,0x0063646e,0x00050005,0x000001eb, - 0x77656976,0x67726154,0x00007465,0x00040005,0x000001f4,0x56726964,0x00776569,0x00040005, - 0x00000201,0x6769726f,0x00006e69,0x00030005,0x0000020b,0x00726964,0x00060005,0x0000022a, - 0x726f7473,0x49656761,0x6567616d,0x00000000,0x00050005,0x0000024e,0x69646172,0x65636e61, - 0x00000000,0x00040005,0x00000250,0x67696577,0x00007468,0x00050005,0x00000252,0x4f796172, - 0x69676972,0x0000006e,0x00040005,0x00000254,0x44796172,0x00007269,0x00040005,0x00000256, - 0x6e756f62,0x00006563,0x00060005,0x0000026e,0x6d726f4e,0x75426c61,0x72656666,0x00000000, - 0x00050006,0x0000026e,0x00000000,0x6d726f6e,0x00736c61,0x00030005,0x00000270,0x00000000, - 0x00060005,0x0000027b,0x69736f50,0x6e6f6974,0x66667542,0x00007265,0x00060006,0x0000027b, - 0x00000000,0x69736f70,0x6e6f6974,0x00000073,0x00030005,0x0000027d,0x00000000,0x00030005, - 0x00000296,0x0074616d,0x00050005,0x0000029d,0x614d5452,0x69726574,0x00006c61,0x00050006, - 0x0000029d,0x00000000,0x66666964,0x00657375,0x00050006,0x0000029d,0x00000001,0x69626d61, - 0x00746e65,0x00060006,0x0000029d,0x00000002,0x63657073,0x72616c75,0x00000000,0x00060006, - 0x0000029d,0x00000003,0x73696d65,0x65766973,0x00000000,0x00050006,0x0000029d,0x00000004, - 0x61726170,0x0000736d,0x00060006,0x0000029d,0x00000005,0x6867696c,0x70795474,0x00000065, - 0x00060006,0x0000029d,0x00000006,0x6867696c,0x6c6f4374,0x0000726f,0x00070006,0x0000029d, - 0x00000007,0x6867696c,0x72694474,0x69746365,0x00006e6f,0x00070006,0x0000029d,0x00000008, - 0x6867696c,0x736f5074,0x6f697469,0x0000006e,0x00080006,0x0000029d,0x00000009,0x6867696c, - 0x74744174,0x61756e65,0x6e6f6974,0x00000000,0x00060006,0x0000029d,0x0000000a,0x6867696c, - 0x6f705374,0x00000074,0x00070006,0x0000029d,0x0000000b,0x61697274,0x656c676e,0x61746144, - 0x00000000,0x00040006,0x0000029d,0x0000000c,0x00726270,0x00050005,0x0000029f,0x6574614d, - 0x6c616972,0x00000073,0x00060006,0x0000029f,0x00000000,0x6574616d,0x6c616972,0x00000073, - 0x00050005,0x000002a1,0x4274616d,0x65666675,0x00000072,0x00040005,0x000002bb,0x61726170, - 0x0000006d,0x00040005,0x000002bf,0x61726170,0x0000006d,0x00040005,0x000002c3,0x61726170, - 0x0000006d,0x00030005,0x000002c9,0x0000006e,0x00040005,0x000002ce,0x65626c61,0x00006f64, - 0x00050005,0x000002d2,0x63657073,0x626f7250,0x00000000,0x00030005,0x000002d6,0x00007075, - 0x00040005,0x000002df,0x676e6174,0x00746e65,0x00050005,0x000002e4,0x61746962,0x6e65676e, - 0x00000074,0x00040005,0x000002f0,0x61726170,0x0000006d,0x00040005,0x000002f3,0x61726170, - 0x0000006d,0x00040005,0x000002f6,0x61726170,0x0000006d,0x00040005,0x000002fd,0x4477656e, - 0x00007269,0x00030005,0x0000030e,0x00000073,0x00040005,0x00000316,0x61726170,0x0000006d, - 0x00040005,0x00000319,0x61726170,0x0000006d,0x00040005,0x0000031c,0x61726170,0x0000006d, - 0x00040005,0x0000031e,0x61726170,0x0000006d,0x00030005,0x00000343,0x00000070,0x00040005, - 0x00000356,0x61726170,0x0000006d,0x00040005,0x00000359,0x61726170,0x0000006d,0x00040005, - 0x0000035c,0x61726170,0x0000006d,0x00050005,0x0000036a,0x4374756f,0x726f6c6f,0x00000000, - 0x00030005,0x00000376,0x00636361,0x00050005,0x00000378,0x75636341,0x6675426d,0x00726566, - 0x00050006,0x00000378,0x00000000,0x75636361,0x0000006d,0x00030005,0x0000037a,0x00000000, - 0x00030047,0x00000071,0x00000002,0x00040048,0x00000071,0x00000000,0x00000005,0x00050048, - 0x00000071,0x00000000,0x00000007,0x00000010,0x00050048,0x00000071,0x00000000,0x00000023, - 0x00000000,0x00040048,0x00000071,0x00000001,0x00000005,0x00050048,0x00000071,0x00000001, - 0x00000007,0x00000010,0x00050048,0x00000071,0x00000001,0x00000023,0x00000040,0x00040048, - 0x00000071,0x00000002,0x00000005,0x00050048,0x00000071,0x00000002,0x00000007,0x00000010, - 0x00050048,0x00000071,0x00000002,0x00000023,0x00000080,0x00050048,0x00000071,0x00000003, - 0x00000023,0x000000c0,0x00050048,0x00000071,0x00000004,0x00000023,0x000000d0,0x00050048, - 0x00000071,0x00000005,0x00000023,0x000000e0,0x00050048,0x00000071,0x00000006,0x00000023, - 0x000000f0,0x00050048,0x00000071,0x00000007,0x00000023,0x00000100,0x00040047,0x00000073, - 0x00000021,0x00000002,0x00040047,0x00000073,0x00000022,0x00000000,0x00040047,0x00000130, - 0x00000021,0x00000000,0x00040047,0x00000130,0x00000022,0x00000000,0x00040047,0x00000182, - 0x0000000b,0x000014c7,0x00030047,0x0000019c,0x00000002,0x00050048,0x0000019c,0x00000000, - 0x00000023,0x00000000,0x00050048,0x0000019c,0x00000001,0x00000023,0x00000004,0x00050048, - 0x0000019c,0x00000002,0x00000023,0x00000008,0x00050048,0x0000019c,0x00000003,0x00000023, - 0x0000000c,0x00040047,0x0000022a,0x00000021,0x00000001,0x00040047,0x0000022a,0x00000022, - 0x00000000,0x00040047,0x0000026d,0x00000006,0x00000010,0x00030047,0x0000026e,0x00000002, - 0x00050048,0x0000026e,0x00000000,0x00000023,0x00000000,0x00040047,0x00000270,0x00000021, - 0x00000005,0x00040047,0x00000270,0x00000022,0x00000000,0x00040047,0x0000027a,0x00000006, - 0x00000010,0x00030047,0x0000027b,0x00000002,0x00050048,0x0000027b,0x00000000,0x00000023, - 0x00000000,0x00040047,0x0000027d,0x00000021,0x00000006,0x00040047,0x0000027d,0x00000022, - 0x00000000,0x00040047,0x00000297,0x00000006,0x00000010,0x00040047,0x00000298,0x00000006, - 0x00000010,0x00040047,0x00000299,0x00000006,0x00000010,0x00040047,0x0000029a,0x00000006, - 0x00000010,0x00040047,0x0000029b,0x00000006,0x00000010,0x00040047,0x0000029c,0x00000006, - 0x00000010,0x00050048,0x0000029d,0x00000000,0x00000023,0x00000000,0x00050048,0x0000029d, - 0x00000001,0x00000023,0x00000010,0x00050048,0x0000029d,0x00000002,0x00000023,0x00000020, - 0x00050048,0x0000029d,0x00000003,0x00000023,0x00000030,0x00050048,0x0000029d,0x00000004, - 0x00000023,0x00000040,0x00050048,0x0000029d,0x00000005,0x00000023,0x00000050,0x00050048, - 0x0000029d,0x00000006,0x00000023,0x000000d0,0x00050048,0x0000029d,0x00000007,0x00000023, - 0x00000150,0x00050048,0x0000029d,0x00000008,0x00000023,0x000001d0,0x00050048,0x0000029d, - 0x00000009,0x00000023,0x00000250,0x00050048,0x0000029d,0x0000000a,0x00000023,0x000002d0, - 0x00050048,0x0000029d,0x0000000b,0x00000023,0x00000350,0x00050048,0x0000029d,0x0000000c, - 0x00000023,0x00000360,0x00040047,0x0000029e,0x00000006,0x00000370,0x00030047,0x0000029f, - 0x00000002,0x00050048,0x0000029f,0x00000000,0x00000023,0x00000000,0x00040047,0x000002a1, - 0x00000021,0x00000003,0x00040047,0x000002a1,0x00000022,0x00000000,0x00040047,0x00000377, - 0x00000006,0x00000010,0x00030047,0x00000378,0x00000002,0x00050048,0x00000378,0x00000000, - 0x00000023,0x00000000,0x00040047,0x0000037a,0x00000021,0x00000004,0x00040047,0x0000037a, + 0x00000051,0x00000061,0x00030005,0x00000058,0x00696870,0x00030005,0x0000006f,0x0000004e, + 0x00030005,0x00000072,0x00000056,0x00050005,0x00000074,0x6d617246,0x6f6c4265,0x00006b63, + 0x00050006,0x00000074,0x00000000,0x69765f75,0x00007765,0x00070006,0x00000074,0x00000001, + 0x69765f75,0x6e497765,0x73726576,0x00000065,0x00070006,0x00000074,0x00000002,0x72705f75, + 0x6e496a6f,0x73726576,0x00000065,0x00060006,0x00000074,0x00000003,0x61635f75,0x6172656d, + 0x00736f50,0x00060006,0x00000074,0x00000004,0x69765f75,0x6f707765,0x00007472,0x00050006, + 0x00000074,0x00000005,0x67625f75,0x00706f54,0x00060006,0x00000074,0x00000006,0x67625f75, + 0x74746f42,0x00006d6f,0x00050006,0x00000074,0x00000007,0x74735f75,0x00657461,0x00040005, + 0x00000076,0x6d617266,0x00000065,0x00030005,0x0000007f,0x0074696c,0x00050005,0x00000086, + 0x6867696c,0x756f4374,0x0000746e,0x00030005,0x0000008c,0x00000069,0x00050005,0x0000009d, + 0x65747461,0x7461756e,0x006e6f69,0x00050005,0x0000009e,0x746f7073,0x74636146,0x0000726f, + 0x00050005,0x0000009f,0x74736964,0x694c6f54,0x00746867,0x00050005,0x000000a9,0x6867696c, + 0x63655674,0x00726f74,0x00030005,0x000000b8,0x0000004c,0x00030005,0x000000bd,0x00747461, + 0x00040005,0x000000da,0x656e6f63,0x00726944,0x00050005,0x000000e1,0x6d6f7266,0x6867694c, + 0x00000074,0x00040005,0x000000e9,0x746f7073,0x00736f43,0x00040005,0x00000103,0x746f644e, + 0x0000004c,0x00040005,0x0000010d,0x6c796150,0x0064616f,0x00050006,0x0000010d,0x00000000, + 0x6f6c6f63,0x00000072,0x00050006,0x0000010d,0x00000001,0x6d726f6e,0x00006c61,0x00050006, + 0x0000010d,0x00000002,0x54736f70,0x00000000,0x00050006,0x0000010d,0x00000003,0x6f666e69, + 0x00000000,0x00060006,0x0000010d,0x00000004,0x6c63636f,0x64656475,0x00000000,0x00040005, + 0x0000010f,0x6c796170,0x0064616f,0x00040005,0x00000114,0x73616c74,0x00000000,0x00030005, + 0x00000125,0x00000048,0x00040005,0x0000012b,0x746f644e,0x00000048,0x00050005,0x00000130, + 0x6e696873,0x73656e69,0x00000073,0x00060005,0x00000136,0x63657073,0x72616c75,0x74636146, + 0x0000726f,0x00030005,0x00000163,0x00007870,0x00060005,0x00000166,0x4c5f6c67,0x636e7561, + 0x45444968,0x00005458,0x00050005,0x0000017f,0x6d617266,0x646e4965,0x00007865,0x00050005, + 0x00000180,0x67796152,0x75506e65,0x00006873,0x00070006,0x00000180,0x00000000,0x72665f75, + 0x49656d61,0x7865646e,0x00000000,0x00050006,0x00000180,0x00000001,0x6c665f75,0x00736761, + 0x00070006,0x00000180,0x00000002,0x616d5f75,0x756f4278,0x7365636e,0x00000000,0x00050006, + 0x00000180,0x00000003,0x61705f75,0x00000064,0x00030005,0x00000182,0x00006370,0x00050005, + 0x00000187,0x6e457470,0x656c6261,0x00000064,0x00060005,0x0000018c,0x75636361,0x616c756d, + 0x676e6974,0x00000000,0x00050005,0x00000191,0x75626564,0x6c694667,0x0000006c,0x00050005, + 0x00000197,0x4278616d,0x636e756f,0x00007365,0x00040005,0x0000019d,0x65646e69,0x00000078, + 0x00040005,0x000001a9,0x7474696a,0x00007265,0x00040005,0x000001b0,0x61726170,0x0000006d, + 0x00040005,0x000001b3,0x61726170,0x0000006d,0x00040005,0x000001b6,0x61726170,0x0000006d, + 0x00030005,0x000001b9,0x00007675,0x00030005,0x000001c4,0x0063646e,0x00050005,0x000001ce, + 0x77656976,0x67726154,0x00007465,0x00040005,0x000001d8,0x56726964,0x00776569,0x00040005, + 0x000001e5,0x6769726f,0x00006e69,0x00030005,0x000001ef,0x00726964,0x00060005,0x0000020d, + 0x726f7473,0x49656761,0x6567616d,0x00000000,0x00050005,0x00000231,0x69646172,0x65636e61, + 0x00000000,0x00040005,0x00000233,0x67696577,0x00007468,0x00050005,0x00000235,0x4f796172, + 0x69676972,0x0000006e,0x00040005,0x00000237,0x44796172,0x00007269,0x00040005,0x00000239, + 0x6e756f62,0x00006563,0x00060005,0x00000251,0x6d726f4e,0x75426c61,0x72656666,0x00000000, + 0x00050006,0x00000251,0x00000000,0x6d726f6e,0x00736c61,0x00030005,0x00000253,0x00000000, + 0x00060005,0x0000025e,0x69736f50,0x6e6f6974,0x66667542,0x00007265,0x00060006,0x0000025e, + 0x00000000,0x69736f70,0x6e6f6974,0x00000073,0x00030005,0x00000260,0x00000000,0x00030005, + 0x00000279,0x0074616d,0x00050005,0x00000280,0x614d5452,0x69726574,0x00006c61,0x00050006, + 0x00000280,0x00000000,0x66666964,0x00657375,0x00050006,0x00000280,0x00000001,0x69626d61, + 0x00746e65,0x00060006,0x00000280,0x00000002,0x63657073,0x72616c75,0x00000000,0x00060006, + 0x00000280,0x00000003,0x73696d65,0x65766973,0x00000000,0x00050006,0x00000280,0x00000004, + 0x61726170,0x0000736d,0x00060006,0x00000280,0x00000005,0x6867696c,0x70795474,0x00000065, + 0x00060006,0x00000280,0x00000006,0x6867696c,0x6c6f4374,0x0000726f,0x00070006,0x00000280, + 0x00000007,0x6867696c,0x72694474,0x69746365,0x00006e6f,0x00070006,0x00000280,0x00000008, + 0x6867696c,0x736f5074,0x6f697469,0x0000006e,0x00080006,0x00000280,0x00000009,0x6867696c, + 0x74744174,0x61756e65,0x6e6f6974,0x00000000,0x00060006,0x00000280,0x0000000a,0x6867696c, + 0x6f705374,0x00000074,0x00070006,0x00000280,0x0000000b,0x61697274,0x656c676e,0x61746144, + 0x00000000,0x00040006,0x00000280,0x0000000c,0x00726270,0x00050005,0x00000282,0x6574614d, + 0x6c616972,0x00000073,0x00060006,0x00000282,0x00000000,0x6574616d,0x6c616972,0x00000073, + 0x00050005,0x00000284,0x4274616d,0x65666675,0x00000072,0x00040005,0x0000029e,0x61726170, + 0x0000006d,0x00040005,0x000002a2,0x61726170,0x0000006d,0x00040005,0x000002a6,0x61726170, + 0x0000006d,0x00030005,0x000002ac,0x0000006e,0x00040005,0x000002b1,0x65626c61,0x00006f64, + 0x00050005,0x000002b5,0x63657073,0x626f7250,0x00000000,0x00030005,0x000002b9,0x00007075, + 0x00040005,0x000002c2,0x676e6174,0x00746e65,0x00050005,0x000002c7,0x61746962,0x6e65676e, + 0x00000074,0x00040005,0x000002d3,0x61726170,0x0000006d,0x00040005,0x000002d6,0x61726170, + 0x0000006d,0x00040005,0x000002d9,0x61726170,0x0000006d,0x00040005,0x000002e0,0x4477656e, + 0x00007269,0x00030005,0x000002f1,0x00000073,0x00040005,0x000002f9,0x61726170,0x0000006d, + 0x00040005,0x000002fc,0x61726170,0x0000006d,0x00040005,0x000002ff,0x61726170,0x0000006d, + 0x00040005,0x00000301,0x61726170,0x0000006d,0x00030005,0x00000326,0x00000070,0x00040005, + 0x00000339,0x61726170,0x0000006d,0x00040005,0x0000033c,0x61726170,0x0000006d,0x00040005, + 0x0000033f,0x61726170,0x0000006d,0x00050005,0x0000034d,0x4374756f,0x726f6c6f,0x00000000, + 0x00030005,0x00000359,0x00636361,0x00050005,0x0000035b,0x75636341,0x6675426d,0x00726566, + 0x00050006,0x0000035b,0x00000000,0x75636361,0x0000006d,0x00030005,0x0000035d,0x00000000, + 0x00030047,0x00000074,0x00000002,0x00040048,0x00000074,0x00000000,0x00000005,0x00050048, + 0x00000074,0x00000000,0x00000007,0x00000010,0x00050048,0x00000074,0x00000000,0x00000023, + 0x00000000,0x00040048,0x00000074,0x00000001,0x00000005,0x00050048,0x00000074,0x00000001, + 0x00000007,0x00000010,0x00050048,0x00000074,0x00000001,0x00000023,0x00000040,0x00040048, + 0x00000074,0x00000002,0x00000005,0x00050048,0x00000074,0x00000002,0x00000007,0x00000010, + 0x00050048,0x00000074,0x00000002,0x00000023,0x00000080,0x00050048,0x00000074,0x00000003, + 0x00000023,0x000000c0,0x00050048,0x00000074,0x00000004,0x00000023,0x000000d0,0x00050048, + 0x00000074,0x00000005,0x00000023,0x000000e0,0x00050048,0x00000074,0x00000006,0x00000023, + 0x000000f0,0x00050048,0x00000074,0x00000007,0x00000023,0x00000100,0x00040047,0x00000076, + 0x00000021,0x00000002,0x00040047,0x00000076,0x00000022,0x00000000,0x00040047,0x00000114, + 0x00000021,0x00000000,0x00040047,0x00000114,0x00000022,0x00000000,0x00040047,0x00000166, + 0x0000000b,0x000014c7,0x00030047,0x00000180,0x00000002,0x00050048,0x00000180,0x00000000, + 0x00000023,0x00000000,0x00050048,0x00000180,0x00000001,0x00000023,0x00000004,0x00050048, + 0x00000180,0x00000002,0x00000023,0x00000008,0x00050048,0x00000180,0x00000003,0x00000023, + 0x0000000c,0x00040047,0x0000020d,0x00000021,0x00000001,0x00040047,0x0000020d,0x00000022, + 0x00000000,0x00040047,0x00000250,0x00000006,0x00000010,0x00030047,0x00000251,0x00000002, + 0x00050048,0x00000251,0x00000000,0x00000023,0x00000000,0x00040047,0x00000253,0x00000021, + 0x00000005,0x00040047,0x00000253,0x00000022,0x00000000,0x00040047,0x0000025d,0x00000006, + 0x00000010,0x00030047,0x0000025e,0x00000002,0x00050048,0x0000025e,0x00000000,0x00000023, + 0x00000000,0x00040047,0x00000260,0x00000021,0x00000006,0x00040047,0x00000260,0x00000022, + 0x00000000,0x00040047,0x0000027a,0x00000006,0x00000010,0x00040047,0x0000027b,0x00000006, + 0x00000010,0x00040047,0x0000027c,0x00000006,0x00000010,0x00040047,0x0000027d,0x00000006, + 0x00000010,0x00040047,0x0000027e,0x00000006,0x00000010,0x00040047,0x0000027f,0x00000006, + 0x00000010,0x00050048,0x00000280,0x00000000,0x00000023,0x00000000,0x00050048,0x00000280, + 0x00000001,0x00000023,0x00000010,0x00050048,0x00000280,0x00000002,0x00000023,0x00000020, + 0x00050048,0x00000280,0x00000003,0x00000023,0x00000030,0x00050048,0x00000280,0x00000004, + 0x00000023,0x00000040,0x00050048,0x00000280,0x00000005,0x00000023,0x00000050,0x00050048, + 0x00000280,0x00000006,0x00000023,0x000000d0,0x00050048,0x00000280,0x00000007,0x00000023, + 0x00000150,0x00050048,0x00000280,0x00000008,0x00000023,0x000001d0,0x00050048,0x00000280, + 0x00000009,0x00000023,0x00000250,0x00050048,0x00000280,0x0000000a,0x00000023,0x000002d0, + 0x00050048,0x00000280,0x0000000b,0x00000023,0x00000350,0x00050048,0x00000280,0x0000000c, + 0x00000023,0x00000360,0x00040047,0x00000281,0x00000006,0x00000370,0x00030047,0x00000282, + 0x00000002,0x00050048,0x00000282,0x00000000,0x00000023,0x00000000,0x00040047,0x00000284, + 0x00000021,0x00000003,0x00040047,0x00000284,0x00000022,0x00000000,0x00040047,0x0000035a, + 0x00000006,0x00000010,0x00030047,0x0000035b,0x00000002,0x00050048,0x0000035b,0x00000000, + 0x00000023,0x00000000,0x00040047,0x0000035d,0x00000021,0x00000004,0x00040047,0x0000035d, 0x00000022,0x00000000,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00040015, 0x00000006,0x00000020,0x00000000,0x00040020,0x00000007,0x00000007,0x00000006,0x00030016, 0x00000008,0x00000020,0x00040017,0x00000009,0x00000008,0x00000002,0x00060021,0x0000000a, @@ -151,587 +150,567 @@ const uint32_t coin_vulkan_rt_raygen_spirv[] = { 0x0000ffff,0x0004002b,0x00000008,0x0000004c,0x37800000,0x00040020,0x00000050,0x00000007, 0x00000008,0x0004002b,0x00000006,0x00000052,0x00000000,0x0004002b,0x00000008,0x00000055, 0x00000000,0x0004002b,0x00000008,0x00000059,0x40c90fdb,0x0004002b,0x00000006,0x0000005a, - 0x00000001,0x0004002b,0x00000008,0x00000066,0x3f800000,0x00040018,0x00000070,0x00000017, - 0x00000004,0x000a001e,0x00000071,0x00000070,0x00000070,0x00000070,0x00000017,0x00000017, - 0x00000017,0x00000017,0x00000017,0x00040020,0x00000072,0x00000002,0x00000071,0x0004003b, - 0x00000072,0x00000073,0x00000002,0x0004002b,0x00000032,0x00000074,0x00000000,0x00040020, - 0x00000075,0x00000002,0x00000070,0x00040018,0x00000082,0x00000011,0x00000003,0x0004002b, - 0x00000032,0x00000092,0x00000001,0x00040020,0x00000093,0x00000007,0x00000017,0x00040020, - 0x00000097,0x00000007,0x00000032,0x0004002b,0x00000032,0x00000099,0x00000004,0x0004002b, - 0x00000006,0x0000009a,0x00000002,0x0004002b,0x00000032,0x000000a5,0x00000008,0x00020014, - 0x000000a6,0x0004002b,0x00000008,0x000000b1,0x7149f2ca,0x0004002b,0x00000032,0x000000b2, - 0x00000005,0x0004002b,0x00000008,0x000000b6,0x3f000000,0x0004002b,0x00000008,0x000000c4, - 0x38d1b717,0x0004002b,0x00000032,0x000000cf,0x00000009,0x0004002b,0x00000008,0x000000e7, - 0x3fc00000,0x0004002b,0x00000032,0x000000ec,0x00000007,0x0004002b,0x00000032,0x000000ff, - 0x0000000a,0x00040017,0x0000011c,0x00000006,0x00000004,0x0007001e,0x0000011d,0x00000017, - 0x00000017,0x00000017,0x0000011c,0x00000006,0x00040020,0x0000011e,0x000014da,0x0000011d, - 0x0004003b,0x0000011e,0x0000011f,0x000014da,0x00040020,0x00000120,0x000014da,0x00000006, - 0x000214dd,0x0000012e,0x00040020,0x0000012f,0x00000000,0x0000012e,0x0004003b,0x0000012f, - 0x00000130,0x00000000,0x0004002b,0x00000006,0x00000132,0x000000ff,0x0004002b,0x00000008, - 0x00000135,0x3a83126f,0x0004002b,0x00000008,0x0000014f,0x43000000,0x0004002b,0x00000032, - 0x0000015d,0x00000006,0x0004002b,0x00000032,0x0000016b,0x00000002,0x00040017,0x0000017d, - 0x00000006,0x00000002,0x00040020,0x0000017e,0x00000007,0x0000017d,0x00040017,0x00000180, - 0x00000006,0x00000003,0x00040020,0x00000181,0x00000001,0x00000180,0x0004003b,0x00000181, - 0x00000182,0x00000001,0x00040020,0x00000187,0x00000002,0x00000008,0x0006001e,0x0000019c, - 0x00000006,0x00000006,0x00000006,0x00000006,0x00040020,0x0000019d,0x00000009,0x0000019c, - 0x0004003b,0x0000019d,0x0000019e,0x00000009,0x00040020,0x0000019f,0x00000009,0x00000006, - 0x00040020,0x000001a2,0x00000007,0x000000a6,0x0004002b,0x00000006,0x000001b0,0x00000004, - 0x0004002b,0x00000006,0x000001b6,0x00000010,0x0005002c,0x00000009,0x000001c6,0x000000b6, - 0x000000b6,0x00040020,0x000001da,0x00000002,0x00000017,0x0005002c,0x00000009,0x000001de, - 0x00000066,0x00000066,0x0004002b,0x00000008,0x000001e3,0x40000000,0x0004002b,0x00000008, - 0x000001ef,0xbf800000,0x0004002b,0x00000006,0x000001f7,0x00000003,0x0007002c,0x00000017, - 0x0000020e,0x00000055,0x00000055,0x000001ef,0x00000055,0x0004002b,0x00000032,0x00000213, - 0x00000003,0x00090019,0x00000228,0x00000008,0x00000001,0x00000000,0x00000000,0x00000000, - 0x00000002,0x00000004,0x00040020,0x00000229,0x00000000,0x00000228,0x0004003b,0x00000229, - 0x0000022a,0x00000000,0x00040017,0x0000022d,0x00000032,0x00000002,0x0004002b,0x00000008, - 0x00000232,0x3f666666,0x0004002b,0x00000008,0x00000233,0x3e4ccccd,0x0004002b,0x00000008, - 0x00000234,0x3dcccccd,0x0007002c,0x00000017,0x00000235,0x00000232,0x00000233,0x00000234, - 0x00000066,0x0004002b,0x00000008,0x00000236,0x3f4ccccd,0x0004002b,0x00000008,0x00000237, - 0x3e99999a,0x0007002c,0x00000017,0x00000238,0x00000234,0x00000236,0x00000237,0x00000066, - 0x00040020,0x00000247,0x000014da,0x00000017,0x0006002c,0x00000011,0x0000024f,0x00000055, - 0x00000055,0x00000055,0x0006002c,0x00000011,0x00000251,0x00000066,0x00000066,0x00000066, - 0x0003001d,0x0000026d,0x00000017,0x0003001e,0x0000026e,0x0000026d,0x00040020,0x0000026f, - 0x0000000c,0x0000026e,0x0004003b,0x0000026f,0x00000270,0x0000000c,0x00040020,0x00000278, - 0x0000000c,0x00000017,0x0003001d,0x0000027a,0x00000017,0x0003001e,0x0000027b,0x0000027a, - 0x00040020,0x0000027c,0x0000000c,0x0000027b,0x0004003b,0x0000027c,0x0000027d,0x0000000c, - 0x0004002b,0x00000008,0x0000027f,0x4b189680,0x0007002c,0x00000017,0x00000280,0x00000055, - 0x00000055,0x00000055,0x0000027f,0x0004001c,0x00000297,0x00000017,0x00000018,0x0004001c, - 0x00000298,0x00000017,0x00000018,0x0004001c,0x00000299,0x00000017,0x00000018,0x0004001c, - 0x0000029a,0x00000017,0x00000018,0x0004001c,0x0000029b,0x00000017,0x00000018,0x0004001c, - 0x0000029c,0x00000017,0x00000018,0x000f001e,0x0000029d,0x00000017,0x00000017,0x00000017, - 0x00000017,0x00000017,0x00000297,0x00000298,0x00000299,0x0000029a,0x0000029b,0x0000029c, - 0x00000017,0x00000017,0x0003001d,0x0000029e,0x0000029d,0x0003001e,0x0000029f,0x0000029e, - 0x00040020,0x000002a0,0x0000000c,0x0000029f,0x0004003b,0x000002a0,0x000002a1,0x0000000c, - 0x00040020,0x000002a4,0x0000000c,0x0000029d,0x0004002b,0x00000008,0x000002da,0x3f7fbe77, - 0x0006002c,0x00000011,0x000002dc,0x00000055,0x00000055,0x00000066,0x0006002c,0x00000011, - 0x000002dd,0x00000066,0x00000055,0x00000055,0x0004002b,0x00000006,0x000002eb,0x000001af, - 0x0004002b,0x00000006,0x000002ee,0x00000009,0x0004002b,0x00000006,0x00000312,0x00000397, - 0x0004002b,0x00000008,0x0000034c,0x3f733333,0x0004002b,0x00000006,0x00000351,0x000001f7, - 0x0004002b,0x00000006,0x00000354,0x00000007,0x0003001d,0x00000377,0x00000017,0x0003001e, - 0x00000378,0x00000377,0x00040020,0x00000379,0x0000000c,0x00000378,0x0004003b,0x00000379, - 0x0000037a,0x0000000c,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8, - 0x00000005,0x0004003b,0x0000017e,0x0000017f,0x00000007,0x0004003b,0x00000007,0x0000019b, - 0x00000007,0x0004003b,0x000001a2,0x000001a3,0x00000007,0x0004003b,0x000001a2,0x000001a8, - 0x00000007,0x0004003b,0x000001a2,0x000001ad,0x00000007,0x0004003b,0x00000097,0x000001b3, - 0x00000007,0x0004003b,0x00000097,0x000001b9,0x00000007,0x0004003b,0x00000010,0x000001c5, - 0x00000007,0x0004003b,0x00000007,0x000001cc,0x00000007,0x0004003b,0x00000007,0x000001cf, - 0x00000007,0x0004003b,0x00000007,0x000001d2,0x00000007,0x0004003b,0x00000010,0x000001d5, - 0x00000007,0x0004003b,0x00000010,0x000001e1,0x00000007,0x0004003b,0x00000093,0x000001eb, - 0x00000007,0x0004003b,0x00000016,0x000001f4,0x00000007,0x0004003b,0x00000016,0x00000201, - 0x00000007,0x0004003b,0x00000016,0x0000020b,0x00000007,0x0004003b,0x00000016,0x0000024e, - 0x00000007,0x0004003b,0x00000016,0x00000250,0x00000007,0x0004003b,0x00000016,0x00000252, - 0x00000007,0x0004003b,0x00000016,0x00000254,0x00000007,0x0004003b,0x00000097,0x00000256, - 0x00000007,0x0004003b,0x0000001b,0x00000296,0x00000007,0x0004003b,0x00000016,0x000002bb, - 0x00000007,0x0004003b,0x00000016,0x000002bf,0x00000007,0x0004003b,0x0000001b,0x000002c3, - 0x00000007,0x0004003b,0x00000016,0x000002c9,0x00000007,0x0004003b,0x00000016,0x000002ce, - 0x00000007,0x0004003b,0x00000050,0x000002d2,0x00000007,0x0004003b,0x00000016,0x000002d6, - 0x00000007,0x0004003b,0x00000016,0x000002df,0x00000007,0x0004003b,0x00000016,0x000002e4, - 0x00000007,0x0004003b,0x00000007,0x000002f0,0x00000007,0x0004003b,0x00000007,0x000002f3, - 0x00000007,0x0004003b,0x00000007,0x000002f6,0x00000007,0x0004003b,0x00000016,0x000002fd, - 0x00000007,0x0004003b,0x00000016,0x0000030e,0x00000007,0x0004003b,0x00000007,0x00000316, - 0x00000007,0x0004003b,0x00000007,0x00000319,0x00000007,0x0004003b,0x00000007,0x0000031c, - 0x00000007,0x0004003b,0x00000010,0x0000031e,0x00000007,0x0004003b,0x00000050,0x00000343, - 0x00000007,0x0004003b,0x00000007,0x00000356,0x00000007,0x0004003b,0x00000007,0x00000359, - 0x00000007,0x0004003b,0x00000007,0x0000035c,0x00000007,0x0004003b,0x00000093,0x0000036a, - 0x00000007,0x0004003b,0x00000093,0x00000376,0x00000007,0x0004003d,0x00000180,0x00000183, - 0x00000182,0x0007004f,0x0000017d,0x00000184,0x00000183,0x00000183,0x00000000,0x00000001, - 0x0003003e,0x0000017f,0x00000184,0x00050041,0x00000007,0x00000185,0x0000017f,0x00000052, - 0x0004003d,0x00000006,0x00000186,0x00000185,0x00060041,0x00000187,0x00000188,0x00000073, - 0x00000099,0x00000052,0x0004003d,0x00000008,0x00000189,0x00000188,0x0007000c,0x00000008, - 0x0000018a,0x00000001,0x00000028,0x00000189,0x00000066,0x0004006d,0x00000006,0x0000018b, - 0x0000018a,0x000500ae,0x000000a6,0x0000018c,0x00000186,0x0000018b,0x000400a8,0x000000a6, - 0x0000018d,0x0000018c,0x000300f7,0x0000018f,0x00000000,0x000400fa,0x0000018d,0x0000018e, - 0x0000018f,0x000200f8,0x0000018e,0x00050041,0x00000007,0x00000190,0x0000017f,0x0000005a, - 0x0004003d,0x00000006,0x00000191,0x00000190,0x00060041,0x00000187,0x00000192,0x00000073, - 0x00000099,0x0000005a,0x0004003d,0x00000008,0x00000193,0x00000192,0x0007000c,0x00000008, - 0x00000194,0x00000001,0x00000028,0x00000193,0x00000066,0x0004006d,0x00000006,0x00000195, - 0x00000194,0x000500ae,0x000000a6,0x00000196,0x00000191,0x00000195,0x000200f9,0x0000018f, - 0x000200f8,0x0000018f,0x000700f5,0x000000a6,0x00000197,0x0000018c,0x00000005,0x00000196, - 0x0000018e,0x000300f7,0x00000199,0x00000000,0x000400fa,0x00000197,0x00000198,0x00000199, - 0x000200f8,0x00000198,0x000100fd,0x000200f8,0x00000199,0x00050041,0x0000019f,0x000001a0, - 0x0000019e,0x00000074,0x0004003d,0x00000006,0x000001a1,0x000001a0,0x0003003e,0x0000019b, - 0x000001a1,0x00050041,0x0000019f,0x000001a4,0x0000019e,0x00000092,0x0004003d,0x00000006, - 0x000001a5,0x000001a4,0x000500c7,0x00000006,0x000001a6,0x000001a5,0x0000005a,0x000500ab, - 0x000000a6,0x000001a7,0x000001a6,0x00000052,0x0003003e,0x000001a3,0x000001a7,0x00050041, - 0x0000019f,0x000001a9,0x0000019e,0x00000092,0x0004003d,0x00000006,0x000001aa,0x000001a9, - 0x000500c7,0x00000006,0x000001ab,0x000001aa,0x0000009a,0x000500ab,0x000000a6,0x000001ac, - 0x000001ab,0x00000052,0x0003003e,0x000001a8,0x000001ac,0x00050041,0x0000019f,0x000001ae, - 0x0000019e,0x00000092,0x0004003d,0x00000006,0x000001af,0x000001ae,0x000500c7,0x00000006, - 0x000001b1,0x000001af,0x000001b0,0x000500ab,0x000000a6,0x000001b2,0x000001b1,0x00000052, - 0x0003003e,0x000001ad,0x000001b2,0x00050041,0x0000019f,0x000001b4,0x0000019e,0x0000016b, - 0x0004003d,0x00000006,0x000001b5,0x000001b4,0x0008000c,0x00000006,0x000001b7,0x00000001, - 0x0000002c,0x000001b5,0x0000005a,0x000001b6,0x0004007c,0x00000032,0x000001b8,0x000001b7, - 0x0003003e,0x000001b3,0x000001b8,0x00050041,0x00000007,0x000001ba,0x0000017f,0x0000005a, - 0x0004003d,0x00000006,0x000001bb,0x000001ba,0x00060041,0x00000187,0x000001bc,0x00000073, - 0x00000099,0x00000052,0x0004003d,0x00000008,0x000001bd,0x000001bc,0x0007000c,0x00000008, - 0x000001be,0x00000001,0x00000028,0x000001bd,0x00000066,0x0004006d,0x00000006,0x000001bf, - 0x000001be,0x00050084,0x00000006,0x000001c0,0x000001bb,0x000001bf,0x00050041,0x00000007, - 0x000001c1,0x0000017f,0x00000052,0x0004003d,0x00000006,0x000001c2,0x000001c1,0x00050080, - 0x00000006,0x000001c3,0x000001c0,0x000001c2,0x0004007c,0x00000032,0x000001c4,0x000001c3, - 0x0003003e,0x000001b9,0x000001c4,0x0003003e,0x000001c5,0x000001c6,0x0004003d,0x000000a6, - 0x000001c7,0x000001a3,0x0004003d,0x000000a6,0x000001c8,0x000001a8,0x000500a7,0x000000a6, - 0x000001c9,0x000001c7,0x000001c8,0x000300f7,0x000001cb,0x00000000,0x000400fa,0x000001c9, - 0x000001ca,0x000001cb,0x000200f8,0x000001ca,0x00050041,0x00000007,0x000001cd,0x0000017f, - 0x00000052,0x0004003d,0x00000006,0x000001ce,0x000001cd,0x0003003e,0x000001cc,0x000001ce, - 0x00050041,0x00000007,0x000001d0,0x0000017f,0x0000005a,0x0004003d,0x00000006,0x000001d1, - 0x000001d0,0x0003003e,0x000001cf,0x000001d1,0x0004003d,0x00000006,0x000001d3,0x0000019b, - 0x0003003e,0x000001d2,0x000001d3,0x00070039,0x00000009,0x000001d4,0x0000000e,0x000001cc, - 0x000001cf,0x000001d2,0x0003003e,0x000001c5,0x000001d4,0x000200f9,0x000001cb,0x000200f8, - 0x000001cb,0x0004003d,0x0000017d,0x000001d6,0x0000017f,0x00040070,0x00000009,0x000001d7, - 0x000001d6,0x0004003d,0x00000009,0x000001d8,0x000001c5,0x00050081,0x00000009,0x000001d9, - 0x000001d7,0x000001d8,0x00050041,0x000001da,0x000001db,0x00000073,0x00000099,0x0004003d, - 0x00000017,0x000001dc,0x000001db,0x0007004f,0x00000009,0x000001dd,0x000001dc,0x000001dc, - 0x00000000,0x00000001,0x0007000c,0x00000009,0x000001df,0x00000001,0x00000028,0x000001dd, - 0x000001de,0x00050088,0x00000009,0x000001e0,0x000001d9,0x000001df,0x0003003e,0x000001d5, - 0x000001e0,0x0004003d,0x00000009,0x000001e2,0x000001d5,0x0005008e,0x00000009,0x000001e4, - 0x000001e2,0x000001e3,0x00050050,0x00000009,0x000001e5,0x00000066,0x00000066,0x00050083, - 0x00000009,0x000001e6,0x000001e4,0x000001e5,0x0003003e,0x000001e1,0x000001e6,0x00050041, - 0x00000050,0x000001e7,0x000001e1,0x0000005a,0x0004003d,0x00000008,0x000001e8,0x000001e7, - 0x0004007f,0x00000008,0x000001e9,0x000001e8,0x00050041,0x00000050,0x000001ea,0x000001e1, - 0x0000005a,0x0003003e,0x000001ea,0x000001e9,0x00050041,0x00000075,0x000001ec,0x00000073, - 0x0000016b,0x0004003d,0x00000070,0x000001ed,0x000001ec,0x0004003d,0x00000009,0x000001ee, - 0x000001e1,0x00050051,0x00000008,0x000001f0,0x000001ee,0x00000000,0x00050051,0x00000008, - 0x000001f1,0x000001ee,0x00000001,0x00070050,0x00000017,0x000001f2,0x000001f0,0x000001f1, - 0x000001ef,0x00000066,0x00050091,0x00000017,0x000001f3,0x000001ed,0x000001f2,0x0003003e, - 0x000001eb,0x000001f3,0x0004003d,0x00000017,0x000001f5,0x000001eb,0x0008004f,0x00000011, - 0x000001f6,0x000001f5,0x000001f5,0x00000000,0x00000001,0x00000002,0x00050041,0x00000050, - 0x000001f8,0x000001eb,0x000001f7,0x0004003d,0x00000008,0x000001f9,0x000001f8,0x00060050, - 0x00000011,0x000001fa,0x000001f9,0x000001f9,0x000001f9,0x00050088,0x00000011,0x000001fb, - 0x000001f6,0x000001fa,0x0003003e,0x000001f4,0x000001fb,0x00060041,0x00000187,0x000001fc, - 0x00000073,0x00000099,0x0000009a,0x0004003d,0x00000008,0x000001fd,0x000001fc,0x000500ba, - 0x000000a6,0x000001fe,0x000001fd,0x000000b6,0x000300f7,0x00000200,0x00000000,0x000400fa, - 0x000001fe,0x000001ff,0x00000212,0x000200f8,0x000001ff,0x00050041,0x00000075,0x00000202, - 0x00000073,0x00000092,0x0004003d,0x00000070,0x00000203,0x00000202,0x0004003d,0x00000011, - 0x00000204,0x000001f4,0x0007004f,0x00000009,0x00000205,0x00000204,0x00000204,0x00000000, - 0x00000001,0x00050051,0x00000008,0x00000206,0x00000205,0x00000000,0x00050051,0x00000008, - 0x00000207,0x00000205,0x00000001,0x00070050,0x00000017,0x00000208,0x00000206,0x00000207, - 0x00000055,0x00000066,0x00050091,0x00000017,0x00000209,0x00000203,0x00000208,0x0008004f, - 0x00000011,0x0000020a,0x00000209,0x00000209,0x00000000,0x00000001,0x00000002,0x0003003e, - 0x00000201,0x0000020a,0x00050041,0x00000075,0x0000020c,0x00000073,0x00000092,0x0004003d, - 0x00000070,0x0000020d,0x0000020c,0x00050091,0x00000017,0x0000020f,0x0000020d,0x0000020e, - 0x0008004f,0x00000011,0x00000210,0x0000020f,0x0000020f,0x00000000,0x00000001,0x00000002, - 0x0006000c,0x00000011,0x00000211,0x00000001,0x00000045,0x00000210,0x0003003e,0x0000020b, - 0x00000211,0x000200f9,0x00000200,0x000200f8,0x00000212,0x00050041,0x000001da,0x00000214, - 0x00000073,0x00000213,0x0004003d,0x00000017,0x00000215,0x00000214,0x0008004f,0x00000011, - 0x00000216,0x00000215,0x00000215,0x00000000,0x00000001,0x00000002,0x0003003e,0x00000201, - 0x00000216,0x00050041,0x00000075,0x00000217,0x00000073,0x00000092,0x0004003d,0x00000070, - 0x00000218,0x00000217,0x0004003d,0x00000011,0x00000219,0x000001f4,0x00050051,0x00000008, - 0x0000021a,0x00000219,0x00000000,0x00050051,0x00000008,0x0000021b,0x00000219,0x00000001, - 0x00050051,0x00000008,0x0000021c,0x00000219,0x00000002,0x00070050,0x00000017,0x0000021d, - 0x0000021a,0x0000021b,0x0000021c,0x00000055,0x00050091,0x00000017,0x0000021e,0x00000218, - 0x0000021d,0x0008004f,0x00000011,0x0000021f,0x0000021e,0x0000021e,0x00000000,0x00000001, - 0x00000002,0x0006000c,0x00000011,0x00000220,0x00000001,0x00000045,0x0000021f,0x0003003e, - 0x0000020b,0x00000220,0x000200f9,0x00000200,0x000200f8,0x00000200,0x0004003d,0x000000a6, - 0x00000221,0x000001ad,0x000300f7,0x00000223,0x00000000,0x000400fa,0x00000221,0x00000222, - 0x00000223,0x000200f8,0x00000222,0x00060041,0x00000120,0x00000224,0x0000011f,0x00000213, - 0x0000005a,0x0003003e,0x00000224,0x00000052,0x0004003d,0x0000012e,0x00000225,0x00000130, - 0x0004003d,0x00000011,0x00000226,0x00000201,0x0004003d,0x00000011,0x00000227,0x0000020b, - 0x000c115d,0x00000225,0x0000005a,0x00000132,0x00000052,0x00000052,0x00000052,0x00000226, - 0x00000135,0x00000227,0x000000b1,0x0000011f,0x0004003d,0x00000228,0x0000022b,0x0000022a, - 0x0004003d,0x0000017d,0x0000022c,0x0000017f,0x0004007c,0x0000022d,0x0000022e,0x0000022c, - 0x00060041,0x00000120,0x0000022f,0x0000011f,0x00000213,0x0000005a,0x0004003d,0x00000006, - 0x00000230,0x0000022f,0x000500ab,0x000000a6,0x00000231,0x00000230,0x00000052,0x000600a9, - 0x00000017,0x00000239,0x00000231,0x00000235,0x00000238,0x00040063,0x0000022b,0x0000022e, - 0x00000239,0x000100fd,0x000200f8,0x00000223,0x0004003d,0x000000a6,0x0000023b,0x000001a3, - 0x000400a8,0x000000a6,0x0000023c,0x0000023b,0x000300f7,0x0000023e,0x00000000,0x000400fa, - 0x0000023c,0x0000023d,0x0000023e,0x000200f8,0x0000023d,0x00060041,0x00000120,0x0000023f, - 0x0000011f,0x00000213,0x0000005a,0x0003003e,0x0000023f,0x00000052,0x00060041,0x00000120, - 0x00000240,0x0000011f,0x00000213,0x000001f7,0x0003003e,0x00000240,0x00000052,0x0004003d, - 0x0000012e,0x00000241,0x00000130,0x0004003d,0x00000011,0x00000242,0x00000201,0x0004003d, - 0x00000011,0x00000243,0x0000020b,0x000c115d,0x00000241,0x0000005a,0x00000132,0x00000052, - 0x00000052,0x00000052,0x00000242,0x00000135,0x00000243,0x000000b1,0x0000011f,0x0004003d, - 0x00000228,0x00000244,0x0000022a,0x0004003d,0x0000017d,0x00000245,0x0000017f,0x0004007c, - 0x0000022d,0x00000246,0x00000245,0x00050041,0x00000247,0x00000248,0x0000011f,0x00000074, - 0x0004003d,0x00000017,0x00000249,0x00000248,0x00070050,0x00000017,0x0000024a,0x00000055, - 0x00000055,0x00000055,0x00000055,0x00070050,0x00000017,0x0000024b,0x00000066,0x00000066, - 0x00000066,0x00000066,0x0008000c,0x00000017,0x0000024c,0x00000001,0x0000002b,0x00000249, - 0x0000024a,0x0000024b,0x00040063,0x00000244,0x00000246,0x0000024c,0x000100fd,0x000200f8, - 0x0000023e,0x0003003e,0x0000024e,0x0000024f,0x0003003e,0x00000250,0x00000251,0x0004003d, - 0x00000011,0x00000253,0x00000201,0x0003003e,0x00000252,0x00000253,0x0004003d,0x00000011, - 0x00000255,0x0000020b,0x0003003e,0x00000254,0x00000255,0x0003003e,0x00000256,0x00000074, - 0x000200f9,0x00000257,0x000200f8,0x00000257,0x000400f6,0x00000259,0x0000025a,0x00000000, - 0x000200f9,0x0000025b,0x000200f8,0x0000025b,0x0004003d,0x00000032,0x0000025c,0x00000256, - 0x0004003d,0x00000032,0x0000025d,0x000001b3,0x000500b1,0x000000a6,0x0000025e,0x0000025c, - 0x0000025d,0x000400fa,0x0000025e,0x00000258,0x00000259,0x000200f8,0x00000258,0x00060041, - 0x00000120,0x0000025f,0x0000011f,0x00000213,0x0000005a,0x0003003e,0x0000025f,0x00000052, - 0x00060041,0x00000120,0x00000260,0x0000011f,0x00000213,0x000001f7,0x0003003e,0x00000260, - 0x0000005a,0x0004003d,0x0000012e,0x00000261,0x00000130,0x0004003d,0x00000011,0x00000262, - 0x00000252,0x0004003d,0x00000011,0x00000263,0x00000254,0x000c115d,0x00000261,0x0000005a, - 0x00000132,0x00000052,0x00000052,0x00000052,0x00000262,0x00000135,0x00000263,0x000000b1, - 0x0000011f,0x00060041,0x00000120,0x00000264,0x0000011f,0x00000213,0x0000005a,0x0004003d, - 0x00000006,0x00000265,0x00000264,0x000500aa,0x000000a6,0x00000266,0x00000265,0x00000052, - 0x000300f7,0x00000268,0x00000000,0x000400fa,0x00000266,0x00000267,0x00000268,0x000200f8, - 0x00000267,0x0004003d,0x00000032,0x00000269,0x00000256,0x000500aa,0x000000a6,0x0000026a, - 0x00000269,0x00000074,0x000300f7,0x0000026c,0x00000000,0x000400fa,0x0000026a,0x0000026b, - 0x0000026c,0x000200f8,0x0000026b,0x0004003d,0x00000032,0x00000271,0x000001b9,0x0004003d, - 0x00000011,0x00000272,0x00000254,0x0004007f,0x00000011,0x00000273,0x00000272,0x00050051, - 0x00000008,0x00000274,0x00000273,0x00000000,0x00050051,0x00000008,0x00000275,0x00000273, - 0x00000001,0x00050051,0x00000008,0x00000276,0x00000273,0x00000002,0x00070050,0x00000017, - 0x00000277,0x00000274,0x00000275,0x00000276,0x00000066,0x00060041,0x00000278,0x00000279, - 0x00000270,0x00000074,0x00000271,0x0003003e,0x00000279,0x00000277,0x0004003d,0x00000032, - 0x0000027e,0x000001b9,0x00060041,0x00000278,0x00000281,0x0000027d,0x00000074,0x0000027e, - 0x0003003e,0x00000281,0x00000280,0x000200f9,0x0000026c,0x000200f8,0x0000026c,0x0004003d, - 0x00000011,0x00000282,0x00000250,0x00050041,0x00000247,0x00000283,0x0000011f,0x00000074, - 0x0004003d,0x00000017,0x00000284,0x00000283,0x0008004f,0x00000011,0x00000285,0x00000284, - 0x00000284,0x00000000,0x00000001,0x00000002,0x00050085,0x00000011,0x00000286,0x00000282, - 0x00000285,0x0004003d,0x00000011,0x00000287,0x0000024e,0x00050081,0x00000011,0x00000288, - 0x00000287,0x00000286,0x0003003e,0x0000024e,0x00000288,0x000200f9,0x00000259,0x000200f8, - 0x00000268,0x0004003d,0x00000032,0x0000028a,0x00000256,0x000500aa,0x000000a6,0x0000028b, - 0x0000028a,0x00000074,0x000300f7,0x0000028d,0x00000000,0x000400fa,0x0000028b,0x0000028c, - 0x0000028d,0x000200f8,0x0000028c,0x0004003d,0x00000032,0x0000028e,0x000001b9,0x00050041, - 0x00000247,0x0000028f,0x0000011f,0x00000092,0x0004003d,0x00000017,0x00000290,0x0000028f, - 0x00060041,0x00000278,0x00000291,0x00000270,0x00000074,0x0000028e,0x0003003e,0x00000291, - 0x00000290,0x0004003d,0x00000032,0x00000292,0x000001b9,0x00050041,0x00000247,0x00000293, - 0x0000011f,0x0000016b,0x0004003d,0x00000017,0x00000294,0x00000293,0x00060041,0x00000278, - 0x00000295,0x0000027d,0x00000074,0x00000292,0x0003003e,0x00000295,0x00000294,0x000200f9, - 0x0000028d,0x000200f8,0x0000028d,0x00060041,0x00000120,0x000002a2,0x0000011f,0x00000213, - 0x00000052,0x0004003d,0x00000006,0x000002a3,0x000002a2,0x00060041,0x000002a4,0x000002a5, - 0x000002a1,0x00000074,0x000002a3,0x0004003d,0x0000029d,0x000002a6,0x000002a5,0x00040190, - 0x0000001a,0x000002a7,0x000002a6,0x0003003e,0x00000296,0x000002a7,0x0004003d,0x00000011, - 0x000002a8,0x00000250,0x00050041,0x00000247,0x000002a9,0x0000011f,0x00000074,0x0004003d, - 0x00000017,0x000002aa,0x000002a9,0x0008004f,0x00000011,0x000002ab,0x000002aa,0x000002aa, - 0x00000000,0x00000001,0x00000002,0x00050085,0x00000011,0x000002ac,0x000002a8,0x000002ab, - 0x0004003d,0x00000011,0x000002ad,0x0000024e,0x00050081,0x00000011,0x000002ae,0x000002ad, - 0x000002ac,0x0003003e,0x0000024e,0x000002ae,0x00050041,0x00000247,0x000002af,0x0000011f, - 0x00000074,0x0004003d,0x00000017,0x000002b0,0x000002af,0x0008004f,0x00000011,0x000002b1, - 0x000002b0,0x000002b0,0x00000000,0x00000001,0x00000002,0x00050041,0x00000247,0x000002b2, - 0x0000011f,0x00000074,0x0004003d,0x00000017,0x000002b3,0x000002b2,0x0008004f,0x00000011, - 0x000002b4,0x000002b3,0x000002b3,0x00000000,0x00000001,0x00000002,0x00050094,0x00000008, - 0x000002b5,0x000002b1,0x000002b4,0x000500ba,0x000000a6,0x000002b6,0x000002b5,0x00000055, - 0x000300f7,0x000002b8,0x00000000,0x000400fa,0x000002b6,0x000002b7,0x000002b8,0x000200f8, - 0x000002b7,0x000200f9,0x00000259,0x000200f8,0x000002b8,0x0004003d,0x00000011,0x000002ba, - 0x00000250,0x00050041,0x00000247,0x000002bc,0x0000011f,0x0000016b,0x0004003d,0x00000017, - 0x000002bd,0x000002bc,0x0008004f,0x00000011,0x000002be,0x000002bd,0x000002bd,0x00000000, - 0x00000001,0x00000002,0x0003003e,0x000002bb,0x000002be,0x00050041,0x00000247,0x000002c0, - 0x0000011f,0x00000092,0x0004003d,0x00000017,0x000002c1,0x000002c0,0x0008004f,0x00000011, - 0x000002c2,0x000002c1,0x000002c1,0x00000000,0x00000001,0x00000002,0x0003003e,0x000002bf, - 0x000002c2,0x0004003d,0x0000001a,0x000002c4,0x00000296,0x0003003e,0x000002c3,0x000002c4, - 0x00070039,0x00000011,0x000002c5,0x00000020,0x000002bb,0x000002bf,0x000002c3,0x00050085, - 0x00000011,0x000002c6,0x000002ba,0x000002c5,0x0004003d,0x00000011,0x000002c7,0x0000024e, - 0x00050081,0x00000011,0x000002c8,0x000002c7,0x000002c6,0x0003003e,0x0000024e,0x000002c8, - 0x00050041,0x00000247,0x000002ca,0x0000011f,0x00000092,0x0004003d,0x00000017,0x000002cb, - 0x000002ca,0x0008004f,0x00000011,0x000002cc,0x000002cb,0x000002cb,0x00000000,0x00000001, - 0x00000002,0x0006000c,0x00000011,0x000002cd,0x00000001,0x00000045,0x000002cc,0x0003003e, - 0x000002c9,0x000002cd,0x00050041,0x00000093,0x000002cf,0x00000296,0x00000074,0x0004003d, - 0x00000017,0x000002d0,0x000002cf,0x0008004f,0x00000011,0x000002d1,0x000002d0,0x000002d0, - 0x00000000,0x00000001,0x00000002,0x0003003e,0x000002ce,0x000002d1,0x00060041,0x00000050, - 0x000002d3,0x00000296,0x00000099,0x00000052,0x0004003d,0x00000008,0x000002d4,0x000002d3, - 0x0008000c,0x00000008,0x000002d5,0x00000001,0x0000002b,0x000002d4,0x00000055,0x00000066, - 0x0003003e,0x000002d2,0x000002d5,0x00050041,0x00000050,0x000002d7,0x000002c9,0x0000009a, - 0x0004003d,0x00000008,0x000002d8,0x000002d7,0x0006000c,0x00000008,0x000002d9,0x00000001, - 0x00000004,0x000002d8,0x000500b8,0x000000a6,0x000002db,0x000002d9,0x000002da,0x000600a9, - 0x00000011,0x000002de,0x000002db,0x000002dc,0x000002dd,0x0003003e,0x000002d6,0x000002de, - 0x0004003d,0x00000011,0x000002e0,0x000002d6,0x0004003d,0x00000011,0x000002e1,0x000002c9, - 0x0007000c,0x00000011,0x000002e2,0x00000001,0x00000044,0x000002e0,0x000002e1,0x0006000c, - 0x00000011,0x000002e3,0x00000001,0x00000045,0x000002e2,0x0003003e,0x000002df,0x000002e3, - 0x0004003d,0x00000011,0x000002e5,0x000002c9,0x0004003d,0x00000011,0x000002e6,0x000002df, - 0x0007000c,0x00000011,0x000002e7,0x00000001,0x00000044,0x000002e5,0x000002e6,0x0003003e, - 0x000002e4,0x000002e7,0x0004003d,0x00000006,0x000002e8,0x0000019b,0x0004003d,0x00000032, - 0x000002e9,0x00000256,0x0004007c,0x00000006,0x000002ea,0x000002e9,0x00050084,0x00000006, - 0x000002ec,0x000002ea,0x000002eb,0x00050080,0x00000006,0x000002ed,0x000002e8,0x000002ec, - 0x00050080,0x00000006,0x000002ef,0x000002ed,0x000002ee,0x00050041,0x00000007,0x000002f1, - 0x0000017f,0x00000052,0x0004003d,0x00000006,0x000002f2,0x000002f1,0x0003003e,0x000002f0, - 0x000002f2,0x00050041,0x00000007,0x000002f4,0x0000017f,0x0000005a,0x0004003d,0x00000006, - 0x000002f5,0x000002f4,0x0003003e,0x000002f3,0x000002f5,0x0003003e,0x000002f6,0x000002ef, - 0x00070039,0x00000009,0x000002f7,0x0000000e,0x000002f0,0x000002f3,0x000002f6,0x00050051, - 0x00000008,0x000002f8,0x000002f7,0x00000000,0x0004003d,0x00000008,0x000002f9,0x000002d2, - 0x000500b8,0x000000a6,0x000002fa,0x000002f8,0x000002f9,0x000300f7,0x000002fc,0x00000000, - 0x000400fa,0x000002fa,0x000002fb,0x0000030d,0x000200f8,0x000002fb,0x0004003d,0x00000011, - 0x000002fe,0x00000254,0x0004003d,0x00000011,0x000002ff,0x000002c9,0x0007000c,0x00000011, - 0x00000300,0x00000001,0x00000047,0x000002fe,0x000002ff,0x0003003e,0x000002fd,0x00000300, - 0x0004003d,0x00000011,0x00000301,0x000002ce,0x00050041,0x00000093,0x00000302,0x00000296, - 0x0000016b,0x0004003d,0x00000017,0x00000303,0x00000302,0x0008004f,0x00000011,0x00000304, - 0x00000303,0x00000303,0x00000000,0x00000001,0x00000002,0x00060050,0x00000011,0x00000305, - 0x000000b6,0x000000b6,0x000000b6,0x0008000c,0x00000011,0x00000306,0x00000001,0x0000002e, - 0x00000301,0x00000304,0x00000305,0x0004003d,0x00000008,0x00000307,0x000002d2,0x0007000c, - 0x00000008,0x00000308,0x00000001,0x00000028,0x00000307,0x000000c4,0x00060050,0x00000011, - 0x00000309,0x00000308,0x00000308,0x00000308,0x00050088,0x00000011,0x0000030a,0x00000306, - 0x00000309,0x0004003d,0x00000011,0x0000030b,0x00000250,0x00050085,0x00000011,0x0000030c, - 0x0000030b,0x0000030a,0x0003003e,0x00000250,0x0000030c,0x000200f9,0x000002fc,0x000200f8, - 0x0000030d,0x0004003d,0x00000006,0x0000030f,0x0000019b,0x0004003d,0x00000032,0x00000310, - 0x00000256,0x0004007c,0x00000006,0x00000311,0x00000310,0x00050084,0x00000006,0x00000313, - 0x00000311,0x00000312,0x00050080,0x00000006,0x00000314,0x0000030f,0x00000313,0x00050080, - 0x00000006,0x00000315,0x00000314,0x0000005a,0x00050041,0x00000007,0x00000317,0x0000017f, - 0x00000052,0x0004003d,0x00000006,0x00000318,0x00000317,0x0003003e,0x00000316,0x00000318, - 0x00050041,0x00000007,0x0000031a,0x0000017f,0x0000005a,0x0004003d,0x00000006,0x0000031b, - 0x0000031a,0x0003003e,0x00000319,0x0000031b,0x0003003e,0x0000031c,0x00000315,0x00070039, - 0x00000009,0x0000031d,0x0000000e,0x00000316,0x00000319,0x0000031c,0x0003003e,0x0000031e, - 0x0000031d,0x00050039,0x00000011,0x0000031f,0x00000014,0x0000031e,0x0003003e,0x0000030e, - 0x0000031f,0x0004003d,0x00000011,0x00000320,0x000002df,0x00050041,0x00000050,0x00000321, - 0x0000030e,0x00000052,0x0004003d,0x00000008,0x00000322,0x00000321,0x0005008e,0x00000011, - 0x00000323,0x00000320,0x00000322,0x0004003d,0x00000011,0x00000324,0x000002e4,0x00050041, - 0x00000050,0x00000325,0x0000030e,0x0000005a,0x0004003d,0x00000008,0x00000326,0x00000325, - 0x0005008e,0x00000011,0x00000327,0x00000324,0x00000326,0x00050081,0x00000011,0x00000328, - 0x00000323,0x00000327,0x0004003d,0x00000011,0x00000329,0x000002c9,0x00050041,0x00000050, - 0x0000032a,0x0000030e,0x0000009a,0x0004003d,0x00000008,0x0000032b,0x0000032a,0x0005008e, - 0x00000011,0x0000032c,0x00000329,0x0000032b,0x00050081,0x00000011,0x0000032d,0x00000328, - 0x0000032c,0x0006000c,0x00000011,0x0000032e,0x00000001,0x00000045,0x0000032d,0x0003003e, - 0x000002fd,0x0000032e,0x0004003d,0x00000011,0x0000032f,0x000002ce,0x0004003d,0x00000008, - 0x00000330,0x000002d2,0x00050083,0x00000008,0x00000331,0x00000066,0x00000330,0x0007000c, - 0x00000008,0x00000332,0x00000001,0x00000028,0x00000331,0x000000c4,0x00060050,0x00000011, - 0x00000333,0x00000332,0x00000332,0x00000332,0x00050088,0x00000011,0x00000334,0x0000032f, - 0x00000333,0x0004003d,0x00000011,0x00000335,0x00000250,0x00050085,0x00000011,0x00000336, - 0x00000335,0x00000334,0x0003003e,0x00000250,0x00000336,0x000200f9,0x000002fc,0x000200f8, - 0x000002fc,0x00050041,0x00000247,0x00000337,0x0000011f,0x0000016b,0x0004003d,0x00000017, - 0x00000338,0x00000337,0x0008004f,0x00000011,0x00000339,0x00000338,0x00000338,0x00000000, - 0x00000001,0x00000002,0x0004003d,0x00000011,0x0000033a,0x000002c9,0x0005008e,0x00000011, - 0x0000033b,0x0000033a,0x00000135,0x00050081,0x00000011,0x0000033c,0x00000339,0x0000033b, - 0x0003003e,0x00000252,0x0000033c,0x0004003d,0x00000011,0x0000033d,0x000002fd,0x0006000c, - 0x00000011,0x0000033e,0x00000001,0x00000045,0x0000033d,0x0003003e,0x00000254,0x0000033e, - 0x0004003d,0x00000032,0x0000033f,0x00000256,0x000500ad,0x000000a6,0x00000340,0x0000033f, - 0x00000074,0x000300f7,0x00000342,0x00000000,0x000400fa,0x00000340,0x00000341,0x00000342, - 0x000200f8,0x00000341,0x00050041,0x00000050,0x00000344,0x00000250,0x00000052,0x0004003d, - 0x00000008,0x00000345,0x00000344,0x00050041,0x00000050,0x00000346,0x00000250,0x0000005a, - 0x0004003d,0x00000008,0x00000347,0x00000346,0x0007000c,0x00000008,0x00000348,0x00000001, - 0x00000028,0x00000345,0x00000347,0x00050041,0x00000050,0x00000349,0x00000250,0x0000009a, - 0x0004003d,0x00000008,0x0000034a,0x00000349,0x0007000c,0x00000008,0x0000034b,0x00000001, - 0x00000028,0x00000348,0x0000034a,0x0008000c,0x00000008,0x0000034d,0x00000001,0x0000002b, - 0x0000034b,0x00000234,0x0000034c,0x0003003e,0x00000343,0x0000034d,0x0004003d,0x00000006, - 0x0000034e,0x0000019b,0x0004003d,0x00000032,0x0000034f,0x00000256,0x0004007c,0x00000006, - 0x00000350,0x0000034f,0x00050084,0x00000006,0x00000352,0x00000350,0x00000351,0x00050080, - 0x00000006,0x00000353,0x0000034e,0x00000352,0x00050080,0x00000006,0x00000355,0x00000353, - 0x00000354,0x00050041,0x00000007,0x00000357,0x0000017f,0x00000052,0x0004003d,0x00000006, - 0x00000358,0x00000357,0x0003003e,0x00000356,0x00000358,0x00050041,0x00000007,0x0000035a, - 0x0000017f,0x0000005a,0x0004003d,0x00000006,0x0000035b,0x0000035a,0x0003003e,0x00000359, - 0x0000035b,0x0003003e,0x0000035c,0x00000355,0x00070039,0x00000009,0x0000035d,0x0000000e, - 0x00000356,0x00000359,0x0000035c,0x00050051,0x00000008,0x0000035e,0x0000035d,0x00000000, - 0x0004003d,0x00000008,0x0000035f,0x00000343,0x000500ba,0x000000a6,0x00000360,0x0000035e, - 0x0000035f,0x000300f7,0x00000362,0x00000000,0x000400fa,0x00000360,0x00000361,0x00000362, - 0x000200f8,0x00000361,0x000200f9,0x00000259,0x000200f8,0x00000362,0x0004003d,0x00000008, - 0x00000364,0x00000343,0x0004003d,0x00000011,0x00000365,0x00000250,0x00060050,0x00000011, - 0x00000366,0x00000364,0x00000364,0x00000364,0x00050088,0x00000011,0x00000367,0x00000365, - 0x00000366,0x0003003e,0x00000250,0x00000367,0x000200f9,0x00000342,0x000200f8,0x00000342, - 0x000200f9,0x0000025a,0x000200f8,0x0000025a,0x0004003d,0x00000032,0x00000368,0x00000256, - 0x00050080,0x00000032,0x00000369,0x00000368,0x00000092,0x0003003e,0x00000256,0x00000369, - 0x000200f9,0x00000257,0x000200f8,0x00000259,0x0004003d,0x00000011,0x0000036b,0x0000024e, - 0x00060050,0x00000011,0x0000036c,0x00000055,0x00000055,0x00000055,0x00060050,0x00000011, - 0x0000036d,0x00000066,0x00000066,0x00000066,0x0008000c,0x00000011,0x0000036e,0x00000001, - 0x0000002b,0x0000036b,0x0000036c,0x0000036d,0x00050051,0x00000008,0x0000036f,0x0000036e, - 0x00000000,0x00050051,0x00000008,0x00000370,0x0000036e,0x00000001,0x00050051,0x00000008, - 0x00000371,0x0000036e,0x00000002,0x00070050,0x00000017,0x00000372,0x0000036f,0x00000370, - 0x00000371,0x00000066,0x0003003e,0x0000036a,0x00000372,0x0004003d,0x000000a6,0x00000373, - 0x000001a8,0x000300f7,0x00000375,0x00000000,0x000400fa,0x00000373,0x00000374,0x00000390, - 0x000200f8,0x00000374,0x0004003d,0x00000032,0x0000037b,0x000001b9,0x00060041,0x00000278, - 0x0000037c,0x0000037a,0x00000074,0x0000037b,0x0004003d,0x00000017,0x0000037d,0x0000037c, - 0x0003003e,0x00000376,0x0000037d,0x0004003d,0x00000017,0x0000037e,0x0000036a,0x0008004f, - 0x00000011,0x0000037f,0x0000037e,0x0000037e,0x00000000,0x00000001,0x00000002,0x0004003d, - 0x00000017,0x00000380,0x00000376,0x0008004f,0x00000011,0x00000381,0x00000380,0x00000380, - 0x00000000,0x00000001,0x00000002,0x00050081,0x00000011,0x00000382,0x00000381,0x0000037f, - 0x00050041,0x00000050,0x00000383,0x00000376,0x00000052,0x00050051,0x00000008,0x00000384, - 0x00000382,0x00000000,0x0003003e,0x00000383,0x00000384,0x00050041,0x00000050,0x00000385, - 0x00000376,0x0000005a,0x00050051,0x00000008,0x00000386,0x00000382,0x00000001,0x0003003e, - 0x00000385,0x00000386,0x00050041,0x00000050,0x00000387,0x00000376,0x0000009a,0x00050051, - 0x00000008,0x00000388,0x00000382,0x00000002,0x0003003e,0x00000387,0x00000388,0x00050041, - 0x00000050,0x00000389,0x00000376,0x000001f7,0x0004003d,0x00000008,0x0000038a,0x00000389, - 0x00050081,0x00000008,0x0000038b,0x0000038a,0x00000066,0x00050041,0x00000050,0x0000038c, - 0x00000376,0x000001f7,0x0003003e,0x0000038c,0x0000038b,0x0004003d,0x00000032,0x0000038d, - 0x000001b9,0x0004003d,0x00000017,0x0000038e,0x00000376,0x00060041,0x00000278,0x0000038f, - 0x0000037a,0x00000074,0x0000038d,0x0003003e,0x0000038f,0x0000038e,0x000200f9,0x00000375, - 0x000200f8,0x00000390,0x0004003d,0x00000032,0x00000391,0x000001b9,0x0004003d,0x00000017, - 0x00000392,0x0000036a,0x00060041,0x00000278,0x00000393,0x0000037a,0x00000074,0x00000391, - 0x0003003e,0x00000393,0x00000392,0x000200f9,0x00000375,0x000200f8,0x00000375,0x0004003d, - 0x00000228,0x00000394,0x0000022a,0x0004003d,0x0000017d,0x00000395,0x0000017f,0x0004007c, - 0x0000022d,0x00000396,0x00000395,0x0004003d,0x00000017,0x00000397,0x0000036a,0x00040063, - 0x00000394,0x00000396,0x00000397,0x000100fd,0x00010038,0x00050036,0x00000009,0x0000000e, - 0x00000000,0x0000000a,0x00030037,0x00000007,0x0000000b,0x00030037,0x00000007,0x0000000c, - 0x00030037,0x00000007,0x0000000d,0x000200f8,0x0000000f,0x0004003b,0x00000007,0x00000022, - 0x00000007,0x0004003d,0x00000006,0x00000023,0x0000000b,0x00050084,0x00000006,0x00000025, - 0x00000023,0x00000024,0x0004003d,0x00000006,0x00000026,0x0000000c,0x00050084,0x00000006, - 0x00000028,0x00000026,0x00000027,0x00050080,0x00000006,0x00000029,0x00000025,0x00000028, - 0x0004003d,0x00000006,0x0000002a,0x0000000d,0x00050084,0x00000006,0x0000002c,0x0000002a, - 0x0000002b,0x00050080,0x00000006,0x0000002d,0x00000029,0x0000002c,0x00050080,0x00000006, - 0x0000002f,0x0000002d,0x0000002e,0x0003003e,0x00000022,0x0000002f,0x0004003d,0x00000006, - 0x00000030,0x00000022,0x0004003d,0x00000006,0x00000031,0x00000022,0x000500c2,0x00000006, - 0x00000034,0x00000031,0x00000033,0x000500c6,0x00000006,0x00000035,0x00000030,0x00000034, - 0x00050084,0x00000006,0x00000037,0x00000035,0x00000036,0x0003003e,0x00000022,0x00000037, - 0x0004003d,0x00000006,0x00000038,0x00000022,0x0004003d,0x00000006,0x00000039,0x00000022, - 0x000500c2,0x00000006,0x0000003b,0x00000039,0x0000003a,0x000500c6,0x00000006,0x0000003c, - 0x00000038,0x0000003b,0x00050084,0x00000006,0x0000003e,0x0000003c,0x0000003d,0x0003003e, - 0x00000022,0x0000003e,0x0004003d,0x00000006,0x0000003f,0x00000022,0x000500c2,0x00000006, - 0x00000040,0x0000003f,0x00000033,0x0004003d,0x00000006,0x00000041,0x00000022,0x000500c6, - 0x00000006,0x00000042,0x00000041,0x00000040,0x0003003e,0x00000022,0x00000042,0x0004003d, - 0x00000006,0x00000043,0x00000022,0x000500c7,0x00000006,0x00000045,0x00000043,0x00000044, - 0x00040070,0x00000008,0x00000046,0x00000045,0x0004003d,0x00000006,0x00000047,0x00000022, - 0x000500c2,0x00000006,0x00000048,0x00000047,0x00000033,0x000500c7,0x00000006,0x00000049, - 0x00000048,0x00000044,0x00040070,0x00000008,0x0000004a,0x00000049,0x00050050,0x00000009, - 0x0000004b,0x00000046,0x0000004a,0x0005008e,0x00000009,0x0000004d,0x0000004b,0x0000004c, - 0x000200fe,0x0000004d,0x00010038,0x00050036,0x00000011,0x00000014,0x00000000,0x00000012, - 0x00030037,0x00000010,0x00000013,0x000200f8,0x00000015,0x0004003b,0x00000050,0x00000051, - 0x00000007,0x0004003b,0x00000050,0x00000058,0x00000007,0x00050041,0x00000050,0x00000053, - 0x00000013,0x00000052,0x0004003d,0x00000008,0x00000054,0x00000053,0x0007000c,0x00000008, - 0x00000056,0x00000001,0x00000028,0x00000054,0x00000055,0x0006000c,0x00000008,0x00000057, - 0x00000001,0x0000001f,0x00000056,0x0003003e,0x00000051,0x00000057,0x00050041,0x00000050, - 0x0000005b,0x00000013,0x0000005a,0x0004003d,0x00000008,0x0000005c,0x0000005b,0x00050085, - 0x00000008,0x0000005d,0x00000059,0x0000005c,0x0003003e,0x00000058,0x0000005d,0x0004003d, - 0x00000008,0x0000005e,0x00000051,0x0004003d,0x00000008,0x0000005f,0x00000058,0x0006000c, - 0x00000008,0x00000060,0x00000001,0x0000000e,0x0000005f,0x00050085,0x00000008,0x00000061, - 0x0000005e,0x00000060,0x0004003d,0x00000008,0x00000062,0x00000051,0x0004003d,0x00000008, - 0x00000063,0x00000058,0x0006000c,0x00000008,0x00000064,0x00000001,0x0000000d,0x00000063, - 0x00050085,0x00000008,0x00000065,0x00000062,0x00000064,0x00050041,0x00000050,0x00000067, - 0x00000013,0x00000052,0x0004003d,0x00000008,0x00000068,0x00000067,0x00050083,0x00000008, - 0x00000069,0x00000066,0x00000068,0x0007000c,0x00000008,0x0000006a,0x00000001,0x00000028, - 0x00000069,0x00000055,0x0006000c,0x00000008,0x0000006b,0x00000001,0x0000001f,0x0000006a, - 0x00060050,0x00000011,0x0000006c,0x00000061,0x00000065,0x0000006b,0x000200fe,0x0000006c, - 0x00010038,0x00050036,0x00000011,0x00000020,0x00000000,0x0000001c,0x00030037,0x00000016, - 0x0000001d,0x00030037,0x00000016,0x0000001e,0x00030037,0x0000001b,0x0000001f,0x000200f8, - 0x00000021,0x0004003b,0x00000016,0x0000006f,0x00000007,0x0004003b,0x00000016,0x0000007f, - 0x00000007,0x0004003b,0x00000016,0x0000008d,0x00000007,0x0004003b,0x00000016,0x00000091, - 0x00000007,0x0004003b,0x00000097,0x00000098,0x00000007,0x0004003b,0x00000097,0x0000009e, - 0x00000007,0x0004003b,0x00000050,0x000000ae,0x00000007,0x0004003b,0x00000050,0x000000af, - 0x00000007,0x0004003b,0x00000050,0x000000b0,0x00000007,0x0004003b,0x00000016,0x000000ba, - 0x00000007,0x0004003b,0x00000016,0x000000c9,0x00000007,0x0004003b,0x00000016,0x000000ce, - 0x00000007,0x0004003b,0x00000016,0x000000eb,0x00000007,0x0004003b,0x00000016,0x000000f2, - 0x00000007,0x0004003b,0x00000050,0x000000fa,0x00000007,0x0004003b,0x00000050,0x00000112, - 0x00000007,0x0004003b,0x00000016,0x00000122,0x00000007,0x0004003b,0x00000016,0x00000141, - 0x00000007,0x0004003b,0x00000050,0x00000147,0x00000007,0x0004003b,0x00000050,0x0000014c, - 0x00000007,0x0004003b,0x00000050,0x00000152,0x00000007,0x0004003b,0x00000050,0x00000155, - 0x00000007,0x00050041,0x00000075,0x00000076,0x00000073,0x00000074,0x0004003d,0x00000070, - 0x00000077,0x00000076,0x0004003d,0x00000011,0x00000078,0x0000001d,0x00050051,0x00000008, - 0x00000079,0x00000078,0x00000000,0x00050051,0x00000008,0x0000007a,0x00000078,0x00000001, - 0x00050051,0x00000008,0x0000007b,0x00000078,0x00000002,0x00070050,0x00000017,0x0000007c, - 0x00000079,0x0000007a,0x0000007b,0x00000066,0x00050091,0x00000017,0x0000007d,0x00000077, - 0x0000007c,0x0008004f,0x00000011,0x0000007e,0x0000007d,0x0000007d,0x00000000,0x00000001, - 0x00000002,0x0003003e,0x0000006f,0x0000007e,0x00050041,0x00000075,0x00000080,0x00000073, - 0x00000074,0x0004003d,0x00000070,0x00000081,0x00000080,0x00050051,0x00000017,0x00000083, - 0x00000081,0x00000000,0x0008004f,0x00000011,0x00000084,0x00000083,0x00000083,0x00000000, - 0x00000001,0x00000002,0x00050051,0x00000017,0x00000085,0x00000081,0x00000001,0x0008004f, - 0x00000011,0x00000086,0x00000085,0x00000085,0x00000000,0x00000001,0x00000002,0x00050051, - 0x00000017,0x00000087,0x00000081,0x00000002,0x0008004f,0x00000011,0x00000088,0x00000087, - 0x00000087,0x00000000,0x00000001,0x00000002,0x00060050,0x00000082,0x00000089,0x00000084, - 0x00000086,0x00000088,0x0004003d,0x00000011,0x0000008a,0x0000001e,0x00050091,0x00000011, - 0x0000008b,0x00000089,0x0000008a,0x0006000c,0x00000011,0x0000008c,0x00000001,0x00000045, - 0x0000008b,0x0003003e,0x0000007f,0x0000008c,0x0004003d,0x00000011,0x0000008e,0x0000006f, - 0x0004007f,0x00000011,0x0000008f,0x0000008e,0x0006000c,0x00000011,0x00000090,0x00000001, - 0x00000045,0x0000008f,0x0003003e,0x0000008d,0x00000090,0x00050041,0x00000093,0x00000094, - 0x0000001f,0x00000092,0x0004003d,0x00000017,0x00000095,0x00000094,0x0008004f,0x00000011, - 0x00000096,0x00000095,0x00000095,0x00000000,0x00000001,0x00000002,0x0003003e,0x00000091, - 0x00000096,0x00060041,0x00000050,0x0000009b,0x0000001f,0x00000099,0x0000009a,0x0004003d, - 0x00000008,0x0000009c,0x0000009b,0x0004006e,0x00000032,0x0000009d,0x0000009c,0x0003003e, - 0x00000098,0x0000009d,0x0003003e,0x0000009e,0x00000074,0x000200f9,0x0000009f,0x000200f8, - 0x0000009f,0x000400f6,0x000000a1,0x000000a2,0x00000000,0x000200f9,0x000000a3,0x000200f8, - 0x000000a3,0x0004003d,0x00000032,0x000000a4,0x0000009e,0x000500b1,0x000000a6,0x000000a7, - 0x000000a4,0x000000a5,0x000400fa,0x000000a7,0x000000a0,0x000000a1,0x000200f8,0x000000a0, - 0x0004003d,0x00000032,0x000000a8,0x0000009e,0x0004003d,0x00000032,0x000000a9,0x00000098, - 0x000500af,0x000000a6,0x000000aa,0x000000a8,0x000000a9,0x000300f7,0x000000ac,0x00000000, - 0x000400fa,0x000000aa,0x000000ab,0x000000ac,0x000200f8,0x000000ab,0x000200f9,0x000000a1, - 0x000200f8,0x000000ac,0x0003003e,0x000000ae,0x00000066,0x0003003e,0x000000af,0x00000066, - 0x0003003e,0x000000b0,0x000000b1,0x0004003d,0x00000032,0x000000b3,0x0000009e,0x00070041, - 0x00000050,0x000000b4,0x0000001f,0x000000b2,0x000000b3,0x00000052,0x0004003d,0x00000008, - 0x000000b5,0x000000b4,0x000500ba,0x000000a6,0x000000b7,0x000000b5,0x000000b6,0x000300f7, - 0x000000b9,0x00000000,0x000400fa,0x000000b7,0x000000b8,0x0000010d,0x000200f8,0x000000b8, - 0x0004003d,0x00000032,0x000000bb,0x0000009e,0x00060041,0x00000093,0x000000bc,0x0000001f, - 0x000000a5,0x000000bb,0x0004003d,0x00000017,0x000000bd,0x000000bc,0x0008004f,0x00000011, - 0x000000be,0x000000bd,0x000000bd,0x00000000,0x00000001,0x00000002,0x0004003d,0x00000011, - 0x000000bf,0x0000006f,0x00050083,0x00000011,0x000000c0,0x000000be,0x000000bf,0x0003003e, - 0x000000ba,0x000000c0,0x0004003d,0x00000011,0x000000c1,0x000000ba,0x0006000c,0x00000008, - 0x000000c2,0x00000001,0x00000042,0x000000c1,0x0003003e,0x000000b0,0x000000c2,0x0004003d, - 0x00000008,0x000000c3,0x000000b0,0x000500bc,0x000000a6,0x000000c5,0x000000c3,0x000000c4, - 0x000300f7,0x000000c7,0x00000000,0x000400fa,0x000000c5,0x000000c6,0x000000c7,0x000200f8, - 0x000000c6,0x000200f9,0x000000a2,0x000200f8,0x000000c7,0x0004003d,0x00000011,0x000000ca, - 0x000000ba,0x0004003d,0x00000008,0x000000cb,0x000000b0,0x00060050,0x00000011,0x000000cc, - 0x000000cb,0x000000cb,0x000000cb,0x00050088,0x00000011,0x000000cd,0x000000ca,0x000000cc, - 0x0003003e,0x000000c9,0x000000cd,0x0004003d,0x00000032,0x000000d0,0x0000009e,0x00060041, - 0x00000093,0x000000d1,0x0000001f,0x000000cf,0x000000d0,0x0004003d,0x00000017,0x000000d2, - 0x000000d1,0x0008004f,0x00000011,0x000000d3,0x000000d2,0x000000d2,0x00000000,0x00000001, - 0x00000002,0x0003003e,0x000000ce,0x000000d3,0x00050041,0x00000050,0x000000d4,0x000000ce, - 0x0000009a,0x0004003d,0x00000008,0x000000d5,0x000000d4,0x00050041,0x00000050,0x000000d6, - 0x000000ce,0x0000005a,0x0004003d,0x00000008,0x000000d7,0x000000d6,0x0004003d,0x00000008, - 0x000000d8,0x000000b0,0x00050085,0x00000008,0x000000d9,0x000000d7,0x000000d8,0x00050081, - 0x00000008,0x000000da,0x000000d5,0x000000d9,0x00050041,0x00000050,0x000000db,0x000000ce, - 0x00000052,0x0004003d,0x00000008,0x000000dc,0x000000db,0x0004003d,0x00000008,0x000000dd, - 0x000000b0,0x00050085,0x00000008,0x000000de,0x000000dc,0x000000dd,0x0004003d,0x00000008, - 0x000000df,0x000000b0,0x00050085,0x00000008,0x000000e0,0x000000de,0x000000df,0x00050081, - 0x00000008,0x000000e1,0x000000da,0x000000e0,0x0007000c,0x00000008,0x000000e2,0x00000001, - 0x00000028,0x000000e1,0x000000c4,0x00050088,0x00000008,0x000000e3,0x00000066,0x000000e2, - 0x0003003e,0x000000ae,0x000000e3,0x0004003d,0x00000032,0x000000e4,0x0000009e,0x00070041, - 0x00000050,0x000000e5,0x0000001f,0x000000b2,0x000000e4,0x00000052,0x0004003d,0x00000008, - 0x000000e6,0x000000e5,0x000500ba,0x000000a6,0x000000e8,0x000000e6,0x000000e7,0x000300f7, - 0x000000ea,0x00000000,0x000400fa,0x000000e8,0x000000e9,0x000000ea,0x000200f8,0x000000e9, - 0x0004003d,0x00000032,0x000000ed,0x0000009e,0x00060041,0x00000093,0x000000ee,0x0000001f, - 0x000000ec,0x000000ed,0x0004003d,0x00000017,0x000000ef,0x000000ee,0x0008004f,0x00000011, - 0x000000f0,0x000000ef,0x000000ef,0x00000000,0x00000001,0x00000002,0x0006000c,0x00000011, - 0x000000f1,0x00000001,0x00000045,0x000000f0,0x0003003e,0x000000eb,0x000000f1,0x0004003d, - 0x00000011,0x000000f3,0x0000006f,0x0004003d,0x00000032,0x000000f4,0x0000009e,0x00060041, - 0x00000093,0x000000f5,0x0000001f,0x000000a5,0x000000f4,0x0004003d,0x00000017,0x000000f6, - 0x000000f5,0x0008004f,0x00000011,0x000000f7,0x000000f6,0x000000f6,0x00000000,0x00000001, - 0x00000002,0x00050083,0x00000011,0x000000f8,0x000000f3,0x000000f7,0x0006000c,0x00000011, - 0x000000f9,0x00000001,0x00000045,0x000000f8,0x0003003e,0x000000f2,0x000000f9,0x0004003d, - 0x00000011,0x000000fb,0x000000eb,0x0004003d,0x00000011,0x000000fc,0x000000f2,0x00050094, - 0x00000008,0x000000fd,0x000000fb,0x000000fc,0x0003003e,0x000000fa,0x000000fd,0x0004003d, - 0x00000008,0x000000fe,0x000000fa,0x0004003d,0x00000032,0x00000100,0x0000009e,0x00070041, - 0x00000050,0x00000101,0x0000001f,0x000000ff,0x00000100,0x00000052,0x0004003d,0x00000008, - 0x00000102,0x00000101,0x000500b8,0x000000a6,0x00000103,0x000000fe,0x00000102,0x000300f7, - 0x00000105,0x00000000,0x000400fa,0x00000103,0x00000104,0x00000105,0x000200f8,0x00000104, - 0x000200f9,0x000000a2,0x000200f8,0x00000105,0x0004003d,0x00000008,0x00000107,0x000000fa, - 0x0007000c,0x00000008,0x00000108,0x00000001,0x00000028,0x00000107,0x00000055,0x0004003d, - 0x00000032,0x00000109,0x0000009e,0x00070041,0x00000050,0x0000010a,0x0000001f,0x000000ff, - 0x00000109,0x0000005a,0x0004003d,0x00000008,0x0000010b,0x0000010a,0x0007000c,0x00000008, - 0x0000010c,0x00000001,0x0000001a,0x00000108,0x0000010b,0x0003003e,0x000000af,0x0000010c, - 0x000200f9,0x000000ea,0x000200f8,0x000000ea,0x000200f9,0x000000b9,0x000200f8,0x0000010d, - 0x0004003d,0x00000032,0x0000010e,0x0000009e,0x00060041,0x00000093,0x0000010f,0x0000001f, - 0x000000ec,0x0000010e,0x0004003d,0x00000017,0x00000110,0x0000010f,0x0008004f,0x00000011, - 0x00000111,0x00000110,0x00000110,0x00000000,0x00000001,0x00000002,0x0003003e,0x000000c9, - 0x00000111,0x000200f9,0x000000b9,0x000200f8,0x000000b9,0x0004003d,0x00000011,0x00000113, - 0x0000007f,0x0004003d,0x00000011,0x00000114,0x000000c9,0x0006000c,0x00000011,0x00000115, - 0x00000001,0x00000045,0x00000114,0x00050094,0x00000008,0x00000116,0x00000113,0x00000115, - 0x0003003e,0x00000112,0x00000116,0x0004003d,0x00000008,0x00000117,0x00000112,0x000500bc, - 0x000000a6,0x00000118,0x00000117,0x00000055,0x000300f7,0x0000011a,0x00000000,0x000400fa, - 0x00000118,0x00000119,0x0000011a,0x000200f8,0x00000119,0x000200f9,0x000000a2,0x000200f8, - 0x0000011a,0x00050041,0x00000120,0x00000121,0x0000011f,0x00000099,0x0003003e,0x00000121, - 0x00000052,0x00050041,0x00000075,0x00000123,0x00000073,0x00000092,0x0004003d,0x00000070, - 0x00000124,0x00000123,0x0004003d,0x00000011,0x00000125,0x000000c9,0x0006000c,0x00000011, - 0x00000126,0x00000001,0x00000045,0x00000125,0x00050051,0x00000008,0x00000127,0x00000126, - 0x00000000,0x00050051,0x00000008,0x00000128,0x00000126,0x00000001,0x00050051,0x00000008, - 0x00000129,0x00000126,0x00000002,0x00070050,0x00000017,0x0000012a,0x00000127,0x00000128, - 0x00000129,0x00000055,0x00050091,0x00000017,0x0000012b,0x00000124,0x0000012a,0x0008004f, - 0x00000011,0x0000012c,0x0000012b,0x0000012b,0x00000000,0x00000001,0x00000002,0x0006000c, - 0x00000011,0x0000012d,0x00000001,0x00000045,0x0000012c,0x0003003e,0x00000122,0x0000012d, - 0x0004003d,0x0000012e,0x00000131,0x00000130,0x0004003d,0x00000011,0x00000133,0x0000001d, - 0x0004003d,0x00000011,0x00000134,0x0000001e,0x0005008e,0x00000011,0x00000136,0x00000134, - 0x00000135,0x00050081,0x00000011,0x00000137,0x00000133,0x00000136,0x0004003d,0x00000011, - 0x00000138,0x00000122,0x0004003d,0x00000008,0x00000139,0x000000b0,0x00050083,0x00000008, - 0x0000013a,0x00000139,0x00000135,0x000c115d,0x00000131,0x0000005a,0x00000132,0x0000005a, - 0x00000052,0x0000005a,0x00000137,0x00000135,0x00000138,0x0000013a,0x0000011f,0x00050041, - 0x00000120,0x0000013b,0x0000011f,0x00000099,0x0004003d,0x00000006,0x0000013c,0x0000013b, - 0x000500ab,0x000000a6,0x0000013d,0x0000013c,0x00000052,0x000300f7,0x0000013f,0x00000000, - 0x000400fa,0x0000013d,0x0000013e,0x0000013f,0x000200f8,0x0000013e,0x000200f9,0x000000a2, - 0x000200f8,0x0000013f,0x0004003d,0x00000011,0x00000142,0x000000c9,0x0006000c,0x00000011, - 0x00000143,0x00000001,0x00000045,0x00000142,0x0004003d,0x00000011,0x00000144,0x0000008d, - 0x00050081,0x00000011,0x00000145,0x00000143,0x00000144,0x0006000c,0x00000011,0x00000146, - 0x00000001,0x00000045,0x00000145,0x0003003e,0x00000141,0x00000146,0x0004003d,0x00000011, - 0x00000148,0x0000007f,0x0004003d,0x00000011,0x00000149,0x00000141,0x00050094,0x00000008, - 0x0000014a,0x00000148,0x00000149,0x0007000c,0x00000008,0x0000014b,0x00000001,0x00000028, - 0x0000014a,0x00000055,0x0003003e,0x00000147,0x0000014b,0x00060041,0x00000050,0x0000014d, - 0x0000001f,0x00000099,0x00000052,0x0004003d,0x00000008,0x0000014e,0x0000014d,0x00050085, - 0x00000008,0x00000150,0x0000014e,0x0000014f,0x0007000c,0x00000008,0x00000151,0x00000001, - 0x00000028,0x00000150,0x00000055,0x0003003e,0x0000014c,0x00000151,0x0004003d,0x00000008, - 0x00000153,0x0000014c,0x000500ba,0x000000a6,0x00000154,0x00000153,0x00000055,0x000300f7, - 0x00000157,0x00000000,0x000400fa,0x00000154,0x00000156,0x0000015b,0x000200f8,0x00000156, - 0x0004003d,0x00000008,0x00000158,0x00000147,0x0004003d,0x00000008,0x00000159,0x0000014c, - 0x0007000c,0x00000008,0x0000015a,0x00000001,0x0000001a,0x00000158,0x00000159,0x0003003e, - 0x00000155,0x0000015a,0x000200f9,0x00000157,0x000200f8,0x0000015b,0x0003003e,0x00000155, - 0x00000055,0x000200f9,0x00000157,0x000200f8,0x00000157,0x0004003d,0x00000008,0x0000015c, - 0x00000155,0x0003003e,0x00000152,0x0000015c,0x0004003d,0x00000032,0x0000015e,0x0000009e, - 0x00060041,0x00000093,0x0000015f,0x0000001f,0x0000015d,0x0000015e,0x0004003d,0x00000017, - 0x00000160,0x0000015f,0x0008004f,0x00000011,0x00000161,0x00000160,0x00000160,0x00000000, - 0x00000001,0x00000002,0x0004003d,0x00000008,0x00000162,0x000000ae,0x0005008e,0x00000011, - 0x00000163,0x00000161,0x00000162,0x0004003d,0x00000008,0x00000164,0x000000af,0x0005008e, - 0x00000011,0x00000165,0x00000163,0x00000164,0x00050041,0x00000093,0x00000166,0x0000001f, - 0x00000074,0x0004003d,0x00000017,0x00000167,0x00000166,0x0008004f,0x00000011,0x00000168, - 0x00000167,0x00000167,0x00000000,0x00000001,0x00000002,0x0004003d,0x00000008,0x00000169, - 0x00000112,0x0005008e,0x00000011,0x0000016a,0x00000168,0x00000169,0x00050041,0x00000093, - 0x0000016c,0x0000001f,0x0000016b,0x0004003d,0x00000017,0x0000016d,0x0000016c,0x0008004f, - 0x00000011,0x0000016e,0x0000016d,0x0000016d,0x00000000,0x00000001,0x00000002,0x0004003d, - 0x00000008,0x0000016f,0x00000152,0x0005008e,0x00000011,0x00000170,0x0000016e,0x0000016f, - 0x00050081,0x00000011,0x00000171,0x0000016a,0x00000170,0x00050085,0x00000011,0x00000172, - 0x00000165,0x00000171,0x0004003d,0x00000011,0x00000173,0x00000091,0x00050081,0x00000011, - 0x00000174,0x00000173,0x00000172,0x0003003e,0x00000091,0x00000174,0x000200f9,0x000000a2, - 0x000200f8,0x000000a2,0x0004003d,0x00000032,0x00000175,0x0000009e,0x00050080,0x00000032, - 0x00000176,0x00000175,0x00000092,0x0003003e,0x0000009e,0x00000176,0x000200f9,0x0000009f, - 0x000200f8,0x000000a1,0x0004003d,0x00000011,0x00000177,0x00000091,0x00060050,0x00000011, - 0x00000178,0x00000055,0x00000055,0x00000055,0x00060050,0x00000011,0x00000179,0x00000066, - 0x00000066,0x00000066,0x0008000c,0x00000011,0x0000017a,0x00000001,0x0000002b,0x00000177, - 0x00000178,0x00000179,0x000200fe,0x0000017a,0x00010038 + 0x00000001,0x0004002b,0x00000008,0x00000066,0x3f800000,0x00040018,0x00000073,0x00000017, + 0x00000004,0x000a001e,0x00000074,0x00000073,0x00000073,0x00000073,0x00000017,0x00000017, + 0x00000017,0x00000017,0x00000017,0x00040020,0x00000075,0x00000002,0x00000074,0x0004003b, + 0x00000075,0x00000076,0x00000002,0x0004002b,0x00000032,0x00000077,0x00000003,0x00040020, + 0x00000078,0x00000002,0x00000017,0x0004002b,0x00000032,0x00000080,0x00000001,0x00040020, + 0x00000081,0x00000007,0x00000017,0x00040020,0x00000085,0x00000007,0x00000032,0x0004002b, + 0x00000032,0x00000087,0x00000004,0x0004002b,0x00000006,0x00000088,0x00000002,0x0004002b, + 0x00000032,0x0000008d,0x00000000,0x0004002b,0x00000032,0x00000094,0x00000008,0x00020014, + 0x00000095,0x0004002b,0x00000008,0x000000a0,0x7149f2ca,0x0004002b,0x00000032,0x000000a1, + 0x00000005,0x0004002b,0x00000008,0x000000a5,0x3f000000,0x0004002b,0x00000008,0x000000b3, + 0x38d1b717,0x0004002b,0x00000032,0x000000be,0x00000009,0x0004002b,0x00000008,0x000000d6, + 0x3fc00000,0x0004002b,0x00000032,0x000000db,0x00000007,0x0004002b,0x00000032,0x000000ee, + 0x0000000a,0x00040017,0x0000010c,0x00000006,0x00000004,0x0007001e,0x0000010d,0x00000017, + 0x00000017,0x00000017,0x0000010c,0x00000006,0x00040020,0x0000010e,0x000014da,0x0000010d, + 0x0004003b,0x0000010e,0x0000010f,0x000014da,0x00040020,0x00000110,0x000014da,0x00000006, + 0x000214dd,0x00000112,0x00040020,0x00000113,0x00000000,0x00000112,0x0004003b,0x00000113, + 0x00000114,0x00000000,0x0004002b,0x00000006,0x00000116,0x000000ff,0x0004002b,0x00000008, + 0x00000119,0x3a83126f,0x0004002b,0x00000008,0x00000133,0x43000000,0x0004002b,0x00000032, + 0x00000141,0x00000006,0x0004002b,0x00000032,0x0000014f,0x00000002,0x00040017,0x00000161, + 0x00000006,0x00000002,0x00040020,0x00000162,0x00000007,0x00000161,0x00040017,0x00000164, + 0x00000006,0x00000003,0x00040020,0x00000165,0x00000001,0x00000164,0x0004003b,0x00000165, + 0x00000166,0x00000001,0x00040020,0x0000016b,0x00000002,0x00000008,0x0006001e,0x00000180, + 0x00000006,0x00000006,0x00000006,0x00000006,0x00040020,0x00000181,0x00000009,0x00000180, + 0x0004003b,0x00000181,0x00000182,0x00000009,0x00040020,0x00000183,0x00000009,0x00000006, + 0x00040020,0x00000186,0x00000007,0x00000095,0x0004002b,0x00000006,0x00000194,0x00000004, + 0x0004002b,0x00000006,0x0000019a,0x00000010,0x0005002c,0x00000009,0x000001aa,0x000000a5, + 0x000000a5,0x0005002c,0x00000009,0x000001c1,0x00000066,0x00000066,0x0004002b,0x00000008, + 0x000001c6,0x40000000,0x00040020,0x000001cf,0x00000002,0x00000073,0x0004002b,0x00000008, + 0x000001d3,0xbf800000,0x0004002b,0x00000006,0x000001db,0x00000003,0x0007002c,0x00000017, + 0x000001f2,0x00000055,0x00000055,0x000001d3,0x00000055,0x00090019,0x0000020b,0x00000008, + 0x00000001,0x00000000,0x00000000,0x00000000,0x00000002,0x00000004,0x00040020,0x0000020c, + 0x00000000,0x0000020b,0x0004003b,0x0000020c,0x0000020d,0x00000000,0x00040017,0x00000210, + 0x00000032,0x00000002,0x0004002b,0x00000008,0x00000215,0x3f666666,0x0004002b,0x00000008, + 0x00000216,0x3e4ccccd,0x0004002b,0x00000008,0x00000217,0x3dcccccd,0x0007002c,0x00000017, + 0x00000218,0x00000215,0x00000216,0x00000217,0x00000066,0x0004002b,0x00000008,0x00000219, + 0x3f4ccccd,0x0004002b,0x00000008,0x0000021a,0x3e99999a,0x0007002c,0x00000017,0x0000021b, + 0x00000217,0x00000219,0x0000021a,0x00000066,0x00040020,0x0000022a,0x000014da,0x00000017, + 0x0006002c,0x00000011,0x00000232,0x00000055,0x00000055,0x00000055,0x0006002c,0x00000011, + 0x00000234,0x00000066,0x00000066,0x00000066,0x0003001d,0x00000250,0x00000017,0x0003001e, + 0x00000251,0x00000250,0x00040020,0x00000252,0x0000000c,0x00000251,0x0004003b,0x00000252, + 0x00000253,0x0000000c,0x00040020,0x0000025b,0x0000000c,0x00000017,0x0003001d,0x0000025d, + 0x00000017,0x0003001e,0x0000025e,0x0000025d,0x00040020,0x0000025f,0x0000000c,0x0000025e, + 0x0004003b,0x0000025f,0x00000260,0x0000000c,0x0004002b,0x00000008,0x00000262,0x4b189680, + 0x0007002c,0x00000017,0x00000263,0x00000055,0x00000055,0x00000055,0x00000262,0x0004001c, + 0x0000027a,0x00000017,0x00000018,0x0004001c,0x0000027b,0x00000017,0x00000018,0x0004001c, + 0x0000027c,0x00000017,0x00000018,0x0004001c,0x0000027d,0x00000017,0x00000018,0x0004001c, + 0x0000027e,0x00000017,0x00000018,0x0004001c,0x0000027f,0x00000017,0x00000018,0x000f001e, + 0x00000280,0x00000017,0x00000017,0x00000017,0x00000017,0x00000017,0x0000027a,0x0000027b, + 0x0000027c,0x0000027d,0x0000027e,0x0000027f,0x00000017,0x00000017,0x0003001d,0x00000281, + 0x00000280,0x0003001e,0x00000282,0x00000281,0x00040020,0x00000283,0x0000000c,0x00000282, + 0x0004003b,0x00000283,0x00000284,0x0000000c,0x00040020,0x00000287,0x0000000c,0x00000280, + 0x0004002b,0x00000008,0x000002bd,0x3f7fbe77,0x0006002c,0x00000011,0x000002bf,0x00000055, + 0x00000055,0x00000066,0x0006002c,0x00000011,0x000002c0,0x00000066,0x00000055,0x00000055, + 0x0004002b,0x00000006,0x000002ce,0x000001af,0x0004002b,0x00000006,0x000002d1,0x00000009, + 0x0004002b,0x00000006,0x000002f5,0x00000397,0x0004002b,0x00000008,0x0000032f,0x3f733333, + 0x0004002b,0x00000006,0x00000334,0x000001f7,0x0004002b,0x00000006,0x00000337,0x00000007, + 0x0003001d,0x0000035a,0x00000017,0x0003001e,0x0000035b,0x0000035a,0x00040020,0x0000035c, + 0x0000000c,0x0000035b,0x0004003b,0x0000035c,0x0000035d,0x0000000c,0x00050036,0x00000002, + 0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000162,0x00000163, + 0x00000007,0x0004003b,0x00000007,0x0000017f,0x00000007,0x0004003b,0x00000186,0x00000187, + 0x00000007,0x0004003b,0x00000186,0x0000018c,0x00000007,0x0004003b,0x00000186,0x00000191, + 0x00000007,0x0004003b,0x00000085,0x00000197,0x00000007,0x0004003b,0x00000085,0x0000019d, + 0x00000007,0x0004003b,0x00000010,0x000001a9,0x00000007,0x0004003b,0x00000007,0x000001b0, + 0x00000007,0x0004003b,0x00000007,0x000001b3,0x00000007,0x0004003b,0x00000007,0x000001b6, + 0x00000007,0x0004003b,0x00000010,0x000001b9,0x00000007,0x0004003b,0x00000010,0x000001c4, + 0x00000007,0x0004003b,0x00000081,0x000001ce,0x00000007,0x0004003b,0x00000016,0x000001d8, + 0x00000007,0x0004003b,0x00000016,0x000001e5,0x00000007,0x0004003b,0x00000016,0x000001ef, + 0x00000007,0x0004003b,0x00000016,0x00000231,0x00000007,0x0004003b,0x00000016,0x00000233, + 0x00000007,0x0004003b,0x00000016,0x00000235,0x00000007,0x0004003b,0x00000016,0x00000237, + 0x00000007,0x0004003b,0x00000085,0x00000239,0x00000007,0x0004003b,0x0000001b,0x00000279, + 0x00000007,0x0004003b,0x00000016,0x0000029e,0x00000007,0x0004003b,0x00000016,0x000002a2, + 0x00000007,0x0004003b,0x0000001b,0x000002a6,0x00000007,0x0004003b,0x00000016,0x000002ac, + 0x00000007,0x0004003b,0x00000016,0x000002b1,0x00000007,0x0004003b,0x00000050,0x000002b5, + 0x00000007,0x0004003b,0x00000016,0x000002b9,0x00000007,0x0004003b,0x00000016,0x000002c2, + 0x00000007,0x0004003b,0x00000016,0x000002c7,0x00000007,0x0004003b,0x00000007,0x000002d3, + 0x00000007,0x0004003b,0x00000007,0x000002d6,0x00000007,0x0004003b,0x00000007,0x000002d9, + 0x00000007,0x0004003b,0x00000016,0x000002e0,0x00000007,0x0004003b,0x00000016,0x000002f1, + 0x00000007,0x0004003b,0x00000007,0x000002f9,0x00000007,0x0004003b,0x00000007,0x000002fc, + 0x00000007,0x0004003b,0x00000007,0x000002ff,0x00000007,0x0004003b,0x00000010,0x00000301, + 0x00000007,0x0004003b,0x00000050,0x00000326,0x00000007,0x0004003b,0x00000007,0x00000339, + 0x00000007,0x0004003b,0x00000007,0x0000033c,0x00000007,0x0004003b,0x00000007,0x0000033f, + 0x00000007,0x0004003b,0x00000081,0x0000034d,0x00000007,0x0004003b,0x00000081,0x00000359, + 0x00000007,0x0004003d,0x00000164,0x00000167,0x00000166,0x0007004f,0x00000161,0x00000168, + 0x00000167,0x00000167,0x00000000,0x00000001,0x0003003e,0x00000163,0x00000168,0x00050041, + 0x00000007,0x00000169,0x00000163,0x00000052,0x0004003d,0x00000006,0x0000016a,0x00000169, + 0x00060041,0x0000016b,0x0000016c,0x00000076,0x00000087,0x00000052,0x0004003d,0x00000008, + 0x0000016d,0x0000016c,0x0007000c,0x00000008,0x0000016e,0x00000001,0x00000028,0x0000016d, + 0x00000066,0x0004006d,0x00000006,0x0000016f,0x0000016e,0x000500ae,0x00000095,0x00000170, + 0x0000016a,0x0000016f,0x000400a8,0x00000095,0x00000171,0x00000170,0x000300f7,0x00000173, + 0x00000000,0x000400fa,0x00000171,0x00000172,0x00000173,0x000200f8,0x00000172,0x00050041, + 0x00000007,0x00000174,0x00000163,0x0000005a,0x0004003d,0x00000006,0x00000175,0x00000174, + 0x00060041,0x0000016b,0x00000176,0x00000076,0x00000087,0x0000005a,0x0004003d,0x00000008, + 0x00000177,0x00000176,0x0007000c,0x00000008,0x00000178,0x00000001,0x00000028,0x00000177, + 0x00000066,0x0004006d,0x00000006,0x00000179,0x00000178,0x000500ae,0x00000095,0x0000017a, + 0x00000175,0x00000179,0x000200f9,0x00000173,0x000200f8,0x00000173,0x000700f5,0x00000095, + 0x0000017b,0x00000170,0x00000005,0x0000017a,0x00000172,0x000300f7,0x0000017d,0x00000000, + 0x000400fa,0x0000017b,0x0000017c,0x0000017d,0x000200f8,0x0000017c,0x000100fd,0x000200f8, + 0x0000017d,0x00050041,0x00000183,0x00000184,0x00000182,0x0000008d,0x0004003d,0x00000006, + 0x00000185,0x00000184,0x0003003e,0x0000017f,0x00000185,0x00050041,0x00000183,0x00000188, + 0x00000182,0x00000080,0x0004003d,0x00000006,0x00000189,0x00000188,0x000500c7,0x00000006, + 0x0000018a,0x00000189,0x0000005a,0x000500ab,0x00000095,0x0000018b,0x0000018a,0x00000052, + 0x0003003e,0x00000187,0x0000018b,0x00050041,0x00000183,0x0000018d,0x00000182,0x00000080, + 0x0004003d,0x00000006,0x0000018e,0x0000018d,0x000500c7,0x00000006,0x0000018f,0x0000018e, + 0x00000088,0x000500ab,0x00000095,0x00000190,0x0000018f,0x00000052,0x0003003e,0x0000018c, + 0x00000190,0x00050041,0x00000183,0x00000192,0x00000182,0x00000080,0x0004003d,0x00000006, + 0x00000193,0x00000192,0x000500c7,0x00000006,0x00000195,0x00000193,0x00000194,0x000500ab, + 0x00000095,0x00000196,0x00000195,0x00000052,0x0003003e,0x00000191,0x00000196,0x00050041, + 0x00000183,0x00000198,0x00000182,0x0000014f,0x0004003d,0x00000006,0x00000199,0x00000198, + 0x0008000c,0x00000006,0x0000019b,0x00000001,0x0000002c,0x00000199,0x0000005a,0x0000019a, + 0x0004007c,0x00000032,0x0000019c,0x0000019b,0x0003003e,0x00000197,0x0000019c,0x00050041, + 0x00000007,0x0000019e,0x00000163,0x0000005a,0x0004003d,0x00000006,0x0000019f,0x0000019e, + 0x00060041,0x0000016b,0x000001a0,0x00000076,0x00000087,0x00000052,0x0004003d,0x00000008, + 0x000001a1,0x000001a0,0x0007000c,0x00000008,0x000001a2,0x00000001,0x00000028,0x000001a1, + 0x00000066,0x0004006d,0x00000006,0x000001a3,0x000001a2,0x00050084,0x00000006,0x000001a4, + 0x0000019f,0x000001a3,0x00050041,0x00000007,0x000001a5,0x00000163,0x00000052,0x0004003d, + 0x00000006,0x000001a6,0x000001a5,0x00050080,0x00000006,0x000001a7,0x000001a4,0x000001a6, + 0x0004007c,0x00000032,0x000001a8,0x000001a7,0x0003003e,0x0000019d,0x000001a8,0x0003003e, + 0x000001a9,0x000001aa,0x0004003d,0x00000095,0x000001ab,0x00000187,0x0004003d,0x00000095, + 0x000001ac,0x0000018c,0x000500a7,0x00000095,0x000001ad,0x000001ab,0x000001ac,0x000300f7, + 0x000001af,0x00000000,0x000400fa,0x000001ad,0x000001ae,0x000001af,0x000200f8,0x000001ae, + 0x00050041,0x00000007,0x000001b1,0x00000163,0x00000052,0x0004003d,0x00000006,0x000001b2, + 0x000001b1,0x0003003e,0x000001b0,0x000001b2,0x00050041,0x00000007,0x000001b4,0x00000163, + 0x0000005a,0x0004003d,0x00000006,0x000001b5,0x000001b4,0x0003003e,0x000001b3,0x000001b5, + 0x0004003d,0x00000006,0x000001b7,0x0000017f,0x0003003e,0x000001b6,0x000001b7,0x00070039, + 0x00000009,0x000001b8,0x0000000e,0x000001b0,0x000001b3,0x000001b6,0x0003003e,0x000001a9, + 0x000001b8,0x000200f9,0x000001af,0x000200f8,0x000001af,0x0004003d,0x00000161,0x000001ba, + 0x00000163,0x00040070,0x00000009,0x000001bb,0x000001ba,0x0004003d,0x00000009,0x000001bc, + 0x000001a9,0x00050081,0x00000009,0x000001bd,0x000001bb,0x000001bc,0x00050041,0x00000078, + 0x000001be,0x00000076,0x00000087,0x0004003d,0x00000017,0x000001bf,0x000001be,0x0007004f, + 0x00000009,0x000001c0,0x000001bf,0x000001bf,0x00000000,0x00000001,0x0007000c,0x00000009, + 0x000001c2,0x00000001,0x00000028,0x000001c0,0x000001c1,0x00050088,0x00000009,0x000001c3, + 0x000001bd,0x000001c2,0x0003003e,0x000001b9,0x000001c3,0x0004003d,0x00000009,0x000001c5, + 0x000001b9,0x0005008e,0x00000009,0x000001c7,0x000001c5,0x000001c6,0x00050050,0x00000009, + 0x000001c8,0x00000066,0x00000066,0x00050083,0x00000009,0x000001c9,0x000001c7,0x000001c8, + 0x0003003e,0x000001c4,0x000001c9,0x00050041,0x00000050,0x000001ca,0x000001c4,0x0000005a, + 0x0004003d,0x00000008,0x000001cb,0x000001ca,0x0004007f,0x00000008,0x000001cc,0x000001cb, + 0x00050041,0x00000050,0x000001cd,0x000001c4,0x0000005a,0x0003003e,0x000001cd,0x000001cc, + 0x00050041,0x000001cf,0x000001d0,0x00000076,0x0000014f,0x0004003d,0x00000073,0x000001d1, + 0x000001d0,0x0004003d,0x00000009,0x000001d2,0x000001c4,0x00050051,0x00000008,0x000001d4, + 0x000001d2,0x00000000,0x00050051,0x00000008,0x000001d5,0x000001d2,0x00000001,0x00070050, + 0x00000017,0x000001d6,0x000001d4,0x000001d5,0x000001d3,0x00000066,0x00050091,0x00000017, + 0x000001d7,0x000001d1,0x000001d6,0x0003003e,0x000001ce,0x000001d7,0x0004003d,0x00000017, + 0x000001d9,0x000001ce,0x0008004f,0x00000011,0x000001da,0x000001d9,0x000001d9,0x00000000, + 0x00000001,0x00000002,0x00050041,0x00000050,0x000001dc,0x000001ce,0x000001db,0x0004003d, + 0x00000008,0x000001dd,0x000001dc,0x00060050,0x00000011,0x000001de,0x000001dd,0x000001dd, + 0x000001dd,0x00050088,0x00000011,0x000001df,0x000001da,0x000001de,0x0003003e,0x000001d8, + 0x000001df,0x00060041,0x0000016b,0x000001e0,0x00000076,0x00000087,0x00000088,0x0004003d, + 0x00000008,0x000001e1,0x000001e0,0x000500ba,0x00000095,0x000001e2,0x000001e1,0x000000a5, + 0x000300f7,0x000001e4,0x00000000,0x000400fa,0x000001e2,0x000001e3,0x000001f6,0x000200f8, + 0x000001e3,0x00050041,0x000001cf,0x000001e6,0x00000076,0x00000080,0x0004003d,0x00000073, + 0x000001e7,0x000001e6,0x0004003d,0x00000011,0x000001e8,0x000001d8,0x0007004f,0x00000009, + 0x000001e9,0x000001e8,0x000001e8,0x00000000,0x00000001,0x00050051,0x00000008,0x000001ea, + 0x000001e9,0x00000000,0x00050051,0x00000008,0x000001eb,0x000001e9,0x00000001,0x00070050, + 0x00000017,0x000001ec,0x000001ea,0x000001eb,0x00000055,0x00000066,0x00050091,0x00000017, + 0x000001ed,0x000001e7,0x000001ec,0x0008004f,0x00000011,0x000001ee,0x000001ed,0x000001ed, + 0x00000000,0x00000001,0x00000002,0x0003003e,0x000001e5,0x000001ee,0x00050041,0x000001cf, + 0x000001f0,0x00000076,0x00000080,0x0004003d,0x00000073,0x000001f1,0x000001f0,0x00050091, + 0x00000017,0x000001f3,0x000001f1,0x000001f2,0x0008004f,0x00000011,0x000001f4,0x000001f3, + 0x000001f3,0x00000000,0x00000001,0x00000002,0x0006000c,0x00000011,0x000001f5,0x00000001, + 0x00000045,0x000001f4,0x0003003e,0x000001ef,0x000001f5,0x000200f9,0x000001e4,0x000200f8, + 0x000001f6,0x00050041,0x00000078,0x000001f7,0x00000076,0x00000077,0x0004003d,0x00000017, + 0x000001f8,0x000001f7,0x0008004f,0x00000011,0x000001f9,0x000001f8,0x000001f8,0x00000000, + 0x00000001,0x00000002,0x0003003e,0x000001e5,0x000001f9,0x00050041,0x000001cf,0x000001fa, + 0x00000076,0x00000080,0x0004003d,0x00000073,0x000001fb,0x000001fa,0x0004003d,0x00000011, + 0x000001fc,0x000001d8,0x00050051,0x00000008,0x000001fd,0x000001fc,0x00000000,0x00050051, + 0x00000008,0x000001fe,0x000001fc,0x00000001,0x00050051,0x00000008,0x000001ff,0x000001fc, + 0x00000002,0x00070050,0x00000017,0x00000200,0x000001fd,0x000001fe,0x000001ff,0x00000055, + 0x00050091,0x00000017,0x00000201,0x000001fb,0x00000200,0x0008004f,0x00000011,0x00000202, + 0x00000201,0x00000201,0x00000000,0x00000001,0x00000002,0x0006000c,0x00000011,0x00000203, + 0x00000001,0x00000045,0x00000202,0x0003003e,0x000001ef,0x00000203,0x000200f9,0x000001e4, + 0x000200f8,0x000001e4,0x0004003d,0x00000095,0x00000204,0x00000191,0x000300f7,0x00000206, + 0x00000000,0x000400fa,0x00000204,0x00000205,0x00000206,0x000200f8,0x00000205,0x00060041, + 0x00000110,0x00000207,0x0000010f,0x00000077,0x0000005a,0x0003003e,0x00000207,0x00000052, + 0x0004003d,0x00000112,0x00000208,0x00000114,0x0004003d,0x00000011,0x00000209,0x000001e5, + 0x0004003d,0x00000011,0x0000020a,0x000001ef,0x000c115d,0x00000208,0x0000005a,0x00000116, + 0x00000052,0x00000052,0x00000052,0x00000209,0x00000119,0x0000020a,0x000000a0,0x0000010f, + 0x0004003d,0x0000020b,0x0000020e,0x0000020d,0x0004003d,0x00000161,0x0000020f,0x00000163, + 0x0004007c,0x00000210,0x00000211,0x0000020f,0x00060041,0x00000110,0x00000212,0x0000010f, + 0x00000077,0x0000005a,0x0004003d,0x00000006,0x00000213,0x00000212,0x000500ab,0x00000095, + 0x00000214,0x00000213,0x00000052,0x000600a9,0x00000017,0x0000021c,0x00000214,0x00000218, + 0x0000021b,0x00040063,0x0000020e,0x00000211,0x0000021c,0x000100fd,0x000200f8,0x00000206, + 0x0004003d,0x00000095,0x0000021e,0x00000187,0x000400a8,0x00000095,0x0000021f,0x0000021e, + 0x000300f7,0x00000221,0x00000000,0x000400fa,0x0000021f,0x00000220,0x00000221,0x000200f8, + 0x00000220,0x00060041,0x00000110,0x00000222,0x0000010f,0x00000077,0x0000005a,0x0003003e, + 0x00000222,0x00000052,0x00060041,0x00000110,0x00000223,0x0000010f,0x00000077,0x000001db, + 0x0003003e,0x00000223,0x00000052,0x0004003d,0x00000112,0x00000224,0x00000114,0x0004003d, + 0x00000011,0x00000225,0x000001e5,0x0004003d,0x00000011,0x00000226,0x000001ef,0x000c115d, + 0x00000224,0x0000005a,0x00000116,0x00000052,0x00000052,0x00000052,0x00000225,0x00000119, + 0x00000226,0x000000a0,0x0000010f,0x0004003d,0x0000020b,0x00000227,0x0000020d,0x0004003d, + 0x00000161,0x00000228,0x00000163,0x0004007c,0x00000210,0x00000229,0x00000228,0x00050041, + 0x0000022a,0x0000022b,0x0000010f,0x0000008d,0x0004003d,0x00000017,0x0000022c,0x0000022b, + 0x00070050,0x00000017,0x0000022d,0x00000055,0x00000055,0x00000055,0x00000055,0x00070050, + 0x00000017,0x0000022e,0x00000066,0x00000066,0x00000066,0x00000066,0x0008000c,0x00000017, + 0x0000022f,0x00000001,0x0000002b,0x0000022c,0x0000022d,0x0000022e,0x00040063,0x00000227, + 0x00000229,0x0000022f,0x000100fd,0x000200f8,0x00000221,0x0003003e,0x00000231,0x00000232, + 0x0003003e,0x00000233,0x00000234,0x0004003d,0x00000011,0x00000236,0x000001e5,0x0003003e, + 0x00000235,0x00000236,0x0004003d,0x00000011,0x00000238,0x000001ef,0x0003003e,0x00000237, + 0x00000238,0x0003003e,0x00000239,0x0000008d,0x000200f9,0x0000023a,0x000200f8,0x0000023a, + 0x000400f6,0x0000023c,0x0000023d,0x00000000,0x000200f9,0x0000023e,0x000200f8,0x0000023e, + 0x0004003d,0x00000032,0x0000023f,0x00000239,0x0004003d,0x00000032,0x00000240,0x00000197, + 0x000500b1,0x00000095,0x00000241,0x0000023f,0x00000240,0x000400fa,0x00000241,0x0000023b, + 0x0000023c,0x000200f8,0x0000023b,0x00060041,0x00000110,0x00000242,0x0000010f,0x00000077, + 0x0000005a,0x0003003e,0x00000242,0x00000052,0x00060041,0x00000110,0x00000243,0x0000010f, + 0x00000077,0x000001db,0x0003003e,0x00000243,0x0000005a,0x0004003d,0x00000112,0x00000244, + 0x00000114,0x0004003d,0x00000011,0x00000245,0x00000235,0x0004003d,0x00000011,0x00000246, + 0x00000237,0x000c115d,0x00000244,0x0000005a,0x00000116,0x00000052,0x00000052,0x00000052, + 0x00000245,0x00000119,0x00000246,0x000000a0,0x0000010f,0x00060041,0x00000110,0x00000247, + 0x0000010f,0x00000077,0x0000005a,0x0004003d,0x00000006,0x00000248,0x00000247,0x000500aa, + 0x00000095,0x00000249,0x00000248,0x00000052,0x000300f7,0x0000024b,0x00000000,0x000400fa, + 0x00000249,0x0000024a,0x0000024b,0x000200f8,0x0000024a,0x0004003d,0x00000032,0x0000024c, + 0x00000239,0x000500aa,0x00000095,0x0000024d,0x0000024c,0x0000008d,0x000300f7,0x0000024f, + 0x00000000,0x000400fa,0x0000024d,0x0000024e,0x0000024f,0x000200f8,0x0000024e,0x0004003d, + 0x00000032,0x00000254,0x0000019d,0x0004003d,0x00000011,0x00000255,0x00000237,0x0004007f, + 0x00000011,0x00000256,0x00000255,0x00050051,0x00000008,0x00000257,0x00000256,0x00000000, + 0x00050051,0x00000008,0x00000258,0x00000256,0x00000001,0x00050051,0x00000008,0x00000259, + 0x00000256,0x00000002,0x00070050,0x00000017,0x0000025a,0x00000257,0x00000258,0x00000259, + 0x00000066,0x00060041,0x0000025b,0x0000025c,0x00000253,0x0000008d,0x00000254,0x0003003e, + 0x0000025c,0x0000025a,0x0004003d,0x00000032,0x00000261,0x0000019d,0x00060041,0x0000025b, + 0x00000264,0x00000260,0x0000008d,0x00000261,0x0003003e,0x00000264,0x00000263,0x000200f9, + 0x0000024f,0x000200f8,0x0000024f,0x0004003d,0x00000011,0x00000265,0x00000233,0x00050041, + 0x0000022a,0x00000266,0x0000010f,0x0000008d,0x0004003d,0x00000017,0x00000267,0x00000266, + 0x0008004f,0x00000011,0x00000268,0x00000267,0x00000267,0x00000000,0x00000001,0x00000002, + 0x00050085,0x00000011,0x00000269,0x00000265,0x00000268,0x0004003d,0x00000011,0x0000026a, + 0x00000231,0x00050081,0x00000011,0x0000026b,0x0000026a,0x00000269,0x0003003e,0x00000231, + 0x0000026b,0x000200f9,0x0000023c,0x000200f8,0x0000024b,0x0004003d,0x00000032,0x0000026d, + 0x00000239,0x000500aa,0x00000095,0x0000026e,0x0000026d,0x0000008d,0x000300f7,0x00000270, + 0x00000000,0x000400fa,0x0000026e,0x0000026f,0x00000270,0x000200f8,0x0000026f,0x0004003d, + 0x00000032,0x00000271,0x0000019d,0x00050041,0x0000022a,0x00000272,0x0000010f,0x00000080, + 0x0004003d,0x00000017,0x00000273,0x00000272,0x00060041,0x0000025b,0x00000274,0x00000253, + 0x0000008d,0x00000271,0x0003003e,0x00000274,0x00000273,0x0004003d,0x00000032,0x00000275, + 0x0000019d,0x00050041,0x0000022a,0x00000276,0x0000010f,0x0000014f,0x0004003d,0x00000017, + 0x00000277,0x00000276,0x00060041,0x0000025b,0x00000278,0x00000260,0x0000008d,0x00000275, + 0x0003003e,0x00000278,0x00000277,0x000200f9,0x00000270,0x000200f8,0x00000270,0x00060041, + 0x00000110,0x00000285,0x0000010f,0x00000077,0x00000052,0x0004003d,0x00000006,0x00000286, + 0x00000285,0x00060041,0x00000287,0x00000288,0x00000284,0x0000008d,0x00000286,0x0004003d, + 0x00000280,0x00000289,0x00000288,0x00040190,0x0000001a,0x0000028a,0x00000289,0x0003003e, + 0x00000279,0x0000028a,0x0004003d,0x00000011,0x0000028b,0x00000233,0x00050041,0x0000022a, + 0x0000028c,0x0000010f,0x0000008d,0x0004003d,0x00000017,0x0000028d,0x0000028c,0x0008004f, + 0x00000011,0x0000028e,0x0000028d,0x0000028d,0x00000000,0x00000001,0x00000002,0x00050085, + 0x00000011,0x0000028f,0x0000028b,0x0000028e,0x0004003d,0x00000011,0x00000290,0x00000231, + 0x00050081,0x00000011,0x00000291,0x00000290,0x0000028f,0x0003003e,0x00000231,0x00000291, + 0x00050041,0x0000022a,0x00000292,0x0000010f,0x0000008d,0x0004003d,0x00000017,0x00000293, + 0x00000292,0x0008004f,0x00000011,0x00000294,0x00000293,0x00000293,0x00000000,0x00000001, + 0x00000002,0x00050041,0x0000022a,0x00000295,0x0000010f,0x0000008d,0x0004003d,0x00000017, + 0x00000296,0x00000295,0x0008004f,0x00000011,0x00000297,0x00000296,0x00000296,0x00000000, + 0x00000001,0x00000002,0x00050094,0x00000008,0x00000298,0x00000294,0x00000297,0x000500ba, + 0x00000095,0x00000299,0x00000298,0x00000055,0x000300f7,0x0000029b,0x00000000,0x000400fa, + 0x00000299,0x0000029a,0x0000029b,0x000200f8,0x0000029a,0x000200f9,0x0000023c,0x000200f8, + 0x0000029b,0x0004003d,0x00000011,0x0000029d,0x00000233,0x00050041,0x0000022a,0x0000029f, + 0x0000010f,0x0000014f,0x0004003d,0x00000017,0x000002a0,0x0000029f,0x0008004f,0x00000011, + 0x000002a1,0x000002a0,0x000002a0,0x00000000,0x00000001,0x00000002,0x0003003e,0x0000029e, + 0x000002a1,0x00050041,0x0000022a,0x000002a3,0x0000010f,0x00000080,0x0004003d,0x00000017, + 0x000002a4,0x000002a3,0x0008004f,0x00000011,0x000002a5,0x000002a4,0x000002a4,0x00000000, + 0x00000001,0x00000002,0x0003003e,0x000002a2,0x000002a5,0x0004003d,0x0000001a,0x000002a7, + 0x00000279,0x0003003e,0x000002a6,0x000002a7,0x00070039,0x00000011,0x000002a8,0x00000020, + 0x0000029e,0x000002a2,0x000002a6,0x00050085,0x00000011,0x000002a9,0x0000029d,0x000002a8, + 0x0004003d,0x00000011,0x000002aa,0x00000231,0x00050081,0x00000011,0x000002ab,0x000002aa, + 0x000002a9,0x0003003e,0x00000231,0x000002ab,0x00050041,0x0000022a,0x000002ad,0x0000010f, + 0x00000080,0x0004003d,0x00000017,0x000002ae,0x000002ad,0x0008004f,0x00000011,0x000002af, + 0x000002ae,0x000002ae,0x00000000,0x00000001,0x00000002,0x0006000c,0x00000011,0x000002b0, + 0x00000001,0x00000045,0x000002af,0x0003003e,0x000002ac,0x000002b0,0x00050041,0x00000081, + 0x000002b2,0x00000279,0x0000008d,0x0004003d,0x00000017,0x000002b3,0x000002b2,0x0008004f, + 0x00000011,0x000002b4,0x000002b3,0x000002b3,0x00000000,0x00000001,0x00000002,0x0003003e, + 0x000002b1,0x000002b4,0x00060041,0x00000050,0x000002b6,0x00000279,0x00000087,0x00000052, + 0x0004003d,0x00000008,0x000002b7,0x000002b6,0x0008000c,0x00000008,0x000002b8,0x00000001, + 0x0000002b,0x000002b7,0x00000055,0x00000066,0x0003003e,0x000002b5,0x000002b8,0x00050041, + 0x00000050,0x000002ba,0x000002ac,0x00000088,0x0004003d,0x00000008,0x000002bb,0x000002ba, + 0x0006000c,0x00000008,0x000002bc,0x00000001,0x00000004,0x000002bb,0x000500b8,0x00000095, + 0x000002be,0x000002bc,0x000002bd,0x000600a9,0x00000011,0x000002c1,0x000002be,0x000002bf, + 0x000002c0,0x0003003e,0x000002b9,0x000002c1,0x0004003d,0x00000011,0x000002c3,0x000002b9, + 0x0004003d,0x00000011,0x000002c4,0x000002ac,0x0007000c,0x00000011,0x000002c5,0x00000001, + 0x00000044,0x000002c3,0x000002c4,0x0006000c,0x00000011,0x000002c6,0x00000001,0x00000045, + 0x000002c5,0x0003003e,0x000002c2,0x000002c6,0x0004003d,0x00000011,0x000002c8,0x000002ac, + 0x0004003d,0x00000011,0x000002c9,0x000002c2,0x0007000c,0x00000011,0x000002ca,0x00000001, + 0x00000044,0x000002c8,0x000002c9,0x0003003e,0x000002c7,0x000002ca,0x0004003d,0x00000006, + 0x000002cb,0x0000017f,0x0004003d,0x00000032,0x000002cc,0x00000239,0x0004007c,0x00000006, + 0x000002cd,0x000002cc,0x00050084,0x00000006,0x000002cf,0x000002cd,0x000002ce,0x00050080, + 0x00000006,0x000002d0,0x000002cb,0x000002cf,0x00050080,0x00000006,0x000002d2,0x000002d0, + 0x000002d1,0x00050041,0x00000007,0x000002d4,0x00000163,0x00000052,0x0004003d,0x00000006, + 0x000002d5,0x000002d4,0x0003003e,0x000002d3,0x000002d5,0x00050041,0x00000007,0x000002d7, + 0x00000163,0x0000005a,0x0004003d,0x00000006,0x000002d8,0x000002d7,0x0003003e,0x000002d6, + 0x000002d8,0x0003003e,0x000002d9,0x000002d2,0x00070039,0x00000009,0x000002da,0x0000000e, + 0x000002d3,0x000002d6,0x000002d9,0x00050051,0x00000008,0x000002db,0x000002da,0x00000000, + 0x0004003d,0x00000008,0x000002dc,0x000002b5,0x000500b8,0x00000095,0x000002dd,0x000002db, + 0x000002dc,0x000300f7,0x000002df,0x00000000,0x000400fa,0x000002dd,0x000002de,0x000002f0, + 0x000200f8,0x000002de,0x0004003d,0x00000011,0x000002e1,0x00000237,0x0004003d,0x00000011, + 0x000002e2,0x000002ac,0x0007000c,0x00000011,0x000002e3,0x00000001,0x00000047,0x000002e1, + 0x000002e2,0x0003003e,0x000002e0,0x000002e3,0x0004003d,0x00000011,0x000002e4,0x000002b1, + 0x00050041,0x00000081,0x000002e5,0x00000279,0x0000014f,0x0004003d,0x00000017,0x000002e6, + 0x000002e5,0x0008004f,0x00000011,0x000002e7,0x000002e6,0x000002e6,0x00000000,0x00000001, + 0x00000002,0x00060050,0x00000011,0x000002e8,0x000000a5,0x000000a5,0x000000a5,0x0008000c, + 0x00000011,0x000002e9,0x00000001,0x0000002e,0x000002e4,0x000002e7,0x000002e8,0x0004003d, + 0x00000008,0x000002ea,0x000002b5,0x0007000c,0x00000008,0x000002eb,0x00000001,0x00000028, + 0x000002ea,0x000000b3,0x00060050,0x00000011,0x000002ec,0x000002eb,0x000002eb,0x000002eb, + 0x00050088,0x00000011,0x000002ed,0x000002e9,0x000002ec,0x0004003d,0x00000011,0x000002ee, + 0x00000233,0x00050085,0x00000011,0x000002ef,0x000002ee,0x000002ed,0x0003003e,0x00000233, + 0x000002ef,0x000200f9,0x000002df,0x000200f8,0x000002f0,0x0004003d,0x00000006,0x000002f2, + 0x0000017f,0x0004003d,0x00000032,0x000002f3,0x00000239,0x0004007c,0x00000006,0x000002f4, + 0x000002f3,0x00050084,0x00000006,0x000002f6,0x000002f4,0x000002f5,0x00050080,0x00000006, + 0x000002f7,0x000002f2,0x000002f6,0x00050080,0x00000006,0x000002f8,0x000002f7,0x0000005a, + 0x00050041,0x00000007,0x000002fa,0x00000163,0x00000052,0x0004003d,0x00000006,0x000002fb, + 0x000002fa,0x0003003e,0x000002f9,0x000002fb,0x00050041,0x00000007,0x000002fd,0x00000163, + 0x0000005a,0x0004003d,0x00000006,0x000002fe,0x000002fd,0x0003003e,0x000002fc,0x000002fe, + 0x0003003e,0x000002ff,0x000002f8,0x00070039,0x00000009,0x00000300,0x0000000e,0x000002f9, + 0x000002fc,0x000002ff,0x0003003e,0x00000301,0x00000300,0x00050039,0x00000011,0x00000302, + 0x00000014,0x00000301,0x0003003e,0x000002f1,0x00000302,0x0004003d,0x00000011,0x00000303, + 0x000002c2,0x00050041,0x00000050,0x00000304,0x000002f1,0x00000052,0x0004003d,0x00000008, + 0x00000305,0x00000304,0x0005008e,0x00000011,0x00000306,0x00000303,0x00000305,0x0004003d, + 0x00000011,0x00000307,0x000002c7,0x00050041,0x00000050,0x00000308,0x000002f1,0x0000005a, + 0x0004003d,0x00000008,0x00000309,0x00000308,0x0005008e,0x00000011,0x0000030a,0x00000307, + 0x00000309,0x00050081,0x00000011,0x0000030b,0x00000306,0x0000030a,0x0004003d,0x00000011, + 0x0000030c,0x000002ac,0x00050041,0x00000050,0x0000030d,0x000002f1,0x00000088,0x0004003d, + 0x00000008,0x0000030e,0x0000030d,0x0005008e,0x00000011,0x0000030f,0x0000030c,0x0000030e, + 0x00050081,0x00000011,0x00000310,0x0000030b,0x0000030f,0x0006000c,0x00000011,0x00000311, + 0x00000001,0x00000045,0x00000310,0x0003003e,0x000002e0,0x00000311,0x0004003d,0x00000011, + 0x00000312,0x000002b1,0x0004003d,0x00000008,0x00000313,0x000002b5,0x00050083,0x00000008, + 0x00000314,0x00000066,0x00000313,0x0007000c,0x00000008,0x00000315,0x00000001,0x00000028, + 0x00000314,0x000000b3,0x00060050,0x00000011,0x00000316,0x00000315,0x00000315,0x00000315, + 0x00050088,0x00000011,0x00000317,0x00000312,0x00000316,0x0004003d,0x00000011,0x00000318, + 0x00000233,0x00050085,0x00000011,0x00000319,0x00000318,0x00000317,0x0003003e,0x00000233, + 0x00000319,0x000200f9,0x000002df,0x000200f8,0x000002df,0x00050041,0x0000022a,0x0000031a, + 0x0000010f,0x0000014f,0x0004003d,0x00000017,0x0000031b,0x0000031a,0x0008004f,0x00000011, + 0x0000031c,0x0000031b,0x0000031b,0x00000000,0x00000001,0x00000002,0x0004003d,0x00000011, + 0x0000031d,0x000002ac,0x0005008e,0x00000011,0x0000031e,0x0000031d,0x00000119,0x00050081, + 0x00000011,0x0000031f,0x0000031c,0x0000031e,0x0003003e,0x00000235,0x0000031f,0x0004003d, + 0x00000011,0x00000320,0x000002e0,0x0006000c,0x00000011,0x00000321,0x00000001,0x00000045, + 0x00000320,0x0003003e,0x00000237,0x00000321,0x0004003d,0x00000032,0x00000322,0x00000239, + 0x000500ad,0x00000095,0x00000323,0x00000322,0x0000008d,0x000300f7,0x00000325,0x00000000, + 0x000400fa,0x00000323,0x00000324,0x00000325,0x000200f8,0x00000324,0x00050041,0x00000050, + 0x00000327,0x00000233,0x00000052,0x0004003d,0x00000008,0x00000328,0x00000327,0x00050041, + 0x00000050,0x00000329,0x00000233,0x0000005a,0x0004003d,0x00000008,0x0000032a,0x00000329, + 0x0007000c,0x00000008,0x0000032b,0x00000001,0x00000028,0x00000328,0x0000032a,0x00050041, + 0x00000050,0x0000032c,0x00000233,0x00000088,0x0004003d,0x00000008,0x0000032d,0x0000032c, + 0x0007000c,0x00000008,0x0000032e,0x00000001,0x00000028,0x0000032b,0x0000032d,0x0008000c, + 0x00000008,0x00000330,0x00000001,0x0000002b,0x0000032e,0x00000217,0x0000032f,0x0003003e, + 0x00000326,0x00000330,0x0004003d,0x00000006,0x00000331,0x0000017f,0x0004003d,0x00000032, + 0x00000332,0x00000239,0x0004007c,0x00000006,0x00000333,0x00000332,0x00050084,0x00000006, + 0x00000335,0x00000333,0x00000334,0x00050080,0x00000006,0x00000336,0x00000331,0x00000335, + 0x00050080,0x00000006,0x00000338,0x00000336,0x00000337,0x00050041,0x00000007,0x0000033a, + 0x00000163,0x00000052,0x0004003d,0x00000006,0x0000033b,0x0000033a,0x0003003e,0x00000339, + 0x0000033b,0x00050041,0x00000007,0x0000033d,0x00000163,0x0000005a,0x0004003d,0x00000006, + 0x0000033e,0x0000033d,0x0003003e,0x0000033c,0x0000033e,0x0003003e,0x0000033f,0x00000338, + 0x00070039,0x00000009,0x00000340,0x0000000e,0x00000339,0x0000033c,0x0000033f,0x00050051, + 0x00000008,0x00000341,0x00000340,0x00000000,0x0004003d,0x00000008,0x00000342,0x00000326, + 0x000500ba,0x00000095,0x00000343,0x00000341,0x00000342,0x000300f7,0x00000345,0x00000000, + 0x000400fa,0x00000343,0x00000344,0x00000345,0x000200f8,0x00000344,0x000200f9,0x0000023c, + 0x000200f8,0x00000345,0x0004003d,0x00000008,0x00000347,0x00000326,0x0004003d,0x00000011, + 0x00000348,0x00000233,0x00060050,0x00000011,0x00000349,0x00000347,0x00000347,0x00000347, + 0x00050088,0x00000011,0x0000034a,0x00000348,0x00000349,0x0003003e,0x00000233,0x0000034a, + 0x000200f9,0x00000325,0x000200f8,0x00000325,0x000200f9,0x0000023d,0x000200f8,0x0000023d, + 0x0004003d,0x00000032,0x0000034b,0x00000239,0x00050080,0x00000032,0x0000034c,0x0000034b, + 0x00000080,0x0003003e,0x00000239,0x0000034c,0x000200f9,0x0000023a,0x000200f8,0x0000023c, + 0x0004003d,0x00000011,0x0000034e,0x00000231,0x00060050,0x00000011,0x0000034f,0x00000055, + 0x00000055,0x00000055,0x00060050,0x00000011,0x00000350,0x00000066,0x00000066,0x00000066, + 0x0008000c,0x00000011,0x00000351,0x00000001,0x0000002b,0x0000034e,0x0000034f,0x00000350, + 0x00050051,0x00000008,0x00000352,0x00000351,0x00000000,0x00050051,0x00000008,0x00000353, + 0x00000351,0x00000001,0x00050051,0x00000008,0x00000354,0x00000351,0x00000002,0x00070050, + 0x00000017,0x00000355,0x00000352,0x00000353,0x00000354,0x00000066,0x0003003e,0x0000034d, + 0x00000355,0x0004003d,0x00000095,0x00000356,0x0000018c,0x000300f7,0x00000358,0x00000000, + 0x000400fa,0x00000356,0x00000357,0x00000373,0x000200f8,0x00000357,0x0004003d,0x00000032, + 0x0000035e,0x0000019d,0x00060041,0x0000025b,0x0000035f,0x0000035d,0x0000008d,0x0000035e, + 0x0004003d,0x00000017,0x00000360,0x0000035f,0x0003003e,0x00000359,0x00000360,0x0004003d, + 0x00000017,0x00000361,0x0000034d,0x0008004f,0x00000011,0x00000362,0x00000361,0x00000361, + 0x00000000,0x00000001,0x00000002,0x0004003d,0x00000017,0x00000363,0x00000359,0x0008004f, + 0x00000011,0x00000364,0x00000363,0x00000363,0x00000000,0x00000001,0x00000002,0x00050081, + 0x00000011,0x00000365,0x00000364,0x00000362,0x00050041,0x00000050,0x00000366,0x00000359, + 0x00000052,0x00050051,0x00000008,0x00000367,0x00000365,0x00000000,0x0003003e,0x00000366, + 0x00000367,0x00050041,0x00000050,0x00000368,0x00000359,0x0000005a,0x00050051,0x00000008, + 0x00000369,0x00000365,0x00000001,0x0003003e,0x00000368,0x00000369,0x00050041,0x00000050, + 0x0000036a,0x00000359,0x00000088,0x00050051,0x00000008,0x0000036b,0x00000365,0x00000002, + 0x0003003e,0x0000036a,0x0000036b,0x00050041,0x00000050,0x0000036c,0x00000359,0x000001db, + 0x0004003d,0x00000008,0x0000036d,0x0000036c,0x00050081,0x00000008,0x0000036e,0x0000036d, + 0x00000066,0x00050041,0x00000050,0x0000036f,0x00000359,0x000001db,0x0003003e,0x0000036f, + 0x0000036e,0x0004003d,0x00000032,0x00000370,0x0000019d,0x0004003d,0x00000017,0x00000371, + 0x00000359,0x00060041,0x0000025b,0x00000372,0x0000035d,0x0000008d,0x00000370,0x0003003e, + 0x00000372,0x00000371,0x000200f9,0x00000358,0x000200f8,0x00000373,0x0004003d,0x00000032, + 0x00000374,0x0000019d,0x0004003d,0x00000017,0x00000375,0x0000034d,0x00060041,0x0000025b, + 0x00000376,0x0000035d,0x0000008d,0x00000374,0x0003003e,0x00000376,0x00000375,0x000200f9, + 0x00000358,0x000200f8,0x00000358,0x0004003d,0x0000020b,0x00000377,0x0000020d,0x0004003d, + 0x00000161,0x00000378,0x00000163,0x0004007c,0x00000210,0x00000379,0x00000378,0x0004003d, + 0x00000017,0x0000037a,0x0000034d,0x00040063,0x00000377,0x00000379,0x0000037a,0x000100fd, + 0x00010038,0x00050036,0x00000009,0x0000000e,0x00000000,0x0000000a,0x00030037,0x00000007, + 0x0000000b,0x00030037,0x00000007,0x0000000c,0x00030037,0x00000007,0x0000000d,0x000200f8, + 0x0000000f,0x0004003b,0x00000007,0x00000022,0x00000007,0x0004003d,0x00000006,0x00000023, + 0x0000000b,0x00050084,0x00000006,0x00000025,0x00000023,0x00000024,0x0004003d,0x00000006, + 0x00000026,0x0000000c,0x00050084,0x00000006,0x00000028,0x00000026,0x00000027,0x00050080, + 0x00000006,0x00000029,0x00000025,0x00000028,0x0004003d,0x00000006,0x0000002a,0x0000000d, + 0x00050084,0x00000006,0x0000002c,0x0000002a,0x0000002b,0x00050080,0x00000006,0x0000002d, + 0x00000029,0x0000002c,0x00050080,0x00000006,0x0000002f,0x0000002d,0x0000002e,0x0003003e, + 0x00000022,0x0000002f,0x0004003d,0x00000006,0x00000030,0x00000022,0x0004003d,0x00000006, + 0x00000031,0x00000022,0x000500c2,0x00000006,0x00000034,0x00000031,0x00000033,0x000500c6, + 0x00000006,0x00000035,0x00000030,0x00000034,0x00050084,0x00000006,0x00000037,0x00000035, + 0x00000036,0x0003003e,0x00000022,0x00000037,0x0004003d,0x00000006,0x00000038,0x00000022, + 0x0004003d,0x00000006,0x00000039,0x00000022,0x000500c2,0x00000006,0x0000003b,0x00000039, + 0x0000003a,0x000500c6,0x00000006,0x0000003c,0x00000038,0x0000003b,0x00050084,0x00000006, + 0x0000003e,0x0000003c,0x0000003d,0x0003003e,0x00000022,0x0000003e,0x0004003d,0x00000006, + 0x0000003f,0x00000022,0x000500c2,0x00000006,0x00000040,0x0000003f,0x00000033,0x0004003d, + 0x00000006,0x00000041,0x00000022,0x000500c6,0x00000006,0x00000042,0x00000041,0x00000040, + 0x0003003e,0x00000022,0x00000042,0x0004003d,0x00000006,0x00000043,0x00000022,0x000500c7, + 0x00000006,0x00000045,0x00000043,0x00000044,0x00040070,0x00000008,0x00000046,0x00000045, + 0x0004003d,0x00000006,0x00000047,0x00000022,0x000500c2,0x00000006,0x00000048,0x00000047, + 0x00000033,0x000500c7,0x00000006,0x00000049,0x00000048,0x00000044,0x00040070,0x00000008, + 0x0000004a,0x00000049,0x00050050,0x00000009,0x0000004b,0x00000046,0x0000004a,0x0005008e, + 0x00000009,0x0000004d,0x0000004b,0x0000004c,0x000200fe,0x0000004d,0x00010038,0x00050036, + 0x00000011,0x00000014,0x00000000,0x00000012,0x00030037,0x00000010,0x00000013,0x000200f8, + 0x00000015,0x0004003b,0x00000050,0x00000051,0x00000007,0x0004003b,0x00000050,0x00000058, + 0x00000007,0x00050041,0x00000050,0x00000053,0x00000013,0x00000052,0x0004003d,0x00000008, + 0x00000054,0x00000053,0x0007000c,0x00000008,0x00000056,0x00000001,0x00000028,0x00000054, + 0x00000055,0x0006000c,0x00000008,0x00000057,0x00000001,0x0000001f,0x00000056,0x0003003e, + 0x00000051,0x00000057,0x00050041,0x00000050,0x0000005b,0x00000013,0x0000005a,0x0004003d, + 0x00000008,0x0000005c,0x0000005b,0x00050085,0x00000008,0x0000005d,0x00000059,0x0000005c, + 0x0003003e,0x00000058,0x0000005d,0x0004003d,0x00000008,0x0000005e,0x00000051,0x0004003d, + 0x00000008,0x0000005f,0x00000058,0x0006000c,0x00000008,0x00000060,0x00000001,0x0000000e, + 0x0000005f,0x00050085,0x00000008,0x00000061,0x0000005e,0x00000060,0x0004003d,0x00000008, + 0x00000062,0x00000051,0x0004003d,0x00000008,0x00000063,0x00000058,0x0006000c,0x00000008, + 0x00000064,0x00000001,0x0000000d,0x00000063,0x00050085,0x00000008,0x00000065,0x00000062, + 0x00000064,0x00050041,0x00000050,0x00000067,0x00000013,0x00000052,0x0004003d,0x00000008, + 0x00000068,0x00000067,0x00050083,0x00000008,0x00000069,0x00000066,0x00000068,0x0007000c, + 0x00000008,0x0000006a,0x00000001,0x00000028,0x00000069,0x00000055,0x0006000c,0x00000008, + 0x0000006b,0x00000001,0x0000001f,0x0000006a,0x00060050,0x00000011,0x0000006c,0x00000061, + 0x00000065,0x0000006b,0x000200fe,0x0000006c,0x00010038,0x00050036,0x00000011,0x00000020, + 0x00000000,0x0000001c,0x00030037,0x00000016,0x0000001d,0x00030037,0x00000016,0x0000001e, + 0x00030037,0x0000001b,0x0000001f,0x000200f8,0x00000021,0x0004003b,0x00000016,0x0000006f, + 0x00000007,0x0004003b,0x00000016,0x00000072,0x00000007,0x0004003b,0x00000016,0x0000007f, + 0x00000007,0x0004003b,0x00000085,0x00000086,0x00000007,0x0004003b,0x00000085,0x0000008c, + 0x00000007,0x0004003b,0x00000050,0x0000009d,0x00000007,0x0004003b,0x00000050,0x0000009e, + 0x00000007,0x0004003b,0x00000050,0x0000009f,0x00000007,0x0004003b,0x00000016,0x000000a9, + 0x00000007,0x0004003b,0x00000016,0x000000b8,0x00000007,0x0004003b,0x00000016,0x000000bd, + 0x00000007,0x0004003b,0x00000016,0x000000da,0x00000007,0x0004003b,0x00000016,0x000000e1, + 0x00000007,0x0004003b,0x00000050,0x000000e9,0x00000007,0x0004003b,0x00000050,0x00000103, + 0x00000007,0x0004003b,0x00000016,0x00000125,0x00000007,0x0004003b,0x00000050,0x0000012b, + 0x00000007,0x0004003b,0x00000050,0x00000130,0x00000007,0x0004003b,0x00000050,0x00000136, + 0x00000007,0x0004003b,0x00000050,0x00000139,0x00000007,0x0004003d,0x00000011,0x00000070, + 0x0000001e,0x0006000c,0x00000011,0x00000071,0x00000001,0x00000045,0x00000070,0x0003003e, + 0x0000006f,0x00000071,0x00050041,0x00000078,0x00000079,0x00000076,0x00000077,0x0004003d, + 0x00000017,0x0000007a,0x00000079,0x0008004f,0x00000011,0x0000007b,0x0000007a,0x0000007a, + 0x00000000,0x00000001,0x00000002,0x0004003d,0x00000011,0x0000007c,0x0000001d,0x00050083, + 0x00000011,0x0000007d,0x0000007b,0x0000007c,0x0006000c,0x00000011,0x0000007e,0x00000001, + 0x00000045,0x0000007d,0x0003003e,0x00000072,0x0000007e,0x00050041,0x00000081,0x00000082, + 0x0000001f,0x00000080,0x0004003d,0x00000017,0x00000083,0x00000082,0x0008004f,0x00000011, + 0x00000084,0x00000083,0x00000083,0x00000000,0x00000001,0x00000002,0x0003003e,0x0000007f, + 0x00000084,0x00060041,0x00000050,0x00000089,0x0000001f,0x00000087,0x00000088,0x0004003d, + 0x00000008,0x0000008a,0x00000089,0x0004006e,0x00000032,0x0000008b,0x0000008a,0x0003003e, + 0x00000086,0x0000008b,0x0003003e,0x0000008c,0x0000008d,0x000200f9,0x0000008e,0x000200f8, + 0x0000008e,0x000400f6,0x00000090,0x00000091,0x00000000,0x000200f9,0x00000092,0x000200f8, + 0x00000092,0x0004003d,0x00000032,0x00000093,0x0000008c,0x000500b1,0x00000095,0x00000096, + 0x00000093,0x00000094,0x000400fa,0x00000096,0x0000008f,0x00000090,0x000200f8,0x0000008f, + 0x0004003d,0x00000032,0x00000097,0x0000008c,0x0004003d,0x00000032,0x00000098,0x00000086, + 0x000500af,0x00000095,0x00000099,0x00000097,0x00000098,0x000300f7,0x0000009b,0x00000000, + 0x000400fa,0x00000099,0x0000009a,0x0000009b,0x000200f8,0x0000009a,0x000200f9,0x00000090, + 0x000200f8,0x0000009b,0x0003003e,0x0000009d,0x00000066,0x0003003e,0x0000009e,0x00000066, + 0x0003003e,0x0000009f,0x000000a0,0x0004003d,0x00000032,0x000000a2,0x0000008c,0x00070041, + 0x00000050,0x000000a3,0x0000001f,0x000000a1,0x000000a2,0x00000052,0x0004003d,0x00000008, + 0x000000a4,0x000000a3,0x000500ba,0x00000095,0x000000a6,0x000000a4,0x000000a5,0x000300f7, + 0x000000a8,0x00000000,0x000400fa,0x000000a6,0x000000a7,0x000000fc,0x000200f8,0x000000a7, + 0x0004003d,0x00000032,0x000000aa,0x0000008c,0x00060041,0x00000081,0x000000ab,0x0000001f, + 0x00000094,0x000000aa,0x0004003d,0x00000017,0x000000ac,0x000000ab,0x0008004f,0x00000011, + 0x000000ad,0x000000ac,0x000000ac,0x00000000,0x00000001,0x00000002,0x0004003d,0x00000011, + 0x000000ae,0x0000001d,0x00050083,0x00000011,0x000000af,0x000000ad,0x000000ae,0x0003003e, + 0x000000a9,0x000000af,0x0004003d,0x00000011,0x000000b0,0x000000a9,0x0006000c,0x00000008, + 0x000000b1,0x00000001,0x00000042,0x000000b0,0x0003003e,0x0000009f,0x000000b1,0x0004003d, + 0x00000008,0x000000b2,0x0000009f,0x000500bc,0x00000095,0x000000b4,0x000000b2,0x000000b3, + 0x000300f7,0x000000b6,0x00000000,0x000400fa,0x000000b4,0x000000b5,0x000000b6,0x000200f8, + 0x000000b5,0x000200f9,0x00000091,0x000200f8,0x000000b6,0x0004003d,0x00000011,0x000000b9, + 0x000000a9,0x0004003d,0x00000008,0x000000ba,0x0000009f,0x00060050,0x00000011,0x000000bb, + 0x000000ba,0x000000ba,0x000000ba,0x00050088,0x00000011,0x000000bc,0x000000b9,0x000000bb, + 0x0003003e,0x000000b8,0x000000bc,0x0004003d,0x00000032,0x000000bf,0x0000008c,0x00060041, + 0x00000081,0x000000c0,0x0000001f,0x000000be,0x000000bf,0x0004003d,0x00000017,0x000000c1, + 0x000000c0,0x0008004f,0x00000011,0x000000c2,0x000000c1,0x000000c1,0x00000000,0x00000001, + 0x00000002,0x0003003e,0x000000bd,0x000000c2,0x00050041,0x00000050,0x000000c3,0x000000bd, + 0x00000088,0x0004003d,0x00000008,0x000000c4,0x000000c3,0x00050041,0x00000050,0x000000c5, + 0x000000bd,0x0000005a,0x0004003d,0x00000008,0x000000c6,0x000000c5,0x0004003d,0x00000008, + 0x000000c7,0x0000009f,0x00050085,0x00000008,0x000000c8,0x000000c6,0x000000c7,0x00050081, + 0x00000008,0x000000c9,0x000000c4,0x000000c8,0x00050041,0x00000050,0x000000ca,0x000000bd, + 0x00000052,0x0004003d,0x00000008,0x000000cb,0x000000ca,0x0004003d,0x00000008,0x000000cc, + 0x0000009f,0x00050085,0x00000008,0x000000cd,0x000000cb,0x000000cc,0x0004003d,0x00000008, + 0x000000ce,0x0000009f,0x00050085,0x00000008,0x000000cf,0x000000cd,0x000000ce,0x00050081, + 0x00000008,0x000000d0,0x000000c9,0x000000cf,0x0007000c,0x00000008,0x000000d1,0x00000001, + 0x00000028,0x000000d0,0x000000b3,0x00050088,0x00000008,0x000000d2,0x00000066,0x000000d1, + 0x0003003e,0x0000009d,0x000000d2,0x0004003d,0x00000032,0x000000d3,0x0000008c,0x00070041, + 0x00000050,0x000000d4,0x0000001f,0x000000a1,0x000000d3,0x00000052,0x0004003d,0x00000008, + 0x000000d5,0x000000d4,0x000500ba,0x00000095,0x000000d7,0x000000d5,0x000000d6,0x000300f7, + 0x000000d9,0x00000000,0x000400fa,0x000000d7,0x000000d8,0x000000d9,0x000200f8,0x000000d8, + 0x0004003d,0x00000032,0x000000dc,0x0000008c,0x00060041,0x00000081,0x000000dd,0x0000001f, + 0x000000db,0x000000dc,0x0004003d,0x00000017,0x000000de,0x000000dd,0x0008004f,0x00000011, + 0x000000df,0x000000de,0x000000de,0x00000000,0x00000001,0x00000002,0x0006000c,0x00000011, + 0x000000e0,0x00000001,0x00000045,0x000000df,0x0003003e,0x000000da,0x000000e0,0x0004003d, + 0x00000011,0x000000e2,0x0000001d,0x0004003d,0x00000032,0x000000e3,0x0000008c,0x00060041, + 0x00000081,0x000000e4,0x0000001f,0x00000094,0x000000e3,0x0004003d,0x00000017,0x000000e5, + 0x000000e4,0x0008004f,0x00000011,0x000000e6,0x000000e5,0x000000e5,0x00000000,0x00000001, + 0x00000002,0x00050083,0x00000011,0x000000e7,0x000000e2,0x000000e6,0x0006000c,0x00000011, + 0x000000e8,0x00000001,0x00000045,0x000000e7,0x0003003e,0x000000e1,0x000000e8,0x0004003d, + 0x00000011,0x000000ea,0x000000da,0x0004003d,0x00000011,0x000000eb,0x000000e1,0x00050094, + 0x00000008,0x000000ec,0x000000ea,0x000000eb,0x0003003e,0x000000e9,0x000000ec,0x0004003d, + 0x00000008,0x000000ed,0x000000e9,0x0004003d,0x00000032,0x000000ef,0x0000008c,0x00070041, + 0x00000050,0x000000f0,0x0000001f,0x000000ee,0x000000ef,0x00000052,0x0004003d,0x00000008, + 0x000000f1,0x000000f0,0x000500b8,0x00000095,0x000000f2,0x000000ed,0x000000f1,0x000300f7, + 0x000000f4,0x00000000,0x000400fa,0x000000f2,0x000000f3,0x000000f4,0x000200f8,0x000000f3, + 0x000200f9,0x00000091,0x000200f8,0x000000f4,0x0004003d,0x00000008,0x000000f6,0x000000e9, + 0x0007000c,0x00000008,0x000000f7,0x00000001,0x00000028,0x000000f6,0x00000055,0x0004003d, + 0x00000032,0x000000f8,0x0000008c,0x00070041,0x00000050,0x000000f9,0x0000001f,0x000000ee, + 0x000000f8,0x0000005a,0x0004003d,0x00000008,0x000000fa,0x000000f9,0x0007000c,0x00000008, + 0x000000fb,0x00000001,0x0000001a,0x000000f7,0x000000fa,0x0003003e,0x0000009e,0x000000fb, + 0x000200f9,0x000000d9,0x000200f8,0x000000d9,0x000200f9,0x000000a8,0x000200f8,0x000000fc, + 0x0004003d,0x00000032,0x000000fd,0x0000008c,0x00060041,0x00000081,0x000000fe,0x0000001f, + 0x000000db,0x000000fd,0x0004003d,0x00000017,0x000000ff,0x000000fe,0x0008004f,0x00000011, + 0x00000100,0x000000ff,0x000000ff,0x00000000,0x00000001,0x00000002,0x0003003e,0x000000b8, + 0x00000100,0x000200f9,0x000000a8,0x000200f8,0x000000a8,0x0004003d,0x00000011,0x00000101, + 0x000000b8,0x0006000c,0x00000011,0x00000102,0x00000001,0x00000045,0x00000101,0x0003003e, + 0x000000b8,0x00000102,0x0004003d,0x00000011,0x00000104,0x0000006f,0x0004003d,0x00000011, + 0x00000105,0x000000b8,0x00050094,0x00000008,0x00000106,0x00000104,0x00000105,0x0003003e, + 0x00000103,0x00000106,0x0004003d,0x00000008,0x00000107,0x00000103,0x000500bc,0x00000095, + 0x00000108,0x00000107,0x00000055,0x000300f7,0x0000010a,0x00000000,0x000400fa,0x00000108, + 0x00000109,0x0000010a,0x000200f8,0x00000109,0x000200f9,0x00000091,0x000200f8,0x0000010a, + 0x00050041,0x00000110,0x00000111,0x0000010f,0x00000087,0x0003003e,0x00000111,0x00000052, + 0x0004003d,0x00000112,0x00000115,0x00000114,0x0004003d,0x00000011,0x00000117,0x0000001d, + 0x0004003d,0x00000011,0x00000118,0x0000001e,0x0005008e,0x00000011,0x0000011a,0x00000118, + 0x00000119,0x00050081,0x00000011,0x0000011b,0x00000117,0x0000011a,0x0004003d,0x00000011, + 0x0000011c,0x000000b8,0x0004003d,0x00000008,0x0000011d,0x0000009f,0x00050083,0x00000008, + 0x0000011e,0x0000011d,0x00000119,0x000c115d,0x00000115,0x0000005a,0x00000116,0x0000005a, + 0x00000052,0x0000005a,0x0000011b,0x00000119,0x0000011c,0x0000011e,0x0000010f,0x00050041, + 0x00000110,0x0000011f,0x0000010f,0x00000087,0x0004003d,0x00000006,0x00000120,0x0000011f, + 0x000500ab,0x00000095,0x00000121,0x00000120,0x00000052,0x000300f7,0x00000123,0x00000000, + 0x000400fa,0x00000121,0x00000122,0x00000123,0x000200f8,0x00000122,0x000200f9,0x00000091, + 0x000200f8,0x00000123,0x0004003d,0x00000011,0x00000126,0x000000b8,0x0006000c,0x00000011, + 0x00000127,0x00000001,0x00000045,0x00000126,0x0004003d,0x00000011,0x00000128,0x00000072, + 0x00050081,0x00000011,0x00000129,0x00000127,0x00000128,0x0006000c,0x00000011,0x0000012a, + 0x00000001,0x00000045,0x00000129,0x0003003e,0x00000125,0x0000012a,0x0004003d,0x00000011, + 0x0000012c,0x0000006f,0x0004003d,0x00000011,0x0000012d,0x00000125,0x00050094,0x00000008, + 0x0000012e,0x0000012c,0x0000012d,0x0007000c,0x00000008,0x0000012f,0x00000001,0x00000028, + 0x0000012e,0x00000055,0x0003003e,0x0000012b,0x0000012f,0x00060041,0x00000050,0x00000131, + 0x0000001f,0x00000087,0x00000052,0x0004003d,0x00000008,0x00000132,0x00000131,0x00050085, + 0x00000008,0x00000134,0x00000132,0x00000133,0x0007000c,0x00000008,0x00000135,0x00000001, + 0x00000028,0x00000134,0x00000055,0x0003003e,0x00000130,0x00000135,0x0004003d,0x00000008, + 0x00000137,0x00000130,0x000500ba,0x00000095,0x00000138,0x00000137,0x00000055,0x000300f7, + 0x0000013b,0x00000000,0x000400fa,0x00000138,0x0000013a,0x0000013f,0x000200f8,0x0000013a, + 0x0004003d,0x00000008,0x0000013c,0x0000012b,0x0004003d,0x00000008,0x0000013d,0x00000130, + 0x0007000c,0x00000008,0x0000013e,0x00000001,0x0000001a,0x0000013c,0x0000013d,0x0003003e, + 0x00000139,0x0000013e,0x000200f9,0x0000013b,0x000200f8,0x0000013f,0x0003003e,0x00000139, + 0x00000055,0x000200f9,0x0000013b,0x000200f8,0x0000013b,0x0004003d,0x00000008,0x00000140, + 0x00000139,0x0003003e,0x00000136,0x00000140,0x0004003d,0x00000032,0x00000142,0x0000008c, + 0x00060041,0x00000081,0x00000143,0x0000001f,0x00000141,0x00000142,0x0004003d,0x00000017, + 0x00000144,0x00000143,0x0008004f,0x00000011,0x00000145,0x00000144,0x00000144,0x00000000, + 0x00000001,0x00000002,0x0004003d,0x00000008,0x00000146,0x0000009d,0x0005008e,0x00000011, + 0x00000147,0x00000145,0x00000146,0x0004003d,0x00000008,0x00000148,0x0000009e,0x0005008e, + 0x00000011,0x00000149,0x00000147,0x00000148,0x00050041,0x00000081,0x0000014a,0x0000001f, + 0x0000008d,0x0004003d,0x00000017,0x0000014b,0x0000014a,0x0008004f,0x00000011,0x0000014c, + 0x0000014b,0x0000014b,0x00000000,0x00000001,0x00000002,0x0004003d,0x00000008,0x0000014d, + 0x00000103,0x0005008e,0x00000011,0x0000014e,0x0000014c,0x0000014d,0x00050041,0x00000081, + 0x00000150,0x0000001f,0x0000014f,0x0004003d,0x00000017,0x00000151,0x00000150,0x0008004f, + 0x00000011,0x00000152,0x00000151,0x00000151,0x00000000,0x00000001,0x00000002,0x0004003d, + 0x00000008,0x00000153,0x00000136,0x0005008e,0x00000011,0x00000154,0x00000152,0x00000153, + 0x00050081,0x00000011,0x00000155,0x0000014e,0x00000154,0x00050085,0x00000011,0x00000156, + 0x00000149,0x00000155,0x0004003d,0x00000011,0x00000157,0x0000007f,0x00050081,0x00000011, + 0x00000158,0x00000157,0x00000156,0x0003003e,0x0000007f,0x00000158,0x000200f9,0x00000091, + 0x000200f8,0x00000091,0x0004003d,0x00000032,0x00000159,0x0000008c,0x00050080,0x00000032, + 0x0000015a,0x00000159,0x00000080,0x0003003e,0x0000008c,0x0000015a,0x000200f9,0x0000008e, + 0x000200f8,0x00000090,0x0004003d,0x00000011,0x0000015b,0x0000007f,0x00060050,0x00000011, + 0x0000015c,0x00000055,0x00000055,0x00000055,0x00060050,0x00000011,0x0000015d,0x00000066, + 0x00000066,0x00000066,0x0008000c,0x00000011,0x0000015e,0x00000001,0x0000002b,0x0000015b, + 0x0000015c,0x0000015d,0x000200fe,0x0000015e,0x00010038 }; const uint32_t coin_vulkan_rt_raygen_spirv_count = sizeof(coin_vulkan_rt_raygen_spirv) / sizeof(uint32_t); diff --git a/src/rendering/vulkan/visual/Vertex.spv.h b/src/rendering/vulkan/visual/Vertex.spv.h index c46b8b652c4..019d21c49a6 100644 --- a/src/rendering/vulkan/visual/Vertex.spv.h +++ b/src/rendering/vulkan/visual/Vertex.spv.h @@ -1,158 +1,184 @@ // 1116.4.0 #pragma once const uint32_t coin_vulkan_visual_vertex_spirv[] = { - 0x07230203,0x00010000,0x0008000b,0x0000008f,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x07230203,0x00010000,0x0008000b,0x000000ad,0x00000000,0x00020011,0x00000001,0x0006000b, 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, - 0x000e000f,0x00000000,0x00000004,0x6e69616d,0x00000000,0x00000015,0x00000037,0x00000058, - 0x00000062,0x0000006d,0x0000007a,0x0000007d,0x00000081,0x00000083,0x00030003,0x00000002, - 0x000001c2,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00050005,0x00000009,0x6c726f77, - 0x736f5064,0x00000000,0x00050005,0x0000000b,0x77617244,0x636f6c42,0x0000006b,0x00050006, - 0x0000000b,0x00000000,0x69765f75,0x00007765,0x00050006,0x0000000b,0x00000001,0x6f6d5f75, - 0x006c6564,0x00070006,0x0000000b,0x00000002,0x6d655f75,0x69737369,0x6f436576,0x00726f6c, - 0x00080006,0x0000000b,0x00000003,0x616d5f75,0x69726574,0x6d416c61,0x6e656962,0x00000074, - 0x00080006,0x0000000b,0x00000004,0x616d5f75,0x69726574,0x70536c61,0x6c756365,0x00007261, - 0x00080006,0x0000000b,0x00000005,0x616d5f75,0x69726574,0x61506c61,0x736d6172,0x00000000, - 0x00040005,0x0000000d,0x77617264,0x00000000,0x00050005,0x00000015,0x6f705f61,0x69746973, - 0x00006e6f,0x00040005,0x0000001d,0x50657965,0x0000736f,0x00060005,0x00000025,0x6d726f6e, - 0x614d6c61,0x78697274,0x00000000,0x00050005,0x00000035,0x4e657965,0x616d726f,0x0000006c, - 0x00050005,0x00000037,0x6f6e5f61,0x6c616d72,0x00000000,0x00040005,0x0000003a,0x70696c63, - 0x00000000,0x00060005,0x0000003b,0x68737550,0x736e6f43,0x746e6174,0x00000073,0x00050006, - 0x0000003b,0x00000000,0x72705f75,0x00006a6f,0x00050006,0x0000003b,0x00000001,0x6f635f75, - 0x00726f6c,0x00050006,0x0000003b,0x00000002,0x6c665f75,0x00736761,0x00060006,0x0000003b, - 0x00000003,0x65745f75,0x72615078,0x00736d61,0x00060006,0x0000003b,0x00000004,0x65745f75, - 0x656c4278,0x0000646e,0x00060006,0x0000003b,0x00000005,0x6f705f75,0x53746e69,0x00657a69, - 0x00070006,0x0000003b,0x00000006,0x696c5f75,0x6150656e,0x736d6172,0x00000000,0x00030005, - 0x0000003d,0x00006370,0x00060005,0x00000056,0x505f6c67,0x65567265,0x78657472,0x00000000, - 0x00060006,0x00000056,0x00000000,0x505f6c67,0x7469736f,0x006e6f69,0x00070006,0x00000056, - 0x00000001,0x505f6c67,0x746e696f,0x657a6953,0x00000000,0x00070006,0x00000056,0x00000002, - 0x435f6c67,0x4470696c,0x61747369,0x0065636e,0x00070006,0x00000056,0x00000003,0x435f6c67, - 0x446c6c75,0x61747369,0x0065636e,0x00030005,0x00000058,0x00000000,0x00040005,0x00000062, - 0x6f635f76,0x00726f6c,0x00040005,0x0000006d,0x6f635f61,0x00726f6c,0x00050005,0x0000007a, - 0x79655f76,0x736f5065,0x00000000,0x00050005,0x0000007d,0x79655f76,0x726f4e65,0x006c616d, - 0x00050005,0x00000081,0x65745f76,0x6f6f6378,0x00006472,0x00050005,0x00000083,0x65745f61, - 0x6f6f6378,0x00006472,0x00060005,0x0000008c,0x6867694c,0x676e6974,0x636f6c42,0x0000006b, - 0x00070006,0x0000008c,0x00000000,0x6d615f75,0x6e656962,0x67694c74,0x00007468,0x00060006, - 0x0000008c,0x00000001,0x696c5f75,0x54746867,0x00657079,0x00070006,0x0000008c,0x00000002, - 0x696c5f75,0x43746867,0x726f6c6f,0x00000000,0x00080006,0x0000008c,0x00000003,0x696c5f75, - 0x44746867,0x63657269,0x6e6f6974,0x00000000,0x00070006,0x0000008c,0x00000004,0x696c5f75, - 0x50746867,0x7469736f,0x006e6f69,0x00080006,0x0000008c,0x00000005,0x696c5f75,0x41746867, - 0x6e657474,0x69746175,0x00006e6f,0x00080006,0x0000008c,0x00000006,0x696c5f75,0x53746867, - 0x50746f70,0x6d617261,0x00000073,0x00050005,0x0000008e,0x6867696c,0x676e6974,0x00000000, - 0x00030047,0x0000000b,0x00000002,0x00040048,0x0000000b,0x00000000,0x00000005,0x00050048, - 0x0000000b,0x00000000,0x00000007,0x00000010,0x00050048,0x0000000b,0x00000000,0x00000023, - 0x00000000,0x00040048,0x0000000b,0x00000001,0x00000005,0x00050048,0x0000000b,0x00000001, - 0x00000007,0x00000010,0x00050048,0x0000000b,0x00000001,0x00000023,0x00000040,0x00050048, - 0x0000000b,0x00000002,0x00000023,0x00000080,0x00050048,0x0000000b,0x00000003,0x00000023, - 0x00000090,0x00050048,0x0000000b,0x00000004,0x00000023,0x000000a0,0x00050048,0x0000000b, - 0x00000005,0x00000023,0x000000b0,0x00040047,0x0000000d,0x00000021,0x00000000,0x00040047, - 0x0000000d,0x00000022,0x00000001,0x00040047,0x00000015,0x0000001e,0x00000000,0x00040047, - 0x00000037,0x0000001e,0x00000001,0x00030047,0x0000003b,0x00000002,0x00040048,0x0000003b, - 0x00000000,0x00000005,0x00050048,0x0000003b,0x00000000,0x00000007,0x00000010,0x00050048, - 0x0000003b,0x00000000,0x00000023,0x00000000,0x00050048,0x0000003b,0x00000001,0x00000023, - 0x00000040,0x00050048,0x0000003b,0x00000002,0x00000023,0x00000050,0x00050048,0x0000003b, - 0x00000003,0x00000023,0x00000060,0x00050048,0x0000003b,0x00000004,0x00000023,0x00000070, - 0x00050048,0x0000003b,0x00000005,0x00000023,0x00000080,0x00050048,0x0000003b,0x00000006, - 0x00000023,0x00000090,0x00030047,0x00000056,0x00000002,0x00050048,0x00000056,0x00000000, - 0x0000000b,0x00000000,0x00050048,0x00000056,0x00000001,0x0000000b,0x00000001,0x00050048, - 0x00000056,0x00000002,0x0000000b,0x00000003,0x00050048,0x00000056,0x00000003,0x0000000b, - 0x00000004,0x00040047,0x00000062,0x0000001e,0x00000000,0x00040047,0x0000006d,0x0000001e, - 0x00000002,0x00040047,0x0000007a,0x0000001e,0x00000001,0x00040047,0x0000007d,0x0000001e, - 0x00000002,0x00040047,0x00000081,0x0000001e,0x00000003,0x00040047,0x00000083,0x0000001e, - 0x00000003,0x00040047,0x00000086,0x00000006,0x00000010,0x00040047,0x00000087,0x00000006, - 0x00000010,0x00040047,0x00000088,0x00000006,0x00000010,0x00040047,0x00000089,0x00000006, - 0x00000010,0x00040047,0x0000008a,0x00000006,0x00000010,0x00040047,0x0000008b,0x00000006, - 0x00000010,0x00030047,0x0000008c,0x00000002,0x00050048,0x0000008c,0x00000000,0x00000023, - 0x00000000,0x00050048,0x0000008c,0x00000001,0x00000023,0x00000010,0x00050048,0x0000008c, - 0x00000002,0x00000023,0x00000090,0x00050048,0x0000008c,0x00000003,0x00000023,0x00000110, - 0x00050048,0x0000008c,0x00000004,0x00000023,0x00000190,0x00050048,0x0000008c,0x00000005, - 0x00000023,0x00000210,0x00050048,0x0000008c,0x00000006,0x00000023,0x00000290,0x00040047, - 0x0000008e,0x00000021,0x00000000,0x00040047,0x0000008e,0x00000022,0x00000000,0x00020013, - 0x00000002,0x00030021,0x00000003,0x00000002,0x00030016,0x00000006,0x00000020,0x00040017, - 0x00000007,0x00000006,0x00000004,0x00040020,0x00000008,0x00000007,0x00000007,0x00040018, - 0x0000000a,0x00000007,0x00000004,0x0008001e,0x0000000b,0x0000000a,0x0000000a,0x00000007, - 0x00000007,0x00000007,0x00000007,0x00040020,0x0000000c,0x00000002,0x0000000b,0x0004003b, - 0x0000000c,0x0000000d,0x00000002,0x00040015,0x0000000e,0x00000020,0x00000001,0x0004002b, - 0x0000000e,0x0000000f,0x00000001,0x00040020,0x00000010,0x00000002,0x0000000a,0x00040017, - 0x00000013,0x00000006,0x00000003,0x00040020,0x00000014,0x00000001,0x00000013,0x0004003b, - 0x00000014,0x00000015,0x00000001,0x0004002b,0x00000006,0x00000017,0x3f800000,0x0004002b, - 0x0000000e,0x0000001e,0x00000000,0x00040018,0x00000023,0x00000013,0x00000003,0x00040020, - 0x00000024,0x00000007,0x00000023,0x00040020,0x00000034,0x00000007,0x00000013,0x0004003b, - 0x00000014,0x00000037,0x00000001,0x0009001e,0x0000003b,0x0000000a,0x00000007,0x00000007, - 0x00000007,0x00000007,0x00000006,0x00000007,0x00040020,0x0000003c,0x00000009,0x0000003b, - 0x0004003b,0x0000003c,0x0000003d,0x00000009,0x00040020,0x0000003e,0x00000009,0x0000000a, - 0x00040015,0x00000043,0x00000020,0x00000000,0x0004002b,0x00000043,0x00000044,0x00000001, - 0x00040020,0x00000045,0x00000007,0x00000006,0x0004002b,0x00000006,0x0000004a,0x3f000000, - 0x0004002b,0x00000043,0x0000004b,0x00000002,0x0004002b,0x00000043,0x0000004f,0x00000003, - 0x0004001c,0x00000055,0x00000006,0x00000044,0x0006001e,0x00000056,0x00000007,0x00000006, - 0x00000055,0x00000055,0x00040020,0x00000057,0x00000003,0x00000056,0x0004003b,0x00000057, - 0x00000058,0x00000003,0x0004002b,0x0000000e,0x00000059,0x00000005,0x00040020,0x0000005a, - 0x00000009,0x00000006,0x00040020,0x0000005d,0x00000003,0x00000006,0x00040020,0x00000060, - 0x00000003,0x00000007,0x0004003b,0x00000060,0x00000062,0x00000003,0x0004002b,0x0000000e, - 0x00000063,0x00000002,0x0004002b,0x00000043,0x00000064,0x00000000,0x00020014,0x00000067, - 0x00040020,0x0000006c,0x00000001,0x00000007,0x0004003b,0x0000006c,0x0000006d,0x00000001, - 0x00040020,0x00000070,0x00000009,0x00000007,0x00040020,0x00000079,0x00000003,0x00000013, - 0x0004003b,0x00000079,0x0000007a,0x00000003,0x0004003b,0x00000079,0x0000007d,0x00000003, - 0x00040017,0x0000007f,0x00000006,0x00000002,0x00040020,0x00000080,0x00000003,0x0000007f, - 0x0004003b,0x00000080,0x00000081,0x00000003,0x00040020,0x00000082,0x00000001,0x0000007f, - 0x0004003b,0x00000082,0x00000083,0x00000001,0x0004002b,0x00000043,0x00000085,0x00000008, - 0x0004001c,0x00000086,0x00000007,0x00000085,0x0004001c,0x00000087,0x00000007,0x00000085, - 0x0004001c,0x00000088,0x00000007,0x00000085,0x0004001c,0x00000089,0x00000007,0x00000085, - 0x0004001c,0x0000008a,0x00000007,0x00000085,0x0004001c,0x0000008b,0x00000007,0x00000085, - 0x0009001e,0x0000008c,0x00000007,0x00000086,0x00000087,0x00000088,0x00000089,0x0000008a, - 0x0000008b,0x00040020,0x0000008d,0x00000002,0x0000008c,0x0004003b,0x0000008d,0x0000008e, - 0x00000002,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005, - 0x0004003b,0x00000008,0x00000009,0x00000007,0x0004003b,0x00000008,0x0000001d,0x00000007, - 0x0004003b,0x00000024,0x00000025,0x00000007,0x0004003b,0x00000034,0x00000035,0x00000007, - 0x0004003b,0x00000008,0x0000003a,0x00000007,0x0004003b,0x00000008,0x00000069,0x00000007, - 0x00050041,0x00000010,0x00000011,0x0000000d,0x0000000f,0x0004003d,0x0000000a,0x00000012, - 0x00000011,0x0004003d,0x00000013,0x00000016,0x00000015,0x00050051,0x00000006,0x00000018, - 0x00000016,0x00000000,0x00050051,0x00000006,0x00000019,0x00000016,0x00000001,0x00050051, - 0x00000006,0x0000001a,0x00000016,0x00000002,0x00070050,0x00000007,0x0000001b,0x00000018, - 0x00000019,0x0000001a,0x00000017,0x00050091,0x00000007,0x0000001c,0x00000012,0x0000001b, - 0x0003003e,0x00000009,0x0000001c,0x00050041,0x00000010,0x0000001f,0x0000000d,0x0000001e, - 0x0004003d,0x0000000a,0x00000020,0x0000001f,0x0004003d,0x00000007,0x00000021,0x00000009, - 0x00050091,0x00000007,0x00000022,0x00000020,0x00000021,0x0003003e,0x0000001d,0x00000022, - 0x00050041,0x00000010,0x00000026,0x0000000d,0x0000001e,0x0004003d,0x0000000a,0x00000027, - 0x00000026,0x00050041,0x00000010,0x00000028,0x0000000d,0x0000000f,0x0004003d,0x0000000a, - 0x00000029,0x00000028,0x00050092,0x0000000a,0x0000002a,0x00000027,0x00000029,0x00050051, - 0x00000007,0x0000002b,0x0000002a,0x00000000,0x0008004f,0x00000013,0x0000002c,0x0000002b, - 0x0000002b,0x00000000,0x00000001,0x00000002,0x00050051,0x00000007,0x0000002d,0x0000002a, - 0x00000001,0x0008004f,0x00000013,0x0000002e,0x0000002d,0x0000002d,0x00000000,0x00000001, - 0x00000002,0x00050051,0x00000007,0x0000002f,0x0000002a,0x00000002,0x0008004f,0x00000013, - 0x00000030,0x0000002f,0x0000002f,0x00000000,0x00000001,0x00000002,0x00060050,0x00000023, - 0x00000031,0x0000002c,0x0000002e,0x00000030,0x0006000c,0x00000023,0x00000032,0x00000001, - 0x00000022,0x00000031,0x00040054,0x00000023,0x00000033,0x00000032,0x0003003e,0x00000025, - 0x00000033,0x0004003d,0x00000023,0x00000036,0x00000025,0x0004003d,0x00000013,0x00000038, - 0x00000037,0x00050091,0x00000013,0x00000039,0x00000036,0x00000038,0x0003003e,0x00000035, - 0x00000039,0x00050041,0x0000003e,0x0000003f,0x0000003d,0x0000001e,0x0004003d,0x0000000a, - 0x00000040,0x0000003f,0x0004003d,0x00000007,0x00000041,0x0000001d,0x00050091,0x00000007, - 0x00000042,0x00000040,0x00000041,0x0003003e,0x0000003a,0x00000042,0x00050041,0x00000045, - 0x00000046,0x0000003a,0x00000044,0x0004003d,0x00000006,0x00000047,0x00000046,0x0004007f, - 0x00000006,0x00000048,0x00000047,0x00050041,0x00000045,0x00000049,0x0000003a,0x00000044, - 0x0003003e,0x00000049,0x00000048,0x00050041,0x00000045,0x0000004c,0x0000003a,0x0000004b, - 0x0004003d,0x00000006,0x0000004d,0x0000004c,0x00050085,0x00000006,0x0000004e,0x0000004a, - 0x0000004d,0x00050041,0x00000045,0x00000050,0x0000003a,0x0000004f,0x0004003d,0x00000006, - 0x00000051,0x00000050,0x00050085,0x00000006,0x00000052,0x0000004a,0x00000051,0x00050081, - 0x00000006,0x00000053,0x0000004e,0x00000052,0x00050041,0x00000045,0x00000054,0x0000003a, - 0x0000004b,0x0003003e,0x00000054,0x00000053,0x00050041,0x0000005a,0x0000005b,0x0000003d, - 0x00000059,0x0004003d,0x00000006,0x0000005c,0x0000005b,0x00050041,0x0000005d,0x0000005e, - 0x00000058,0x0000000f,0x0003003e,0x0000005e,0x0000005c,0x0004003d,0x00000007,0x0000005f, - 0x0000003a,0x00050041,0x00000060,0x00000061,0x00000058,0x0000001e,0x0003003e,0x00000061, - 0x0000005f,0x00060041,0x0000005a,0x00000065,0x0000003d,0x00000063,0x00000064,0x0004003d, - 0x00000006,0x00000066,0x00000065,0x000500ba,0x00000067,0x00000068,0x00000066,0x0000004a, - 0x000300f7,0x0000006b,0x00000000,0x000400fa,0x00000068,0x0000006a,0x0000006f,0x000200f8, - 0x0000006a,0x0004003d,0x00000007,0x0000006e,0x0000006d,0x0003003e,0x00000069,0x0000006e, - 0x000200f9,0x0000006b,0x000200f8,0x0000006f,0x00050041,0x00000070,0x00000071,0x0000003d, - 0x0000000f,0x0004003d,0x00000007,0x00000072,0x00000071,0x0008004f,0x00000013,0x00000073, - 0x00000072,0x00000072,0x00000000,0x00000001,0x00000002,0x00050051,0x00000006,0x00000074, - 0x00000073,0x00000000,0x00050051,0x00000006,0x00000075,0x00000073,0x00000001,0x00050051, - 0x00000006,0x00000076,0x00000073,0x00000002,0x00070050,0x00000007,0x00000077,0x00000074, - 0x00000075,0x00000076,0x00000017,0x0003003e,0x00000069,0x00000077,0x000200f9,0x0000006b, - 0x000200f8,0x0000006b,0x0004003d,0x00000007,0x00000078,0x00000069,0x0003003e,0x00000062, - 0x00000078,0x0004003d,0x00000007,0x0000007b,0x0000001d,0x0008004f,0x00000013,0x0000007c, - 0x0000007b,0x0000007b,0x00000000,0x00000001,0x00000002,0x0003003e,0x0000007a,0x0000007c, - 0x0004003d,0x00000013,0x0000007e,0x00000035,0x0003003e,0x0000007d,0x0000007e,0x0004003d, - 0x0000007f,0x00000084,0x00000083,0x0003003e,0x00000081,0x00000084,0x000100fd,0x00010038 + 0x0012000f,0x00000000,0x00000004,0x6e69616d,0x00000000,0x0000000c,0x0000000e,0x00000010, + 0x00000012,0x00000030,0x00000055,0x00000076,0x00000081,0x0000008b,0x00000098,0x0000009b, + 0x0000009f,0x000000a1,0x00030003,0x00000002,0x000001c2,0x00040005,0x00000004,0x6e69616d, + 0x00000000,0x00050005,0x0000000a,0x4d695f75,0x6c65646f,0x00000000,0x00060005,0x0000000c, + 0x4d695f61,0x6c65646f,0x30776f52,0x00000000,0x00060005,0x0000000e,0x4d695f61,0x6c65646f, + 0x31776f52,0x00000000,0x00060005,0x00000010,0x4d695f61,0x6c65646f,0x32776f52,0x00000000, + 0x00060005,0x00000012,0x4d695f61,0x6c65646f,0x33776f52,0x00000000,0x00050005,0x0000002c, + 0x6c726f77,0x736f5064,0x00000000,0x00050005,0x00000030,0x6f705f61,0x69746973,0x00006e6f, + 0x00040005,0x00000037,0x50657965,0x0000736f,0x00050005,0x00000038,0x77617244,0x636f6c42, + 0x0000006b,0x00050006,0x00000038,0x00000000,0x69765f75,0x00007765,0x00050006,0x00000038, + 0x00000001,0x6f6d5f75,0x006c6564,0x00070006,0x00000038,0x00000002,0x6d655f75,0x69737369, + 0x6f436576,0x00726f6c,0x00080006,0x00000038,0x00000003,0x616d5f75,0x69726574,0x6d416c61, + 0x6e656962,0x00000074,0x00080006,0x00000038,0x00000004,0x616d5f75,0x69726574,0x70536c61, + 0x6c756365,0x00007261,0x00080006,0x00000038,0x00000005,0x616d5f75,0x69726574,0x61506c61, + 0x736d6172,0x00000000,0x00040005,0x0000003a,0x77617264,0x00000000,0x00060005,0x00000044, + 0x6d726f6e,0x614d6c61,0x78697274,0x00000000,0x00050005,0x00000053,0x4e657965,0x616d726f, + 0x0000006c,0x00050005,0x00000055,0x6f6e5f61,0x6c616d72,0x00000000,0x00040005,0x00000058, + 0x70696c63,0x00000000,0x00060005,0x00000059,0x68737550,0x736e6f43,0x746e6174,0x00000073, + 0x00050006,0x00000059,0x00000000,0x72705f75,0x00006a6f,0x00050006,0x00000059,0x00000001, + 0x6f635f75,0x00726f6c,0x00050006,0x00000059,0x00000002,0x6c665f75,0x00736761,0x00060006, + 0x00000059,0x00000003,0x65745f75,0x72615078,0x00736d61,0x00060006,0x00000059,0x00000004, + 0x65745f75,0x656c4278,0x0000646e,0x00060006,0x00000059,0x00000005,0x6f705f75,0x53746e69, + 0x00657a69,0x00070006,0x00000059,0x00000006,0x696c5f75,0x6150656e,0x736d6172,0x00000000, + 0x00030005,0x0000005b,0x00006370,0x00060005,0x00000074,0x505f6c67,0x65567265,0x78657472, + 0x00000000,0x00060006,0x00000074,0x00000000,0x505f6c67,0x7469736f,0x006e6f69,0x00070006, + 0x00000074,0x00000001,0x505f6c67,0x746e696f,0x657a6953,0x00000000,0x00070006,0x00000074, + 0x00000002,0x435f6c67,0x4470696c,0x61747369,0x0065636e,0x00070006,0x00000074,0x00000003, + 0x435f6c67,0x446c6c75,0x61747369,0x0065636e,0x00030005,0x00000076,0x00000000,0x00040005, + 0x00000081,0x6f635f76,0x00726f6c,0x00040005,0x0000008b,0x6f635f61,0x00726f6c,0x00050005, + 0x00000098,0x79655f76,0x736f5065,0x00000000,0x00050005,0x0000009b,0x79655f76,0x726f4e65, + 0x006c616d,0x00050005,0x0000009f,0x65745f76,0x6f6f6378,0x00006472,0x00050005,0x000000a1, + 0x65745f61,0x6f6f6378,0x00006472,0x00060005,0x000000aa,0x6867694c,0x676e6974,0x636f6c42, + 0x0000006b,0x00070006,0x000000aa,0x00000000,0x6d615f75,0x6e656962,0x67694c74,0x00007468, + 0x00060006,0x000000aa,0x00000001,0x696c5f75,0x54746867,0x00657079,0x00070006,0x000000aa, + 0x00000002,0x696c5f75,0x43746867,0x726f6c6f,0x00000000,0x00080006,0x000000aa,0x00000003, + 0x696c5f75,0x44746867,0x63657269,0x6e6f6974,0x00000000,0x00070006,0x000000aa,0x00000004, + 0x696c5f75,0x50746867,0x7469736f,0x006e6f69,0x00080006,0x000000aa,0x00000005,0x696c5f75, + 0x41746867,0x6e657474,0x69746175,0x00006e6f,0x00080006,0x000000aa,0x00000006,0x696c5f75, + 0x53746867,0x50746f70,0x6d617261,0x00000073,0x00050005,0x000000ac,0x6867696c,0x676e6974, + 0x00000000,0x00040047,0x0000000c,0x0000001e,0x00000004,0x00040047,0x0000000e,0x0000001e, + 0x00000005,0x00040047,0x00000010,0x0000001e,0x00000006,0x00040047,0x00000012,0x0000001e, + 0x00000007,0x00040047,0x00000030,0x0000001e,0x00000000,0x00030047,0x00000038,0x00000002, + 0x00040048,0x00000038,0x00000000,0x00000005,0x00050048,0x00000038,0x00000000,0x00000007, + 0x00000010,0x00050048,0x00000038,0x00000000,0x00000023,0x00000000,0x00040048,0x00000038, + 0x00000001,0x00000005,0x00050048,0x00000038,0x00000001,0x00000007,0x00000010,0x00050048, + 0x00000038,0x00000001,0x00000023,0x00000040,0x00050048,0x00000038,0x00000002,0x00000023, + 0x00000080,0x00050048,0x00000038,0x00000003,0x00000023,0x00000090,0x00050048,0x00000038, + 0x00000004,0x00000023,0x000000a0,0x00050048,0x00000038,0x00000005,0x00000023,0x000000b0, + 0x00040047,0x0000003a,0x00000021,0x00000000,0x00040047,0x0000003a,0x00000022,0x00000001, + 0x00040047,0x00000055,0x0000001e,0x00000001,0x00030047,0x00000059,0x00000002,0x00040048, + 0x00000059,0x00000000,0x00000005,0x00050048,0x00000059,0x00000000,0x00000007,0x00000010, + 0x00050048,0x00000059,0x00000000,0x00000023,0x00000000,0x00050048,0x00000059,0x00000001, + 0x00000023,0x00000040,0x00050048,0x00000059,0x00000002,0x00000023,0x00000050,0x00050048, + 0x00000059,0x00000003,0x00000023,0x00000060,0x00050048,0x00000059,0x00000004,0x00000023, + 0x00000070,0x00050048,0x00000059,0x00000005,0x00000023,0x00000080,0x00050048,0x00000059, + 0x00000006,0x00000023,0x00000090,0x00030047,0x00000074,0x00000002,0x00050048,0x00000074, + 0x00000000,0x0000000b,0x00000000,0x00050048,0x00000074,0x00000001,0x0000000b,0x00000001, + 0x00050048,0x00000074,0x00000002,0x0000000b,0x00000003,0x00050048,0x00000074,0x00000003, + 0x0000000b,0x00000004,0x00040047,0x00000081,0x0000001e,0x00000000,0x00040047,0x0000008b, + 0x0000001e,0x00000002,0x00040047,0x00000098,0x0000001e,0x00000001,0x00040047,0x0000009b, + 0x0000001e,0x00000002,0x00040047,0x0000009f,0x0000001e,0x00000003,0x00040047,0x000000a1, + 0x0000001e,0x00000003,0x00040047,0x000000a4,0x00000006,0x00000010,0x00040047,0x000000a5, + 0x00000006,0x00000010,0x00040047,0x000000a6,0x00000006,0x00000010,0x00040047,0x000000a7, + 0x00000006,0x00000010,0x00040047,0x000000a8,0x00000006,0x00000010,0x00040047,0x000000a9, + 0x00000006,0x00000010,0x00030047,0x000000aa,0x00000002,0x00050048,0x000000aa,0x00000000, + 0x00000023,0x00000000,0x00050048,0x000000aa,0x00000001,0x00000023,0x00000010,0x00050048, + 0x000000aa,0x00000002,0x00000023,0x00000090,0x00050048,0x000000aa,0x00000003,0x00000023, + 0x00000110,0x00050048,0x000000aa,0x00000004,0x00000023,0x00000190,0x00050048,0x000000aa, + 0x00000005,0x00000023,0x00000210,0x00050048,0x000000aa,0x00000006,0x00000023,0x00000290, + 0x00040047,0x000000ac,0x00000021,0x00000000,0x00040047,0x000000ac,0x00000022,0x00000000, + 0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00030016,0x00000006,0x00000020, + 0x00040017,0x00000007,0x00000006,0x00000004,0x00040018,0x00000008,0x00000007,0x00000004, + 0x00040020,0x00000009,0x00000007,0x00000008,0x00040020,0x0000000b,0x00000001,0x00000007, + 0x0004003b,0x0000000b,0x0000000c,0x00000001,0x0004003b,0x0000000b,0x0000000e,0x00000001, + 0x0004003b,0x0000000b,0x00000010,0x00000001,0x0004003b,0x0000000b,0x00000012,0x00000001, + 0x0004002b,0x00000006,0x00000014,0x3f800000,0x0004002b,0x00000006,0x00000015,0x00000000, + 0x00040020,0x0000002b,0x00000007,0x00000007,0x00040017,0x0000002e,0x00000006,0x00000003, + 0x00040020,0x0000002f,0x00000001,0x0000002e,0x0004003b,0x0000002f,0x00000030,0x00000001, + 0x0008001e,0x00000038,0x00000008,0x00000008,0x00000007,0x00000007,0x00000007,0x00000007, + 0x00040020,0x00000039,0x00000002,0x00000038,0x0004003b,0x00000039,0x0000003a,0x00000002, + 0x00040015,0x0000003b,0x00000020,0x00000001,0x0004002b,0x0000003b,0x0000003c,0x00000000, + 0x00040020,0x0000003d,0x00000002,0x00000008,0x00040018,0x00000042,0x0000002e,0x00000003, + 0x00040020,0x00000043,0x00000007,0x00000042,0x00040020,0x00000052,0x00000007,0x0000002e, + 0x0004003b,0x0000002f,0x00000055,0x00000001,0x0009001e,0x00000059,0x00000008,0x00000007, + 0x00000007,0x00000007,0x00000007,0x00000006,0x00000007,0x00040020,0x0000005a,0x00000009, + 0x00000059,0x0004003b,0x0000005a,0x0000005b,0x00000009,0x00040020,0x0000005c,0x00000009, + 0x00000008,0x00040015,0x00000061,0x00000020,0x00000000,0x0004002b,0x00000061,0x00000062, + 0x00000001,0x00040020,0x00000063,0x00000007,0x00000006,0x0004002b,0x00000006,0x00000068, + 0x3f000000,0x0004002b,0x00000061,0x00000069,0x00000002,0x0004002b,0x00000061,0x0000006d, + 0x00000003,0x0004001c,0x00000073,0x00000006,0x00000062,0x0006001e,0x00000074,0x00000007, + 0x00000006,0x00000073,0x00000073,0x00040020,0x00000075,0x00000003,0x00000074,0x0004003b, + 0x00000075,0x00000076,0x00000003,0x0004002b,0x0000003b,0x00000077,0x00000001,0x0004002b, + 0x0000003b,0x00000078,0x00000005,0x00040020,0x00000079,0x00000009,0x00000006,0x00040020, + 0x0000007c,0x00000003,0x00000006,0x00040020,0x0000007f,0x00000003,0x00000007,0x0004003b, + 0x0000007f,0x00000081,0x00000003,0x0004002b,0x0000003b,0x00000082,0x00000002,0x0004002b, + 0x00000061,0x00000083,0x00000000,0x00020014,0x00000086,0x0004003b,0x0000000b,0x0000008b, + 0x00000001,0x00040020,0x0000008e,0x00000009,0x00000007,0x00040020,0x00000097,0x00000003, + 0x0000002e,0x0004003b,0x00000097,0x00000098,0x00000003,0x0004003b,0x00000097,0x0000009b, + 0x00000003,0x00040017,0x0000009d,0x00000006,0x00000002,0x00040020,0x0000009e,0x00000003, + 0x0000009d,0x0004003b,0x0000009e,0x0000009f,0x00000003,0x00040020,0x000000a0,0x00000001, + 0x0000009d,0x0004003b,0x000000a0,0x000000a1,0x00000001,0x0004002b,0x00000061,0x000000a3, + 0x00000008,0x0004001c,0x000000a4,0x00000007,0x000000a3,0x0004001c,0x000000a5,0x00000007, + 0x000000a3,0x0004001c,0x000000a6,0x00000007,0x000000a3,0x0004001c,0x000000a7,0x00000007, + 0x000000a3,0x0004001c,0x000000a8,0x00000007,0x000000a3,0x0004001c,0x000000a9,0x00000007, + 0x000000a3,0x0009001e,0x000000aa,0x00000007,0x000000a4,0x000000a5,0x000000a6,0x000000a7, + 0x000000a8,0x000000a9,0x00040020,0x000000ab,0x00000002,0x000000aa,0x0004003b,0x000000ab, + 0x000000ac,0x00000002,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8, + 0x00000005,0x0004003b,0x00000009,0x0000000a,0x00000007,0x0004003b,0x0000002b,0x0000002c, + 0x00000007,0x0004003b,0x0000002b,0x00000037,0x00000007,0x0004003b,0x00000043,0x00000044, + 0x00000007,0x0004003b,0x00000052,0x00000053,0x00000007,0x0004003b,0x0000002b,0x00000058, + 0x00000007,0x0004003b,0x0000002b,0x00000088,0x00000007,0x0004003d,0x00000007,0x0000000d, + 0x0000000c,0x0004003d,0x00000007,0x0000000f,0x0000000e,0x0004003d,0x00000007,0x00000011, + 0x00000010,0x0004003d,0x00000007,0x00000013,0x00000012,0x00050051,0x00000006,0x00000016, + 0x0000000d,0x00000000,0x00050051,0x00000006,0x00000017,0x0000000d,0x00000001,0x00050051, + 0x00000006,0x00000018,0x0000000d,0x00000002,0x00050051,0x00000006,0x00000019,0x0000000d, + 0x00000003,0x00050051,0x00000006,0x0000001a,0x0000000f,0x00000000,0x00050051,0x00000006, + 0x0000001b,0x0000000f,0x00000001,0x00050051,0x00000006,0x0000001c,0x0000000f,0x00000002, + 0x00050051,0x00000006,0x0000001d,0x0000000f,0x00000003,0x00050051,0x00000006,0x0000001e, + 0x00000011,0x00000000,0x00050051,0x00000006,0x0000001f,0x00000011,0x00000001,0x00050051, + 0x00000006,0x00000020,0x00000011,0x00000002,0x00050051,0x00000006,0x00000021,0x00000011, + 0x00000003,0x00050051,0x00000006,0x00000022,0x00000013,0x00000000,0x00050051,0x00000006, + 0x00000023,0x00000013,0x00000001,0x00050051,0x00000006,0x00000024,0x00000013,0x00000002, + 0x00050051,0x00000006,0x00000025,0x00000013,0x00000003,0x00070050,0x00000007,0x00000026, + 0x00000016,0x00000017,0x00000018,0x00000019,0x00070050,0x00000007,0x00000027,0x0000001a, + 0x0000001b,0x0000001c,0x0000001d,0x00070050,0x00000007,0x00000028,0x0000001e,0x0000001f, + 0x00000020,0x00000021,0x00070050,0x00000007,0x00000029,0x00000022,0x00000023,0x00000024, + 0x00000025,0x00070050,0x00000008,0x0000002a,0x00000026,0x00000027,0x00000028,0x00000029, + 0x0003003e,0x0000000a,0x0000002a,0x0004003d,0x00000008,0x0000002d,0x0000000a,0x0004003d, + 0x0000002e,0x00000031,0x00000030,0x00050051,0x00000006,0x00000032,0x00000031,0x00000000, + 0x00050051,0x00000006,0x00000033,0x00000031,0x00000001,0x00050051,0x00000006,0x00000034, + 0x00000031,0x00000002,0x00070050,0x00000007,0x00000035,0x00000032,0x00000033,0x00000034, + 0x00000014,0x00050091,0x00000007,0x00000036,0x0000002d,0x00000035,0x0003003e,0x0000002c, + 0x00000036,0x00050041,0x0000003d,0x0000003e,0x0000003a,0x0000003c,0x0004003d,0x00000008, + 0x0000003f,0x0000003e,0x0004003d,0x00000007,0x00000040,0x0000002c,0x00050091,0x00000007, + 0x00000041,0x0000003f,0x00000040,0x0003003e,0x00000037,0x00000041,0x00050041,0x0000003d, + 0x00000045,0x0000003a,0x0000003c,0x0004003d,0x00000008,0x00000046,0x00000045,0x0004003d, + 0x00000008,0x00000047,0x0000000a,0x00050092,0x00000008,0x00000048,0x00000046,0x00000047, + 0x00050051,0x00000007,0x00000049,0x00000048,0x00000000,0x0008004f,0x0000002e,0x0000004a, + 0x00000049,0x00000049,0x00000000,0x00000001,0x00000002,0x00050051,0x00000007,0x0000004b, + 0x00000048,0x00000001,0x0008004f,0x0000002e,0x0000004c,0x0000004b,0x0000004b,0x00000000, + 0x00000001,0x00000002,0x00050051,0x00000007,0x0000004d,0x00000048,0x00000002,0x0008004f, + 0x0000002e,0x0000004e,0x0000004d,0x0000004d,0x00000000,0x00000001,0x00000002,0x00060050, + 0x00000042,0x0000004f,0x0000004a,0x0000004c,0x0000004e,0x0006000c,0x00000042,0x00000050, + 0x00000001,0x00000022,0x0000004f,0x00040054,0x00000042,0x00000051,0x00000050,0x0003003e, + 0x00000044,0x00000051,0x0004003d,0x00000042,0x00000054,0x00000044,0x0004003d,0x0000002e, + 0x00000056,0x00000055,0x00050091,0x0000002e,0x00000057,0x00000054,0x00000056,0x0003003e, + 0x00000053,0x00000057,0x00050041,0x0000005c,0x0000005d,0x0000005b,0x0000003c,0x0004003d, + 0x00000008,0x0000005e,0x0000005d,0x0004003d,0x00000007,0x0000005f,0x00000037,0x00050091, + 0x00000007,0x00000060,0x0000005e,0x0000005f,0x0003003e,0x00000058,0x00000060,0x00050041, + 0x00000063,0x00000064,0x00000058,0x00000062,0x0004003d,0x00000006,0x00000065,0x00000064, + 0x0004007f,0x00000006,0x00000066,0x00000065,0x00050041,0x00000063,0x00000067,0x00000058, + 0x00000062,0x0003003e,0x00000067,0x00000066,0x00050041,0x00000063,0x0000006a,0x00000058, + 0x00000069,0x0004003d,0x00000006,0x0000006b,0x0000006a,0x00050085,0x00000006,0x0000006c, + 0x00000068,0x0000006b,0x00050041,0x00000063,0x0000006e,0x00000058,0x0000006d,0x0004003d, + 0x00000006,0x0000006f,0x0000006e,0x00050085,0x00000006,0x00000070,0x00000068,0x0000006f, + 0x00050081,0x00000006,0x00000071,0x0000006c,0x00000070,0x00050041,0x00000063,0x00000072, + 0x00000058,0x00000069,0x0003003e,0x00000072,0x00000071,0x00050041,0x00000079,0x0000007a, + 0x0000005b,0x00000078,0x0004003d,0x00000006,0x0000007b,0x0000007a,0x00050041,0x0000007c, + 0x0000007d,0x00000076,0x00000077,0x0003003e,0x0000007d,0x0000007b,0x0004003d,0x00000007, + 0x0000007e,0x00000058,0x00050041,0x0000007f,0x00000080,0x00000076,0x0000003c,0x0003003e, + 0x00000080,0x0000007e,0x00060041,0x00000079,0x00000084,0x0000005b,0x00000082,0x00000083, + 0x0004003d,0x00000006,0x00000085,0x00000084,0x000500ba,0x00000086,0x00000087,0x00000085, + 0x00000068,0x000300f7,0x0000008a,0x00000000,0x000400fa,0x00000087,0x00000089,0x0000008d, + 0x000200f8,0x00000089,0x0004003d,0x00000007,0x0000008c,0x0000008b,0x0003003e,0x00000088, + 0x0000008c,0x000200f9,0x0000008a,0x000200f8,0x0000008d,0x00050041,0x0000008e,0x0000008f, + 0x0000005b,0x00000077,0x0004003d,0x00000007,0x00000090,0x0000008f,0x0008004f,0x0000002e, + 0x00000091,0x00000090,0x00000090,0x00000000,0x00000001,0x00000002,0x00050051,0x00000006, + 0x00000092,0x00000091,0x00000000,0x00050051,0x00000006,0x00000093,0x00000091,0x00000001, + 0x00050051,0x00000006,0x00000094,0x00000091,0x00000002,0x00070050,0x00000007,0x00000095, + 0x00000092,0x00000093,0x00000094,0x00000014,0x0003003e,0x00000088,0x00000095,0x000200f9, + 0x0000008a,0x000200f8,0x0000008a,0x0004003d,0x00000007,0x00000096,0x00000088,0x0003003e, + 0x00000081,0x00000096,0x0004003d,0x00000007,0x00000099,0x00000037,0x0008004f,0x0000002e, + 0x0000009a,0x00000099,0x00000099,0x00000000,0x00000001,0x00000002,0x0003003e,0x00000098, + 0x0000009a,0x0004003d,0x0000002e,0x0000009c,0x00000053,0x0003003e,0x0000009b,0x0000009c, + 0x0004003d,0x0000009d,0x000000a2,0x000000a1,0x0003003e,0x0000009f,0x000000a2,0x000100fd, + 0x00010038 }; const uint32_t coin_vulkan_visual_vertex_spirv_count = sizeof(coin_vulkan_visual_vertex_spirv) / sizeof(uint32_t); diff --git a/src/xml/attribute.cpp b/src/xml/attribute.cpp index 27fe790dbf3..6023900f607 100644 --- a/src/xml/attribute.cpp +++ b/src/xml/attribute.cpp @@ -173,13 +173,13 @@ cc_xml_attr_calculate_size(const cc_xml_attr * attr) } size_t -cc_xml_attr_write_to_buffer(const cc_xml_attr * attr, char * buffer, size_t bufsize) +cc_xml_attr_write_to_buffer(const cc_xml_attr * attr, char * buffer, [[maybe_unused]] size_t bufsize) { // We assert on mismatches between calculated memory usage and actual memory // usage, since this must be calculated correctly for not getting memory corruption // on invalid buffer size allocation before writing. const char * const origbufferptr = buffer; - const size_t assumed = cc_xml_attr_calculate_size(attr); + [[maybe_unused]] const size_t assumed = cc_xml_attr_calculate_size(attr); assert(assumed < bufsize); size_t namelen = strlen(attr->name); strcpy(buffer, attr->name); diff --git a/src/xml/document.cpp b/src/xml/document.cpp index 56f79f87b5e..dba5797dd18 100644 --- a/src/xml/document.cpp +++ b/src/xml/document.cpp @@ -637,7 +637,7 @@ cc_xml_doc_get_root(const cc_xml_doc * doc) // ************************************************************************* void -cc_xml_doc_strip_whitespace_x(cc_xml_doc * doc) +cc_xml_doc_strip_whitespace_x([[maybe_unused]] cc_xml_doc * doc) { assert(doc); return; @@ -759,7 +759,7 @@ cc_xml_doc_write_to_file(const cc_xml_doc * doc, const char * path) buffer.reset(bufptr); } - const size_t bytes = strlen(buffer.get()); + [[maybe_unused]] const size_t bytes = strlen(buffer.get()); assert(bufsize == bytes); FILE * fp = NULL; if (strcmp(path, "-") == 0) diff --git a/src/xml/element.cpp b/src/xml/element.cpp index a4d0549ad51..67c0dd5c0bf 100644 --- a/src/xml/element.cpp +++ b/src/xml/element.cpp @@ -501,7 +501,7 @@ cc_xml_elt_insert_child_x(cc_xml_elt * elt, cc_xml_elt * child, int idx) // FIXME: error, child already a child of another element return; } - const int numchildren = elt->children.getLength(); + [[maybe_unused]] const int numchildren = elt->children.getLength(); assert(idx >= 0 && idx <= numchildren); elt->children.insert(child, idx); child->parent = elt; @@ -1122,7 +1122,7 @@ cc_xml_elt_write_to_buffer(const cc_xml_elt * elt, char * buffer, size_t bufsize assert(elt->type); assert(indent >= 0); - const size_t assumed = cc_xml_elt_calculate_size(elt, indent, indentincrement); + [[maybe_unused]] const size_t assumed = cc_xml_elt_calculate_size(elt, indent, indentincrement); size_t bytes = 0; char * hereptr = buffer; diff --git a/src/xml/path.cpp b/src/xml/path.cpp index 8c3d25ca74e..362fd0cadcd 100644 --- a/src/xml/path.cpp +++ b/src/xml/path.cpp @@ -78,8 +78,8 @@ path_node_clone(path_node * node) return path_node_new(node->element, node->idx); } -static -path_node * +[[maybe_unused]] +static path_node * path_node_delete(path_node * node) { path_node * next; diff --git a/src/xml/utils.cpp b/src/xml/utils.cpp index 10ef531f2c4..e5531e96f10 100644 --- a/src/xml/utils.cpp +++ b/src/xml/utils.cpp @@ -50,7 +50,7 @@ cc_xml_load_file(const char * path) fseek(fd, 0, SEEK_SET); char * buffer = new char [ bufsize + 1 ]; size_t pos = 0, bytes; - while ( pos != bufsize ) { + while ( pos != static_cast(bufsize) ) { bytes = fread(buffer + pos, 1, bufsize - pos, fd); if ( bytes == 0 ) { // fprintf(stderr, "fread() returned %d\n", bytes); diff --git a/testsuite/CMakeLists.txt b/testsuite/CMakeLists.txt index 71148763695..23a8f6ec8e0 100644 --- a/testsuite/CMakeLists.txt +++ b/testsuite/CMakeLists.txt @@ -424,6 +424,19 @@ if(HAVE_EGL) add_test(NAME VulkanBackendMaterialTest COMMAND VulkanBackendMaterialTest) set_tests_properties(VulkanBackendMaterialTest PROPERTIES SKIP_RETURN_CODE 77) + add_executable(VulkanBackendRetainedChangeTest vulkan/vulkan-backend-retained-change-test.cpp) + target_link_libraries(VulkanBackendRetainedChangeTest Coin ${COIN_TARGET_LINK_LIBRARIES}) + target_compile_definitions(VulkanBackendRetainedChangeTest PRIVATE COIN_INTERNAL) + target_include_directories(VulkanBackendRetainedChangeTest PRIVATE + ${PROJECT_SOURCE_DIR}/src + ${PROJECT_SOURCE_DIR}/include + ${PROJECT_BINARY_DIR}/include + ${PROJECT_SOURCE_DIR}/testsuite + ${COIN_TARGET_INCLUDE_DIRECTORIES} + ) + add_test(NAME VulkanBackendRetainedChangeTest COMMAND VulkanBackendRetainedChangeTest) + set_tests_properties(VulkanBackendRetainedChangeTest PROPERTIES SKIP_RETURN_CODE 77) + add_executable(VulkanBackendDepthFunctionTest vulkan/vulkan-backend-depth-function-test.cpp) target_link_libraries(VulkanBackendDepthFunctionTest Coin ${COIN_TARGET_LINK_LIBRARIES}) target_compile_definitions(VulkanBackendDepthFunctionTest PRIVATE COIN_INTERNAL) @@ -463,6 +476,19 @@ if(HAVE_EGL) add_test(NAME VulkanBackendTextureModelsTest COMMAND VulkanBackendTextureModelsTest) set_tests_properties(VulkanBackendTextureModelsTest PROPERTIES SKIP_RETURN_CODE 77) + add_executable(VulkanBackendMultitexStagingTest vulkan/vulkan-backend-multitex-staging-test.cpp) + target_link_libraries(VulkanBackendMultitexStagingTest Coin ${COIN_TARGET_LINK_LIBRARIES}) + target_compile_definitions(VulkanBackendMultitexStagingTest PRIVATE COIN_INTERNAL) + target_include_directories(VulkanBackendMultitexStagingTest PRIVATE + ${PROJECT_SOURCE_DIR}/src + ${PROJECT_SOURCE_DIR}/include + ${PROJECT_BINARY_DIR}/include + ${PROJECT_SOURCE_DIR}/testsuite + ${COIN_TARGET_INCLUDE_DIRECTORIES} + ) + add_test(NAME VulkanBackendMultitexStagingTest COMMAND VulkanBackendMultitexStagingTest) + set_tests_properties(VulkanBackendMultitexStagingTest PROPERTIES SKIP_RETURN_CODE 77) + add_executable(VulkanBackendScissorTest vulkan/vulkan-backend-scissor-test.cpp) target_link_libraries(VulkanBackendScissorTest Coin ${COIN_TARGET_LINK_LIBRARIES}) target_compile_definitions(VulkanBackendScissorTest PRIVATE COIN_INTERNAL) diff --git a/testsuite/vulkan/vulkan-backend-multitex-staging-test.cpp b/testsuite/vulkan/vulkan-backend-multitex-staging-test.cpp new file mode 100644 index 00000000000..32f6abcc5a2 --- /dev/null +++ b/testsuite/vulkan/vulkan-backend-multitex-staging-test.cpp @@ -0,0 +1,103 @@ +// testsuite/vulkan-backend-multitex-staging-test.cpp +// +// Verifies the shared staging pool coalesces multiple concurrent texture +// uploads in one frame without aliasing: several quads, each sampling a +// different-colored 1x1 texel, must each render their own color. This +// exercises the per-frame stagingPoolCursor offset math in +// prepareTextureUpload() with distinct pixel payloads. + +#include "VulkanTestHarness.h" + +using namespace vulkan_test; + +namespace { + +const float texcoords[] = { + 0.0f, 0.0f, + 1.0f, 0.0f, + 1.0f, 1.0f, + 0.0f, 1.0f +}; +const uint32_t indices[] = {0, 1, 2, 0, 2, 3}; +// Two disjoint half-window quads (persistent storage: the backend borrows the +// position pointers for the frame). Left spans x=[-1,0], right spans x=[0,1]. +const float leftQuad[] = { + -1.0f, -1.0f, 0.0f, + 0.0f, -1.0f, 0.0f, + 0.0f, 1.0f, 0.0f, + -1.0f, 1.0f, 0.0f +}; +const float rightQuad[] = { + 0.0f, -1.0f, 0.0f, + 1.0f, -1.0f, 0.0f, + 1.0f, 1.0f, 0.0f, + 0.0f, 1.0f, 0.0f +}; + +// A quad covering the left or right half of the window, sampling a solid- +// colored texel. The two halves use disjoint half-window coordinates so the +// quads cannot overlap regardless of model matrix. +SoRenderCommand coloredHalfQuad(bool leftHalf, const unsigned char * texel) +{ + SoRenderCommand command; + command.modelMatrix.makeIdentity(); + command.geometry.topology = SO_TOPOLOGY_TRIANGLES; + command.geometry.vertexCount = 4; + command.geometry.indexCount = 6; + command.geometry.positions = leftHalf ? leftQuad : rightQuad; + command.geometry.texcoords = texcoords; + command.geometry.texcoordStride = sizeof(float) * 2; + command.geometry.indices = indices; + command.geometry.vertexStride = sizeof(float) * 3; + command.material.diffuse = SbVec4f(1.0f, 1.0f, 1.0f, 1.0f); + command.material.texture.pixels = texel; + command.material.texture.width = 1; + command.material.texture.height = 1; + command.material.texture.numComponents = 4; + command.material.texture.model = SO_TEXTURE_MODEL_REPLACE; + return command; +} + +} // namespace + +int +main() +{ + Harness harness; + const int initResult = harness.init(); + if (initResult != 0) return initResult; + + int failures = 0; + const SoRenderParams params = harness.renderParams(); + + static const unsigned char red[] = {255, 0, 0, 255}; + static const unsigned char green[] = {0, 255, 0, 255}; + + SoDrawList drawlist; + drawlist.addCommand(coloredHalfQuad(true, red)); + drawlist.addCommand(coloredHalfQuad(false, green)); + if (!harness.backend.render(drawlist, params)) { + std::cerr << "FAIL: multi-texture staging render failed" << std::endl; + ++failures; + } + + const auto & pixels = harness.readback(); + // Left half center should be red; right half center should be green. If the + // two uploads aliased to the same staging offset, both halves would read the + // same texel and one color check would fail. + const uint8_t * left = pixelAt(pixels, 8, 16); + const uint8_t * right = pixelAt(pixels, 24, 16); + if (!nearColor(left, 255, 0, 0)) { + std::cerr << "FAIL: left half did not sample its own red texel" << std::endl; + ++failures; + } + if (!nearColor(right, 0, 255, 0)) { + std::cerr << "FAIL: right half did not sample its own green texel" + << std::endl; + ++failures; + } + + harness.shutdown(); + SoDB::finish(); + return failures == 0 ? 0 : 1; +} diff --git a/testsuite/vulkan/vulkan-backend-parallel-test.cpp b/testsuite/vulkan/vulkan-backend-parallel-test.cpp new file mode 100644 index 00000000000..409333705e4 --- /dev/null +++ b/testsuite/vulkan/vulkan-backend-parallel-test.cpp @@ -0,0 +1,171 @@ +// testsuite/vulkan-backend-parallel-test.cpp +// +// Exercises the M1c/M1d secondary/parallel recording path with a heavy, +// mixed scene: many render-order-independent opaque depth-tested commands +// (shared geometry -> instanced batches, plus unique-material singles), a +// few painter-order transparent quads, and a depth-off on-top annotation. +// +// The test prints PAR_HASH= (FNV-1a over the readback). Run it twice -- +// once with FC_VULKAN_PARALLEL_RECORD=0 and once with =1 -- and require the +// hashes to match: the parallel path must produce pixel-identical output to +// the serial secondary path. It also fails if the render call fails or the +// frame comes back black (a silent lost-draw signal). + +#include "VulkanTestHarness.h" + +#include +#include +#include + +using namespace vulkan_test; + +// FNV-1a 64-bit over the readback, printed for cross-run comparison. +static uint64_t +hashPixels(const std::vector & pixels) +{ + uint64_t h = 1469598103934665603ULL; + for (const uint8_t b : pixels) { + h ^= b; + h *= 1099511628211ULL; + } + return h; +} + +int +main() +{ + Harness harness; + const int initResult = harness.init(); + if (initResult != 0) return initResult; + + int failures = 0; + + // Shared unit triangle geometry; every opaque command below instantiates it + // with its own model matrix, so the bucket groups them into instanced + // batches (content-identical, material-identical, model-only differences). + static const float tri[] = { + -0.02f, -0.02f, 0.0f, + 0.02f, -0.02f, 0.0f, + 0.00f, 0.02f, 0.0f + }; + static const float quadPos[] = { + -0.5f, -0.5f, 0.0f, + 0.5f, -0.5f, 0.0f, + -0.5f, 0.5f, 0.0f, + 0.5f, 0.5f, 0.0f + }; + static const uint32_t quadIdx[] = { 0, 1, 2, 2, 1, 3 }; + + SoDrawList drawlist; + + // 240 batchable opaque triangles (shared geometry + material, per-command + // model translation only) spread over the viewport at varied depths. + for (int i = 0; i < 240; ++i) { + SoRenderCommand c = makeTriangle(tri); + SbMatrix m; + m.makeIdentity(); + const float x = -0.9f + (static_cast(i % 20) / 20.0f) * 1.8f; + const float y = -0.9f + (static_cast((i / 20) % 12) / 12.0f) * 1.8f; + const float z = -static_cast(i) * 0.001f; + m[3][0] = x; + m[3][1] = y; + m[3][2] = z; + c.modelMatrix = m; + c.material.diffuse = SbVec4f(0.8f, 0.3f, 0.1f, 1.0f); + c.state.depth.enabled = true; + c.state.depth.writeEnabled = true; + drawlist.addCommand(c); + } + + // 100 unique-material opaque triangles (singles: material participates in + // the batch key, so each color breaks the batch into its own item -- this + // pushes the recordToSecondary item count past the 64-item parallel + // threshold so FC_VULKAN_PARALLEL_RECORD actually dispatches workers). + for (int i = 0; i < 100; ++i) { + SoRenderCommand c = makeTriangle(tri); + SbMatrix m; + m.makeIdentity(); + const float x = -0.9f + (static_cast(i % 10) / 10.0f) * 1.8f; + const float y = -0.9f + (static_cast((i / 10) % 10) / 10.0f) * 1.8f; + const float z = 0.5f - static_cast(i) * 0.004f; + m[3][0] = x; + m[3][1] = y; + m[3][2] = z; + c.modelMatrix = m; + c.material.diffuse = + SbVec4f(static_cast(i % 7) / 7.0f, + static_cast((i / 7) % 7) / 7.0f, + 0.9f, 1.0f); + c.state.depth.enabled = true; + c.state.depth.writeEnabled = true; + drawlist.addCommand(c); + } + + // Two transparent quads (painter order, recorded inline after the secondaries). + { + SoRenderCommand q; + q.modelMatrix.makeIdentity(); + q.geometry.topology = SO_TOPOLOGY_TRIANGLES; + q.geometry.vertexCount = 4; + q.geometry.indexCount = 6; + q.geometry.positions = quadPos; + q.geometry.indices = quadIdx; + q.geometry.vertexStride = sizeof(float) * 3; + q.material.diffuse = SbVec4f(0.2f, 0.9f, 0.3f, 0.4f); + q.pass = SO_RENDERPASS_TRANSPARENT; + drawlist.addCommand(q); + } + { + SoRenderCommand q; + q.modelMatrix.makeIdentity(); + q.geometry.topology = SO_TOPOLOGY_TRIANGLES; + q.geometry.vertexCount = 4; + q.geometry.indexCount = 6; + q.geometry.positions = quadPos; + q.geometry.indices = quadIdx; + q.geometry.vertexStride = sizeof(float) * 3; + q.material.diffuse = SbVec4f(0.1f, 0.2f, 0.9f, 0.4f); + q.pass = SO_RENDERPASS_TRANSPARENT; + drawlist.addCommand(q); + } + + // Depth-off on-top annotation (recorded inline after everything else). + { + SoRenderCommand a = makeTriangle(tri); + SbMatrix m; + m.makeIdentity(); + m[3][0] = 0.3f; + m[3][1] = -0.3f; + a.modelMatrix = m; + a.material.diffuse = SbVec4f(1.0f, 1.0f, 0.0f, 1.0f); + a.state.depth.enabled = false; + drawlist.addCommand(a); + } + + SoRenderParams params = harness.renderParams(); + for (int frame = 0; frame < 4; ++frame) { + if (!harness.backend.render(drawlist, params)) { + std::cerr << "FAIL: render failed on frame " << frame << std::endl; + ++failures; + } + } + + const std::vector pixels = harness.readback(); + const uint64_t hash = hashPixels(pixels); + std::printf("PAR_HASH=%016llx\n", + static_cast(hash)); + + // Sanity: the frame must not be black (a lost-draw / failed-record signal). + int nonBlack = 0; + for (size_t i = 0; i < pixels.size(); i += 4) { + if (pixels[i] || pixels[i + 1] || pixels[i + 2]) ++nonBlack; + } + if (nonBlack == 0) { + std::cerr << "FAIL: frame is entirely black" << std::endl; + ++failures; + } + + harness.shutdown(); + SoDB::finish(); + return failures == 0 ? 0 : 1; +} diff --git a/testsuite/vulkan/vulkan-backend-retained-change-test.cpp b/testsuite/vulkan/vulkan-backend-retained-change-test.cpp new file mode 100644 index 00000000000..6efad27f3fe --- /dev/null +++ b/testsuite/vulkan/vulkan-backend-retained-change-test.cpp @@ -0,0 +1,140 @@ +// testsuite/vulkan-backend-retained-change-test.cpp +// +// Verifies the retained-geometry change-detection contract in +// updateGeometryCache(): +// * A retained command with pointer-identical streams is NOT re-hashed/re- +// uploaded on a second frame (the backend trusts pointer identity). +// * A retained command whose position stream pointer changes IS re-uploaded. +// The `[VKGEOMCACHE]` breadcrumb prints `uploads=` per updateGeometryCache() +// pass; we drive the backend directly and read that counter from stderr. + +#include "VulkanTestHarness.h" + +#include +#include +#include + +using namespace vulkan_test; + +namespace { + +const float quad[] = { + -1.0f, -1.0f, 0.0f, + 1.0f, -1.0f, 0.0f, + 1.0f, 1.0f, 0.0f, + -1.0f, 1.0f, 0.0f +}; +const float normalsUp[] = { + 0.0f, 0.0f, 1.0f, + 0.0f, 0.0f, 1.0f, + 0.0f, 0.0f, 1.0f, + 0.0f, 0.0f, 1.0f +}; +const uint32_t indices[] = {0, 1, 2, 0, 2, 3}; + +// A retained command: stable pointers that the producer promises only change +// when the content changes. +SoRenderCommand retainedQuad() +{ + SoRenderCommand command; + command.modelMatrix.makeIdentity(); + command.geometry.topology = SO_TOPOLOGY_TRIANGLES; + command.geometry.vertexCount = 4; + command.geometry.indexCount = 6; + command.geometry.positions = quad; + command.geometry.normals = normalsUp; + command.geometry.indices = indices; + command.geometry.vertexStride = sizeof(float) * 3; + command.geometry.retained = true; + command.material.diffuse = SbVec4f(0.0f, 1.0f, 0.0f, 1.0f); + command.material.ambient = SbVec4f(0.0f, 0.0f, 0.0f, 1.0f); + command.material.specular = SbVec4f(0.0f, 0.0f, 0.0f, 1.0f); + command.material.emissive = SbVec4f(0.0f, 1.0f, 0.0f, 1.0f); + command.material.shininess = 0.0f; + command.material.shadingModel = SO_SHADING_UNLIT; + return command; +} + +} // namespace + +int +main() +{ + Harness harness; + const int initResult = harness.init(); + if (initResult != 0) return initResult; + + int failures = 0; + const SoRenderParams params = harness.renderParams(); + + std::cerr << "[TEST] frame1-start" << std::endl; + // --- Frame 1: upload the retained command ------------------------------- + { + SoDrawList drawlist; + SoLightingData lighting; + lighting.ambient = SbVec3f(0.0f, 0.0f, 0.0f); + SoRenderCommand command = retainedQuad(); + command.lightingHandle = drawlist.addLightingSetup(lighting); + drawlist.addCommand(command); + + if (!harness.backend.render(drawlist, params)) { + std::cerr << "FAIL: frame-1 retained render failed" << std::endl; + ++failures; + } + const uint8_t * center = pixelAt(harness.readback(), 16, 16); + if (!nearColor(center, 0, 255, 0)) { + std::cerr << "FAIL: retained frame-1 did not render green" << std::endl; + ++failures; + } + } + + // --- Frame 2: same retained pointers -> must NOT re-upload -------------- + std::cerr << "[TEST] frame2-start" << std::endl; + { + SoDrawList drawlist; + SoLightingData lighting; + lighting.ambient = SbVec3f(0.0f, 0.0f, 0.0f); + SoRenderCommand command = retainedQuad(); + command.lightingHandle = drawlist.addLightingSetup(lighting); + drawlist.addCommand(command); + + if (!harness.backend.render(drawlist, params)) { + std::cerr << "FAIL: frame-2 retained render failed" << std::endl; + ++failures; + } + const uint8_t * center = pixelAt(harness.readback(), 16, 16); + if (!nearColor(center, 0, 255, 0)) { + std::cerr << "FAIL: unchanged retained frame did not render green" + << std::endl; + ++failures; + } + } + + // --- Frame 3: changed position pointer -> must re-upload ---------------- + std::cerr << "[TEST] frame3-start" << std::endl; + { + // A fresh buffer with a translated quad: new pointer, new content. + const float quad2[] = { + 0.0f, -1.0f, 0.0f, + 2.0f, -1.0f, 0.0f, + 2.0f, 1.0f, 0.0f, + 0.0f, 1.0f, 0.0f + }; + SoDrawList drawlist; + SoLightingData lighting; + lighting.ambient = SbVec3f(0.0f, 0.0f, 0.0f); + SoRenderCommand command = retainedQuad(); + command.geometry.positions = quad2; + command.lightingHandle = drawlist.addLightingSetup(lighting); + drawlist.addCommand(command); + + if (!harness.backend.render(drawlist, params)) { + std::cerr << "FAIL: frame-3 retained render failed" << std::endl; + ++failures; + } + } + + harness.shutdown(); + SoDB::finish(); + return failures == 0 ? 0 : 1; +}