diff options
Diffstat (limited to 'lib/mesa/src')
120 files changed, 10200 insertions, 15210 deletions
diff --git a/lib/mesa/src/mesa/drivers/common/meta_blit.c b/lib/mesa/src/mesa/drivers/common/meta_blit.c index 7adad469a..7d5fde964 100644 --- a/lib/mesa/src/mesa/drivers/common/meta_blit.c +++ b/lib/mesa/src/mesa/drivers/common/meta_blit.c @@ -59,7 +59,7 @@ static void setup_glsl_msaa_blit_scaled_shader(struct gl_context *ctx, struct blit_state *blit, struct gl_renderbuffer *src_rb, - GLenum target) + GLenum target, GLenum filter) { GLint loc_src_width, loc_src_height; int i, samples; @@ -72,25 +72,20 @@ setup_glsl_msaa_blit_scaled_shader(struct gl_context *ctx, char *sample_map_expr = rzalloc_size(mem_ctx, 1); char *texel_fetch_macro = rzalloc_size(mem_ctx, 1); const char *sampler_array_suffix = ""; - float x_scale, y_scale; + float y_scale; enum blit_msaa_shader shader_index; assert(src_rb); samples = MAX2(src_rb->NumSamples, 1); - - if (samples == 16) - x_scale = 4.0; - else - x_scale = 2.0; - y_scale = samples / x_scale; + y_scale = samples * 0.5; /* We expect only power of 2 samples in source multisample buffer. */ assert(samples > 0 && _mesa_is_pow_two(samples)); while (samples >> (shader_offset + 1)) { shader_offset++; } - /* Update the assert if we plan to support more than 16X MSAA. */ - assert(shader_offset > 0 && shader_offset <= 4); + /* Update the assert if we plan to support more than 8X MSAA. */ + assert(shader_offset > 0 && shader_offset < 4); assert(target == GL_TEXTURE_2D_MULTISAMPLE || target == GL_TEXTURE_2D_MULTISAMPLE_ARRAY); @@ -105,12 +100,12 @@ setup_glsl_msaa_blit_scaled_shader(struct gl_context *ctx, } if (blit->msaa_shaders[shader_index]) { - _mesa_meta_use_program(ctx, blit->msaa_shaders[shader_index]); + _mesa_UseProgram(blit->msaa_shaders[shader_index]); /* Update the uniform values. */ loc_src_width = - _mesa_program_resource_location(blit->msaa_shaders[shader_index], GL_UNIFORM, "src_width"); + _mesa_GetUniformLocation(blit->msaa_shaders[shader_index], "src_width"); loc_src_height = - _mesa_program_resource_location(blit->msaa_shaders[shader_index], GL_UNIFORM, "src_height"); + _mesa_GetUniformLocation(blit->msaa_shaders[shader_index], "src_height"); _mesa_Uniform1f(loc_src_width, src_rb->Width); _mesa_Uniform1f(loc_src_height, src_rb->Height); return; @@ -134,10 +129,6 @@ setup_glsl_msaa_blit_scaled_shader(struct gl_context *ctx, sample_number = "sample_map[int(2 * fract(coord.x) + 8 * fract(coord.y))]"; sample_map = ctx->Const.SampleMap8x; break; - case 16: - sample_number = "sample_map[int(4 * fract(coord.x) + 16 * fract(coord.y))]"; - sample_map = ctx->Const.SampleMap16x; - break; default: sample_number = NULL; sample_map = NULL; @@ -168,9 +159,8 @@ setup_glsl_msaa_blit_scaled_shader(struct gl_context *ctx, static const char vs_source[] = "#version 130\n" - "#extension GL_ARB_explicit_attrib_location: enable\n" - "layout(location = 0) in vec2 position;\n" - "layout(location = 1) in vec3 textureCoords;\n" + "in vec2 position;\n" + "in vec3 textureCoords;\n" "out vec2 texCoords;\n" "flat out int layer;\n" "void main()\n" @@ -194,17 +184,17 @@ setup_glsl_msaa_blit_scaled_shader(struct gl_context *ctx, "{\n" "%s" " vec2 interp;\n" - " const vec2 scale = vec2(%ff, %ff);\n" - " const vec2 scale_inv = vec2(%ff, %ff);\n" - " const vec2 s_0_offset = vec2(%ff, %ff);\n" + " const vec2 scale = vec2(2.0f, %ff);\n" + " const vec2 scale_inv = vec2(0.5f, %ff);\n" + " const vec2 s_0_offset = vec2(0.25f, %ff);\n" " vec2 s_0_coord, s_1_coord, s_2_coord, s_3_coord;\n" " vec4 s_0_color, s_1_color, s_2_color, s_3_color;\n" " vec4 x_0_color, x_1_color;\n" " vec2 tex_coord = texCoords - s_0_offset;\n" "\n" " tex_coord *= scale;\n" - " tex_coord.x = clamp(tex_coord.x, 0.0f, scale.x * src_width - 1.0f);\n" - " tex_coord.y = clamp(tex_coord.y, 0.0f, scale.y * src_height - 1.0f);\n" + " clamp(tex_coord.x, 0.0f, scale.x * src_width - 1.0f);\n" + " clamp(tex_coord.y, 0.0f, scale.y * src_height - 1.0f);\n" " interp = fract(tex_coord);\n" " tex_coord = ivec2(tex_coord) * scale_inv;\n" "\n" @@ -223,23 +213,23 @@ setup_glsl_msaa_blit_scaled_shader(struct gl_context *ctx, "#undef TEXEL_FETCH\n" "\n" " /* Do bilinear filtering on sample colors. */\n" - " x_0_color = mix(s_0_color, s_1_color, interp.x);\n" - " x_1_color = mix(s_2_color, s_3_color, interp.x);\n" + " x_0_color = mix(s_0_color, s_1_color, interp.x);\n" + " x_1_color = mix(s_2_color, s_3_color, interp.x);\n" " out_color = mix(x_0_color, x_1_color, interp.y);\n" "}\n", sampler_array_suffix, sample_map_expr, - x_scale, y_scale, - 1.0f / x_scale, 1.0f / y_scale, - 0.5f / x_scale, 0.5f / y_scale, + y_scale, + 1.0f / y_scale, + 1.0f / samples, texel_fetch_macro); _mesa_meta_compile_and_link_program(ctx, vs_source, fs_source, name, &blit->msaa_shaders[shader_index]); loc_src_width = - _mesa_program_resource_location(blit->msaa_shaders[shader_index], GL_UNIFORM, "src_width"); + _mesa_GetUniformLocation(blit->msaa_shaders[shader_index], "src_width"); loc_src_height = - _mesa_program_resource_location(blit->msaa_shaders[shader_index], GL_UNIFORM, "src_height"); + _mesa_GetUniformLocation(blit->msaa_shaders[shader_index], "src_height"); _mesa_Uniform1f(loc_src_width, src_rb->Width); _mesa_Uniform1f(loc_src_height, src_rb->Height); @@ -326,7 +316,7 @@ setup_glsl_msaa_blit_shader(struct gl_context *ctx, } break; default: - _mesa_problem(ctx, "Unknown texture target %s\n", + _mesa_problem(ctx, "Unkown texture target %s\n", _mesa_enum_to_string(target)); shader_index = BLIT_2X_MSAA_SHADER_2D_MULTISAMPLE_RESOLVE; } @@ -347,7 +337,7 @@ setup_glsl_msaa_blit_shader(struct gl_context *ctx, } if (blit->msaa_shaders[shader_index]) { - _mesa_meta_use_program(ctx, blit->msaa_shaders[shader_index]); + _mesa_UseProgram(blit->msaa_shaders[shader_index]); return; } @@ -358,17 +348,17 @@ setup_glsl_msaa_blit_shader(struct gl_context *ctx, shader_index == BLIT_MSAA_SHADER_2D_MULTISAMPLE_ARRAY_DEPTH_COPY || shader_index == BLIT_MSAA_SHADER_2D_MULTISAMPLE_DEPTH_COPY) { char *sample_index; - const char *tex_coords = "texCoords"; + const char *arb_sample_shading_extension_string; if (dst_is_msaa) { + arb_sample_shading_extension_string = "#extension GL_ARB_sample_shading : enable"; sample_index = "gl_SampleID"; name = "depth MSAA copy"; - - if (ctx->Extensions.ARB_gpu_shader5 && samples >= 16) { - /* See comment below for the color copy */ - tex_coords = "interpolateAtOffset(texCoords, vec2(0.0))"; - } } else { + /* Don't need that extension, since we're drawing to a single-sampled + * destination. + */ + arb_sample_shading_extension_string = ""; /* From the GL 4.3 spec: * * "If there is a multisample buffer (the value of SAMPLE_BUFFERS @@ -385,9 +375,8 @@ setup_glsl_msaa_blit_shader(struct gl_context *ctx, vs_source = ralloc_asprintf(mem_ctx, "#version 130\n" - "#extension GL_ARB_explicit_attrib_location: enable\n" - "layout(location = 0) in vec2 position;\n" - "layout(location = 1) in %s textureCoords;\n" + "in vec2 position;\n" + "in %s textureCoords;\n" "out %s texCoords;\n" "void main()\n" "{\n" @@ -399,82 +388,50 @@ setup_glsl_msaa_blit_shader(struct gl_context *ctx, fs_source = ralloc_asprintf(mem_ctx, "#version 130\n" "#extension GL_ARB_texture_multisample : enable\n" - "#extension GL_ARB_sample_shading : enable\n" - "#extension GL_ARB_gpu_shader5 : enable\n" + "%s\n" "uniform sampler2DMS%s texSampler;\n" "in %s texCoords;\n" "out vec4 out_color;\n" "\n" "void main()\n" "{\n" - " gl_FragDepth = texelFetch(texSampler, i%s(%s), %s).r;\n" + " gl_FragDepth = texelFetch(texSampler, i%s(texCoords), %s).r;\n" "}\n", + arb_sample_shading_extension_string, sampler_array_suffix, texcoord_type, texcoord_type, - tex_coords, sample_index); } else { /* You can create 2D_MULTISAMPLE textures with 0 sample count (meaning 1 * sample). Yes, this is ridiculous. */ char *sample_resolve; + const char *arb_sample_shading_extension_string; const char *merge_function; name = ralloc_asprintf(mem_ctx, "%svec4 MSAA %s", vec4_prefix, dst_is_msaa ? "copy" : "resolve"); if (dst_is_msaa) { - const char *tex_coords; - - if (ctx->Extensions.ARB_gpu_shader5 && samples >= 16) { - /* If interpolateAtOffset is available then it will be used to - * force the interpolation to the center. This is required at - * least on Intel hardware because it is possible to have a sample - * position on the 0 x or y axis which means it will lie exactly - * on the pixel boundary. If we let the hardware interpolate the - * coordinates at one of these positions then it is possible for - * it to jump to a neighboring texel when converting to ints due - * to rounding errors. This is only done for >= 16x MSAA because - * it probably has some overhead. It is more likely that some - * hardware will use one of these problematic positions at 16x - * MSAA because in that case in D3D they are defined to be at - * these positions. - */ - tex_coords = "interpolateAtOffset(texCoords, vec2(0.0))"; - } else { - tex_coords = "texCoords"; - } - - sample_resolve = - ralloc_asprintf(mem_ctx, - " out_color = texelFetch(texSampler, " - "i%s(%s), gl_SampleID);", - texcoord_type, tex_coords); - + arb_sample_shading_extension_string = "#extension GL_ARB_sample_shading : enable"; + sample_resolve = ralloc_asprintf(mem_ctx, " out_color = texelFetch(texSampler, i%s(texCoords), gl_SampleID);", texcoord_type); merge_function = ""; } else { int i; int step; if (src_datatype == GL_INT || src_datatype == GL_UNSIGNED_INT) { - /* From the OpenGL ES 3.2 spec section 16.2.1: - * - * "If the source formats are integer types or stencil values, - * a single sample's value is selected for each pixel." - * - * The OpenGL 4.4 spec contains exactly the same language. - * - * We can accomplish this by making the merge function return just - * one of the two samples. The compiler should do the rest. - */ - merge_function = "gvec4 merge(gvec4 a, gvec4 b) { return a; }\n"; + merge_function = + "gvec4 merge(gvec4 a, gvec4 b) { return (a >> gvec4(1)) + (b >> gvec4(1)) + (a & b & gvec4(1)); }\n"; } else { /* The divide will happen at the end for floats. */ merge_function = "vec4 merge(vec4 a, vec4 b) { return (a + b); }\n"; } + arb_sample_shading_extension_string = ""; + /* We're assuming power of two samples for this resolution procedure. * * To avoid losing any floating point precision if the samples all @@ -517,9 +474,8 @@ setup_glsl_msaa_blit_shader(struct gl_context *ctx, vs_source = ralloc_asprintf(mem_ctx, "#version 130\n" - "#extension GL_ARB_explicit_attrib_location: enable\n" - "layout(location = 0) in vec2 position;\n" - "layout(location = 1) in %s textureCoords;\n" + "in vec2 position;\n" + "in %s textureCoords;\n" "out %s texCoords;\n" "void main()\n" "{\n" @@ -531,8 +487,7 @@ setup_glsl_msaa_blit_shader(struct gl_context *ctx, fs_source = ralloc_asprintf(mem_ctx, "#version 130\n" "#extension GL_ARB_texture_multisample : enable\n" - "#extension GL_ARB_sample_shading : enable\n" - "#extension GL_ARB_gpu_shader5 : enable\n" + "%s\n" "#define gvec4 %svec4\n" "uniform %ssampler2DMS%s texSampler;\n" "in %s texCoords;\n" @@ -543,6 +498,7 @@ setup_glsl_msaa_blit_shader(struct gl_context *ctx, "{\n" "%s\n" /* sample_resolve */ "}\n", + arb_sample_shading_extension_string, vec4_prefix, vec4_prefix, sampler_array_suffix, @@ -577,11 +533,11 @@ setup_glsl_blit_framebuffer(struct gl_context *ctx, texcoord_size = 2 + (src_rb->Depth > 1 ? 1 : 0); - _mesa_meta_setup_vertex_objects(ctx, &blit->VAO, &blit->buf_obj, true, + _mesa_meta_setup_vertex_objects(&blit->VAO, &blit->VBO, true, 2, texcoord_size, 0); if (is_target_multisample && is_filter_scaled_resolve && is_scaled_blit) { - setup_glsl_msaa_blit_scaled_shader(ctx, blit, src_rb, target); + setup_glsl_msaa_blit_scaled_shader(ctx, blit, src_rb, target, filter); } else if (is_target_multisample) { setup_glsl_msaa_blit_shader(ctx, blit, drawFb, src_rb, target); } else { @@ -703,9 +659,8 @@ blitframebuffer_texture(struct gl_context *ctx, do_depth); } else { - _mesa_meta_setup_ff_tnl_for_blit(ctx, - &ctx->Meta->Blit.VAO, - &ctx->Meta->Blit.buf_obj, + _mesa_meta_setup_ff_tnl_for_blit(&ctx->Meta->Blit.VAO, + &ctx->Meta->Blit.VBO, 2); } @@ -715,35 +670,37 @@ blitframebuffer_texture(struct gl_context *ctx, printf(" srcTex %p dstText %p\n", texObj, drawAtt->Texture); */ - fb_tex_blit.samp_obj = _mesa_meta_setup_sampler(ctx, texObj, target, filter, - srcLevel); + fb_tex_blit.sampler = _mesa_meta_setup_sampler(ctx, texObj, target, filter, + srcLevel); + /* Always do our blits with no net sRGB decode or encode. + * + * However, if both the src and dst can be srgb decode/encoded, enable them + * so that we do any blending (from scaling or from MSAA resolves) in the + * right colorspace. + * + * Our choice of not doing any net encode/decode is from the GL 3.0 + * specification: + * + * "Blit operations bypass the fragment pipeline. The only fragment + * operations which affect a blit are the pixel ownership test and the + * scissor test." + * + * The GL 4.4 specification disagrees and says that the sRGB part of the + * fragment pipeline applies, but this was found to break applications. + */ if (ctx->Extensions.EXT_texture_sRGB_decode) { - /* The GL 4.4 spec, section 18.3.1 ("Blitting Pixel Rectangles") says: - * - * "When values are taken from the read buffer, if FRAMEBUFFER_SRGB - * is enabled and the value of FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING - * for the framebuffer attachment corresponding to the read buffer - * is SRGB (see section 9.2.3), the red, green, and blue components - * are converted from the non-linear sRGB color space according to - * equation 3.24. - * - * When values are written to the draw buffers, blit operations - * bypass most of the fragment pipeline. The only fragment - * operations which affect a blit are the pixel ownership test, - * the scissor test, and sRGB conversion (see section 17.3.9)." - * - * ES 3.0 contains nearly the exact same text, but omits the part - * about GL_FRAMEBUFFER_SRGB as that doesn't exist in ES. Mesa - * defaults it to on for ES contexts, so we can safely check it. - */ - const bool decode = - ctx->Color.sRGBEnabled && - _mesa_get_format_color_encoding(rb->Format) == GL_SRGB; - - _mesa_set_sampler_srgb_decode(ctx, fb_tex_blit.samp_obj, - decode ? GL_DECODE_EXT - : GL_SKIP_DECODE_EXT); + if (_mesa_get_format_color_encoding(rb->Format) == GL_SRGB && + drawFb->Visual.sRGBCapable) { + _mesa_SamplerParameteri(fb_tex_blit.sampler, + GL_TEXTURE_SRGB_DECODE_EXT, GL_DECODE_EXT); + _mesa_set_framebuffer_srgb(ctx, GL_TRUE); + } else { + _mesa_SamplerParameteri(fb_tex_blit.sampler, + GL_TEXTURE_SRGB_DECODE_EXT, + GL_SKIP_DECODE_EXT); + /* set_framebuffer_srgb was set by _mesa_meta_begin(). */ + } } if (!glsl_version) { @@ -800,7 +757,7 @@ blitframebuffer_texture(struct gl_context *ctx, verts[3].tex[1] = t1; verts[3].tex[2] = readAtt->Zoffset; - _mesa_buffer_sub_data(ctx, blit->buf_obj, 0, sizeof(verts), verts); + _mesa_BufferSubData(GL_ARRAY_BUFFER_ARB, 0, sizeof(verts), verts); } /* setup viewport */ @@ -817,20 +774,12 @@ blitframebuffer_texture(struct gl_context *ctx, } void -_mesa_meta_fb_tex_blit_begin(struct gl_context *ctx, +_mesa_meta_fb_tex_blit_begin(const struct gl_context *ctx, struct fb_tex_blit_state *blit) { - /* None of the existing callers preinitialize fb_tex_blit_state to zeros, - * and both use stack variables. If samp_obj_save is not NULL, - * _mesa_reference_sampler_object will try to dereference it. Leaving - * random garbage in samp_obj_save can only lead to crashes. - * - * Since the state isn't persistent across calls, we won't catch ref - * counting problems. - */ - blit->samp_obj_save = NULL; - _mesa_reference_sampler_object(ctx, &blit->samp_obj_save, - ctx->Texture.Unit[ctx->Texture.CurrentUnit].Sampler); + blit->samplerSave = + ctx->Texture.Unit[ctx->Texture.CurrentUnit].Sampler ? + ctx->Texture.Unit[ctx->Texture.CurrentUnit].Sampler->Name : 0; blit->tempTex = 0; } @@ -838,35 +787,26 @@ void _mesa_meta_fb_tex_blit_end(struct gl_context *ctx, GLenum target, struct fb_tex_blit_state *blit) { - struct gl_texture_object *const texObj = - _mesa_get_current_tex_object(ctx, target); - /* Restore texture object state, the texture binding will * be restored by _mesa_meta_end(). */ if (target != GL_TEXTURE_RECTANGLE_ARB) { - _mesa_texture_parameteriv(ctx, texObj, GL_TEXTURE_BASE_LEVEL, - &blit->baseLevelSave, false); - _mesa_texture_parameteriv(ctx, texObj, GL_TEXTURE_MAX_LEVEL, - &blit->maxLevelSave, false); - } + _mesa_TexParameteri(target, GL_TEXTURE_BASE_LEVEL, blit->baseLevelSave); + _mesa_TexParameteri(target, GL_TEXTURE_MAX_LEVEL, blit->maxLevelSave); - /* If ARB_stencil_texturing is not supported, the mode won't have changed. */ - if (texObj->StencilSampling != blit->stencilSamplingSave) { - /* GLint so the compiler won't complain about type signedness mismatch - * in the call to _mesa_texture_parameteriv below. - */ - const GLint param = blit->stencilSamplingSave ? - GL_STENCIL_INDEX : GL_DEPTH_COMPONENT; + if (ctx->Extensions.ARB_stencil_texturing) { + const struct gl_texture_object *texObj = + _mesa_get_current_tex_object(ctx, target); - _mesa_texture_parameteriv(ctx, texObj, GL_DEPTH_STENCIL_TEXTURE_MODE, - ¶m, false); + if (texObj->StencilSampling != blit->stencilSamplingSave) + _mesa_TexParameteri(target, GL_DEPTH_STENCIL_TEXTURE_MODE, + blit->stencilSamplingSave ? + GL_STENCIL_INDEX : GL_DEPTH_COMPONENT); + } } - _mesa_bind_sampler(ctx, ctx->Texture.CurrentUnit, blit->samp_obj_save); - _mesa_reference_sampler_object(ctx, &blit->samp_obj_save, NULL); - _mesa_reference_sampler_object(ctx, &blit->samp_obj, NULL); - + _mesa_BindSampler(ctx->Texture.CurrentUnit, blit->samplerSave); + _mesa_DeleteSamplers(1, &blit->sampler); if (blit->tempTex) _mesa_DeleteTextures(1, &blit->tempTex); } @@ -910,35 +850,31 @@ _mesa_meta_bind_rb_as_tex_image(struct gl_context *ctx, return true; } -struct gl_sampler_object * +GLuint _mesa_meta_setup_sampler(struct gl_context *ctx, - struct gl_texture_object *texObj, + const struct gl_texture_object *texObj, GLenum target, GLenum filter, GLuint srcLevel) { - struct gl_sampler_object *samp_obj; + GLuint sampler; GLenum tex_filter = (filter == GL_SCALED_RESOLVE_FASTEST_EXT || filter == GL_SCALED_RESOLVE_NICEST_EXT) ? GL_NEAREST : filter; - samp_obj = ctx->Driver.NewSamplerObject(ctx, 0xDEADBEEF); - if (samp_obj == NULL) - return NULL; - - _mesa_bind_sampler(ctx, ctx->Texture.CurrentUnit, samp_obj); - _mesa_set_sampler_filters(ctx, samp_obj, tex_filter, tex_filter); - _mesa_set_sampler_wrap(ctx, samp_obj, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE, - samp_obj->WrapR); + _mesa_GenSamplers(1, &sampler); + _mesa_BindSampler(ctx->Texture.CurrentUnit, sampler); /* Prepare src texture state */ _mesa_BindTexture(target, texObj->Name); + _mesa_SamplerParameteri(sampler, GL_TEXTURE_MIN_FILTER, tex_filter); + _mesa_SamplerParameteri(sampler, GL_TEXTURE_MAG_FILTER, tex_filter); if (target != GL_TEXTURE_RECTANGLE_ARB) { - _mesa_texture_parameteriv(ctx, texObj, GL_TEXTURE_BASE_LEVEL, - (GLint *) &srcLevel, false); - _mesa_texture_parameteriv(ctx, texObj, GL_TEXTURE_MAX_LEVEL, - (GLint *) &srcLevel, false); + _mesa_TexParameteri(target, GL_TEXTURE_BASE_LEVEL, srcLevel); + _mesa_TexParameteri(target, GL_TEXTURE_MAX_LEVEL, srcLevel); } + _mesa_SamplerParameteri(sampler, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + _mesa_SamplerParameteri(sampler, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); - return samp_obj; + return sampler; } /** @@ -985,12 +921,10 @@ _mesa_meta_BlitFramebuffer(struct gl_context *ctx, return 0; } - /* Only scissor and FRAMEBUFFER_SRGB affect blit. Leave sRGB alone, but - * save restore scissor as we'll set a custom scissor if necessary. + /* Only scissor affects blit, but we're doing to set a custom scissor if + * necessary anyway, so save/clear state. */ - _mesa_meta_begin(ctx, MESA_META_ALL & - ~(MESA_META_DRAW_BUFFERS | - MESA_META_FRAMEBUFFER_SRGB)); + _mesa_meta_begin(ctx, MESA_META_ALL & ~MESA_META_DRAW_BUFFERS); /* Dithering shouldn't be performed for glBlitFramebuffer */ _mesa_set_enable(ctx, GL_DITHER, GL_FALSE); @@ -1038,16 +972,17 @@ _mesa_meta_BlitFramebuffer(struct gl_context *ctx, } void -_mesa_meta_glsl_blit_cleanup(struct gl_context *ctx, struct blit_state *blit) +_mesa_meta_glsl_blit_cleanup(struct blit_state *blit) { if (blit->VAO) { _mesa_DeleteVertexArrays(1, &blit->VAO); blit->VAO = 0; - _mesa_reference_buffer_object(ctx, &blit->buf_obj, NULL); + _mesa_DeleteBuffers(1, &blit->VBO); + blit->VBO = 0; } - _mesa_meta_blit_shader_table_cleanup(ctx, &blit->shaders_with_depth); - _mesa_meta_blit_shader_table_cleanup(ctx, &blit->shaders_without_depth); + _mesa_meta_blit_shader_table_cleanup(&blit->shaders_with_depth); + _mesa_meta_blit_shader_table_cleanup(&blit->shaders_without_depth); _mesa_DeleteTextures(1, &blit->depthTex.TexObj); blit->depthTex.TexObj = 0; diff --git a/lib/mesa/src/mesa/drivers/dri/common/xmlpool/ca/LC_MESSAGES/options.mo b/lib/mesa/src/mesa/drivers/dri/common/xmlpool/ca/LC_MESSAGES/options.mo Binary files differindex f2b0d5e16..c1baad8bd 100644 --- a/lib/mesa/src/mesa/drivers/dri/common/xmlpool/ca/LC_MESSAGES/options.mo +++ b/lib/mesa/src/mesa/drivers/dri/common/xmlpool/ca/LC_MESSAGES/options.mo diff --git a/lib/mesa/src/mesa/drivers/dri/common/xmlpool/de/LC_MESSAGES/options.mo b/lib/mesa/src/mesa/drivers/dri/common/xmlpool/de/LC_MESSAGES/options.mo Binary files differindex 41c2b9bed..1f78cb981 100644 --- a/lib/mesa/src/mesa/drivers/dri/common/xmlpool/de/LC_MESSAGES/options.mo +++ b/lib/mesa/src/mesa/drivers/dri/common/xmlpool/de/LC_MESSAGES/options.mo diff --git a/lib/mesa/src/mesa/drivers/dri/common/xmlpool/es/LC_MESSAGES/options.mo b/lib/mesa/src/mesa/drivers/dri/common/xmlpool/es/LC_MESSAGES/options.mo Binary files differindex 0145c680d..983b5a14d 100644 --- a/lib/mesa/src/mesa/drivers/dri/common/xmlpool/es/LC_MESSAGES/options.mo +++ b/lib/mesa/src/mesa/drivers/dri/common/xmlpool/es/LC_MESSAGES/options.mo diff --git a/lib/mesa/src/mesa/drivers/dri/common/xmlpool/fr/LC_MESSAGES/options.mo b/lib/mesa/src/mesa/drivers/dri/common/xmlpool/fr/LC_MESSAGES/options.mo Binary files differindex af05db896..006d64e9a 100644 --- a/lib/mesa/src/mesa/drivers/dri/common/xmlpool/fr/LC_MESSAGES/options.mo +++ b/lib/mesa/src/mesa/drivers/dri/common/xmlpool/fr/LC_MESSAGES/options.mo diff --git a/lib/mesa/src/mesa/drivers/dri/common/xmlpool/nl/LC_MESSAGES/options.mo b/lib/mesa/src/mesa/drivers/dri/common/xmlpool/nl/LC_MESSAGES/options.mo Binary files differindex 7bf40f7bd..f9fe8948f 100644 --- a/lib/mesa/src/mesa/drivers/dri/common/xmlpool/nl/LC_MESSAGES/options.mo +++ b/lib/mesa/src/mesa/drivers/dri/common/xmlpool/nl/LC_MESSAGES/options.mo diff --git a/lib/mesa/src/mesa/drivers/dri/common/xmlpool/sv/LC_MESSAGES/options.mo b/lib/mesa/src/mesa/drivers/dri/common/xmlpool/sv/LC_MESSAGES/options.mo Binary files differindex 3bf610a42..48246a7bc 100644 --- a/lib/mesa/src/mesa/drivers/dri/common/xmlpool/sv/LC_MESSAGES/options.mo +++ b/lib/mesa/src/mesa/drivers/dri/common/xmlpool/sv/LC_MESSAGES/options.mo diff --git a/lib/mesa/src/mesa/drivers/dri/i915/i915_context.c b/lib/mesa/src/mesa/drivers/dri/i915/i915_context.c index 4f6bdb74e..57b033c07 100644 --- a/lib/mesa/src/mesa/drivers/dri/i915/i915_context.c +++ b/lib/mesa/src/mesa/drivers/dri/i915/i915_context.c @@ -27,7 +27,6 @@ #include "i915_context.h" #include "main/api_exec.h" -#include "main/framebuffer.h" #include "main/imports.h" #include "main/macros.h" #include "main/version.h" @@ -53,19 +52,15 @@ /* Override intel default. */ static void -i915InvalidateState(struct gl_context * ctx) +i915InvalidateState(struct gl_context * ctx, GLuint new_state) { - GLuint new_state = ctx->NewState; - _swrast_InvalidateState(ctx, new_state); _swsetup_InvalidateState(ctx, new_state); + _vbo_InvalidateState(ctx, new_state); _tnl_InvalidateState(ctx, new_state); _tnl_invalidate_vertex_state(ctx, new_state); intel_context(ctx)->NewGLState |= new_state; - if (new_state & (_NEW_SCISSOR | _NEW_BUFFERS | _NEW_VIEWPORT)) - _mesa_update_draw_buffer_bounds(ctx, ctx->DrawBuffer); - /* Todo: gather state values under which tracked parameters become * invalidated, add callbacks for things like * ProgramLocalParameters, etc. @@ -259,12 +254,14 @@ i915CreateContext(int api, /* FINISHME: Are there other options that should be enabled for software * FINISHME: vertex shaders? */ + ctx->Const.ShaderCompilerOptions[MESA_SHADER_VERTEX].EmitCondCodes = true; ctx->Const.ShaderCompilerOptions[MESA_SHADER_VERTEX].EmitNoIndirectSampler = true; struct gl_shader_compiler_options *const fs_options = & ctx->Const.ShaderCompilerOptions[MESA_SHADER_FRAGMENT]; fs_options->MaxIfDepth = 0; + fs_options->EmitNoNoise = true; fs_options->EmitNoPow = true; fs_options->EmitNoMainReturn = true; fs_options->EmitNoIndirectInput = true; diff --git a/lib/mesa/src/mesa/drivers/dri/i915/intel_clear.c b/lib/mesa/src/mesa/drivers/dri/i915/intel_clear.c index f8df2e08d..8cf7c142f 100644 --- a/lib/mesa/src/mesa/drivers/dri/i915/intel_clear.c +++ b/lib/mesa/src/mesa/drivers/dri/i915/intel_clear.c @@ -81,7 +81,7 @@ static void intelClear(struct gl_context *ctx, GLbitfield mask) { struct intel_context *intel = intel_context(ctx); - GLuint colorMask; + const GLuint colorMask = *((GLuint *) & ctx->Color.ColorMask[0]); GLbitfield tri_mask = 0; GLbitfield blit_mask = 0; GLbitfield swrast_mask = 0; @@ -89,8 +89,6 @@ intelClear(struct gl_context *ctx, GLbitfield mask) struct intel_renderbuffer *irb; int i; - memcpy(&colorMask, &ctx->Color.ColorMask[0], sizeof(colorMask)); - if (mask & (BUFFER_BIT_FRONT_LEFT | BUFFER_BIT_FRONT_RIGHT)) { intel->front_buffer_dirty = true; } @@ -181,7 +179,7 @@ intelClear(struct gl_context *ctx, GLbitfield mask) if (tri_mask) { debug_mask("tri", tri_mask); - if (!ctx->Extensions.ARB_fragment_shader) + if (ctx->API == API_OPENGLES || !ctx->Extensions.ARB_fragment_shader) _mesa_meta_Clear(&intel->ctx, tri_mask); else _mesa_meta_glsl_Clear(&intel->ctx, tri_mask); diff --git a/lib/mesa/src/mesa/drivers/dri/i915/intel_context.c b/lib/mesa/src/mesa/drivers/dri/i915/intel_context.c index e0766a0e3..c78010322 100644 --- a/lib/mesa/src/mesa/drivers/dri/i915/intel_context.c +++ b/lib/mesa/src/mesa/drivers/dri/i915/intel_context.c @@ -56,7 +56,6 @@ #include "intel_mipmap_tree.h" #include "utils.h" -#include "util/debug.h" #include "util/ralloc.h" int INTEL_DEBUG = (0); @@ -244,7 +243,7 @@ intel_prepare_render(struct intel_context *intel) * that will happen next will probably dirty the front buffer. So * mark it as dirty here. */ - if (_mesa_is_front_buffer_drawing(intel->ctx.DrawBuffer)) + if (intel->is_front_buffer_rendering) intel->front_buffer_dirty = true; /* Wait for the swapbuffers before the one we just emitted, so we @@ -291,7 +290,7 @@ intel_viewport(struct gl_context *ctx) intelCalcViewport(ctx); } -static const struct debug_control debug_control[] = { +static const struct dri_debug_control debug_control[] = { { "tex", DEBUG_TEXTURE}, { "state", DEBUG_STATE}, { "blit", DEBUG_BLIT}, @@ -314,19 +313,16 @@ static const struct debug_control debug_control[] = { static void -intelInvalidateState(struct gl_context * ctx) +intelInvalidateState(struct gl_context * ctx, GLuint new_state) { - GLuint new_state = ctx->NewState; struct intel_context *intel = intel_context(ctx); if (ctx->swrast_context) _swrast_InvalidateState(ctx, new_state); + _vbo_InvalidateState(ctx, new_state); intel->NewGLState |= new_state; - if (new_state & (_NEW_SCISSOR | _NEW_BUFFERS | _NEW_VIEWPORT)) - _mesa_update_draw_buffer_bounds(ctx, ctx->DrawBuffer); - if (intel->vtbl.invalidate_state) intel->vtbl.invalidate_state( intel, new_state ); } @@ -360,7 +356,7 @@ intel_glFlush(struct gl_context *ctx) intel_flush(ctx); intel_flush_front(ctx); - if (_mesa_is_front_buffer_drawing(ctx->DrawBuffer)) + if (intel->is_front_buffer_rendering) intel->need_throttle = true; } @@ -430,8 +426,6 @@ intelInitContext(struct intel_context *intel, return false; } - driContextSetFlags(&intel->ctx, flags); - driContextPriv->driverPrivate = intel; intel->driContext = driContextPriv; @@ -480,8 +474,8 @@ intelInitContext(struct intel_context *intel, ctx->Const.MinLineWidth = 1.0; ctx->Const.MinLineWidthAA = 1.0; - ctx->Const.MaxLineWidth = 7.0; - ctx->Const.MaxLineWidthAA = 7.0; + ctx->Const.MaxLineWidth = 5.0; + ctx->Const.MaxLineWidthAA = 5.0; ctx->Const.LineWidthGranularity = 0.5; ctx->Const.MinPointSize = 1.0; @@ -518,7 +512,7 @@ intelInitContext(struct intel_context *intel, intelInitExtensions(ctx); - INTEL_DEBUG = parse_debug_string(getenv("INTEL_DEBUG"), debug_control); + INTEL_DEBUG = driParseDebugString(getenv("INTEL_DEBUG"), debug_control); if (INTEL_DEBUG & DEBUG_BUFMGR) dri_bufmgr_set_debug(intel->bufmgr, true); if (INTEL_DEBUG & DEBUG_PERF) @@ -706,8 +700,8 @@ intel_query_dri2_buffers(struct intel_context *intel, back_rb = intel_get_renderbuffer(fb, BUFFER_BACK_LEFT); memset(attachments, 0, sizeof(attachments)); - if ((_mesa_is_front_buffer_drawing(fb) || - _mesa_is_front_buffer_reading(fb) || + if ((intel->is_front_buffer_rendering || + intel->is_front_buffer_reading || !back_rb) && front_rb) { /* If a fake front buffer is in use, then querying for * __DRI_BUFFER_FRONT_LEFT will cause the server to copy the image from @@ -861,7 +855,6 @@ intel_update_image_buffers(struct intel_context *intel, __DRIdrawable *drawable) struct __DRIimageList images; unsigned int format; uint32_t buffer_mask = 0; - int ret; front_rb = intel_get_renderbuffer(fb, BUFFER_FRONT_LEFT); back_rb = intel_get_renderbuffer(fb, BUFFER_BACK_LEFT); @@ -873,22 +866,18 @@ intel_update_image_buffers(struct intel_context *intel, __DRIdrawable *drawable) else return; - if (front_rb && (_mesa_is_front_buffer_drawing(fb) || - _mesa_is_front_buffer_reading(fb) || !back_rb)) { + if ((intel->is_front_buffer_rendering || intel->is_front_buffer_reading || !back_rb) && front_rb) buffer_mask |= __DRI_IMAGE_BUFFER_FRONT; - } if (back_rb) buffer_mask |= __DRI_IMAGE_BUFFER_BACK; - ret = screen->image.loader->getBuffers(drawable, - driGLFormatToImageFormat(format), - &drawable->dri2.stamp, - drawable->loaderPrivate, - buffer_mask, - &images); - if (!ret) - return; + (*screen->image.loader->getBuffers) (drawable, + driGLFormatToImageFormat(format), + &drawable->dri2.stamp, + drawable->loaderPrivate, + buffer_mask, + &images); if (images.image_mask & __DRI_IMAGE_BUFFER_FRONT) { drawable->w = images.front->width; diff --git a/lib/mesa/src/mesa/drivers/dri/i915/intel_mipmap_tree.c b/lib/mesa/src/mesa/drivers/dri/i915/intel_mipmap_tree.c index b0ebff593..1aa06c18f 100644 --- a/lib/mesa/src/mesa/drivers/dri/i915/intel_mipmap_tree.c +++ b/lib/mesa/src/mesa/drivers/dri/i915/intel_mipmap_tree.c @@ -1,8 +1,8 @@ /************************************************************************** - * + * * Copyright 2006 VMware, Inc. * All Rights Reserved. - * + * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including @@ -10,11 +10,11 @@ * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: - * + * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial portions * of the Software. - * + * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. @@ -22,7 +22,7 @@ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * + * **************************************************************************/ #include <GL/gl.h> @@ -60,6 +60,11 @@ target_to_target(GLenum target) } } +/** + * @param for_bo Indicates that the caller is + * intel_miptree_create_for_bo(). If true, then do not create + * \c stencil_mt. + */ struct intel_mipmap_tree * intel_miptree_create_layout(struct intel_context *intel, GLenum target, @@ -68,7 +73,8 @@ intel_miptree_create_layout(struct intel_context *intel, GLuint last_level, GLuint width0, GLuint height0, - GLuint depth0) + GLuint depth0, + bool for_bo) { struct intel_mipmap_tree *mt = calloc(sizeof(*mt), 1); if (!mt) @@ -83,6 +89,9 @@ intel_miptree_create_layout(struct intel_context *intel, mt->format = format; mt->first_level = first_level; mt->last_level = last_level; + mt->logical_width0 = width0; + mt->logical_height0 = height0; + mt->logical_depth0 = depth0; /* The cpp is bytes per (1, blockheight)-sized block for compressed * textures. This is why you'll see divides by blockheight all over @@ -93,7 +102,7 @@ intel_miptree_create_layout(struct intel_context *intel, mt->cpp = _mesa_get_format_bytes(mt->format) / bw; mt->compressed = _mesa_is_format_compressed(format); - mt->refcount = 1; + mt->refcount = 1; if (target == GL_TEXTURE_CUBE_MAP) { assert(depth0 == 1); @@ -105,8 +114,9 @@ intel_miptree_create_layout(struct intel_context *intel, mt->physical_depth0 = depth0; intel_get_texture_alignment_unit(intel, mt->format, - &mt->align_w, &mt->align_h); + &mt->align_w, &mt->align_h); + (void) intel; if (intel->is_945) i945_miptree_layout(mt); else @@ -155,14 +165,14 @@ intel_miptree_choose_tiling(struct intel_context *intel, struct intel_mipmap_tree * intel_miptree_create(struct intel_context *intel, - GLenum target, - mesa_format format, - GLuint first_level, - GLuint last_level, - GLuint width0, - GLuint height0, - GLuint depth0, - bool expect_accelerated_upload, + GLenum target, + mesa_format format, + GLuint first_level, + GLuint last_level, + GLuint width0, + GLuint height0, + GLuint depth0, + bool expect_accelerated_upload, enum intel_miptree_tiling_mode requested_tiling) { struct intel_mipmap_tree *mt; @@ -170,10 +180,12 @@ intel_miptree_create(struct intel_context *intel, mt = intel_miptree_create_layout(intel, target, format, - first_level, last_level, width0, - height0, depth0); - - /* pitch == 0 || height == 0 indicates the null texture */ + first_level, last_level, width0, + height0, depth0, + false); + /* + * pitch == 0 || height == 0 indicates the null texture + */ if (!mt || !mt->total_width || !mt->total_height) { intel_miptree_release(&mt); return NULL; @@ -188,11 +200,11 @@ intel_miptree_create(struct intel_context *intel, bool y_or_x = tiling == (I915_TILING_Y | I915_TILING_X); mt->region = intel_region_alloc(intel->intelScreen, - y_or_x ? I915_TILING_Y : tiling, - mt->cpp, - total_width, - total_height, - expect_accelerated_upload); + y_or_x ? I915_TILING_Y : tiling, + mt->cpp, + total_width, + total_height, + expect_accelerated_upload); /* If the region is too large to fit in the aperture, we need to use the * BLT engine to support it. The BLT paths can't currently handle Y-tiling, @@ -250,7 +262,8 @@ intel_miptree_create_for_bo(struct intel_context *intel, mt = intel_miptree_create_layout(intel, GL_TEXTURE_2D, format, 0, 0, - width, height, 1); + width, height, 1, + true); if (!mt) { free(region); return mt; @@ -273,9 +286,13 @@ intel_miptree_create_for_bo(struct intel_context *intel, /** - * Wraps the given region with a miptree. + * For a singlesample DRI2 buffer, this simply wraps the given region with a miptree. + * + * For a multisample DRI2 buffer, this wraps the given region with + * a singlesample miptree, then creates a multisample miptree into which the + * singlesample miptree is embedded as a child. */ -struct intel_mipmap_tree * +struct intel_mipmap_tree* intel_miptree_create_for_dri2_buffer(struct intel_context *intel, unsigned dri_attachment, mesa_format format, @@ -308,9 +325,13 @@ intel_miptree_create_for_dri2_buffer(struct intel_context *intel, } /** - * Wraps the given region with a miptree. + * For a singlesample image buffer, this simply wraps the given region with a miptree. + * + * For a multisample image buffer, this wraps the given region with + * a singlesample miptree, then creates a multisample miptree into which the + * singlesample miptree is embedded as a child. */ -struct intel_mipmap_tree * +struct intel_mipmap_tree* intel_miptree_create_for_image_buffer(struct intel_context *intel, enum __DRIimageBufferMask buffer_type, mesa_format format, @@ -336,7 +357,7 @@ intel_miptree_create_for_image_buffer(struct intel_context *intel, return mt; } -struct intel_mipmap_tree * +struct intel_mipmap_tree* intel_miptree_create_for_renderbuffer(struct intel_context *intel, mesa_format format, uint32_t width, @@ -382,7 +403,7 @@ intel_miptree_release(struct intel_mipmap_tree **mt) intel_region_release(&((*mt)->region)); for (i = 0; i < MAX_TEXTURE_LEVELS; i++) { - free((*mt)->level[i].slice); + free((*mt)->level[i].slice); } free(*mt); @@ -395,6 +416,11 @@ intel_miptree_get_dimensions_for_image(struct gl_texture_image *image, int *width, int *height, int *depth) { switch (image->TexObject->Target) { + case GL_TEXTURE_1D_ARRAY: + *width = image->Width; + *height = 1; + *depth = image->Height; + break; default: *width = image->Width; *height = image->Height; @@ -437,10 +463,24 @@ intel_miptree_match_image(struct intel_mipmap_tree *mt, * minification. This will also catch images not present in the * tree, changed targets, etc. */ - if (width != mt->level[level].width || - height != mt->level[level].height || - depth != mt->level[level].depth) { - return false; + if (mt->target == GL_TEXTURE_2D_MULTISAMPLE || + mt->target == GL_TEXTURE_2D_MULTISAMPLE_ARRAY) { + /* nonzero level here is always bogus */ + assert(level == 0); + + if (width != mt->logical_width0 || + height != mt->logical_height0 || + depth != mt->logical_depth0) { + return false; + } + } + else { + /* all normal textures, renderbuffers, etc */ + if (width != mt->level[level].width || + height != mt->level[level].height || + depth != mt->level[level].depth) { + return false; + } } return true; @@ -449,9 +489,9 @@ intel_miptree_match_image(struct intel_mipmap_tree *mt, void intel_miptree_set_level_info(struct intel_mipmap_tree *mt, - GLuint level, - GLuint x, GLuint y, - GLuint w, GLuint h, GLuint d) + GLuint level, + GLuint x, GLuint y, + GLuint w, GLuint h, GLuint d) { mt->level[level].width = w; mt->level[level].height = h; @@ -472,8 +512,8 @@ intel_miptree_set_level_info(struct intel_mipmap_tree *mt, void intel_miptree_set_image_offset(struct intel_mipmap_tree *mt, - GLuint level, GLuint img, - GLuint x, GLuint y) + GLuint level, GLuint img, + GLuint x, GLuint y) { if (img == 0 && level == 0) assert(x == 0 && y == 0); @@ -491,8 +531,8 @@ intel_miptree_set_image_offset(struct intel_mipmap_tree *mt, void intel_miptree_get_image_offset(struct intel_mipmap_tree *mt, - GLuint level, GLuint slice, - GLuint *x, GLuint *y) + GLuint level, GLuint slice, + GLuint *x, GLuint *y) { assert(slice < mt->level[level].depth); @@ -520,13 +560,14 @@ intel_miptree_get_tile_offsets(struct intel_mipmap_tree *mt, uint32_t x, y; uint32_t mask_x, mask_y; - intel_region_get_tile_masks(region, &mask_x, &mask_y); + intel_region_get_tile_masks(region, &mask_x, &mask_y, false); intel_miptree_get_image_offset(mt, level, slice, &x, &y); *tile_x = x & mask_x; *tile_y = y & mask_y; - return intel_region_get_aligned_offset(region, x & ~mask_x, y & ~mask_y); + return intel_region_get_aligned_offset(region, x & ~mask_x, y & ~mask_y, + false); } static void @@ -581,11 +622,11 @@ intel_miptree_copy_slice_sw(struct intel_context *intel, static void intel_miptree_copy_slice(struct intel_context *intel, - struct intel_mipmap_tree *dst_mt, - struct intel_mipmap_tree *src_mt, - int level, - int face, - int depth) + struct intel_mipmap_tree *dst_mt, + struct intel_mipmap_tree *src_mt, + int level, + int face, + int depth) { mesa_format format = src_mt->format; @@ -639,8 +680,8 @@ intel_miptree_copy_slice(struct intel_context *intel, */ void intel_miptree_copy_teximage(struct intel_context *intel, - struct intel_texture_image *intelImage, - struct intel_mipmap_tree *dst_mt, + struct intel_texture_image *intelImage, + struct intel_mipmap_tree *dst_mt, bool invalidate) { struct intel_mipmap_tree *src_mt = intelImage->mt; @@ -682,16 +723,17 @@ intel_miptree_map_raw(struct intel_context *intel, struct intel_mipmap_tree *mt) } void -intel_miptree_unmap_raw(struct intel_mipmap_tree *mt) +intel_miptree_unmap_raw(struct intel_context *intel, + struct intel_mipmap_tree *mt) { drm_intel_bo_unmap(mt->region->bo); } static void intel_miptree_map_gtt(struct intel_context *intel, - struct intel_mipmap_tree *mt, - struct intel_miptree_map *map, - unsigned int level, unsigned int slice) + struct intel_mipmap_tree *mt, + struct intel_miptree_map *map, + unsigned int level, unsigned int slice) { unsigned int bw, bh; void *base; @@ -730,16 +772,20 @@ intel_miptree_map_gtt(struct intel_context *intel, } static void -intel_miptree_unmap_gtt(struct intel_mipmap_tree *mt) +intel_miptree_unmap_gtt(struct intel_context *intel, + struct intel_mipmap_tree *mt, + struct intel_miptree_map *map, + unsigned int level, + unsigned int slice) { - intel_miptree_unmap_raw(mt); + intel_miptree_unmap_raw(intel, mt); } static void intel_miptree_map_blit(struct intel_context *intel, - struct intel_mipmap_tree *mt, - struct intel_miptree_map *map, - unsigned int level, unsigned int slice) + struct intel_mipmap_tree *mt, + struct intel_miptree_map *map, + unsigned int level, unsigned int slice) { map->mt = intel_miptree_create(intel, GL_TEXTURE_2D, mt->format, 0, 0, @@ -780,14 +826,14 @@ fail: static void intel_miptree_unmap_blit(struct intel_context *intel, - struct intel_mipmap_tree *mt, - struct intel_miptree_map *map, - unsigned int level, - unsigned int slice) + struct intel_mipmap_tree *mt, + struct intel_miptree_map *map, + unsigned int level, + unsigned int slice) { struct gl_context *ctx = &intel->ctx; - intel_miptree_unmap_raw(map->mt); + intel_miptree_unmap_raw(intel, map->mt); if (map->mode & GL_MAP_WRITE_BIT) { bool ok = intel_miptree_blit(intel, @@ -864,7 +910,7 @@ intel_miptree_map(struct intel_context *intel, struct intel_miptree_map *map; map = intel_miptree_attach_map(mt, level, slice, x, y, w, h, mode); - if (!map) { + if (!map){ *out_ptr = NULL; *out_stride = 0; return; @@ -903,7 +949,7 @@ intel_miptree_unmap(struct intel_context *intel, if (map->mt) { intel_miptree_unmap_blit(intel, mt, map, level, slice); } else { - intel_miptree_unmap_gtt(mt); + intel_miptree_unmap_gtt(intel, mt, map, level, slice); } intel_miptree_release_map(mt, level, slice); diff --git a/lib/mesa/src/mesa/drivers/dri/i915/intel_pixel.c b/lib/mesa/src/mesa/drivers/dri/i915/intel_pixel.c index 084b5636b..6f139e19e 100644 --- a/lib/mesa/src/mesa/drivers/dri/i915/intel_pixel.c +++ b/lib/mesa/src/mesa/drivers/dri/i915/intel_pixel.c @@ -28,7 +28,6 @@ #include "main/accum.h" #include "main/enums.h" #include "main/state.h" -#include "main/stencil.h" #include "main/bufferobj.h" #include "main/context.h" #include "swrast/swrast.h" @@ -62,7 +61,7 @@ intel_check_blit_fragment_ops(struct gl_context * ctx, bool src_alpha_is_one) if (ctx->NewState) _mesa_update_state(ctx); - if (_mesa_arb_fragment_program_enabled(ctx)) { + if (ctx->FragmentProgram._Enabled) { DBG("fallback due to fragment program\n"); return false; } @@ -111,7 +110,7 @@ intel_check_blit_fragment_ops(struct gl_context * ctx, bool src_alpha_is_one) return false; } - if (_mesa_stencil_is_enabled(ctx)) { + if (ctx->Stencil._Enabled) { DBG("fallback due to image stencil\n"); return false; } @@ -127,6 +126,7 @@ intel_check_blit_fragment_ops(struct gl_context * ctx, bool src_alpha_is_one) void intelInitPixelFuncs(struct dd_function_table *functions) { + functions->Accum = _mesa_accum; functions->Bitmap = intelBitmap; functions->CopyPixels = intelCopyPixels; functions->DrawPixels = intelDrawPixels; diff --git a/lib/mesa/src/mesa/drivers/dri/i915/intel_pixel_copy.c b/lib/mesa/src/mesa/drivers/dri/i915/intel_pixel_copy.c index b4f946660..a7185564e 100644 --- a/lib/mesa/src/mesa/drivers/dri/i915/intel_pixel_copy.c +++ b/lib/mesa/src/mesa/drivers/dri/i915/intel_pixel_copy.c @@ -28,7 +28,6 @@ #include "main/glheader.h" #include "main/image.h" #include "main/state.h" -#include "main/stencil.h" #include "main/mtypes.h" #include "main/condrender.h" #include "main/fbobject.h" @@ -112,14 +111,14 @@ do_blit_copypixels(struct gl_context * ctx, return false; } - if (_mesa_stencil_is_enabled(ctx)) { + if (ctx->Stencil._Enabled) { perf_debug("glCopyPixels(): Unsupported stencil test state\n"); return false; } if (ctx->Fog.Enabled || ctx->Texture._MaxEnabledTexImageUnit != -1 || - _mesa_arb_fragment_program_enabled(ctx)) { + ctx->FragmentProgram._Enabled) { perf_debug("glCopyPixels(): Unsupported fragment shader state\n"); return false; } @@ -139,7 +138,7 @@ do_blit_copypixels(struct gl_context * ctx, } if (ctx->Pixel.ZoomX != 1.0F || ctx->Pixel.ZoomY != 1.0F) { - perf_debug("glCopyPixels(): Unsupported pixel zoom\n"); + perf_debug("glCopyPixles(): Unsupported pixel zoom\n"); return false; } diff --git a/lib/mesa/src/mesa/drivers/dri/i915/intel_regions.c b/lib/mesa/src/mesa/drivers/dri/i915/intel_regions.c index be0dca497..c9b776d1a 100644 --- a/lib/mesa/src/mesa/drivers/dri/i915/intel_regions.c +++ b/lib/mesa/src/mesa/drivers/dri/i915/intel_regions.c @@ -284,11 +284,15 @@ intel_region_release(struct intel_region **region_handle) */ void intel_region_get_tile_masks(struct intel_region *region, - uint32_t *mask_x, uint32_t *mask_y) + uint32_t *mask_x, uint32_t *mask_y, + bool map_stencil_as_y_tiled) { int cpp = region->cpp; uint32_t tiling = region->tiling; + if (map_stencil_as_y_tiled) + tiling = I915_TILING_Y; + switch (tiling) { default: assert(false); @@ -313,12 +317,25 @@ intel_region_get_tile_masks(struct intel_region *region, */ uint32_t intel_region_get_aligned_offset(struct intel_region *region, uint32_t x, - uint32_t y) + uint32_t y, bool map_stencil_as_y_tiled) { int cpp = region->cpp; uint32_t pitch = region->pitch; uint32_t tiling = region->tiling; + if (map_stencil_as_y_tiled) { + tiling = I915_TILING_Y; + + /* When mapping a W-tiled stencil buffer as Y-tiled, each 64-high W-tile + * gets transformed into a 32-high Y-tile. Accordingly, the pitch of + * the resulting region is twice the pitch of the original region, since + * each row in the Y-tiled view corresponds to two rows in the actual + * W-tiled surface. So we need to correct the pitch before computing + * the offsets. + */ + pitch *= 2; + } + switch (tiling) { default: assert(false); diff --git a/lib/mesa/src/mesa/drivers/dri/i915/intel_tex.c b/lib/mesa/src/mesa/drivers/dri/i915/intel_tex.c index 0b24c7e93..4c48d3bd3 100644 --- a/lib/mesa/src/mesa/drivers/dri/i915/intel_tex.c +++ b/lib/mesa/src/mesa/drivers/dri/i915/intel_tex.c @@ -140,6 +140,10 @@ intel_map_texture_image(struct gl_context *ctx, /* Our texture data is always stored in a miptree. */ assert(mt); + /* Check that our caller wasn't confused about how to map a 1D texture. */ + assert(tex_image->TexObject->Target != GL_TEXTURE_1D_ARRAY || + h == 1); + /* intel_miptree_map operates on a unified "slice" number that references the * cube face, since it's all just slices to the miptree code. */ diff --git a/lib/mesa/src/mesa/drivers/dri/i915/intel_tex_image.c b/lib/mesa/src/mesa/drivers/dri/i915/intel_tex_image.c index 3308e3775..0a213e9f6 100644 --- a/lib/mesa/src/mesa/drivers/dri/i915/intel_tex_image.c +++ b/lib/mesa/src/mesa/drivers/dri/i915/intel_tex_image.c @@ -134,13 +134,19 @@ try_pbo_upload(struct gl_context *ctx, } if (!_mesa_format_matches_format_and_type(intelImage->mt->format, - format, type, false, NULL)) { + format, type, false)) { DBG("%s: format mismatch (upload to %s with format 0x%x, type 0x%x)\n", __func__, _mesa_get_format_name(intelImage->mt->format), format, type); return false; } + if (image->TexObject->Target == GL_TEXTURE_1D_ARRAY || + image->TexObject->Target == GL_TEXTURE_2D_ARRAY) { + DBG("%s: no support for array textures\n", __func__); + return false; + } + src_buffer = intel_bufferobj_source(intel, pbo, 64, &src_offset); /* note: potential 64-bit ptr to 32-bit int cast */ src_offset += (GLuint) (unsigned long) pixels; @@ -235,7 +241,8 @@ intel_set_texture_image_region(struct gl_context *ctx, intel_image->mt = intel_miptree_create_layout(intel, target, image->TexFormat, 0, 0, - width, height, 1); + width, height, 1, + true); if (intel_image->mt == NULL) return; intel_region_reference(&intel_image->mt->region, region); diff --git a/lib/mesa/src/mesa/drivers/dri/i915/intel_tex_layout.c b/lib/mesa/src/mesa/drivers/dri/i915/intel_tex_layout.c index efe7a8db9..01ea165c7 100644 --- a/lib/mesa/src/mesa/drivers/dri/i915/intel_tex_layout.c +++ b/lib/mesa/src/mesa/drivers/dri/i915/intel_tex_layout.c @@ -97,11 +97,14 @@ intel_vertical_texture_alignment_unit(struct intel_context *intel, * | FXT1 compressed format | 4 | 4 | 4 | 4 | 4 | * | Depth Buffer | 2 | 2 | 2 | 4 | 4 | * | Separate Stencil Buffer | N/A | N/A | N/A | 4 | 8 | + * | Multisampled (4x or 8x) render target | N/A | N/A | N/A | 4 | 4 | * | All Others | 2 | 2 | 2 | 2 | 2 | * +----------------------------------------------------------------------+ * * On SNB+, non-special cases can be overridden by setting the SURFACE_STATE * "Surface Vertical Alignment" field to VALIGN_2 or VALIGN_4. + * + * We currently don't support multisampling. */ if (_mesa_is_format_compressed(format)) return 4; diff --git a/lib/mesa/src/mesa/drivers/dri/i965/brw_primitive_restart.c b/lib/mesa/src/mesa/drivers/dri/i965/brw_primitive_restart.c index 3dc221e1c..c8d90027e 100644 --- a/lib/mesa/src/mesa/drivers/dri/i965/brw_primitive_restart.c +++ b/lib/mesa/src/mesa/drivers/dri/i965/brw_primitive_restart.c @@ -28,7 +28,6 @@ #include "main/imports.h" #include "main/bufferobj.h" #include "main/varray.h" -#include "vbo/vbo.h" #include "brw_context.h" #include "brw_defines.h" @@ -52,14 +51,14 @@ can_cut_index_handle_restart_index(struct gl_context *ctx, bool cut_index_will_work; - switch (ib->index_size) { - case 1: + switch (ib->type) { + case GL_UNSIGNED_BYTE: cut_index_will_work = ctx->Array.RestartIndex == 0xff; break; - case 2: + case GL_UNSIGNED_SHORT: cut_index_will_work = ctx->Array.RestartIndex == 0xffff; break; - case 4: + case GL_UNSIGNED_INT: cut_index_will_work = ctx->Array.RestartIndex == 0xffffffff; break; default: @@ -177,3 +176,42 @@ brw_handle_primitive_restart(struct gl_context *ctx, /* The primitive restart draw was completed, so return true. */ return GL_TRUE; } + +static void +haswell_upload_cut_index(struct brw_context *brw) +{ + struct gl_context *ctx = &brw->ctx; + + /* Don't trigger on Ivybridge */ + if (brw->gen < 8 && !brw->is_haswell) + return; + + const unsigned cut_index_setting = + ctx->Array._PrimitiveRestart ? HSW_CUT_INDEX_ENABLE : 0; + + /* BRW_NEW_INDEX_BUFFER */ + unsigned cut_index; + if (brw->ib.ib) { + cut_index = _mesa_primitive_restart_index(ctx, brw->ib.type); + } else { + /* There's no index buffer, but primitive restart may still apply + * to glDrawArrays and such. FIXED_INDEX mode only applies to drawing + * operations that use an index buffer, so we can ignore it and use + * the GL restart index directly. + */ + cut_index = ctx->Array.RestartIndex; + } + + BEGIN_BATCH(2); + OUT_BATCH(_3DSTATE_VF << 16 | cut_index_setting | (2 - 2)); + OUT_BATCH(cut_index); + ADVANCE_BATCH(); +} + +const struct brw_tracked_state haswell_cut_index = { + .dirty = { + .mesa = _NEW_TRANSFORM, + .brw = BRW_NEW_INDEX_BUFFER, + }, + .emit = haswell_upload_cut_index, +}; diff --git a/lib/mesa/src/mesa/drivers/dri/i965/brw_structs.h b/lib/mesa/src/mesa/drivers/dri/i965/brw_structs.h index fb592be69..55338c0e2 100644 --- a/lib/mesa/src/mesa/drivers/dri/i965/brw_structs.h +++ b/lib/mesa/src/mesa/drivers/dri/i965/brw_structs.h @@ -65,6 +65,530 @@ struct brw_urb_fence } bits1; }; +/* State structs for the various fixed function units: + */ + + +struct thread0 +{ + unsigned pad0:1; + unsigned grf_reg_count:3; + unsigned pad1:2; + unsigned kernel_start_pointer:26; /* Offset from GENERAL_STATE_BASE */ +}; + +struct thread1 +{ + unsigned ext_halt_exception_enable:1; + unsigned sw_exception_enable:1; + unsigned mask_stack_exception_enable:1; + unsigned timeout_exception_enable:1; + unsigned illegal_op_exception_enable:1; + unsigned pad0:3; + unsigned depth_coef_urb_read_offset:6; /* WM only */ + unsigned pad1:2; + unsigned floating_point_mode:1; + unsigned thread_priority:1; + unsigned binding_table_entry_count:8; + unsigned pad3:5; + unsigned single_program_flow:1; +}; + +struct thread2 +{ + unsigned per_thread_scratch_space:4; + unsigned pad0:6; + unsigned scratch_space_base_pointer:22; +}; + + +struct thread3 +{ + unsigned dispatch_grf_start_reg:4; + unsigned urb_entry_read_offset:6; + unsigned pad0:1; + unsigned urb_entry_read_length:6; + unsigned pad1:1; + unsigned const_urb_entry_read_offset:6; + unsigned pad2:1; + unsigned const_urb_entry_read_length:6; + unsigned pad3:1; +}; + + + +struct brw_clip_unit_state +{ + struct thread0 thread0; + struct + { + unsigned pad0:7; + unsigned sw_exception_enable:1; + unsigned pad1:3; + unsigned mask_stack_exception_enable:1; + unsigned pad2:1; + unsigned illegal_op_exception_enable:1; + unsigned pad3:2; + unsigned floating_point_mode:1; + unsigned thread_priority:1; + unsigned binding_table_entry_count:8; + unsigned pad4:5; + unsigned single_program_flow:1; + } thread1; + + struct thread2 thread2; + struct thread3 thread3; + + struct + { + unsigned pad0:9; + unsigned gs_output_stats:1; /* not always */ + unsigned stats_enable:1; + unsigned nr_urb_entries:7; + unsigned pad1:1; + unsigned urb_entry_allocation_size:5; + unsigned pad2:1; + unsigned max_threads:5; /* may be less */ + unsigned pad3:2; + } thread4; + + struct + { + unsigned pad0:13; + unsigned clip_mode:3; + unsigned userclip_enable_flags:8; + unsigned userclip_must_clip:1; + unsigned negative_w_clip_test:1; + unsigned guard_band_enable:1; + unsigned viewport_z_clip_enable:1; + unsigned viewport_xy_clip_enable:1; + unsigned vertex_position_space:1; + unsigned api_mode:1; + unsigned pad2:1; + } clip5; + + struct + { + unsigned pad0:5; + unsigned clipper_viewport_state_ptr:27; + } clip6; + + + float viewport_xmin; + float viewport_xmax; + float viewport_ymin; + float viewport_ymax; +}; + +struct gen6_blend_state +{ + struct { + unsigned dest_blend_factor:5; + unsigned source_blend_factor:5; + unsigned pad3:1; + unsigned blend_func:3; + unsigned pad2:1; + unsigned ia_dest_blend_factor:5; + unsigned ia_source_blend_factor:5; + unsigned pad1:1; + unsigned ia_blend_func:3; + unsigned pad0:1; + unsigned ia_blend_enable:1; + unsigned blend_enable:1; + } blend0; + + struct { + unsigned post_blend_clamp_enable:1; + unsigned pre_blend_clamp_enable:1; + unsigned clamp_range:2; + unsigned pad0:4; + unsigned x_dither_offset:2; + unsigned y_dither_offset:2; + unsigned dither_enable:1; + unsigned alpha_test_func:3; + unsigned alpha_test_enable:1; + unsigned pad1:1; + unsigned logic_op_func:4; + unsigned logic_op_enable:1; + unsigned pad2:1; + unsigned write_disable_b:1; + unsigned write_disable_g:1; + unsigned write_disable_r:1; + unsigned write_disable_a:1; + unsigned pad3:1; + unsigned alpha_to_coverage_dither:1; + unsigned alpha_to_one:1; + unsigned alpha_to_coverage:1; + } blend1; +}; + +struct gen6_color_calc_state +{ + struct { + unsigned alpha_test_format:1; + unsigned pad0:14; + unsigned round_disable:1; + unsigned bf_stencil_ref:8; + unsigned stencil_ref:8; + } cc0; + + union { + float alpha_ref_f; + struct { + unsigned ui:8; + unsigned pad0:24; + } alpha_ref_fi; + } cc1; + + float constant_r; + float constant_g; + float constant_b; + float constant_a; +}; + +struct gen6_depth_stencil_state +{ + struct { + unsigned pad0:3; + unsigned bf_stencil_pass_depth_pass_op:3; + unsigned bf_stencil_pass_depth_fail_op:3; + unsigned bf_stencil_fail_op:3; + unsigned bf_stencil_func:3; + unsigned bf_stencil_enable:1; + unsigned pad1:2; + unsigned stencil_write_enable:1; + unsigned stencil_pass_depth_pass_op:3; + unsigned stencil_pass_depth_fail_op:3; + unsigned stencil_fail_op:3; + unsigned stencil_func:3; + unsigned stencil_enable:1; + } ds0; + + struct { + unsigned bf_stencil_write_mask:8; + unsigned bf_stencil_test_mask:8; + unsigned stencil_write_mask:8; + unsigned stencil_test_mask:8; + } ds1; + + struct { + unsigned pad0:26; + unsigned depth_write_enable:1; + unsigned depth_test_func:3; + unsigned pad1:1; + unsigned depth_test_enable:1; + } ds2; +}; + +struct brw_cc_unit_state +{ + struct + { + unsigned pad0:3; + unsigned bf_stencil_pass_depth_pass_op:3; + unsigned bf_stencil_pass_depth_fail_op:3; + unsigned bf_stencil_fail_op:3; + unsigned bf_stencil_func:3; + unsigned bf_stencil_enable:1; + unsigned pad1:2; + unsigned stencil_write_enable:1; + unsigned stencil_pass_depth_pass_op:3; + unsigned stencil_pass_depth_fail_op:3; + unsigned stencil_fail_op:3; + unsigned stencil_func:3; + unsigned stencil_enable:1; + } cc0; + + + struct + { + unsigned bf_stencil_ref:8; + unsigned stencil_write_mask:8; + unsigned stencil_test_mask:8; + unsigned stencil_ref:8; + } cc1; + + + struct + { + unsigned logicop_enable:1; + unsigned pad0:10; + unsigned depth_write_enable:1; + unsigned depth_test_function:3; + unsigned depth_test:1; + unsigned bf_stencil_write_mask:8; + unsigned bf_stencil_test_mask:8; + } cc2; + + + struct + { + unsigned pad0:8; + unsigned alpha_test_func:3; + unsigned alpha_test:1; + unsigned blend_enable:1; + unsigned ia_blend_enable:1; + unsigned pad1:1; + unsigned alpha_test_format:1; + unsigned pad2:16; + } cc3; + + struct + { + unsigned pad0:5; + unsigned cc_viewport_state_offset:27; /* Offset from GENERAL_STATE_BASE */ + } cc4; + + struct + { + unsigned pad0:2; + unsigned ia_dest_blend_factor:5; + unsigned ia_src_blend_factor:5; + unsigned ia_blend_function:3; + unsigned statistics_enable:1; + unsigned logicop_func:4; + unsigned pad1:11; + unsigned dither_enable:1; + } cc5; + + struct + { + unsigned clamp_post_alpha_blend:1; + unsigned clamp_pre_alpha_blend:1; + unsigned clamp_range:2; + unsigned pad0:11; + unsigned y_dither_offset:2; + unsigned x_dither_offset:2; + unsigned dest_blend_factor:5; + unsigned src_blend_factor:5; + unsigned blend_function:3; + } cc6; + + struct { + union { + float f; + uint8_t ub[4]; + } alpha_ref; + } cc7; +}; + +struct brw_sf_unit_state +{ + struct thread0 thread0; + struct thread1 thread1; + struct thread2 thread2; + struct thread3 thread3; + + struct + { + unsigned pad0:10; + unsigned stats_enable:1; + unsigned nr_urb_entries:7; + unsigned pad1:1; + unsigned urb_entry_allocation_size:5; + unsigned pad2:1; + unsigned max_threads:6; + unsigned pad3:1; + } thread4; + + struct + { + unsigned front_winding:1; + unsigned viewport_transform:1; + unsigned pad0:3; + unsigned sf_viewport_state_offset:27; /* Offset from GENERAL_STATE_BASE */ + } sf5; + + struct + { + unsigned pad0:9; + unsigned dest_org_vbias:4; + unsigned dest_org_hbias:4; + unsigned scissor:1; + unsigned disable_2x2_trifilter:1; + unsigned disable_zero_pix_trifilter:1; + unsigned point_rast_rule:2; + unsigned line_endcap_aa_region_width:2; + unsigned line_width:4; + unsigned fast_scissor_disable:1; + unsigned cull_mode:2; + unsigned aa_enable:1; + } sf6; + + struct + { + unsigned point_size:11; + unsigned use_point_size_state:1; + unsigned subpixel_precision:1; + unsigned sprite_point:1; + unsigned pad0:10; + unsigned aa_line_distance_mode:1; + unsigned trifan_pv:2; + unsigned linestrip_pv:2; + unsigned tristrip_pv:2; + unsigned line_last_pixel_enable:1; + } sf7; + +}; + +struct gen6_scissor_rect +{ + unsigned xmin:16; + unsigned ymin:16; + unsigned xmax:16; + unsigned ymax:16; +}; + +struct brw_gs_unit_state +{ + struct thread0 thread0; + struct thread1 thread1; + struct thread2 thread2; + struct thread3 thread3; + + struct + { + unsigned pad0:8; + unsigned rendering_enable:1; /* for Ironlake */ + unsigned pad4:1; + unsigned stats_enable:1; + unsigned nr_urb_entries:7; + unsigned pad1:1; + unsigned urb_entry_allocation_size:5; + unsigned pad2:1; + unsigned max_threads:5; + unsigned pad3:2; + } thread4; + + struct + { + unsigned sampler_count:3; + unsigned pad0:2; + unsigned sampler_state_pointer:27; + } gs5; + + + struct + { + unsigned max_vp_index:4; + unsigned pad0:12; + unsigned svbi_post_inc_value:10; + unsigned pad1:1; + unsigned svbi_post_inc_enable:1; + unsigned svbi_payload:1; + unsigned discard_adjaceny:1; + unsigned reorder_enable:1; + unsigned pad2:1; + } gs6; +}; + + +struct brw_vs_unit_state +{ + struct thread0 thread0; + struct thread1 thread1; + struct thread2 thread2; + struct thread3 thread3; + + struct + { + unsigned pad0:10; + unsigned stats_enable:1; + unsigned nr_urb_entries:7; + unsigned pad1:1; + unsigned urb_entry_allocation_size:5; + unsigned pad2:1; + unsigned max_threads:6; + unsigned pad3:1; + } thread4; + + struct + { + unsigned sampler_count:3; + unsigned pad0:2; + unsigned sampler_state_pointer:27; + } vs5; + + struct + { + unsigned vs_enable:1; + unsigned vert_cache_disable:1; + unsigned pad0:30; + } vs6; +}; + + +struct brw_wm_unit_state +{ + struct thread0 thread0; + struct thread1 thread1; + struct thread2 thread2; + struct thread3 thread3; + + struct { + unsigned stats_enable:1; + unsigned depth_buffer_clear:1; + unsigned sampler_count:3; + unsigned sampler_state_pointer:27; + } wm4; + + struct + { + unsigned enable_8_pix:1; + unsigned enable_16_pix:1; + unsigned enable_32_pix:1; + unsigned enable_con_32_pix:1; + unsigned enable_con_64_pix:1; + unsigned pad0:1; + + /* These next four bits are for Ironlake+ */ + unsigned fast_span_coverage_enable:1; + unsigned depth_buffer_clear:1; + unsigned depth_buffer_resolve_enable:1; + unsigned hierarchical_depth_buffer_resolve_enable:1; + + unsigned legacy_global_depth_bias:1; + unsigned line_stipple:1; + unsigned depth_offset:1; + unsigned polygon_stipple:1; + unsigned line_aa_region_width:2; + unsigned line_endcap_aa_region_width:2; + unsigned early_depth_test:1; + unsigned thread_dispatch_enable:1; + unsigned program_uses_depth:1; + unsigned program_computes_depth:1; + unsigned program_uses_killpixel:1; + unsigned legacy_line_rast: 1; + unsigned transposed_urb_read_enable:1; + unsigned max_threads:7; + } wm5; + + float global_depth_offset_constant; + float global_depth_offset_scale; + + /* for Ironlake only */ + struct { + unsigned pad0:1; + unsigned grf_reg_count_1:3; + unsigned pad1:2; + unsigned kernel_start_pointer_1:26; + } wm8; + + struct { + unsigned pad0:1; + unsigned grf_reg_count_2:3; + unsigned pad1:2; + unsigned kernel_start_pointer_2:26; + } wm9; + + struct { + unsigned pad0:1; + unsigned grf_reg_count_3:3; + unsigned pad1:2; + unsigned kernel_start_pointer_3:26; + } wm10; +}; + struct gen5_sampler_default_color { uint8_t ub[4]; float f[4]; @@ -74,4 +598,71 @@ struct gen5_sampler_default_color { uint8_t b[4]; }; +struct brw_clipper_viewport +{ + float xmin; + float xmax; + float ymin; + float ymax; +}; + +struct brw_cc_viewport +{ + float min_depth; + float max_depth; +}; + +struct brw_sf_viewport +{ + struct { + float m00; + float m11; + float m22; + float m30; + float m31; + float m32; + } viewport; + + /* scissor coordinates are inclusive */ + struct { + int16_t xmin; + int16_t ymin; + int16_t xmax; + int16_t ymax; + } scissor; +}; + +struct gen6_sf_viewport { + float m00; + float m11; + float m22; + float m30; + float m31; + float m32; + + unsigned pad0[2]; +}; + +struct gen7_sf_clip_viewport { + struct { + float m00; + float m11; + float m22; + float m30; + float m31; + float m32; + } viewport; + + unsigned pad0[2]; + + struct { + float xmin; + float xmax; + float ymin; + float ymax; + } guardband; + + float pad1[4]; +}; + #endif diff --git a/lib/mesa/src/mesa/drivers/dri/i965/brw_urb.c b/lib/mesa/src/mesa/drivers/dri/i965/brw_urb.c index 18daf5137..6078c3810 100644 --- a/lib/mesa/src/mesa/drivers/dri/i965/brw_urb.c +++ b/lib/mesa/src/mesa/drivers/dri/i965/brw_urb.c @@ -112,10 +112,12 @@ static bool check_urb_layout(struct brw_context *brw) /* Most minimal update, forces re-emit of URB fence packet after GS * unit turned on/off. */ -void -brw_calculate_urb_fence(struct brw_context *brw, unsigned csize, - unsigned vsize, unsigned sfsize) +static void recalculate_urb_fence( struct brw_context *brw ) { + GLuint csize = brw->curbe.total_size; + GLuint vsize = brw->vs.prog_data->base.urb_entry_size; + GLuint sfsize = brw->sf.prog_data->urb_entry_size; + if (csize < limits[CS].min_entry_size) csize = limits[CS].min_entry_size; @@ -137,11 +139,11 @@ brw_calculate_urb_fence(struct brw_context *brw, unsigned csize, brw->urb.sfsize = sfsize; brw->urb.vsize = vsize; - brw->urb.nr_vs_entries = limits[VS].preferred_nr_entries; - brw->urb.nr_gs_entries = limits[GS].preferred_nr_entries; + brw->urb.nr_vs_entries = limits[VS].preferred_nr_entries; + brw->urb.nr_gs_entries = limits[GS].preferred_nr_entries; brw->urb.nr_clip_entries = limits[CLP].preferred_nr_entries; - brw->urb.nr_sf_entries = limits[SF].preferred_nr_entries; - brw->urb.nr_cs_entries = limits[CS].preferred_nr_entries; + brw->urb.nr_sf_entries = limits[SF].preferred_nr_entries; + brw->urb.nr_cs_entries = limits[CS].preferred_nr_entries; brw->urb.constrained = 0; @@ -166,18 +168,18 @@ brw_calculate_urb_fence(struct brw_context *brw, unsigned csize, } if (!check_urb_layout(brw)) { - brw->urb.nr_vs_entries = limits[VS].min_nr_entries; - brw->urb.nr_gs_entries = limits[GS].min_nr_entries; + brw->urb.nr_vs_entries = limits[VS].min_nr_entries; + brw->urb.nr_gs_entries = limits[GS].min_nr_entries; brw->urb.nr_clip_entries = limits[CLP].min_nr_entries; - brw->urb.nr_sf_entries = limits[SF].min_nr_entries; - brw->urb.nr_cs_entries = limits[CS].min_nr_entries; + brw->urb.nr_sf_entries = limits[SF].min_nr_entries; + brw->urb.nr_cs_entries = limits[CS].min_nr_entries; /* Mark us as operating with constrained nr_entries, so that next * time we recalculate we'll resize the fences in the hope of * escaping constrained mode and getting back to normal performance. */ brw->urb.constrained = 1; - + if (!check_urb_layout(brw)) { /* This is impossible, given the maximal sizes of urb * entries and the values for minimum nr of entries @@ -186,7 +188,7 @@ brw_calculate_urb_fence(struct brw_context *brw, unsigned csize, fprintf(stderr, "couldn't calculate URB layout!\n"); exit(1); } - + if (unlikely(INTEL_DEBUG & (DEBUG_URB|DEBUG_PERF))) fprintf(stderr, "URB CONSTRAINED\n"); } @@ -206,19 +208,11 @@ done: } } -static void recalculate_urb_fence( struct brw_context *brw ) -{ - brw_calculate_urb_fence(brw, brw->curbe.total_size, - brw_vue_prog_data(brw->vs.base.prog_data)->urb_entry_size, - brw->sf.prog_data->urb_entry_size); -} - const struct brw_tracked_state brw_recalculate_urb_fence = { .dirty = { .mesa = 0, - .brw = BRW_NEW_BLORP | - BRW_NEW_PUSH_CONSTANT_ALLOCATION | + .brw = BRW_NEW_CURBE_OFFSETS | BRW_NEW_SF_PROG_DATA | BRW_NEW_VS_PROG_DATA, }, diff --git a/lib/mesa/src/mesa/drivers/dri/i965/brw_util.h b/lib/mesa/src/mesa/drivers/dri/i965/brw_util.h index 095c43a88..68f4318d3 100644 --- a/lib/mesa/src/mesa/drivers/dri/i965/brw_util.h +++ b/lib/mesa/src/mesa/drivers/dri/i965/brw_util.h @@ -33,13 +33,15 @@ #ifndef BRW_UTIL_H #define BRW_UTIL_H +#include "main/mtypes.h" +#include "main/imports.h" #include "brw_context.h" -#include "main/framebuffer.h" extern GLuint brw_translate_blend_factor( GLenum factor ); extern GLuint brw_translate_blend_equation( GLenum mode ); +extern GLenum brw_fix_xRGB_alpha(GLenum function); -static inline float +static inline uint32_t brw_get_line_width(struct brw_context *brw) { /* From the OpenGL 4.4 spec: @@ -49,11 +51,16 @@ brw_get_line_width(struct brw_context *brw) * implementation-dependent maximum non-antialiased line width." */ float line_width = - CLAMP(!_mesa_is_multisample_enabled(&brw->ctx) && !brw->ctx.Line.SmoothFlag + CLAMP(!brw->ctx.Multisample._Enabled && !brw->ctx.Line.SmoothFlag ? roundf(brw->ctx.Line.Width) : brw->ctx.Line.Width, - 0.125f, brw->ctx.Const.MaxLineWidth); + 0.0f, brw->ctx.Const.MaxLineWidth); + uint32_t line_width_u3_7 = U_FIXED(line_width, 7); - if (!_mesa_is_multisample_enabled(&brw->ctx) && brw->ctx.Line.SmoothFlag && line_width < 1.5f) { + /* Line width of 0 is not allowed when MSAA enabled */ + if (brw->ctx.Multisample._Enabled) { + if (line_width_u3_7 == 0) + line_width_u3_7 = 1; + } else if (brw->ctx.Line.SmoothFlag && line_width < 1.5f) { /* For 1 pixel line thickness or less, the general * anti-aliasing algorithm gives up, and a garbage line is * generated. Setting a Line Width of 0.0 specifies the @@ -65,10 +72,10 @@ brw_get_line_width(struct brw_context *brw) * bspec section 6.3.12.1 Zero-Width (Cosmetic) Line * Rasterization. */ - line_width = 0.0f; + line_width_u3_7 = 0; } - return line_width; + return line_width_u3_7; } #endif diff --git a/lib/mesa/src/mesa/drivers/dri/i965/gen6_multisample_state.c b/lib/mesa/src/mesa/drivers/dri/i965/gen6_multisample_state.c index bfa84fb9b..8444c0c9b 100644 --- a/lib/mesa/src/mesa/drivers/dri/i965/gen6_multisample_state.c +++ b/lib/mesa/src/mesa/drivers/dri/i965/gen6_multisample_state.c @@ -48,9 +48,6 @@ gen6_get_sample_position(struct gl_context *ctx, case 8: bits = brw_multisample_positions_8x[index >> 2] >> (8 * (index & 3)); break; - case 16: - bits = brw_multisample_positions_16x[index >> 2] >> (8 * (index & 3)); - break; default: unreachable("Not implemented"); } @@ -91,17 +88,6 @@ gen6_get_sample_position(struct gl_context *ctx, * | 6 | 7 | | 7 | 1 | * --------- --------- * - * 16X MSAA sample index layout 16x MSAA sample number layout - * ----------------- ----------------- - * | 0 | 1 | 2 | 3 | |15 |10 | 9 | 7 | - * ----------------- ----------------- - * | 4 | 5 | 6 | 7 | | 4 | 1 | 3 |13 | - * ----------------- ----------------- - * | 8 | 9 |10 |11 | |12 | 2 | 0 | 6 | - * ----------------- ----------------- - * |12 |13 |14 |15 | |11 | 8 | 5 |14 | - * ----------------- ----------------- - * * A sample map is used to map sample indices to sample numbers. */ void @@ -109,12 +95,111 @@ gen6_set_sample_maps(struct gl_context *ctx) { uint8_t map_2x[2] = {0, 1}; uint8_t map_4x[4] = {0, 1, 2, 3}; - uint8_t map_8x[8] = {3, 7, 5, 0, 1, 2, 4, 6}; - uint8_t map_16x[16] = { 15, 10, 9, 7, 4, 1, 3, 13, - 12, 2, 0, 6, 11, 8, 5, 14 }; + uint8_t map_8x[8] = {5, 2, 4, 6, 0, 3, 7, 1}; memcpy(ctx->Const.SampleMap2x, map_2x, sizeof(map_2x)); memcpy(ctx->Const.SampleMap4x, map_4x, sizeof(map_4x)); memcpy(ctx->Const.SampleMap8x, map_8x, sizeof(map_8x)); - memcpy(ctx->Const.SampleMap16x, map_16x, sizeof(map_16x)); } + +/** + * 3DSTATE_MULTISAMPLE + */ +void +gen6_emit_3dstate_multisample(struct brw_context *brw, + unsigned num_samples) +{ + uint32_t number_of_multisamples = 0; + uint32_t sample_positions_3210 = 0; + uint32_t sample_positions_7654 = 0; + + assert(brw->gen < 8); + + switch (num_samples) { + case 0: + case 1: + number_of_multisamples = MS_NUMSAMPLES_1; + break; + case 4: + number_of_multisamples = MS_NUMSAMPLES_4; + sample_positions_3210 = brw_multisample_positions_4x; + break; + case 8: + number_of_multisamples = MS_NUMSAMPLES_8; + sample_positions_3210 = brw_multisample_positions_8x[0]; + sample_positions_7654 = brw_multisample_positions_8x[1]; + break; + default: + unreachable("Unrecognized num_samples in gen6_emit_3dstate_multisample"); + } + + int len = brw->gen >= 7 ? 4 : 3; + BEGIN_BATCH(len); + OUT_BATCH(_3DSTATE_MULTISAMPLE << 16 | (len - 2)); + OUT_BATCH(MS_PIXEL_LOCATION_CENTER | number_of_multisamples); + OUT_BATCH(sample_positions_3210); + if (brw->gen >= 7) + OUT_BATCH(sample_positions_7654); + ADVANCE_BATCH(); +} + +unsigned +gen6_determine_sample_mask(struct brw_context *brw) +{ + struct gl_context *ctx = &brw->ctx; + float coverage = 1.0f; + float coverage_invert = false; + unsigned sample_mask = ~0u; + + /* BRW_NEW_NUM_SAMPLES */ + unsigned num_samples = brw->num_samples; + + if (ctx->Multisample._Enabled) { + if (ctx->Multisample.SampleCoverage) { + coverage = ctx->Multisample.SampleCoverageValue; + coverage_invert = ctx->Multisample.SampleCoverageInvert; + } + if (ctx->Multisample.SampleMask) { + sample_mask = ctx->Multisample.SampleMaskValue; + } + } + + if (num_samples > 1) { + int coverage_int = (int) (num_samples * coverage + 0.5f); + uint32_t coverage_bits = (1 << coverage_int) - 1; + if (coverage_invert) + coverage_bits ^= (1 << num_samples) - 1; + return coverage_bits & sample_mask; + } else { + return 1; + } +} + +/** + * 3DSTATE_SAMPLE_MASK + */ +void +gen6_emit_3dstate_sample_mask(struct brw_context *brw, unsigned mask) +{ + BEGIN_BATCH(2); + OUT_BATCH(_3DSTATE_SAMPLE_MASK << 16 | (2 - 2)); + OUT_BATCH(mask); + ADVANCE_BATCH(); +} + +static void +upload_multisample_state(struct brw_context *brw) +{ + /* BRW_NEW_NUM_SAMPLES */ + gen6_emit_3dstate_multisample(brw, brw->num_samples); + gen6_emit_3dstate_sample_mask(brw, gen6_determine_sample_mask(brw)); +} + +const struct brw_tracked_state gen6_multisample_state = { + .dirty = { + .mesa = _NEW_MULTISAMPLE, + .brw = BRW_NEW_CONTEXT | + BRW_NEW_NUM_SAMPLES, + }, + .emit = upload_multisample_state +}; diff --git a/lib/mesa/src/mesa/drivers/dri/i965/gen8_multisample_state.c b/lib/mesa/src/mesa/drivers/dri/i965/gen8_multisample_state.c index 7a31a5df4..75cbe06c5 100644 --- a/lib/mesa/src/mesa/drivers/dri/i965/gen8_multisample_state.c +++ b/lib/mesa/src/mesa/drivers/dri/i965/gen8_multisample_state.c @@ -52,11 +52,13 @@ gen8_emit_3dstate_sample_pattern(struct brw_context *brw) BEGIN_BATCH(9); OUT_BATCH(_3DSTATE_SAMPLE_PATTERN << 16 | (9 - 2)); - /* 16x MSAA */ - OUT_BATCH(brw_multisample_positions_16x[0]); /* positions 3, 2, 1, 0 */ - OUT_BATCH(brw_multisample_positions_16x[1]); /* positions 7, 6, 5, 4 */ - OUT_BATCH(brw_multisample_positions_16x[2]); /* positions 11, 10, 9, 8 */ - OUT_BATCH(brw_multisample_positions_16x[3]); /* positions 15, 14, 13, 12 */ + /* 16x MSAA + * XXX: Need to program these. + */ + OUT_BATCH(0); + OUT_BATCH(0); + OUT_BATCH(0); + OUT_BATCH(0); /* 8x MSAA */ OUT_BATCH(brw_multisample_positions_8x[1]); /* sample positions 7654 */ @@ -69,3 +71,20 @@ gen8_emit_3dstate_sample_pattern(struct brw_context *brw) OUT_BATCH(brw_multisample_positions_1x_2x); ADVANCE_BATCH(); } + + +static void +upload_multisample_state(struct brw_context *brw) +{ + gen8_emit_3dstate_multisample(brw, brw->num_samples); + gen6_emit_3dstate_sample_mask(brw, gen6_determine_sample_mask(brw)); +} + +const struct brw_tracked_state gen8_multisample_state = { + .dirty = { + .mesa = _NEW_MULTISAMPLE, + .brw = BRW_NEW_CONTEXT | + BRW_NEW_NUM_SAMPLES, + }, + .emit = upload_multisample_state +}; diff --git a/lib/mesa/src/mesa/drivers/dri/i965/intel_pixel.c b/lib/mesa/src/mesa/drivers/dri/i965/intel_pixel.c index c69c3cc7d..34543334c 100644 --- a/lib/mesa/src/mesa/drivers/dri/i965/intel_pixel.c +++ b/lib/mesa/src/mesa/drivers/dri/i965/intel_pixel.c @@ -1,4 +1,5 @@ -/* +/************************************************************************** + * * Copyright 2006 VMware, Inc. * All Rights Reserved. * @@ -6,7 +7,7 @@ * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to + * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * @@ -16,17 +17,17 @@ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ + * + **************************************************************************/ #include "main/accum.h" #include "main/enums.h" #include "main/state.h" -#include "main/stencil.h" #include "main/bufferobj.h" #include "main/context.h" #include "swrast/swrast.h" @@ -59,7 +60,7 @@ intel_check_blit_fragment_ops(struct gl_context * ctx, bool src_alpha_is_one) if (ctx->NewState) _mesa_update_state(ctx); - if (_mesa_arb_fragment_program_enabled(ctx)) { + if (ctx->FragmentProgram._Enabled) { DBG("fallback due to fragment program\n"); return false; } @@ -108,7 +109,7 @@ intel_check_blit_fragment_ops(struct gl_context * ctx, bool src_alpha_is_one) return false; } - if (_mesa_stencil_is_enabled(ctx)) { + if (ctx->Stencil._Enabled) { DBG("fallback due to image stencil\n"); return false; } @@ -129,6 +130,7 @@ intel_check_blit_fragment_ops(struct gl_context * ctx, bool src_alpha_is_one) void intelInitPixelFuncs(struct dd_function_table *functions) { + functions->Accum = _mesa_accum; functions->Bitmap = intelBitmap; functions->CopyPixels = intelCopyPixels; functions->DrawPixels = intelDrawPixels; diff --git a/lib/mesa/src/mesa/drivers/dri/i965/intel_pixel_copy.c b/lib/mesa/src/mesa/drivers/dri/i965/intel_pixel_copy.c index 3f8df3002..ce053edbe 100644 --- a/lib/mesa/src/mesa/drivers/dri/i965/intel_pixel_copy.c +++ b/lib/mesa/src/mesa/drivers/dri/i965/intel_pixel_copy.c @@ -1,4 +1,5 @@ -/* +/************************************************************************** + * * Copyright 2003 VMware, Inc. * All Rights Reserved. * @@ -6,7 +7,7 @@ * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to + * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * @@ -16,16 +17,17 @@ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ + * + **************************************************************************/ +#include "main/glheader.h" #include "main/image.h" #include "main/state.h" -#include "main/stencil.h" #include "main/mtypes.h" #include "main/condrender.h" #include "main/fbobject.h" @@ -101,7 +103,7 @@ do_blit_copypixels(struct gl_context * ctx, return false; } - if (draw_irb->mt->surf.samples > 1 || read_irb->mt->surf.samples > 1) { + if (draw_irb->mt->num_samples > 1 || read_irb->mt->num_samples > 1) { perf_debug("glCopyPixels() fallback: multisampled buffers\n"); return false; } @@ -116,14 +118,14 @@ do_blit_copypixels(struct gl_context * ctx, return false; } - if (brw->stencil_enabled) { + if (ctx->Stencil._Enabled) { perf_debug("glCopyPixels(): Unsupported stencil test state\n"); return false; } if (ctx->Fog.Enabled || ctx->Texture._MaxEnabledTexImageUnit != -1 || - _mesa_arb_fragment_program_enabled(ctx)) { + ctx->FragmentProgram._Enabled) { perf_debug("glCopyPixels(): Unsupported fragment shader state\n"); return false; } @@ -143,7 +145,7 @@ do_blit_copypixels(struct gl_context * ctx, } if (ctx->Pixel.ZoomX != 1.0F || ctx->Pixel.ZoomY != 1.0F) { - perf_debug("glCopyPixels(): Unsupported pixel zoom\n"); + perf_debug("glCopyPixles(): Unsupported pixel zoom\n"); return false; } diff --git a/lib/mesa/src/mesa/drivers/dri/i965/intel_tex_copy.c b/lib/mesa/src/mesa/drivers/dri/i965/intel_tex_copy.c index 4fe358529..ecdd052fd 100644 --- a/lib/mesa/src/mesa/drivers/dri/i965/intel_tex_copy.c +++ b/lib/mesa/src/mesa/drivers/dri/i965/intel_tex_copy.c @@ -1,4 +1,5 @@ -/* +/************************************************************************** + * * Copyright 2003 VMware, Inc. * All Rights Reserved. * @@ -6,7 +7,7 @@ * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to + * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * @@ -16,12 +17,13 @@ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ + * + **************************************************************************/ #include "main/mtypes.h" #include "main/enums.h" @@ -51,13 +53,7 @@ intel_copy_texsubimage(struct brw_context *brw, GLint x, GLint y, GLsizei width, GLsizei height) { const GLenum internalFormat = intelImage->base.Base.InternalFormat; - - if (!intelImage->mt || !irb || !irb->mt) { - if (unlikely(INTEL_DEBUG & DEBUG_PERF)) - fprintf(stderr, "%s fail %p %p (0x%08x)\n", - __func__, intelImage->mt, irb, internalFormat); - return false; - } + bool ret; /* No pixel transfer operations (zoom, bias, mapping), just a blit */ if (brw->ctx._ImageTransferState) @@ -76,19 +72,32 @@ intel_copy_texsubimage(struct brw_context *brw, /* glCopyTexSubImage() can't be called on a multisampled texture. */ assert(intelImage->base.Base.NumSamples == 0); + if (!intelImage->mt || !irb || !irb->mt) { + if (unlikely(INTEL_DEBUG & DEBUG_PERF)) + fprintf(stderr, "%s fail %p %p (0x%08x)\n", + __func__, intelImage->mt, irb, internalFormat); + return false; + } + /* account for view parameters and face index */ int dst_level = intelImage->base.Base.Level + intelImage->base.Base.TexObject->MinLevel; int dst_slice = slice + intelImage->base.Base.Face + intelImage->base.Base.TexObject->MinLayer; + _mesa_unlock_texture(&brw->ctx, intelImage->base.Base.TexObject); + /* blit from src buffer to texture */ - return intel_miptree_blit(brw, - irb->mt, irb->mt_level, irb->mt_layer, - x, y, irb->Base.Base.Name == 0, - intelImage->mt, dst_level, dst_slice, - dstx, dsty, false, - width, height, GL_COPY); + ret = intel_miptree_blit(brw, + irb->mt, irb->mt_level, irb->mt_layer, + x, y, irb->Base.Base.Name == 0, + intelImage->mt, dst_level, dst_slice, + dstx, dsty, false, + width, height, GL_COPY); + + _mesa_lock_texture(&brw->ctx, intelImage->base.Base.TexObject); + + return ret; } diff --git a/lib/mesa/src/mesa/drivers/dri/i965/intel_tex_validate.c b/lib/mesa/src/mesa/drivers/dri/i965/intel_tex_validate.c index 16354d2b6..d3fb252b5 100644 --- a/lib/mesa/src/mesa/drivers/dri/i965/intel_tex_validate.c +++ b/lib/mesa/src/mesa/drivers/dri/i965/intel_tex_validate.c @@ -24,7 +24,6 @@ #include "main/mtypes.h" #include "main/macros.h" #include "main/samplerobj.h" -#include "main/teximage.h" #include "main/texobj.h" #include "brw_context.h" @@ -64,7 +63,7 @@ intel_update_max_level(struct intel_texture_object *intelObj, * BaseLevel/MaxLevel/filtering, and copy in any texture images that are * stored in other miptrees. */ -void +GLuint intel_finalize_mipmap_tree(struct brw_context *brw, GLuint unit) { struct gl_context *ctx = &brw->ctx; @@ -78,7 +77,7 @@ intel_finalize_mipmap_tree(struct brw_context *brw, GLuint unit) /* TBOs require no validation -- they always just point to their BO. */ if (tObj->Target == GL_TEXTURE_BUFFER) - return; + return true; /* We know that this is true by now, and if it wasn't, we might have * mismatched level sizes and the copies would fail. @@ -98,7 +97,7 @@ intel_finalize_mipmap_tree(struct brw_context *brw, GLuint unit) if (!intelObj->needs_validate && validate_first_level >= intelObj->validated_first_level && validate_last_level <= intelObj->validated_last_level) { - return; + return true; } /* On recent generations, immutable textures should not get this far @@ -129,13 +128,16 @@ intel_finalize_mipmap_tree(struct brw_context *brw, GLuint unit) /* May need to create a new tree: */ if (!intelObj->mt) { - intel_get_image_dims(&firstImage->base.Base, &width, &height, &depth); + intel_miptree_get_dimensions_for_image(&firstImage->base.Base, + &width, &height, &depth); perf_debug("Creating new %s %dx%dx%d %d-level miptree to handle " "finalized texture miptree.\n", _mesa_get_format_name(firstImage->base.Base.TexFormat), width, height, depth, validate_last_level + 1); + const uint32_t layout_flags = MIPTREE_LAYOUT_ACCELERATED_UPLOAD | + MIPTREE_LAYOUT_TILING_ANY; intelObj->mt = intel_miptree_create(brw, intelObj->base.Target, firstImage->base.Base.TexFormat, @@ -144,10 +146,10 @@ intel_finalize_mipmap_tree(struct brw_context *brw, GLuint unit) width, height, depth, - 1 /* num_samples */, - MIPTREE_CREATE_BUSY); + 0 /* num_samples */, + layout_flags); if (!intelObj->mt) - return; + return false; } /* Pull in any images not in the object's tree: @@ -178,23 +180,6 @@ intel_finalize_mipmap_tree(struct brw_context *brw, GLuint unit) intelObj->validated_last_level = validate_last_level; intelObj->_Format = intelObj->mt->format; intelObj->needs_validate = false; -} -/** - * Finalizes all textures, completing any rendering that needs to be done - * to prepare them. - */ -void -brw_validate_textures(struct brw_context *brw) -{ - struct gl_context *ctx = &brw->ctx; - const int max_enabled_unit = ctx->Texture._MaxEnabledTexImageUnit; - - for (int unit = 0; unit <= max_enabled_unit; unit++) { - struct gl_texture_unit *tex_unit = &ctx->Texture.Unit[unit]; - - if (tex_unit->_Current) { - intel_finalize_mipmap_tree(brw, unit); - } - } + return true; } diff --git a/lib/mesa/src/mesa/drivers/dri/i965/intel_tiled_memcpy.c b/lib/mesa/src/mesa/drivers/dri/i965/intel_tiled_memcpy.c index 53a567969..dcf0462ed 100644 --- a/lib/mesa/src/mesa/drivers/dri/i965/intel_tiled_memcpy.c +++ b/lib/mesa/src/mesa/drivers/dri/i965/intel_tiled_memcpy.c @@ -8,7 +8,7 @@ * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to + * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * @@ -18,7 +18,7 @@ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE @@ -36,10 +36,8 @@ #include "brw_context.h" #include "intel_tiled_memcpy.h" -#if defined(__SSSE3__) +#ifdef __SSSE3__ #include <tmmintrin.h> -#elif defined(__SSE2__) -#include <emmintrin.h> #endif #define FILE_DEBUG_FLAG DEBUG_TEXTURE @@ -58,99 +56,21 @@ static const uint32_t ytile_width = 128; static const uint32_t ytile_height = 32; static const uint32_t ytile_span = 16; -static inline uint32_t -ror(uint32_t n, uint32_t d) -{ - return (n >> d) | (n << (32 - d)); -} - -static inline uint32_t -bswap32(uint32_t n) -{ -#if defined(HAVE___BUILTIN_BSWAP32) - return __builtin_bswap32(n); -#else - return (n >> 24) | - ((n >> 8) & 0x0000ff00) | - ((n << 8) & 0x00ff0000) | - (n << 24); -#endif -} - -/** - * Copy RGBA to BGRA - swap R and B. - */ -static inline void * -rgba8_copy(void *dst, const void *src, size_t bytes) -{ - uint32_t *d = dst; - uint32_t const *s = src; - - assert(bytes % 4 == 0); - - while (bytes >= 4) { - *d = ror(bswap32(*s), 8); - d += 1; - s += 1; - bytes -= 4; - } - return dst; -} - #ifdef __SSSE3__ static const uint8_t rgba8_permutation[16] = { 2,1,0,3, 6,5,4,7, 10,9,8,11, 14,13,12,15 }; -static inline void -rgba8_copy_16_aligned_dst(void *dst, const void *src) -{ - _mm_store_si128(dst, - _mm_shuffle_epi8(_mm_loadu_si128(src), - *(__m128i *)rgba8_permutation)); -} - -static inline void -rgba8_copy_16_aligned_src(void *dst, const void *src) -{ - _mm_storeu_si128(dst, - _mm_shuffle_epi8(_mm_load_si128(src), - *(__m128i *)rgba8_permutation)); -} - -#elif defined(__SSE2__) -static inline void -rgba8_copy_16_aligned_dst(void *dst, const void *src) -{ - __m128i srcreg, dstreg, agmask, ag, rb, br; - - agmask = _mm_set1_epi32(0xFF00FF00); - srcreg = _mm_loadu_si128((__m128i *)src); - - rb = _mm_andnot_si128(agmask, srcreg); - ag = _mm_and_si128(agmask, srcreg); - br = _mm_shufflehi_epi16(_mm_shufflelo_epi16(rb, _MM_SHUFFLE(2, 3, 0, 1)), - _MM_SHUFFLE(2, 3, 0, 1)); - dstreg = _mm_or_si128(ag, br); - - _mm_store_si128((__m128i *)dst, dstreg); -} - -static inline void -rgba8_copy_16_aligned_src(void *dst, const void *src) -{ - __m128i srcreg, dstreg, agmask, ag, rb, br; - - agmask = _mm_set1_epi32(0xFF00FF00); - srcreg = _mm_load_si128((__m128i *)src); - - rb = _mm_andnot_si128(agmask, srcreg); - ag = _mm_and_si128(agmask, srcreg); - br = _mm_shufflehi_epi16(_mm_shufflelo_epi16(rb, _MM_SHUFFLE(2, 3, 0, 1)), - _MM_SHUFFLE(2, 3, 0, 1)); - dstreg = _mm_or_si128(ag, br); - - _mm_storeu_si128((__m128i *)dst, dstreg); -} +/* NOTE: dst must be 16-byte aligned. src may be unaligned. */ +#define rgba8_copy_16_aligned_dst(dst, src) \ + _mm_store_si128((__m128i *)(dst), \ + _mm_shuffle_epi8(_mm_loadu_si128((__m128i *)(src)), \ + *(__m128i *) rgba8_permutation)) + +/* NOTE: src must be 16-byte aligned. dst may be unaligned. */ +#define rgba8_copy_16_aligned_src(dst, src) \ + _mm_storeu_si128((__m128i *)(dst), \ + _mm_shuffle_epi8(_mm_load_si128((__m128i *)(src)), \ + *(__m128i *) rgba8_permutation)) #endif /** @@ -159,27 +79,35 @@ rgba8_copy_16_aligned_src(void *dst, const void *src) static inline void * rgba8_copy_aligned_dst(void *dst, const void *src, size_t bytes) { - assert(bytes == 0 || !(((uintptr_t)dst) & 0xf)); + uint8_t *d = dst; + uint8_t const *s = src; -#if defined(__SSSE3__) || defined(__SSE2__) - if (bytes == 64) { - rgba8_copy_16_aligned_dst(dst + 0, src + 0); - rgba8_copy_16_aligned_dst(dst + 16, src + 16); - rgba8_copy_16_aligned_dst(dst + 32, src + 32); - rgba8_copy_16_aligned_dst(dst + 48, src + 48); +#ifdef __SSSE3__ + if (bytes == 16) { + assert(!(((uintptr_t)dst) & 0xf)); + rgba8_copy_16_aligned_dst(d+ 0, s+ 0); return dst; } - while (bytes >= 16) { - rgba8_copy_16_aligned_dst(dst, src); - src += 16; - dst += 16; - bytes -= 16; + if (bytes == 64) { + assert(!(((uintptr_t)dst) & 0xf)); + rgba8_copy_16_aligned_dst(d+ 0, s+ 0); + rgba8_copy_16_aligned_dst(d+16, s+16); + rgba8_copy_16_aligned_dst(d+32, s+32); + rgba8_copy_16_aligned_dst(d+48, s+48); + return dst; } #endif - rgba8_copy(dst, src, bytes); - + while (bytes >= 4) { + d[0] = s[2]; + d[1] = s[1]; + d[2] = s[0]; + d[3] = s[3]; + d += 4; + s += 4; + bytes -= 4; + } return dst; } @@ -189,27 +117,35 @@ rgba8_copy_aligned_dst(void *dst, const void *src, size_t bytes) static inline void * rgba8_copy_aligned_src(void *dst, const void *src, size_t bytes) { - assert(bytes == 0 || !(((uintptr_t)src) & 0xf)); + uint8_t *d = dst; + uint8_t const *s = src; -#if defined(__SSSE3__) || defined(__SSE2__) - if (bytes == 64) { - rgba8_copy_16_aligned_src(dst + 0, src + 0); - rgba8_copy_16_aligned_src(dst + 16, src + 16); - rgba8_copy_16_aligned_src(dst + 32, src + 32); - rgba8_copy_16_aligned_src(dst + 48, src + 48); +#ifdef __SSSE3__ + if (bytes == 16) { + assert(!(((uintptr_t)src) & 0xf)); + rgba8_copy_16_aligned_src(d+ 0, s+ 0); return dst; } - while (bytes >= 16) { - rgba8_copy_16_aligned_src(dst, src); - src += 16; - dst += 16; - bytes -= 16; + if (bytes == 64) { + assert(!(((uintptr_t)src) & 0xf)); + rgba8_copy_16_aligned_src(d+ 0, s+ 0); + rgba8_copy_16_aligned_src(d+16, s+16); + rgba8_copy_16_aligned_src(d+32, s+32); + rgba8_copy_16_aligned_src(d+48, s+48); + return dst; } #endif - rgba8_copy(dst, src, bytes); - + while (bytes >= 4) { + d[0] = s[2]; + d[1] = s[1]; + d[2] = s[0]; + d[3] = s[3]; + d += 4; + s += 4; + bytes -= 4; + } return dst; } @@ -236,12 +172,6 @@ typedef void (*tile_copy_fn)(uint32_t x0, uint32_t x1, uint32_t x2, uint32_t x3, * Copy texture data from linear to X tile layout. * * \copydoc tile_copy_fn - * - * The mem_copy parameters allow the user to specify an alternative mem_copy - * function that, for instance, may do RGBA -> BGRA swizzling. The first - * function must handle any memory alignment while the second function must - * only handle 16-byte alignment in whichever side (source or destination) is - * tiled. */ static inline void linear_to_xtiled(uint32_t x0, uint32_t x1, uint32_t x2, uint32_t x3, @@ -249,8 +179,7 @@ linear_to_xtiled(uint32_t x0, uint32_t x1, uint32_t x2, uint32_t x3, char *dst, const char *src, int32_t src_pitch, uint32_t swizzle_bit, - mem_copy_fn mem_copy, - mem_copy_fn mem_copy_align16) + mem_copy_fn mem_copy) { /* The copy destination offset for each range copied is the sum of * an X offset 'x0' or 'xo' and a Y offset 'yo.' @@ -271,10 +200,10 @@ linear_to_xtiled(uint32_t x0, uint32_t x1, uint32_t x2, uint32_t x3, mem_copy(dst + ((x0 + yo) ^ swizzle), src + x0, x1 - x0); for (xo = x1; xo < x2; xo += xtile_span) { - mem_copy_align16(dst + ((xo + yo) ^ swizzle), src + xo, xtile_span); + mem_copy(dst + ((xo + yo) ^ swizzle), src + xo, xtile_span); } - mem_copy_align16(dst + ((xo + yo) ^ swizzle), src + x2, x3 - x2); + mem_copy(dst + ((xo + yo) ^ swizzle), src + x2, x3 - x2); src += src_pitch; } @@ -291,8 +220,7 @@ linear_to_ytiled(uint32_t x0, uint32_t x1, uint32_t x2, uint32_t x3, char *dst, const char *src, int32_t src_pitch, uint32_t swizzle_bit, - mem_copy_fn mem_copy, - mem_copy_fn mem_copy_align16) + mem_copy_fn mem_copy) { /* Y tiles consist of columns that are 'ytile_span' wide (and the same height * as the tile). Thus the destination offset for (x,y) is the sum of: @@ -331,12 +259,12 @@ linear_to_ytiled(uint32_t x0, uint32_t x1, uint32_t x2, uint32_t x3, * at each step so we don't need to calculate it explicitly. */ for (x = x1; x < x2; x += ytile_span) { - mem_copy_align16(dst + ((xo + yo) ^ swizzle), src + x, ytile_span); + mem_copy(dst + ((xo + yo) ^ swizzle), src + x, ytile_span); xo += bytes_per_column; swizzle ^= swizzle_bit; } - mem_copy_align16(dst + ((xo + yo) ^ swizzle), src + x2, x3 - x2); + mem_copy(dst + ((xo + yo) ^ swizzle), src + x2, x3 - x2); src += src_pitch; } @@ -353,8 +281,7 @@ xtiled_to_linear(uint32_t x0, uint32_t x1, uint32_t x2, uint32_t x3, char *dst, const char *src, int32_t dst_pitch, uint32_t swizzle_bit, - mem_copy_fn mem_copy, - mem_copy_fn mem_copy_align16) + mem_copy_fn mem_copy) { /* The copy destination offset for each range copied is the sum of * an X offset 'x0' or 'xo' and a Y offset 'yo.' @@ -375,10 +302,10 @@ xtiled_to_linear(uint32_t x0, uint32_t x1, uint32_t x2, uint32_t x3, mem_copy(dst + x0, src + ((x0 + yo) ^ swizzle), x1 - x0); for (xo = x1; xo < x2; xo += xtile_span) { - mem_copy_align16(dst + xo, src + ((xo + yo) ^ swizzle), xtile_span); + mem_copy(dst + xo, src + ((xo + yo) ^ swizzle), xtile_span); } - mem_copy_align16(dst + x2, src + ((xo + yo) ^ swizzle), x3 - x2); + mem_copy(dst + x2, src + ((xo + yo) ^ swizzle), x3 - x2); dst += dst_pitch; } @@ -395,8 +322,7 @@ ytiled_to_linear(uint32_t x0, uint32_t x1, uint32_t x2, uint32_t x3, char *dst, const char *src, int32_t dst_pitch, uint32_t swizzle_bit, - mem_copy_fn mem_copy, - mem_copy_fn mem_copy_align16) + mem_copy_fn mem_copy) { /* Y tiles consist of columns that are 'ytile_span' wide (and the same height * as the tile). Thus the destination offset for (x,y) is the sum of: @@ -435,12 +361,12 @@ ytiled_to_linear(uint32_t x0, uint32_t x1, uint32_t x2, uint32_t x3, * at each step so we don't need to calculate it explicitly. */ for (x = x1; x < x2; x += ytile_span) { - mem_copy_align16(dst + x, src + ((xo + yo) ^ swizzle), ytile_span); + mem_copy(dst + x, src + ((xo + yo) ^ swizzle), ytile_span); xo += bytes_per_column; swizzle ^= swizzle_bit; } - mem_copy_align16(dst + x2, src + ((xo + yo) ^ swizzle), x3 - x2); + mem_copy(dst + x2, src + ((xo + yo) ^ swizzle), x3 - x2); dst += dst_pitch; } @@ -467,27 +393,26 @@ linear_to_xtiled_faster(uint32_t x0, uint32_t x1, uint32_t x2, uint32_t x3, if (x0 == 0 && x3 == xtile_width && y0 == 0 && y1 == xtile_height) { if (mem_copy == memcpy) return linear_to_xtiled(0, 0, xtile_width, xtile_width, 0, xtile_height, - dst, src, src_pitch, swizzle_bit, memcpy, memcpy); - else if (mem_copy == rgba8_copy) + dst, src, src_pitch, swizzle_bit, memcpy); + else if (mem_copy == rgba8_copy_aligned_dst) return linear_to_xtiled(0, 0, xtile_width, xtile_width, 0, xtile_height, dst, src, src_pitch, swizzle_bit, - rgba8_copy, rgba8_copy_aligned_dst); + rgba8_copy_aligned_dst); else unreachable("not reached"); } else { if (mem_copy == memcpy) return linear_to_xtiled(x0, x1, x2, x3, y0, y1, - dst, src, src_pitch, swizzle_bit, - memcpy, memcpy); - else if (mem_copy == rgba8_copy) + dst, src, src_pitch, swizzle_bit, memcpy); + else if (mem_copy == rgba8_copy_aligned_dst) return linear_to_xtiled(x0, x1, x2, x3, y0, y1, dst, src, src_pitch, swizzle_bit, - rgba8_copy, rgba8_copy_aligned_dst); + rgba8_copy_aligned_dst); else unreachable("not reached"); } linear_to_xtiled(x0, x1, x2, x3, y0, y1, - dst, src, src_pitch, swizzle_bit, mem_copy, mem_copy); + dst, src, src_pitch, swizzle_bit, mem_copy); } /** @@ -510,26 +435,26 @@ linear_to_ytiled_faster(uint32_t x0, uint32_t x1, uint32_t x2, uint32_t x3, if (x0 == 0 && x3 == ytile_width && y0 == 0 && y1 == ytile_height) { if (mem_copy == memcpy) return linear_to_ytiled(0, 0, ytile_width, ytile_width, 0, ytile_height, - dst, src, src_pitch, swizzle_bit, memcpy, memcpy); - else if (mem_copy == rgba8_copy) + dst, src, src_pitch, swizzle_bit, memcpy); + else if (mem_copy == rgba8_copy_aligned_dst) return linear_to_ytiled(0, 0, ytile_width, ytile_width, 0, ytile_height, dst, src, src_pitch, swizzle_bit, - rgba8_copy, rgba8_copy_aligned_dst); + rgba8_copy_aligned_dst); else unreachable("not reached"); } else { if (mem_copy == memcpy) return linear_to_ytiled(x0, x1, x2, x3, y0, y1, - dst, src, src_pitch, swizzle_bit, memcpy, memcpy); - else if (mem_copy == rgba8_copy) + dst, src, src_pitch, swizzle_bit, memcpy); + else if (mem_copy == rgba8_copy_aligned_dst) return linear_to_ytiled(x0, x1, x2, x3, y0, y1, dst, src, src_pitch, swizzle_bit, - rgba8_copy, rgba8_copy_aligned_dst); + rgba8_copy_aligned_dst); else unreachable("not reached"); } linear_to_ytiled(x0, x1, x2, x3, y0, y1, - dst, src, src_pitch, swizzle_bit, mem_copy, mem_copy); + dst, src, src_pitch, swizzle_bit, mem_copy); } /** @@ -552,26 +477,26 @@ xtiled_to_linear_faster(uint32_t x0, uint32_t x1, uint32_t x2, uint32_t x3, if (x0 == 0 && x3 == xtile_width && y0 == 0 && y1 == xtile_height) { if (mem_copy == memcpy) return xtiled_to_linear(0, 0, xtile_width, xtile_width, 0, xtile_height, - dst, src, dst_pitch, swizzle_bit, memcpy, memcpy); - else if (mem_copy == rgba8_copy) + dst, src, dst_pitch, swizzle_bit, memcpy); + else if (mem_copy == rgba8_copy_aligned_src) return xtiled_to_linear(0, 0, xtile_width, xtile_width, 0, xtile_height, dst, src, dst_pitch, swizzle_bit, - rgba8_copy, rgba8_copy_aligned_src); + rgba8_copy_aligned_src); else unreachable("not reached"); } else { if (mem_copy == memcpy) return xtiled_to_linear(x0, x1, x2, x3, y0, y1, - dst, src, dst_pitch, swizzle_bit, memcpy, memcpy); - else if (mem_copy == rgba8_copy) + dst, src, dst_pitch, swizzle_bit, memcpy); + else if (mem_copy == rgba8_copy_aligned_src) return xtiled_to_linear(x0, x1, x2, x3, y0, y1, dst, src, dst_pitch, swizzle_bit, - rgba8_copy, rgba8_copy_aligned_src); + rgba8_copy_aligned_src); else unreachable("not reached"); } xtiled_to_linear(x0, x1, x2, x3, y0, y1, - dst, src, dst_pitch, swizzle_bit, mem_copy, mem_copy); + dst, src, dst_pitch, swizzle_bit, mem_copy); } /** @@ -594,26 +519,26 @@ ytiled_to_linear_faster(uint32_t x0, uint32_t x1, uint32_t x2, uint32_t x3, if (x0 == 0 && x3 == ytile_width && y0 == 0 && y1 == ytile_height) { if (mem_copy == memcpy) return ytiled_to_linear(0, 0, ytile_width, ytile_width, 0, ytile_height, - dst, src, dst_pitch, swizzle_bit, memcpy, memcpy); - else if (mem_copy == rgba8_copy) + dst, src, dst_pitch, swizzle_bit, memcpy); + else if (mem_copy == rgba8_copy_aligned_src) return ytiled_to_linear(0, 0, ytile_width, ytile_width, 0, ytile_height, dst, src, dst_pitch, swizzle_bit, - rgba8_copy, rgba8_copy_aligned_src); + rgba8_copy_aligned_src); else unreachable("not reached"); } else { if (mem_copy == memcpy) return ytiled_to_linear(x0, x1, x2, x3, y0, y1, - dst, src, dst_pitch, swizzle_bit, memcpy, memcpy); - else if (mem_copy == rgba8_copy) + dst, src, dst_pitch, swizzle_bit, memcpy); + else if (mem_copy == rgba8_copy_aligned_src) return ytiled_to_linear(x0, x1, x2, x3, y0, y1, dst, src, dst_pitch, swizzle_bit, - rgba8_copy, rgba8_copy_aligned_src); + rgba8_copy_aligned_src); else unreachable("not reached"); } ytiled_to_linear(x0, x1, x2, x3, y0, y1, - dst, src, dst_pitch, swizzle_bit, mem_copy, mem_copy); + dst, src, dst_pitch, swizzle_bit, mem_copy); } /** @@ -633,7 +558,7 @@ linear_to_tiled(uint32_t xt1, uint32_t xt2, char *dst, const char *src, uint32_t dst_pitch, int32_t src_pitch, bool has_swizzling, - enum isl_tiling tiling, + uint32_t tiling, mem_copy_fn mem_copy) { tile_copy_fn tile_copy; @@ -643,12 +568,12 @@ linear_to_tiled(uint32_t xt1, uint32_t xt2, uint32_t tw, th, span; uint32_t swizzle_bit = has_swizzling ? 1<<6 : 0; - if (tiling == ISL_TILING_X) { + if (tiling == I915_TILING_X) { tw = xtile_width; th = xtile_height; span = xtile_span; tile_copy = linear_to_xtiled_faster; - } else if (tiling == ISL_TILING_Y0) { + } else if (tiling == I915_TILING_Y) { tw = ytile_width; th = ytile_height; span = ytile_span; @@ -724,7 +649,7 @@ tiled_to_linear(uint32_t xt1, uint32_t xt2, char *dst, const char *src, int32_t dst_pitch, uint32_t src_pitch, bool has_swizzling, - enum isl_tiling tiling, + uint32_t tiling, mem_copy_fn mem_copy) { tile_copy_fn tile_copy; @@ -734,12 +659,12 @@ tiled_to_linear(uint32_t xt1, uint32_t xt2, uint32_t tw, th, span; uint32_t swizzle_bit = has_swizzling ? 1<<6 : 0; - if (tiling == ISL_TILING_X) { + if (tiling == I915_TILING_X) { tw = xtile_width; th = xtile_height; span = xtile_span; tile_copy = xtiled_to_linear_faster; - } else if (tiling == ISL_TILING_Y0) { + } else if (tiling == I915_TILING_Y) { tw = ytile_width; th = ytile_height; span = ytile_span; @@ -820,7 +745,8 @@ tiled_to_linear(uint32_t xt1, uint32_t xt2, * \return true if the format and type combination are valid */ bool intel_get_memcpy(mesa_format tiledFormat, GLenum format, - GLenum type, mem_copy_fn *mem_copy, uint32_t *cpp) + GLenum type, mem_copy_fn *mem_copy, uint32_t *cpp, + enum intel_memcpy_direction direction) { if (type == GL_UNSIGNED_INT_8_8_8_8_REV && !(format == GL_RGBA || format == GL_BGRA)) @@ -831,25 +757,23 @@ bool intel_get_memcpy(mesa_format tiledFormat, GLenum format, *cpp = 1; *mem_copy = memcpy; } else if ((tiledFormat == MESA_FORMAT_B8G8R8A8_UNORM) || - (tiledFormat == MESA_FORMAT_B8G8R8X8_UNORM) || - (tiledFormat == MESA_FORMAT_B8G8R8A8_SRGB) || - (tiledFormat == MESA_FORMAT_B8G8R8X8_SRGB)) { + (tiledFormat == MESA_FORMAT_B8G8R8X8_UNORM)) { *cpp = 4; if (format == GL_BGRA) { *mem_copy = memcpy; } else if (format == GL_RGBA) { - *mem_copy = rgba8_copy; + *mem_copy = direction == INTEL_UPLOAD ? rgba8_copy_aligned_dst + : rgba8_copy_aligned_src; } } else if ((tiledFormat == MESA_FORMAT_R8G8B8A8_UNORM) || - (tiledFormat == MESA_FORMAT_R8G8B8X8_UNORM) || - (tiledFormat == MESA_FORMAT_R8G8B8A8_SRGB) || - (tiledFormat == MESA_FORMAT_R8G8B8X8_SRGB)) { + (tiledFormat == MESA_FORMAT_R8G8B8X8_UNORM)) { *cpp = 4; if (format == GL_BGRA) { /* Copying from RGBA to BGRA is the same as BGRA to RGBA so we can * use the same function. */ - *mem_copy = rgba8_copy; + *mem_copy = direction == INTEL_UPLOAD ? rgba8_copy_aligned_dst + : rgba8_copy_aligned_src; } else if (format == GL_RGBA) { *mem_copy = memcpy; } diff --git a/lib/mesa/src/mesa/drivers/dri/i965/intel_tiled_memcpy.h b/lib/mesa/src/mesa/drivers/dri/i965/intel_tiled_memcpy.h index 62ec8847f..9dc1088d2 100644 --- a/lib/mesa/src/mesa/drivers/dri/i965/intel_tiled_memcpy.h +++ b/lib/mesa/src/mesa/drivers/dri/i965/intel_tiled_memcpy.h @@ -8,7 +8,7 @@ * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to + * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * @@ -18,7 +18,7 @@ * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE @@ -43,7 +43,7 @@ linear_to_tiled(uint32_t xt1, uint32_t xt2, char *dst, const char *src, uint32_t dst_pitch, int32_t src_pitch, bool has_swizzling, - enum isl_tiling tiling, + uint32_t tiling, mem_copy_fn mem_copy); void @@ -52,10 +52,23 @@ tiled_to_linear(uint32_t xt1, uint32_t xt2, char *dst, const char *src, int32_t dst_pitch, uint32_t src_pitch, bool has_swizzling, - enum isl_tiling tiling, + uint32_t tiling, mem_copy_fn mem_copy); +/* Tells intel_get_memcpy() whether the memcpy() is + * + * - an upload to the GPU with an aligned destination and a potentially + * unaligned source; or + * - a download from the GPU with an aligned source and a potentially + * unaligned destination. + */ +enum intel_memcpy_direction { + INTEL_UPLOAD, + INTEL_DOWNLOAD +}; + bool intel_get_memcpy(mesa_format tiledFormat, GLenum format, - GLenum type, mem_copy_fn *mem_copy, uint32_t *cpp); + GLenum type, mem_copy_fn *mem_copy, uint32_t *cpp, + enum intel_memcpy_direction direction); #endif /* INTEL_TILED_MEMCPY */ diff --git a/lib/mesa/src/mesa/drivers/dri/nouveau/nouveau_gldefs.h b/lib/mesa/src/mesa/drivers/dri/nouveau/nouveau_gldefs.h index 7df04c117..46ec14ec5 100644 --- a/lib/mesa/src/mesa/drivers/dri/nouveau/nouveau_gldefs.h +++ b/lib/mesa/src/mesa/drivers/dri/nouveau/nouveau_gldefs.h @@ -239,25 +239,6 @@ nvgl_wrap_mode(unsigned wrap) } static inline unsigned -nvgl_wrap_mode_nv20(unsigned wrap) -{ - switch (wrap) { - case GL_REPEAT: - return 0x1; - case GL_MIRRORED_REPEAT: - return 0x2; - case GL_CLAMP: - return 0x5; - case GL_CLAMP_TO_EDGE: - return 0x3; - case GL_CLAMP_TO_BORDER: - return 0x4; - default: - unreachable("Bad GL texture wrap mode"); - } -} - -static inline unsigned nvgl_filter_mode(unsigned filter) { switch (filter) { diff --git a/lib/mesa/src/mesa/drivers/dri/nouveau/nouveau_render_t.c b/lib/mesa/src/mesa/drivers/dri/nouveau/nouveau_render_t.c index db60b59c8..1625a8722 100644 --- a/lib/mesa/src/mesa/drivers/dri/nouveau/nouveau_render_t.c +++ b/lib/mesa/src/mesa/drivers/dri/nouveau/nouveau_render_t.c @@ -158,16 +158,16 @@ get_max_vertices(struct gl_context *ctx, const struct _mesa_index_buffer *ib, unsigned max_out; if (ib) { - switch (ib->index_size) { - case 4: + switch (ib->type) { + case GL_UNSIGNED_INT: max_out = MAX_OUT_I32; break; - case 2: + case GL_UNSIGNED_SHORT: max_out = MAX_OUT_I16; break; - case 1: + case GL_UNSIGNED_BYTE: max_out = MAX_OUT_I16; break; diff --git a/lib/mesa/src/mesa/drivers/dri/nouveau/nouveau_state.c b/lib/mesa/src/mesa/drivers/dri/nouveau/nouveau_state.c index 1aa26e955..3aad10ed6 100644 --- a/lib/mesa/src/mesa/drivers/dri/nouveau/nouveau_state.c +++ b/lib/mesa/src/mesa/drivers/dri/nouveau/nouveau_state.c @@ -31,8 +31,6 @@ #include "swrast/swrast.h" #include "tnl/tnl.h" -#include "util/bitscan.h" -#include "main/framebuffer.h" static void nouveau_alpha_func(struct gl_context *ctx, GLenum func, GLfloat ref) @@ -124,7 +122,7 @@ nouveau_draw_buffers(struct gl_context *ctx, GLsizei n, const GLenum *buffers) static void nouveau_enable(struct gl_context *ctx, GLenum cap, GLboolean state) { - GLbitfield mask; + int i; switch (cap) { case GL_ALPHA_TEST: @@ -189,10 +187,9 @@ nouveau_enable(struct gl_context *ctx, GLenum cap, GLboolean state) context_dirty(ctx, LIGHT_MODEL); context_dirty(ctx, LIGHT_ENABLE); - mask = ctx->Light._EnabledLights; - while (mask) { - const int i = u_bit_scan(&mask); - context_dirty_i(ctx, LIGHT_SOURCE, i); + for (i = 0; i < MAX_LIGHTS; i++) { + if (ctx->Light.Light[i].Enabled) + context_dirty_i(ctx, LIGHT_SOURCE, i); } context_dirty(ctx, MATERIAL_FRONT_AMBIENT); @@ -396,7 +393,8 @@ nouveau_tex_env(struct gl_context *ctx, GLenum target, GLenum pname, static void nouveau_tex_parameter(struct gl_context *ctx, - struct gl_texture_object *t, GLenum pname) + struct gl_texture_object *t, GLenum pname, + const GLfloat *params) { switch (pname) { case GL_TEXTURE_MAG_FILTER: @@ -452,14 +450,10 @@ nouveau_state_emit(struct gl_context *ctx) } static void -nouveau_update_state(struct gl_context *ctx) +nouveau_update_state(struct gl_context *ctx, GLbitfield new_state) { - GLbitfield new_state = ctx->NewState; int i; - if (new_state & (_NEW_SCISSOR | _NEW_BUFFERS | _NEW_VIEWPORT)) - _mesa_update_draw_buffer_bounds(ctx, ctx->DrawBuffer); - if (new_state & (_NEW_PROJECTION | _NEW_MODELVIEW)) context_dirty(ctx, PROJECTION); @@ -498,6 +492,7 @@ nouveau_update_state(struct gl_context *ctx) _swrast_InvalidateState(ctx, new_state); _tnl_InvalidateState(ctx, new_state); + _vbo_InvalidateState(ctx, new_state); nouveau_state_emit(ctx); } diff --git a/lib/mesa/src/mesa/drivers/dri/nouveau/nv04_state_raster.c b/lib/mesa/src/mesa/drivers/dri/nouveau/nv04_state_raster.c index 69664fb40..fbcc840f8 100644 --- a/lib/mesa/src/mesa/drivers/dri/nouveau/nv04_state_raster.c +++ b/lib/mesa/src/mesa/drivers/dri/nouveau/nv04_state_raster.c @@ -175,7 +175,7 @@ nv04_emit_control(struct gl_context *ctx, int emit) if (ctx->Stencil.WriteMask[0]) nv04->ctrl[0] |= NV04_MULTITEX_TRIANGLE_CONTROL0_STENCIL_WRITE; - if (_mesa_stencil_is_enabled(ctx)) + if (ctx->Stencil._Enabled) nv04->ctrl[1] |= NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_ENABLE; nv04->ctrl[1] |= get_comparison_op(ctx->Stencil.Function[0]) << 4 | diff --git a/lib/mesa/src/mesa/drivers/dri/nouveau/nv10_state_raster.c b/lib/mesa/src/mesa/drivers/dri/nouveau/nv10_state_raster.c index d537f7bc2..ffde87ab2 100644 --- a/lib/mesa/src/mesa/drivers/dri/nouveau/nv10_state_raster.c +++ b/lib/mesa/src/mesa/drivers/dri/nouveau/nv10_state_raster.c @@ -145,7 +145,7 @@ nv10_emit_stencil_func(struct gl_context *ctx, int emit) struct nouveau_pushbuf *push = context_push(ctx); BEGIN_NV04(push, NV10_3D(STENCIL_ENABLE), 1); - PUSH_DATAb(push, _mesa_stencil_is_enabled(ctx)); + PUSH_DATAb(push, ctx->Stencil._Enabled); BEGIN_NV04(push, NV10_3D(STENCIL_FUNC_FUNC), 3); PUSH_DATA (push, nvgl_comparison_op(ctx->Stencil.Function[0])); diff --git a/lib/mesa/src/mesa/drivers/dri/nouveau/nv20_state_tex.c b/lib/mesa/src/mesa/drivers/dri/nouveau/nv20_state_tex.c index 7972069dc..b0a4c9fb0 100644 --- a/lib/mesa/src/mesa/drivers/dri/nouveau/nv20_state_tex.c +++ b/lib/mesa/src/mesa/drivers/dri/nouveau/nv20_state_tex.c @@ -193,19 +193,9 @@ nv20_emit_tex_obj(struct gl_context *ctx, int emit) | NV20_3D_TEX_FORMAT_NO_BORDER | 1 << 16; - switch (t->Target) { - case GL_TEXTURE_1D: - tx_wrap = NV20_3D_TEX_WRAP_R_CLAMP_TO_EDGE - | NV20_3D_TEX_WRAP_T_CLAMP_TO_EDGE - | nvgl_wrap_mode_nv20(sa->WrapS) << 0; - break; - - default: - tx_wrap = nvgl_wrap_mode_nv20(sa->WrapR) << 16 - | nvgl_wrap_mode_nv20(sa->WrapT) << 8 - | nvgl_wrap_mode_nv20(sa->WrapS) << 0; - break; - } + tx_wrap = nvgl_wrap_mode(sa->WrapR) << 16 + | nvgl_wrap_mode(sa->WrapT) << 8 + | nvgl_wrap_mode(sa->WrapS) << 0; tx_filter = nvgl_filter_mode(sa->MagFilter) << 24 | nvgl_filter_mode(sa->MinFilter) << 16 diff --git a/lib/mesa/src/mesa/drivers/dri/r200/r200_maos_arrays.c b/lib/mesa/src/mesa/drivers/dri/r200/r200_maos_arrays.c index 60f851be5..3cfc03d10 100644 --- a/lib/mesa/src/mesa/drivers/dri/r200/r200_maos_arrays.c +++ b/lib/mesa/src/mesa/drivers/dri/r200/r200_maos_arrays.c @@ -34,9 +34,9 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "main/glheader.h" #include "main/mtypes.h" +#include "main/colormac.h" #include "main/imports.h" #include "main/macros.h" -#include "main/state.h" #include "swrast_setup/swrast_setup.h" #include "math/m_translate.h" @@ -115,7 +115,7 @@ void r200EmitArrays( struct gl_context *ctx, GLubyte *vimap_rev ) /* special handling to fix up fog. Will get us into trouble with vbos...*/ assert(attrib == VERT_ATTRIB_FOG); if (!rmesa->radeon.tcl.aos[i].bo) { - if (_mesa_arb_vertex_program_enabled(ctx)) + if (ctx->VertexProgram._Enabled) rcommon_emit_vector( ctx, &(rmesa->radeon.tcl.aos[nr]), (char *)VB->AttribPtr[attrib]->data, diff --git a/lib/mesa/src/mesa/drivers/dri/r200/r200_texstate.c b/lib/mesa/src/mesa/drivers/dri/r200/r200_texstate.c index dcf211f52..441ac730d 100644 --- a/lib/mesa/src/mesa/drivers/dri/r200/r200_texstate.c +++ b/lib/mesa/src/mesa/drivers/dri/r200/r200_texstate.c @@ -36,7 +36,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "main/imports.h" #include "main/context.h" #include "main/macros.h" -#include "main/state.h" #include "main/teximage.h" #include "main/texobj.h" #include "main/enums.h" @@ -1481,7 +1480,7 @@ void r200UpdateTextureState( struct gl_context *ctx ) atoms. */ R200_NEWPRIM( rmesa ); - if (_mesa_ati_fragment_shader_enabled(ctx)) { + if (ctx->ATIFragmentShader._Enabled) { GLuint i; for (i = 0; i < R200_MAX_TEXTURE_UNITS; i++) { if (ctx->Texture.Unit[i]._Current) @@ -1503,7 +1502,7 @@ void r200UpdateTextureState( struct gl_context *ctx ) r200UpdateTextureUnit( ctx, 5 )); } - if (ok && _mesa_ati_fragment_shader_enabled(ctx)) { + if (ok && ctx->ATIFragmentShader._Enabled) { r200UpdateFragmentShader(ctx); } @@ -1529,7 +1528,7 @@ void r200UpdateTextureState( struct gl_context *ctx ) rmesa->hw.tex[1].cmd[TEX_PP_TXFORMAT] &= ~TEXOBJ_TXFORMAT_MASK; rmesa->hw.tex[1].cmd[TEX_PP_TXFORMAT] |= R200_TXFORMAT_LOOKUP_DISABLE; } - else if (!_mesa_ati_fragment_shader_enabled(ctx)) { + else if (!ctx->ATIFragmentShader._Enabled) { if ((rmesa->hw.ctx.cmd[CTX_PP_CNTL] & R200_TEX_1_ENABLE) && (rmesa->hw.tex[1].cmd[TEX_PP_TXFORMAT] & R200_TXFORMAT_LOOKUP_DISABLE)) { R200_STATECHANGE(rmesa, tex[1]); diff --git a/lib/mesa/src/mesa/drivers/dri/radeon/radeon_state.c b/lib/mesa/src/mesa/drivers/dri/radeon/radeon_state.c index d2ca81215..74c1fc6c9 100644 --- a/lib/mesa/src/mesa/drivers/dri/radeon/radeon_state.c +++ b/lib/mesa/src/mesa/drivers/dri/radeon/radeon_state.c @@ -34,6 +34,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "main/glheader.h" #include "main/imports.h" +#include "main/api_arrayelt.h" #include "main/enums.h" #include "main/light.h" #include "main/context.h" @@ -50,7 +51,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "tnl/t_pipeline.h" #include "swrast_setup/swrast_setup.h" #include "drivers/common/meta.h" -#include "util/bitscan.h" #include "radeon_context.h" #include "radeon_mipmap_tree.h" @@ -892,26 +892,27 @@ static void update_light( struct gl_context *ctx ) if (ctx->Light.Enabled) { - GLbitfield mask = ctx->Light._EnabledLights; - while (mask) { - const int p = u_bit_scan(&mask); - struct gl_light *l = &ctx->Light.Light[p]; - GLfloat *fcmd = (GLfloat *)RADEON_DB_STATE( lit[p] ); - - if (l->EyePosition[3] == 0.0) { - COPY_3FV( &fcmd[LIT_POSITION_X], l->_VP_inf_norm ); - COPY_3FV( &fcmd[LIT_DIRECTION_X], l->_h_inf_norm ); - fcmd[LIT_POSITION_W] = 0; - fcmd[LIT_DIRECTION_W] = 0; - } else { - COPY_4V( &fcmd[LIT_POSITION_X], l->_Position ); - fcmd[LIT_DIRECTION_X] = -l->_NormSpotDirection[0]; - fcmd[LIT_DIRECTION_Y] = -l->_NormSpotDirection[1]; - fcmd[LIT_DIRECTION_Z] = -l->_NormSpotDirection[2]; - fcmd[LIT_DIRECTION_W] = 0; - } - - RADEON_DB_STATECHANGE( rmesa, &rmesa->hw.lit[p] ); + GLint p; + for (p = 0 ; p < MAX_LIGHTS; p++) { + if (ctx->Light.Light[p].Enabled) { + struct gl_light *l = &ctx->Light.Light[p]; + GLfloat *fcmd = (GLfloat *)RADEON_DB_STATE( lit[p] ); + + if (l->EyePosition[3] == 0.0) { + COPY_3FV( &fcmd[LIT_POSITION_X], l->_VP_inf_norm ); + COPY_3FV( &fcmd[LIT_DIRECTION_X], l->_h_inf_norm ); + fcmd[LIT_POSITION_W] = 0; + fcmd[LIT_DIRECTION_W] = 0; + } else { + COPY_4V( &fcmd[LIT_POSITION_X], l->_Position ); + fcmd[LIT_DIRECTION_X] = -l->_NormSpotDirection[0]; + fcmd[LIT_DIRECTION_Y] = -l->_NormSpotDirection[1]; + fcmd[LIT_DIRECTION_Z] = -l->_NormSpotDirection[2]; + fcmd[LIT_DIRECTION_W] = 0; + } + + RADEON_DB_STATECHANGE( rmesa, &rmesa->hw.lit[p] ); + } } } } @@ -1133,17 +1134,18 @@ static void radeonClipPlane( struct gl_context *ctx, GLenum plane, const GLfloat static void radeonUpdateClipPlanes( struct gl_context *ctx ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); - GLbitfield mask = ctx->Transform.ClipPlanesEnabled; + GLuint p; - while (mask) { - const int p = u_bit_scan(&mask); - GLint *ip = (GLint *)ctx->Transform._ClipUserPlane[p]; + for (p = 0; p < ctx->Const.MaxClipPlanes; p++) { + if (ctx->Transform.ClipPlanesEnabled & (1 << p)) { + GLint *ip = (GLint *)ctx->Transform._ClipUserPlane[p]; - RADEON_STATECHANGE( rmesa, ucp[p] ); - rmesa->hw.ucp[p].cmd[UCP_X] = ip[0]; - rmesa->hw.ucp[p].cmd[UCP_Y] = ip[1]; - rmesa->hw.ucp[p].cmd[UCP_Z] = ip[2]; - rmesa->hw.ucp[p].cmd[UCP_W] = ip[3]; + RADEON_STATECHANGE( rmesa, ucp[p] ); + rmesa->hw.ucp[p].cmd[UCP_X] = ip[0]; + rmesa->hw.ucp[p].cmd[UCP_Y] = ip[1]; + rmesa->hw.ucp[p].cmd[UCP_Z] = ip[2]; + rmesa->hw.ucp[p].cmd[UCP_W] = ip[3]; + } } } @@ -2044,16 +2046,13 @@ GLboolean radeonValidateState( struct gl_context *ctx ) } -static void radeonInvalidateState(struct gl_context *ctx) +static void radeonInvalidateState( struct gl_context *ctx, GLuint new_state ) { - GLuint new_state = ctx->NewState; - - if (new_state & (_NEW_SCISSOR | _NEW_BUFFERS | _NEW_VIEWPORT)) - _mesa_update_draw_buffer_bounds(ctx, ctx->DrawBuffer); - _swrast_InvalidateState( ctx, new_state ); _swsetup_InvalidateState( ctx, new_state ); + _vbo_InvalidateState( ctx, new_state ); _tnl_InvalidateState( ctx, new_state ); + _ae_invalidate_state( ctx, new_state ); R100_CONTEXT(ctx)->radeon.NewGLState |= new_state; } @@ -2149,6 +2148,7 @@ void radeonInitStateFuncs( struct gl_context *ctx ) ctx->Driver.Enable = radeonEnable; ctx->Driver.Fogfv = radeonFogfv; ctx->Driver.FrontFace = radeonFrontFace; + ctx->Driver.Hint = NULL; ctx->Driver.LightModelfv = radeonLightModelfv; ctx->Driver.Lightfv = radeonLightfv; ctx->Driver.LineStipple = radeonLineStipple; diff --git a/lib/mesa/src/mesa/drivers/x11/xm_dd.c b/lib/mesa/src/mesa/drivers/x11/xm_dd.c index 3e6134251..cd5809e07 100644 --- a/lib/mesa/src/mesa/drivers/x11/xm_dd.c +++ b/lib/mesa/src/mesa/drivers/x11/xm_dd.c @@ -33,7 +33,6 @@ #include "main/context.h" #include "main/colormac.h" #include "main/fbobject.h" -#include "main/framebuffer.h" #include "main/macros.h" #include "main/mipmap.h" #include "main/image.h" @@ -679,20 +678,17 @@ enable( struct gl_context *ctx, GLenum pname, GLboolean state ) * Called when the driver should update its state, based on the new_state * flags. */ -static void -xmesa_update_state(struct gl_context *ctx) +void +xmesa_update_state( struct gl_context *ctx, GLbitfield new_state ) { - GLbitfield new_state = ctx->NewState; const XMesaContext xmesa = XMESA_CONTEXT(ctx); - if (new_state & (_NEW_SCISSOR | _NEW_BUFFERS | _NEW_VIEWPORT)) - _mesa_update_draw_buffer_bounds(ctx, ctx->DrawBuffer); - /* Propagate statechange information to swrast and swrast_setup * modules. The X11 driver has no internal GL-dependent state. */ _swrast_InvalidateState( ctx, new_state ); _tnl_InvalidateState( ctx, new_state ); + _vbo_InvalidateState( ctx, new_state ); _swsetup_InvalidateState( ctx, new_state ); if (_mesa_is_user_fbo(ctx->DrawBuffer)) diff --git a/lib/mesa/src/mesa/drivers/x11/xmesaP.h b/lib/mesa/src/mesa/drivers/x11/xmesaP.h index ff3ddc4dd..d7a934e8d 100644 --- a/lib/mesa/src/mesa/drivers/x11/xmesaP.h +++ b/lib/mesa/src/mesa/drivers/x11/xmesaP.h @@ -78,6 +78,7 @@ struct xmesa_visual { int screen, visualID; int visualType; XMesaVisualInfo visinfo; /* X's visual info (pointer to private copy) */ + XVisualInfo *vishandle; /* Only used in fakeglx.c */ GLint BitsPerPixel; /* True bits per pixel for XImages */ GLboolean ximage_flag; /* Use XImage for back buffer (not pixmap)? */ @@ -249,7 +250,7 @@ struct xmesa_buffer { #define PACK_TRUECOLOR( PIXEL, R, G, B ) \ PIXEL = xmesa->xm_visual->RtoPixel[R] \ | xmesa->xm_visual->GtoPixel[G] \ - | xmesa->xm_visual->BtoPixel[B]; + | xmesa->xm_visual->BtoPixel[B]; \ /** @@ -354,6 +355,10 @@ xmesa_init_driver_functions( XMesaVisual xmvisual, struct dd_function_table *driver ); extern void +xmesa_update_state( struct gl_context *ctx, GLbitfield new_state ); + + +extern void xmesa_MapRenderbuffer(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint x, GLuint y, GLuint w, GLuint h, diff --git a/lib/mesa/src/mesa/main/accum.c b/lib/mesa/src/mesa/main/accum.c index 2b15b6ee0..ef74468f4 100644 --- a/lib/mesa/src/mesa/main/accum.c +++ b/lib/mesa/src/mesa/main/accum.c @@ -28,7 +28,6 @@ #include "context.h" #include "format_unpack.h" #include "format_pack.h" -#include "framebuffer.h" #include "imports.h" #include "macros.h" #include "state.h" @@ -54,6 +53,57 @@ _mesa_ClearAccum( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ) } +void GLAPIENTRY +_mesa_Accum( GLenum op, GLfloat value ) +{ + GET_CURRENT_CONTEXT(ctx); + FLUSH_VERTICES(ctx, 0); + + switch (op) { + case GL_ADD: + case GL_MULT: + case GL_ACCUM: + case GL_LOAD: + case GL_RETURN: + /* OK */ + break; + default: + _mesa_error(ctx, GL_INVALID_ENUM, "glAccum(op)"); + return; + } + + if (ctx->DrawBuffer->Visual.haveAccumBuffer == 0) { + _mesa_error(ctx, GL_INVALID_OPERATION, "glAccum(no accum buffer)"); + return; + } + + if (ctx->DrawBuffer != ctx->ReadBuffer) { + /* See GLX_SGI_make_current_read or WGL_ARB_make_current_read, + * or GL_EXT_framebuffer_blit. + */ + _mesa_error(ctx, GL_INVALID_OPERATION, + "glAccum(different read/draw buffers)"); + return; + } + + if (ctx->NewState) + _mesa_update_state(ctx); + + if (ctx->DrawBuffer->_Status != GL_FRAMEBUFFER_COMPLETE_EXT) { + _mesa_error(ctx, GL_INVALID_FRAMEBUFFER_OPERATION_EXT, + "glAccum(incomplete framebuffer)"); + return; + } + + if (ctx->RasterDiscard) + return; + + if (ctx->RenderMode == GL_RENDER) { + _mesa_accum(ctx, op, value); + } +} + + /** * Clear the accumulation buffer by mapping the renderbuffer and * writing the clear color to it. Called by the driver's implementation @@ -74,8 +124,6 @@ _mesa_clear_accum_buffer(struct gl_context *ctx) if (!accRb) return; /* missing accum buffer, not an error */ - _mesa_update_draw_buffer_bounds(ctx, ctx->DrawBuffer); - /* bounds, with scissor */ x = ctx->DrawBuffer->_Xmin; y = ctx->DrawBuffer->_Ymin; @@ -388,8 +436,8 @@ accum_return(struct gl_context *ctx, GLfloat value, * signed 16-bit color channels could implement hardware accumulation * operations, but no driver does so at this time. */ -static void -accum(struct gl_context *ctx, GLenum op, GLfloat value) +void +_mesa_accum(struct gl_context *ctx, GLenum op, GLfloat value) { GLint xpos, ypos, width, height; @@ -401,8 +449,6 @@ accum(struct gl_context *ctx, GLenum op, GLfloat value) if (!_mesa_check_conditional_render(ctx)) return; - _mesa_update_draw_buffer_bounds(ctx, ctx->DrawBuffer); - xpos = ctx->DrawBuffer->_Xmin; ypos = ctx->DrawBuffer->_Ymin; width = ctx->DrawBuffer->_Xmax - ctx->DrawBuffer->_Xmin; @@ -431,7 +477,7 @@ accum(struct gl_context *ctx, GLenum op, GLfloat value) accum_return(ctx, value, xpos, ypos, width, height); break; default: - unreachable("invalid mode in _mesa_Accum()"); + _mesa_problem(ctx, "invalid mode in _mesa_accum()"); break; } } @@ -443,54 +489,3 @@ _mesa_init_accum( struct gl_context *ctx ) /* Accumulate buffer group */ ASSIGN_4V( ctx->Accum.ClearColor, 0.0, 0.0, 0.0, 0.0 ); } - - -void GLAPIENTRY -_mesa_Accum( GLenum op, GLfloat value ) -{ - GET_CURRENT_CONTEXT(ctx); - FLUSH_VERTICES(ctx, 0); - - switch (op) { - case GL_ADD: - case GL_MULT: - case GL_ACCUM: - case GL_LOAD: - case GL_RETURN: - /* OK */ - break; - default: - _mesa_error(ctx, GL_INVALID_ENUM, "glAccum(op)"); - return; - } - - if (ctx->DrawBuffer->Visual.haveAccumBuffer == 0) { - _mesa_error(ctx, GL_INVALID_OPERATION, "glAccum(no accum buffer)"); - return; - } - - if (ctx->DrawBuffer != ctx->ReadBuffer) { - /* See GLX_SGI_make_current_read or WGL_ARB_make_current_read, - * or GL_EXT_framebuffer_blit. - */ - _mesa_error(ctx, GL_INVALID_OPERATION, - "glAccum(different read/draw buffers)"); - return; - } - - if (ctx->NewState) - _mesa_update_state(ctx); - - if (ctx->DrawBuffer->_Status != GL_FRAMEBUFFER_COMPLETE_EXT) { - _mesa_error(ctx, GL_INVALID_FRAMEBUFFER_OPERATION_EXT, - "glAccum(incomplete framebuffer)"); - return; - } - - if (ctx->RasterDiscard) - return; - - if (ctx->RenderMode == GL_RENDER) { - accum(ctx, op, value); - } -} diff --git a/lib/mesa/src/mesa/main/accum.h b/lib/mesa/src/mesa/main/accum.h index fe253a20d..a5665c757 100644 --- a/lib/mesa/src/mesa/main/accum.h +++ b/lib/mesa/src/mesa/main/accum.h @@ -39,7 +39,9 @@ #include "main/glheader.h" +struct _glapi_table; struct gl_context; +struct gl_renderbuffer; extern void GLAPIENTRY _mesa_ClearAccum( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ); @@ -47,6 +49,9 @@ void GLAPIENTRY _mesa_Accum( GLenum op, GLfloat value ); extern void +_mesa_accum(struct gl_context *ctx, GLenum op, GLfloat value); + +extern void _mesa_clear_accum_buffer(struct gl_context *ctx); extern void diff --git a/lib/mesa/src/mesa/main/api_arrayelt.h b/lib/mesa/src/mesa/main/api_arrayelt.h index 965e0ad3a..39fdeb9d2 100644 --- a/lib/mesa/src/mesa/main/api_arrayelt.h +++ b/lib/mesa/src/mesa/main/api_arrayelt.h @@ -33,8 +33,7 @@ extern GLboolean _ae_create_context( struct gl_context *ctx ); extern void _ae_destroy_context( struct gl_context *ctx ); -extern void _ae_invalidate_state(struct gl_context *ctx); -extern bool _ae_is_state_dirty(struct gl_context *ctx); +extern void _ae_invalidate_state( struct gl_context *ctx, GLuint new_state ); extern void GLAPIENTRY _ae_ArrayElement( GLint elt ); /* May optionally be called before a batch of element calls: diff --git a/lib/mesa/src/mesa/main/api_loopback.h b/lib/mesa/src/mesa/main/api_loopback.h index c1e7b24f0..026bfd68e 100644 --- a/lib/mesa/src/mesa/main/api_loopback.h +++ b/lib/mesa/src/mesa/main/api_loopback.h @@ -481,10 +481,4 @@ void GLAPIENTRY _mesa_VertexAttribL3dv(GLuint index, const GLdouble *v); void GLAPIENTRY _mesa_VertexAttribL4dv(GLuint index, const GLdouble *v); - -void GLAPIENTRY -_mesa_VertexAttribL1ui64ARB(GLuint index, GLuint64EXT x); -void GLAPIENTRY -_mesa_VertexAttribL1ui64vARB(GLuint index, const GLuint64EXT *v); - #endif /* API_LOOPBACK_H */ diff --git a/lib/mesa/src/mesa/main/arrayobj.h b/lib/mesa/src/mesa/main/arrayobj.h index 179496857..6a4247f4a 100644 --- a/lib/mesa/src/mesa/main/arrayobj.h +++ b/lib/mesa/src/mesa/main/arrayobj.h @@ -35,7 +35,7 @@ struct gl_context; /** * \file arrayobj.h - * Functions for the GL_ARB_vertex_array_object extension. + * Functions for the GL_APPLE_vertex_array_object extension. * * \author Ian Romanick <idr@us.ibm.com> * \author Brian Paul @@ -81,14 +81,6 @@ extern void _mesa_update_vao_client_arrays(struct gl_context *ctx, struct gl_vertex_array_object *vao); -/* Returns true if all varying arrays reside in vbos */ -extern bool -_mesa_all_varyings_in_vbos(const struct gl_vertex_array_object *vao); - -/* Returns true if all vbos are unmapped */ -extern bool -_mesa_all_buffers_are_unmapped(const struct gl_vertex_array_object *vao); - /* * API functions */ @@ -96,10 +88,14 @@ _mesa_all_buffers_are_unmapped(const struct gl_vertex_array_object *vao); void GLAPIENTRY _mesa_BindVertexArray( GLuint id ); +void GLAPIENTRY _mesa_BindVertexArrayAPPLE( GLuint id ); + void GLAPIENTRY _mesa_DeleteVertexArrays(GLsizei n, const GLuint *ids); void GLAPIENTRY _mesa_GenVertexArrays(GLsizei n, GLuint *arrays); +void GLAPIENTRY _mesa_GenVertexArraysAPPLE(GLsizei n, GLuint *buffer); + void GLAPIENTRY _mesa_CreateVertexArrays(GLsizei n, GLuint *arrays); GLboolean GLAPIENTRY _mesa_IsVertexArray( GLuint id ); diff --git a/lib/mesa/src/mesa/main/blend.h b/lib/mesa/src/mesa/main/blend.h index 0f0bb624a..8ab9e02fc 100644 --- a/lib/mesa/src/mesa/main/blend.h +++ b/lib/mesa/src/mesa/main/blend.h @@ -34,9 +34,7 @@ #include "glheader.h" -#include "context.h" #include "formats.h" -#include "extensions.h" struct gl_context; struct gl_framebuffer; @@ -45,28 +43,17 @@ struct gl_framebuffer; extern void GLAPIENTRY _mesa_BlendFunc( GLenum sfactor, GLenum dfactor ); -extern void GLAPIENTRY -_mesa_BlendFunc_no_error(GLenum sfactor, GLenum dfactor); extern void GLAPIENTRY _mesa_BlendFuncSeparate( GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorA, GLenum dfactorA ); -extern void GLAPIENTRY -_mesa_BlendFuncSeparate_no_error(GLenum sfactorRGB, GLenum dfactorRGB, - GLenum sfactorA, GLenum dfactorA); extern void GLAPIENTRY -_mesa_BlendFunciARB_no_error(GLuint buf, GLenum sfactor, GLenum dfactor); -extern void GLAPIENTRY _mesa_BlendFunciARB(GLuint buf, GLenum sfactor, GLenum dfactor); extern void GLAPIENTRY -_mesa_BlendFuncSeparateiARB_no_error(GLuint buf, GLenum sfactorRGB, - GLenum dfactorRGB, GLenum sfactorA, - GLenum dfactorA); -extern void GLAPIENTRY _mesa_BlendFuncSeparateiARB(GLuint buf, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorA, GLenum dfactorA); @@ -84,9 +71,6 @@ _mesa_BlendEquationSeparate( GLenum modeRGB, GLenum modeA ); extern void GLAPIENTRY -_mesa_BlendEquationSeparateiARB_no_error(GLuint buf, GLenum modeRGB, - GLenum modeA); -extern void GLAPIENTRY _mesa_BlendEquationSeparateiARB(GLuint buf, GLenum modeRGB, GLenum modeA); @@ -103,10 +87,6 @@ _mesa_LogicOp( GLenum opcode ); extern void GLAPIENTRY -_mesa_LogicOp_no_error(GLenum opcode); - - -extern void GLAPIENTRY _mesa_IndexMask( GLuint mask ); extern void GLAPIENTRY @@ -147,22 +127,4 @@ _mesa_get_render_format(const struct gl_context *ctx, mesa_format format); extern void _mesa_init_color( struct gl_context * ctx ); - -static inline void -_mesa_flush_vertices_for_blend_state(struct gl_context *ctx) -{ - /* The advanced blend mode needs _NEW_COLOR to update the state constant, - * so we have to set it. This is inefficient. - * This should only be done for states that affect the state constant. - * It shouldn't be done for other blend states. - */ - if (_mesa_has_KHR_blend_equation_advanced(ctx) || - !ctx->DriverFlags.NewBlend) { - FLUSH_VERTICES(ctx, _NEW_COLOR); - } else { - FLUSH_VERTICES(ctx, 0); - } - ctx->NewDriverState |= ctx->DriverFlags.NewBlend; -} - #endif diff --git a/lib/mesa/src/mesa/main/blit.h b/lib/mesa/src/mesa/main/blit.h index 39021e7be..88dd4a9ec 100644 --- a/lib/mesa/src/mesa/main/blit.h +++ b/lib/mesa/src/mesa/main/blit.h @@ -34,26 +34,19 @@ _mesa_regions_overlap(int srcX0, int srcY0, int dstX0, int dstY0, int dstX1, int dstY1); -void GLAPIENTRY -_mesa_BlitFramebuffer_no_error(GLint srcX0, GLint srcY0, GLint srcX1, - GLint srcY1, GLint dstX0, GLint dstY0, - GLint dstX1, GLint dstY1, - GLbitfield mask, GLenum filter); +extern void +_mesa_blit_framebuffer(struct gl_context *ctx, + struct gl_framebuffer *readFb, + struct gl_framebuffer *drawFb, + GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, + GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, + GLbitfield mask, GLenum filter, const char *func); extern void GLAPIENTRY _mesa_BlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -void GLAPIENTRY -_mesa_BlitNamedFramebuffer_no_error(GLuint readFramebuffer, - GLuint drawFramebuffer, - GLint srcX0, GLint srcY0, - GLint srcX1, GLint srcY1, - GLint dstX0, GLint dstY0, - GLint dstX1, GLint dstY1, - GLbitfield mask, GLenum filter); - extern void GLAPIENTRY _mesa_BlitNamedFramebuffer(GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, diff --git a/lib/mesa/src/mesa/main/buffers.h b/lib/mesa/src/mesa/main/buffers.h index ba0613801..5aa79fda5 100644 --- a/lib/mesa/src/mesa/main/buffers.h +++ b/lib/mesa/src/mesa/main/buffers.h @@ -34,11 +34,13 @@ #include "glheader.h" -#include "mtypes.h" struct gl_context; struct gl_framebuffer; +extern void +_mesa_draw_buffer(struct gl_context *ctx, struct gl_framebuffer *fb, + GLenum buffer, const char *caller); extern void GLAPIENTRY _mesa_DrawBuffer( GLenum mode ); @@ -46,6 +48,10 @@ _mesa_DrawBuffer( GLenum mode ); extern void GLAPIENTRY _mesa_NamedFramebufferDrawBuffer(GLuint framebuffer, GLenum buf); +extern void +_mesa_draw_buffers(struct gl_context *ctx, struct gl_framebuffer *fb, + GLsizei n, const GLenum *buffers, const char *caller); + extern void GLAPIENTRY _mesa_DrawBuffers(GLsizei n, const GLenum *buffers); @@ -60,20 +66,19 @@ _mesa_drawbuffers(struct gl_context *ctx, struct gl_framebuffer *fb, extern void _mesa_readbuffer(struct gl_context *ctx, struct gl_framebuffer *fb, - GLenum buffer, gl_buffer_index bufferIndex); + GLenum buffer, GLint bufferIndex); extern void _mesa_update_draw_buffers(struct gl_context *ctx); -void GLAPIENTRY -_mesa_ReadBuffer_no_error(GLenum mode); + +extern void +_mesa_read_buffer(struct gl_context *ctx, struct gl_framebuffer *fb, + GLenum buffer, const char *caller); extern void GLAPIENTRY _mesa_ReadBuffer( GLenum mode ); -void GLAPIENTRY -_mesa_NamedFramebufferReadBuffer_no_error(GLuint framebuffer, GLenum src); - extern void GLAPIENTRY _mesa_NamedFramebufferReadBuffer(GLuint framebuffer, GLenum src); diff --git a/lib/mesa/src/mesa/main/clear.c b/lib/mesa/src/mesa/main/clear.c index 3adbe3818..3bfcc5c0e 100644 --- a/lib/mesa/src/mesa/main/clear.c +++ b/lib/mesa/src/mesa/main/clear.c @@ -115,17 +115,16 @@ color_buffer_writes_enabled(const struct gl_context *ctx, unsigned idx) { struct gl_renderbuffer *rb = ctx->DrawBuffer->_ColorDrawBuffers[idx]; GLuint c; + GLubyte colorMask = 0; if (rb) { for (c = 0; c < 4; c++) { - if (ctx->Color.ColorMask[idx][c] && - _mesa_format_has_color_component(rb->Format, c)) { - return true; - } + if (_mesa_format_has_color_component(rb->Format, c)) + colorMask |= ctx->Color.ColorMask[idx][c]; } } - return false; + return colorMask != 0; } @@ -140,36 +139,40 @@ color_buffer_writes_enabled(const struct gl_context *ctx, unsigned idx) * GL_RENDER then requests the driver to clear the buffers, via the * dd_function_table::Clear callback. */ -static ALWAYS_INLINE void -clear(struct gl_context *ctx, GLbitfield mask, bool no_error) +void GLAPIENTRY +_mesa_Clear( GLbitfield mask ) { + GET_CURRENT_CONTEXT(ctx); FLUSH_VERTICES(ctx, 0); + FLUSH_CURRENT(ctx, 0); - if (!no_error) { - if (mask & ~(GL_COLOR_BUFFER_BIT | - GL_DEPTH_BUFFER_BIT | - GL_STENCIL_BUFFER_BIT | - GL_ACCUM_BUFFER_BIT)) { - _mesa_error( ctx, GL_INVALID_VALUE, "glClear(0x%x)", mask); - return; - } + if (MESA_VERBOSE & VERBOSE_API) + _mesa_debug(ctx, "glClear 0x%x\n", mask); - /* Accumulation buffers were removed in core contexts, and they never - * existed in OpenGL ES. - */ - if ((mask & GL_ACCUM_BUFFER_BIT) != 0 - && (ctx->API == API_OPENGL_CORE || _mesa_is_gles(ctx))) { - _mesa_error( ctx, GL_INVALID_VALUE, "glClear(GL_ACCUM_BUFFER_BIT)"); - return; - } + if (mask & ~(GL_COLOR_BUFFER_BIT | + GL_DEPTH_BUFFER_BIT | + GL_STENCIL_BUFFER_BIT | + GL_ACCUM_BUFFER_BIT)) { + /* invalid bit set */ + _mesa_error( ctx, GL_INVALID_VALUE, "glClear(0x%x)", mask); + return; + } + + /* Accumulation buffers were removed in core contexts, and they never + * existed in OpenGL ES. + */ + if ((mask & GL_ACCUM_BUFFER_BIT) != 0 + && (ctx->API == API_OPENGL_CORE || _mesa_is_gles(ctx))) { + _mesa_error( ctx, GL_INVALID_VALUE, "glClear(GL_ACCUM_BUFFER_BIT)"); + return; } if (ctx->NewState) { _mesa_update_state( ctx ); /* update _Xmin, etc */ } - if (!no_error && ctx->DrawBuffer->_Status != GL_FRAMEBUFFER_COMPLETE_EXT) { + if (ctx->DrawBuffer->_Status != GL_FRAMEBUFFER_COMPLETE_EXT) { _mesa_error(ctx, GL_INVALID_FRAMEBUFFER_OPERATION_EXT, "glClear(incomplete framebuffer)"); return; @@ -223,26 +226,6 @@ clear(struct gl_context *ctx, GLbitfield mask, bool no_error) } -void GLAPIENTRY -_mesa_Clear_no_error(GLbitfield mask) -{ - GET_CURRENT_CONTEXT(ctx); - clear(ctx, mask, true); -} - - -void GLAPIENTRY -_mesa_Clear(GLbitfield mask) -{ - GET_CURRENT_CONTEXT(ctx); - - if (MESA_VERBOSE & VERBOSE_API) - _mesa_debug(ctx, "glClear 0x%x\n", mask); - - clear(ctx, mask, false); -} - - /** Returned by make_color_buffer_mask() for errors */ #define INVALID_MASK ~0x0U @@ -284,14 +267,6 @@ make_color_buffer_mask(struct gl_context *ctx, GLint drawbuffer) mask |= BUFFER_BIT_FRONT_RIGHT; break; case GL_BACK: - /* For GLES contexts with a single buffered configuration, we actually - * only have a front renderbuffer, so any clear calls to GL_BACK should - * affect that buffer. See draw_buffer_enum_to_bitmask for details. - */ - if (_mesa_is_gles(ctx)) - if (!ctx->DrawBuffer->Visual.doubleBufferMode) - if (att[BUFFER_FRONT_LEFT].Renderbuffer) - mask |= BUFFER_BIT_FRONT_LEFT; if (att[BUFFER_BACK_LEFT].Renderbuffer) mask |= BUFFER_BIT_BACK_LEFT; if (att[BUFFER_BACK_RIGHT].Renderbuffer) @@ -350,6 +325,18 @@ _mesa_ClearBufferiv(GLenum buffer, GLint drawbuffer, const GLint *value) _mesa_update_state( ctx ); } + /* Page 498 of the PDF, section '17.4.3.1 Clearing Individual Buffers' + * of the OpenGL 4.5 spec states: + * + * "An INVALID_ENUM error is generated by ClearBufferiv and + * ClearNamedFramebufferiv if buffer is not COLOR or STENCIL." + */ + if (buffer == GL_DEPTH || buffer == GL_DEPTH_STENCIL) { + _mesa_error(ctx, GL_INVALID_ENUM, + "glClearBufferiv(buffer=GL_DEPTH || GL_DEPTH_STENCIL)"); + return; + } + switch (buffer) { case GL_STENCIL: /* Page 264 (page 280 of the PDF) of the OpenGL 3.0 spec says: @@ -399,13 +386,26 @@ _mesa_ClearBufferiv(GLenum buffer, GLint drawbuffer, const GLint *value) } } break; - default: - /* Page 498 of the PDF, section '17.4.3.1 Clearing Individual Buffers' - * of the OpenGL 4.5 spec states: + case GL_DEPTH: + /* Page 264 (page 280 of the PDF) of the OpenGL 3.0 spec says: + * + * "The result of ClearBuffer is undefined if no conversion between + * the type of the specified value and the type of the buffer being + * cleared is defined (for example, if ClearBufferiv is called for a + * fixed- or floating-point buffer, or if ClearBufferfv is called + * for a signed or unsigned integer buffer). This is not an error." * - * "An INVALID_ENUM error is generated by ClearBufferiv and - * ClearNamedFramebufferiv if buffer is not COLOR or STENCIL." + * In this case we take "undefined" and "not an error" to mean "ignore." + * Note that we still need to generate an error for the invalid + * drawbuffer case (see the GL_STENCIL case above). */ + if (drawbuffer != 0) { + _mesa_error(ctx, GL_INVALID_VALUE, "glClearBufferiv(drawbuffer=%d)", + drawbuffer); + return; + } + return; + default: _mesa_error(ctx, GL_INVALID_ENUM, "glClearBufferiv(buffer=%s)", _mesa_enum_to_string(buffer)); return; @@ -470,13 +470,32 @@ _mesa_ClearBufferuiv(GLenum buffer, GLint drawbuffer, const GLuint *value) } } break; - default: - /* Page 498 of the PDF, section '17.4.3.1 Clearing Individual Buffers' - * of the OpenGL 4.5 spec states: + case GL_DEPTH: + case GL_STENCIL: + /* Page 264 (page 280 of the PDF) of the OpenGL 3.0 spec says: + * + * "The result of ClearBuffer is undefined if no conversion between + * the type of the specified value and the type of the buffer being + * cleared is defined (for example, if ClearBufferiv is called for a + * fixed- or floating-point buffer, or if ClearBufferfv is called + * for a signed or unsigned integer buffer). This is not an error." + * + * In this case we take "undefined" and "not an error" to mean "ignore." + * Even though we could do something sensible for GL_STENCIL, page 263 + * (page 279 of the PDF) says: * - * "An INVALID_ENUM error is generated by ClearBufferuiv and - * ClearNamedFramebufferuiv if buffer is not COLOR." + * "Only ClearBufferiv should be used to clear stencil buffers." + * + * Note that we still need to generate an error for the invalid + * drawbuffer case (see the GL_STENCIL case in _mesa_ClearBufferiv). */ + if (drawbuffer != 0) { + _mesa_error(ctx, GL_INVALID_VALUE, "glClearBufferuiv(drawbuffer=%d)", + drawbuffer); + return; + } + return; + default: _mesa_error(ctx, GL_INVALID_ENUM, "glClearBufferuiv(buffer=%s)", _mesa_enum_to_string(buffer)); return; @@ -568,13 +587,26 @@ _mesa_ClearBufferfv(GLenum buffer, GLint drawbuffer, const GLfloat *value) } } break; - default: - /* Page 498 of the PDF, section '17.4.3.1 Clearing Individual Buffers' - * of the OpenGL 4.5 spec states: + case GL_STENCIL: + /* Page 264 (page 280 of the PDF) of the OpenGL 3.0 spec says: + * + * "The result of ClearBuffer is undefined if no conversion between + * the type of the specified value and the type of the buffer being + * cleared is defined (for example, if ClearBufferiv is called for a + * fixed- or floating-point buffer, or if ClearBufferfv is called + * for a signed or unsigned integer buffer). This is not an error." * - * "An INVALID_ENUM error is generated by ClearBufferfv and - * ClearNamedFramebufferfv if buffer is not COLOR or DEPTH." + * In this case we take "undefined" and "not an error" to mean "ignore." + * Note that we still need to generate an error for the invalid + * drawbuffer case (see the GL_DEPTH case above). */ + if (drawbuffer != 0) { + _mesa_error(ctx, GL_INVALID_VALUE, "glClearBufferfv(drawbuffer=%d)", + drawbuffer); + return; + } + return; + default: _mesa_error(ctx, GL_INVALID_ENUM, "glClearBufferfv(buffer=%s)", _mesa_enum_to_string(buffer)); return; @@ -671,12 +703,12 @@ _mesa_ClearBufferfi(GLenum buffer, GLint drawbuffer, */ void GLAPIENTRY _mesa_ClearNamedFramebufferfi(GLuint framebuffer, GLenum buffer, - GLint drawbuffer, GLfloat depth, GLint stencil) + GLfloat depth, GLint stencil) { GLint oldfb; _mesa_GetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, &oldfb); _mesa_BindFramebuffer(GL_DRAW_FRAMEBUFFER, framebuffer); - _mesa_ClearBufferfi(buffer, drawbuffer, depth, stencil); + _mesa_ClearBufferfi(buffer, 0, depth, stencil); _mesa_BindFramebuffer(GL_DRAW_FRAMEBUFFER, (GLuint) oldfb); } diff --git a/lib/mesa/src/mesa/main/clear.h b/lib/mesa/src/mesa/main/clear.h index 6ae63ac25..c29850676 100644 --- a/lib/mesa/src/mesa/main/clear.h +++ b/lib/mesa/src/mesa/main/clear.h @@ -43,8 +43,6 @@ _mesa_ClearColorIiEXT(GLint r, GLint g, GLint b, GLint a); extern void GLAPIENTRY _mesa_ClearColorIuiEXT(GLuint r, GLuint g, GLuint b, GLuint a); -void GLAPIENTRY -_mesa_Clear_no_error(GLbitfield mask); extern void GLAPIENTRY _mesa_Clear( GLbitfield mask ); @@ -77,6 +75,6 @@ _mesa_ClearBufferfi(GLenum buffer, GLint drawbuffer, extern void GLAPIENTRY _mesa_ClearNamedFramebufferfi(GLuint framebuffer, GLenum buffer, - GLint drawbuffer, GLfloat depth, GLint stencil); + GLfloat depth, GLint stencil); #endif diff --git a/lib/mesa/src/mesa/main/clip.c b/lib/mesa/src/mesa/main/clip.c index 0950283ff..f994728bc 100644 --- a/lib/mesa/src/mesa/main/clip.c +++ b/lib/mesa/src/mesa/main/clip.c @@ -83,9 +83,7 @@ _mesa_ClipPlane( GLenum plane, const GLdouble *eq ) if (TEST_EQ_4V(ctx->Transform.EyeUserPlane[p], equation)) return; - /* EyeUserPlane is used by program state constants. */ FLUSH_VERTICES(ctx, _NEW_TRANSFORM); - ctx->NewDriverState |= ctx->DriverFlags.NewClipPlane; COPY_4FV(ctx->Transform.EyeUserPlane[p], equation); if (ctx->Transform.ClipPlanesEnabled & (1 << p)) { diff --git a/lib/mesa/src/mesa/main/compute.c b/lib/mesa/src/mesa/main/compute.c index cbd166b10..37a4ba70e 100644 --- a/lib/mesa/src/mesa/main/compute.c +++ b/lib/mesa/src/mesa/main/compute.c @@ -22,339 +22,51 @@ */ #include "glheader.h" -#include "bufferobj.h" #include "compute.h" #include "context.h" -static bool -check_valid_to_compute(struct gl_context *ctx, const char *function) -{ - if (!_mesa_has_compute_shaders(ctx)) { - _mesa_error(ctx, GL_INVALID_OPERATION, - "unsupported function (%s) called", - function); - return false; - } - - /* From the OpenGL 4.3 Core Specification, Chapter 19, Compute Shaders: - * - * "An INVALID_OPERATION error is generated if there is no active program - * for the compute shader stage." - */ - if (ctx->_Shader->CurrentProgram[MESA_SHADER_COMPUTE] == NULL) { - _mesa_error(ctx, GL_INVALID_OPERATION, - "%s(no active compute shader)", - function); - return false; - } - - return true; -} - -static bool -validate_DispatchCompute(struct gl_context *ctx, const GLuint *num_groups) -{ - if (!check_valid_to_compute(ctx, "glDispatchCompute")) - return GL_FALSE; - - for (int i = 0; i < 3; i++) { - /* From the OpenGL 4.3 Core Specification, Chapter 19, Compute Shaders: - * - * "An INVALID_VALUE error is generated if any of num_groups_x, - * num_groups_y and num_groups_z are greater than or equal to the - * maximum work group count for the corresponding dimension." - * - * However, the "or equal to" portions appears to be a specification - * bug. In all other areas, the specification appears to indicate that - * the number of workgroups can match the MAX_COMPUTE_WORK_GROUP_COUNT - * value. For example, under DispatchComputeIndirect: - * - * "If any of num_groups_x, num_groups_y or num_groups_z is greater than - * the value of MAX_COMPUTE_WORK_GROUP_COUNT for the corresponding - * dimension then the results are undefined." - * - * Additionally, the OpenGLES 3.1 specification does not contain "or - * equal to" as an error condition. - */ - if (num_groups[i] > ctx->Const.MaxComputeWorkGroupCount[i]) { - _mesa_error(ctx, GL_INVALID_VALUE, - "glDispatchCompute(num_groups_%c)", 'x' + i); - return GL_FALSE; - } - } - - /* The ARB_compute_variable_group_size spec says: - * - * "An INVALID_OPERATION error is generated by DispatchCompute if the active - * program for the compute shader stage has a variable work group size." - */ - struct gl_program *prog = ctx->_Shader->CurrentProgram[MESA_SHADER_COMPUTE]; - if (prog->info.cs.local_size_variable) { - _mesa_error(ctx, GL_INVALID_OPERATION, - "glDispatchCompute(variable work group size forbidden)"); - return GL_FALSE; - } - - return GL_TRUE; -} - -static bool -validate_DispatchComputeGroupSizeARB(struct gl_context *ctx, - const GLuint *num_groups, - const GLuint *group_size) -{ - GLuint total_invocations = 1; - - if (!check_valid_to_compute(ctx, "glDispatchComputeGroupSizeARB")) - return GL_FALSE; - - /* The ARB_compute_variable_group_size spec says: - * - * "An INVALID_OPERATION error is generated by - * DispatchComputeGroupSizeARB if the active program for the compute - * shader stage has a fixed work group size." - */ - struct gl_program *prog = ctx->_Shader->CurrentProgram[MESA_SHADER_COMPUTE]; - if (!prog->info.cs.local_size_variable) { - _mesa_error(ctx, GL_INVALID_OPERATION, - "glDispatchComputeGroupSizeARB(fixed work group size " - "forbidden)"); - return GL_FALSE; - } - - for (int i = 0; i < 3; i++) { - /* The ARB_compute_variable_group_size spec says: - * - * "An INVALID_VALUE error is generated if any of num_groups_x, - * num_groups_y and num_groups_z are greater than or equal to the - * maximum work group count for the corresponding dimension." - */ - if (num_groups[i] > ctx->Const.MaxComputeWorkGroupCount[i]) { - _mesa_error(ctx, GL_INVALID_VALUE, - "glDispatchComputeGroupSizeARB(num_groups_%c)", 'x' + i); - return GL_FALSE; - } - - /* The ARB_compute_variable_group_size spec says: - * - * "An INVALID_VALUE error is generated by DispatchComputeGroupSizeARB if - * any of <group_size_x>, <group_size_y>, or <group_size_z> is less than - * or equal to zero or greater than the maximum local work group size - * for compute shaders with variable group size - * (MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB) in the corresponding - * dimension." - * - * However, the "less than" is a spec bug because they are declared as - * unsigned integers. - */ - if (group_size[i] == 0 || - group_size[i] > ctx->Const.MaxComputeVariableGroupSize[i]) { - _mesa_error(ctx, GL_INVALID_VALUE, - "glDispatchComputeGroupSizeARB(group_size_%c)", 'x' + i); - return GL_FALSE; - } - - total_invocations *= group_size[i]; - } - - /* The ARB_compute_variable_group_size spec says: - * - * "An INVALID_VALUE error is generated by DispatchComputeGroupSizeARB if - * the product of <group_size_x>, <group_size_y>, and <group_size_z> exceeds - * the implementation-dependent maximum local work group invocation count - * for compute shaders with variable group size - * (MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB)." - */ - if (total_invocations > ctx->Const.MaxComputeVariableGroupInvocations) { - _mesa_error(ctx, GL_INVALID_VALUE, - "glDispatchComputeGroupSizeARB(product of local_sizes " - "exceeds MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB " - "(%d > %d))", total_invocations, - ctx->Const.MaxComputeVariableGroupInvocations); - return GL_FALSE; - } - - return GL_TRUE; -} - -static bool -valid_dispatch_indirect(struct gl_context *ctx, GLintptr indirect) -{ - GLsizei size = 3 * sizeof(GLuint); - const uint64_t end = (uint64_t) indirect + size; - const char *name = "glDispatchComputeIndirect"; - - if (!check_valid_to_compute(ctx, name)) - return GL_FALSE; - - /* From the OpenGL 4.3 Core Specification, Chapter 19, Compute Shaders: - * - * "An INVALID_VALUE error is generated if indirect is negative or is not a - * multiple of four." - */ - if (indirect & (sizeof(GLuint) - 1)) { - _mesa_error(ctx, GL_INVALID_VALUE, - "%s(indirect is not aligned)", name); - return GL_FALSE; - } - - if (indirect < 0) { - _mesa_error(ctx, GL_INVALID_VALUE, - "%s(indirect is less than zero)", name); - return GL_FALSE; - } - - /* From the OpenGL 4.3 Core Specification, Chapter 19, Compute Shaders: - * - * "An INVALID_OPERATION error is generated if no buffer is bound to the - * DRAW_INDIRECT_BUFFER binding, or if the command would source data - * beyond the end of the buffer object." - */ - if (!_mesa_is_bufferobj(ctx->DispatchIndirectBuffer)) { - _mesa_error(ctx, GL_INVALID_OPERATION, - "%s: no buffer bound to DISPATCH_INDIRECT_BUFFER", name); - return GL_FALSE; - } - - if (_mesa_check_disallowed_mapping(ctx->DispatchIndirectBuffer)) { - _mesa_error(ctx, GL_INVALID_OPERATION, - "%s(DISPATCH_INDIRECT_BUFFER is mapped)", name); - return GL_FALSE; - } - - if (ctx->DispatchIndirectBuffer->Size < end) { - _mesa_error(ctx, GL_INVALID_OPERATION, - "%s(DISPATCH_INDIRECT_BUFFER too small)", name); - return GL_FALSE; - } - - /* The ARB_compute_variable_group_size spec says: - * - * "An INVALID_OPERATION error is generated if the active program for the - * compute shader stage has a variable work group size." - */ - struct gl_program *prog = ctx->_Shader->CurrentProgram[MESA_SHADER_COMPUTE]; - if (prog->info.cs.local_size_variable) { - _mesa_error(ctx, GL_INVALID_OPERATION, - "%s(variable work group size forbidden)", name); - return GL_FALSE; - } - - return GL_TRUE; -} - -static ALWAYS_INLINE void -dispatch_compute(GLuint num_groups_x, GLuint num_groups_y, - GLuint num_groups_z, bool no_error) -{ - GET_CURRENT_CONTEXT(ctx); - const GLuint num_groups[3] = { num_groups_x, num_groups_y, num_groups_z }; - - FLUSH_CURRENT(ctx, 0); - - if (MESA_VERBOSE & VERBOSE_API) - _mesa_debug(ctx, "glDispatchCompute(%d, %d, %d)\n", - num_groups_x, num_groups_y, num_groups_z); - - if (!no_error && !validate_DispatchCompute(ctx, num_groups)) - return; - - if (num_groups_x == 0u || num_groups_y == 0u || num_groups_z == 0u) - return; - - ctx->Driver.DispatchCompute(ctx, num_groups); -} - -void GLAPIENTRY -_mesa_DispatchCompute_no_error(GLuint num_groups_x, GLuint num_groups_y, - GLuint num_groups_z) -{ - dispatch_compute(num_groups_x, num_groups_y, num_groups_z, true); -} - void GLAPIENTRY _mesa_DispatchCompute(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z) { - dispatch_compute(num_groups_x, num_groups_y, num_groups_z, false); -} - -static ALWAYS_INLINE void -dispatch_compute_indirect(GLintptr indirect, bool no_error) -{ GET_CURRENT_CONTEXT(ctx); + int i; + struct gl_shader_program *prog; + const GLuint num_groups[3] = { num_groups_x, num_groups_y, num_groups_z }; - FLUSH_CURRENT(ctx, 0); - - if (MESA_VERBOSE & VERBOSE_API) - _mesa_debug(ctx, "glDispatchComputeIndirect(%ld)\n", (long) indirect); - - if (!no_error && !valid_dispatch_indirect(ctx, indirect)) - return; - - ctx->Driver.DispatchComputeIndirect(ctx, indirect); -} - -extern void GLAPIENTRY -_mesa_DispatchComputeIndirect_no_error(GLintptr indirect) -{ - dispatch_compute_indirect(indirect, true); + if (ctx->Extensions.ARB_compute_shader) { + for (i = 0; i < 3; i++) { + if (num_groups[i] > ctx->Const.MaxComputeWorkGroupCount[i]) { + _mesa_error(ctx, GL_INVALID_VALUE, + "glDispatchCompute(num_groups_%c)", 'x' + i); + return; + } + } + if (!_mesa_valid_to_render(ctx, "glDispatchCompute")) + return; + prog = ctx->Shader.CurrentProgram[MESA_SHADER_COMPUTE]; + if (prog == NULL || prog->_LinkedShaders[MESA_SHADER_COMPUTE] == NULL) { + _mesa_error(ctx, GL_INVALID_OPERATION, + "glDispatchCompute(no active compute shader)"); + return; + } + ctx->Driver.DispatchCompute(ctx, num_groups); + } else { + _mesa_error(ctx, GL_INVALID_OPERATION, + "unsupported function (glDispatchCompute) called"); + } } extern void GLAPIENTRY _mesa_DispatchComputeIndirect(GLintptr indirect) { - dispatch_compute_indirect(indirect, false); -} - -static ALWAYS_INLINE void -dispatch_compute_group_size(GLuint num_groups_x, GLuint num_groups_y, - GLuint num_groups_z, GLuint group_size_x, - GLuint group_size_y, GLuint group_size_z, - bool no_error) -{ GET_CURRENT_CONTEXT(ctx); - const GLuint num_groups[3] = { num_groups_x, num_groups_y, num_groups_z }; - const GLuint group_size[3] = { group_size_x, group_size_y, group_size_z }; - - FLUSH_CURRENT(ctx, 0); - - if (MESA_VERBOSE & VERBOSE_API) - _mesa_debug(ctx, - "glDispatchComputeGroupSizeARB(%d, %d, %d, %d, %d, %d)\n", - num_groups_x, num_groups_y, num_groups_z, - group_size_x, group_size_y, group_size_z); - if (!no_error && - !validate_DispatchComputeGroupSizeARB(ctx, num_groups, group_size)) - return; - - if (num_groups_x == 0u || num_groups_y == 0u || num_groups_z == 0u) - return; - - ctx->Driver.DispatchComputeGroupSize(ctx, num_groups, group_size); -} - -void GLAPIENTRY -_mesa_DispatchComputeGroupSizeARB_no_error(GLuint num_groups_x, - GLuint num_groups_y, - GLuint num_groups_z, - GLuint group_size_x, - GLuint group_size_y, - GLuint group_size_z) -{ - dispatch_compute_group_size(num_groups_x, num_groups_y, num_groups_z, - group_size_x, group_size_y, group_size_z, - true); -} - -void GLAPIENTRY -_mesa_DispatchComputeGroupSizeARB(GLuint num_groups_x, GLuint num_groups_y, - GLuint num_groups_z, GLuint group_size_x, - GLuint group_size_y, GLuint group_size_z) -{ - dispatch_compute_group_size(num_groups_x, num_groups_y, num_groups_z, - group_size_x, group_size_y, group_size_z, - false); + if (ctx->Extensions.ARB_compute_shader) { + assert(!"TODO"); + } else { + _mesa_error(ctx, GL_INVALID_OPERATION, + "unsupported function (glDispatchComputeIndirect) called"); + } } diff --git a/lib/mesa/src/mesa/main/compute.h b/lib/mesa/src/mesa/main/compute.h index bfb3223d0..0cc034fd6 100644 --- a/lib/mesa/src/mesa/main/compute.h +++ b/lib/mesa/src/mesa/main/compute.h @@ -28,28 +28,11 @@ #include "glheader.h" extern void GLAPIENTRY -_mesa_DispatchCompute_no_error(GLuint num_groups_x, GLuint num_groups_y, - GLuint num_groups_z); -extern void GLAPIENTRY _mesa_DispatchCompute(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); extern void GLAPIENTRY -_mesa_DispatchComputeIndirect_no_error(GLintptr indirect); -extern void GLAPIENTRY _mesa_DispatchComputeIndirect(GLintptr indirect); -extern void GLAPIENTRY -_mesa_DispatchComputeGroupSizeARB_no_error(GLuint num_groups_x, - GLuint num_groups_y, - GLuint num_groups_z, - GLuint group_size_x, - GLuint group_size_y, - GLuint group_size_z); -extern void GLAPIENTRY -_mesa_DispatchComputeGroupSizeARB(GLuint num_groups_x, GLuint num_groups_y, - GLuint num_groups_z, GLuint group_size_x, - GLuint group_size_y, GLuint group_size_z); - #endif diff --git a/lib/mesa/src/mesa/main/context.h b/lib/mesa/src/mesa/main/context.h index 4f75f5771..0f7529ad9 100644 --- a/lib/mesa/src/mesa/main/context.h +++ b/lib/mesa/src/mesa/main/context.h @@ -50,9 +50,7 @@ #include "imports.h" -#include "extensions.h" #include "mtypes.h" -#include "vbo/vbo.h" #ifdef __cplusplus @@ -113,6 +111,12 @@ _mesa_initialize_context( struct gl_context *ctx, struct gl_context *share_list, const struct dd_function_table *driverFunctions); +extern struct gl_context * +_mesa_create_context(gl_api api, + const struct gl_config *visual, + struct gl_context *share_list, + const struct dd_function_table *driverFunctions); + extern void _mesa_free_context_data( struct gl_context *ctx ); @@ -143,14 +147,18 @@ extern void _mesa_init_constants(struct gl_constants *consts, gl_api api); extern void +_mesa_init_get_hash(struct gl_context *ctx); + +extern void _mesa_notifySwapBuffers(struct gl_context *gc); extern struct _glapi_table * _mesa_get_dispatch(struct gl_context *ctx); -extern void -_mesa_set_context_lost_dispatch(struct gl_context *ctx); + +extern GLboolean +_mesa_valid_to_render(struct gl_context *ctx, const char *where); @@ -162,6 +170,9 @@ _mesa_record_error( struct gl_context *ctx, GLenum error ); extern void +_mesa_finish(struct gl_context *ctx); + +extern void _mesa_flush(struct gl_context *ctx); extern void GLAPIENTRY @@ -216,7 +227,7 @@ do { \ if (MESA_VERBOSE & VERBOSE_STATE) \ _mesa_debug(ctx, "FLUSH_VERTICES in %s\n", MESA_FUNCTION);\ if (ctx->Driver.NeedFlush & FLUSH_STORED_VERTICES) \ - vbo_exec_FlushVertices(ctx, FLUSH_STORED_VERTICES); \ + ctx->Driver.FlushVertices(ctx, FLUSH_STORED_VERTICES); \ ctx->NewState |= newstate; \ } while (0) @@ -235,7 +246,7 @@ do { \ if (MESA_VERBOSE & VERBOSE_STATE) \ _mesa_debug(ctx, "FLUSH_CURRENT in %s\n", MESA_FUNCTION); \ if (ctx->Driver.NeedFlush & FLUSH_UPDATE_CURRENT) \ - vbo_exec_FlushVertices(ctx, FLUSH_UPDATE_CURRENT); \ + ctx->Driver.FlushVertices(ctx, FLUSH_UPDATE_CURRENT); \ ctx->NewState |= newstate; \ } while (0) @@ -312,41 +323,34 @@ _mesa_is_gles31(const struct gl_context *ctx) /** - * Checks if the context is for GLES 3.2 or later + * Checks if the context supports geometry shaders. */ static inline bool -_mesa_is_gles32(const struct gl_context *ctx) -{ - return ctx->API == API_OPENGLES2 && ctx->Version >= 32; -} - - -static inline bool -_mesa_is_no_error_enabled(const struct gl_context *ctx) +_mesa_has_geometry_shaders(const struct gl_context *ctx) { - return ctx->Const.ContextFlags & GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR; + return _mesa_is_desktop_gl(ctx) && + (ctx->Version >= 32 || ctx->Extensions.ARB_geometry_shader4); } /** - * Checks if the context supports geometry shaders. + * Checks if the context supports compute shaders. */ static inline bool -_mesa_has_geometry_shaders(const struct gl_context *ctx) +_mesa_has_compute_shaders(const struct gl_context *ctx) { - return _mesa_has_OES_geometry_shader(ctx) || - (_mesa_is_desktop_gl(ctx) && ctx->Version >= 32); + return (ctx->API == API_OPENGL_CORE && ctx->Extensions.ARB_compute_shader) || + (ctx->API == API_OPENGLES2 && ctx->Version >= 31); } - /** - * Checks if the context supports compute shaders. + * Checks if the context supports shader subroutines. */ static inline bool -_mesa_has_compute_shaders(const struct gl_context *ctx) +_mesa_has_shader_subroutine(const struct gl_context *ctx) { - return _mesa_has_ARB_compute_shader(ctx) || - (ctx->API == API_OPENGLES2 && ctx->Version >= 31); + return ctx->API == API_OPENGL_CORE && + (ctx->Version >= 40 || ctx->Extensions.ARB_shader_subroutine); } /** @@ -355,19 +359,10 @@ _mesa_has_compute_shaders(const struct gl_context *ctx) static inline GLboolean _mesa_has_tessellation(const struct gl_context *ctx) { - /* _mesa_has_EXT_tessellation_shader(ctx) is redundant with the OES - * check, so don't bother calling it. - */ - return _mesa_has_OES_tessellation_shader(ctx) || - _mesa_has_ARB_tessellation_shader(ctx); + return ctx->API == API_OPENGL_CORE && + ctx->Extensions.ARB_tessellation_shader; } -static inline bool -_mesa_has_texture_cube_map_array(const struct gl_context *ctx) -{ - return _mesa_has_ARB_texture_cube_map_array(ctx) || - _mesa_has_OES_texture_cube_map_array(ctx); -} #ifdef __cplusplus } diff --git a/lib/mesa/src/mesa/main/copyimage.c b/lib/mesa/src/mesa/main/copyimage.c index 10777cfdf..669ed6735 100644 --- a/lib/mesa/src/mesa/main/copyimage.c +++ b/lib/mesa/src/mesa/main/copyimage.c @@ -25,7 +25,6 @@ * Jason Ekstrand <jason.ekstrand@intel.com> */ -#include "context.h" #include "glheader.h" #include "errors.h" #include "enums.h" @@ -42,31 +41,25 @@ enum mesa_block_class { }; /** - * Prepare the source or destination resource. This involves error - * checking and returning the relevant gl_texture_image or gl_renderbuffer. - * Note that one of the resulting tex_image or renderbuffer pointers will be - * NULL and the other will be non-null. - * + * Prepare the source or destination resource, including: + * - Error checking + * - Creating texture wrappers for renderbuffers * \param name the texture or renderbuffer name - * \param target One of GL_TEXTURE_x target or GL_RENDERBUFFER + * \param target GL_TEXTURE target or GL_RENDERBUFFER. For the later, will + * be changed to a compatible GL_TEXTURE target. * \param level mipmap level - * \param z src or dest Z - * \param depth number of slices/faces/layers to copy + * \param tex_obj returns a pointer to a texture object * \param tex_image returns a pointer to a texture image - * \param renderbuffer returns a pointer to a renderbuffer + * \param tmp_tex returns temporary texture object name * \return true if success, false if error */ static bool -prepare_target_err(struct gl_context *ctx, GLuint name, GLenum target, - int level, int z, int depth, - struct gl_texture_image **tex_image, - struct gl_renderbuffer **renderbuffer, - mesa_format *format, - GLenum *internalFormat, - GLuint *width, - GLuint *height, - GLuint *num_samples, - const char *dbg_prefix) +prepare_target(struct gl_context *ctx, GLuint name, GLenum *target, int level, + struct gl_texture_object **tex_obj, + struct gl_texture_image **tex_image, GLuint *tmp_tex, + GLuint *width, + GLuint *height, + const char *dbg_prefix) { if (name == 0) { _mesa_error(ctx, GL_INVALID_VALUE, @@ -81,7 +74,7 @@ prepare_target_err(struct gl_context *ctx, GLuint name, GLenum target, * - is TEXTURE_BUFFER, or * - is one of the cubemap face selectors described in table 3.17, */ - switch (target) { + switch (*target) { case GL_RENDERBUFFER: /* Not a texture target, but valid */ case GL_TEXTURE_1D: @@ -102,13 +95,12 @@ prepare_target_err(struct gl_context *ctx, GLuint name, GLenum target, default: _mesa_error(ctx, GL_INVALID_ENUM, "glCopyImageSubData(%sTarget = %s)", dbg_prefix, - _mesa_enum_to_string(target)); + _mesa_enum_to_string(*target)); return false; } - if (target == GL_RENDERBUFFER) { + if (*target == GL_RENDERBUFFER) { struct gl_renderbuffer *rb = _mesa_lookup_renderbuffer(ctx, name); - if (!rb) { _mesa_error(ctx, GL_INVALID_VALUE, "glCopyImageSubData(%sName = %u)", dbg_prefix, name); @@ -127,101 +119,51 @@ prepare_target_err(struct gl_context *ctx, GLuint name, GLenum target, return false; } - *renderbuffer = rb; - *format = rb->Format; - *internalFormat = rb->InternalFormat; + if (rb->NumSamples > 1) + *target = GL_TEXTURE_2D_MULTISAMPLE; + else + *target = GL_TEXTURE_2D; + + *tmp_tex = 0; + _mesa_GenTextures(1, tmp_tex); + if (*tmp_tex == 0) + return false; /* Error already set by GenTextures */ + + _mesa_BindTexture(*target, *tmp_tex); + *tex_obj = _mesa_lookup_texture(ctx, *tmp_tex); + *tex_image = _mesa_get_tex_image(ctx, *tex_obj, *target, 0); *width = rb->Width; *height = rb->Height; - *num_samples = rb->NumSamples; - *tex_image = NULL; + + if (!ctx->Driver.BindRenderbufferTexImage(ctx, rb, *tex_image)) { + _mesa_problem(ctx, "Failed to create texture from renderbuffer"); + return false; + } + + if (ctx->Driver.FinishRenderTexture && !rb->NeedsFinishRenderTexture) { + rb->NeedsFinishRenderTexture = true; + ctx->Driver.FinishRenderTexture(ctx, rb); + } } else { - struct gl_texture_object *texObj = _mesa_lookup_texture(ctx, name); - - if (!texObj) { - /* - * From GL_ARB_copy_image specification: - * "INVALID_VALUE is generated if either <srcName> or <dstName> does - * not correspond to a valid renderbuffer or texture object according - * to the corresponding target parameter." - */ + *tex_obj = _mesa_lookup_texture(ctx, name); + if (!*tex_obj) { _mesa_error(ctx, GL_INVALID_VALUE, "glCopyImageSubData(%sName = %u)", dbg_prefix, name); return false; } - /* The ARB_copy_image specification says: - * - * "INVALID_OPERATION is generated if either object is a texture and - * the texture is not complete (as defined in section 3.9.14)" - * - * The cited section says: - * - * "Using the preceding definitions, a texture is complete unless any - * of the following conditions hold true: [...] - * - * * The minification filter requires a mipmap (is neither NEAREST - * nor LINEAR), and the texture is not mipmap complete." - * - * This imposes the bizarre restriction that glCopyImageSubData requires - * mipmap completion based on the sampler minification filter, even - * though the call fundamentally ignores the sampler. Additionally, it - * doesn't work with texture units, so it can't consider any bound - * separate sampler objects. It appears that you're supposed to use - * the sampler object which is built-in to the texture object. - * - * dEQP and the Android CTS mandate this behavior, and the Khronos - * GL and ES working groups both affirmed that this is unfortunate but - * correct. See https://cvs.khronos.org/bugzilla/show_bug.cgi?id=16224. - * - * Integer textures with filtering cause another completeness snag: - * - * "Any of: - * – The internal format of the texture is integer (see table 8.12). - * – The internal format is STENCIL_INDEX. - * – The internal format is DEPTH_STENCIL, and the value of - * DEPTH_STENCIL_TEXTURE_MODE for the texture is STENCIL_INDEX. - * and either the magnification filter is not NEAREST, or the - * minification filter is neither NEAREST nor - * NEAREST_MIPMAP_NEAREST." - * - * However, applications in the wild (such as "Total War: WARHAMMER") - * appear to call glCopyImageSubData with integer textures and the - * default mipmap filters of GL_LINEAR and GL_NEAREST_MIPMAP_LINEAR, - * which would be considered incomplete, but expect this to work. In - * fact, until VK-GL-CTS commit fef80039ff875a51806b54d151c5f2d0c12da, - * the GL 4.5 CTS contained three tests which did the exact same thing - * by accident, and all conformant implementations allowed it. - * - * A proposal was made to amend the spec to say "is not complete (as - * defined in section <X>, but ignoring format-based completeness - * rules)" to allow this case. It makes some sense, given that - * glCopyImageSubData copies raw data without considering format. - * While the official edits have not yet been made, the OpenGL - * working group agreed with the idea of allowing this behavior. - * - * To ignore formats, we check texObj->_MipmapComplete directly - * rather than calling _mesa_is_texture_complete(). - */ - _mesa_test_texobj_completeness(ctx, texObj); - const bool texture_complete_aside_from_formats = - _mesa_is_mipmap_filter(&texObj->Sampler) ? texObj->_MipmapComplete - : texObj->_BaseComplete; - if (!texture_complete_aside_from_formats) { + _mesa_test_texobj_completeness(ctx, *tex_obj); + if (!(*tex_obj)->_BaseComplete || + (level != 0 && !(*tex_obj)->_MipmapComplete)) { _mesa_error(ctx, GL_INVALID_OPERATION, "glCopyImageSubData(%sName incomplete)", dbg_prefix); return false; } - /* Note that target will not be a cube face name */ - if (texObj->Target != target) { - /* - * From GL_ARB_copy_image_specification: - * "INVALID_ENUM is generated if the target does not match the type - * of the object." - */ + if ((*tex_obj)->Target != *target) { _mesa_error(ctx, GL_INVALID_ENUM, "glCopyImageSubData(%sTarget = %s)", dbg_prefix, - _mesa_enum_to_string(target)); + _mesa_enum_to_string(*target)); return false; } @@ -231,68 +173,20 @@ prepare_target_err(struct gl_context *ctx, GLuint name, GLenum target, return false; } - if (target == GL_TEXTURE_CUBE_MAP) { - int i; - - assert(z < MAX_FACES); /* should have been caught earlier */ - - /* make sure all the cube faces are present */ - for (i = 0; i < depth; i++) { - if (!texObj->Image[z+i][level]) { - /* missing cube face */ - _mesa_error(ctx, GL_INVALID_VALUE, - "glCopyImageSubData(missing cube face)"); - return false; - } - } - - *tex_image = texObj->Image[z][level]; - } - else { - *tex_image = _mesa_select_tex_image(texObj, target, level); - } - + *tex_image = _mesa_select_tex_image(*tex_obj, *target, level); if (!*tex_image) { _mesa_error(ctx, GL_INVALID_VALUE, "glCopyImageSubData(%sLevel = %u)", dbg_prefix, level); return false; } - *renderbuffer = NULL; - *format = (*tex_image)->TexFormat; - *internalFormat = (*tex_image)->InternalFormat; *width = (*tex_image)->Width; *height = (*tex_image)->Height; - *num_samples = (*tex_image)->NumSamples; } return true; } -static void -prepare_target(struct gl_context *ctx, GLuint name, GLenum target, - int level, int z, - struct gl_texture_image **texImage, - struct gl_renderbuffer **renderbuffer) -{ - if (target == GL_RENDERBUFFER) { - struct gl_renderbuffer *rb = _mesa_lookup_renderbuffer(ctx, name); - - *renderbuffer = rb; - *texImage = NULL; - } else { - struct gl_texture_object *texObj = _mesa_lookup_texture(ctx, name); - - if (target == GL_TEXTURE_CUBE_MAP) { - *texImage = texObj->Image[z][level]; - } - else { - *texImage = _mesa_select_tex_image(texObj, target, level); - } - - *renderbuffer = NULL; - } -} /** * Check that the x,y,z,width,height,region is within the texture image @@ -301,14 +195,10 @@ prepare_target(struct gl_context *ctx, GLuint name, GLenum target, */ static bool check_region_bounds(struct gl_context *ctx, - GLenum target, const struct gl_texture_image *tex_image, - const struct gl_renderbuffer *renderbuffer, int x, int y, int z, int width, int height, int depth, const char *dbg_prefix) { - int surfWidth, surfHeight, surfDepth; - if (width < 0 || height < 0 || depth < 0) { _mesa_error(ctx, GL_INVALID_VALUE, "glCopyImageSubData(%sWidth, %sHeight, or %sDepth is negative)", @@ -324,14 +214,7 @@ check_region_bounds(struct gl_context *ctx, } /* Check X direction */ - if (target == GL_RENDERBUFFER) { - surfWidth = renderbuffer->Width; - } - else { - surfWidth = tex_image->Width; - } - - if (x + width > surfWidth) { + if (x + width > tex_image->Width) { _mesa_error(ctx, GL_INVALID_VALUE, "glCopyImageSubData(%sX or %sWidth exceeds image bounds)", dbg_prefix, dbg_prefix); @@ -339,49 +222,66 @@ check_region_bounds(struct gl_context *ctx, } /* Check Y direction */ - switch (target) { - case GL_RENDERBUFFER: - surfHeight = renderbuffer->Height; - break; + switch (tex_image->TexObject->Target) { case GL_TEXTURE_1D: case GL_TEXTURE_1D_ARRAY: - surfHeight = 1; + if (y != 0 || height != 1) { + _mesa_error(ctx, GL_INVALID_VALUE, + "glCopyImageSubData(%sY or %sHeight exceeds image bounds)", + dbg_prefix, dbg_prefix); + return false; + } break; default: - surfHeight = tex_image->Height; - } - - if (y + height > surfHeight) { - _mesa_error(ctx, GL_INVALID_VALUE, - "glCopyImageSubData(%sY or %sHeight exceeds image bounds)", - dbg_prefix, dbg_prefix); - return false; + if (y + height > tex_image->Height) { + _mesa_error(ctx, GL_INVALID_VALUE, + "glCopyImageSubData(%sY or %sHeight exceeds image bounds)", + dbg_prefix, dbg_prefix); + return false; + } + break; } /* Check Z direction */ - switch (target) { - case GL_RENDERBUFFER: + switch (tex_image->TexObject->Target) { case GL_TEXTURE_1D: case GL_TEXTURE_2D: case GL_TEXTURE_2D_MULTISAMPLE: case GL_TEXTURE_RECTANGLE: - surfDepth = 1; + if (z != 0 || depth != 1) { + _mesa_error(ctx, GL_INVALID_VALUE, + "glCopyImageSubData(%sZ or %sDepth exceeds image bounds)", + dbg_prefix, dbg_prefix); + return false; + } break; case GL_TEXTURE_CUBE_MAP: - surfDepth = 6; + if (z < 0 || z + depth > 6) { + _mesa_error(ctx, GL_INVALID_VALUE, + "glCopyImageSubData(%sZ or %sDepth exceeds image bounds)", + dbg_prefix, dbg_prefix); + return false; + } break; case GL_TEXTURE_1D_ARRAY: - surfDepth = tex_image->Height; + if (z < 0 || z + depth > tex_image->Height) { + _mesa_error(ctx, GL_INVALID_VALUE, + "glCopyImageSubData(%sZ or %sDepth exceeds image bounds)", + dbg_prefix, dbg_prefix); + return false; + } + break; + case GL_TEXTURE_CUBE_MAP_ARRAY: + case GL_TEXTURE_2D_ARRAY: + case GL_TEXTURE_2D_MULTISAMPLE_ARRAY: + case GL_TEXTURE_3D: + if (z < 0 || z + depth > tex_image->Depth) { + _mesa_error(ctx, GL_INVALID_VALUE, + "glCopyImageSubData(%sZ or %sDepth exceeds image bounds)", + dbg_prefix, dbg_prefix); + return false; + } break; - default: - surfDepth = tex_image->Depth; - } - - if (z < 0 || z + depth > surfDepth) { - _mesa_error(ctx, GL_INVALID_VALUE, - "glCopyImageSubData(%sZ or %sDepth exceeds image bounds)", - dbg_prefix, dbg_prefix); - return false; } return true; @@ -448,32 +348,8 @@ compressed_format_compatible(const struct gl_context *ctx, case GL_COMPRESSED_SIGNED_RED_RGTC1: compressedClass = BLOCK_CLASS_64_BITS; break; - case GL_COMPRESSED_RGBA8_ETC2_EAC: - case GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: - case GL_COMPRESSED_RG11_EAC: - case GL_COMPRESSED_SIGNED_RG11_EAC: - if (_mesa_is_gles(ctx)) - compressedClass = BLOCK_CLASS_128_BITS; - else - return false; - break; - case GL_COMPRESSED_RGB8_ETC2: - case GL_COMPRESSED_SRGB8_ETC2: - case GL_COMPRESSED_R11_EAC: - case GL_COMPRESSED_SIGNED_R11_EAC: - case GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: - case GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: - if (_mesa_is_gles(ctx)) - compressedClass = BLOCK_CLASS_64_BITS; - else - return false; - break; default: - if (_mesa_is_gles(ctx) && _mesa_is_astc_format(compressedFormat)) - compressedClass = BLOCK_CLASS_128_BITS; - else - return false; - break; + return false; } switch (otherFormat) { @@ -529,71 +405,6 @@ copy_format_compatible(const struct gl_context *ctx, return false; } -static void -copy_image_subdata(struct gl_context *ctx, - struct gl_texture_image *srcTexImage, - struct gl_renderbuffer *srcRenderbuffer, - int srcX, int srcY, int srcZ, int srcLevel, - struct gl_texture_image *dstTexImage, - struct gl_renderbuffer *dstRenderbuffer, - int dstX, int dstY, int dstZ, int dstLevel, - int srcWidth, int srcHeight, int srcDepth) -{ - /* loop over 2D slices/faces/layers */ - for (int i = 0; i < srcDepth; ++i) { - int newSrcZ = srcZ + i; - int newDstZ = dstZ + i; - - if (srcTexImage && - srcTexImage->TexObject->Target == GL_TEXTURE_CUBE_MAP) { - /* need to update srcTexImage pointer for the cube face */ - assert(srcZ + i < MAX_FACES); - srcTexImage = srcTexImage->TexObject->Image[srcZ + i][srcLevel]; - assert(srcTexImage); - newSrcZ = 0; - } - - if (dstTexImage && - dstTexImage->TexObject->Target == GL_TEXTURE_CUBE_MAP) { - /* need to update dstTexImage pointer for the cube face */ - assert(dstZ + i < MAX_FACES); - dstTexImage = dstTexImage->TexObject->Image[dstZ + i][dstLevel]; - assert(dstTexImage); - newDstZ = 0; - } - - ctx->Driver.CopyImageSubData(ctx, - srcTexImage, srcRenderbuffer, - srcX, srcY, newSrcZ, - dstTexImage, dstRenderbuffer, - dstX, dstY, newDstZ, - srcWidth, srcHeight); - } -} - -void GLAPIENTRY -_mesa_CopyImageSubData_no_error(GLuint srcName, GLenum srcTarget, GLint srcLevel, - GLint srcX, GLint srcY, GLint srcZ, - GLuint dstName, GLenum dstTarget, GLint dstLevel, - GLint dstX, GLint dstY, GLint dstZ, - GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth) -{ - struct gl_texture_image *srcTexImage, *dstTexImage; - struct gl_renderbuffer *srcRenderbuffer, *dstRenderbuffer; - - GET_CURRENT_CONTEXT(ctx); - - prepare_target(ctx, srcName, srcTarget, srcLevel, srcZ, &srcTexImage, - &srcRenderbuffer); - - prepare_target(ctx, dstName, dstTarget, dstLevel, dstZ, &dstTexImage, - &dstRenderbuffer); - - copy_image_subdata(ctx, srcTexImage, srcRenderbuffer, srcX, srcY, srcZ, - srcLevel, dstTexImage, dstRenderbuffer, dstX, dstY, dstZ, - dstLevel, srcWidth, srcHeight, srcDepth); -} - void GLAPIENTRY _mesa_CopyImageSubData(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, @@ -602,14 +413,12 @@ _mesa_CopyImageSubData(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth) { GET_CURRENT_CONTEXT(ctx); + GLuint tmpTexNames[2] = { 0, 0 }; + struct gl_texture_object *srcTexObj, *dstTexObj; struct gl_texture_image *srcTexImage, *dstTexImage; - struct gl_renderbuffer *srcRenderbuffer, *dstRenderbuffer; - mesa_format srcFormat, dstFormat; - GLenum srcIntFormat, dstIntFormat; GLuint src_w, src_h, dst_w, dst_h; GLuint src_bw, src_bh, dst_bw, dst_bh; - GLuint src_num_samples, dst_num_samples; - int dstWidth, dstHeight, dstDepth; + int i; if (MESA_VERBOSE & VERBOSE_API) _mesa_debug(ctx, "glCopyImageSubData(%u, %s, %d, %d, %d, %d, " @@ -619,7 +428,7 @@ _mesa_CopyImageSubData(GLuint srcName, GLenum srcTarget, GLint srcLevel, srcX, srcY, srcZ, dstName, _mesa_enum_to_string(dstTarget), dstLevel, dstX, dstY, dstZ, - srcWidth, srcHeight, srcDepth); + srcWidth, srcHeight, srcWidth); if (!ctx->Extensions.ARB_copy_image) { _mesa_error(ctx, GL_INVALID_OPERATION, @@ -627,19 +436,17 @@ _mesa_CopyImageSubData(GLuint srcName, GLenum srcTarget, GLint srcLevel, return; } - if (!prepare_target_err(ctx, srcName, srcTarget, srcLevel, srcZ, srcDepth, - &srcTexImage, &srcRenderbuffer, &srcFormat, - &srcIntFormat, &src_w, &src_h, &src_num_samples, - "src")) - return; + if (!prepare_target(ctx, srcName, &srcTarget, srcLevel, + &srcTexObj, &srcTexImage, &tmpTexNames[0], + &src_w, &src_h, "src")) + goto cleanup; - if (!prepare_target_err(ctx, dstName, dstTarget, dstLevel, dstZ, srcDepth, - &dstTexImage, &dstRenderbuffer, &dstFormat, - &dstIntFormat, &dst_w, &dst_h, &dst_num_samples, - "dst")) - return; + if (!prepare_target(ctx, dstName, &dstTarget, dstLevel, + &dstTexObj, &dstTexImage, &tmpTexNames[1], + &dst_w, &dst_h, "dst")) + goto cleanup; - _mesa_get_format_block_size(srcFormat, &src_bw, &src_bh); + _mesa_get_format_block_size(srcTexImage->TexFormat, &src_bw, &src_bh); /* Section 18.3.2 (Copying Between Images) of the OpenGL 4.5 Core Profile * spec says: @@ -668,64 +475,54 @@ _mesa_CopyImageSubData(GLuint srcName, GLenum srcTarget, GLint srcLevel, (srcHeight % src_bh != 0 && (srcY + srcHeight) != src_h)) { _mesa_error(ctx, GL_INVALID_VALUE, "glCopyImageSubData(unaligned src rectangle)"); - return; + goto cleanup; } - _mesa_get_format_block_size(dstFormat, &dst_bw, &dst_bh); + _mesa_get_format_block_size(dstTexImage->TexFormat, &dst_bw, &dst_bh); if ((dstX % dst_bw != 0) || (dstY % dst_bh != 0)) { _mesa_error(ctx, GL_INVALID_VALUE, "glCopyImageSubData(unaligned dst rectangle)"); - return; + goto cleanup; } - /* From the GL_ARB_copy_image spec: - * - * "The dimensions are always specified in texels, even for compressed - * texture formats. But it should be noted that if only one of the - * source and destination textures is compressed then the number of - * texels touched in the compressed image will be a factor of the - * block size larger than in the uncompressed image." - * - * So, if copying from compressed to uncompressed, the dest region is - * shrunk by the src block size factor. If copying from uncompressed - * to compressed, the dest region is grown by the dest block size factor. - * Note that we're passed the _source_ width, height, depth and those - * dimensions are never changed. - */ - dstWidth = srcWidth * dst_bw / src_bw; - dstHeight = srcHeight * dst_bh / src_bh; - dstDepth = srcDepth; - - if (!check_region_bounds(ctx, srcTarget, srcTexImage, srcRenderbuffer, - srcX, srcY, srcZ, srcWidth, srcHeight, srcDepth, - "src")) - return; + if (!check_region_bounds(ctx, srcTexImage, srcX, srcY, srcZ, + srcWidth, srcHeight, srcDepth, "src")) + goto cleanup; - if (!check_region_bounds(ctx, dstTarget, dstTexImage, dstRenderbuffer, - dstX, dstY, dstZ, dstWidth, dstHeight, dstDepth, - "dst")) - return; + if (!check_region_bounds(ctx, dstTexImage, dstX, dstY, dstZ, + (srcWidth / src_bw) * dst_bw, + (srcHeight / src_bh) * dst_bh, srcDepth, "dst")) + goto cleanup; - /* Section 18.3.2 (Copying Between Images) of the OpenGL 4.5 Core Profile - * spec says: - * - * An INVALID_OPERATION error is generated if either object is a texture - * and the texture is not complete, if the source and destination internal - * formats are not compatible, or if the number of samples do not match. - */ - if (!copy_format_compatible(ctx, srcIntFormat, dstIntFormat)) { + if (!copy_format_compatible(ctx, srcTexImage->InternalFormat, + dstTexImage->InternalFormat)) { _mesa_error(ctx, GL_INVALID_OPERATION, "glCopyImageSubData(internalFormat mismatch)"); - return; + goto cleanup; } - if (src_num_samples != dst_num_samples) { - _mesa_error(ctx, GL_INVALID_OPERATION, - "glCopyImageSubData(number of samples mismatch)"); - return; + for (i = 0; i < srcDepth; ++i) { + int srcNewZ, dstNewZ; + + if (srcTexObj->Target == GL_TEXTURE_CUBE_MAP) { + srcTexImage = srcTexObj->Image[i + srcZ][srcLevel]; + srcNewZ = 0; + } else { + srcNewZ = srcZ + i; + } + + if (dstTexObj->Target == GL_TEXTURE_CUBE_MAP) { + dstTexImage = dstTexObj->Image[i + dstZ][dstLevel]; + dstNewZ = 0; + } else { + dstNewZ = dstZ + i; + } + + ctx->Driver.CopyImageSubData(ctx, srcTexImage, srcX, srcY, srcNewZ, + dstTexImage, dstX, dstY, dstNewZ, + srcWidth, srcHeight); } - copy_image_subdata(ctx, srcTexImage, srcRenderbuffer, srcX, srcY, srcZ, - srcLevel, dstTexImage, dstRenderbuffer, dstX, dstY, dstZ, - dstLevel, srcWidth, srcHeight, srcDepth); +cleanup: + _mesa_DeleteTextures(2, tmpTexNames); } diff --git a/lib/mesa/src/mesa/main/copyimage.h b/lib/mesa/src/mesa/main/copyimage.h index ea2f15b43..40e95b663 100644 --- a/lib/mesa/src/mesa/main/copyimage.h +++ b/lib/mesa/src/mesa/main/copyimage.h @@ -35,13 +35,6 @@ extern "C" { #endif -void GLAPIENTRY -_mesa_CopyImageSubData_no_error(GLuint srcName, GLenum srcTarget, GLint srcLevel, - GLint srcX, GLint srcY, GLint srcZ, - GLuint destName, GLenum destTarget, GLint destLevel, - GLint destX, GLint destY, GLint destZ, - GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); - extern void GLAPIENTRY _mesa_CopyImageSubData(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, diff --git a/lib/mesa/src/mesa/main/depth.c b/lib/mesa/src/mesa/main/depth.c index 930f5e816..c35344075 100644 --- a/lib/mesa/src/mesa/main/depth.c +++ b/lib/mesa/src/mesa/main/depth.c @@ -57,55 +57,37 @@ _mesa_ClearDepthf( GLclampf depth ) } -static ALWAYS_INLINE void -depth_func(struct gl_context *ctx, GLenum func, bool no_error) +void GLAPIENTRY +_mesa_DepthFunc( GLenum func ) { + GET_CURRENT_CONTEXT(ctx); + + if (MESA_VERBOSE & VERBOSE_API) + _mesa_debug(ctx, "glDepthFunc %s\n", _mesa_enum_to_string(func)); + if (ctx->Depth.Func == func) return; - if (!no_error) { - switch (func) { - case GL_LESS: /* (default) pass if incoming z < stored z */ - case GL_GEQUAL: - case GL_LEQUAL: - case GL_GREATER: - case GL_NOTEQUAL: - case GL_EQUAL: - case GL_ALWAYS: - case GL_NEVER: - break; - default: - _mesa_error(ctx, GL_INVALID_ENUM, "glDepth.Func"); - return; - } + switch (func) { + case GL_LESS: /* (default) pass if incoming z < stored z */ + case GL_GEQUAL: + case GL_LEQUAL: + case GL_GREATER: + case GL_NOTEQUAL: + case GL_EQUAL: + case GL_ALWAYS: + case GL_NEVER: + break; + default: + _mesa_error( ctx, GL_INVALID_ENUM, "glDepth.Func" ); + return; } - FLUSH_VERTICES(ctx, ctx->DriverFlags.NewDepth ? 0 : _NEW_DEPTH); - ctx->NewDriverState |= ctx->DriverFlags.NewDepth; + FLUSH_VERTICES(ctx, _NEW_DEPTH); ctx->Depth.Func = func; if (ctx->Driver.DepthFunc) - ctx->Driver.DepthFunc(ctx, func); -} - - -void GLAPIENTRY -_mesa_DepthFunc_no_error(GLenum func) -{ - GET_CURRENT_CONTEXT(ctx); - depth_func(ctx, func, true); -} - - -void GLAPIENTRY -_mesa_DepthFunc(GLenum func) -{ - GET_CURRENT_CONTEXT(ctx); - - if (MESA_VERBOSE & VERBOSE_API) - _mesa_debug(ctx, "glDepthFunc %s\n", _mesa_enum_to_string(func)); - - depth_func(ctx, func, false); + ctx->Driver.DepthFunc( ctx, func ); } @@ -125,8 +107,7 @@ _mesa_DepthMask( GLboolean flag ) if (ctx->Depth.Mask == flag) return; - FLUSH_VERTICES(ctx, ctx->DriverFlags.NewDepth ? 0 : _NEW_DEPTH); - ctx->NewDriverState |= ctx->DriverFlags.NewDepth; + FLUSH_VERTICES(ctx, _NEW_DEPTH); ctx->Depth.Mask = flag; if (ctx->Driver.DepthMask) @@ -157,8 +138,7 @@ _mesa_DepthBoundsEXT( GLclampd zmin, GLclampd zmax ) if (ctx->Depth.BoundsMin == zmin && ctx->Depth.BoundsMax == zmax) return; - FLUSH_VERTICES(ctx, ctx->DriverFlags.NewDepth ? 0 : _NEW_DEPTH); - ctx->NewDriverState |= ctx->DriverFlags.NewDepth; + FLUSH_VERTICES(ctx, _NEW_DEPTH); ctx->Depth.BoundsMin = (GLfloat) zmin; ctx->Depth.BoundsMax = (GLfloat) zmax; } diff --git a/lib/mesa/src/mesa/main/depth.h b/lib/mesa/src/mesa/main/depth.h index 478249f15..5ff7a5e9e 100644 --- a/lib/mesa/src/mesa/main/depth.h +++ b/lib/mesa/src/mesa/main/depth.h @@ -43,11 +43,8 @@ _mesa_ClearDepth( GLclampd depth ); extern void GLAPIENTRY _mesa_ClearDepthf( GLclampf depth ); -void GLAPIENTRY -_mesa_DepthFunc_no_error(GLenum func); - extern void GLAPIENTRY -_mesa_DepthFunc(GLenum func); +_mesa_DepthFunc( GLenum func ); extern void GLAPIENTRY _mesa_DepthMask( GLboolean flag ); diff --git a/lib/mesa/src/mesa/main/enums.c b/lib/mesa/src/mesa/main/enums.c index 839678f5d..3b266b6cc 100644 --- a/lib/mesa/src/mesa/main/enums.c +++ b/lib/mesa/src/mesa/main/enums.c @@ -3,18 +3,18 @@ /* * Copyright (C) 1999-2005 Brian Paul All Rights Reserved. * All Rights Reserved. - * + * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sub license, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: - * + * * The above copyright notice and this permission notice (including the next * paragraph) shall be included in all copies or substantial portions of the * Software. - * + * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL @@ -31,7 +31,7 @@ #include "main/mtypes.h" typedef struct PACKED { - uint32_t offset; + uint16_t offset; int n; } enum_elt; @@ -41,7319 +41,4315 @@ typedef struct PACKED { # define LONGSTRING #endif -LONGSTRING static const char enum_string_table[] = { - 'G', 'L', '_', 'N', 'O', '_', 'E', 'R', 'R', 'O', 'R', '\0', - 'G', 'L', '_', 'T', 'R', 'U', 'E', '\0', - 'G', 'L', '_', 'L', 'I', 'N', 'E', '_', 'L', 'O', 'O', 'P', '\0', - 'G', 'L', '_', 'L', 'I', 'N', 'E', '_', 'S', 'T', 'R', 'I', 'P', '\0', - 'G', 'L', '_', 'T', 'R', 'I', 'A', 'N', 'G', 'L', 'E', 'S', '\0', - 'G', 'L', '_', 'T', 'R', 'I', 'A', 'N', 'G', 'L', 'E', '_', 'S', 'T', 'R', 'I', 'P', '\0', - 'G', 'L', '_', 'T', 'R', 'I', 'A', 'N', 'G', 'L', 'E', '_', 'F', 'A', 'N', '\0', - 'G', 'L', '_', 'Q', 'U', 'A', 'D', 'S', '\0', - 'G', 'L', '_', 'Q', 'U', 'A', 'D', '_', 'S', 'T', 'R', 'I', 'P', '\0', - 'G', 'L', '_', 'P', 'O', 'L', 'Y', 'G', 'O', 'N', '\0', - 'G', 'L', '_', 'L', 'I', 'N', 'E', 'S', '_', 'A', 'D', 'J', 'A', 'C', 'E', 'N', 'C', 'Y', '\0', - 'G', 'L', '_', 'L', 'I', 'N', 'E', '_', 'S', 'T', 'R', 'I', 'P', '_', 'A', 'D', 'J', 'A', 'C', 'E', 'N', 'C', 'Y', '\0', - 'G', 'L', '_', 'T', 'R', 'I', 'A', 'N', 'G', 'L', 'E', 'S', '_', 'A', 'D', 'J', 'A', 'C', 'E', 'N', 'C', 'Y', '\0', - 'G', 'L', '_', 'T', 'R', 'I', 'A', 'N', 'G', 'L', 'E', '_', 'S', 'T', 'R', 'I', 'P', '_', 'A', 'D', 'J', 'A', 'C', 'E', 'N', 'C', 'Y', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'C', 'H', 'E', 'S', '\0', - 'G', 'L', '_', 'A', 'L', 'P', 'H', 'A', '_', 'R', 'E', 'F', '_', 'C', 'O', 'M', 'M', 'A', 'N', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', 'P', 'O', 'R', 'T', '_', 'C', 'O', 'M', 'M', 'A', 'N', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'C', 'I', 'S', 'S', 'O', 'R', '_', 'C', 'O', 'M', 'M', 'A', 'N', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'R', 'O', 'N', 'T', '_', 'F', 'A', 'C', 'E', '_', 'C', 'O', 'M', 'M', 'A', 'N', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'R', 'E', 'L', 'A', 'T', 'I', 'V', 'E', '_', 'S', 'M', 'A', 'L', 'L', '_', 'C', 'C', 'W', '_', 'A', 'R', 'C', '_', 'T', 'O', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'M', 'A', 'L', 'L', '_', 'C', 'W', '_', 'A', 'R', 'C', '_', 'T', 'O', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'R', 'E', 'L', 'A', 'T', 'I', 'V', 'E', '_', 'S', 'M', 'A', 'L', 'L', '_', 'C', 'W', '_', 'A', 'R', 'C', '_', 'T', 'O', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'U', 'U', 'I', 'D', '_', 'S', 'I', 'Z', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'R', 'E', 'L', 'A', 'T', 'I', 'V', 'E', '_', 'L', 'A', 'R', 'G', 'E', '_', 'C', 'C', 'W', '_', 'A', 'R', 'C', '_', 'T', 'O', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'L', 'A', 'R', 'G', 'E', '_', 'C', 'W', '_', 'A', 'R', 'C', '_', 'T', 'O', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'R', 'E', 'L', 'A', 'T', 'I', 'V', 'E', '_', 'L', 'A', 'R', 'G', 'E', '_', 'C', 'W', '_', 'A', 'R', 'C', '_', 'T', 'O', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'I', 'C', '_', 'C', 'U', 'R', 'V', 'E', '_', 'T', 'O', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'R', 'E', 'L', 'A', 'T', 'I', 'V', 'E', '_', 'C', 'O', 'N', 'I', 'C', '_', 'C', 'U', 'R', 'V', 'E', '_', 'T', 'O', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'H', 'A', 'R', 'E', 'D', '_', 'E', 'D', 'G', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'R', 'O', 'U', 'N', 'D', 'E', 'D', '_', 'R', 'E', 'C', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'R', 'E', 'L', 'A', 'T', 'I', 'V', 'E', '_', 'R', 'O', 'U', 'N', 'D', 'E', 'D', '_', 'R', 'E', 'C', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'R', 'O', 'U', 'N', 'D', 'E', 'D', '_', 'R', 'E', 'C', 'T', '2', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'R', 'E', 'L', 'A', 'T', 'I', 'V', 'E', '_', 'R', 'O', 'U', 'N', 'D', 'E', 'D', '_', 'R', 'E', 'C', 'T', '2', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'R', 'O', 'U', 'N', 'D', 'E', 'D', '_', 'R', 'E', 'C', 'T', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'R', 'E', 'L', 'A', 'T', 'I', 'V', 'E', '_', 'R', 'O', 'U', 'N', 'D', 'E', 'D', '_', 'R', 'E', 'C', 'T', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'R', 'O', 'U', 'N', 'D', 'E', 'D', '_', 'R', 'E', 'C', 'T', '8', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'R', 'E', 'L', 'A', 'T', 'I', 'V', 'E', '_', 'R', 'O', 'U', 'N', 'D', 'E', 'D', '_', 'R', 'E', 'C', 'T', '8', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'R', 'E', 'S', 'T', 'A', 'R', 'T', '_', 'P', 'A', 'T', 'H', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'U', 'P', '_', 'F', 'I', 'R', 'S', 'T', '_', 'C', 'U', 'B', 'I', 'C', '_', 'C', 'U', 'R', 'V', 'E', '_', 'T', 'O', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'U', 'P', '_', 'L', 'A', 'S', 'T', '_', 'C', 'U', 'B', 'I', 'C', '_', 'C', 'U', 'R', 'V', 'E', '_', 'T', 'O', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'R', 'E', 'C', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'R', 'E', 'L', 'A', 'T', 'I', 'V', 'E', '_', 'R', 'E', 'C', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'I', 'R', 'C', 'U', 'L', 'A', 'R', '_', 'C', 'C', 'W', '_', 'A', 'R', 'C', '_', 'T', 'O', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'I', 'R', 'C', 'U', 'L', 'A', 'R', '_', 'C', 'W', '_', 'A', 'R', 'C', '_', 'T', 'O', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'I', 'R', 'C', 'U', 'L', 'A', 'R', '_', 'T', 'A', 'N', 'G', 'E', 'N', 'T', '_', 'A', 'R', 'C', '_', 'T', 'O', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'A', 'R', 'C', '_', 'T', 'O', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'R', 'E', 'L', 'A', 'T', 'I', 'V', 'E', '_', 'A', 'R', 'C', '_', 'T', 'O', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'A', 'C', 'C', 'U', 'M', '\0', - 'G', 'L', '_', 'L', 'O', 'A', 'D', '\0', - 'G', 'L', '_', 'R', 'E', 'T', 'U', 'R', 'N', '\0', - 'G', 'L', '_', 'M', 'U', 'L', 'T', '\0', - 'G', 'L', '_', 'A', 'D', 'D', '\0', - 'G', 'L', '_', 'N', 'E', 'V', 'E', 'R', '\0', - 'G', 'L', '_', 'L', 'E', 'S', 'S', '\0', - 'G', 'L', '_', 'E', 'Q', 'U', 'A', 'L', '\0', - 'G', 'L', '_', 'L', 'E', 'Q', 'U', 'A', 'L', '\0', - 'G', 'L', '_', 'G', 'R', 'E', 'A', 'T', 'E', 'R', '\0', - 'G', 'L', '_', 'N', 'O', 'T', 'E', 'Q', 'U', 'A', 'L', '\0', - 'G', 'L', '_', 'G', 'E', 'Q', 'U', 'A', 'L', '\0', - 'G', 'L', '_', 'A', 'L', 'W', 'A', 'Y', 'S', '\0', - 'G', 'L', '_', 'S', 'R', 'C', '_', 'C', 'O', 'L', 'O', 'R', '\0', - 'G', 'L', '_', 'O', 'N', 'E', '_', 'M', 'I', 'N', 'U', 'S', '_', 'S', 'R', 'C', '_', 'C', 'O', 'L', 'O', 'R', '\0', - 'G', 'L', '_', 'S', 'R', 'C', '_', 'A', 'L', 'P', 'H', 'A', '\0', - 'G', 'L', '_', 'O', 'N', 'E', '_', 'M', 'I', 'N', 'U', 'S', '_', 'S', 'R', 'C', '_', 'A', 'L', 'P', 'H', 'A', '\0', - 'G', 'L', '_', 'D', 'S', 'T', '_', 'A', 'L', 'P', 'H', 'A', '\0', - 'G', 'L', '_', 'O', 'N', 'E', '_', 'M', 'I', 'N', 'U', 'S', '_', 'D', 'S', 'T', '_', 'A', 'L', 'P', 'H', 'A', '\0', - 'G', 'L', '_', 'D', 'S', 'T', '_', 'C', 'O', 'L', 'O', 'R', '\0', - 'G', 'L', '_', 'O', 'N', 'E', '_', 'M', 'I', 'N', 'U', 'S', '_', 'D', 'S', 'T', '_', 'C', 'O', 'L', 'O', 'R', '\0', - 'G', 'L', '_', 'S', 'R', 'C', '_', 'A', 'L', 'P', 'H', 'A', '_', 'S', 'A', 'T', 'U', 'R', 'A', 'T', 'E', '\0', - 'G', 'L', '_', 'F', 'R', 'O', 'N', 'T', '_', 'L', 'E', 'F', 'T', '\0', - 'G', 'L', '_', 'F', 'R', 'O', 'N', 'T', '_', 'R', 'I', 'G', 'H', 'T', '\0', - 'G', 'L', '_', 'B', 'A', 'C', 'K', '_', 'L', 'E', 'F', 'T', '\0', - 'G', 'L', '_', 'B', 'A', 'C', 'K', '_', 'R', 'I', 'G', 'H', 'T', '\0', - 'G', 'L', '_', 'F', 'R', 'O', 'N', 'T', '\0', - 'G', 'L', '_', 'B', 'A', 'C', 'K', '\0', - 'G', 'L', '_', 'L', 'E', 'F', 'T', '\0', - 'G', 'L', '_', 'R', 'I', 'G', 'H', 'T', '\0', - 'G', 'L', '_', 'F', 'R', 'O', 'N', 'T', '_', 'A', 'N', 'D', '_', 'B', 'A', 'C', 'K', '\0', - 'G', 'L', '_', 'A', 'U', 'X', '0', '\0', - 'G', 'L', '_', 'A', 'U', 'X', '1', '\0', - 'G', 'L', '_', 'A', 'U', 'X', '2', '\0', - 'G', 'L', '_', 'A', 'U', 'X', '3', '\0', - 'G', 'L', '_', 'I', 'N', 'V', 'A', 'L', 'I', 'D', '_', 'E', 'N', 'U', 'M', '\0', - 'G', 'L', '_', 'I', 'N', 'V', 'A', 'L', 'I', 'D', '_', 'V', 'A', 'L', 'U', 'E', '\0', - 'G', 'L', '_', 'I', 'N', 'V', 'A', 'L', 'I', 'D', '_', 'O', 'P', 'E', 'R', 'A', 'T', 'I', 'O', 'N', '\0', - 'G', 'L', '_', 'S', 'T', 'A', 'C', 'K', '_', 'O', 'V', 'E', 'R', 'F', 'L', 'O', 'W', '\0', - 'G', 'L', '_', 'S', 'T', 'A', 'C', 'K', '_', 'U', 'N', 'D', 'E', 'R', 'F', 'L', 'O', 'W', '\0', - 'G', 'L', '_', 'O', 'U', 'T', '_', 'O', 'F', '_', 'M', 'E', 'M', 'O', 'R', 'Y', '\0', - 'G', 'L', '_', 'I', 'N', 'V', 'A', 'L', 'I', 'D', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'O', 'P', 'E', 'R', 'A', 'T', 'I', 'O', 'N', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'T', 'E', 'X', 'T', '_', 'L', 'O', 'S', 'T', '\0', - 'G', 'L', '_', '2', 'D', '\0', - 'G', 'L', '_', '3', 'D', '\0', - 'G', 'L', '_', '3', 'D', '_', 'C', 'O', 'L', 'O', 'R', '\0', - 'G', 'L', '_', '3', 'D', '_', 'C', 'O', 'L', 'O', 'R', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '\0', - 'G', 'L', '_', '4', 'D', '_', 'C', 'O', 'L', 'O', 'R', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '\0', - 'G', 'L', '_', 'P', 'A', 'S', 'S', '_', 'T', 'H', 'R', 'O', 'U', 'G', 'H', '_', 'T', 'O', 'K', 'E', 'N', '\0', - 'G', 'L', '_', 'P', 'O', 'I', 'N', 'T', '_', 'T', 'O', 'K', 'E', 'N', '\0', - 'G', 'L', '_', 'L', 'I', 'N', 'E', '_', 'T', 'O', 'K', 'E', 'N', '\0', - 'G', 'L', '_', 'P', 'O', 'L', 'Y', 'G', 'O', 'N', '_', 'T', 'O', 'K', 'E', 'N', '\0', - 'G', 'L', '_', 'B', 'I', 'T', 'M', 'A', 'P', '_', 'T', 'O', 'K', 'E', 'N', '\0', - 'G', 'L', '_', 'D', 'R', 'A', 'W', '_', 'P', 'I', 'X', 'E', 'L', '_', 'T', 'O', 'K', 'E', 'N', '\0', - 'G', 'L', '_', 'C', 'O', 'P', 'Y', '_', 'P', 'I', 'X', 'E', 'L', '_', 'T', 'O', 'K', 'E', 'N', '\0', - 'G', 'L', '_', 'L', 'I', 'N', 'E', '_', 'R', 'E', 'S', 'E', 'T', '_', 'T', 'O', 'K', 'E', 'N', '\0', - 'G', 'L', '_', 'E', 'X', 'P', '\0', - 'G', 'L', '_', 'E', 'X', 'P', '2', '\0', - 'G', 'L', '_', 'C', 'W', '\0', - 'G', 'L', '_', 'C', 'C', 'W', '\0', - 'G', 'L', '_', 'C', 'O', 'E', 'F', 'F', '\0', - 'G', 'L', '_', 'O', 'R', 'D', 'E', 'R', '\0', - 'G', 'L', '_', 'D', 'O', 'M', 'A', 'I', 'N', '\0', - 'G', 'L', '_', 'C', 'U', 'R', 'R', 'E', 'N', 'T', '_', 'C', 'O', 'L', 'O', 'R', '\0', - 'G', 'L', '_', 'C', 'U', 'R', 'R', 'E', 'N', 'T', '_', 'I', 'N', 'D', 'E', 'X', '\0', - 'G', 'L', '_', 'C', 'U', 'R', 'R', 'E', 'N', 'T', '_', 'N', 'O', 'R', 'M', 'A', 'L', '\0', - 'G', 'L', '_', 'C', 'U', 'R', 'R', 'E', 'N', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', 'S', '\0', - 'G', 'L', '_', 'C', 'U', 'R', 'R', 'E', 'N', 'T', '_', 'R', 'A', 'S', 'T', 'E', 'R', '_', 'C', 'O', 'L', 'O', 'R', '\0', - 'G', 'L', '_', 'C', 'U', 'R', 'R', 'E', 'N', 'T', '_', 'R', 'A', 'S', 'T', 'E', 'R', '_', 'I', 'N', 'D', 'E', 'X', '\0', - 'G', 'L', '_', 'C', 'U', 'R', 'R', 'E', 'N', 'T', '_', 'R', 'A', 'S', 'T', 'E', 'R', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', 'S', '\0', - 'G', 'L', '_', 'C', 'U', 'R', 'R', 'E', 'N', 'T', '_', 'R', 'A', 'S', 'T', 'E', 'R', '_', 'P', 'O', 'S', 'I', 'T', 'I', 'O', 'N', '\0', - 'G', 'L', '_', 'C', 'U', 'R', 'R', 'E', 'N', 'T', '_', 'R', 'A', 'S', 'T', 'E', 'R', '_', 'P', 'O', 'S', 'I', 'T', 'I', 'O', 'N', '_', 'V', 'A', 'L', 'I', 'D', '\0', - 'G', 'L', '_', 'C', 'U', 'R', 'R', 'E', 'N', 'T', '_', 'R', 'A', 'S', 'T', 'E', 'R', '_', 'D', 'I', 'S', 'T', 'A', 'N', 'C', 'E', '\0', - 'G', 'L', '_', 'P', 'O', 'I', 'N', 'T', '_', 'S', 'M', 'O', 'O', 'T', 'H', '\0', - 'G', 'L', '_', 'P', 'O', 'I', 'N', 'T', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'S', 'M', 'O', 'O', 'T', 'H', '_', 'P', 'O', 'I', 'N', 'T', '_', 'S', 'I', 'Z', 'E', '_', 'R', 'A', 'N', 'G', 'E', '\0', - 'G', 'L', '_', 'S', 'M', 'O', 'O', 'T', 'H', '_', 'P', 'O', 'I', 'N', 'T', '_', 'S', 'I', 'Z', 'E', '_', 'G', 'R', 'A', 'N', 'U', 'L', 'A', 'R', 'I', 'T', 'Y', '\0', - 'G', 'L', '_', 'L', 'I', 'N', 'E', '_', 'S', 'M', 'O', 'O', 'T', 'H', '\0', - 'G', 'L', '_', 'L', 'I', 'N', 'E', '_', 'W', 'I', 'D', 'T', 'H', '\0', - 'G', 'L', '_', 'S', 'M', 'O', 'O', 'T', 'H', '_', 'L', 'I', 'N', 'E', '_', 'W', 'I', 'D', 'T', 'H', '_', 'R', 'A', 'N', 'G', 'E', '\0', - 'G', 'L', '_', 'S', 'M', 'O', 'O', 'T', 'H', '_', 'L', 'I', 'N', 'E', '_', 'W', 'I', 'D', 'T', 'H', '_', 'G', 'R', 'A', 'N', 'U', 'L', 'A', 'R', 'I', 'T', 'Y', '\0', - 'G', 'L', '_', 'L', 'I', 'N', 'E', '_', 'S', 'T', 'I', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'L', 'I', 'N', 'E', '_', 'S', 'T', 'I', 'P', 'P', 'L', 'E', '_', 'P', 'A', 'T', 'T', 'E', 'R', 'N', '\0', - 'G', 'L', '_', 'L', 'I', 'N', 'E', '_', 'S', 'T', 'I', 'P', 'P', 'L', 'E', '_', 'R', 'E', 'P', 'E', 'A', 'T', '\0', - 'G', 'L', '_', 'L', 'I', 'S', 'T', '_', 'M', 'O', 'D', 'E', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'L', 'I', 'S', 'T', '_', 'N', 'E', 'S', 'T', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'L', 'I', 'S', 'T', '_', 'B', 'A', 'S', 'E', '\0', - 'G', 'L', '_', 'L', 'I', 'S', 'T', '_', 'I', 'N', 'D', 'E', 'X', '\0', - 'G', 'L', '_', 'P', 'O', 'L', 'Y', 'G', 'O', 'N', '_', 'M', 'O', 'D', 'E', '\0', - 'G', 'L', '_', 'P', 'O', 'L', 'Y', 'G', 'O', 'N', '_', 'S', 'M', 'O', 'O', 'T', 'H', '\0', - 'G', 'L', '_', 'P', 'O', 'L', 'Y', 'G', 'O', 'N', '_', 'S', 'T', 'I', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'E', 'D', 'G', 'E', '_', 'F', 'L', 'A', 'G', '\0', - 'G', 'L', '_', 'C', 'U', 'L', 'L', '_', 'F', 'A', 'C', 'E', '\0', - 'G', 'L', '_', 'C', 'U', 'L', 'L', '_', 'F', 'A', 'C', 'E', '_', 'M', 'O', 'D', 'E', '\0', - 'G', 'L', '_', 'F', 'R', 'O', 'N', 'T', '_', 'F', 'A', 'C', 'E', '\0', - 'G', 'L', '_', 'L', 'I', 'G', 'H', 'T', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'L', 'I', 'G', 'H', 'T', '_', 'M', 'O', 'D', 'E', 'L', '_', 'L', 'O', 'C', 'A', 'L', '_', 'V', 'I', 'E', 'W', 'E', 'R', '\0', - 'G', 'L', '_', 'L', 'I', 'G', 'H', 'T', '_', 'M', 'O', 'D', 'E', 'L', '_', 'T', 'W', 'O', '_', 'S', 'I', 'D', 'E', '\0', - 'G', 'L', '_', 'L', 'I', 'G', 'H', 'T', '_', 'M', 'O', 'D', 'E', 'L', '_', 'A', 'M', 'B', 'I', 'E', 'N', 'T', '\0', - 'G', 'L', '_', 'S', 'H', 'A', 'D', 'E', '_', 'M', 'O', 'D', 'E', 'L', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'M', 'A', 'T', 'E', 'R', 'I', 'A', 'L', '_', 'F', 'A', 'C', 'E', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'M', 'A', 'T', 'E', 'R', 'I', 'A', 'L', '_', 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'M', 'A', 'T', 'E', 'R', 'I', 'A', 'L', '\0', - 'G', 'L', '_', 'F', 'O', 'G', '\0', - 'G', 'L', '_', 'F', 'O', 'G', '_', 'I', 'N', 'D', 'E', 'X', '\0', - 'G', 'L', '_', 'F', 'O', 'G', '_', 'D', 'E', 'N', 'S', 'I', 'T', 'Y', '\0', - 'G', 'L', '_', 'F', 'O', 'G', '_', 'S', 'T', 'A', 'R', 'T', '\0', - 'G', 'L', '_', 'F', 'O', 'G', '_', 'E', 'N', 'D', '\0', - 'G', 'L', '_', 'F', 'O', 'G', '_', 'M', 'O', 'D', 'E', '\0', - 'G', 'L', '_', 'F', 'O', 'G', '_', 'C', 'O', 'L', 'O', 'R', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'R', 'A', 'N', 'G', 'E', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'T', 'E', 'S', 'T', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'W', 'R', 'I', 'T', 'E', 'M', 'A', 'S', 'K', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'C', 'L', 'E', 'A', 'R', '_', 'V', 'A', 'L', 'U', 'E', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'F', 'U', 'N', 'C', '\0', - 'G', 'L', '_', 'A', 'C', 'C', 'U', 'M', '_', 'C', 'L', 'E', 'A', 'R', '_', 'V', 'A', 'L', 'U', 'E', '\0', - 'G', 'L', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'T', 'E', 'S', 'T', '\0', - 'G', 'L', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'C', 'L', 'E', 'A', 'R', '_', 'V', 'A', 'L', 'U', 'E', '\0', - 'G', 'L', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'F', 'U', 'N', 'C', '\0', - 'G', 'L', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'V', 'A', 'L', 'U', 'E', '_', 'M', 'A', 'S', 'K', '\0', - 'G', 'L', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'F', 'A', 'I', 'L', '\0', - 'G', 'L', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'P', 'A', 'S', 'S', '_', 'D', 'E', 'P', 'T', 'H', '_', 'F', 'A', 'I', 'L', '\0', - 'G', 'L', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'P', 'A', 'S', 'S', '_', 'D', 'E', 'P', 'T', 'H', '_', 'P', 'A', 'S', 'S', '\0', - 'G', 'L', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'R', 'E', 'F', '\0', - 'G', 'L', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'W', 'R', 'I', 'T', 'E', 'M', 'A', 'S', 'K', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'M', 'O', 'D', 'E', '\0', - 'G', 'L', '_', 'N', 'O', 'R', 'M', 'A', 'L', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', 'P', 'O', 'R', 'T', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '_', 'S', 'T', 'A', 'C', 'K', '_', 'D', 'E', 'P', 'T', 'H', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'J', 'E', 'C', 'T', 'I', 'O', 'N', '_', 'S', 'T', 'A', 'C', 'K', '_', 'D', 'E', 'P', 'T', 'H', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'S', 'T', 'A', 'C', 'K', '_', 'D', 'E', 'P', 'T', 'H', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '_', 'M', 'A', 'T', 'R', 'I', 'X', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'J', 'E', 'C', 'T', 'I', 'O', 'N', '_', 'M', 'A', 'T', 'R', 'I', 'X', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'M', 'A', 'T', 'R', 'I', 'X', '\0', - 'G', 'L', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'S', 'T', 'A', 'C', 'K', '_', 'D', 'E', 'P', 'T', 'H', '\0', - 'G', 'L', '_', 'C', 'L', 'I', 'E', 'N', 'T', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'S', 'T', 'A', 'C', 'K', '_', 'D', 'E', 'P', 'T', 'H', '\0', - 'G', 'L', '_', 'A', 'L', 'P', 'H', 'A', '_', 'T', 'E', 'S', 'T', '\0', - 'G', 'L', '_', 'A', 'L', 'P', 'H', 'A', '_', 'T', 'E', 'S', 'T', '_', 'F', 'U', 'N', 'C', '\0', - 'G', 'L', '_', 'A', 'L', 'P', 'H', 'A', '_', 'T', 'E', 'S', 'T', '_', 'R', 'E', 'F', '\0', - 'G', 'L', '_', 'D', 'I', 'T', 'H', 'E', 'R', '\0', - 'G', 'L', '_', 'B', 'L', 'E', 'N', 'D', '_', 'D', 'S', 'T', '\0', - 'G', 'L', '_', 'B', 'L', 'E', 'N', 'D', '_', 'S', 'R', 'C', '\0', - 'G', 'L', '_', 'B', 'L', 'E', 'N', 'D', '\0', - 'G', 'L', '_', 'L', 'O', 'G', 'I', 'C', '_', 'O', 'P', '_', 'M', 'O', 'D', 'E', '\0', - 'G', 'L', '_', 'I', 'N', 'D', 'E', 'X', '_', 'L', 'O', 'G', 'I', 'C', '_', 'O', 'P', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'L', 'O', 'G', 'I', 'C', '_', 'O', 'P', '\0', - 'G', 'L', '_', 'A', 'U', 'X', '_', 'B', 'U', 'F', 'F', 'E', 'R', 'S', '\0', - 'G', 'L', '_', 'D', 'R', 'A', 'W', '_', 'B', 'U', 'F', 'F', 'E', 'R', '\0', - 'G', 'L', '_', 'R', 'E', 'A', 'D', '_', 'B', 'U', 'F', 'F', 'E', 'R', '\0', - 'G', 'L', '_', 'S', 'C', 'I', 'S', 'S', 'O', 'R', '_', 'B', 'O', 'X', '\0', - 'G', 'L', '_', 'S', 'C', 'I', 'S', 'S', 'O', 'R', '_', 'T', 'E', 'S', 'T', '\0', - 'G', 'L', '_', 'I', 'N', 'D', 'E', 'X', '_', 'C', 'L', 'E', 'A', 'R', '_', 'V', 'A', 'L', 'U', 'E', '\0', - 'G', 'L', '_', 'I', 'N', 'D', 'E', 'X', '_', 'W', 'R', 'I', 'T', 'E', 'M', 'A', 'S', 'K', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'C', 'L', 'E', 'A', 'R', '_', 'V', 'A', 'L', 'U', 'E', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'W', 'R', 'I', 'T', 'E', 'M', 'A', 'S', 'K', '\0', - 'G', 'L', '_', 'I', 'N', 'D', 'E', 'X', '_', 'M', 'O', 'D', 'E', '\0', - 'G', 'L', '_', 'R', 'G', 'B', 'A', '_', 'M', 'O', 'D', 'E', '\0', - 'G', 'L', '_', 'D', 'O', 'U', 'B', 'L', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '\0', - 'G', 'L', '_', 'S', 'T', 'E', 'R', 'E', 'O', '\0', - 'G', 'L', '_', 'R', 'E', 'N', 'D', 'E', 'R', '_', 'M', 'O', 'D', 'E', '\0', - 'G', 'L', '_', 'P', 'E', 'R', 'S', 'P', 'E', 'C', 'T', 'I', 'V', 'E', '_', 'C', 'O', 'R', 'R', 'E', 'C', 'T', 'I', 'O', 'N', '_', 'H', 'I', 'N', 'T', '\0', - 'G', 'L', '_', 'P', 'O', 'I', 'N', 'T', '_', 'S', 'M', 'O', 'O', 'T', 'H', '_', 'H', 'I', 'N', 'T', '\0', - 'G', 'L', '_', 'L', 'I', 'N', 'E', '_', 'S', 'M', 'O', 'O', 'T', 'H', '_', 'H', 'I', 'N', 'T', '\0', - 'G', 'L', '_', 'P', 'O', 'L', 'Y', 'G', 'O', 'N', '_', 'S', 'M', 'O', 'O', 'T', 'H', '_', 'H', 'I', 'N', 'T', '\0', - 'G', 'L', '_', 'F', 'O', 'G', '_', 'H', 'I', 'N', 'T', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'G', 'E', 'N', '_', 'S', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'G', 'E', 'N', '_', 'T', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'G', 'E', 'N', '_', 'R', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'G', 'E', 'N', '_', 'Q', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'M', 'A', 'P', '_', 'I', '_', 'T', 'O', '_', 'I', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'M', 'A', 'P', '_', 'S', '_', 'T', 'O', '_', 'S', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'M', 'A', 'P', '_', 'I', '_', 'T', 'O', '_', 'R', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'M', 'A', 'P', '_', 'I', '_', 'T', 'O', '_', 'G', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'M', 'A', 'P', '_', 'I', '_', 'T', 'O', '_', 'B', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'M', 'A', 'P', '_', 'I', '_', 'T', 'O', '_', 'A', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'M', 'A', 'P', '_', 'R', '_', 'T', 'O', '_', 'R', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'M', 'A', 'P', '_', 'G', '_', 'T', 'O', '_', 'G', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'M', 'A', 'P', '_', 'B', '_', 'T', 'O', '_', 'B', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'M', 'A', 'P', '_', 'A', '_', 'T', 'O', '_', 'A', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'M', 'A', 'P', '_', 'I', '_', 'T', 'O', '_', 'I', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'M', 'A', 'P', '_', 'S', '_', 'T', 'O', '_', 'S', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'M', 'A', 'P', '_', 'I', '_', 'T', 'O', '_', 'R', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'M', 'A', 'P', '_', 'I', '_', 'T', 'O', '_', 'G', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'M', 'A', 'P', '_', 'I', '_', 'T', 'O', '_', 'B', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'M', 'A', 'P', '_', 'I', '_', 'T', 'O', '_', 'A', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'M', 'A', 'P', '_', 'R', '_', 'T', 'O', '_', 'R', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'M', 'A', 'P', '_', 'G', '_', 'T', 'O', '_', 'G', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'M', 'A', 'P', '_', 'B', '_', 'T', 'O', '_', 'B', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'M', 'A', 'P', '_', 'A', '_', 'T', 'O', '_', 'A', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'U', 'N', 'P', 'A', 'C', 'K', '_', 'S', 'W', 'A', 'P', '_', 'B', 'Y', 'T', 'E', 'S', '\0', - 'G', 'L', '_', 'U', 'N', 'P', 'A', 'C', 'K', '_', 'L', 'S', 'B', '_', 'F', 'I', 'R', 'S', 'T', '\0', - 'G', 'L', '_', 'U', 'N', 'P', 'A', 'C', 'K', '_', 'R', 'O', 'W', '_', 'L', 'E', 'N', 'G', 'T', 'H', '\0', - 'G', 'L', '_', 'U', 'N', 'P', 'A', 'C', 'K', '_', 'S', 'K', 'I', 'P', '_', 'R', 'O', 'W', 'S', '\0', - 'G', 'L', '_', 'U', 'N', 'P', 'A', 'C', 'K', '_', 'S', 'K', 'I', 'P', '_', 'P', 'I', 'X', 'E', 'L', 'S', '\0', - 'G', 'L', '_', 'U', 'N', 'P', 'A', 'C', 'K', '_', 'A', 'L', 'I', 'G', 'N', 'M', 'E', 'N', 'T', '\0', - 'G', 'L', '_', 'P', 'A', 'C', 'K', '_', 'S', 'W', 'A', 'P', '_', 'B', 'Y', 'T', 'E', 'S', '\0', - 'G', 'L', '_', 'P', 'A', 'C', 'K', '_', 'L', 'S', 'B', '_', 'F', 'I', 'R', 'S', 'T', '\0', - 'G', 'L', '_', 'P', 'A', 'C', 'K', '_', 'R', 'O', 'W', '_', 'L', 'E', 'N', 'G', 'T', 'H', '\0', - 'G', 'L', '_', 'P', 'A', 'C', 'K', '_', 'S', 'K', 'I', 'P', '_', 'R', 'O', 'W', 'S', '\0', - 'G', 'L', '_', 'P', 'A', 'C', 'K', '_', 'S', 'K', 'I', 'P', '_', 'P', 'I', 'X', 'E', 'L', 'S', '\0', - 'G', 'L', '_', 'P', 'A', 'C', 'K', '_', 'A', 'L', 'I', 'G', 'N', 'M', 'E', 'N', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '_', 'C', 'O', 'L', 'O', 'R', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '\0', - 'G', 'L', '_', 'I', 'N', 'D', 'E', 'X', '_', 'S', 'H', 'I', 'F', 'T', '\0', - 'G', 'L', '_', 'I', 'N', 'D', 'E', 'X', '_', 'O', 'F', 'F', 'S', 'E', 'T', '\0', - 'G', 'L', '_', 'R', 'E', 'D', '_', 'S', 'C', 'A', 'L', 'E', '\0', - 'G', 'L', '_', 'R', 'E', 'D', '_', 'B', 'I', 'A', 'S', '\0', - 'G', 'L', '_', 'Z', 'O', 'O', 'M', '_', 'X', '\0', - 'G', 'L', '_', 'Z', 'O', 'O', 'M', '_', 'Y', '\0', - 'G', 'L', '_', 'G', 'R', 'E', 'E', 'N', '_', 'S', 'C', 'A', 'L', 'E', '\0', - 'G', 'L', '_', 'G', 'R', 'E', 'E', 'N', '_', 'B', 'I', 'A', 'S', '\0', - 'G', 'L', '_', 'B', 'L', 'U', 'E', '_', 'S', 'C', 'A', 'L', 'E', '\0', - 'G', 'L', '_', 'B', 'L', 'U', 'E', '_', 'B', 'I', 'A', 'S', '\0', - 'G', 'L', '_', 'A', 'L', 'P', 'H', 'A', '_', 'S', 'C', 'A', 'L', 'E', '\0', - 'G', 'L', '_', 'A', 'L', 'P', 'H', 'A', '_', 'B', 'I', 'A', 'S', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'S', 'C', 'A', 'L', 'E', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'B', 'I', 'A', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'E', 'V', 'A', 'L', '_', 'O', 'R', 'D', 'E', 'R', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'L', 'I', 'G', 'H', 'T', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'L', 'I', 'P', '_', 'D', 'I', 'S', 'T', 'A', 'N', 'C', 'E', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'I', 'X', 'E', 'L', '_', 'M', 'A', 'P', '_', 'T', 'A', 'B', 'L', 'E', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'S', 'T', 'A', 'C', 'K', '_', 'D', 'E', 'P', 'T', 'H', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '_', 'S', 'T', 'A', 'C', 'K', '_', 'D', 'E', 'P', 'T', 'H', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'N', 'A', 'M', 'E', '_', 'S', 'T', 'A', 'C', 'K', '_', 'D', 'E', 'P', 'T', 'H', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'J', 'E', 'C', 'T', 'I', 'O', 'N', '_', 'S', 'T', 'A', 'C', 'K', '_', 'D', 'E', 'P', 'T', 'H', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'S', 'T', 'A', 'C', 'K', '_', 'D', 'E', 'P', 'T', 'H', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'V', 'I', 'E', 'W', 'P', 'O', 'R', 'T', '_', 'D', 'I', 'M', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'L', 'I', 'E', 'N', 'T', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'S', 'T', 'A', 'C', 'K', '_', 'D', 'E', 'P', 'T', 'H', '\0', - 'G', 'L', '_', 'S', 'U', 'B', 'P', 'I', 'X', 'E', 'L', '_', 'B', 'I', 'T', 'S', '\0', - 'G', 'L', '_', 'I', 'N', 'D', 'E', 'X', '_', 'B', 'I', 'T', 'S', '\0', - 'G', 'L', '_', 'R', 'E', 'D', '_', 'B', 'I', 'T', 'S', '\0', - 'G', 'L', '_', 'G', 'R', 'E', 'E', 'N', '_', 'B', 'I', 'T', 'S', '\0', - 'G', 'L', '_', 'B', 'L', 'U', 'E', '_', 'B', 'I', 'T', 'S', '\0', - 'G', 'L', '_', 'A', 'L', 'P', 'H', 'A', '_', 'B', 'I', 'T', 'S', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'B', 'I', 'T', 'S', '\0', - 'G', 'L', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'B', 'I', 'T', 'S', '\0', - 'G', 'L', '_', 'A', 'C', 'C', 'U', 'M', '_', 'R', 'E', 'D', '_', 'B', 'I', 'T', 'S', '\0', - 'G', 'L', '_', 'A', 'C', 'C', 'U', 'M', '_', 'G', 'R', 'E', 'E', 'N', '_', 'B', 'I', 'T', 'S', '\0', - 'G', 'L', '_', 'A', 'C', 'C', 'U', 'M', '_', 'B', 'L', 'U', 'E', '_', 'B', 'I', 'T', 'S', '\0', - 'G', 'L', '_', 'A', 'C', 'C', 'U', 'M', '_', 'A', 'L', 'P', 'H', 'A', '_', 'B', 'I', 'T', 'S', '\0', - 'G', 'L', '_', 'N', 'A', 'M', 'E', '_', 'S', 'T', 'A', 'C', 'K', '_', 'D', 'E', 'P', 'T', 'H', '\0', - 'G', 'L', '_', 'A', 'U', 'T', 'O', '_', 'N', 'O', 'R', 'M', 'A', 'L', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '1', '_', 'C', 'O', 'L', 'O', 'R', '_', '4', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '1', '_', 'I', 'N', 'D', 'E', 'X', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '1', '_', 'N', 'O', 'R', 'M', 'A', 'L', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '1', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '_', '1', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '1', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '_', '2', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '1', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '_', '3', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '1', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '_', '4', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '1', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', '3', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '1', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', '4', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '2', '_', 'C', 'O', 'L', 'O', 'R', '_', '4', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '2', '_', 'I', 'N', 'D', 'E', 'X', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '2', '_', 'N', 'O', 'R', 'M', 'A', 'L', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '2', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '_', '1', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '2', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '_', '2', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '2', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '_', '3', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '2', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '_', '4', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '2', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', '3', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '2', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', '4', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '1', '_', 'G', 'R', 'I', 'D', '_', 'D', 'O', 'M', 'A', 'I', 'N', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '1', '_', 'G', 'R', 'I', 'D', '_', 'S', 'E', 'G', 'M', 'E', 'N', 'T', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '2', '_', 'G', 'R', 'I', 'D', '_', 'D', 'O', 'M', 'A', 'I', 'N', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '2', '_', 'G', 'R', 'I', 'D', '_', 'S', 'E', 'G', 'M', 'E', 'N', 'T', 'S', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '1', 'D', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '2', 'D', '\0', - 'G', 'L', '_', 'F', 'E', 'E', 'D', 'B', 'A', 'C', 'K', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'P', 'O', 'I', 'N', 'T', 'E', 'R', '\0', - 'G', 'L', '_', 'F', 'E', 'E', 'D', 'B', 'A', 'C', 'K', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'F', 'E', 'E', 'D', 'B', 'A', 'C', 'K', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'S', 'E', 'L', 'E', 'C', 'T', 'I', 'O', 'N', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'P', 'O', 'I', 'N', 'T', 'E', 'R', '\0', - 'G', 'L', '_', 'S', 'E', 'L', 'E', 'C', 'T', 'I', 'O', 'N', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'W', 'I', 'D', 'T', 'H', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'H', 'E', 'I', 'G', 'H', 'T', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'I', 'N', 'T', 'E', 'R', 'N', 'A', 'L', '_', 'F', 'O', 'R', 'M', 'A', 'T', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'B', 'O', 'R', 'D', 'E', 'R', '_', 'C', 'O', 'L', 'O', 'R', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'B', 'O', 'R', 'D', 'E', 'R', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'T', 'A', 'R', 'G', 'E', 'T', '\0', - 'G', 'L', '_', 'D', 'O', 'N', 'T', '_', 'C', 'A', 'R', 'E', '\0', - 'G', 'L', '_', 'F', 'A', 'S', 'T', 'E', 'S', 'T', '\0', - 'G', 'L', '_', 'N', 'I', 'C', 'E', 'S', 'T', '\0', - 'G', 'L', '_', 'A', 'M', 'B', 'I', 'E', 'N', 'T', '\0', - 'G', 'L', '_', 'D', 'I', 'F', 'F', 'U', 'S', 'E', '\0', - 'G', 'L', '_', 'S', 'P', 'E', 'C', 'U', 'L', 'A', 'R', '\0', - 'G', 'L', '_', 'P', 'O', 'S', 'I', 'T', 'I', 'O', 'N', '\0', - 'G', 'L', '_', 'S', 'P', 'O', 'T', '_', 'D', 'I', 'R', 'E', 'C', 'T', 'I', 'O', 'N', '\0', - 'G', 'L', '_', 'S', 'P', 'O', 'T', '_', 'E', 'X', 'P', 'O', 'N', 'E', 'N', 'T', '\0', - 'G', 'L', '_', 'S', 'P', 'O', 'T', '_', 'C', 'U', 'T', 'O', 'F', 'F', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'S', 'T', 'A', 'N', 'T', '_', 'A', 'T', 'T', 'E', 'N', 'U', 'A', 'T', 'I', 'O', 'N', '\0', - 'G', 'L', '_', 'L', 'I', 'N', 'E', 'A', 'R', '_', 'A', 'T', 'T', 'E', 'N', 'U', 'A', 'T', 'I', 'O', 'N', '\0', - 'G', 'L', '_', 'Q', 'U', 'A', 'D', 'R', 'A', 'T', 'I', 'C', '_', 'A', 'T', 'T', 'E', 'N', 'U', 'A', 'T', 'I', 'O', 'N', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'I', 'L', 'E', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'I', 'L', 'E', '_', 'A', 'N', 'D', '_', 'E', 'X', 'E', 'C', 'U', 'T', 'E', '\0', - 'G', 'L', '_', 'B', 'Y', 'T', 'E', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'B', 'Y', 'T', 'E', '\0', - 'G', 'L', '_', 'S', 'H', 'O', 'R', 'T', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'S', 'H', 'O', 'R', 'T', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '\0', - 'G', 'L', '_', '2', '_', 'B', 'Y', 'T', 'E', 'S', '\0', - 'G', 'L', '_', '3', '_', 'B', 'Y', 'T', 'E', 'S', '\0', - 'G', 'L', '_', '4', '_', 'B', 'Y', 'T', 'E', 'S', '\0', - 'G', 'L', '_', 'D', 'O', 'U', 'B', 'L', 'E', '\0', - 'G', 'L', '_', 'H', 'A', 'L', 'F', '_', 'F', 'L', 'O', 'A', 'T', '\0', - 'G', 'L', '_', 'F', 'I', 'X', 'E', 'D', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '6', '4', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '6', '4', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'C', 'L', 'E', 'A', 'R', '\0', - 'G', 'L', '_', 'A', 'N', 'D', '\0', - 'G', 'L', '_', 'A', 'N', 'D', '_', 'R', 'E', 'V', 'E', 'R', 'S', 'E', '\0', - 'G', 'L', '_', 'C', 'O', 'P', 'Y', '\0', - 'G', 'L', '_', 'A', 'N', 'D', '_', 'I', 'N', 'V', 'E', 'R', 'T', 'E', 'D', '\0', - 'G', 'L', '_', 'N', 'O', 'O', 'P', '\0', - 'G', 'L', '_', 'X', 'O', 'R', '\0', - 'G', 'L', '_', 'O', 'R', '\0', - 'G', 'L', '_', 'N', 'O', 'R', '\0', - 'G', 'L', '_', 'E', 'Q', 'U', 'I', 'V', '\0', - 'G', 'L', '_', 'I', 'N', 'V', 'E', 'R', 'T', '\0', - 'G', 'L', '_', 'O', 'R', '_', 'R', 'E', 'V', 'E', 'R', 'S', 'E', '\0', - 'G', 'L', '_', 'C', 'O', 'P', 'Y', '_', 'I', 'N', 'V', 'E', 'R', 'T', 'E', 'D', '\0', - 'G', 'L', '_', 'O', 'R', '_', 'I', 'N', 'V', 'E', 'R', 'T', 'E', 'D', '\0', - 'G', 'L', '_', 'N', 'A', 'N', 'D', '\0', - 'G', 'L', '_', 'S', 'E', 'T', '\0', - 'G', 'L', '_', 'E', 'M', 'I', 'S', 'S', 'I', 'O', 'N', '\0', - 'G', 'L', '_', 'S', 'H', 'I', 'N', 'I', 'N', 'E', 'S', 'S', '\0', - 'G', 'L', '_', 'A', 'M', 'B', 'I', 'E', 'N', 'T', '_', 'A', 'N', 'D', '_', 'D', 'I', 'F', 'F', 'U', 'S', 'E', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'I', 'N', 'D', 'E', 'X', 'E', 'S', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'J', 'E', 'C', 'T', 'I', 'O', 'N', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '\0', - 'G', 'L', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'I', 'N', 'D', 'E', 'X', '\0', - 'G', 'L', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'I', 'N', 'D', 'E', 'X', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '\0', - 'G', 'L', '_', 'R', 'E', 'D', '\0', - 'G', 'L', '_', 'G', 'R', 'E', 'E', 'N', '\0', - 'G', 'L', '_', 'B', 'L', 'U', 'E', '\0', - 'G', 'L', '_', 'A', 'L', 'P', 'H', 'A', '\0', - 'G', 'L', '_', 'R', 'G', 'B', '\0', - 'G', 'L', '_', 'R', 'G', 'B', 'A', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '_', 'A', 'L', 'P', 'H', 'A', '\0', - 'G', 'L', '_', 'B', 'I', 'T', 'M', 'A', 'P', '\0', - 'G', 'L', '_', 'P', 'O', 'I', 'N', 'T', '\0', - 'G', 'L', '_', 'L', 'I', 'N', 'E', '\0', - 'G', 'L', '_', 'F', 'I', 'L', 'L', '\0', - 'G', 'L', '_', 'R', 'E', 'N', 'D', 'E', 'R', '\0', - 'G', 'L', '_', 'F', 'E', 'E', 'D', 'B', 'A', 'C', 'K', '\0', - 'G', 'L', '_', 'S', 'E', 'L', 'E', 'C', 'T', '\0', - 'G', 'L', '_', 'F', 'L', 'A', 'T', '\0', - 'G', 'L', '_', 'S', 'M', 'O', 'O', 'T', 'H', '\0', - 'G', 'L', '_', 'K', 'E', 'E', 'P', '\0', - 'G', 'L', '_', 'R', 'E', 'P', 'L', 'A', 'C', 'E', '\0', - 'G', 'L', '_', 'I', 'N', 'C', 'R', '\0', - 'G', 'L', '_', 'D', 'E', 'C', 'R', '\0', - 'G', 'L', '_', 'V', 'E', 'N', 'D', 'O', 'R', '\0', - 'G', 'L', '_', 'R', 'E', 'N', 'D', 'E', 'R', 'E', 'R', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'S', 'I', 'O', 'N', '\0', - 'G', 'L', '_', 'E', 'X', 'T', 'E', 'N', 'S', 'I', 'O', 'N', 'S', '\0', - 'G', 'L', '_', 'S', '\0', - 'G', 'L', '_', 'T', '\0', - 'G', 'L', '_', 'R', '\0', - 'G', 'L', '_', 'Q', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'U', 'L', 'A', 'T', 'E', '\0', - 'G', 'L', '_', 'D', 'E', 'C', 'A', 'L', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'E', 'N', 'V', '_', 'M', 'O', 'D', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'E', 'N', 'V', '_', 'C', 'O', 'L', 'O', 'R', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'E', 'N', 'V', '\0', - 'G', 'L', '_', 'E', 'Y', 'E', '_', 'L', 'I', 'N', 'E', 'A', 'R', '\0', - 'G', 'L', '_', 'O', 'B', 'J', 'E', 'C', 'T', '_', 'L', 'I', 'N', 'E', 'A', 'R', '\0', - 'G', 'L', '_', 'S', 'P', 'H', 'E', 'R', 'E', '_', 'M', 'A', 'P', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'G', 'E', 'N', '_', 'M', 'O', 'D', 'E', '\0', - 'G', 'L', '_', 'O', 'B', 'J', 'E', 'C', 'T', '_', 'P', 'L', 'A', 'N', 'E', '\0', - 'G', 'L', '_', 'E', 'Y', 'E', '_', 'P', 'L', 'A', 'N', 'E', '\0', - 'G', 'L', '_', 'N', 'E', 'A', 'R', 'E', 'S', 'T', '\0', - 'G', 'L', '_', 'L', 'I', 'N', 'E', 'A', 'R', '\0', - 'G', 'L', '_', 'N', 'E', 'A', 'R', 'E', 'S', 'T', '_', 'M', 'I', 'P', 'M', 'A', 'P', '_', 'N', 'E', 'A', 'R', 'E', 'S', 'T', '\0', - 'G', 'L', '_', 'L', 'I', 'N', 'E', 'A', 'R', '_', 'M', 'I', 'P', 'M', 'A', 'P', '_', 'N', 'E', 'A', 'R', 'E', 'S', 'T', '\0', - 'G', 'L', '_', 'N', 'E', 'A', 'R', 'E', 'S', 'T', '_', 'M', 'I', 'P', 'M', 'A', 'P', '_', 'L', 'I', 'N', 'E', 'A', 'R', '\0', - 'G', 'L', '_', 'L', 'I', 'N', 'E', 'A', 'R', '_', 'M', 'I', 'P', 'M', 'A', 'P', '_', 'L', 'I', 'N', 'E', 'A', 'R', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'M', 'A', 'G', '_', 'F', 'I', 'L', 'T', 'E', 'R', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'M', 'I', 'N', '_', 'F', 'I', 'L', 'T', 'E', 'R', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'W', 'R', 'A', 'P', '_', 'S', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'W', 'R', 'A', 'P', '_', 'T', '\0', - 'G', 'L', '_', 'C', 'L', 'A', 'M', 'P', '\0', - 'G', 'L', '_', 'R', 'E', 'P', 'E', 'A', 'T', '\0', - 'G', 'L', '_', 'P', 'O', 'L', 'Y', 'G', 'O', 'N', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'U', 'N', 'I', 'T', 'S', '\0', - 'G', 'L', '_', 'P', 'O', 'L', 'Y', 'G', 'O', 'N', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'P', 'O', 'I', 'N', 'T', '\0', - 'G', 'L', '_', 'P', 'O', 'L', 'Y', 'G', 'O', 'N', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'L', 'I', 'N', 'E', '\0', - 'G', 'L', '_', 'R', '3', '_', 'G', '3', '_', 'B', '2', '\0', - 'G', 'L', '_', 'V', '2', 'F', '\0', - 'G', 'L', '_', 'V', '3', 'F', '\0', - 'G', 'L', '_', 'C', '4', 'U', 'B', '_', 'V', '2', 'F', '\0', - 'G', 'L', '_', 'C', '4', 'U', 'B', '_', 'V', '3', 'F', '\0', - 'G', 'L', '_', 'C', '3', 'F', '_', 'V', '3', 'F', '\0', - 'G', 'L', '_', 'N', '3', 'F', '_', 'V', '3', 'F', '\0', - 'G', 'L', '_', 'C', '4', 'F', '_', 'N', '3', 'F', '_', 'V', '3', 'F', '\0', - 'G', 'L', '_', 'T', '2', 'F', '_', 'V', '3', 'F', '\0', - 'G', 'L', '_', 'T', '4', 'F', '_', 'V', '4', 'F', '\0', - 'G', 'L', '_', 'T', '2', 'F', '_', 'C', '4', 'U', 'B', '_', 'V', '3', 'F', '\0', - 'G', 'L', '_', 'T', '2', 'F', '_', 'C', '3', 'F', '_', 'V', '3', 'F', '\0', - 'G', 'L', '_', 'T', '2', 'F', '_', 'N', '3', 'F', '_', 'V', '3', 'F', '\0', - 'G', 'L', '_', 'T', '2', 'F', '_', 'C', '4', 'F', '_', 'N', '3', 'F', '_', 'V', '3', 'F', '\0', - 'G', 'L', '_', 'T', '4', 'F', '_', 'C', '4', 'F', '_', 'N', '3', 'F', '_', 'V', '4', 'F', '\0', - 'G', 'L', '_', 'C', 'L', 'I', 'P', '_', 'D', 'I', 'S', 'T', 'A', 'N', 'C', 'E', '0', '\0', - 'G', 'L', '_', 'C', 'L', 'I', 'P', '_', 'D', 'I', 'S', 'T', 'A', 'N', 'C', 'E', '1', '\0', - 'G', 'L', '_', 'C', 'L', 'I', 'P', '_', 'D', 'I', 'S', 'T', 'A', 'N', 'C', 'E', '2', '\0', - 'G', 'L', '_', 'C', 'L', 'I', 'P', '_', 'D', 'I', 'S', 'T', 'A', 'N', 'C', 'E', '3', '\0', - 'G', 'L', '_', 'C', 'L', 'I', 'P', '_', 'D', 'I', 'S', 'T', 'A', 'N', 'C', 'E', '4', '\0', - 'G', 'L', '_', 'C', 'L', 'I', 'P', '_', 'D', 'I', 'S', 'T', 'A', 'N', 'C', 'E', '5', '\0', - 'G', 'L', '_', 'C', 'L', 'I', 'P', '_', 'D', 'I', 'S', 'T', 'A', 'N', 'C', 'E', '6', '\0', - 'G', 'L', '_', 'C', 'L', 'I', 'P', '_', 'D', 'I', 'S', 'T', 'A', 'N', 'C', 'E', '7', '\0', - 'G', 'L', '_', 'L', 'I', 'G', 'H', 'T', '0', '\0', - 'G', 'L', '_', 'L', 'I', 'G', 'H', 'T', '1', '\0', - 'G', 'L', '_', 'L', 'I', 'G', 'H', 'T', '2', '\0', - 'G', 'L', '_', 'L', 'I', 'G', 'H', 'T', '3', '\0', - 'G', 'L', '_', 'L', 'I', 'G', 'H', 'T', '4', '\0', - 'G', 'L', '_', 'L', 'I', 'G', 'H', 'T', '5', '\0', - 'G', 'L', '_', 'L', 'I', 'G', 'H', 'T', '6', '\0', - 'G', 'L', '_', 'L', 'I', 'G', 'H', 'T', '7', '\0', - 'G', 'L', '_', 'A', 'B', 'G', 'R', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'S', 'T', 'A', 'N', 'T', '_', 'C', 'O', 'L', 'O', 'R', '\0', - 'G', 'L', '_', 'O', 'N', 'E', '_', 'M', 'I', 'N', 'U', 'S', '_', 'C', 'O', 'N', 'S', 'T', 'A', 'N', 'T', '_', 'C', 'O', 'L', 'O', 'R', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'S', 'T', 'A', 'N', 'T', '_', 'A', 'L', 'P', 'H', 'A', '\0', - 'G', 'L', '_', 'O', 'N', 'E', '_', 'M', 'I', 'N', 'U', 'S', '_', 'C', 'O', 'N', 'S', 'T', 'A', 'N', 'T', '_', 'A', 'L', 'P', 'H', 'A', '\0', - 'G', 'L', '_', 'B', 'L', 'E', 'N', 'D', '_', 'C', 'O', 'L', 'O', 'R', '\0', - 'G', 'L', '_', 'F', 'U', 'N', 'C', '_', 'A', 'D', 'D', '\0', - 'G', 'L', '_', 'M', 'I', 'N', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '\0', - 'G', 'L', '_', 'B', 'L', 'E', 'N', 'D', '_', 'E', 'Q', 'U', 'A', 'T', 'I', 'O', 'N', '_', 'R', 'G', 'B', '\0', - 'G', 'L', '_', 'F', 'U', 'N', 'C', '_', 'S', 'U', 'B', 'T', 'R', 'A', 'C', 'T', '\0', - 'G', 'L', '_', 'F', 'U', 'N', 'C', '_', 'R', 'E', 'V', 'E', 'R', 'S', 'E', '_', 'S', 'U', 'B', 'T', 'R', 'A', 'C', 'T', '\0', - 'G', 'L', '_', 'C', 'M', 'Y', 'K', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'C', 'M', 'Y', 'K', 'A', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'P', 'A', 'C', 'K', '_', 'C', 'M', 'Y', 'K', '_', 'H', 'I', 'N', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'U', 'N', 'P', 'A', 'C', 'K', '_', 'C', 'M', 'Y', 'K', '_', 'H', 'I', 'N', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'V', 'O', 'L', 'U', 'T', 'I', 'O', 'N', '_', '1', 'D', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'V', 'O', 'L', 'U', 'T', 'I', 'O', 'N', '_', '2', 'D', '\0', - 'G', 'L', '_', 'S', 'E', 'P', 'A', 'R', 'A', 'B', 'L', 'E', '_', '2', 'D', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'V', 'O', 'L', 'U', 'T', 'I', 'O', 'N', '_', 'B', 'O', 'R', 'D', 'E', 'R', '_', 'M', 'O', 'D', 'E', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'V', 'O', 'L', 'U', 'T', 'I', 'O', 'N', '_', 'F', 'I', 'L', 'T', 'E', 'R', '_', 'S', 'C', 'A', 'L', 'E', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'V', 'O', 'L', 'U', 'T', 'I', 'O', 'N', '_', 'F', 'I', 'L', 'T', 'E', 'R', '_', 'B', 'I', 'A', 'S', '\0', - 'G', 'L', '_', 'R', 'E', 'D', 'U', 'C', 'E', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'V', 'O', 'L', 'U', 'T', 'I', 'O', 'N', '_', 'F', 'O', 'R', 'M', 'A', 'T', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'V', 'O', 'L', 'U', 'T', 'I', 'O', 'N', '_', 'W', 'I', 'D', 'T', 'H', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'V', 'O', 'L', 'U', 'T', 'I', 'O', 'N', '_', 'H', 'E', 'I', 'G', 'H', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'O', 'N', 'V', 'O', 'L', 'U', 'T', 'I', 'O', 'N', '_', 'W', 'I', 'D', 'T', 'H', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'O', 'N', 'V', 'O', 'L', 'U', 'T', 'I', 'O', 'N', '_', 'H', 'E', 'I', 'G', 'H', 'T', '\0', - 'G', 'L', '_', 'P', 'O', 'S', 'T', '_', 'C', 'O', 'N', 'V', 'O', 'L', 'U', 'T', 'I', 'O', 'N', '_', 'R', 'E', 'D', '_', 'S', 'C', 'A', 'L', 'E', '\0', - 'G', 'L', '_', 'P', 'O', 'S', 'T', '_', 'C', 'O', 'N', 'V', 'O', 'L', 'U', 'T', 'I', 'O', 'N', '_', 'G', 'R', 'E', 'E', 'N', '_', 'S', 'C', 'A', 'L', 'E', '\0', - 'G', 'L', '_', 'P', 'O', 'S', 'T', '_', 'C', 'O', 'N', 'V', 'O', 'L', 'U', 'T', 'I', 'O', 'N', '_', 'B', 'L', 'U', 'E', '_', 'S', 'C', 'A', 'L', 'E', '\0', - 'G', 'L', '_', 'P', 'O', 'S', 'T', '_', 'C', 'O', 'N', 'V', 'O', 'L', 'U', 'T', 'I', 'O', 'N', '_', 'A', 'L', 'P', 'H', 'A', '_', 'S', 'C', 'A', 'L', 'E', '\0', - 'G', 'L', '_', 'P', 'O', 'S', 'T', '_', 'C', 'O', 'N', 'V', 'O', 'L', 'U', 'T', 'I', 'O', 'N', '_', 'R', 'E', 'D', '_', 'B', 'I', 'A', 'S', '\0', - 'G', 'L', '_', 'P', 'O', 'S', 'T', '_', 'C', 'O', 'N', 'V', 'O', 'L', 'U', 'T', 'I', 'O', 'N', '_', 'G', 'R', 'E', 'E', 'N', '_', 'B', 'I', 'A', 'S', '\0', - 'G', 'L', '_', 'P', 'O', 'S', 'T', '_', 'C', 'O', 'N', 'V', 'O', 'L', 'U', 'T', 'I', 'O', 'N', '_', 'B', 'L', 'U', 'E', '_', 'B', 'I', 'A', 'S', '\0', - 'G', 'L', '_', 'P', 'O', 'S', 'T', '_', 'C', 'O', 'N', 'V', 'O', 'L', 'U', 'T', 'I', 'O', 'N', '_', 'A', 'L', 'P', 'H', 'A', '_', 'B', 'I', 'A', 'S', '\0', - 'G', 'L', '_', 'H', 'I', 'S', 'T', 'O', 'G', 'R', 'A', 'M', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'X', 'Y', '_', 'H', 'I', 'S', 'T', 'O', 'G', 'R', 'A', 'M', '\0', - 'G', 'L', '_', 'H', 'I', 'S', 'T', 'O', 'G', 'R', 'A', 'M', '_', 'W', 'I', 'D', 'T', 'H', '\0', - 'G', 'L', '_', 'H', 'I', 'S', 'T', 'O', 'G', 'R', 'A', 'M', '_', 'F', 'O', 'R', 'M', 'A', 'T', '\0', - 'G', 'L', '_', 'H', 'I', 'S', 'T', 'O', 'G', 'R', 'A', 'M', '_', 'R', 'E', 'D', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'H', 'I', 'S', 'T', 'O', 'G', 'R', 'A', 'M', '_', 'G', 'R', 'E', 'E', 'N', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'H', 'I', 'S', 'T', 'O', 'G', 'R', 'A', 'M', '_', 'B', 'L', 'U', 'E', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'H', 'I', 'S', 'T', 'O', 'G', 'R', 'A', 'M', '_', 'A', 'L', 'P', 'H', 'A', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'H', 'I', 'S', 'T', 'O', 'G', 'R', 'A', 'M', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'H', 'I', 'S', 'T', 'O', 'G', 'R', 'A', 'M', '_', 'S', 'I', 'N', 'K', '\0', - 'G', 'L', '_', 'M', 'I', 'N', 'M', 'A', 'X', '\0', - 'G', 'L', '_', 'M', 'I', 'N', 'M', 'A', 'X', '_', 'F', 'O', 'R', 'M', 'A', 'T', '\0', - 'G', 'L', '_', 'M', 'I', 'N', 'M', 'A', 'X', '_', 'S', 'I', 'N', 'K', '\0', - 'G', 'L', '_', 'T', 'A', 'B', 'L', 'E', '_', 'T', 'O', 'O', '_', 'L', 'A', 'R', 'G', 'E', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'B', 'Y', 'T', 'E', '_', '3', '_', '3', '_', '2', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'S', 'H', 'O', 'R', 'T', '_', '4', '_', '4', '_', '4', '_', '4', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'S', 'H', 'O', 'R', 'T', '_', '5', '_', '5', '_', '5', '_', '1', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', '8', '_', '8', '_', '8', '_', '8', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', '1', '0', '_', '1', '0', '_', '1', '0', '_', '2', '\0', - 'G', 'L', '_', 'P', 'O', 'L', 'Y', 'G', 'O', 'N', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'F', 'I', 'L', 'L', '\0', - 'G', 'L', '_', 'P', 'O', 'L', 'Y', 'G', 'O', 'N', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'F', 'A', 'C', 'T', 'O', 'R', '\0', - 'G', 'L', '_', 'P', 'O', 'L', 'Y', 'G', 'O', 'N', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'B', 'I', 'A', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'R', 'E', 'S', 'C', 'A', 'L', 'E', '_', 'N', 'O', 'R', 'M', 'A', 'L', '\0', - 'G', 'L', '_', 'A', 'L', 'P', 'H', 'A', '4', '\0', - 'G', 'L', '_', 'A', 'L', 'P', 'H', 'A', '8', '\0', - 'G', 'L', '_', 'A', 'L', 'P', 'H', 'A', '1', '2', '\0', - 'G', 'L', '_', 'A', 'L', 'P', 'H', 'A', '1', '6', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '4', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '8', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '1', '2', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '1', '6', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '4', '_', 'A', 'L', 'P', 'H', 'A', '4', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '6', '_', 'A', 'L', 'P', 'H', 'A', '2', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '8', '_', 'A', 'L', 'P', 'H', 'A', '8', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '1', '2', '_', 'A', 'L', 'P', 'H', 'A', '4', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '1', '2', '_', 'A', 'L', 'P', 'H', 'A', '1', '2', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '1', '6', '_', 'A', 'L', 'P', 'H', 'A', '1', '6', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'N', 'S', 'I', 'T', 'Y', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'N', 'S', 'I', 'T', 'Y', '4', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'N', 'S', 'I', 'T', 'Y', '8', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'N', 'S', 'I', 'T', 'Y', '1', '2', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'N', 'S', 'I', 'T', 'Y', '1', '6', '\0', - 'G', 'L', '_', 'R', 'G', 'B', '2', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'R', 'G', 'B', '4', '\0', - 'G', 'L', '_', 'R', 'G', 'B', '5', '\0', - 'G', 'L', '_', 'R', 'G', 'B', '8', '\0', - 'G', 'L', '_', 'R', 'G', 'B', '1', '0', '\0', - 'G', 'L', '_', 'R', 'G', 'B', '1', '2', '\0', - 'G', 'L', '_', 'R', 'G', 'B', '1', '6', '\0', - 'G', 'L', '_', 'R', 'G', 'B', 'A', '2', '\0', - 'G', 'L', '_', 'R', 'G', 'B', 'A', '4', '\0', - 'G', 'L', '_', 'R', 'G', 'B', '5', '_', 'A', '1', '\0', - 'G', 'L', '_', 'R', 'G', 'B', 'A', '8', '\0', - 'G', 'L', '_', 'R', 'G', 'B', '1', '0', '_', 'A', '2', '\0', - 'G', 'L', '_', 'R', 'G', 'B', 'A', '1', '2', '\0', - 'G', 'L', '_', 'R', 'G', 'B', 'A', '1', '6', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'R', 'E', 'D', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'G', 'R', 'E', 'E', 'N', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'B', 'L', 'U', 'E', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'A', 'L', 'P', 'H', 'A', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'I', 'N', 'T', 'E', 'N', 'S', 'I', 'T', 'Y', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'R', 'E', 'P', 'L', 'A', 'C', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'X', 'Y', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '1', 'D', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'X', 'Y', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '2', 'D', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'T', 'O', 'O', '_', 'L', 'A', 'R', 'G', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'P', 'R', 'I', 'O', 'R', 'I', 'T', 'Y', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'R', 'E', 'S', 'I', 'D', 'E', 'N', 'T', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', '1', 'D', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', '2', 'D', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', '3', 'D', '\0', - 'G', 'L', '_', 'P', 'A', 'C', 'K', '_', 'S', 'K', 'I', 'P', '_', 'I', 'M', 'A', 'G', 'E', 'S', '\0', - 'G', 'L', '_', 'P', 'A', 'C', 'K', '_', 'I', 'M', 'A', 'G', 'E', '_', 'H', 'E', 'I', 'G', 'H', 'T', '\0', - 'G', 'L', '_', 'U', 'N', 'P', 'A', 'C', 'K', '_', 'S', 'K', 'I', 'P', '_', 'I', 'M', 'A', 'G', 'E', 'S', '\0', - 'G', 'L', '_', 'U', 'N', 'P', 'A', 'C', 'K', '_', 'I', 'M', 'A', 'G', 'E', '_', 'H', 'E', 'I', 'G', 'H', 'T', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '3', 'D', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'X', 'Y', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '3', 'D', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'D', 'E', 'P', 'T', 'H', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'W', 'R', 'A', 'P', '_', 'R', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', '3', 'D', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'N', 'O', 'R', 'M', 'A', 'L', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'I', 'N', 'D', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'E', 'D', 'G', 'E', '_', 'F', 'L', 'A', 'G', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'T', 'R', 'I', 'D', 'E', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'C', 'O', 'U', 'N', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'N', 'O', 'R', 'M', 'A', 'L', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'N', 'O', 'R', 'M', 'A', 'L', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'T', 'R', 'I', 'D', 'E', '\0', - 'G', 'L', '_', 'N', 'O', 'R', 'M', 'A', 'L', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'C', 'O', 'U', 'N', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'T', 'R', 'I', 'D', 'E', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'C', 'O', 'U', 'N', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'I', 'N', 'D', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'I', 'N', 'D', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'T', 'R', 'I', 'D', 'E', '\0', - 'G', 'L', '_', 'I', 'N', 'D', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'C', 'O', 'U', 'N', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'T', 'R', 'I', 'D', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'C', 'O', 'U', 'N', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'E', 'D', 'G', 'E', '_', 'F', 'L', 'A', 'G', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'T', 'R', 'I', 'D', 'E', '\0', - 'G', 'L', '_', 'E', 'D', 'G', 'E', '_', 'F', 'L', 'A', 'G', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'C', 'O', 'U', 'N', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'P', 'O', 'I', 'N', 'T', 'E', 'R', '\0', - 'G', 'L', '_', 'N', 'O', 'R', 'M', 'A', 'L', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'P', 'O', 'I', 'N', 'T', 'E', 'R', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'P', 'O', 'I', 'N', 'T', 'E', 'R', '\0', - 'G', 'L', '_', 'I', 'N', 'D', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'P', 'O', 'I', 'N', 'T', 'E', 'R', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'P', 'O', 'I', 'N', 'T', 'E', 'R', '\0', - 'G', 'L', '_', 'E', 'D', 'G', 'E', '_', 'F', 'L', 'A', 'G', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'P', 'O', 'I', 'N', 'T', 'E', 'R', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'R', 'L', 'A', 'C', 'E', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'D', 'E', 'T', 'A', 'I', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '2', 'D', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'D', 'E', 'T', 'A', 'I', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '2', 'D', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'L', 'I', 'N', 'E', 'A', 'R', '_', 'D', 'E', 'T', 'A', 'I', 'L', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'L', 'I', 'N', 'E', 'A', 'R', '_', 'D', 'E', 'T', 'A', 'I', 'L', '_', 'A', 'L', 'P', 'H', 'A', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'L', 'I', 'N', 'E', 'A', 'R', '_', 'D', 'E', 'T', 'A', 'I', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'D', 'E', 'T', 'A', 'I', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'L', 'E', 'V', 'E', 'L', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'D', 'E', 'T', 'A', 'I', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'M', 'O', 'D', 'E', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'D', 'E', 'T', 'A', 'I', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'F', 'U', 'N', 'C', '_', 'P', 'O', 'I', 'N', 'T', 'S', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'M', 'U', 'L', 'T', 'I', 'S', 'A', 'M', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'A', 'L', 'P', 'H', 'A', '_', 'T', 'O', '_', 'C', 'O', 'V', 'E', 'R', 'A', 'G', 'E', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'A', 'L', 'P', 'H', 'A', '_', 'T', 'O', '_', 'O', 'N', 'E', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'C', 'O', 'V', 'E', 'R', 'A', 'G', 'E', '\0', - 'G', 'L', '_', '1', 'P', 'A', 'S', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', '2', 'P', 'A', 'S', 'S', '_', '0', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', '2', 'P', 'A', 'S', 'S', '_', '1', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', '4', 'P', 'A', 'S', 'S', '_', '0', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', '4', 'P', 'A', 'S', 'S', '_', '1', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', '4', 'P', 'A', 'S', 'S', '_', '2', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', '4', 'P', 'A', 'S', 'S', '_', '3', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'B', 'U', 'F', 'F', 'E', 'R', 'S', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'S', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'C', 'O', 'V', 'E', 'R', 'A', 'G', 'E', '_', 'V', 'A', 'L', 'U', 'E', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'C', 'O', 'V', 'E', 'R', 'A', 'G', 'E', '_', 'I', 'N', 'V', 'E', 'R', 'T', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'P', 'A', 'T', 'T', 'E', 'R', 'N', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'L', 'I', 'N', 'E', 'A', 'R', '_', 'S', 'H', 'A', 'R', 'P', 'E', 'N', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'L', 'I', 'N', 'E', 'A', 'R', '_', 'S', 'H', 'A', 'R', 'P', 'E', 'N', '_', 'A', 'L', 'P', 'H', 'A', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'L', 'I', 'N', 'E', 'A', 'R', '_', 'S', 'H', 'A', 'R', 'P', 'E', 'N', '_', 'C', 'O', 'L', 'O', 'R', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'S', 'H', 'A', 'R', 'P', 'E', 'N', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'F', 'U', 'N', 'C', '_', 'P', 'O', 'I', 'N', 'T', 'S', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'M', 'A', 'T', 'R', 'I', 'X', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'S', 'T', 'A', 'C', 'K', '_', 'D', 'E', 'P', 'T', 'H', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'O', 'L', 'O', 'R', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'S', 'T', 'A', 'C', 'K', '_', 'D', 'E', 'P', 'T', 'H', '\0', - 'G', 'L', '_', 'P', 'O', 'S', 'T', '_', 'C', 'O', 'L', 'O', 'R', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'R', 'E', 'D', '_', 'S', 'C', 'A', 'L', 'E', '\0', - 'G', 'L', '_', 'P', 'O', 'S', 'T', '_', 'C', 'O', 'L', 'O', 'R', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'G', 'R', 'E', 'E', 'N', '_', 'S', 'C', 'A', 'L', 'E', '\0', - 'G', 'L', '_', 'P', 'O', 'S', 'T', '_', 'C', 'O', 'L', 'O', 'R', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'B', 'L', 'U', 'E', '_', 'S', 'C', 'A', 'L', 'E', '\0', - 'G', 'L', '_', 'P', 'O', 'S', 'T', '_', 'C', 'O', 'L', 'O', 'R', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'A', 'L', 'P', 'H', 'A', '_', 'S', 'C', 'A', 'L', 'E', '\0', - 'G', 'L', '_', 'P', 'O', 'S', 'T', '_', 'C', 'O', 'L', 'O', 'R', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'R', 'E', 'D', '_', 'B', 'I', 'A', 'S', '\0', - 'G', 'L', '_', 'P', 'O', 'S', 'T', '_', 'C', 'O', 'L', 'O', 'R', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'G', 'R', 'E', 'E', 'N', '_', 'B', 'I', 'A', 'S', '\0', - 'G', 'L', '_', 'P', 'O', 'S', 'T', '_', 'C', 'O', 'L', 'O', 'R', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'B', 'L', 'U', 'E', '_', 'B', 'I', 'A', 'S', '\0', - 'G', 'L', '_', 'P', 'O', 'S', 'T', '_', 'C', 'O', 'L', 'O', 'R', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'A', 'L', 'P', 'H', 'A', '_', 'B', 'I', 'A', 'S', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'L', 'O', 'R', '_', 'T', 'A', 'B', 'L', 'E', '_', 'S', 'G', 'I', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'X', 'Y', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'L', 'O', 'R', '_', 'T', 'A', 'B', 'L', 'E', '_', 'S', 'G', 'I', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'E', 'N', 'V', '_', 'B', 'I', 'A', 'S', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'M', 'P', 'A', 'R', 'E', '_', 'F', 'A', 'I', 'L', '_', 'V', 'A', 'L', 'U', 'E', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'B', 'L', 'E', 'N', 'D', '_', 'D', 'S', 'T', '_', 'R', 'G', 'B', '\0', - 'G', 'L', '_', 'B', 'L', 'E', 'N', 'D', '_', 'S', 'R', 'C', '_', 'R', 'G', 'B', '\0', - 'G', 'L', '_', 'B', 'L', 'E', 'N', 'D', '_', 'D', 'S', 'T', '_', 'A', 'L', 'P', 'H', 'A', '\0', - 'G', 'L', '_', 'B', 'L', 'E', 'N', 'D', '_', 'S', 'R', 'C', '_', 'A', 'L', 'P', 'H', 'A', '\0', - 'G', 'L', '_', '4', '2', '2', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', '4', '2', '2', '_', 'R', 'E', 'V', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', '4', '2', '2', '_', 'A', 'V', 'E', 'R', 'A', 'G', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', '4', '2', '2', '_', 'R', 'E', 'V', '_', 'A', 'V', 'E', 'R', 'A', 'G', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'T', 'A', 'B', 'L', 'E', '\0', - 'G', 'L', '_', 'P', 'O', 'S', 'T', '_', 'C', 'O', 'N', 'V', 'O', 'L', 'U', 'T', 'I', 'O', 'N', '_', 'C', 'O', 'L', 'O', 'R', '_', 'T', 'A', 'B', 'L', 'E', '\0', - 'G', 'L', '_', 'P', 'O', 'S', 'T', '_', 'C', 'O', 'L', 'O', 'R', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'C', 'O', 'L', 'O', 'R', '_', 'T', 'A', 'B', 'L', 'E', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'X', 'Y', '_', 'C', 'O', 'L', 'O', 'R', '_', 'T', 'A', 'B', 'L', 'E', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'X', 'Y', '_', 'P', 'O', 'S', 'T', '_', 'C', 'O', 'N', 'V', 'O', 'L', 'U', 'T', 'I', 'O', 'N', '_', 'C', 'O', 'L', 'O', 'R', '_', 'T', 'A', 'B', 'L', 'E', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'X', 'Y', '_', 'P', 'O', 'S', 'T', '_', 'C', 'O', 'L', 'O', 'R', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'C', 'O', 'L', 'O', 'R', '_', 'T', 'A', 'B', 'L', 'E', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'T', 'A', 'B', 'L', 'E', '_', 'S', 'C', 'A', 'L', 'E', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'T', 'A', 'B', 'L', 'E', '_', 'B', 'I', 'A', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'T', 'A', 'B', 'L', 'E', '_', 'F', 'O', 'R', 'M', 'A', 'T', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'T', 'A', 'B', 'L', 'E', '_', 'W', 'I', 'D', 'T', 'H', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'T', 'A', 'B', 'L', 'E', '_', 'R', 'E', 'D', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'T', 'A', 'B', 'L', 'E', '_', 'G', 'R', 'E', 'E', 'N', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'T', 'A', 'B', 'L', 'E', '_', 'B', 'L', 'U', 'E', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'T', 'A', 'B', 'L', 'E', '_', 'A', 'L', 'P', 'H', 'A', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'T', 'A', 'B', 'L', 'E', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'T', 'A', 'B', 'L', 'E', '_', 'I', 'N', 'T', 'E', 'N', 'S', 'I', 'T', 'Y', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'B', 'G', 'R', '\0', - 'G', 'L', '_', 'B', 'G', 'R', 'A', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'I', 'N', 'D', 'E', 'X', '1', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'I', 'N', 'D', 'E', 'X', '2', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'I', 'N', 'D', 'E', 'X', '4', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'I', 'N', 'D', 'E', 'X', '8', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'I', 'N', 'D', 'E', 'X', '1', '2', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'I', 'N', 'D', 'E', 'X', '1', '6', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'E', 'L', 'E', 'M', 'E', 'N', 'T', 'S', '_', 'V', 'E', 'R', 'T', 'I', 'C', 'E', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'E', 'L', 'E', 'M', 'E', 'N', 'T', 'S', '_', 'I', 'N', 'D', 'I', 'C', 'E', 'S', '\0', - 'G', 'L', '_', 'P', 'H', 'O', 'N', 'G', '_', 'W', 'I', 'N', '\0', - 'G', 'L', '_', 'P', 'H', 'O', 'N', 'G', '_', 'H', 'I', 'N', 'T', '_', 'W', 'I', 'N', '\0', - 'G', 'L', '_', 'F', 'O', 'G', '_', 'S', 'P', 'E', 'C', 'U', 'L', 'A', 'R', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'W', 'I', 'N', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'I', 'N', 'D', 'E', 'X', '_', 'S', 'I', 'Z', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'C', 'L', 'I', 'P', '_', 'V', 'O', 'L', 'U', 'M', 'E', '_', 'C', 'L', 'I', 'P', 'P', 'I', 'N', 'G', '_', 'H', 'I', 'N', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'D', 'U', 'A', 'L', '_', 'A', 'L', 'P', 'H', 'A', '4', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'D', 'U', 'A', 'L', '_', 'A', 'L', 'P', 'H', 'A', '8', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'D', 'U', 'A', 'L', '_', 'A', 'L', 'P', 'H', 'A', '1', '2', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'D', 'U', 'A', 'L', '_', 'A', 'L', 'P', 'H', 'A', '1', '6', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'D', 'U', 'A', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '4', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'D', 'U', 'A', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '8', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'D', 'U', 'A', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '1', '2', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'D', 'U', 'A', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '1', '6', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'D', 'U', 'A', 'L', '_', 'I', 'N', 'T', 'E', 'N', 'S', 'I', 'T', 'Y', '4', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'D', 'U', 'A', 'L', '_', 'I', 'N', 'T', 'E', 'N', 'S', 'I', 'T', 'Y', '8', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'D', 'U', 'A', 'L', '_', 'I', 'N', 'T', 'E', 'N', 'S', 'I', 'T', 'Y', '1', '2', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'D', 'U', 'A', 'L', '_', 'I', 'N', 'T', 'E', 'N', 'S', 'I', 'T', 'Y', '1', '6', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'D', 'U', 'A', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '_', 'A', 'L', 'P', 'H', 'A', '4', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'D', 'U', 'A', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '_', 'A', 'L', 'P', 'H', 'A', '8', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'Q', 'U', 'A', 'D', '_', 'A', 'L', 'P', 'H', 'A', '4', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'Q', 'U', 'A', 'D', '_', 'A', 'L', 'P', 'H', 'A', '8', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'Q', 'U', 'A', 'D', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '4', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'Q', 'U', 'A', 'D', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '8', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'Q', 'U', 'A', 'D', '_', 'I', 'N', 'T', 'E', 'N', 'S', 'I', 'T', 'Y', '4', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'Q', 'U', 'A', 'D', '_', 'I', 'N', 'T', 'E', 'N', 'S', 'I', 'T', 'Y', '8', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'D', 'U', 'A', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'S', 'E', 'L', 'E', 'C', 'T', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'Q', 'U', 'A', 'D', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'S', 'E', 'L', 'E', 'C', 'T', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'P', 'O', 'I', 'N', 'T', '_', 'S', 'I', 'Z', 'E', '_', 'M', 'I', 'N', '\0', - 'G', 'L', '_', 'P', 'O', 'I', 'N', 'T', '_', 'S', 'I', 'Z', 'E', '_', 'M', 'A', 'X', '\0', - 'G', 'L', '_', 'P', 'O', 'I', 'N', 'T', '_', 'F', 'A', 'D', 'E', '_', 'T', 'H', 'R', 'E', 'S', 'H', 'O', 'L', 'D', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'P', 'O', 'I', 'N', 'T', '_', 'D', 'I', 'S', 'T', 'A', 'N', 'C', 'E', '_', 'A', 'T', 'T', 'E', 'N', 'U', 'A', 'T', 'I', 'O', 'N', '\0', - 'G', 'L', '_', 'F', 'O', 'G', '_', 'F', 'U', 'N', 'C', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'F', 'O', 'G', '_', 'F', 'U', 'N', 'C', '_', 'P', 'O', 'I', 'N', 'T', 'S', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'F', 'O', 'G', '_', 'F', 'U', 'N', 'C', '_', 'P', 'O', 'I', 'N', 'T', 'S', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'C', 'L', 'A', 'M', 'P', '_', 'T', 'O', '_', 'B', 'O', 'R', 'D', 'E', 'R', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'M', 'U', 'L', 'T', 'I', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'H', 'I', 'N', 'T', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'C', 'L', 'A', 'M', 'P', '_', 'T', 'O', '_', 'E', 'D', 'G', 'E', '\0', - 'G', 'L', '_', 'P', 'A', 'C', 'K', '_', 'S', 'K', 'I', 'P', '_', 'V', 'O', 'L', 'U', 'M', 'E', 'S', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'P', 'A', 'C', 'K', '_', 'I', 'M', 'A', 'G', 'E', '_', 'D', 'E', 'P', 'T', 'H', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'U', 'N', 'P', 'A', 'C', 'K', '_', 'S', 'K', 'I', 'P', '_', 'V', 'O', 'L', 'U', 'M', 'E', 'S', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'U', 'N', 'P', 'A', 'C', 'K', '_', 'I', 'M', 'A', 'G', 'E', '_', 'D', 'E', 'P', 'T', 'H', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '4', 'D', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'X', 'Y', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '4', 'D', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '4', 'D', 'S', 'I', 'Z', 'E', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'W', 'R', 'A', 'P', '_', 'Q', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', '4', 'D', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'S', 'I', 'Z', 'E', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'T', 'E', 'X', '_', 'G', 'E', 'N', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'M', 'I', 'N', '_', 'L', 'O', 'D', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'M', 'A', 'X', '_', 'L', 'O', 'D', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'B', 'A', 'S', 'E', '_', 'L', 'E', 'V', 'E', 'L', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'M', 'A', 'X', '_', 'L', 'E', 'V', 'E', 'L', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'T', 'I', 'L', 'E', '_', 'B', 'E', 'S', 'T', '_', 'A', 'L', 'I', 'G', 'N', 'M', 'E', 'N', 'T', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'T', 'I', 'L', 'E', '_', 'C', 'A', 'C', 'H', 'E', '_', 'I', 'N', 'C', 'R', 'E', 'M', 'E', 'N', 'T', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'T', 'I', 'L', 'E', '_', 'W', 'I', 'D', 'T', 'H', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'T', 'I', 'L', 'E', '_', 'H', 'E', 'I', 'G', 'H', 'T', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'T', 'I', 'L', 'E', '_', 'G', 'R', 'I', 'D', '_', 'W', 'I', 'D', 'T', 'H', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'T', 'I', 'L', 'E', '_', 'G', 'R', 'I', 'D', '_', 'H', 'E', 'I', 'G', 'H', 'T', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'T', 'I', 'L', 'E', '_', 'G', 'R', 'I', 'D', '_', 'D', 'E', 'P', 'T', 'H', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'T', 'I', 'L', 'E', '_', 'C', 'A', 'C', 'H', 'E', '_', 'S', 'I', 'Z', 'E', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'F', 'I', 'L', 'T', 'E', 'R', '4', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'F', 'I', 'L', 'T', 'E', 'R', '4', '_', 'S', 'I', 'Z', 'E', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'S', 'P', 'R', 'I', 'T', 'E', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'S', 'P', 'R', 'I', 'T', 'E', '_', 'M', 'O', 'D', 'E', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'S', 'P', 'R', 'I', 'T', 'E', '_', 'A', 'X', 'I', 'S', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'S', 'P', 'R', 'I', 'T', 'E', '_', 'T', 'R', 'A', 'N', 'S', 'L', 'A', 'T', 'I', 'O', 'N', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'S', 'P', 'R', 'I', 'T', 'E', '_', 'A', 'X', 'I', 'A', 'L', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'S', 'P', 'R', 'I', 'T', 'E', '_', 'O', 'B', 'J', 'E', 'C', 'T', '_', 'A', 'L', 'I', 'G', 'N', 'E', 'D', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'S', 'P', 'R', 'I', 'T', 'E', '_', 'E', 'Y', 'E', '_', 'A', 'L', 'I', 'G', 'N', 'E', 'D', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '4', 'D', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'I', 'G', 'N', 'O', 'R', 'E', '_', 'B', 'O', 'R', 'D', 'E', 'R', '_', 'H', 'P', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'S', 'T', 'A', 'N', 'T', '_', 'B', 'O', 'R', 'D', 'E', 'R', '\0', - 'G', 'L', '_', 'R', 'E', 'P', 'L', 'I', 'C', 'A', 'T', 'E', '_', 'B', 'O', 'R', 'D', 'E', 'R', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'V', 'O', 'L', 'U', 'T', 'I', 'O', 'N', '_', 'B', 'O', 'R', 'D', 'E', 'R', '_', 'C', 'O', 'L', 'O', 'R', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'S', 'C', 'A', 'L', 'E', '_', 'X', '_', 'H', 'P', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'S', 'C', 'A', 'L', 'E', '_', 'Y', '_', 'H', 'P', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'T', 'R', 'A', 'N', 'S', 'L', 'A', 'T', 'E', '_', 'X', '_', 'H', 'P', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'T', 'R', 'A', 'N', 'S', 'L', 'A', 'T', 'E', '_', 'Y', '_', 'H', 'P', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'R', 'O', 'T', 'A', 'T', 'E', '_', 'A', 'N', 'G', 'L', 'E', '_', 'H', 'P', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'R', 'O', 'T', 'A', 'T', 'E', '_', 'O', 'R', 'I', 'G', 'I', 'N', '_', 'X', '_', 'H', 'P', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'R', 'O', 'T', 'A', 'T', 'E', '_', 'O', 'R', 'I', 'G', 'I', 'N', '_', 'Y', '_', 'H', 'P', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'M', 'A', 'G', '_', 'F', 'I', 'L', 'T', 'E', 'R', '_', 'H', 'P', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'M', 'I', 'N', '_', 'F', 'I', 'L', 'T', 'E', 'R', '_', 'H', 'P', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'C', 'U', 'B', 'I', 'C', '_', 'W', 'E', 'I', 'G', 'H', 'T', '_', 'H', 'P', '\0', - 'G', 'L', '_', 'C', 'U', 'B', 'I', 'C', '_', 'H', 'P', '\0', - 'G', 'L', '_', 'A', 'V', 'E', 'R', 'A', 'G', 'E', '_', 'H', 'P', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'T', 'R', 'A', 'N', 'S', 'F', 'O', 'R', 'M', '_', '2', 'D', '_', 'H', 'P', '\0', - 'G', 'L', '_', 'P', 'O', 'S', 'T', '_', 'I', 'M', 'A', 'G', 'E', '_', 'T', 'R', 'A', 'N', 'S', 'F', 'O', 'R', 'M', '_', 'C', 'O', 'L', 'O', 'R', '_', 'T', 'A', 'B', 'L', 'E', '_', 'H', 'P', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'X', 'Y', '_', 'P', 'O', 'S', 'T', '_', 'I', 'M', 'A', 'G', 'E', '_', 'T', 'R', 'A', 'N', 'S', 'F', 'O', 'R', 'M', '_', 'C', 'O', 'L', 'O', 'R', '_', 'T', 'A', 'B', 'L', 'E', '_', 'H', 'P', '\0', - 'G', 'L', '_', 'O', 'C', 'C', 'L', 'U', 'S', 'I', 'O', 'N', '_', 'T', 'E', 'S', 'T', '_', 'H', 'P', '\0', - 'G', 'L', '_', 'O', 'C', 'C', 'L', 'U', 'S', 'I', 'O', 'N', '_', 'T', 'E', 'S', 'T', '_', 'R', 'E', 'S', 'U', 'L', 'T', '_', 'H', 'P', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'L', 'I', 'G', 'H', 'T', 'I', 'N', 'G', '_', 'M', 'O', 'D', 'E', '_', 'H', 'P', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'P', 'O', 'S', 'T', '_', 'S', 'P', 'E', 'C', 'U', 'L', 'A', 'R', '_', 'H', 'P', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'P', 'R', 'E', '_', 'S', 'P', 'E', 'C', 'U', 'L', 'A', 'R', '_', 'H', 'P', '\0', - 'G', 'L', '_', 'L', 'I', 'N', 'E', 'A', 'R', '_', 'C', 'L', 'I', 'P', 'M', 'A', 'P', '_', 'L', 'I', 'N', 'E', 'A', 'R', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'L', 'I', 'P', 'M', 'A', 'P', '_', 'C', 'E', 'N', 'T', 'E', 'R', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'L', 'I', 'P', 'M', 'A', 'P', '_', 'F', 'R', 'A', 'M', 'E', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'L', 'I', 'P', 'M', 'A', 'P', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'L', 'I', 'P', 'M', 'A', 'P', '_', 'V', 'I', 'R', 'T', 'U', 'A', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'L', 'I', 'P', 'M', 'A', 'P', '_', 'L', 'O', 'D', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'L', 'I', 'P', 'M', 'A', 'P', '_', 'D', 'E', 'P', 'T', 'H', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'L', 'I', 'P', 'M', 'A', 'P', '_', 'D', 'E', 'P', 'T', 'H', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'L', 'I', 'P', 'M', 'A', 'P', '_', 'V', 'I', 'R', 'T', 'U', 'A', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'P', 'O', 'S', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'F', 'I', 'L', 'T', 'E', 'R', '_', 'B', 'I', 'A', 'S', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'P', 'O', 'S', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'F', 'I', 'L', 'T', 'E', 'R', '_', 'S', 'C', 'A', 'L', 'E', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'P', 'O', 'S', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'F', 'I', 'L', 'T', 'E', 'R', '_', 'B', 'I', 'A', 'S', '_', 'R', 'A', 'N', 'G', 'E', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'P', 'O', 'S', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'F', 'I', 'L', 'T', 'E', 'R', '_', 'S', 'C', 'A', 'L', 'E', '_', 'R', 'A', 'N', 'G', 'E', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'R', 'E', 'F', 'E', 'R', 'E', 'N', 'C', 'E', '_', 'P', 'L', 'A', 'N', 'E', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'R', 'E', 'F', 'E', 'R', 'E', 'N', 'C', 'E', '_', 'P', 'L', 'A', 'N', 'E', '_', 'E', 'Q', 'U', 'A', 'T', 'I', 'O', 'N', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'I', 'R', '_', 'I', 'N', 'S', 'T', 'R', 'U', 'M', 'E', 'N', 'T', '1', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'I', 'N', 'S', 'T', 'R', 'U', 'M', 'E', 'N', 'T', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'P', 'O', 'I', 'N', 'T', 'E', 'R', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'I', 'N', 'S', 'T', 'R', 'U', 'M', 'E', 'N', 'T', '_', 'M', 'E', 'A', 'S', 'U', 'R', 'E', 'M', 'E', 'N', 'T', 'S', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'L', 'I', 'S', 'T', '_', 'P', 'R', 'I', 'O', 'R', 'I', 'T', 'Y', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'C', 'A', 'L', 'L', 'I', 'G', 'R', 'A', 'P', 'H', 'I', 'C', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'Z', 'O', 'O', 'M', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'Z', 'O', 'O', 'M', '_', 'F', 'A', 'C', 'T', 'O', 'R', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'F', 'R', 'A', 'M', 'E', 'Z', 'O', 'O', 'M', '_', 'F', 'A', 'C', 'T', 'O', 'R', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'L', 'O', 'D', '_', 'B', 'I', 'A', 'S', '_', 'S', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'L', 'O', 'D', '_', 'B', 'I', 'A', 'S', '_', 'T', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'L', 'O', 'D', '_', 'B', 'I', 'A', 'S', '_', 'R', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'G', 'E', 'N', 'E', 'R', 'A', 'T', 'E', '_', 'M', 'I', 'P', 'M', 'A', 'P', '\0', - 'G', 'L', '_', 'G', 'E', 'N', 'E', 'R', 'A', 'T', 'E', '_', 'M', 'I', 'P', 'M', 'A', 'P', '_', 'H', 'I', 'N', 'T', '\0', - 'G', 'L', '_', 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'Y', '_', 'D', 'E', 'F', 'O', 'R', 'M', 'A', 'T', 'I', 'O', 'N', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'D', 'E', 'F', 'O', 'R', 'M', 'A', 'T', 'I', 'O', 'N', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'D', 'E', 'F', 'O', 'R', 'M', 'A', 'T', 'I', 'O', 'N', 'S', '_', 'M', 'A', 'S', 'K', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'D', 'E', 'F', 'O', 'R', 'M', 'A', 'T', 'I', 'O', 'N', '_', 'O', 'R', 'D', 'E', 'R', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'F', 'O', 'G', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'F', 'O', 'G', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'V', 'A', 'L', 'U', 'E', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'M', 'P', 'A', 'R', 'E', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'M', 'P', 'A', 'R', 'E', '_', 'O', 'P', 'E', 'R', 'A', 'T', 'O', 'R', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'L', 'E', 'Q', 'U', 'A', 'L', '_', 'R', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'G', 'E', 'Q', 'U', 'A', 'L', '_', 'R', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '1', '6', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '2', '4', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '3', '2', '\0', - 'G', 'L', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'E', 'L', 'E', 'M', 'E', 'N', 'T', '_', 'L', 'O', 'C', 'K', '_', 'F', 'I', 'R', 'S', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'E', 'L', 'E', 'M', 'E', 'N', 'T', '_', 'L', 'O', 'C', 'K', '_', 'C', 'O', 'U', 'N', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'C', 'U', 'L', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'C', 'U', 'L', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'E', 'Y', 'E', '_', 'P', 'O', 'S', 'I', 'T', 'I', 'O', 'N', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'C', 'U', 'L', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'O', 'B', 'J', 'E', 'C', 'T', '_', 'P', 'O', 'S', 'I', 'T', 'I', 'O', 'N', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'I', 'U', 'I', '_', 'V', '2', 'F', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'I', 'U', 'I', '_', 'V', '3', 'F', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'I', 'U', 'I', '_', 'N', '3', 'F', '_', 'V', '2', 'F', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'I', 'U', 'I', '_', 'N', '3', 'F', '_', 'V', '3', 'F', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'T', '2', 'F', '_', 'I', 'U', 'I', '_', 'V', '2', 'F', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'T', '2', 'F', '_', 'I', 'U', 'I', '_', 'V', '3', 'F', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'T', '2', 'F', '_', 'I', 'U', 'I', '_', 'N', '3', 'F', '_', 'V', '2', 'F', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'T', '2', 'F', '_', 'I', 'U', 'I', '_', 'N', '3', 'F', '_', 'V', '3', 'F', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'I', 'N', 'D', 'E', 'X', '_', 'T', 'E', 'S', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'I', 'N', 'D', 'E', 'X', '_', 'T', 'E', 'S', 'T', '_', 'F', 'U', 'N', 'C', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'I', 'N', 'D', 'E', 'X', '_', 'T', 'E', 'S', 'T', '_', 'R', 'E', 'F', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'I', 'N', 'D', 'E', 'X', '_', 'M', 'A', 'T', 'E', 'R', 'I', 'A', 'L', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'I', 'N', 'D', 'E', 'X', '_', 'M', 'A', 'T', 'E', 'R', 'I', 'A', 'L', '_', 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'I', 'N', 'D', 'E', 'X', '_', 'M', 'A', 'T', 'E', 'R', 'I', 'A', 'L', '_', 'F', 'A', 'C', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'Y', 'C', 'R', 'C', 'B', '_', '4', '2', '2', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'Y', 'C', 'R', 'C', 'B', '_', '4', '4', '4', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'W', 'R', 'A', 'P', '_', 'B', 'O', 'R', 'D', 'E', 'R', '_', 'S', 'U', 'N', '\0', - 'G', 'L', '_', 'U', 'N', 'P', 'A', 'C', 'K', '_', 'C', 'O', 'N', 'S', 'T', 'A', 'N', 'T', '_', 'D', 'A', 'T', 'A', '_', 'S', 'U', 'N', 'X', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'N', 'S', 'T', 'A', 'N', 'T', '_', 'D', 'A', 'T', 'A', '_', 'S', 'U', 'N', 'X', '\0', - 'G', 'L', '_', 'T', 'R', 'I', 'A', 'N', 'G', 'L', 'E', '_', 'L', 'I', 'S', 'T', '_', 'S', 'U', 'N', '\0', - 'G', 'L', '_', 'R', 'E', 'P', 'L', 'A', 'C', 'E', 'M', 'E', 'N', 'T', '_', 'C', 'O', 'D', 'E', '_', 'S', 'U', 'N', '\0', - 'G', 'L', '_', 'G', 'L', 'O', 'B', 'A', 'L', '_', 'A', 'L', 'P', 'H', 'A', '_', 'S', 'U', 'N', '\0', - 'G', 'L', '_', 'G', 'L', 'O', 'B', 'A', 'L', '_', 'A', 'L', 'P', 'H', 'A', '_', 'F', 'A', 'C', 'T', 'O', 'R', '_', 'S', 'U', 'N', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'L', 'O', 'R', '_', 'W', 'R', 'I', 'T', 'E', 'M', 'A', 'S', 'K', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'E', 'Y', 'E', '_', 'D', 'I', 'S', 'T', 'A', 'N', 'C', 'E', '_', 'T', 'O', '_', 'P', 'O', 'I', 'N', 'T', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'O', 'B', 'J', 'E', 'C', 'T', '_', 'D', 'I', 'S', 'T', 'A', 'N', 'C', 'E', '_', 'T', 'O', '_', 'P', 'O', 'I', 'N', 'T', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'E', 'Y', 'E', '_', 'D', 'I', 'S', 'T', 'A', 'N', 'C', 'E', '_', 'T', 'O', '_', 'L', 'I', 'N', 'E', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'O', 'B', 'J', 'E', 'C', 'T', '_', 'D', 'I', 'S', 'T', 'A', 'N', 'C', 'E', '_', 'T', 'O', '_', 'L', 'I', 'N', 'E', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'E', 'Y', 'E', '_', 'P', 'O', 'I', 'N', 'T', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'O', 'B', 'J', 'E', 'C', 'T', '_', 'P', 'O', 'I', 'N', 'T', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'E', 'Y', 'E', '_', 'L', 'I', 'N', 'E', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'O', 'B', 'J', 'E', 'C', 'T', '_', 'L', 'I', 'N', 'E', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'L', 'I', 'G', 'H', 'T', '_', 'M', 'O', 'D', 'E', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'C', 'O', 'N', 'T', 'R', 'O', 'L', '\0', - 'G', 'L', '_', 'S', 'I', 'N', 'G', 'L', 'E', '_', 'C', 'O', 'L', 'O', 'R', '\0', - 'G', 'L', '_', 'S', 'E', 'P', 'A', 'R', 'A', 'T', 'E', '_', 'S', 'P', 'E', 'C', 'U', 'L', 'A', 'R', '_', 'C', 'O', 'L', 'O', 'R', '\0', - 'G', 'L', '_', 'S', 'H', 'A', 'R', 'E', 'D', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'P', 'A', 'L', 'E', 'T', 'T', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '_', 'C', 'O', 'L', 'O', 'R', '_', 'E', 'N', 'C', 'O', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '_', 'R', 'E', 'D', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '_', 'G', 'R', 'E', 'E', 'N', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '_', 'B', 'L', 'U', 'E', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '_', 'A', 'L', 'P', 'H', 'A', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '_', 'D', 'E', 'P', 'T', 'H', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'D', 'E', 'F', 'A', 'U', 'L', 'T', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'U', 'N', 'D', 'E', 'F', 'I', 'N', 'E', 'D', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'J', 'O', 'R', '_', 'V', 'E', 'R', 'S', 'I', 'O', 'N', '\0', - 'G', 'L', '_', 'M', 'I', 'N', 'O', 'R', '_', 'V', 'E', 'R', 'S', 'I', 'O', 'N', '\0', - 'G', 'L', '_', 'N', 'U', 'M', '_', 'E', 'X', 'T', 'E', 'N', 'S', 'I', 'O', 'N', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'T', 'E', 'X', 'T', '_', 'F', 'L', 'A', 'G', 'S', '\0', - 'G', 'L', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'I', 'M', 'M', 'U', 'T', 'A', 'B', 'L', 'E', '_', 'S', 'T', 'O', 'R', 'A', 'G', 'E', '\0', - 'G', 'L', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'S', 'T', 'O', 'R', 'A', 'G', 'E', '_', 'F', 'L', 'A', 'G', 'S', '\0', - 'G', 'L', '_', 'P', 'R', 'I', 'M', 'I', 'T', 'I', 'V', 'E', '_', 'R', 'E', 'S', 'T', 'A', 'R', 'T', '_', 'F', 'O', 'R', '_', 'P', 'A', 'T', 'C', 'H', 'E', 'S', '_', 'S', 'U', 'P', 'P', 'O', 'R', 'T', 'E', 'D', '\0', - 'G', 'L', '_', 'I', 'N', 'D', 'E', 'X', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'E', 'D', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', '\0', - 'G', 'L', '_', 'R', 'G', '\0', - 'G', 'L', '_', 'R', 'G', '_', 'I', 'N', 'T', 'E', 'G', 'E', 'R', '\0', - 'G', 'L', '_', 'R', '8', '\0', - 'G', 'L', '_', 'R', '1', '6', '\0', - 'G', 'L', '_', 'R', 'G', '8', '\0', - 'G', 'L', '_', 'R', 'G', '1', '6', '\0', - 'G', 'L', '_', 'R', '1', '6', 'F', '\0', - 'G', 'L', '_', 'R', '3', '2', 'F', '\0', - 'G', 'L', '_', 'R', 'G', '1', '6', 'F', '\0', - 'G', 'L', '_', 'R', 'G', '3', '2', 'F', '\0', - 'G', 'L', '_', 'R', '8', 'I', '\0', - 'G', 'L', '_', 'R', '8', 'U', 'I', '\0', - 'G', 'L', '_', 'R', '1', '6', 'I', '\0', - 'G', 'L', '_', 'R', '1', '6', 'U', 'I', '\0', - 'G', 'L', '_', 'R', '3', '2', 'I', '\0', - 'G', 'L', '_', 'R', '3', '2', 'U', 'I', '\0', - 'G', 'L', '_', 'R', 'G', '8', 'I', '\0', - 'G', 'L', '_', 'R', 'G', '8', 'U', 'I', '\0', - 'G', 'L', '_', 'R', 'G', '1', '6', 'I', '\0', - 'G', 'L', '_', 'R', 'G', '1', '6', 'U', 'I', '\0', - 'G', 'L', '_', 'R', 'G', '3', '2', 'I', '\0', - 'G', 'L', '_', 'R', 'G', '3', '2', 'U', 'I', '\0', - 'G', 'L', '_', 'S', 'Y', 'N', 'C', '_', 'C', 'L', '_', 'E', 'V', 'E', 'N', 'T', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'S', 'Y', 'N', 'C', '_', 'C', 'L', '_', 'E', 'V', 'E', 'N', 'T', '_', 'C', 'O', 'M', 'P', 'L', 'E', 'T', 'E', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'D', 'E', 'B', 'U', 'G', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'S', 'Y', 'N', 'C', 'H', 'R', 'O', 'N', 'O', 'U', 'S', '\0', - 'G', 'L', '_', 'D', 'E', 'B', 'U', 'G', '_', 'N', 'E', 'X', 'T', '_', 'L', 'O', 'G', 'G', 'E', 'D', '_', 'M', 'E', 'S', 'S', 'A', 'G', 'E', '_', 'L', 'E', 'N', 'G', 'T', 'H', '\0', - 'G', 'L', '_', 'D', 'E', 'B', 'U', 'G', '_', 'C', 'A', 'L', 'L', 'B', 'A', 'C', 'K', '_', 'F', 'U', 'N', 'C', 'T', 'I', 'O', 'N', '\0', - 'G', 'L', '_', 'D', 'E', 'B', 'U', 'G', '_', 'C', 'A', 'L', 'L', 'B', 'A', 'C', 'K', '_', 'U', 'S', 'E', 'R', '_', 'P', 'A', 'R', 'A', 'M', '\0', - 'G', 'L', '_', 'D', 'E', 'B', 'U', 'G', '_', 'S', 'O', 'U', 'R', 'C', 'E', '_', 'A', 'P', 'I', '\0', - 'G', 'L', '_', 'D', 'E', 'B', 'U', 'G', '_', 'S', 'O', 'U', 'R', 'C', 'E', '_', 'W', 'I', 'N', 'D', 'O', 'W', '_', 'S', 'Y', 'S', 'T', 'E', 'M', '\0', - 'G', 'L', '_', 'D', 'E', 'B', 'U', 'G', '_', 'S', 'O', 'U', 'R', 'C', 'E', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'C', 'O', 'M', 'P', 'I', 'L', 'E', 'R', '\0', - 'G', 'L', '_', 'D', 'E', 'B', 'U', 'G', '_', 'S', 'O', 'U', 'R', 'C', 'E', '_', 'T', 'H', 'I', 'R', 'D', '_', 'P', 'A', 'R', 'T', 'Y', '\0', - 'G', 'L', '_', 'D', 'E', 'B', 'U', 'G', '_', 'S', 'O', 'U', 'R', 'C', 'E', '_', 'A', 'P', 'P', 'L', 'I', 'C', 'A', 'T', 'I', 'O', 'N', '\0', - 'G', 'L', '_', 'D', 'E', 'B', 'U', 'G', '_', 'S', 'O', 'U', 'R', 'C', 'E', '_', 'O', 'T', 'H', 'E', 'R', '\0', - 'G', 'L', '_', 'D', 'E', 'B', 'U', 'G', '_', 'T', 'Y', 'P', 'E', '_', 'E', 'R', 'R', 'O', 'R', '\0', - 'G', 'L', '_', 'D', 'E', 'B', 'U', 'G', '_', 'T', 'Y', 'P', 'E', '_', 'D', 'E', 'P', 'R', 'E', 'C', 'A', 'T', 'E', 'D', '_', 'B', 'E', 'H', 'A', 'V', 'I', 'O', 'R', '\0', - 'G', 'L', '_', 'D', 'E', 'B', 'U', 'G', '_', 'T', 'Y', 'P', 'E', '_', 'U', 'N', 'D', 'E', 'F', 'I', 'N', 'E', 'D', '_', 'B', 'E', 'H', 'A', 'V', 'I', 'O', 'R', '\0', - 'G', 'L', '_', 'D', 'E', 'B', 'U', 'G', '_', 'T', 'Y', 'P', 'E', '_', 'P', 'O', 'R', 'T', 'A', 'B', 'I', 'L', 'I', 'T', 'Y', '\0', - 'G', 'L', '_', 'D', 'E', 'B', 'U', 'G', '_', 'T', 'Y', 'P', 'E', '_', 'P', 'E', 'R', 'F', 'O', 'R', 'M', 'A', 'N', 'C', 'E', '\0', - 'G', 'L', '_', 'D', 'E', 'B', 'U', 'G', '_', 'T', 'Y', 'P', 'E', '_', 'O', 'T', 'H', 'E', 'R', '\0', - 'G', 'L', '_', 'L', 'O', 'S', 'E', '_', 'C', 'O', 'N', 'T', 'E', 'X', 'T', '_', 'O', 'N', '_', 'R', 'E', 'S', 'E', 'T', '\0', - 'G', 'L', '_', 'G', 'U', 'I', 'L', 'T', 'Y', '_', 'C', 'O', 'N', 'T', 'E', 'X', 'T', '_', 'R', 'E', 'S', 'E', 'T', '\0', - 'G', 'L', '_', 'I', 'N', 'N', 'O', 'C', 'E', 'N', 'T', '_', 'C', 'O', 'N', 'T', 'E', 'X', 'T', '_', 'R', 'E', 'S', 'E', 'T', '\0', - 'G', 'L', '_', 'U', 'N', 'K', 'N', 'O', 'W', 'N', '_', 'C', 'O', 'N', 'T', 'E', 'X', 'T', '_', 'R', 'E', 'S', 'E', 'T', '\0', - 'G', 'L', '_', 'R', 'E', 'S', 'E', 'T', '_', 'N', 'O', 'T', 'I', 'F', 'I', 'C', 'A', 'T', 'I', 'O', 'N', '_', 'S', 'T', 'R', 'A', 'T', 'E', 'G', 'Y', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'B', 'I', 'N', 'A', 'R', 'Y', '_', 'R', 'E', 'T', 'R', 'I', 'E', 'V', 'A', 'B', 'L', 'E', '_', 'H', 'I', 'N', 'T', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'S', 'E', 'P', 'A', 'R', 'A', 'B', 'L', 'E', '\0', - 'G', 'L', '_', 'A', 'C', 'T', 'I', 'V', 'E', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'P', 'I', 'P', 'E', 'L', 'I', 'N', 'E', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'V', 'I', 'E', 'W', 'P', 'O', 'R', 'T', 'S', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', 'P', 'O', 'R', 'T', '_', 'S', 'U', 'B', 'P', 'I', 'X', 'E', 'L', '_', 'B', 'I', 'T', 'S', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', 'P', 'O', 'R', 'T', '_', 'B', 'O', 'U', 'N', 'D', 'S', '_', 'R', 'A', 'N', 'G', 'E', '\0', - 'G', 'L', '_', 'L', 'A', 'Y', 'E', 'R', '_', 'P', 'R', 'O', 'V', 'O', 'K', 'I', 'N', 'G', '_', 'V', 'E', 'R', 'T', 'E', 'X', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', 'P', 'O', 'R', 'T', '_', 'I', 'N', 'D', 'E', 'X', '_', 'P', 'R', 'O', 'V', 'O', 'K', 'I', 'N', 'G', '_', 'V', 'E', 'R', 'T', 'E', 'X', '\0', - 'G', 'L', '_', 'U', 'N', 'D', 'E', 'F', 'I', 'N', 'E', 'D', '_', 'V', 'E', 'R', 'T', 'E', 'X', '\0', - 'G', 'L', '_', 'N', 'O', '_', 'R', 'E', 'S', 'E', 'T', '_', 'N', 'O', 'T', 'I', 'F', 'I', 'C', 'A', 'T', 'I', 'O', 'N', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'O', 'M', 'P', 'U', 'T', 'E', '_', 'S', 'H', 'A', 'R', 'E', 'D', '_', 'M', 'E', 'M', 'O', 'R', 'Y', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'O', 'M', 'P', 'U', 'T', 'E', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'O', 'M', 'P', 'U', 'T', 'E', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'O', 'M', 'P', 'U', 'T', 'E', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'D', '_', 'C', 'O', 'M', 'P', 'U', 'T', 'E', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'U', 'T', 'E', '_', 'W', 'O', 'R', 'K', '_', 'G', 'R', 'O', 'U', 'P', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'D', 'E', 'B', 'U', 'G', '_', 'T', 'Y', 'P', 'E', '_', 'M', 'A', 'R', 'K', 'E', 'R', '\0', - 'G', 'L', '_', 'D', 'E', 'B', 'U', 'G', '_', 'T', 'Y', 'P', 'E', '_', 'P', 'U', 'S', 'H', '_', 'G', 'R', 'O', 'U', 'P', '\0', - 'G', 'L', '_', 'D', 'E', 'B', 'U', 'G', '_', 'T', 'Y', 'P', 'E', '_', 'P', 'O', 'P', '_', 'G', 'R', 'O', 'U', 'P', '\0', - 'G', 'L', '_', 'D', 'E', 'B', 'U', 'G', '_', 'S', 'E', 'V', 'E', 'R', 'I', 'T', 'Y', '_', 'N', 'O', 'T', 'I', 'F', 'I', 'C', 'A', 'T', 'I', 'O', 'N', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'D', 'E', 'B', 'U', 'G', '_', 'G', 'R', 'O', 'U', 'P', '_', 'S', 'T', 'A', 'C', 'K', '_', 'D', 'E', 'P', 'T', 'H', '\0', - 'G', 'L', '_', 'D', 'E', 'B', 'U', 'G', '_', 'G', 'R', 'O', 'U', 'P', '_', 'S', 'T', 'A', 'C', 'K', '_', 'D', 'E', 'P', 'T', 'H', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'L', 'O', 'C', 'A', 'T', 'I', 'O', 'N', 'S', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'R', 'N', 'A', 'L', 'F', 'O', 'R', 'M', 'A', 'T', '_', 'S', 'U', 'P', 'P', 'O', 'R', 'T', 'E', 'D', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'R', 'N', 'A', 'L', 'F', 'O', 'R', 'M', 'A', 'T', '_', 'P', 'R', 'E', 'F', 'E', 'R', 'R', 'E', 'D', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'R', 'N', 'A', 'L', 'F', 'O', 'R', 'M', 'A', 'T', '_', 'R', 'E', 'D', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'R', 'N', 'A', 'L', 'F', 'O', 'R', 'M', 'A', 'T', '_', 'G', 'R', 'E', 'E', 'N', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'R', 'N', 'A', 'L', 'F', 'O', 'R', 'M', 'A', 'T', '_', 'B', 'L', 'U', 'E', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'R', 'N', 'A', 'L', 'F', 'O', 'R', 'M', 'A', 'T', '_', 'A', 'L', 'P', 'H', 'A', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'R', 'N', 'A', 'L', 'F', 'O', 'R', 'M', 'A', 'T', '_', 'D', 'E', 'P', 'T', 'H', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'R', 'N', 'A', 'L', 'F', 'O', 'R', 'M', 'A', 'T', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'R', 'N', 'A', 'L', 'F', 'O', 'R', 'M', 'A', 'T', '_', 'S', 'H', 'A', 'R', 'E', 'D', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'R', 'N', 'A', 'L', 'F', 'O', 'R', 'M', 'A', 'T', '_', 'R', 'E', 'D', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'R', 'N', 'A', 'L', 'F', 'O', 'R', 'M', 'A', 'T', '_', 'G', 'R', 'E', 'E', 'N', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'R', 'N', 'A', 'L', 'F', 'O', 'R', 'M', 'A', 'T', '_', 'B', 'L', 'U', 'E', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'R', 'N', 'A', 'L', 'F', 'O', 'R', 'M', 'A', 'T', '_', 'A', 'L', 'P', 'H', 'A', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'R', 'N', 'A', 'L', 'F', 'O', 'R', 'M', 'A', 'T', '_', 'D', 'E', 'P', 'T', 'H', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'R', 'N', 'A', 'L', 'F', 'O', 'R', 'M', 'A', 'T', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'W', 'I', 'D', 'T', 'H', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'H', 'E', 'I', 'G', 'H', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'D', 'E', 'P', 'T', 'H', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'L', 'A', 'Y', 'E', 'R', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'D', '_', 'D', 'I', 'M', 'E', 'N', 'S', 'I', 'O', 'N', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '\0', - 'G', 'L', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'R', 'E', 'N', 'D', 'E', 'R', 'A', 'B', 'L', 'E', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'R', 'E', 'N', 'D', 'E', 'R', 'A', 'B', 'L', 'E', '\0', - 'G', 'L', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'R', 'E', 'N', 'D', 'E', 'R', 'A', 'B', 'L', 'E', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'R', 'E', 'N', 'D', 'E', 'R', 'A', 'B', 'L', 'E', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'R', 'E', 'N', 'D', 'E', 'R', 'A', 'B', 'L', 'E', '_', 'L', 'A', 'Y', 'E', 'R', 'E', 'D', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'L', 'E', 'N', 'D', '\0', - 'G', 'L', '_', 'R', 'E', 'A', 'D', '_', 'P', 'I', 'X', 'E', 'L', 'S', '\0', - 'G', 'L', '_', 'R', 'E', 'A', 'D', '_', 'P', 'I', 'X', 'E', 'L', 'S', '_', 'F', 'O', 'R', 'M', 'A', 'T', '\0', - 'G', 'L', '_', 'R', 'E', 'A', 'D', '_', 'P', 'I', 'X', 'E', 'L', 'S', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'I', 'M', 'A', 'G', 'E', '_', 'F', 'O', 'R', 'M', 'A', 'T', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'I', 'M', 'A', 'G', 'E', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'G', 'E', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'I', 'M', 'A', 'G', 'E', '_', 'F', 'O', 'R', 'M', 'A', 'T', '\0', - 'G', 'L', '_', 'G', 'E', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'I', 'M', 'A', 'G', 'E', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'M', 'I', 'P', 'M', 'A', 'P', '\0', - 'G', 'L', '_', 'M', 'A', 'N', 'U', 'A', 'L', '_', 'G', 'E', 'N', 'E', 'R', 'A', 'T', 'E', '_', 'M', 'I', 'P', 'M', 'A', 'P', '\0', - 'G', 'L', '_', 'A', 'U', 'T', 'O', '_', 'G', 'E', 'N', 'E', 'R', 'A', 'T', 'E', '_', 'M', 'I', 'P', 'M', 'A', 'P', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'E', 'N', 'C', 'O', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'S', 'R', 'G', 'B', '_', 'R', 'E', 'A', 'D', '\0', - 'G', 'L', '_', 'S', 'R', 'G', 'B', '_', 'W', 'R', 'I', 'T', 'E', '\0', - 'G', 'L', '_', 'S', 'R', 'G', 'B', '_', 'D', 'E', 'C', 'O', 'D', 'E', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'F', 'I', 'L', 'T', 'E', 'R', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'S', 'S', '_', 'C', 'O', 'N', 'T', 'R', 'O', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'S', 'S', '_', 'E', 'V', 'A', 'L', 'U', 'A', 'T', 'I', 'O', 'N', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '\0', - 'G', 'L', '_', 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'Y', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'U', 'T', 'E', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'S', 'H', 'A', 'D', 'O', 'W', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'G', 'A', 'T', 'H', 'E', 'R', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'G', 'A', 'T', 'H', 'E', 'R', '_', 'S', 'H', 'A', 'D', 'O', 'W', '\0', - 'G', 'L', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'I', 'M', 'A', 'G', 'E', '_', 'L', 'O', 'A', 'D', '\0', - 'G', 'L', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'I', 'M', 'A', 'G', 'E', '_', 'S', 'T', 'O', 'R', 'E', '\0', - 'G', 'L', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'I', 'M', 'A', 'G', 'E', '_', 'A', 'T', 'O', 'M', 'I', 'C', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'T', 'E', 'X', 'E', 'L', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'C', 'O', 'M', 'P', 'A', 'T', 'I', 'B', 'I', 'L', 'I', 'T', 'Y', '_', 'C', 'L', 'A', 'S', 'S', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'P', 'I', 'X', 'E', 'L', '_', 'F', 'O', 'R', 'M', 'A', 'T', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'P', 'I', 'X', 'E', 'L', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'S', 'I', 'M', 'U', 'L', 'T', 'A', 'N', 'E', 'O', 'U', 'S', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'A', 'N', 'D', '_', 'D', 'E', 'P', 'T', 'H', '_', 'T', 'E', 'S', 'T', '\0', - 'G', 'L', '_', 'S', 'I', 'M', 'U', 'L', 'T', 'A', 'N', 'E', 'O', 'U', 'S', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'A', 'N', 'D', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'T', 'E', 'S', 'T', '\0', - 'G', 'L', '_', 'S', 'I', 'M', 'U', 'L', 'T', 'A', 'N', 'E', 'O', 'U', 'S', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'A', 'N', 'D', '_', 'D', 'E', 'P', 'T', 'H', '_', 'W', 'R', 'I', 'T', 'E', '\0', - 'G', 'L', '_', 'S', 'I', 'M', 'U', 'L', 'T', 'A', 'N', 'E', 'O', 'U', 'S', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'A', 'N', 'D', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'W', 'R', 'I', 'T', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'B', 'L', 'O', 'C', 'K', '_', 'W', 'I', 'D', 'T', 'H', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'B', 'L', 'O', 'C', 'K', '_', 'H', 'E', 'I', 'G', 'H', 'T', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'B', 'L', 'O', 'C', 'K', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'C', 'L', 'E', 'A', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'V', 'I', 'E', 'W', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', '_', 'C', 'O', 'M', 'P', 'A', 'T', 'I', 'B', 'I', 'L', 'I', 'T', 'Y', '_', 'C', 'L', 'A', 'S', 'S', '\0', - 'G', 'L', '_', 'F', 'U', 'L', 'L', '_', 'S', 'U', 'P', 'P', 'O', 'R', 'T', '\0', - 'G', 'L', '_', 'C', 'A', 'V', 'E', 'A', 'T', '_', 'S', 'U', 'P', 'P', 'O', 'R', 'T', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'C', 'L', 'A', 'S', 'S', '_', '4', '_', 'X', '_', '3', '2', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'C', 'L', 'A', 'S', 'S', '_', '2', '_', 'X', '_', '3', '2', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'C', 'L', 'A', 'S', 'S', '_', '1', '_', 'X', '_', '3', '2', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'C', 'L', 'A', 'S', 'S', '_', '4', '_', 'X', '_', '1', '6', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'C', 'L', 'A', 'S', 'S', '_', '2', '_', 'X', '_', '1', '6', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'C', 'L', 'A', 'S', 'S', '_', '1', '_', 'X', '_', '1', '6', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'C', 'L', 'A', 'S', 'S', '_', '4', '_', 'X', '_', '8', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'C', 'L', 'A', 'S', 'S', '_', '2', '_', 'X', '_', '8', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'C', 'L', 'A', 'S', 'S', '_', '1', '_', 'X', '_', '8', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'C', 'L', 'A', 'S', 'S', '_', '1', '1', '_', '1', '1', '_', '1', '0', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'C', 'L', 'A', 'S', 'S', '_', '1', '0', '_', '1', '0', '_', '1', '0', '_', '2', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', '_', 'C', 'L', 'A', 'S', 'S', '_', '1', '2', '8', '_', 'B', 'I', 'T', 'S', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', '_', 'C', 'L', 'A', 'S', 'S', '_', '9', '6', '_', 'B', 'I', 'T', 'S', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', '_', 'C', 'L', 'A', 'S', 'S', '_', '6', '4', '_', 'B', 'I', 'T', 'S', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', '_', 'C', 'L', 'A', 'S', 'S', '_', '4', '8', '_', 'B', 'I', 'T', 'S', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', '_', 'C', 'L', 'A', 'S', 'S', '_', '3', '2', '_', 'B', 'I', 'T', 'S', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', '_', 'C', 'L', 'A', 'S', 'S', '_', '2', '4', '_', 'B', 'I', 'T', 'S', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', '_', 'C', 'L', 'A', 'S', 'S', '_', '1', '6', '_', 'B', 'I', 'T', 'S', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', '_', 'C', 'L', 'A', 'S', 'S', '_', '8', '_', 'B', 'I', 'T', 'S', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', '_', 'C', 'L', 'A', 'S', 'S', '_', 'S', '3', 'T', 'C', '_', 'D', 'X', 'T', '1', '_', 'R', 'G', 'B', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', '_', 'C', 'L', 'A', 'S', 'S', '_', 'S', '3', 'T', 'C', '_', 'D', 'X', 'T', '1', '_', 'R', 'G', 'B', 'A', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', '_', 'C', 'L', 'A', 'S', 'S', '_', 'S', '3', 'T', 'C', '_', 'D', 'X', 'T', '3', '_', 'R', 'G', 'B', 'A', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', '_', 'C', 'L', 'A', 'S', 'S', '_', 'S', '3', 'T', 'C', '_', 'D', 'X', 'T', '5', '_', 'R', 'G', 'B', 'A', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', '_', 'C', 'L', 'A', 'S', 'S', '_', 'R', 'G', 'T', 'C', '1', '_', 'R', 'E', 'D', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', '_', 'C', 'L', 'A', 'S', 'S', '_', 'R', 'G', 'T', 'C', '2', '_', 'R', 'G', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', '_', 'C', 'L', 'A', 'S', 'S', '_', 'B', 'P', 'T', 'C', '_', 'U', 'N', 'O', 'R', 'M', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', '_', 'C', 'L', 'A', 'S', 'S', '_', 'B', 'P', 'T', 'C', '_', 'F', 'L', 'O', 'A', 'T', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'R', 'E', 'L', 'A', 'T', 'I', 'V', 'E', '_', 'O', 'F', 'F', 'S', 'E', 'T', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', 'D', 'I', 'V', 'I', 'S', 'O', 'R', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', 'O', 'F', 'F', 'S', 'E', 'T', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', 'S', 'T', 'R', 'I', 'D', 'E', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'R', 'E', 'L', 'A', 'T', 'I', 'V', 'E', '_', 'O', 'F', 'F', 'S', 'E', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', 'S', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'V', 'I', 'E', 'W', '_', 'M', 'I', 'N', '_', 'L', 'E', 'V', 'E', 'L', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'V', 'I', 'E', 'W', '_', 'N', 'U', 'M', '_', 'L', 'E', 'V', 'E', 'L', 'S', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'V', 'I', 'E', 'W', '_', 'M', 'I', 'N', '_', 'L', 'A', 'Y', 'E', 'R', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'V', 'I', 'E', 'W', '_', 'N', 'U', 'M', '_', 'L', 'A', 'Y', 'E', 'R', 'S', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'I', 'M', 'M', 'U', 'T', 'A', 'B', 'L', 'E', '_', 'L', 'E', 'V', 'E', 'L', 'S', '\0', - 'G', 'L', '_', 'B', 'U', 'F', 'F', 'E', 'R', '\0', - 'G', 'L', '_', 'S', 'H', 'A', 'D', 'E', 'R', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '\0', - 'G', 'L', '_', 'Q', 'U', 'E', 'R', 'Y', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'P', 'I', 'P', 'E', 'L', 'I', 'N', 'E', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'S', 'T', 'R', 'I', 'D', 'E', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '\0', - 'G', 'L', '_', 'D', 'I', 'S', 'P', 'L', 'A', 'Y', '_', 'L', 'I', 'S', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'L', 'A', 'B', 'E', 'L', '_', 'L', 'E', 'N', 'G', 'T', 'H', '\0', - 'G', 'L', '_', 'N', 'U', 'M', '_', 'S', 'H', 'A', 'D', 'I', 'N', 'G', '_', 'L', 'A', 'N', 'G', 'U', 'A', 'G', 'E', '_', 'V', 'E', 'R', 'S', 'I', 'O', 'N', 'S', '\0', - 'G', 'L', '_', 'Q', 'U', 'E', 'R', 'Y', '_', 'T', 'A', 'R', 'G', 'E', 'T', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'F', 'O', 'R', 'M', '_', 'F', 'E', 'E', 'D', 'B', 'A', 'C', 'K', '_', 'O', 'V', 'E', 'R', 'F', 'L', 'O', 'W', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'F', 'O', 'R', 'M', '_', 'F', 'E', 'E', 'D', 'B', 'A', 'C', 'K', '_', 'S', 'T', 'R', 'E', 'A', 'M', '_', 'O', 'V', 'E', 'R', 'F', 'L', 'O', 'W', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'I', 'C', 'E', 'S', '_', 'S', 'U', 'B', 'M', 'I', 'T', 'T', 'E', 'D', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'P', 'R', 'I', 'M', 'I', 'T', 'I', 'V', 'E', 'S', '_', 'S', 'U', 'B', 'M', 'I', 'T', 'T', 'E', 'D', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'I', 'N', 'V', 'O', 'C', 'A', 'T', 'I', 'O', 'N', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'T', 'E', 'S', 'S', '_', 'C', 'O', 'N', 'T', 'R', 'O', 'L', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'P', 'A', 'T', 'C', 'H', 'E', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'T', 'E', 'S', 'S', '_', 'E', 'V', 'A', 'L', 'U', 'A', 'T', 'I', 'O', 'N', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'I', 'N', 'V', 'O', 'C', 'A', 'T', 'I', 'O', 'N', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'Y', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'P', 'R', 'I', 'M', 'I', 'T', 'I', 'V', 'E', 'S', '_', 'E', 'M', 'I', 'T', 'T', 'E', 'D', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'I', 'N', 'V', 'O', 'C', 'A', 'T', 'I', 'O', 'N', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'U', 'T', 'E', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'I', 'N', 'V', 'O', 'C', 'A', 'T', 'I', 'O', 'N', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'C', 'L', 'I', 'P', 'P', 'I', 'N', 'G', '_', 'I', 'N', 'P', 'U', 'T', '_', 'P', 'R', 'I', 'M', 'I', 'T', 'I', 'V', 'E', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'C', 'L', 'I', 'P', 'P', 'I', 'N', 'G', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'P', 'R', 'I', 'M', 'I', 'T', 'I', 'V', 'E', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'S', 'P', 'A', 'R', 'S', 'E', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'P', 'A', 'G', 'E', '_', 'S', 'I', 'Z', 'E', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'U', 'L', 'L', '_', 'D', 'I', 'S', 'T', 'A', 'N', 'C', 'E', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'D', '_', 'C', 'L', 'I', 'P', '_', 'A', 'N', 'D', '_', 'C', 'U', 'L', 'L', '_', 'D', 'I', 'S', 'T', 'A', 'N', 'C', 'E', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'T', 'E', 'X', 'T', '_', 'R', 'E', 'L', 'E', 'A', 'S', 'E', '_', 'B', 'E', 'H', 'A', 'V', 'I', 'O', 'R', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'T', 'E', 'X', 'T', '_', 'R', 'E', 'L', 'E', 'A', 'S', 'E', '_', 'B', 'E', 'H', 'A', 'V', 'I', 'O', 'R', '_', 'F', 'L', 'U', 'S', 'H', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'V', 'O', 'L', 'U', 'T', 'I', 'O', 'N', '_', 'H', 'I', 'N', 'T', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'Y', 'C', 'R', 'C', 'B', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'Y', 'C', 'R', 'C', 'B', 'A', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'A', 'L', 'P', 'H', 'A', '_', 'M', 'I', 'N', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'A', 'L', 'P', 'H', 'A', '_', 'M', 'A', 'X', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'S', 'C', 'A', 'L', 'E', 'B', 'I', 'A', 'S', '_', 'H', 'I', 'N', 'T', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'A', 'S', 'Y', 'N', 'C', '_', 'M', 'A', 'R', 'K', 'E', 'R', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'T', 'E', 'X', '_', 'G', 'E', 'N', '_', 'M', 'O', 'D', 'E', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'A', 'S', 'Y', 'N', 'C', '_', 'H', 'I', 'S', 'T', 'O', 'G', 'R', 'A', 'M', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'A', 'S', 'Y', 'N', 'C', '_', 'H', 'I', 'S', 'T', 'O', 'G', 'R', 'A', 'M', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'F', 'O', 'R', 'M', '_', '2', 'D', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'M', 'A', 'G', '_', 'F', 'I', 'L', 'T', 'E', 'R', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'M', 'I', 'N', '_', 'F', 'I', 'L', 'T', 'E', 'R', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'C', 'U', 'B', 'I', 'C', '_', 'W', 'E', 'I', 'G', 'H', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'C', 'U', 'B', 'I', 'C', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'A', 'V', 'E', 'R', 'A', 'G', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'F', 'O', 'R', 'M', '_', '2', 'D', '_', 'S', 'T', 'A', 'C', 'K', '_', 'D', 'E', 'P', 'T', 'H', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'I', 'X', 'E', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'F', 'O', 'R', 'M', '_', '2', 'D', '_', 'S', 'T', 'A', 'C', 'K', '_', 'D', 'E', 'P', 'T', 'H', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'F', 'O', 'R', 'M', '_', '2', 'D', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'M', 'A', 'T', 'E', 'R', 'I', 'A', 'L', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'N', 'O', 'R', 'M', 'A', 'L', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'C', 'O', 'L', 'O', 'R', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'A', 'T', 'T', 'E', 'N', 'U', 'A', 'T', 'I', 'O', 'N', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'S', 'H', 'A', 'D', 'O', 'W', '_', 'A', 'T', 'T', 'E', 'N', 'U', 'A', 'T', 'I', 'O', 'N', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'A', 'P', 'P', 'L', 'I', 'C', 'A', 'T', 'I', 'O', 'N', '_', 'M', 'O', 'D', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'L', 'I', 'G', 'H', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'M', 'A', 'T', 'E', 'R', 'I', 'A', 'L', '_', 'F', 'A', 'C', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'M', 'A', 'T', 'E', 'R', 'I', 'A', 'L', '_', 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'R', 'G', 'B', '_', 'S', 'O', 'U', 'R', 'C', 'E', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'A', 'L', 'P', 'H', 'A', '_', 'S', 'O', 'U', 'R', 'C', 'E', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'G', 'R', 'O', 'U', 'P', '_', 'C', 'O', 'L', 'O', 'R', '_', 'S', 'G', 'I', 'S', '\0', - 'G', 'L', '_', 'A', 'S', 'Y', 'N', 'C', '_', 'T', 'E', 'X', '_', 'I', 'M', 'A', 'G', 'E', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'A', 'S', 'Y', 'N', 'C', '_', 'D', 'R', 'A', 'W', '_', 'P', 'I', 'X', 'E', 'L', 'S', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'A', 'S', 'Y', 'N', 'C', '_', 'R', 'E', 'A', 'D', '_', 'P', 'I', 'X', 'E', 'L', 'S', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'A', 'S', 'Y', 'N', 'C', '_', 'T', 'E', 'X', '_', 'I', 'M', 'A', 'G', 'E', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'A', 'S', 'Y', 'N', 'C', '_', 'D', 'R', 'A', 'W', '_', 'P', 'I', 'X', 'E', 'L', 'S', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'A', 'S', 'Y', 'N', 'C', '_', 'R', 'E', 'A', 'D', '_', 'P', 'I', 'X', 'E', 'L', 'S', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'B', 'Y', 'T', 'E', '_', '2', '_', '3', '_', '3', '_', 'R', 'E', 'V', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'S', 'H', 'O', 'R', 'T', '_', '5', '_', '6', '_', '5', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'S', 'H', 'O', 'R', 'T', '_', '5', '_', '6', '_', '5', '_', 'R', 'E', 'V', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'S', 'H', 'O', 'R', 'T', '_', '4', '_', '4', '_', '4', '_', '4', '_', 'R', 'E', 'V', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'S', 'H', 'O', 'R', 'T', '_', '1', '_', '5', '_', '5', '_', '5', '_', 'R', 'E', 'V', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', '8', '_', '8', '_', '8', '_', '8', '_', 'R', 'E', 'V', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', '2', '_', '1', '0', '_', '1', '0', '_', '1', '0', '_', 'R', 'E', 'V', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'M', 'A', 'X', '_', 'C', 'L', 'A', 'M', 'P', '_', 'S', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'M', 'A', 'X', '_', 'C', 'L', 'A', 'M', 'P', '_', 'T', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'M', 'A', 'X', '_', 'C', 'L', 'A', 'M', 'P', '_', 'R', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'M', 'I', 'R', 'R', 'O', 'R', 'E', 'D', '_', 'R', 'E', 'P', 'E', 'A', 'T', '\0', - 'G', 'L', '_', 'R', 'G', 'B', '_', 'S', '3', 'T', 'C', '\0', - 'G', 'L', '_', 'R', 'G', 'B', '4', '_', 'S', '3', 'T', 'C', '\0', - 'G', 'L', '_', 'R', 'G', 'B', 'A', '_', 'S', '3', 'T', 'C', '\0', - 'G', 'L', '_', 'R', 'G', 'B', 'A', '4', '_', 'S', '3', 'T', 'C', '\0', - 'G', 'L', '_', 'R', 'G', 'B', 'A', '_', 'D', 'X', 'T', '5', '_', 'S', '3', 'T', 'C', '\0', - 'G', 'L', '_', 'R', 'G', 'B', 'A', '4', '_', 'D', 'X', 'T', '5', '_', 'S', '3', 'T', 'C', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'P', 'R', 'E', 'C', 'L', 'I', 'P', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'P', 'R', 'E', 'C', 'L', 'I', 'P', '_', 'H', 'I', 'N', 'T', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', '_', 'S', '3', 'T', 'C', '_', 'D', 'X', 'T', '1', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '_', 'S', '3', 'T', 'C', '_', 'D', 'X', 'T', '1', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '_', 'S', '3', 'T', 'C', '_', 'D', 'X', 'T', '3', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '_', 'S', '3', 'T', 'C', '_', 'D', 'X', 'T', '5', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'P', 'A', 'R', 'A', 'L', 'L', 'E', 'L', '_', 'A', 'R', 'R', 'A', 'Y', 'S', '_', 'I', 'N', 'T', 'E', 'L', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'P', 'A', 'R', 'A', 'L', 'L', 'E', 'L', '_', 'P', 'O', 'I', 'N', 'T', 'E', 'R', 'S', '_', 'I', 'N', 'T', 'E', 'L', '\0', - 'G', 'L', '_', 'N', 'O', 'R', 'M', 'A', 'L', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'P', 'A', 'R', 'A', 'L', 'L', 'E', 'L', '_', 'P', 'O', 'I', 'N', 'T', 'E', 'R', 'S', '_', 'I', 'N', 'T', 'E', 'L', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'P', 'A', 'R', 'A', 'L', 'L', 'E', 'L', '_', 'P', 'O', 'I', 'N', 'T', 'E', 'R', 'S', '_', 'I', 'N', 'T', 'E', 'L', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'P', 'A', 'R', 'A', 'L', 'L', 'E', 'L', '_', 'P', 'O', 'I', 'N', 'T', 'E', 'R', 'S', '_', 'I', 'N', 'T', 'E', 'L', '\0', - 'G', 'L', '_', 'P', 'E', 'R', 'F', 'Q', 'U', 'E', 'R', 'Y', '_', 'D', 'O', 'N', 'O', 'T', '_', 'F', 'L', 'U', 'S', 'H', '_', 'I', 'N', 'T', 'E', 'L', '\0', - 'G', 'L', '_', 'P', 'E', 'R', 'F', 'Q', 'U', 'E', 'R', 'Y', '_', 'F', 'L', 'U', 'S', 'H', '_', 'I', 'N', 'T', 'E', 'L', '\0', - 'G', 'L', '_', 'P', 'E', 'R', 'F', 'Q', 'U', 'E', 'R', 'Y', '_', 'W', 'A', 'I', 'T', '_', 'I', 'N', 'T', 'E', 'L', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'S', 'E', 'R', 'V', 'A', 'T', 'I', 'V', 'E', '_', 'R', 'A', 'S', 'T', 'E', 'R', 'I', 'Z', 'A', 'T', 'I', 'O', 'N', '_', 'I', 'N', 'T', 'E', 'L', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'M', 'E', 'M', 'O', 'R', 'Y', '_', 'L', 'A', 'Y', 'O', 'U', 'T', '_', 'I', 'N', 'T', 'E', 'L', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'L', 'I', 'G', 'H', 'T', 'I', 'N', 'G', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'C', 'O', 'L', 'O', 'R', '_', 'M', 'A', 'T', 'E', 'R', 'I', 'A', 'L', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'C', 'O', 'L', 'O', 'R', '_', 'M', 'A', 'T', 'E', 'R', 'I', 'A', 'L', '_', 'F', 'A', 'C', 'E', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'C', 'O', 'L', 'O', 'R', '_', 'M', 'A', 'T', 'E', 'R', 'I', 'A', 'L', '_', 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'L', 'I', 'G', 'H', 'T', 'S', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'A', 'C', 'T', 'I', 'V', 'E', '_', 'L', 'I', 'G', 'H', 'T', 'S', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'C', 'U', 'R', 'R', 'E', 'N', 'T', '_', 'R', 'A', 'S', 'T', 'E', 'R', '_', 'N', 'O', 'R', 'M', 'A', 'L', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'L', 'I', 'G', 'H', 'T', '_', 'E', 'N', 'V', '_', 'M', 'O', 'D', 'E', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'L', 'I', 'G', 'H', 'T', '_', 'M', 'O', 'D', 'E', 'L', '_', 'L', 'O', 'C', 'A', 'L', '_', 'V', 'I', 'E', 'W', 'E', 'R', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'L', 'I', 'G', 'H', 'T', '_', 'M', 'O', 'D', 'E', 'L', '_', 'T', 'W', 'O', '_', 'S', 'I', 'D', 'E', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'L', 'I', 'G', 'H', 'T', '_', 'M', 'O', 'D', 'E', 'L', '_', 'A', 'M', 'B', 'I', 'E', 'N', 'T', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'L', 'I', 'G', 'H', 'T', '_', 'M', 'O', 'D', 'E', 'L', '_', 'N', 'O', 'R', 'M', 'A', 'L', '_', 'I', 'N', 'T', 'E', 'R', 'P', 'O', 'L', 'A', 'T', 'I', 'O', 'N', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'L', 'I', 'G', 'H', 'T', '0', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'L', 'I', 'G', 'H', 'T', '1', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'L', 'I', 'G', 'H', 'T', '2', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'L', 'I', 'G', 'H', 'T', '3', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'L', 'I', 'G', 'H', 'T', '4', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'L', 'I', 'G', 'H', 'T', '5', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'L', 'I', 'G', 'H', 'T', '6', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'L', 'I', 'G', 'H', 'T', '7', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'P', 'A', 'C', 'K', '_', 'R', 'E', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'U', 'N', 'P', 'A', 'C', 'K', '_', 'R', 'E', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'R', 'E', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'D', 'E', 'C', 'I', 'M', 'A', 'T', 'E', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'R', 'E', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'R', 'E', 'P', 'L', 'I', 'C', 'A', 'T', 'E', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'R', 'E', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'Z', 'E', 'R', 'O', '_', 'F', 'I', 'L', 'L', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'T', 'A', 'N', 'G', 'E', 'N', 'T', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'B', 'I', 'N', 'O', 'R', 'M', 'A', 'L', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'C', 'U', 'R', 'R', 'E', 'N', 'T', '_', 'T', 'A', 'N', 'G', 'E', 'N', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'C', 'U', 'R', 'R', 'E', 'N', 'T', '_', 'B', 'I', 'N', 'O', 'R', 'M', 'A', 'L', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'T', 'A', 'N', 'G', 'E', 'N', 'T', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'T', 'Y', 'P', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'T', 'A', 'N', 'G', 'E', 'N', 'T', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'T', 'R', 'I', 'D', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'B', 'I', 'N', 'O', 'R', 'M', 'A', 'L', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'T', 'Y', 'P', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'B', 'I', 'N', 'O', 'R', 'M', 'A', 'L', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'T', 'R', 'I', 'D', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'T', 'A', 'N', 'G', 'E', 'N', 'T', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'P', 'O', 'I', 'N', 'T', 'E', 'R', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'B', 'I', 'N', 'O', 'R', 'M', 'A', 'L', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'P', 'O', 'I', 'N', 'T', 'E', 'R', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '1', '_', 'T', 'A', 'N', 'G', 'E', 'N', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '2', '_', 'T', 'A', 'N', 'G', 'E', 'N', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '1', '_', 'B', 'I', 'N', 'O', 'R', 'M', 'A', 'L', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '2', '_', 'B', 'I', 'N', 'O', 'R', 'M', 'A', 'L', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'N', 'E', 'A', 'R', 'E', 'S', 'T', '_', 'C', 'L', 'I', 'P', 'M', 'A', 'P', '_', 'N', 'E', 'A', 'R', 'E', 'S', 'T', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'N', 'E', 'A', 'R', 'E', 'S', 'T', '_', 'C', 'L', 'I', 'P', 'M', 'A', 'P', '_', 'L', 'I', 'N', 'E', 'A', 'R', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'L', 'I', 'N', 'E', 'A', 'R', '_', 'C', 'L', 'I', 'P', 'M', 'A', 'P', '_', 'N', 'E', 'A', 'R', 'E', 'S', 'T', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'F', 'O', 'G', '_', 'C', 'O', 'O', 'R', 'D', '_', 'S', 'R', 'C', '\0', - 'G', 'L', '_', 'F', 'O', 'G', '_', 'C', 'O', 'O', 'R', 'D', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'D', 'E', 'P', 'T', 'H', '\0', - 'G', 'L', '_', 'C', 'U', 'R', 'R', 'E', 'N', 'T', '_', 'F', 'O', 'G', '_', 'C', 'O', 'O', 'R', 'D', '\0', - 'G', 'L', '_', 'F', 'O', 'G', '_', 'C', 'O', 'O', 'R', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'F', 'O', 'G', '_', 'C', 'O', 'O', 'R', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'T', 'R', 'I', 'D', 'E', '\0', - 'G', 'L', '_', 'F', 'O', 'G', '_', 'C', 'O', 'O', 'R', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'P', 'O', 'I', 'N', 'T', 'E', 'R', '\0', - 'G', 'L', '_', 'F', 'O', 'G', '_', 'C', 'O', 'O', 'R', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'S', 'U', 'M', '\0', - 'G', 'L', '_', 'C', 'U', 'R', 'R', 'E', 'N', 'T', '_', 'S', 'E', 'C', 'O', 'N', 'D', 'A', 'R', 'Y', '_', 'C', 'O', 'L', 'O', 'R', '\0', - 'G', 'L', '_', 'S', 'E', 'C', 'O', 'N', 'D', 'A', 'R', 'Y', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'S', 'E', 'C', 'O', 'N', 'D', 'A', 'R', 'Y', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'S', 'E', 'C', 'O', 'N', 'D', 'A', 'R', 'Y', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'T', 'R', 'I', 'D', 'E', '\0', - 'G', 'L', '_', 'S', 'E', 'C', 'O', 'N', 'D', 'A', 'R', 'Y', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'P', 'O', 'I', 'N', 'T', 'E', 'R', '\0', - 'G', 'L', '_', 'S', 'E', 'C', 'O', 'N', 'D', 'A', 'R', 'Y', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'C', 'U', 'R', 'R', 'E', 'N', 'T', '_', 'R', 'A', 'S', 'T', 'E', 'R', '_', 'S', 'E', 'C', 'O', 'N', 'D', 'A', 'R', 'Y', '_', 'C', 'O', 'L', 'O', 'R', '\0', - 'G', 'L', '_', 'A', 'L', 'I', 'A', 'S', 'E', 'D', '_', 'P', 'O', 'I', 'N', 'T', '_', 'S', 'I', 'Z', 'E', '_', 'R', 'A', 'N', 'G', 'E', '\0', - 'G', 'L', '_', 'A', 'L', 'I', 'A', 'S', 'E', 'D', '_', 'L', 'I', 'N', 'E', '_', 'W', 'I', 'D', 'T', 'H', '_', 'R', 'A', 'N', 'G', 'E', '\0', - 'G', 'L', '_', 'S', 'C', 'R', 'E', 'E', 'N', '_', 'C', 'O', 'O', 'R', 'D', 'I', 'N', 'A', 'T', 'E', 'S', '_', 'R', 'E', 'N', 'D', '\0', - 'G', 'L', '_', 'I', 'N', 'V', 'E', 'R', 'T', 'E', 'D', '_', 'S', 'C', 'R', 'E', 'E', 'N', '_', 'W', '_', 'R', 'E', 'N', 'D', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '0', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '1', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '2', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '3', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '4', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '5', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '6', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '7', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '8', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '9', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '1', '0', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '1', '1', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '1', '2', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '1', '3', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '1', '4', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '1', '5', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '1', '6', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '1', '7', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '1', '8', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '1', '9', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '2', '0', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '2', '1', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '2', '2', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '2', '3', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '2', '4', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '2', '5', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '2', '6', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '2', '7', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '2', '8', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '2', '9', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '3', '0', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '3', '1', '\0', - 'G', 'L', '_', 'A', 'C', 'T', 'I', 'V', 'E', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '\0', - 'G', 'L', '_', 'C', 'L', 'I', 'E', 'N', 'T', '_', 'A', 'C', 'T', 'I', 'V', 'E', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'U', 'N', 'I', 'T', 'S', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'P', 'O', 'S', 'E', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '_', 'M', 'A', 'T', 'R', 'I', 'X', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'P', 'O', 'S', 'E', '_', 'P', 'R', 'O', 'J', 'E', 'C', 'T', 'I', 'O', 'N', '_', 'M', 'A', 'T', 'R', 'I', 'X', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'P', 'O', 'S', 'E', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'M', 'A', 'T', 'R', 'I', 'X', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'P', 'O', 'S', 'E', '_', 'C', 'O', 'L', 'O', 'R', '_', 'M', 'A', 'T', 'R', 'I', 'X', '\0', - 'G', 'L', '_', 'S', 'U', 'B', 'T', 'R', 'A', 'C', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'R', 'E', 'N', 'D', 'E', 'R', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'A', 'L', 'P', 'H', 'A', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '_', 'A', 'L', 'P', 'H', 'A', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'I', 'N', 'T', 'E', 'N', 'S', 'I', 'T', 'Y', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'I', 'O', 'N', '_', 'H', 'I', 'N', 'T', '\0', - 'G', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'B', 'L', 'O', 'C', 'K', '_', 'R', 'E', 'F', 'E', 'R', 'E', 'N', 'C', 'E', 'D', '_', 'B', 'Y', '_', 'T', 'E', 'S', 'S', '_', 'C', 'O', 'N', 'T', 'R', 'O', 'L', '_', 'S', 'H', 'A', 'D', 'E', 'R', '\0', - 'G', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'B', 'L', 'O', 'C', 'K', '_', 'R', 'E', 'F', 'E', 'R', 'E', 'N', 'C', 'E', 'D', '_', 'B', 'Y', '_', 'T', 'E', 'S', 'S', '_', 'E', 'V', 'A', 'L', 'U', 'A', 'T', 'I', 'O', 'N', '_', 'S', 'H', 'A', 'D', 'E', 'R', '\0', - 'G', 'L', '_', 'A', 'L', 'L', '_', 'C', 'O', 'M', 'P', 'L', 'E', 'T', 'E', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'E', 'N', 'C', 'E', '_', 'S', 'T', 'A', 'T', 'U', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'E', 'N', 'C', 'E', '_', 'C', 'O', 'N', 'D', 'I', 'T', 'I', 'O', 'N', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'R', 'E', 'C', 'T', 'A', 'N', 'G', 'L', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', 'R', 'E', 'C', 'T', 'A', 'N', 'G', 'L', 'E', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'X', 'Y', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'R', 'E', 'C', 'T', 'A', 'N', 'G', 'L', 'E', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'R', 'E', 'C', 'T', 'A', 'N', 'G', 'L', 'E', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', '2', '4', '_', '8', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'L', 'O', 'D', '_', 'B', 'I', 'A', 'S', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'M', 'A', 'X', '_', 'A', 'N', 'I', 'S', 'O', 'T', 'R', 'O', 'P', 'Y', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'M', 'A', 'X', '_', 'A', 'N', 'I', 'S', 'O', 'T', 'R', 'O', 'P', 'Y', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'F', 'I', 'L', 'T', 'E', 'R', '_', 'C', 'O', 'N', 'T', 'R', 'O', 'L', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'L', 'O', 'D', '_', 'B', 'I', 'A', 'S', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '1', '_', 'S', 'T', 'A', 'C', 'K', '_', 'D', 'E', 'P', 'T', 'H', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'S', 'H', 'I', 'N', 'I', 'N', 'E', 'S', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'S', 'P', 'O', 'T', '_', 'E', 'X', 'P', 'O', 'N', 'E', 'N', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '1', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'I', 'N', 'C', 'R', '_', 'W', 'R', 'A', 'P', '\0', - 'G', 'L', '_', 'D', 'E', 'C', 'R', '_', 'W', 'R', 'A', 'P', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'W', 'E', 'I', 'G', 'H', 'T', 'I', 'N', 'G', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '1', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'C', 'U', 'R', 'R', 'E', 'N', 'T', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'W', 'E', 'I', 'G', 'H', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'W', 'E', 'I', 'G', 'H', 'T', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'W', 'E', 'I', 'G', 'H', 'T', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'I', 'Z', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'W', 'E', 'I', 'G', 'H', 'T', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'T', 'Y', 'P', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'W', 'E', 'I', 'G', 'H', 'T', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'T', 'R', 'I', 'D', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'W', 'E', 'I', 'G', 'H', 'T', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'P', 'O', 'I', 'N', 'T', 'E', 'R', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'N', 'O', 'R', 'M', 'A', 'L', '_', 'M', 'A', 'P', '\0', - 'G', 'L', '_', 'R', 'E', 'F', 'L', 'E', 'C', 'T', 'I', 'O', 'N', '_', 'M', 'A', 'P', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'U', 'B', 'E', '_', 'M', 'A', 'P', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', 'C', 'U', 'B', 'E', '_', 'M', 'A', 'P', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'U', 'B', 'E', '_', 'M', 'A', 'P', '_', 'P', 'O', 'S', 'I', 'T', 'I', 'V', 'E', '_', 'X', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'U', 'B', 'E', '_', 'M', 'A', 'P', '_', 'N', 'E', 'G', 'A', 'T', 'I', 'V', 'E', '_', 'X', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'U', 'B', 'E', '_', 'M', 'A', 'P', '_', 'P', 'O', 'S', 'I', 'T', 'I', 'V', 'E', '_', 'Y', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'U', 'B', 'E', '_', 'M', 'A', 'P', '_', 'N', 'E', 'G', 'A', 'T', 'I', 'V', 'E', '_', 'Y', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'U', 'B', 'E', '_', 'M', 'A', 'P', '_', 'P', 'O', 'S', 'I', 'T', 'I', 'V', 'E', '_', 'Z', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'U', 'B', 'E', '_', 'M', 'A', 'P', '_', 'N', 'E', 'G', 'A', 'T', 'I', 'V', 'E', '_', 'Z', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'X', 'Y', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'U', 'B', 'E', '_', 'M', 'A', 'P', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'U', 'B', 'E', '_', 'M', 'A', 'P', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'R', 'A', 'N', 'G', 'E', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'R', 'A', 'N', 'G', 'E', '_', 'L', 'E', 'N', 'G', 'T', 'H', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'T', 'O', 'R', 'A', 'G', 'E', '_', 'H', 'I', 'N', 'T', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'R', 'A', 'N', 'G', 'E', '_', 'E', 'L', 'E', 'M', 'E', 'N', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'R', 'A', 'N', 'G', 'E', '_', 'P', 'O', 'I', 'N', 'T', 'E', 'R', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'R', 'E', 'G', 'I', 'S', 'T', 'E', 'R', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'R', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'A', 'R', 'I', 'A', 'B', 'L', 'E', '_', 'A', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'A', 'R', 'I', 'A', 'B', 'L', 'E', '_', 'B', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'A', 'R', 'I', 'A', 'B', 'L', 'E', '_', 'C', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'A', 'R', 'I', 'A', 'B', 'L', 'E', '_', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'A', 'R', 'I', 'A', 'B', 'L', 'E', '_', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'A', 'R', 'I', 'A', 'B', 'L', 'E', '_', 'F', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'A', 'R', 'I', 'A', 'B', 'L', 'E', '_', 'G', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'S', 'T', 'A', 'N', 'T', '_', 'C', 'O', 'L', 'O', 'R', '0', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'S', 'T', 'A', 'N', 'T', '_', 'C', 'O', 'L', 'O', 'R', '1', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'R', 'I', 'M', 'A', 'R', 'Y', '_', 'C', 'O', 'L', 'O', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'E', 'C', 'O', 'N', 'D', 'A', 'R', 'Y', '_', 'C', 'O', 'L', 'O', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'P', 'A', 'R', 'E', '0', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'P', 'A', 'R', 'E', '1', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'I', 'S', 'C', 'A', 'R', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'E', '_', 'T', 'I', 'M', 'E', 'S', '_', 'F', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'P', 'A', 'R', 'E', '0', '_', 'P', 'L', 'U', 'S', '_', 'S', 'E', 'C', 'O', 'N', 'D', 'A', 'R', 'Y', '_', 'C', 'O', 'L', 'O', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'R', 'A', 'N', 'G', 'E', '_', 'W', 'I', 'T', 'H', 'O', 'U', 'T', '_', 'F', 'L', 'U', 'S', 'H', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'U', 'L', 'T', 'I', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'F', 'I', 'L', 'T', 'E', 'R', '_', 'H', 'I', 'N', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'E', 'R', '_', 'S', 'T', 'A', 'G', 'E', '_', 'C', 'O', 'N', 'S', 'T', 'A', 'N', 'T', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'D', 'E', 'N', 'T', 'I', 'T', 'Y', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'V', 'E', 'R', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'E', 'X', 'P', 'A', 'N', 'D', '_', 'N', 'O', 'R', 'M', 'A', 'L', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'E', 'X', 'P', 'A', 'N', 'D', '_', 'N', 'E', 'G', 'A', 'T', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'H', 'A', 'L', 'F', '_', 'B', 'I', 'A', 'S', '_', 'N', 'O', 'R', 'M', 'A', 'L', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'H', 'A', 'L', 'F', '_', 'B', 'I', 'A', 'S', '_', 'N', 'E', 'G', 'A', 'T', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'D', 'E', 'N', 'T', 'I', 'T', 'Y', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'N', 'E', 'G', 'A', 'T', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'C', 'A', 'L', 'E', '_', 'B', 'Y', '_', 'T', 'W', 'O', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'C', 'A', 'L', 'E', '_', 'B', 'Y', '_', 'F', 'O', 'U', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'C', 'A', 'L', 'E', '_', 'B', 'Y', '_', 'O', 'N', 'E', '_', 'H', 'A', 'L', 'F', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'B', 'I', 'A', 'S', '_', 'B', 'Y', '_', 'N', 'E', 'G', 'A', 'T', 'I', 'V', 'E', '_', 'O', 'N', 'E', '_', 'H', 'A', 'L', 'F', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'R', '_', 'I', 'N', 'P', 'U', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'R', '_', 'M', 'A', 'P', 'P', 'I', 'N', 'G', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'R', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '_', 'U', 'S', 'A', 'G', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'R', '_', 'A', 'B', '_', 'D', 'O', 'T', '_', 'P', 'R', 'O', 'D', 'U', 'C', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'R', '_', 'C', 'D', '_', 'D', 'O', 'T', '_', 'P', 'R', 'O', 'D', 'U', 'C', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'R', '_', 'M', 'U', 'X', '_', 'S', 'U', 'M', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'R', '_', 'S', 'C', 'A', 'L', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'R', '_', 'B', 'I', 'A', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'R', '_', 'A', 'B', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'R', '_', 'C', 'D', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'R', '_', 'S', 'U', 'M', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'G', 'E', 'N', 'E', 'R', 'A', 'L', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'R', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'N', 'U', 'M', '_', 'G', 'E', 'N', 'E', 'R', 'A', 'L', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'R', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'S', 'U', 'M', '_', 'C', 'L', 'A', 'M', 'P', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'R', '0', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'R', '1', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'R', '2', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'R', '3', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'R', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'R', '5', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'R', '6', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'R', '7', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'R', 'I', 'M', 'I', 'T', 'I', 'V', 'E', '_', 'R', 'E', 'S', 'T', 'A', 'R', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'R', 'I', 'M', 'I', 'T', 'I', 'V', 'E', '_', 'R', 'E', 'S', 'T', 'A', 'R', 'T', '_', 'I', 'N', 'D', 'E', 'X', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'O', 'G', '_', 'D', 'I', 'S', 'T', 'A', 'N', 'C', 'E', '_', 'M', 'O', 'D', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'E', 'Y', 'E', '_', 'R', 'A', 'D', 'I', 'A', 'L', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'E', 'Y', 'E', '_', 'P', 'L', 'A', 'N', 'E', '_', 'A', 'B', 'S', 'O', 'L', 'U', 'T', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'E', 'M', 'B', 'O', 'S', 'S', '_', 'L', 'I', 'G', 'H', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'E', 'M', 'B', 'O', 'S', 'S', '_', 'C', 'O', 'N', 'S', 'T', 'A', 'N', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'E', 'M', 'B', 'O', 'S', 'S', '_', 'M', 'A', 'P', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'R', 'E', 'D', '_', 'M', 'I', 'N', '_', 'C', 'L', 'A', 'M', 'P', '_', 'I', 'N', 'G', 'R', '\0', - 'G', 'L', '_', 'G', 'R', 'E', 'E', 'N', '_', 'M', 'I', 'N', '_', 'C', 'L', 'A', 'M', 'P', '_', 'I', 'N', 'G', 'R', '\0', - 'G', 'L', '_', 'B', 'L', 'U', 'E', '_', 'M', 'I', 'N', '_', 'C', 'L', 'A', 'M', 'P', '_', 'I', 'N', 'G', 'R', '\0', - 'G', 'L', '_', 'A', 'L', 'P', 'H', 'A', '_', 'M', 'I', 'N', '_', 'C', 'L', 'A', 'M', 'P', '_', 'I', 'N', 'G', 'R', '\0', - 'G', 'L', '_', 'R', 'E', 'D', '_', 'M', 'A', 'X', '_', 'C', 'L', 'A', 'M', 'P', '_', 'I', 'N', 'G', 'R', '\0', - 'G', 'L', '_', 'G', 'R', 'E', 'E', 'N', '_', 'M', 'A', 'X', '_', 'C', 'L', 'A', 'M', 'P', '_', 'I', 'N', 'G', 'R', '\0', - 'G', 'L', '_', 'B', 'L', 'U', 'E', '_', 'M', 'A', 'X', '_', 'C', 'L', 'A', 'M', 'P', '_', 'I', 'N', 'G', 'R', '\0', - 'G', 'L', '_', 'A', 'L', 'P', 'H', 'A', '_', 'M', 'A', 'X', '_', 'C', 'L', 'A', 'M', 'P', '_', 'I', 'N', 'G', 'R', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'R', 'L', 'A', 'C', 'E', '_', 'R', 'E', 'A', 'D', '_', 'I', 'N', 'G', 'R', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', '_', 'R', 'G', 'B', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', '_', 'A', 'L', 'P', 'H', 'A', '\0', - 'G', 'L', '_', 'R', 'G', 'B', '_', 'S', 'C', 'A', 'L', 'E', '\0', - 'G', 'L', '_', 'A', 'D', 'D', '_', 'S', 'I', 'G', 'N', 'E', 'D', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'R', 'P', 'O', 'L', 'A', 'T', 'E', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'S', 'T', 'A', 'N', 'T', '\0', - 'G', 'L', '_', 'P', 'R', 'I', 'M', 'A', 'R', 'Y', '_', 'C', 'O', 'L', 'O', 'R', '\0', - 'G', 'L', '_', 'P', 'R', 'E', 'V', 'I', 'O', 'U', 'S', '\0', - 'G', 'L', '_', 'S', 'R', 'C', '0', '_', 'R', 'G', 'B', '\0', - 'G', 'L', '_', 'S', 'R', 'C', '1', '_', 'R', 'G', 'B', '\0', - 'G', 'L', '_', 'S', 'R', 'C', '2', '_', 'R', 'G', 'B', '\0', - 'G', 'L', '_', 'S', 'O', 'U', 'R', 'C', 'E', '3', '_', 'R', 'G', 'B', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'R', 'C', '0', '_', 'A', 'L', 'P', 'H', 'A', '\0', - 'G', 'L', '_', 'S', 'R', 'C', '1', '_', 'A', 'L', 'P', 'H', 'A', '\0', - 'G', 'L', '_', 'S', 'R', 'C', '2', '_', 'A', 'L', 'P', 'H', 'A', '\0', - 'G', 'L', '_', 'S', 'O', 'U', 'R', 'C', 'E', '3', '_', 'A', 'L', 'P', 'H', 'A', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'O', 'P', 'E', 'R', 'A', 'N', 'D', '0', '_', 'R', 'G', 'B', '\0', - 'G', 'L', '_', 'O', 'P', 'E', 'R', 'A', 'N', 'D', '1', '_', 'R', 'G', 'B', '\0', - 'G', 'L', '_', 'O', 'P', 'E', 'R', 'A', 'N', 'D', '2', '_', 'R', 'G', 'B', '\0', - 'G', 'L', '_', 'O', 'P', 'E', 'R', 'A', 'N', 'D', '3', '_', 'R', 'G', 'B', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'O', 'P', 'E', 'R', 'A', 'N', 'D', '0', '_', 'A', 'L', 'P', 'H', 'A', '\0', - 'G', 'L', '_', 'O', 'P', 'E', 'R', 'A', 'N', 'D', '1', '_', 'A', 'L', 'P', 'H', 'A', '\0', - 'G', 'L', '_', 'O', 'P', 'E', 'R', 'A', 'N', 'D', '2', '_', 'A', 'L', 'P', 'H', 'A', '\0', - 'G', 'L', '_', 'O', 'P', 'E', 'R', 'A', 'N', 'D', '3', '_', 'A', 'L', 'P', 'H', 'A', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'C', 'K', '_', 'S', 'U', 'B', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'R', 'A', 'T', 'E', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'U', 'N', 'P', 'A', 'C', 'K', '_', 'S', 'U', 'B', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'R', 'A', 'T', 'E', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'S', 'U', 'B', 'S', 'A', 'M', 'P', 'L', 'E', '_', '4', '4', '4', '4', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'S', 'U', 'B', 'S', 'A', 'M', 'P', 'L', 'E', '_', '2', '4', '2', '4', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'S', 'U', 'B', 'S', 'A', 'M', 'P', 'L', 'E', '_', '4', '2', '4', '2', '_', 'S', 'G', 'I', 'X', '\0', - 'G', 'L', '_', 'P', 'E', 'R', 'T', 'U', 'R', 'B', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'N', 'O', 'R', 'M', 'A', 'L', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'L', 'I', 'G', 'H', 'T', '_', 'M', 'O', 'D', 'E', 'L', '_', 'S', 'P', 'E', 'C', 'U', 'L', 'A', 'R', '_', 'V', 'E', 'C', 'T', 'O', 'R', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'F', 'O', 'R', 'M', '_', 'H', 'I', 'N', 'T', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'U', 'N', 'P', 'A', 'C', 'K', '_', 'C', 'L', 'I', 'E', 'N', 'T', '_', 'S', 'T', 'O', 'R', 'A', 'G', 'E', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'O', 'B', 'J', 'E', 'C', 'T', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'S', 'T', 'O', 'R', 'A', 'G', 'E', '_', 'C', 'L', 'I', 'E', 'N', 'T', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'R', 'A', 'N', 'G', 'E', '_', 'L', 'E', 'N', 'G', 'T', 'H', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'R', 'A', 'N', 'G', 'E', '_', 'P', 'O', 'I', 'N', 'T', 'E', 'R', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'Y', 'C', 'B', 'C', 'R', '_', '4', '2', '2', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'S', 'H', 'O', 'R', 'T', '_', '8', '_', '8', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'S', 'H', 'O', 'R', 'T', '_', '8', '_', '8', '_', 'R', 'E', 'V', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'S', 'T', 'O', 'R', 'A', 'G', 'E', '_', 'H', 'I', 'N', 'T', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'S', 'T', 'O', 'R', 'A', 'G', 'E', '_', 'P', 'R', 'I', 'V', 'A', 'T', 'E', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'S', 'T', 'O', 'R', 'A', 'G', 'E', '_', 'C', 'A', 'C', 'H', 'E', 'D', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'S', 'T', 'O', 'R', 'A', 'G', 'E', '_', 'S', 'H', 'A', 'R', 'E', 'D', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'R', 'E', 'P', 'L', 'A', 'C', 'E', 'M', 'E', 'N', 'T', '_', 'C', 'O', 'D', 'E', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'U', 'N', '\0', - 'G', 'L', '_', 'R', 'E', 'P', 'L', 'A', 'C', 'E', 'M', 'E', 'N', 'T', '_', 'C', 'O', 'D', 'E', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'T', 'Y', 'P', 'E', '_', 'S', 'U', 'N', '\0', - 'G', 'L', '_', 'R', 'E', 'P', 'L', 'A', 'C', 'E', 'M', 'E', 'N', 'T', '_', 'C', 'O', 'D', 'E', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'T', 'R', 'I', 'D', 'E', '_', 'S', 'U', 'N', '\0', - 'G', 'L', '_', 'R', 'E', 'P', 'L', 'A', 'C', 'E', 'M', 'E', 'N', 'T', '_', 'C', 'O', 'D', 'E', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'P', 'O', 'I', 'N', 'T', 'E', 'R', '_', 'S', 'U', 'N', '\0', - 'G', 'L', '_', 'R', '1', 'U', 'I', '_', 'V', '3', 'F', '_', 'S', 'U', 'N', '\0', - 'G', 'L', '_', 'R', '1', 'U', 'I', '_', 'C', '4', 'U', 'B', '_', 'V', '3', 'F', '_', 'S', 'U', 'N', '\0', - 'G', 'L', '_', 'R', '1', 'U', 'I', '_', 'C', '3', 'F', '_', 'V', '3', 'F', '_', 'S', 'U', 'N', '\0', - 'G', 'L', '_', 'R', '1', 'U', 'I', '_', 'N', '3', 'F', '_', 'V', '3', 'F', '_', 'S', 'U', 'N', '\0', - 'G', 'L', '_', 'R', '1', 'U', 'I', '_', 'C', '4', 'F', '_', 'N', '3', 'F', '_', 'V', '3', 'F', '_', 'S', 'U', 'N', '\0', - 'G', 'L', '_', 'R', '1', 'U', 'I', '_', 'T', '2', 'F', '_', 'V', '3', 'F', '_', 'S', 'U', 'N', '\0', - 'G', 'L', '_', 'R', '1', 'U', 'I', '_', 'T', '2', 'F', '_', 'N', '3', 'F', '_', 'V', '3', 'F', '_', 'S', 'U', 'N', '\0', - 'G', 'L', '_', 'R', '1', 'U', 'I', '_', 'T', '2', 'F', '_', 'C', '4', 'F', '_', 'N', '3', 'F', '_', 'V', '3', 'F', '_', 'S', 'U', 'N', '\0', - 'G', 'L', '_', 'S', 'L', 'I', 'C', 'E', '_', 'A', 'C', 'C', 'U', 'M', '_', 'S', 'U', 'N', '\0', - 'G', 'L', '_', 'Q', 'U', 'A', 'D', '_', 'M', 'E', 'S', 'H', '_', 'S', 'U', 'N', '\0', - 'G', 'L', '_', 'T', 'R', 'I', 'A', 'N', 'G', 'L', 'E', '_', 'M', 'E', 'S', 'H', '_', 'S', 'U', 'N', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'T', 'A', 'T', 'E', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'E', 'N', 'A', 'B', 'L', 'E', 'D', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'T', 'R', 'I', 'D', 'E', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'C', 'U', 'R', 'R', 'E', 'N', 'T', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'L', 'E', 'N', 'G', 'T', 'H', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'S', 'T', 'R', 'I', 'N', 'G', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '_', 'P', 'R', 'O', 'J', 'E', 'C', 'T', 'I', 'O', 'N', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'I', 'D', 'E', 'N', 'T', 'I', 'T', 'Y', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'I', 'N', 'V', 'E', 'R', 'S', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'P', 'O', 'S', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'I', 'N', 'V', 'E', 'R', 'S', 'E', '_', 'T', 'R', 'A', 'N', 'S', 'P', 'O', 'S', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'S', 'T', 'A', 'C', 'K', '_', 'D', 'E', 'P', 'T', 'H', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'M', 'A', 'T', 'R', 'I', 'C', 'E', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '0', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '1', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '2', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '3', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '5', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '6', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '7', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'U', 'R', 'R', 'E', 'N', 'T', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'S', 'T', 'A', 'C', 'K', '_', 'D', 'E', 'P', 'T', 'H', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'C', 'U', 'R', 'R', 'E', 'N', 'T', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'P', 'O', 'I', 'N', 'T', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'T', 'W', 'O', '_', 'S', 'I', 'D', 'E', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'P', 'O', 'I', 'N', 'T', 'E', 'R', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'T', 'A', 'R', 'G', 'E', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'R', 'E', 'S', 'I', 'D', 'E', 'N', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'C', 'K', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'C', 'K', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'T', 'R', 'A', 'N', 'S', 'F', 'O', 'R', 'M', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'E', 'R', 'R', 'O', 'R', '_', 'P', 'O', 'S', 'I', 'T', 'I', 'O', 'N', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'R', 'E', 'C', 'T', 'A', 'N', 'G', 'L', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'R', 'E', 'C', 'T', 'A', 'N', 'G', 'L', 'E', '_', 'S', 'C', 'A', 'L', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'O', 'T', '_', 'P', 'R', 'O', 'D', 'U', 'C', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'R', 'E', 'C', 'T', 'A', 'N', 'G', 'L', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'C', 'L', 'A', 'M', 'P', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'A', 'R', 'R', 'A', 'Y', '0', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'A', 'R', 'R', 'A', 'Y', '1', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'A', 'R', 'R', 'A', 'Y', '2', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'A', 'R', 'R', 'A', 'Y', '3', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'A', 'R', 'R', 'A', 'Y', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'A', 'R', 'R', 'A', 'Y', '5', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'A', 'R', 'R', 'A', 'Y', '6', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'A', 'R', 'R', 'A', 'Y', '7', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'A', 'R', 'R', 'A', 'Y', '8', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'A', 'R', 'R', 'A', 'Y', '9', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'A', 'R', 'R', 'A', 'Y', '1', '0', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'A', 'R', 'R', 'A', 'Y', '1', '1', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'A', 'R', 'R', 'A', 'Y', '1', '2', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'A', 'R', 'R', 'A', 'Y', '1', '3', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'A', 'R', 'R', 'A', 'Y', '1', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'A', 'R', 'R', 'A', 'Y', '1', '5', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '1', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '0', '_', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '1', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '1', '_', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '1', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '2', '_', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '1', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '3', '_', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '1', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '4', '_', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '1', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '5', '_', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '1', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '6', '_', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '1', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '7', '_', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '1', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '8', '_', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '1', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '9', '_', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '1', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '1', '0', '_', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '1', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '1', '1', '_', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '1', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '1', '2', '_', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '1', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '1', '3', '_', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '1', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '1', '4', '_', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '1', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '1', '5', '_', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '2', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '0', '_', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '2', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '1', '_', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '2', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '2', '_', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '2', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '3', '_', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '2', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '4', '_', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '2', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '5', '_', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '2', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '6', '_', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '2', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '8', '_', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '2', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '9', '_', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '2', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '1', '0', '_', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '2', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '1', '1', '_', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '2', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '1', '2', '_', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '2', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '1', '3', '_', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '2', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '1', '4', '_', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '2', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '1', '5', '_', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'I', 'M', 'A', 'G', 'E', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '\0', - 'G', 'L', '_', 'N', 'U', 'M', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'F', 'O', 'R', 'M', 'A', 'T', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'F', 'O', 'R', 'M', 'A', 'T', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'U', 'N', 'I', 'T', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'A', 'C', 'T', 'I', 'V', 'E', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'U', 'N', 'I', 'T', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'W', 'E', 'I', 'G', 'H', 'T', '_', 'S', 'U', 'M', '_', 'U', 'N', 'I', 'T', 'Y', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'B', 'L', 'E', 'N', 'D', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'C', 'U', 'R', 'R', 'E', 'N', 'T', '_', 'W', 'E', 'I', 'G', 'H', 'T', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'W', 'E', 'I', 'G', 'H', 'T', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'T', 'Y', 'P', 'E', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'W', 'E', 'I', 'G', 'H', 'T', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'T', 'R', 'I', 'D', 'E', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'W', 'E', 'I', 'G', 'H', 'T', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'I', 'Z', 'E', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'W', 'E', 'I', 'G', 'H', 'T', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'P', 'O', 'I', 'N', 'T', 'E', 'R', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'W', 'E', 'I', 'G', 'H', 'T', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'D', 'O', 'T', '3', '_', 'R', 'G', 'B', '\0', - 'G', 'L', '_', 'D', 'O', 'T', '3', '_', 'R', 'G', 'B', 'A', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', '_', 'F', 'X', 'T', '1', '_', '3', 'D', 'F', 'X', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '_', 'F', 'X', 'T', '1', '_', '3', 'D', 'F', 'X', '\0', - 'G', 'L', '_', 'M', 'U', 'L', 'T', 'I', 'S', 'A', 'M', 'P', 'L', 'E', '_', '3', 'D', 'F', 'X', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'B', 'U', 'F', 'F', 'E', 'R', 'S', '_', '3', 'D', 'F', 'X', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'S', '_', '3', 'D', 'F', 'X', '\0', - 'G', 'L', '_', 'E', 'V', 'A', 'L', '_', '2', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'E', 'V', 'A', 'L', '_', 'T', 'R', 'I', 'A', 'N', 'G', 'U', 'L', 'A', 'R', '_', '2', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '_', 'T', 'E', 'S', 'S', 'E', 'L', 'L', 'A', 'T', 'I', 'O', 'N', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'U', '_', 'O', 'R', 'D', 'E', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'P', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'V', '_', 'O', 'R', 'D', 'E', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'E', 'V', 'A', 'L', '_', 'F', 'R', 'A', 'C', 'T', 'I', 'O', 'N', 'A', 'L', '_', 'T', 'E', 'S', 'S', 'E', 'L', 'L', 'A', 'T', 'I', 'O', 'N', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'E', 'V', 'A', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '0', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'E', 'V', 'A', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '1', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'E', 'V', 'A', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '2', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'E', 'V', 'A', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '3', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'E', 'V', 'A', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'E', 'V', 'A', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '5', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'E', 'V', 'A', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '6', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'E', 'V', 'A', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '7', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'E', 'V', 'A', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '8', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'E', 'V', 'A', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '9', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'E', 'V', 'A', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '1', '0', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'E', 'V', 'A', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '1', '1', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'E', 'V', 'A', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '1', '2', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'E', 'V', 'A', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '1', '3', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'E', 'V', 'A', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '1', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'E', 'V', 'A', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '1', '5', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'M', 'A', 'P', '_', 'T', 'E', 'S', 'S', 'E', 'L', 'L', 'A', 'T', 'I', 'O', 'N', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'R', 'A', 'T', 'I', 'O', 'N', 'A', 'L', '_', 'E', 'V', 'A', 'L', '_', 'O', 'R', 'D', 'E', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'P', 'A', 'T', 'C', 'H', '_', 'A', 'T', 'T', 'R', 'I', 'B', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'R', 'G', 'B', 'A', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'D', 'O', 'T', '_', 'P', 'R', 'O', 'D', 'U', 'C', 'T', '_', 'M', 'A', 'P', 'P', 'I', 'N', 'G', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', 'S', '8', '_', 'S', '8', '_', '8', '_', '8', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', '8', '_', '8', '_', 'S', '8', '_', 'S', '8', '_', 'R', 'E', 'V', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'S', 'D', 'T', '_', 'M', 'A', 'G', '_', 'I', 'N', 'T', 'E', 'N', 'S', 'I', 'T', 'Y', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'C', 'O', 'N', 'S', 'I', 'S', 'T', 'E', 'N', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'O', 'P', 'E', 'R', 'A', 'T', 'I', 'O', 'N', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'U', 'L', 'L', '_', 'M', 'O', 'D', 'E', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'S', 'C', 'A', 'L', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'B', 'I', 'A', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'R', 'E', 'V', 'I', 'O', 'U', 'S', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'I', 'N', 'P', 'U', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'S', 'T', '_', 'E', 'Y', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'S', 'S', '_', 'T', 'H', 'R', 'O', 'U', 'G', 'H', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'U', 'L', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '2', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'E', 'N', 'D', 'E', 'N', 'T', '_', 'A', 'R', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '2', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'E', 'N', 'D', 'E', 'N', 'T', '_', 'G', 'B', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '2', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'U', 'R', 'F', 'A', 'C', 'E', '_', 'S', 'T', 'A', 'T', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'O', 'T', '_', 'P', 'R', 'O', 'D', 'U', 'C', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'O', 'T', '_', 'P', 'R', 'O', 'D', 'U', 'C', 'T', '_', 'D', 'E', 'P', 'T', 'H', '_', 'R', 'E', 'P', 'L', 'A', 'C', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'O', 'T', '_', 'P', 'R', 'O', 'D', 'U', 'C', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '2', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'O', 'T', '_', 'P', 'R', 'O', 'D', 'U', 'C', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '3', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'O', 'T', '_', 'P', 'R', 'O', 'D', 'U', 'C', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'U', 'B', 'E', '_', 'M', 'A', 'P', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'O', 'T', '_', 'P', 'R', 'O', 'D', 'U', 'C', 'T', '_', 'D', 'I', 'F', 'F', 'U', 'S', 'E', '_', 'C', 'U', 'B', 'E', '_', 'M', 'A', 'P', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'O', 'T', '_', 'P', 'R', 'O', 'D', 'U', 'C', 'T', '_', 'R', 'E', 'F', 'L', 'E', 'C', 'T', '_', 'C', 'U', 'B', 'E', '_', 'M', 'A', 'P', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'O', 'T', '_', 'P', 'R', 'O', 'D', 'U', 'C', 'T', '_', 'C', 'O', 'N', 'S', 'T', '_', 'E', 'Y', 'E', '_', 'R', 'E', 'F', 'L', 'E', 'C', 'T', '_', 'C', 'U', 'B', 'E', '_', 'M', 'A', 'P', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'H', 'I', 'L', 'O', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'S', 'D', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'S', 'D', 'T', '_', 'M', 'A', 'G', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'S', 'D', 'T', '_', 'M', 'A', 'G', '_', 'V', 'I', 'B', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'H', 'I', 'L', 'O', '1', '6', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'H', 'I', 'L', 'O', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'H', 'I', 'L', 'O', '1', '6', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'R', 'G', 'B', 'A', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'R', 'G', 'B', 'A', '8', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'U', 'R', 'F', 'A', 'C', 'E', '_', 'R', 'E', 'G', 'I', 'S', 'T', 'E', 'R', 'E', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'R', 'G', 'B', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'R', 'G', 'B', '8', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'U', 'R', 'F', 'A', 'C', 'E', '_', 'M', 'A', 'P', 'P', 'E', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '8', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '_', 'A', 'L', 'P', 'H', 'A', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '8', '_', 'A', 'L', 'P', 'H', 'A', '8', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'A', 'L', 'P', 'H', 'A', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'A', 'L', 'P', 'H', 'A', '8', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', 'E', 'N', 'S', 'I', 'T', 'Y', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', 'E', 'N', 'S', 'I', 'T', 'Y', '8', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'S', 'D', 'T', '8', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'S', 'D', 'T', '8', '_', 'M', 'A', 'G', '8', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'S', 'D', 'T', '8', '_', 'M', 'A', 'G', '8', '_', 'I', 'N', 'T', 'E', 'N', 'S', 'I', 'T', 'Y', '8', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'R', 'G', 'B', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'A', 'L', 'P', 'H', 'A', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'R', 'G', 'B', '8', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'A', 'L', 'P', 'H', 'A', '8', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'H', 'I', '_', 'S', 'C', 'A', 'L', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'L', 'O', '_', 'S', 'C', 'A', 'L', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'S', '_', 'S', 'C', 'A', 'L', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'T', '_', 'S', 'C', 'A', 'L', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'G', 'N', 'I', 'T', 'U', 'D', 'E', '_', 'S', 'C', 'A', 'L', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'I', 'B', 'R', 'A', 'N', 'C', 'E', '_', 'S', 'C', 'A', 'L', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'H', 'I', '_', 'B', 'I', 'A', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'L', 'O', '_', 'B', 'I', 'A', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'S', '_', 'B', 'I', 'A', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'T', '_', 'B', 'I', 'A', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'G', 'N', 'I', 'T', 'U', 'D', 'E', '_', 'B', 'I', 'A', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'I', 'B', 'R', 'A', 'N', 'C', 'E', '_', 'B', 'I', 'A', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'B', 'O', 'R', 'D', 'E', 'R', '_', 'V', 'A', 'L', 'U', 'E', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'H', 'I', '_', 'S', 'I', 'Z', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'L', 'O', '_', 'S', 'I', 'Z', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'D', 'S', '_', 'S', 'I', 'Z', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'D', 'T', '_', 'S', 'I', 'Z', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'M', 'A', 'G', '_', 'S', 'I', 'Z', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '2', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '3', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '4', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '5', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '6', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '7', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '8', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '9', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '1', '0', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '1', '1', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '1', '2', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '1', '3', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '1', '4', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '1', '5', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '1', '6', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '1', '7', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '1', '8', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '1', '9', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '2', '0', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '2', '1', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '2', '2', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '2', '3', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '2', '4', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '2', '5', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '2', '6', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '2', '7', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '2', '8', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '2', '9', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '3', '0', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '3', '1', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'D', 'O', 'T', '3', '_', 'R', 'G', 'B', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'B', 'I', 'N', 'A', 'R', 'Y', '_', 'L', 'E', 'N', 'G', 'T', 'H', '\0', - 'G', 'L', '_', 'M', 'I', 'R', 'R', 'O', 'R', '_', 'C', 'L', 'A', 'M', 'P', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'M', 'I', 'R', 'R', 'O', 'R', '_', 'C', 'L', 'A', 'M', 'P', '_', 'T', 'O', '_', 'E', 'D', 'G', 'E', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'U', 'L', 'A', 'T', 'E', '_', 'A', 'D', 'D', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'U', 'L', 'A', 'T', 'E', '_', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'A', 'D', 'D', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'U', 'L', 'A', 'T', 'E', '_', 'S', 'U', 'B', 'T', 'R', 'A', 'C', 'T', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'S', 'E', 'T', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'R', 'E', 'P', 'L', 'A', 'C', 'E', '_', 'V', 'A', 'L', 'U', 'E', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'O', 'P', '_', 'V', 'A', 'L', 'U', 'E', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'B', 'A', 'C', 'K', '_', 'O', 'P', '_', 'V', 'A', 'L', 'U', 'E', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'L', 'O', 'N', 'G', '\0', - 'G', 'L', '_', 'O', 'C', 'C', 'L', 'U', 'S', 'I', 'O', 'N', '_', 'Q', 'U', 'E', 'R', 'Y', '_', 'E', 'V', 'E', 'N', 'T', '_', 'M', 'A', 'S', 'K', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'Y', 'C', 'B', 'C', 'R', '_', 'M', 'E', 'S', 'A', '\0', - 'G', 'L', '_', 'P', 'A', 'C', 'K', '_', 'I', 'N', 'V', 'E', 'R', 'T', '_', 'M', 'E', 'S', 'A', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '1', 'D', '_', 'S', 'T', 'A', 'C', 'K', '_', 'M', 'E', 'S', 'A', 'X', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '2', 'D', '_', 'S', 'T', 'A', 'C', 'K', '_', 'M', 'E', 'S', 'A', 'X', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'X', 'Y', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '1', 'D', '_', 'S', 'T', 'A', 'C', 'K', '_', 'M', 'E', 'S', 'A', 'X', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'X', 'Y', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '2', 'D', '_', 'S', 'T', 'A', 'C', 'K', '_', 'M', 'E', 'S', 'A', 'X', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '1', 'D', '_', 'S', 'T', 'A', 'C', 'K', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', 'M', 'E', 'S', 'A', 'X', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '2', 'D', '_', 'S', 'T', 'A', 'C', 'K', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', 'M', 'E', 'S', 'A', 'X', '\0', - 'G', 'L', '_', 'S', 'T', 'A', 'T', 'I', 'C', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'D', 'Y', 'N', 'A', 'M', 'I', 'C', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'P', 'R', 'E', 'S', 'E', 'R', 'V', 'E', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'D', 'I', 'S', 'C', 'A', 'R', 'D', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'U', 'S', 'A', 'G', 'E', '\0', - 'G', 'L', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'O', 'B', 'J', 'E', 'C', 'T', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'O', 'B', 'J', 'E', 'C', 'T', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'E', 'L', 'E', 'M', 'E', 'N', 'T', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'E', 'L', 'E', 'M', 'E', 'N', 'T', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'T', 'Y', 'P', 'E', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'E', 'L', 'E', 'M', 'E', 'N', 'T', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'P', 'O', 'I', 'N', 'T', 'E', 'R', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'T', 'R', 'E', 'A', 'M', 'S', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'T', 'R', 'E', 'A', 'M', '0', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'T', 'R', 'E', 'A', 'M', '1', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'T', 'R', 'E', 'A', 'M', '2', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'T', 'R', 'E', 'A', 'M', '3', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'T', 'R', 'E', 'A', 'M', '4', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'T', 'R', 'E', 'A', 'M', '5', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'T', 'R', 'E', 'A', 'M', '6', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'T', 'R', 'E', 'A', 'M', '7', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'O', 'U', 'R', 'C', 'E', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'B', 'U', 'M', 'P', '_', 'R', 'O', 'T', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'B', 'U', 'M', 'P', '_', 'R', 'O', 'T', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'S', 'I', 'Z', 'E', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'B', 'U', 'M', 'P', '_', 'N', 'U', 'M', '_', 'T', 'E', 'X', '_', 'U', 'N', 'I', 'T', 'S', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'B', 'U', 'M', 'P', '_', 'T', 'E', 'X', '_', 'U', 'N', 'I', 'T', 'S', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'D', 'U', 'D', 'V', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'D', 'U', '8', 'D', 'V', '8', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'B', 'U', 'M', 'P', '_', 'E', 'N', 'V', 'M', 'A', 'P', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'B', 'U', 'M', 'P', '_', 'T', 'A', 'R', 'G', 'E', 'T', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'P', '_', 'I', 'N', 'D', 'E', 'X', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'P', '_', 'N', 'E', 'G', 'A', 'T', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'P', '_', 'D', 'O', 'T', '3', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'P', '_', 'D', 'O', 'T', '4', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'P', '_', 'M', 'U', 'L', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'P', '_', 'A', 'D', 'D', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'P', '_', 'M', 'A', 'D', 'D', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'P', '_', 'F', 'R', 'A', 'C', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'P', '_', 'M', 'A', 'X', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'P', '_', 'M', 'I', 'N', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'P', '_', 'S', 'E', 'T', '_', 'G', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'P', '_', 'S', 'E', 'T', '_', 'L', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'P', '_', 'C', 'L', 'A', 'M', 'P', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'P', '_', 'F', 'L', 'O', 'O', 'R', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'P', '_', 'R', 'O', 'U', 'N', 'D', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'P', '_', 'E', 'X', 'P', '_', 'B', 'A', 'S', 'E', '_', '2', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'P', '_', 'L', 'O', 'G', '_', 'B', 'A', 'S', 'E', '_', '2', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'P', '_', 'P', 'O', 'W', 'E', 'R', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'P', '_', 'R', 'E', 'C', 'I', 'P', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'P', '_', 'R', 'E', 'C', 'I', 'P', '_', 'S', 'Q', 'R', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'P', '_', 'S', 'U', 'B', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'P', '_', 'C', 'R', 'O', 'S', 'S', '_', 'P', 'R', 'O', 'D', 'U', 'C', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'P', '_', 'M', 'U', 'L', 'T', 'I', 'P', 'L', 'Y', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'P', '_', 'M', 'O', 'V', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'C', 'O', 'L', 'O', 'R', '0', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'C', 'O', 'L', 'O', 'R', '1', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '0', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '1', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '2', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '3', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '4', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '5', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '6', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '7', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '8', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '9', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '1', '0', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '1', '1', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '1', '2', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '1', '3', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '1', '4', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '1', '5', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '1', '6', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '1', '7', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '1', '8', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '1', '9', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '2', '0', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '2', '1', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '2', '2', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '2', '3', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '2', '4', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '2', '5', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '2', '6', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '2', '7', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '2', '8', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '2', '9', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '3', '0', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '3', '1', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'F', 'O', 'G', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'S', 'C', 'A', 'L', 'A', 'R', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'V', 'E', 'C', 'T', 'O', 'R', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'V', 'A', 'R', 'I', 'A', 'N', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'I', 'N', 'V', 'A', 'R', 'I', 'A', 'N', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'L', 'O', 'C', 'A', 'L', '_', 'C', 'O', 'N', 'S', 'T', 'A', 'N', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'L', 'O', 'C', 'A', 'L', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'I', 'N', 'S', 'T', 'R', 'U', 'C', 'T', 'I', 'O', 'N', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'V', 'A', 'R', 'I', 'A', 'N', 'T', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'I', 'N', 'V', 'A', 'R', 'I', 'A', 'N', 'T', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'L', 'O', 'C', 'A', 'L', '_', 'C', 'O', 'N', 'S', 'T', 'A', 'N', 'T', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'L', 'O', 'C', 'A', 'L', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'O', 'P', 'T', 'I', 'M', 'I', 'Z', 'E', 'D', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'I', 'N', 'S', 'T', 'R', 'U', 'C', 'T', 'I', 'O', 'N', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'O', 'P', 'T', 'I', 'M', 'I', 'Z', 'E', 'D', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'V', 'A', 'R', 'I', 'A', 'N', 'T', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'O', 'P', 'T', 'I', 'M', 'I', 'Z', 'E', 'D', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'L', 'O', 'C', 'A', 'L', '_', 'C', 'O', 'N', 'S', 'T', 'A', 'N', 'T', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'O', 'P', 'T', 'I', 'M', 'I', 'Z', 'E', 'D', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'I', 'N', 'V', 'A', 'R', 'I', 'A', 'N', 'T', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'O', 'P', 'T', 'I', 'M', 'I', 'Z', 'E', 'D', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'L', 'O', 'C', 'A', 'L', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'I', 'N', 'S', 'T', 'R', 'U', 'C', 'T', 'I', 'O', 'N', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'V', 'A', 'R', 'I', 'A', 'N', 'T', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'I', 'N', 'V', 'A', 'R', 'I', 'A', 'N', 'T', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'L', 'O', 'C', 'A', 'L', '_', 'C', 'O', 'N', 'S', 'T', 'A', 'N', 'T', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'L', 'O', 'C', 'A', 'L', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'O', 'P', 'T', 'I', 'M', 'I', 'Z', 'E', 'D', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'X', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'Y', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'Z', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'W', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'N', 'E', 'G', 'A', 'T', 'I', 'V', 'E', '_', 'X', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'N', 'E', 'G', 'A', 'T', 'I', 'V', 'E', '_', 'Y', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'N', 'E', 'G', 'A', 'T', 'I', 'V', 'E', '_', 'Z', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'N', 'E', 'G', 'A', 'T', 'I', 'V', 'E', '_', 'W', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'Z', 'E', 'R', 'O', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'N', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'N', 'E', 'G', 'A', 'T', 'I', 'V', 'E', '_', 'O', 'N', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'N', 'O', 'R', 'M', 'A', 'L', 'I', 'Z', 'E', 'D', '_', 'R', 'A', 'N', 'G', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'F', 'U', 'L', 'L', '_', 'R', 'A', 'N', 'G', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'C', 'U', 'R', 'R', 'E', 'N', 'T', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'M', 'V', 'P', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'V', 'A', 'R', 'I', 'A', 'N', 'T', '_', 'V', 'A', 'L', 'U', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'V', 'A', 'R', 'I', 'A', 'N', 'T', '_', 'D', 'A', 'T', 'A', 'T', 'Y', 'P', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'V', 'A', 'R', 'I', 'A', 'N', 'T', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'T', 'R', 'I', 'D', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'V', 'A', 'R', 'I', 'A', 'N', 'T', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'T', 'Y', 'P', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'V', 'A', 'R', 'I', 'A', 'N', 'T', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'V', 'A', 'R', 'I', 'A', 'N', 'T', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'P', 'O', 'I', 'N', 'T', 'E', 'R', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'I', 'N', 'V', 'A', 'R', 'I', 'A', 'N', 'T', '_', 'V', 'A', 'L', 'U', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'I', 'N', 'V', 'A', 'R', 'I', 'A', 'N', 'T', '_', 'D', 'A', 'T', 'A', 'T', 'Y', 'P', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'L', 'O', 'C', 'A', 'L', '_', 'C', 'O', 'N', 'S', 'T', 'A', 'N', 'T', '_', 'V', 'A', 'L', 'U', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'L', 'O', 'C', 'A', 'L', '_', 'C', 'O', 'N', 'S', 'T', 'A', 'N', 'T', '_', 'D', 'A', 'T', 'A', 'T', 'Y', 'P', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'A', 'T', 'C', '_', 'R', 'G', 'B', 'A', '_', 'I', 'N', 'T', 'E', 'R', 'P', 'O', 'L', 'A', 'T', 'E', 'D', '_', 'A', 'L', 'P', 'H', 'A', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'P', 'N', '_', 'T', 'R', 'I', 'A', 'N', 'G', 'L', 'E', 'S', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'N', '_', 'T', 'R', 'I', 'A', 'N', 'G', 'L', 'E', 'S', '_', 'T', 'E', 'S', 'S', 'E', 'L', 'A', 'T', 'I', 'O', 'N', '_', 'L', 'E', 'V', 'E', 'L', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'P', 'N', '_', 'T', 'R', 'I', 'A', 'N', 'G', 'L', 'E', 'S', '_', 'P', 'O', 'I', 'N', 'T', '_', 'M', 'O', 'D', 'E', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'P', 'N', '_', 'T', 'R', 'I', 'A', 'N', 'G', 'L', 'E', 'S', '_', 'N', 'O', 'R', 'M', 'A', 'L', '_', 'M', 'O', 'D', 'E', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'P', 'N', '_', 'T', 'R', 'I', 'A', 'N', 'G', 'L', 'E', 'S', '_', 'T', 'E', 'S', 'S', 'E', 'L', 'A', 'T', 'I', 'O', 'N', '_', 'L', 'E', 'V', 'E', 'L', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'P', 'N', '_', 'T', 'R', 'I', 'A', 'N', 'G', 'L', 'E', 'S', '_', 'P', 'O', 'I', 'N', 'T', '_', 'M', 'O', 'D', 'E', '_', 'L', 'I', 'N', 'E', 'A', 'R', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'P', 'N', '_', 'T', 'R', 'I', 'A', 'N', 'G', 'L', 'E', 'S', '_', 'P', 'O', 'I', 'N', 'T', '_', 'M', 'O', 'D', 'E', '_', 'C', 'U', 'B', 'I', 'C', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'P', 'N', '_', 'T', 'R', 'I', 'A', 'N', 'G', 'L', 'E', 'S', '_', 'N', 'O', 'R', 'M', 'A', 'L', '_', 'M', 'O', 'D', 'E', '_', 'L', 'I', 'N', 'E', 'A', 'R', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'P', 'N', '_', 'T', 'R', 'I', 'A', 'N', 'G', 'L', 'E', 'S', '_', 'N', 'O', 'R', 'M', 'A', 'L', '_', 'M', 'O', 'D', 'E', '_', 'Q', 'U', 'A', 'D', 'R', 'A', 'T', 'I', 'C', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', '3', 'D', 'C', '_', 'X', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', '3', 'D', 'C', '_', 'X', 'Y', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'V', 'B', 'O', '_', 'F', 'R', 'E', 'E', '_', 'M', 'E', 'M', 'O', 'R', 'Y', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'F', 'R', 'E', 'E', '_', 'M', 'E', 'M', 'O', 'R', 'Y', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'R', 'E', 'N', 'D', 'E', 'R', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'F', 'R', 'E', 'E', '_', 'M', 'E', 'M', 'O', 'R', 'Y', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'N', 'U', 'M', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'B', 'I', 'N', 'A', 'R', 'Y', '_', 'F', 'O', 'R', 'M', 'A', 'T', 'S', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'B', 'I', 'N', 'A', 'R', 'Y', '_', 'F', 'O', 'R', 'M', 'A', 'T', 'S', '\0', - 'G', 'L', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'B', 'A', 'C', 'K', '_', 'F', 'U', 'N', 'C', '\0', - 'G', 'L', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'B', 'A', 'C', 'K', '_', 'F', 'A', 'I', 'L', '\0', - 'G', 'L', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'B', 'A', 'C', 'K', '_', 'P', 'A', 'S', 'S', '_', 'D', 'E', 'P', 'T', 'H', '_', 'F', 'A', 'I', 'L', '\0', - 'G', 'L', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'B', 'A', 'C', 'K', '_', 'P', 'A', 'S', 'S', '_', 'D', 'E', 'P', 'T', 'H', '_', 'P', 'A', 'S', 'S', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'A', 'L', 'U', '_', 'I', 'N', 'S', 'T', 'R', 'U', 'C', 'T', 'I', 'O', 'N', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'T', 'E', 'X', '_', 'I', 'N', 'S', 'T', 'R', 'U', 'C', 'T', 'I', 'O', 'N', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'T', 'E', 'X', '_', 'I', 'N', 'D', 'I', 'R', 'E', 'C', 'T', 'I', 'O', 'N', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'N', 'A', 'T', 'I', 'V', 'E', '_', 'A', 'L', 'U', '_', 'I', 'N', 'S', 'T', 'R', 'U', 'C', 'T', 'I', 'O', 'N', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'N', 'A', 'T', 'I', 'V', 'E', '_', 'T', 'E', 'X', '_', 'I', 'N', 'S', 'T', 'R', 'U', 'C', 'T', 'I', 'O', 'N', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'N', 'A', 'T', 'I', 'V', 'E', '_', 'T', 'E', 'X', '_', 'I', 'N', 'D', 'I', 'R', 'E', 'C', 'T', 'I', 'O', 'N', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'A', 'L', 'U', '_', 'I', 'N', 'S', 'T', 'R', 'U', 'C', 'T', 'I', 'O', 'N', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'T', 'E', 'X', '_', 'I', 'N', 'S', 'T', 'R', 'U', 'C', 'T', 'I', 'O', 'N', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'T', 'E', 'X', '_', 'I', 'N', 'D', 'I', 'R', 'E', 'C', 'T', 'I', 'O', 'N', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'N', 'A', 'T', 'I', 'V', 'E', '_', 'A', 'L', 'U', '_', 'I', 'N', 'S', 'T', 'R', 'U', 'C', 'T', 'I', 'O', 'N', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'N', 'A', 'T', 'I', 'V', 'E', '_', 'T', 'E', 'X', '_', 'I', 'N', 'S', 'T', 'R', 'U', 'C', 'T', 'I', 'O', 'N', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'N', 'A', 'T', 'I', 'V', 'E', '_', 'T', 'E', 'X', '_', 'I', 'N', 'D', 'I', 'R', 'E', 'C', 'T', 'I', 'O', 'N', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'R', 'G', 'B', 'A', '3', '2', 'F', '\0', - 'G', 'L', '_', 'R', 'G', 'B', '3', '2', 'F', '\0', - 'G', 'L', '_', 'A', 'L', 'P', 'H', 'A', '3', '2', 'F', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'N', 'S', 'I', 'T', 'Y', '3', '2', 'F', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '3', '2', 'F', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '_', 'A', 'L', 'P', 'H', 'A', '3', '2', 'F', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'R', 'G', 'B', 'A', '1', '6', 'F', '\0', - 'G', 'L', '_', 'R', 'G', 'B', '1', '6', 'F', '\0', - 'G', 'L', '_', 'A', 'L', 'P', 'H', 'A', '1', '6', 'F', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'N', 'S', 'I', 'T', 'Y', '1', '6', 'F', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '1', '6', 'F', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '_', 'A', 'L', 'P', 'H', 'A', '1', '6', 'F', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'R', 'G', 'B', 'A', '_', 'F', 'L', 'O', 'A', 'T', '_', 'M', 'O', 'D', 'E', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'W', 'R', 'I', 'T', 'E', 'O', 'N', 'L', 'Y', '_', 'R', 'E', 'N', 'D', 'E', 'R', 'I', 'N', 'G', '_', 'Q', 'C', 'O', 'M', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'D', 'R', 'A', 'W', '_', 'B', 'U', 'F', 'F', 'E', 'R', 'S', '\0', - 'G', 'L', '_', 'D', 'R', 'A', 'W', '_', 'B', 'U', 'F', 'F', 'E', 'R', '0', '\0', - 'G', 'L', '_', 'D', 'R', 'A', 'W', '_', 'B', 'U', 'F', 'F', 'E', 'R', '1', '\0', - 'G', 'L', '_', 'D', 'R', 'A', 'W', '_', 'B', 'U', 'F', 'F', 'E', 'R', '2', '\0', - 'G', 'L', '_', 'D', 'R', 'A', 'W', '_', 'B', 'U', 'F', 'F', 'E', 'R', '3', '\0', - 'G', 'L', '_', 'D', 'R', 'A', 'W', '_', 'B', 'U', 'F', 'F', 'E', 'R', '4', '\0', - 'G', 'L', '_', 'D', 'R', 'A', 'W', '_', 'B', 'U', 'F', 'F', 'E', 'R', '5', '\0', - 'G', 'L', '_', 'D', 'R', 'A', 'W', '_', 'B', 'U', 'F', 'F', 'E', 'R', '6', '\0', - 'G', 'L', '_', 'D', 'R', 'A', 'W', '_', 'B', 'U', 'F', 'F', 'E', 'R', '7', '\0', - 'G', 'L', '_', 'D', 'R', 'A', 'W', '_', 'B', 'U', 'F', 'F', 'E', 'R', '8', '\0', - 'G', 'L', '_', 'D', 'R', 'A', 'W', '_', 'B', 'U', 'F', 'F', 'E', 'R', '9', '\0', - 'G', 'L', '_', 'D', 'R', 'A', 'W', '_', 'B', 'U', 'F', 'F', 'E', 'R', '1', '0', '\0', - 'G', 'L', '_', 'D', 'R', 'A', 'W', '_', 'B', 'U', 'F', 'F', 'E', 'R', '1', '1', '\0', - 'G', 'L', '_', 'D', 'R', 'A', 'W', '_', 'B', 'U', 'F', 'F', 'E', 'R', '1', '2', '\0', - 'G', 'L', '_', 'D', 'R', 'A', 'W', '_', 'B', 'U', 'F', 'F', 'E', 'R', '1', '3', '\0', - 'G', 'L', '_', 'D', 'R', 'A', 'W', '_', 'B', 'U', 'F', 'F', 'E', 'R', '1', '4', '\0', - 'G', 'L', '_', 'D', 'R', 'A', 'W', '_', 'B', 'U', 'F', 'F', 'E', 'R', '1', '5', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'C', 'L', 'E', 'A', 'R', '_', 'U', 'N', 'C', 'L', 'A', 'M', 'P', 'E', 'D', '_', 'V', 'A', 'L', 'U', 'E', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'B', 'L', 'E', 'N', 'D', '_', 'E', 'Q', 'U', 'A', 'T', 'I', 'O', 'N', '_', 'A', 'L', 'P', 'H', 'A', '\0', - 'G', 'L', '_', 'S', 'U', 'B', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'D', 'I', 'S', 'T', 'A', 'N', 'C', 'E', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'P', 'A', 'L', 'E', 'T', 'T', 'E', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'P', 'A', 'L', 'E', 'T', 'T', 'E', '_', 'S', 'T', 'A', 'C', 'K', '_', 'D', 'E', 'P', 'T', 'H', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'A', 'L', 'E', 'T', 'T', 'E', '_', 'M', 'A', 'T', 'R', 'I', 'C', 'E', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'C', 'U', 'R', 'R', 'E', 'N', 'T', '_', 'P', 'A', 'L', 'E', 'T', 'T', 'E', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'I', 'N', 'D', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'C', 'U', 'R', 'R', 'E', 'N', 'T', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'I', 'N', 'D', 'E', 'X', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'I', 'N', 'D', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'I', 'Z', 'E', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'I', 'N', 'D', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'T', 'Y', 'P', 'E', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'I', 'N', 'D', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'T', 'R', 'I', 'D', 'E', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'I', 'N', 'D', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'P', 'O', 'I', 'N', 'T', 'E', 'R', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'D', 'E', 'P', 'T', 'H', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'M', 'O', 'D', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'M', 'P', 'A', 'R', 'E', '_', 'M', 'O', 'D', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'M', 'P', 'A', 'R', 'E', '_', 'F', 'U', 'N', 'C', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'A', 'R', 'E', '_', 'R', 'E', 'F', '_', 'T', 'O', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'U', 'B', 'E', '_', 'M', 'A', 'P', '_', 'S', 'E', 'A', 'M', 'L', 'E', 'S', 'S', '\0', - 'G', 'L', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'P', 'R', 'O', 'J', 'E', 'C', 'T', 'I', 'V', 'E', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '2', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'P', 'R', 'O', 'J', 'E', 'C', 'T', 'I', 'V', 'E', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '2', 'D', '_', 'S', 'C', 'A', 'L', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'P', 'R', 'O', 'J', 'E', 'C', 'T', 'I', 'V', 'E', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'R', 'E', 'C', 'T', 'A', 'N', 'G', 'L', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'P', 'R', 'O', 'J', 'E', 'C', 'T', 'I', 'V', 'E', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'R', 'E', 'C', 'T', 'A', 'N', 'G', 'L', 'E', '_', 'S', 'C', 'A', 'L', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'H', 'I', 'L', 'O', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '2', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'H', 'I', 'L', 'O', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'R', 'E', 'C', 'T', 'A', 'N', 'G', 'L', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'H', 'I', 'L', 'O', '_', 'P', 'R', 'O', 'J', 'E', 'C', 'T', 'I', 'V', 'E', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '2', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'H', 'I', 'L', 'O', '_', 'P', 'R', 'O', 'J', 'E', 'C', 'T', 'I', 'V', 'E', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'R', 'E', 'C', 'T', 'A', 'N', 'G', 'L', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'E', 'N', 'D', 'E', 'N', 'T', '_', 'H', 'I', 'L', 'O', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '2', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'E', 'N', 'D', 'E', 'N', 'T', '_', 'R', 'G', 'B', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '3', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'E', 'N', 'D', 'E', 'N', 'T', '_', 'R', 'G', 'B', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'U', 'B', 'E', '_', 'M', 'A', 'P', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'O', 'T', '_', 'P', 'R', 'O', 'D', 'U', 'C', 'T', '_', 'P', 'A', 'S', 'S', '_', 'T', 'H', 'R', 'O', 'U', 'G', 'H', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'O', 'T', '_', 'P', 'R', 'O', 'D', 'U', 'C', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '1', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'O', 'T', '_', 'P', 'R', 'O', 'D', 'U', 'C', 'T', '_', 'A', 'F', 'F', 'I', 'N', 'E', '_', 'D', 'E', 'P', 'T', 'H', '_', 'R', 'E', 'P', 'L', 'A', 'C', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'H', 'I', 'L', 'O', '8', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'H', 'I', 'L', 'O', '8', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'O', 'R', 'C', 'E', '_', 'B', 'L', 'U', 'E', '_', 'T', 'O', '_', 'O', 'N', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'O', 'I', 'N', 'T', '_', 'S', 'P', 'R', 'I', 'T', 'E', '\0', - 'G', 'L', '_', 'C', 'O', 'O', 'R', 'D', '_', 'R', 'E', 'P', 'L', 'A', 'C', 'E', '\0', - 'G', 'L', '_', 'P', 'O', 'I', 'N', 'T', '_', 'S', 'P', 'R', 'I', 'T', 'E', '_', 'R', '_', 'M', 'O', 'D', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'Q', 'U', 'E', 'R', 'Y', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'B', 'I', 'T', 'S', '\0', - 'G', 'L', '_', 'C', 'U', 'R', 'R', 'E', 'N', 'T', '_', 'Q', 'U', 'E', 'R', 'Y', '\0', - 'G', 'L', '_', 'Q', 'U', 'E', 'R', 'Y', '_', 'R', 'E', 'S', 'U', 'L', 'T', '\0', - 'G', 'L', '_', 'Q', 'U', 'E', 'R', 'Y', '_', 'R', 'E', 'S', 'U', 'L', 'T', '_', 'A', 'V', 'A', 'I', 'L', 'A', 'B', 'L', 'E', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'L', 'O', 'C', 'A', 'L', '_', 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', 'S', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'N', 'O', 'R', 'M', 'A', 'L', 'I', 'Z', 'E', 'D', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'T', 'E', 'S', 'S', '_', 'C', 'O', 'N', 'T', 'R', 'O', 'L', '_', 'I', 'N', 'P', 'U', 'T', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'T', 'E', 'S', 'S', '_', 'E', 'V', 'A', 'L', 'U', 'A', 'T', 'I', 'O', 'N', '_', 'I', 'N', 'P', 'U', 'T', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'T', 'O', '_', 'R', 'G', 'B', 'A', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'T', 'O', '_', 'B', 'G', 'R', 'A', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'I', 'M', 'A', 'G', 'E', '_', 'U', 'N', 'I', 'T', 'S', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'E', 'R', 'R', 'O', 'R', '_', 'S', 'T', 'R', 'I', 'N', 'G', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'F', 'O', 'R', 'M', 'A', 'T', '_', 'A', 'S', 'C', 'I', 'I', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'F', 'O', 'R', 'M', 'A', 'T', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'W', 'R', 'I', 'T', 'E', '_', 'P', 'I', 'X', 'E', 'L', '_', 'D', 'A', 'T', 'A', '_', 'R', 'A', 'N', 'G', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'R', 'E', 'A', 'D', '_', 'P', 'I', 'X', 'E', 'L', '_', 'D', 'A', 'T', 'A', '_', 'R', 'A', 'N', 'G', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'W', 'R', 'I', 'T', 'E', '_', 'P', 'I', 'X', 'E', 'L', '_', 'D', 'A', 'T', 'A', '_', 'R', 'A', 'N', 'G', 'E', '_', 'L', 'E', 'N', 'G', 'T', 'H', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'R', 'E', 'A', 'D', '_', 'P', 'I', 'X', 'E', 'L', '_', 'D', 'A', 'T', 'A', '_', 'R', 'A', 'N', 'G', 'E', '_', 'L', 'E', 'N', 'G', 'T', 'H', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'W', 'R', 'I', 'T', 'E', '_', 'P', 'I', 'X', 'E', 'L', '_', 'D', 'A', 'T', 'A', '_', 'R', 'A', 'N', 'G', 'E', '_', 'P', 'O', 'I', 'N', 'T', 'E', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'R', 'E', 'A', 'D', '_', 'P', 'I', 'X', 'E', 'L', '_', 'D', 'A', 'T', 'A', '_', 'R', 'A', 'N', 'G', 'E', '_', 'P', 'O', 'I', 'N', 'T', 'E', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'Y', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'I', 'N', 'V', 'O', 'C', 'A', 'T', 'I', 'O', 'N', 'S', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '_', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '_', 'R', 'G', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '_', 'R', 'G', 'B', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '_', 'R', 'G', 'B', 'A', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '_', 'R', '1', '6', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '_', 'R', '3', '2', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '_', 'R', 'G', '1', '6', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '_', 'R', 'G', '3', '2', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '_', 'R', 'G', 'B', '1', '6', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '_', 'R', 'G', 'B', '3', '2', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '_', 'R', 'G', 'B', 'A', '1', '6', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '_', 'R', 'G', 'B', 'A', '3', '2', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'F', 'L', 'O', 'A', 'T', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '_', 'C', 'L', 'E', 'A', 'R', '_', 'C', 'O', 'L', 'O', 'R', '_', 'V', 'A', 'L', 'U', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '_', 'R', 'G', 'B', 'A', '_', 'M', 'O', 'D', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'R', 'E', 'M', 'A', 'P', '_', 'M', 'O', 'D', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'B', 'O', 'U', 'N', 'D', 'S', '_', 'T', 'E', 'S', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'B', 'O', 'U', 'N', 'D', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'B', 'U', 'F', 'F', 'E', 'R', '\0', - 'G', 'L', '_', 'E', 'L', 'E', 'M', 'E', 'N', 'T', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'B', 'U', 'F', 'F', 'E', 'R', '\0', - 'G', 'L', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'E', 'L', 'E', 'M', 'E', 'N', 'T', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'N', 'O', 'R', 'M', 'A', 'L', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'I', 'N', 'D', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'E', 'D', 'G', 'E', '_', 'F', 'L', 'A', 'G', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'S', 'E', 'C', 'O', 'N', 'D', 'A', 'R', 'Y', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'F', 'O', 'G', '_', 'C', 'O', 'O', 'R', 'D', 'I', 'N', 'A', 'T', 'E', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'W', 'E', 'I', 'G', 'H', 'T', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'I', 'N', 'S', 'T', 'R', 'U', 'C', 'T', 'I', 'O', 'N', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'I', 'N', 'S', 'T', 'R', 'U', 'C', 'T', 'I', 'O', 'N', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'N', 'A', 'T', 'I', 'V', 'E', '_', 'I', 'N', 'S', 'T', 'R', 'U', 'C', 'T', 'I', 'O', 'N', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'N', 'A', 'T', 'I', 'V', 'E', '_', 'I', 'N', 'S', 'T', 'R', 'U', 'C', 'T', 'I', 'O', 'N', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'T', 'E', 'M', 'P', 'O', 'R', 'A', 'R', 'I', 'E', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'T', 'E', 'M', 'P', 'O', 'R', 'A', 'R', 'I', 'E', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'N', 'A', 'T', 'I', 'V', 'E', '_', 'T', 'E', 'M', 'P', 'O', 'R', 'A', 'R', 'I', 'E', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'N', 'A', 'T', 'I', 'V', 'E', '_', 'T', 'E', 'M', 'P', 'O', 'R', 'A', 'R', 'I', 'E', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'N', 'A', 'T', 'I', 'V', 'E', '_', 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'N', 'A', 'T', 'I', 'V', 'E', '_', 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'A', 'T', 'T', 'R', 'I', 'B', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'A', 'T', 'T', 'R', 'I', 'B', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'N', 'A', 'T', 'I', 'V', 'E', '_', 'A', 'T', 'T', 'R', 'I', 'B', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'N', 'A', 'T', 'I', 'V', 'E', '_', 'A', 'T', 'T', 'R', 'I', 'B', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'A', 'D', 'D', 'R', 'E', 'S', 'S', '_', 'R', 'E', 'G', 'I', 'S', 'T', 'E', 'R', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'A', 'D', 'D', 'R', 'E', 'S', 'S', '_', 'R', 'E', 'G', 'I', 'S', 'T', 'E', 'R', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'N', 'A', 'T', 'I', 'V', 'E', '_', 'A', 'D', 'D', 'R', 'E', 'S', 'S', '_', 'R', 'E', 'G', 'I', 'S', 'T', 'E', 'R', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'N', 'A', 'T', 'I', 'V', 'E', '_', 'A', 'D', 'D', 'R', 'E', 'S', 'S', '_', 'R', 'E', 'G', 'I', 'S', 'T', 'E', 'R', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'L', 'O', 'C', 'A', 'L', '_', 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'E', 'N', 'V', '_', 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'U', 'N', 'D', 'E', 'R', '_', 'N', 'A', 'T', 'I', 'V', 'E', '_', 'L', 'I', 'M', 'I', 'T', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'P', 'O', 'S', 'E', '_', 'C', 'U', 'R', 'R', 'E', 'N', 'T', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'R', 'E', 'A', 'D', '_', 'O', 'N', 'L', 'Y', '\0', - 'G', 'L', '_', 'W', 'R', 'I', 'T', 'E', '_', 'O', 'N', 'L', 'Y', '\0', - 'G', 'L', '_', 'R', 'E', 'A', 'D', '_', 'W', 'R', 'I', 'T', 'E', '\0', - 'G', 'L', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'A', 'C', 'C', 'E', 'S', 'S', '\0', - 'G', 'L', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'M', 'A', 'P', 'P', 'E', 'D', '\0', - 'G', 'L', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'M', 'A', 'P', '_', 'P', 'O', 'I', 'N', 'T', 'E', 'R', '\0', - 'G', 'L', '_', 'W', 'R', 'I', 'T', 'E', '_', 'D', 'I', 'S', 'C', 'A', 'R', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'I', 'M', 'E', '_', 'E', 'L', 'A', 'P', 'S', 'E', 'D', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '0', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '1', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '2', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '3', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '4', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '5', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '6', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '7', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '8', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '9', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '1', '0', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '1', '1', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '1', '2', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '1', '3', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '1', '4', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '1', '5', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '1', '6', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '1', '7', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '1', '8', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '1', '9', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '2', '0', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '2', '1', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '2', '2', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '2', '3', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '2', '4', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '2', '5', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '2', '6', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '2', '7', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '2', '8', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '2', '9', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '3', '0', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '3', '1', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'S', 'T', 'R', 'E', 'A', 'M', '_', 'D', 'R', 'A', 'W', '\0', - 'G', 'L', '_', 'S', 'T', 'R', 'E', 'A', 'M', '_', 'R', 'E', 'A', 'D', '\0', - 'G', 'L', '_', 'S', 'T', 'R', 'E', 'A', 'M', '_', 'C', 'O', 'P', 'Y', '\0', - 'G', 'L', '_', 'S', 'T', 'A', 'T', 'I', 'C', '_', 'D', 'R', 'A', 'W', '\0', - 'G', 'L', '_', 'S', 'T', 'A', 'T', 'I', 'C', '_', 'R', 'E', 'A', 'D', '\0', - 'G', 'L', '_', 'S', 'T', 'A', 'T', 'I', 'C', '_', 'C', 'O', 'P', 'Y', '\0', - 'G', 'L', '_', 'D', 'Y', 'N', 'A', 'M', 'I', 'C', '_', 'D', 'R', 'A', 'W', '\0', - 'G', 'L', '_', 'D', 'Y', 'N', 'A', 'M', 'I', 'C', '_', 'R', 'E', 'A', 'D', '\0', - 'G', 'L', '_', 'D', 'Y', 'N', 'A', 'M', 'I', 'C', '_', 'C', 'O', 'P', 'Y', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'P', 'A', 'C', 'K', '_', 'B', 'U', 'F', 'F', 'E', 'R', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'U', 'N', 'P', 'A', 'C', 'K', '_', 'B', 'U', 'F', 'F', 'E', 'R', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'P', 'A', 'C', 'K', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'E', 'T', 'C', '1', '_', 'S', 'R', 'G', 'B', '8', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', '_', 'U', 'N', 'P', 'A', 'C', 'K', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '2', '4', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '8', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'T', 'A', 'G', '_', 'B', 'I', 'T', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'C', 'L', 'E', 'A', 'R', '_', 'T', 'A', 'G', '_', 'V', 'A', 'L', 'U', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'E', 'X', 'E', 'C', '_', 'I', 'N', 'S', 'T', 'R', 'U', 'C', 'T', 'I', 'O', 'N', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'C', 'A', 'L', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'I', 'F', '_', 'D', 'E', 'P', 'T', 'H', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'L', 'O', 'O', 'P', '_', 'D', 'E', 'P', 'T', 'H', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'L', 'O', 'O', 'P', '_', 'C', 'O', 'U', 'N', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'R', 'C', '1', '_', 'C', 'O', 'L', 'O', 'R', '\0', - 'G', 'L', '_', 'O', 'N', 'E', '_', 'M', 'I', 'N', 'U', 'S', '_', 'S', 'R', 'C', '1', '_', 'C', 'O', 'L', 'O', 'R', '\0', - 'G', 'L', '_', 'O', 'N', 'E', '_', 'M', 'I', 'N', 'U', 'S', '_', 'S', 'R', 'C', '1', '_', 'A', 'L', 'P', 'H', 'A', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'D', 'U', 'A', 'L', '_', 'S', 'O', 'U', 'R', 'C', 'E', '_', 'D', 'R', 'A', 'W', '_', 'B', 'U', 'F', 'F', 'E', 'R', 'S', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'I', 'N', 'T', 'E', 'G', 'E', 'R', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'D', 'I', 'V', 'I', 'S', 'O', 'R', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'L', 'A', 'Y', 'E', 'R', 'S', '\0', - 'G', 'L', '_', 'M', 'I', 'N', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'T', 'E', 'X', 'E', 'L', '_', 'O', 'F', 'F', 'S', 'E', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'T', 'E', 'X', 'E', 'L', '_', 'O', 'F', 'F', 'S', 'E', 'T', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'R', 'E', 'S', 'U', 'L', 'T', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'R', 'E', 'S', 'U', 'L', 'T', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'T', 'E', 'S', 'T', '_', 'T', 'W', 'O', '_', 'S', 'I', 'D', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'A', 'C', 'T', 'I', 'V', 'E', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'F', 'A', 'C', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'M', 'I', 'R', 'R', 'O', 'R', '_', 'C', 'L', 'A', 'M', 'P', '_', 'T', 'O', '_', 'B', 'O', 'R', 'D', 'E', 'R', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'S', '_', 'P', 'A', 'S', 'S', 'E', 'D', '\0', - 'G', 'L', '_', 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'Y', '_', 'V', 'E', 'R', 'T', 'I', 'C', 'E', 'S', '_', 'O', 'U', 'T', '\0', - 'G', 'L', '_', 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'Y', '_', 'I', 'N', 'P', 'U', 'T', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'Y', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'C', 'L', 'A', 'M', 'P', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'C', 'O', 'L', 'O', 'R', '\0', - 'G', 'L', '_', 'C', 'L', 'A', 'M', 'P', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'C', 'O', 'L', 'O', 'R', '\0', - 'G', 'L', '_', 'C', 'L', 'A', 'M', 'P', '_', 'R', 'E', 'A', 'D', '_', 'C', 'O', 'L', 'O', 'R', '\0', - 'G', 'L', '_', 'F', 'I', 'X', 'E', 'D', '_', 'O', 'N', 'L', 'Y', '\0', - 'G', 'L', '_', 'T', 'E', 'S', 'S', '_', 'C', 'O', 'N', 'T', 'R', 'O', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'E', 'S', 'S', '_', 'E', 'V', 'A', 'L', 'U', 'A', 'T', 'I', 'O', 'N', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'R', 'E', 'G', '_', '0', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'R', 'E', 'G', '_', '1', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'R', 'E', 'G', '_', '2', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'R', 'E', 'G', '_', '3', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'R', 'E', 'G', '_', '4', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'R', 'E', 'G', '_', '5', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'R', 'E', 'G', '_', '6', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'R', 'E', 'G', '_', '7', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'R', 'E', 'G', '_', '8', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'R', 'E', 'G', '_', '9', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'R', 'E', 'G', '_', '1', '0', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'R', 'E', 'G', '_', '1', '1', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'R', 'E', 'G', '_', '1', '2', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'R', 'E', 'G', '_', '1', '3', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'R', 'E', 'G', '_', '1', '4', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'R', 'E', 'G', '_', '1', '5', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'R', 'E', 'G', '_', '1', '6', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'R', 'E', 'G', '_', '1', '7', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'R', 'E', 'G', '_', '1', '8', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'R', 'E', 'G', '_', '1', '9', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'R', 'E', 'G', '_', '2', '0', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'R', 'E', 'G', '_', '2', '1', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'R', 'E', 'G', '_', '2', '2', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'R', 'E', 'G', '_', '2', '3', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'R', 'E', 'G', '_', '2', '4', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'R', 'E', 'G', '_', '2', '5', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'R', 'E', 'G', '_', '2', '6', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'R', 'E', 'G', '_', '2', '7', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'R', 'E', 'G', '_', '2', '8', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'R', 'E', 'G', '_', '2', '9', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'R', 'E', 'G', '_', '3', '0', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'R', 'E', 'G', '_', '3', '1', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'O', 'N', '_', '0', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'O', 'N', '_', '1', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'O', 'N', '_', '2', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'O', 'N', '_', '3', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'O', 'N', '_', '4', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'O', 'N', '_', '5', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'O', 'N', '_', '6', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'O', 'N', '_', '7', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'O', 'N', '_', '8', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'O', 'N', '_', '9', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'O', 'N', '_', '1', '0', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'O', 'N', '_', '1', '1', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'O', 'N', '_', '1', '2', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'O', 'N', '_', '1', '3', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'O', 'N', '_', '1', '4', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'O', 'N', '_', '1', '5', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'O', 'N', '_', '1', '6', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'O', 'N', '_', '1', '7', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'O', 'N', '_', '1', '8', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'O', 'N', '_', '1', '9', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'O', 'N', '_', '2', '0', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'O', 'N', '_', '2', '1', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'O', 'N', '_', '2', '2', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'O', 'N', '_', '2', '3', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'O', 'N', '_', '2', '4', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'O', 'N', '_', '2', '5', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'O', 'N', '_', '2', '6', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'O', 'N', '_', '2', '7', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'O', 'N', '_', '2', '8', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'O', 'N', '_', '2', '9', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'O', 'N', '_', '3', '0', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'O', 'N', '_', '3', '1', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'M', 'O', 'V', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'A', 'D', 'D', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'M', 'U', 'L', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'S', 'U', 'B', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'D', 'O', 'T', '3', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'D', 'O', 'T', '4', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'M', 'A', 'D', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'L', 'E', 'R', 'P', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'N', 'D', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'N', 'D', '0', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'D', 'O', 'T', '2', '_', 'A', 'D', 'D', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'S', 'E', 'C', 'O', 'N', 'D', 'A', 'R', 'Y', '_', 'I', 'N', 'T', 'E', 'R', 'P', 'O', 'L', 'A', 'T', 'O', 'R', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'N', 'U', 'M', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'R', 'E', 'G', 'I', 'S', 'T', 'E', 'R', 'S', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'N', 'U', 'M', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'C', 'O', 'N', 'S', 'T', 'A', 'N', 'T', 'S', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'N', 'U', 'M', '_', 'P', 'A', 'S', 'S', 'E', 'S', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'N', 'U', 'M', '_', 'I', 'N', 'S', 'T', 'R', 'U', 'C', 'T', 'I', 'O', 'N', 'S', '_', 'P', 'E', 'R', '_', 'P', 'A', 'S', 'S', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'N', 'U', 'M', '_', 'I', 'N', 'S', 'T', 'R', 'U', 'C', 'T', 'I', 'O', 'N', 'S', '_', 'T', 'O', 'T', 'A', 'L', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'N', 'U', 'M', '_', 'I', 'N', 'P', 'U', 'T', '_', 'I', 'N', 'T', 'E', 'R', 'P', 'O', 'L', 'A', 'T', 'O', 'R', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'N', 'U', 'M', '_', 'L', 'O', 'O', 'P', 'B', 'A', 'C', 'K', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'L', 'P', 'H', 'A', '_', 'P', 'A', 'I', 'R', 'I', 'N', 'G', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'S', 'W', 'I', 'Z', 'Z', 'L', 'E', '_', 'S', 'T', 'R', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'S', 'W', 'I', 'Z', 'Z', 'L', 'E', '_', 'S', 'T', 'Q', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'S', 'W', 'I', 'Z', 'Z', 'L', 'E', '_', 'S', 'T', 'R', '_', 'D', 'R', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'S', 'W', 'I', 'Z', 'Z', 'L', 'E', '_', 'S', 'T', 'Q', '_', 'D', 'Q', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'S', 'W', 'I', 'Z', 'Z', 'L', 'E', '_', 'S', 'T', 'R', 'Q', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'S', 'W', 'I', 'Z', 'Z', 'L', 'E', '_', 'S', 'T', 'R', 'Q', '_', 'D', 'Q', '_', 'A', 'T', 'I', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'R', 'L', 'A', 'C', 'E', '_', 'O', 'M', 'L', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'R', 'L', 'A', 'C', 'E', '_', 'R', 'E', 'A', 'D', '_', 'O', 'M', 'L', '\0', - 'G', 'L', '_', 'F', 'O', 'R', 'M', 'A', 'T', '_', 'S', 'U', 'B', 'S', 'A', 'M', 'P', 'L', 'E', '_', '2', '4', '_', '2', '4', '_', 'O', 'M', 'L', '\0', - 'G', 'L', '_', 'F', 'O', 'R', 'M', 'A', 'T', '_', 'S', 'U', 'B', 'S', 'A', 'M', 'P', 'L', 'E', '_', '2', '4', '4', '_', '2', '4', '4', '_', 'O', 'M', 'L', '\0', - 'G', 'L', '_', 'P', 'A', 'C', 'K', '_', 'R', 'E', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'O', 'M', 'L', '\0', - 'G', 'L', '_', 'U', 'N', 'P', 'A', 'C', 'K', '_', 'R', 'E', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'O', 'M', 'L', '\0', - 'G', 'L', '_', 'R', 'E', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'R', 'E', 'P', 'L', 'I', 'C', 'A', 'T', 'E', '_', 'O', 'M', 'L', '\0', - 'G', 'L', '_', 'R', 'E', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'Z', 'E', 'R', 'O', '_', 'F', 'I', 'L', 'L', '_', 'O', 'M', 'L', '\0', - 'G', 'L', '_', 'R', 'E', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'A', 'V', 'E', 'R', 'A', 'G', 'E', '_', 'O', 'M', 'L', '\0', - 'G', 'L', '_', 'R', 'E', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'D', 'E', 'C', 'I', 'M', 'A', 'T', 'E', '_', 'O', 'M', 'L', '\0', - 'G', 'L', '_', 'P', 'O', 'I', 'N', 'T', '_', 'S', 'I', 'Z', 'E', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'T', 'Y', 'P', 'E', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'P', 'O', 'I', 'N', 'T', '_', 'S', 'I', 'Z', 'E', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'T', 'R', 'I', 'D', 'E', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'P', 'O', 'I', 'N', 'T', '_', 'S', 'I', 'Z', 'E', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'P', 'O', 'I', 'N', 'T', 'E', 'R', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'E', 'L', 'V', 'I', 'E', 'W', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'F', 'L', 'O', 'A', 'T', '_', 'A', 'S', '_', 'I', 'N', 'T', '_', 'B', 'I', 'T', 'S', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'J', 'E', 'C', 'T', 'I', 'O', 'N', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'F', 'L', 'O', 'A', 'T', '_', 'A', 'S', '_', 'I', 'N', 'T', '_', 'B', 'I', 'T', 'S', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'F', 'L', 'O', 'A', 'T', '_', 'A', 'S', '_', 'I', 'N', 'T', '_', 'B', 'I', 'T', 'S', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'M', 'A', 'P', '1', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'M', 'A', 'P', '2', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'M', 'A', 'P', '1', '_', 'S', 'I', 'Z', 'E', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'M', 'A', 'P', '1', '_', 'C', 'O', 'E', 'F', 'F', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'M', 'A', 'P', '1', '_', 'O', 'R', 'D', 'E', 'R', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'M', 'A', 'P', '1', '_', 'D', 'O', 'M', 'A', 'I', 'N', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'M', 'A', 'P', '2', '_', 'S', 'I', 'Z', 'E', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'M', 'A', 'P', '2', '_', 'C', 'O', 'E', 'F', 'F', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'M', 'A', 'P', '2', '_', 'O', 'R', 'D', 'E', 'R', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'M', 'A', 'P', '2', '_', 'D', 'O', 'M', 'A', 'I', 'N', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'D', 'R', 'A', 'W', '_', 'P', 'I', 'X', 'E', 'L', 'S', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'F', 'E', 'N', 'C', 'E', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'E', 'L', 'E', 'M', 'E', 'N', 'T', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'E', 'L', 'E', 'M', 'E', 'N', 'T', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'T', 'Y', 'P', 'E', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'E', 'L', 'E', 'M', 'E', 'N', 'T', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'P', 'O', 'I', 'N', 'T', 'E', 'R', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'F', 'L', 'O', 'A', 'T', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'B', 'U', 'F', 'F', 'E', 'R', '\0', - 'G', 'L', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'S', 'E', 'R', 'I', 'A', 'L', 'I', 'Z', 'E', 'D', '_', 'M', 'O', 'D', 'I', 'F', 'Y', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'F', 'L', 'U', 'S', 'H', 'I', 'N', 'G', '_', 'U', 'N', 'M', 'A', 'P', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'A', 'U', 'X', '_', 'D', 'E', 'P', 'T', 'H', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'P', 'A', 'C', 'K', '_', 'R', 'O', 'W', '_', 'B', 'Y', 'T', 'E', 'S', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'U', 'N', 'P', 'A', 'C', 'K', '_', 'R', 'O', 'W', '_', 'B', 'Y', 'T', 'E', 'S', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'R', 'E', 'L', 'E', 'A', 'S', 'E', 'D', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'V', 'O', 'L', 'A', 'T', 'I', 'L', 'E', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'R', 'E', 'T', 'A', 'I', 'N', 'E', 'D', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'U', 'N', 'D', 'E', 'F', 'I', 'N', 'E', 'D', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'P', 'U', 'R', 'G', 'E', 'A', 'B', 'L', 'E', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'R', 'G', 'B', '_', '4', '2', '2', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'S', 'T', 'A', 'R', 'T', '\0', - 'G', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'B', 'L', 'O', 'C', 'K', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'Y', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'B', 'L', 'O', 'C', 'K', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'B', 'L', 'O', 'C', 'K', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'D', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'B', 'L', 'O', 'C', 'K', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'B', 'L', 'O', 'C', 'K', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'D', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'D', '_', 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'Y', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'D', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '\0', - 'G', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'A', 'L', 'I', 'G', 'N', 'M', 'E', 'N', 'T', '\0', - 'G', 'L', '_', 'A', 'C', 'T', 'I', 'V', 'E', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'B', 'L', 'O', 'C', 'K', '_', 'M', 'A', 'X', '_', 'N', 'A', 'M', 'E', '_', 'L', 'E', 'N', 'G', 'T', 'H', '\0', - 'G', 'L', '_', 'A', 'C', 'T', 'I', 'V', 'E', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'B', 'L', 'O', 'C', 'K', 'S', '\0', - 'G', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'N', 'A', 'M', 'E', '_', 'L', 'E', 'N', 'G', 'T', 'H', '\0', - 'G', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'B', 'L', 'O', 'C', 'K', '_', 'I', 'N', 'D', 'E', 'X', '\0', - 'G', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'O', 'F', 'F', 'S', 'E', 'T', '\0', - 'G', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'T', 'R', 'I', 'D', 'E', '\0', - 'G', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'S', 'T', 'R', 'I', 'D', 'E', '\0', - 'G', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'I', 'S', '_', 'R', 'O', 'W', '_', 'M', 'A', 'J', 'O', 'R', '\0', - 'G', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'B', 'L', 'O', 'C', 'K', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'B', 'L', 'O', 'C', 'K', '_', 'D', 'A', 'T', 'A', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'B', 'L', 'O', 'C', 'K', '_', 'N', 'A', 'M', 'E', '_', 'L', 'E', 'N', 'G', 'T', 'H', '\0', - 'G', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'B', 'L', 'O', 'C', 'K', '_', 'A', 'C', 'T', 'I', 'V', 'E', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', 'S', '\0', - 'G', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'B', 'L', 'O', 'C', 'K', '_', 'A', 'C', 'T', 'I', 'V', 'E', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'I', 'N', 'D', 'I', 'C', 'E', 'S', '\0', - 'G', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'B', 'L', 'O', 'C', 'K', '_', 'R', 'E', 'F', 'E', 'R', 'E', 'N', 'C', 'E', 'D', '_', 'B', 'Y', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'H', 'A', 'D', 'E', 'R', '\0', - 'G', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'B', 'L', 'O', 'C', 'K', '_', 'R', 'E', 'F', 'E', 'R', 'E', 'N', 'C', 'E', 'D', '_', 'B', 'Y', '_', 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'Y', '_', 'S', 'H', 'A', 'D', 'E', 'R', '\0', - 'G', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'B', 'L', 'O', 'C', 'K', '_', 'R', 'E', 'F', 'E', 'R', 'E', 'N', 'C', 'E', 'D', '_', 'B', 'Y', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'S', 'H', 'A', 'D', 'E', 'R', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'S', 'R', 'G', 'B', '_', 'D', 'E', 'C', 'O', 'D', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'D', 'E', 'C', 'O', 'D', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'S', 'K', 'I', 'P', '_', 'D', 'E', 'C', 'O', 'D', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'P', 'I', 'P', 'E', 'L', 'I', 'N', 'E', '_', 'O', 'B', 'J', 'E', 'C', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'R', 'G', 'B', '_', 'R', 'A', 'W', '_', '4', '2', '2', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'D', 'I', 'S', 'C', 'A', 'R', 'D', 'S', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'S', 'Y', 'N', 'C', '_', 'O', 'B', 'J', 'E', 'C', 'T', '_', 'A', 'P', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '_', 'P', 'V', 'R', 'T', 'C', '_', '2', 'B', 'P', 'P', 'V', '1', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '_', 'P', 'V', 'R', 'T', 'C', '_', '4', 'B', 'P', 'P', 'V', '1', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '_', 'A', 'L', 'P', 'H', 'A', '_', 'P', 'V', 'R', 'T', 'C', '_', '2', 'B', 'P', 'P', 'V', '1', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '_', 'A', 'L', 'P', 'H', 'A', '_', 'P', 'V', 'R', 'T', 'C', '_', '4', 'B', 'P', 'P', 'V', '1', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'S', 'H', 'A', 'D', 'E', 'R', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'H', 'A', 'D', 'E', 'R', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'O', 'B', 'J', 'E', 'C', 'T', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'O', 'B', 'J', 'E', 'C', 'T', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'V', 'A', 'R', 'Y', 'I', 'N', 'G', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'I', 'M', 'A', 'G', 'E', '_', 'U', 'N', 'I', 'T', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'D', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'I', 'M', 'A', 'G', 'E', '_', 'U', 'N', 'I', 'T', 'S', '\0', - 'G', 'L', '_', 'O', 'B', 'J', 'E', 'C', 'T', '_', 'T', 'Y', 'P', 'E', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '_', 'V', 'E', 'C', '2', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '_', 'V', 'E', 'C', '3', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '_', 'V', 'E', 'C', '4', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '_', 'V', 'E', 'C', '2', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '_', 'V', 'E', 'C', '3', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '_', 'V', 'E', 'C', '4', '\0', - 'G', 'L', '_', 'B', 'O', 'O', 'L', '\0', - 'G', 'L', '_', 'B', 'O', 'O', 'L', '_', 'V', 'E', 'C', '2', '\0', - 'G', 'L', '_', 'B', 'O', 'O', 'L', '_', 'V', 'E', 'C', '3', '\0', - 'G', 'L', '_', 'B', 'O', 'O', 'L', '_', 'V', 'E', 'C', '4', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '_', 'M', 'A', 'T', '2', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '_', 'M', 'A', 'T', '3', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '_', 'M', 'A', 'T', '4', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', '1', 'D', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', '2', 'D', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', '3', 'D', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', 'C', 'U', 'B', 'E', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', '1', 'D', '_', 'S', 'H', 'A', 'D', 'O', 'W', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', '2', 'D', '_', 'S', 'H', 'A', 'D', 'O', 'W', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', '2', 'D', '_', 'R', 'E', 'C', 'T', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', '2', 'D', '_', 'R', 'E', 'C', 'T', '_', 'S', 'H', 'A', 'D', 'O', 'W', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '_', 'M', 'A', 'T', '2', 'x', '3', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '_', 'M', 'A', 'T', '2', 'x', '4', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '_', 'M', 'A', 'T', '3', 'x', '2', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '_', 'M', 'A', 'T', '3', 'x', '4', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '_', 'M', 'A', 'T', '4', 'x', '2', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '_', 'M', 'A', 'T', '4', 'x', '3', '\0', - 'G', 'L', '_', 'D', 'E', 'L', 'E', 'T', 'E', '_', 'S', 'T', 'A', 'T', 'U', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'I', 'L', 'E', '_', 'S', 'T', 'A', 'T', 'U', 'S', '\0', - 'G', 'L', '_', 'L', 'I', 'N', 'K', '_', 'S', 'T', 'A', 'T', 'U', 'S', '\0', - 'G', 'L', '_', 'V', 'A', 'L', 'I', 'D', 'A', 'T', 'E', '_', 'S', 'T', 'A', 'T', 'U', 'S', '\0', - 'G', 'L', '_', 'I', 'N', 'F', 'O', '_', 'L', 'O', 'G', '_', 'L', 'E', 'N', 'G', 'T', 'H', '\0', - 'G', 'L', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'E', 'D', '_', 'S', 'H', 'A', 'D', 'E', 'R', 'S', '\0', - 'G', 'L', '_', 'A', 'C', 'T', 'I', 'V', 'E', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', 'S', '\0', - 'G', 'L', '_', 'A', 'C', 'T', 'I', 'V', 'E', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'M', 'A', 'X', '_', 'L', 'E', 'N', 'G', 'T', 'H', '\0', - 'G', 'L', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'S', 'O', 'U', 'R', 'C', 'E', '_', 'L', 'E', 'N', 'G', 'T', 'H', '\0', - 'G', 'L', '_', 'A', 'C', 'T', 'I', 'V', 'E', '_', 'A', 'T', 'T', 'R', 'I', 'B', 'U', 'T', 'E', 'S', '\0', - 'G', 'L', '_', 'A', 'C', 'T', 'I', 'V', 'E', '_', 'A', 'T', 'T', 'R', 'I', 'B', 'U', 'T', 'E', '_', 'M', 'A', 'X', '_', 'L', 'E', 'N', 'G', 'T', 'H', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'D', 'E', 'R', 'I', 'V', 'A', 'T', 'I', 'V', 'E', '_', 'H', 'I', 'N', 'T', '\0', - 'G', 'L', '_', 'S', 'H', 'A', 'D', 'I', 'N', 'G', '_', 'L', 'A', 'N', 'G', 'U', 'A', 'G', 'E', '_', 'V', 'E', 'R', 'S', 'I', 'O', 'N', '\0', - 'G', 'L', '_', 'C', 'U', 'R', 'R', 'E', 'N', 'T', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '\0', - 'G', 'L', '_', 'P', 'A', 'L', 'E', 'T', 'T', 'E', '4', '_', 'R', 'G', 'B', '8', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'P', 'A', 'L', 'E', 'T', 'T', 'E', '4', '_', 'R', 'G', 'B', 'A', '8', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'P', 'A', 'L', 'E', 'T', 'T', 'E', '4', '_', 'R', '5', '_', 'G', '6', '_', 'B', '5', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'P', 'A', 'L', 'E', 'T', 'T', 'E', '4', '_', 'R', 'G', 'B', 'A', '4', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'P', 'A', 'L', 'E', 'T', 'T', 'E', '4', '_', 'R', 'G', 'B', '5', '_', 'A', '1', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'P', 'A', 'L', 'E', 'T', 'T', 'E', '8', '_', 'R', 'G', 'B', '8', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'P', 'A', 'L', 'E', 'T', 'T', 'E', '8', '_', 'R', 'G', 'B', 'A', '8', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'P', 'A', 'L', 'E', 'T', 'T', 'E', '8', '_', 'R', '5', '_', 'G', '6', '_', 'B', '5', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'P', 'A', 'L', 'E', 'T', 'T', 'E', '8', '_', 'R', 'G', 'B', 'A', '4', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'P', 'A', 'L', 'E', 'T', 'T', 'E', '8', '_', 'R', 'G', 'B', '5', '_', 'A', '1', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'I', 'M', 'P', 'L', 'E', 'M', 'E', 'N', 'T', 'A', 'T', 'I', 'O', 'N', '_', 'C', 'O', 'L', 'O', 'R', '_', 'R', 'E', 'A', 'D', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'I', 'M', 'P', 'L', 'E', 'M', 'E', 'N', 'T', 'A', 'T', 'I', 'O', 'N', '_', 'C', 'O', 'L', 'O', 'R', '_', 'R', 'E', 'A', 'D', '_', 'F', 'O', 'R', 'M', 'A', 'T', '\0', - 'G', 'L', '_', 'P', 'O', 'I', 'N', 'T', '_', 'S', 'I', 'Z', 'E', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'R', 'O', 'P', '_', 'R', 'E', 'C', 'T', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'I', 'N', 'D', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'P', 'O', 'I', 'N', 'T', '_', 'S', 'I', 'Z', 'E', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'T', 'Y', 'P', 'E', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'R', 'A', 'N', 'G', 'E', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '6', '4', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'P', 'E', 'R', 'C', 'E', 'N', 'T', 'A', 'G', 'E', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'P', 'E', 'R', 'F', 'M', 'O', 'N', '_', 'R', 'E', 'S', 'U', 'L', 'T', '_', 'A', 'V', 'A', 'I', 'L', 'A', 'B', 'L', 'E', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'P', 'E', 'R', 'F', 'M', 'O', 'N', '_', 'R', 'E', 'S', 'U', 'L', 'T', '_', 'S', 'I', 'Z', 'E', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'P', 'E', 'R', 'F', 'M', 'O', 'N', '_', 'R', 'E', 'S', 'U', 'L', 'T', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'W', 'I', 'D', 'T', 'H', '_', 'Q', 'C', 'O', 'M', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'H', 'E', 'I', 'G', 'H', 'T', '_', 'Q', 'C', 'O', 'M', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'D', 'E', 'P', 'T', 'H', '_', 'Q', 'C', 'O', 'M', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'I', 'N', 'T', 'E', 'R', 'N', 'A', 'L', '_', 'F', 'O', 'R', 'M', 'A', 'T', '_', 'Q', 'C', 'O', 'M', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'F', 'O', 'R', 'M', 'A', 'T', '_', 'Q', 'C', 'O', 'M', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'T', 'Y', 'P', 'E', '_', 'Q', 'C', 'O', 'M', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'I', 'M', 'A', 'G', 'E', '_', 'V', 'A', 'L', 'I', 'D', '_', 'Q', 'C', 'O', 'M', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'N', 'U', 'M', '_', 'L', 'E', 'V', 'E', 'L', 'S', '_', 'Q', 'C', 'O', 'M', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'T', 'A', 'R', 'G', 'E', 'T', '_', 'Q', 'C', 'O', 'M', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'O', 'B', 'J', 'E', 'C', 'T', '_', 'V', 'A', 'L', 'I', 'D', '_', 'Q', 'C', 'O', 'M', '\0', - 'G', 'L', '_', 'S', 'T', 'A', 'T', 'E', '_', 'R', 'E', 'S', 'T', 'O', 'R', 'E', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', 'E', 'X', 'T', 'E', 'R', 'N', 'A', 'L', '_', '2', 'D', '_', 'Y', '2', 'Y', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'P', 'R', 'O', 'T', 'E', 'C', 'T', 'E', 'D', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', '_', 'P', 'V', 'R', 'T', 'C', '_', '4', 'B', 'P', 'P', 'V', '1', '_', 'I', 'M', 'G', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', '_', 'P', 'V', 'R', 'T', 'C', '_', '2', 'B', 'P', 'P', 'V', '1', '_', 'I', 'M', 'G', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '_', 'P', 'V', 'R', 'T', 'C', '_', '4', 'B', 'P', 'P', 'V', '1', '_', 'I', 'M', 'G', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '_', 'P', 'V', 'R', 'T', 'C', '_', '2', 'B', 'P', 'P', 'V', '1', '_', 'I', 'M', 'G', '\0', - 'G', 'L', '_', 'M', 'O', 'D', 'U', 'L', 'A', 'T', 'E', '_', 'C', 'O', 'L', 'O', 'R', '_', 'I', 'M', 'G', '\0', - 'G', 'L', '_', 'R', 'E', 'C', 'I', 'P', '_', 'A', 'D', 'D', '_', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'A', 'L', 'P', 'H', 'A', '_', 'I', 'M', 'G', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'A', 'L', 'P', 'H', 'A', '_', 'M', 'O', 'D', 'U', 'L', 'A', 'T', 'E', '_', 'I', 'M', 'G', '\0', - 'G', 'L', '_', 'F', 'A', 'C', 'T', 'O', 'R', '_', 'A', 'L', 'P', 'H', 'A', '_', 'M', 'O', 'D', 'U', 'L', 'A', 'T', 'E', '_', 'I', 'M', 'G', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'A', 'L', 'P', 'H', 'A', '_', 'M', 'O', 'D', 'U', 'L', 'A', 'T', 'E', '_', 'I', 'M', 'G', '\0', - 'G', 'L', '_', 'A', 'D', 'D', '_', 'B', 'L', 'E', 'N', 'D', '_', 'I', 'M', 'G', '\0', - 'G', 'L', '_', 'S', 'G', 'X', '_', 'B', 'I', 'N', 'A', 'R', 'Y', '_', 'I', 'M', 'G', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'R', 'E', 'D', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'G', 'R', 'E', 'E', 'N', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'B', 'L', 'U', 'E', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'A', 'L', 'P', 'H', 'A', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'I', 'N', 'T', 'E', 'N', 'S', 'I', 'T', 'Y', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'D', 'E', 'P', 'T', 'H', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'N', 'O', 'R', 'M', 'A', 'L', 'I', 'Z', 'E', 'D', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '1', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'X', 'Y', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '1', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '2', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'X', 'Y', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '2', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', '1', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', '2', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'Y', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'V', 'E', 'R', 'T', 'I', 'C', 'E', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'T', 'O', 'T', 'A', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'Y', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'I', 'M', 'A', 'G', 'E', '_', 'U', 'N', 'I', 'T', 'S', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', 'B', 'U', 'F', 'F', 'E', 'R', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'D', 'A', 'T', 'A', '_', 'S', 'T', 'O', 'R', 'E', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'F', 'O', 'R', 'M', 'A', 'T', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'A', 'N', 'Y', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'S', '_', 'P', 'A', 'S', 'S', 'E', 'D', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'S', 'H', 'A', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'M', 'I', 'N', '_', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'S', 'H', 'A', 'D', 'I', 'N', 'G', '_', 'V', 'A', 'L', 'U', 'E', '\0', - 'G', 'L', '_', 'R', '1', '1', 'F', '_', 'G', '1', '1', 'F', '_', 'B', '1', '0', 'F', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', '1', '0', 'F', '_', '1', '1', 'F', '_', '1', '1', 'F', '_', 'R', 'E', 'V', '\0', - 'G', 'L', '_', 'R', 'G', 'B', 'A', '_', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'R', 'G', 'B', '9', '_', 'E', '5', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', '5', '_', '9', '_', '9', '_', '9', '_', 'R', 'E', 'V', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'S', 'H', 'A', 'R', 'E', 'D', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'S', 'R', 'G', 'B', '\0', - 'G', 'L', '_', 'S', 'R', 'G', 'B', '8', '\0', - 'G', 'L', '_', 'S', 'R', 'G', 'B', '_', 'A', 'L', 'P', 'H', 'A', '\0', - 'G', 'L', '_', 'S', 'R', 'G', 'B', '8', '_', 'A', 'L', 'P', 'H', 'A', '8', '\0', - 'G', 'L', '_', 'S', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '_', 'A', 'L', 'P', 'H', 'A', '\0', - 'G', 'L', '_', 'S', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '8', '_', 'A', 'L', 'P', 'H', 'A', '8', '\0', - 'G', 'L', '_', 'S', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '\0', - 'G', 'L', '_', 'S', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '8', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '_', 'A', 'L', 'P', 'H', 'A', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '_', 'A', 'L', 'P', 'H', 'A', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '_', 'S', '3', 'T', 'C', '_', 'D', 'X', 'T', '1', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '_', 'A', 'L', 'P', 'H', 'A', '_', 'S', '3', 'T', 'C', '_', 'D', 'X', 'T', '1', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '_', 'A', 'L', 'P', 'H', 'A', '_', 'S', '3', 'T', 'C', '_', 'D', 'X', 'T', '3', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '_', 'A', 'L', 'P', 'H', 'A', '_', 'S', '3', 'T', 'C', '_', 'D', 'X', 'T', '5', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '_', 'L', 'A', 'T', 'C', '1', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '_', 'L', 'A', 'T', 'C', '1', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '_', 'A', 'L', 'P', 'H', 'A', '_', 'L', 'A', 'T', 'C', '2', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '_', 'A', 'L', 'P', 'H', 'A', '_', 'L', 'A', 'T', 'C', '2', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'T', 'E', 'S', 'S', '_', 'C', 'O', 'N', 'T', 'R', 'O', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'E', 'S', 'S', '_', 'E', 'V', 'A', 'L', 'U', 'A', 'T', 'I', 'O', 'N', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'F', 'O', 'R', 'M', '_', 'F', 'E', 'E', 'D', 'B', 'A', 'C', 'K', '_', 'V', 'A', 'R', 'Y', 'I', 'N', 'G', '_', 'M', 'A', 'X', '_', 'L', 'E', 'N', 'G', 'T', 'H', '\0', - 'G', 'L', '_', 'B', 'A', 'C', 'K', '_', 'P', 'R', 'I', 'M', 'A', 'R', 'Y', '_', 'C', 'O', 'L', 'O', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'B', 'A', 'C', 'K', '_', 'S', 'E', 'C', 'O', 'N', 'D', 'A', 'R', 'Y', '_', 'C', 'O', 'L', 'O', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'L', 'I', 'P', '_', 'D', 'I', 'S', 'T', 'A', 'N', 'C', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'I', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'R', 'I', 'M', 'I', 'T', 'I', 'V', 'E', '_', 'I', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'G', 'E', 'N', 'E', 'R', 'I', 'C', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'F', 'O', 'R', 'M', '_', 'F', 'E', 'E', 'D', 'B', 'A', 'C', 'K', '_', 'A', 'T', 'T', 'R', 'I', 'B', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'F', 'O', 'R', 'M', '_', 'F', 'E', 'E', 'D', 'B', 'A', 'C', 'K', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'M', 'O', 'D', 'E', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'T', 'R', 'A', 'N', 'S', 'F', 'O', 'R', 'M', '_', 'F', 'E', 'E', 'D', 'B', 'A', 'C', 'K', '_', 'S', 'E', 'P', 'A', 'R', 'A', 'T', 'E', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '\0', - 'G', 'L', '_', 'A', 'C', 'T', 'I', 'V', 'E', '_', 'V', 'A', 'R', 'Y', 'I', 'N', 'G', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'A', 'C', 'T', 'I', 'V', 'E', '_', 'V', 'A', 'R', 'Y', 'I', 'N', 'G', '_', 'M', 'A', 'X', '_', 'L', 'E', 'N', 'G', 'T', 'H', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'F', 'O', 'R', 'M', '_', 'F', 'E', 'E', 'D', 'B', 'A', 'C', 'K', '_', 'V', 'A', 'R', 'Y', 'I', 'N', 'G', 'S', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'F', 'O', 'R', 'M', '_', 'F', 'E', 'E', 'D', 'B', 'A', 'C', 'K', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'S', 'T', 'A', 'R', 'T', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'F', 'O', 'R', 'M', '_', 'F', 'E', 'E', 'D', 'B', 'A', 'C', 'K', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'F', 'O', 'R', 'M', '_', 'F', 'E', 'E', 'D', 'B', 'A', 'C', 'K', '_', 'R', 'E', 'C', 'O', 'R', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'R', 'I', 'M', 'I', 'T', 'I', 'V', 'E', 'S', '_', 'G', 'E', 'N', 'E', 'R', 'A', 'T', 'E', 'D', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'F', 'O', 'R', 'M', '_', 'F', 'E', 'E', 'D', 'B', 'A', 'C', 'K', '_', 'P', 'R', 'I', 'M', 'I', 'T', 'I', 'V', 'E', 'S', '_', 'W', 'R', 'I', 'T', 'T', 'E', 'N', '\0', - 'G', 'L', '_', 'R', 'A', 'S', 'T', 'E', 'R', 'I', 'Z', 'E', 'R', '_', 'D', 'I', 'S', 'C', 'A', 'R', 'D', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'T', 'R', 'A', 'N', 'S', 'F', 'O', 'R', 'M', '_', 'F', 'E', 'E', 'D', 'B', 'A', 'C', 'K', '_', 'I', 'N', 'T', 'E', 'R', 'L', 'E', 'A', 'V', 'E', 'D', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'T', 'R', 'A', 'N', 'S', 'F', 'O', 'R', 'M', '_', 'F', 'E', 'E', 'D', 'B', 'A', 'C', 'K', '_', 'S', 'E', 'P', 'A', 'R', 'A', 'T', 'E', '_', 'A', 'T', 'T', 'R', 'I', 'B', 'S', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'R', 'L', 'E', 'A', 'V', 'E', 'D', '_', 'A', 'T', 'T', 'R', 'I', 'B', 'S', '\0', - 'G', 'L', '_', 'S', 'E', 'P', 'A', 'R', 'A', 'T', 'E', '_', 'A', 'T', 'T', 'R', 'I', 'B', 'S', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'F', 'O', 'R', 'M', '_', 'F', 'E', 'E', 'D', 'B', 'A', 'C', 'K', '_', 'B', 'U', 'F', 'F', 'E', 'R', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'F', 'O', 'R', 'M', '_', 'F', 'E', 'E', 'D', 'B', 'A', 'C', 'K', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'A', 'T', 'C', '_', 'R', 'G', 'B', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'A', 'T', 'C', '_', 'R', 'G', 'B', 'A', '_', 'E', 'X', 'P', 'L', 'I', 'C', 'I', 'T', '_', 'A', 'L', 'P', 'H', 'A', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'P', 'O', 'I', 'N', 'T', '_', 'S', 'P', 'R', 'I', 'T', 'E', '_', 'C', 'O', 'O', 'R', 'D', '_', 'O', 'R', 'I', 'G', 'I', 'N', '\0', - 'G', 'L', '_', 'L', 'O', 'W', 'E', 'R', '_', 'L', 'E', 'F', 'T', '\0', - 'G', 'L', '_', 'U', 'P', 'P', 'E', 'R', '_', 'L', 'E', 'F', 'T', '\0', - 'G', 'L', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'B', 'A', 'C', 'K', '_', 'R', 'E', 'F', '\0', - 'G', 'L', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'B', 'A', 'C', 'K', '_', 'V', 'A', 'L', 'U', 'E', '_', 'M', 'A', 'S', 'K', '\0', - 'G', 'L', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'B', 'A', 'C', 'K', '_', 'W', 'R', 'I', 'T', 'E', 'M', 'A', 'S', 'K', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'R', 'E', 'N', 'D', 'E', 'R', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'R', 'E', 'A', 'D', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '\0', - 'G', 'L', '_', 'D', 'R', 'A', 'W', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '\0', - 'G', 'L', '_', 'R', 'E', 'A', 'D', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'R', 'E', 'N', 'D', 'E', 'R', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'S', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '3', '2', 'F', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '3', '2', 'F', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '8', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '_', 'O', 'B', 'J', 'E', 'C', 'T', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '_', 'O', 'B', 'J', 'E', 'C', 'T', '_', 'N', 'A', 'M', 'E', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'L', 'E', 'V', 'E', 'L', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'U', 'B', 'E', '_', 'M', 'A', 'P', '_', 'F', 'A', 'C', 'E', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'L', 'A', 'Y', 'E', 'R', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'C', 'O', 'M', 'P', 'L', 'E', 'T', 'E', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'I', 'N', 'C', 'O', 'M', 'P', 'L', 'E', 'T', 'E', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'I', 'N', 'C', 'O', 'M', 'P', 'L', 'E', 'T', 'E', '_', 'M', 'I', 'S', 'S', 'I', 'N', 'G', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'I', 'N', 'C', 'O', 'M', 'P', 'L', 'E', 'T', 'E', '_', 'D', 'I', 'M', 'E', 'N', 'S', 'I', 'O', 'N', 'S', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'I', 'N', 'C', 'O', 'M', 'P', 'L', 'E', 'T', 'E', '_', 'F', 'O', 'R', 'M', 'A', 'T', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'I', 'N', 'C', 'O', 'M', 'P', 'L', 'E', 'T', 'E', '_', 'D', 'R', 'A', 'W', '_', 'B', 'U', 'F', 'F', 'E', 'R', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'I', 'N', 'C', 'O', 'M', 'P', 'L', 'E', 'T', 'E', '_', 'R', 'E', 'A', 'D', '_', 'B', 'U', 'F', 'F', 'E', 'R', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'U', 'N', 'S', 'U', 'P', 'P', 'O', 'R', 'T', 'E', 'D', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '0', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '1', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '2', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '3', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '4', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '5', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '6', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '7', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '8', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '9', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '1', '0', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '1', '1', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '1', '2', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '1', '3', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '1', '4', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '1', '5', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '1', '6', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '1', '7', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '1', '8', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '1', '9', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '2', '0', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '2', '1', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '2', '2', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '2', '3', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '2', '4', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '2', '5', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '2', '6', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '2', '7', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '2', '8', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '2', '9', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '3', '0', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '3', '1', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '\0', - 'G', 'L', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '\0', - 'G', 'L', '_', 'R', 'E', 'N', 'D', 'E', 'R', 'B', 'U', 'F', 'F', 'E', 'R', '\0', - 'G', 'L', '_', 'R', 'E', 'N', 'D', 'E', 'R', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'W', 'I', 'D', 'T', 'H', '\0', - 'G', 'L', '_', 'R', 'E', 'N', 'D', 'E', 'R', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'H', 'E', 'I', 'G', 'H', 'T', '\0', - 'G', 'L', '_', 'R', 'E', 'N', 'D', 'E', 'R', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'I', 'N', 'T', 'E', 'R', 'N', 'A', 'L', '_', 'F', 'O', 'R', 'M', 'A', 'T', '\0', - 'G', 'L', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'I', 'N', 'D', 'E', 'X', '1', '\0', - 'G', 'L', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'I', 'N', 'D', 'E', 'X', '4', '\0', - 'G', 'L', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'I', 'N', 'D', 'E', 'X', '8', '\0', - 'G', 'L', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'I', 'N', 'D', 'E', 'X', '1', '6', '\0', - 'G', 'L', '_', 'R', 'E', 'N', 'D', 'E', 'R', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'R', 'E', 'D', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'R', 'E', 'N', 'D', 'E', 'R', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'G', 'R', 'E', 'E', 'N', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'R', 'E', 'N', 'D', 'E', 'R', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'L', 'U', 'E', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'R', 'E', 'N', 'D', 'E', 'R', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'A', 'L', 'P', 'H', 'A', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'R', 'E', 'N', 'D', 'E', 'R', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'D', 'E', 'P', 'T', 'H', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'R', 'E', 'N', 'D', 'E', 'R', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'I', 'N', 'C', 'O', 'M', 'P', 'L', 'E', 'T', 'E', '_', 'M', 'U', 'L', 'T', 'I', 'S', 'A', 'M', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'S', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'G', 'E', 'N', '_', 'S', 'T', 'R', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'H', 'A', 'L', 'F', '_', 'F', 'L', 'O', 'A', 'T', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'R', 'G', 'B', '5', '6', '5', '\0', - 'G', 'L', '_', 'E', 'T', 'C', '1', '_', 'R', 'G', 'B', '8', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'E', 'X', 'T', 'E', 'R', 'N', 'A', 'L', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', 'E', 'X', 'T', 'E', 'R', 'N', 'A', 'L', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', 'E', 'X', 'T', 'E', 'R', 'N', 'A', 'L', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'R', 'E', 'Q', 'U', 'I', 'R', 'E', 'D', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'I', 'M', 'A', 'G', 'E', '_', 'U', 'N', 'I', 'T', 'S', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'P', 'R', 'I', 'M', 'I', 'T', 'I', 'V', 'E', '_', 'R', 'E', 'S', 'T', 'A', 'R', 'T', '_', 'F', 'I', 'X', 'E', 'D', '_', 'I', 'N', 'D', 'E', 'X', '\0', - 'G', 'L', '_', 'A', 'N', 'Y', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'S', '_', 'P', 'A', 'S', 'S', 'E', 'D', '_', 'C', 'O', 'N', 'S', 'E', 'R', 'V', 'A', 'T', 'I', 'V', 'E', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'E', 'L', 'E', 'M', 'E', 'N', 'T', '_', 'I', 'N', 'D', 'E', 'X', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'R', 'G', 'B', 'A', '3', '2', 'U', 'I', '\0', - 'G', 'L', '_', 'R', 'G', 'B', '3', '2', 'U', 'I', '\0', - 'G', 'L', '_', 'A', 'L', 'P', 'H', 'A', '3', '2', 'U', 'I', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'N', 'S', 'I', 'T', 'Y', '3', '2', 'U', 'I', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '3', '2', 'U', 'I', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '_', 'A', 'L', 'P', 'H', 'A', '3', '2', 'U', 'I', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'R', 'G', 'B', 'A', '1', '6', 'U', 'I', '\0', - 'G', 'L', '_', 'R', 'G', 'B', '1', '6', 'U', 'I', '\0', - 'G', 'L', '_', 'A', 'L', 'P', 'H', 'A', '1', '6', 'U', 'I', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'N', 'S', 'I', 'T', 'Y', '1', '6', 'U', 'I', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '1', '6', 'U', 'I', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '_', 'A', 'L', 'P', 'H', 'A', '1', '6', 'U', 'I', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'R', 'G', 'B', 'A', '8', 'U', 'I', '\0', - 'G', 'L', '_', 'R', 'G', 'B', '8', 'U', 'I', '\0', - 'G', 'L', '_', 'A', 'L', 'P', 'H', 'A', '8', 'U', 'I', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'N', 'S', 'I', 'T', 'Y', '8', 'U', 'I', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '8', 'U', 'I', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '_', 'A', 'L', 'P', 'H', 'A', '8', 'U', 'I', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'R', 'G', 'B', 'A', '3', '2', 'I', '\0', - 'G', 'L', '_', 'R', 'G', 'B', '3', '2', 'I', '\0', - 'G', 'L', '_', 'A', 'L', 'P', 'H', 'A', '3', '2', 'I', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'N', 'S', 'I', 'T', 'Y', '3', '2', 'I', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '3', '2', 'I', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '_', 'A', 'L', 'P', 'H', 'A', '3', '2', 'I', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'R', 'G', 'B', 'A', '1', '6', 'I', '\0', - 'G', 'L', '_', 'R', 'G', 'B', '1', '6', 'I', '\0', - 'G', 'L', '_', 'A', 'L', 'P', 'H', 'A', '1', '6', 'I', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'N', 'S', 'I', 'T', 'Y', '1', '6', 'I', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '1', '6', 'I', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '_', 'A', 'L', 'P', 'H', 'A', '1', '6', 'I', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'R', 'G', 'B', 'A', '8', 'I', '\0', - 'G', 'L', '_', 'R', 'G', 'B', '8', 'I', '\0', - 'G', 'L', '_', 'A', 'L', 'P', 'H', 'A', '8', 'I', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'N', 'S', 'I', 'T', 'Y', '8', 'I', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '8', 'I', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '_', 'A', 'L', 'P', 'H', 'A', '8', 'I', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'R', 'E', 'D', '_', 'I', 'N', 'T', 'E', 'G', 'E', 'R', '\0', - 'G', 'L', '_', 'G', 'R', 'E', 'E', 'N', '_', 'I', 'N', 'T', 'E', 'G', 'E', 'R', '\0', - 'G', 'L', '_', 'B', 'L', 'U', 'E', '_', 'I', 'N', 'T', 'E', 'G', 'E', 'R', '\0', - 'G', 'L', '_', 'A', 'L', 'P', 'H', 'A', '_', 'I', 'N', 'T', 'E', 'G', 'E', 'R', '\0', - 'G', 'L', '_', 'R', 'G', 'B', '_', 'I', 'N', 'T', 'E', 'G', 'E', 'R', '\0', - 'G', 'L', '_', 'R', 'G', 'B', 'A', '_', 'I', 'N', 'T', 'E', 'G', 'E', 'R', '\0', - 'G', 'L', '_', 'B', 'G', 'R', '_', 'I', 'N', 'T', 'E', 'G', 'E', 'R', '\0', - 'G', 'L', '_', 'B', 'G', 'R', 'A', '_', 'I', 'N', 'T', 'E', 'G', 'E', 'R', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '_', 'I', 'N', 'T', 'E', 'G', 'E', 'R', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '_', 'A', 'L', 'P', 'H', 'A', '_', 'I', 'N', 'T', 'E', 'G', 'E', 'R', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'R', 'G', 'B', 'A', '_', 'I', 'N', 'T', 'E', 'G', 'E', 'R', '_', 'M', 'O', 'D', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '_', '2', '_', '1', '0', '_', '1', '0', '_', '1', '0', '_', 'R', 'E', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'S', 'I', 'Z', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'Y', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'G', 'E', 'N', 'E', 'R', 'I', 'C', '_', 'A', 'T', 'T', 'R', 'I', 'B', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'G', 'E', 'N', 'E', 'R', 'I', 'C', '_', 'R', 'E', 'S', 'U', 'L', 'T', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '_', 'L', 'A', 'Y', 'E', 'R', 'E', 'D', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'I', 'N', 'C', 'O', 'M', 'P', 'L', 'E', 'T', 'E', '_', 'L', 'A', 'Y', 'E', 'R', '_', 'T', 'A', 'R', 'G', 'E', 'T', 'S', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'I', 'N', 'C', 'O', 'M', 'P', 'L', 'E', 'T', 'E', '_', 'L', 'A', 'Y', 'E', 'R', '_', 'C', 'O', 'U', 'N', 'T', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'L', 'A', 'Y', 'E', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '3', '2', 'F', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '3', '2', 'F', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '8', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '_', '3', '2', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', '2', '4', '_', '8', '_', 'R', 'E', 'V', '\0', - 'G', 'L', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'I', 'N', 'C', 'L', 'U', 'D', 'E', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'F', 'L', 'O', 'A', 'T', '_', 'M', 'O', 'D', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'S', 'R', 'G', 'B', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'S', 'R', 'G', 'B', '_', 'C', 'A', 'P', 'A', 'B', 'L', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'E', 'D', '_', 'R', 'G', 'T', 'C', '1', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'R', 'E', 'D', '_', 'R', 'G', 'T', 'C', '1', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', '_', 'R', 'G', 'T', 'C', '2', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'R', 'G', '_', 'R', 'G', 'T', 'C', '2', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', '1', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', '2', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', '1', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'H', 'A', 'D', 'O', 'W', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', '2', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'H', 'A', 'D', 'O', 'W', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', 'C', 'U', 'B', 'E', '_', 'S', 'H', 'A', 'D', 'O', 'W', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', 'V', 'E', 'C', '2', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', 'V', 'E', 'C', '3', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', 'V', 'E', 'C', '4', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', '1', 'D', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', '2', 'D', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', '3', 'D', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', 'C', 'U', 'B', 'E', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', '2', 'D', '_', 'R', 'E', 'C', 'T', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', '1', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', '2', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', '1', 'D', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', '2', 'D', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', '3', 'D', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', 'C', 'U', 'B', 'E', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', '2', 'D', '_', 'R', 'E', 'C', 'T', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', '1', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', '2', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '\0', - 'G', 'L', '_', 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'Y', '_', 'S', 'H', 'A', 'D', 'E', 'R', '\0', - 'G', 'L', '_', 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'Y', '_', 'V', 'E', 'R', 'T', 'I', 'C', 'E', 'S', '_', 'O', 'U', 'T', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'Y', '_', 'I', 'N', 'P', 'U', 'T', '_', 'T', 'Y', 'P', 'E', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'Y', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'T', 'Y', 'P', 'E', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'Y', '_', 'V', 'A', 'R', 'Y', 'I', 'N', 'G', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'V', 'A', 'R', 'Y', 'I', 'N', 'G', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'Y', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'Y', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'V', 'E', 'R', 'T', 'I', 'C', 'E', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'Y', '_', 'T', 'O', 'T', 'A', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'B', 'I', 'N', 'D', 'A', 'B', 'L', 'E', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'B', 'I', 'N', 'D', 'A', 'B', 'L', 'E', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'Y', '_', 'B', 'I', 'N', 'D', 'A', 'B', 'L', 'E', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'A', 'C', 'T', 'I', 'V', 'E', '_', 'S', 'U', 'B', 'R', 'O', 'U', 'T', 'I', 'N', 'E', 'S', '\0', - 'G', 'L', '_', 'A', 'C', 'T', 'I', 'V', 'E', '_', 'S', 'U', 'B', 'R', 'O', 'U', 'T', 'I', 'N', 'E', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'S', 'U', 'B', 'R', 'O', 'U', 'T', 'I', 'N', 'E', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'S', 'U', 'B', 'R', 'O', 'U', 'T', 'I', 'N', 'E', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'L', 'O', 'C', 'A', 'T', 'I', 'O', 'N', 'S', '\0', - 'G', 'L', '_', 'N', 'A', 'M', 'E', 'D', '_', 'S', 'T', 'R', 'I', 'N', 'G', '_', 'L', 'E', 'N', 'G', 'T', 'H', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'N', 'A', 'M', 'E', 'D', '_', 'S', 'T', 'R', 'I', 'N', 'G', '_', 'T', 'Y', 'P', 'E', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'B', 'I', 'N', 'D', 'A', 'B', 'L', 'E', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'S', 'I', 'Z', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'L', 'O', 'W', '_', 'F', 'L', 'O', 'A', 'T', '\0', - 'G', 'L', '_', 'M', 'E', 'D', 'I', 'U', 'M', '_', 'F', 'L', 'O', 'A', 'T', '\0', - 'G', 'L', '_', 'H', 'I', 'G', 'H', '_', 'F', 'L', 'O', 'A', 'T', '\0', - 'G', 'L', '_', 'L', 'O', 'W', '_', 'I', 'N', 'T', '\0', - 'G', 'L', '_', 'M', 'E', 'D', 'I', 'U', 'M', '_', 'I', 'N', 'T', '\0', - 'G', 'L', '_', 'H', 'I', 'G', 'H', '_', 'I', 'N', 'T', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', '1', '0', '_', '1', '0', '_', '1', '0', '_', '2', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '_', '1', '0', '_', '1', '0', '_', '1', '0', '_', '2', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'B', 'I', 'N', 'A', 'R', 'Y', '_', 'F', 'O', 'R', 'M', 'A', 'T', 'S', '\0', - 'G', 'L', '_', 'N', 'U', 'M', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'B', 'I', 'N', 'A', 'R', 'Y', '_', 'F', 'O', 'R', 'M', 'A', 'T', 'S', '\0', - 'G', 'L', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'C', 'O', 'M', 'P', 'I', 'L', 'E', 'R', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'V', 'E', 'C', 'T', 'O', 'R', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'V', 'A', 'R', 'Y', 'I', 'N', 'G', '_', 'V', 'E', 'C', 'T', 'O', 'R', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'V', 'E', 'C', 'T', 'O', 'R', 'S', '\0', - 'G', 'L', '_', 'R', 'E', 'N', 'D', 'E', 'R', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'C', 'O', 'L', 'O', 'R', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'M', 'U', 'L', 'T', 'I', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'C', 'O', 'V', 'E', 'R', 'A', 'G', 'E', '_', 'M', 'O', 'D', 'E', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'U', 'L', 'T', 'I', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'C', 'O', 'V', 'E', 'R', 'A', 'G', 'E', '_', 'M', 'O', 'D', 'E', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'Q', 'U', 'E', 'R', 'Y', '_', 'W', 'A', 'I', 'T', '\0', - 'G', 'L', '_', 'Q', 'U', 'E', 'R', 'Y', '_', 'N', 'O', '_', 'W', 'A', 'I', 'T', '\0', - 'G', 'L', '_', 'Q', 'U', 'E', 'R', 'Y', '_', 'B', 'Y', '_', 'R', 'E', 'G', 'I', 'O', 'N', '_', 'W', 'A', 'I', 'T', '\0', - 'G', 'L', '_', 'Q', 'U', 'E', 'R', 'Y', '_', 'B', 'Y', '_', 'R', 'E', 'G', 'I', 'O', 'N', '_', 'N', 'O', '_', 'W', 'A', 'I', 'T', '\0', - 'G', 'L', '_', 'Q', 'U', 'E', 'R', 'Y', '_', 'W', 'A', 'I', 'T', '_', 'I', 'N', 'V', 'E', 'R', 'T', 'E', 'D', '\0', - 'G', 'L', '_', 'Q', 'U', 'E', 'R', 'Y', '_', 'N', 'O', '_', 'W', 'A', 'I', 'T', '_', 'I', 'N', 'V', 'E', 'R', 'T', 'E', 'D', '\0', - 'G', 'L', '_', 'Q', 'U', 'E', 'R', 'Y', '_', 'B', 'Y', '_', 'R', 'E', 'G', 'I', 'O', 'N', '_', 'W', 'A', 'I', 'T', '_', 'I', 'N', 'V', 'E', 'R', 'T', 'E', 'D', '\0', - 'G', 'L', '_', 'Q', 'U', 'E', 'R', 'Y', '_', 'B', 'Y', '_', 'R', 'E', 'G', 'I', 'O', 'N', '_', 'N', 'O', '_', 'W', 'A', 'I', 'T', '_', 'I', 'N', 'V', 'E', 'R', 'T', 'E', 'D', '\0', - 'G', 'L', '_', 'P', 'O', 'L', 'Y', 'G', 'O', 'N', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'C', 'L', 'A', 'M', 'P', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'D', '_', 'T', 'E', 'S', 'S', '_', 'C', 'O', 'N', 'T', 'R', 'O', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'D', '_', 'T', 'E', 'S', 'S', '_', 'E', 'V', 'A', 'L', 'U', 'A', 'T', 'I', 'O', 'N', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'F', 'O', 'R', 'M', '_', 'F', 'E', 'E', 'D', 'B', 'A', 'C', 'K', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'F', 'O', 'R', 'M', '_', 'F', 'E', 'E', 'D', 'B', 'A', 'C', 'K', '_', 'P', 'A', 'U', 'S', 'E', 'D', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'F', 'O', 'R', 'M', '_', 'F', 'E', 'E', 'D', 'B', 'A', 'C', 'K', '_', 'A', 'C', 'T', 'I', 'V', 'E', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'F', 'O', 'R', 'M', '_', 'F', 'E', 'E', 'D', 'B', 'A', 'C', 'K', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'I', 'E', 'L', 'D', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'I', 'M', 'E', 'S', 'T', 'A', 'M', 'P', '\0', - 'G', 'L', '_', 'N', 'U', 'M', '_', 'F', 'I', 'L', 'L', '_', 'S', 'T', 'R', 'E', 'A', 'M', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'R', 'E', 'S', 'E', 'N', 'T', '_', 'T', 'I', 'M', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'R', 'E', 'S', 'E', 'N', 'T', '_', 'D', 'U', 'R', 'A', 'T', 'I', 'O', 'N', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '1', '6', '_', 'N', 'O', 'N', 'L', 'I', 'N', 'E', 'A', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'P', 'O', 'S', 'E', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'S', 'T', 'A', 'C', 'K', '_', 'D', 'E', 'P', 'T', 'H', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'S', 'W', 'I', 'Z', 'Z', 'L', 'E', '_', 'R', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'S', 'W', 'I', 'Z', 'Z', 'L', 'E', '_', 'G', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'S', 'W', 'I', 'Z', 'Z', 'L', 'E', '_', 'B', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'S', 'W', 'I', 'Z', 'Z', 'L', 'E', '_', 'A', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'S', 'W', 'I', 'Z', 'Z', 'L', 'E', '_', 'R', 'G', 'B', 'A', '\0', - 'G', 'L', '_', 'A', 'C', 'T', 'I', 'V', 'E', '_', 'S', 'U', 'B', 'R', 'O', 'U', 'T', 'I', 'N', 'E', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'L', 'O', 'C', 'A', 'T', 'I', 'O', 'N', 'S', '\0', - 'G', 'L', '_', 'A', 'C', 'T', 'I', 'V', 'E', '_', 'S', 'U', 'B', 'R', 'O', 'U', 'T', 'I', 'N', 'E', '_', 'M', 'A', 'X', '_', 'L', 'E', 'N', 'G', 'T', 'H', '\0', - 'G', 'L', '_', 'A', 'C', 'T', 'I', 'V', 'E', '_', 'S', 'U', 'B', 'R', 'O', 'U', 'T', 'I', 'N', 'E', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'M', 'A', 'X', '_', 'L', 'E', 'N', 'G', 'T', 'H', '\0', - 'G', 'L', '_', 'N', 'U', 'M', '_', 'C', 'O', 'M', 'P', 'A', 'T', 'I', 'B', 'L', 'E', '_', 'S', 'U', 'B', 'R', 'O', 'U', 'T', 'I', 'N', 'E', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'A', 'T', 'I', 'B', 'L', 'E', '_', 'S', 'U', 'B', 'R', 'O', 'U', 'T', 'I', 'N', 'E', 'S', '\0', - 'G', 'L', '_', 'Q', 'U', 'A', 'D', 'S', '_', 'F', 'O', 'L', 'L', 'O', 'W', '_', 'P', 'R', 'O', 'V', 'O', 'K', 'I', 'N', 'G', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'C', 'O', 'N', 'V', 'E', 'N', 'T', 'I', 'O', 'N', '\0', - 'G', 'L', '_', 'F', 'I', 'R', 'S', 'T', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'C', 'O', 'N', 'V', 'E', 'N', 'T', 'I', 'O', 'N', '\0', - 'G', 'L', '_', 'L', 'A', 'S', 'T', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'C', 'O', 'N', 'V', 'E', 'N', 'T', 'I', 'O', 'N', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'V', 'O', 'K', 'I', 'N', 'G', '_', 'V', 'E', 'R', 'T', 'E', 'X', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'P', 'O', 'S', 'I', 'T', 'I', 'O', 'N', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'M', 'A', 'S', 'K', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'M', 'A', 'S', 'K', '_', 'V', 'A', 'L', 'U', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', 'R', 'E', 'N', 'D', 'E', 'R', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'R', 'E', 'N', 'D', 'E', 'R', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'D', 'A', 'T', 'A', '_', 'S', 'T', 'O', 'R', 'E', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'R', 'E', 'N', 'D', 'E', 'R', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', 'R', 'E', 'N', 'D', 'E', 'R', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', 'R', 'E', 'N', 'D', 'E', 'R', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', 'R', 'E', 'N', 'D', 'E', 'R', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'M', 'A', 'S', 'K', '_', 'W', 'O', 'R', 'D', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'Y', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'I', 'N', 'V', 'O', 'C', 'A', 'T', 'I', 'O', 'N', 'S', '\0', - 'G', 'L', '_', 'M', 'I', 'N', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'I', 'N', 'T', 'E', 'R', 'P', 'O', 'L', 'A', 'T', 'I', 'O', 'N', '_', 'O', 'F', 'F', 'S', 'E', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'I', 'N', 'T', 'E', 'R', 'P', 'O', 'L', 'A', 'T', 'I', 'O', 'N', '_', 'O', 'F', 'F', 'S', 'E', 'T', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'I', 'N', 'T', 'E', 'R', 'P', 'O', 'L', 'A', 'T', 'I', 'O', 'N', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'B', 'I', 'T', 'S', '\0', - 'G', 'L', '_', 'M', 'I', 'N', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'G', 'A', 'T', 'H', 'E', 'R', '_', 'O', 'F', 'F', 'S', 'E', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'G', 'A', 'T', 'H', 'E', 'R', '_', 'O', 'F', 'F', 'S', 'E', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'T', 'R', 'A', 'N', 'S', 'F', 'O', 'R', 'M', '_', 'F', 'E', 'E', 'D', 'B', 'A', 'C', 'K', '_', 'B', 'U', 'F', 'F', 'E', 'R', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'T', 'R', 'E', 'A', 'M', 'S', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'C', 'H', '_', 'V', 'E', 'R', 'T', 'I', 'C', 'E', 'S', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'C', 'H', '_', 'D', 'E', 'F', 'A', 'U', 'L', 'T', '_', 'I', 'N', 'N', 'E', 'R', '_', 'L', 'E', 'V', 'E', 'L', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'C', 'H', '_', 'D', 'E', 'F', 'A', 'U', 'L', 'T', '_', 'O', 'U', 'T', 'E', 'R', '_', 'L', 'E', 'V', 'E', 'L', '\0', - 'G', 'L', '_', 'T', 'E', 'S', 'S', '_', 'C', 'O', 'N', 'T', 'R', 'O', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'V', 'E', 'R', 'T', 'I', 'C', 'E', 'S', '\0', - 'G', 'L', '_', 'T', 'E', 'S', 'S', '_', 'G', 'E', 'N', '_', 'M', 'O', 'D', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'S', 'S', '_', 'G', 'E', 'N', '_', 'S', 'P', 'A', 'C', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'T', 'E', 'S', 'S', '_', 'G', 'E', 'N', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'O', 'R', 'D', 'E', 'R', '\0', - 'G', 'L', '_', 'T', 'E', 'S', 'S', '_', 'G', 'E', 'N', '_', 'P', 'O', 'I', 'N', 'T', '_', 'M', 'O', 'D', 'E', '\0', - 'G', 'L', '_', 'I', 'S', 'O', 'L', 'I', 'N', 'E', 'S', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'C', 'T', 'I', 'O', 'N', 'A', 'L', '_', 'O', 'D', 'D', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'C', 'T', 'I', 'O', 'N', 'A', 'L', '_', 'E', 'V', 'E', 'N', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'A', 'T', 'C', 'H', '_', 'V', 'E', 'R', 'T', 'I', 'C', 'E', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'T', 'E', 'S', 'S', '_', 'G', 'E', 'N', '_', 'L', 'E', 'V', 'E', 'L', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'T', 'E', 'S', 'S', '_', 'C', 'O', 'N', 'T', 'R', 'O', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'T', 'E', 'S', 'S', '_', 'E', 'V', 'A', 'L', 'U', 'A', 'T', 'I', 'O', 'N', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'T', 'E', 'S', 'S', '_', 'C', 'O', 'N', 'T', 'R', 'O', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'I', 'M', 'A', 'G', 'E', '_', 'U', 'N', 'I', 'T', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'T', 'E', 'S', 'S', '_', 'E', 'V', 'A', 'L', 'U', 'A', 'T', 'I', 'O', 'N', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'I', 'M', 'A', 'G', 'E', '_', 'U', 'N', 'I', 'T', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'T', 'E', 'S', 'S', '_', 'C', 'O', 'N', 'T', 'R', 'O', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'T', 'E', 'S', 'S', '_', 'P', 'A', 'T', 'C', 'H', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'T', 'E', 'S', 'S', '_', 'C', 'O', 'N', 'T', 'R', 'O', 'L', '_', 'T', 'O', 'T', 'A', 'L', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'T', 'E', 'S', 'S', '_', 'E', 'V', 'A', 'L', 'U', 'A', 'T', 'I', 'O', 'N', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '\0', - 'G', 'L', '_', 'T', 'E', 'S', 'S', '_', 'E', 'V', 'A', 'L', 'U', 'A', 'T', 'I', 'O', 'N', '_', 'S', 'H', 'A', 'D', 'E', 'R', '\0', - 'G', 'L', '_', 'T', 'E', 'S', 'S', '_', 'C', 'O', 'N', 'T', 'R', 'O', 'L', '_', 'S', 'H', 'A', 'D', 'E', 'R', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'T', 'E', 'S', 'S', '_', 'C', 'O', 'N', 'T', 'R', 'O', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'B', 'L', 'O', 'C', 'K', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'T', 'E', 'S', 'S', '_', 'E', 'V', 'A', 'L', 'U', 'A', 'T', 'I', 'O', 'N', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'B', 'L', 'O', 'C', 'K', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '_', 'B', 'P', 'T', 'C', '_', 'U', 'N', 'O', 'R', 'M', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '_', 'A', 'L', 'P', 'H', 'A', '_', 'B', 'P', 'T', 'C', '_', 'U', 'N', 'O', 'R', 'M', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', '_', 'B', 'P', 'T', 'C', '_', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'F', 'L', 'O', 'A', 'T', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', '_', 'B', 'P', 'T', 'C', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'F', 'L', 'O', 'A', 'T', '\0', - 'G', 'L', '_', 'C', 'O', 'V', 'E', 'R', 'A', 'G', 'E', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'V', 'E', 'R', 'A', 'G', 'E', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'V', 'E', 'R', 'A', 'G', 'E', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'V', 'E', 'R', 'A', 'G', 'E', '_', 'B', 'U', 'F', 'F', 'E', 'R', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'V', 'E', 'R', 'A', 'G', 'E', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'V', 'E', 'R', 'A', 'G', 'E', '_', 'A', 'L', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'V', 'E', 'R', 'A', 'G', 'E', '_', 'E', 'D', 'G', 'E', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'V', 'E', 'R', 'A', 'G', 'E', '_', 'A', 'U', 'T', 'O', 'M', 'A', 'T', 'I', 'C', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'I', 'N', 'C', 'L', 'U', 'S', 'I', 'V', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'E', 'X', 'C', 'L', 'U', 'S', 'I', 'V', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'W', 'I', 'N', 'D', 'O', 'W', '_', 'R', 'E', 'C', 'T', 'A', 'N', 'G', 'L', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'W', 'I', 'N', 'D', 'O', 'W', '_', 'R', 'E', 'C', 'T', 'A', 'N', 'G', 'L', 'E', '_', 'M', 'O', 'D', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'W', 'I', 'N', 'D', 'O', 'W', '_', 'R', 'E', 'C', 'T', 'A', 'N', 'G', 'L', 'E', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'N', 'U', 'M', '_', 'W', 'I', 'N', 'D', 'O', 'W', '_', 'R', 'E', 'C', 'T', 'A', 'N', 'G', 'L', 'E', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'G', 'P', 'U', '_', 'A', 'D', 'D', 'R', 'E', 'S', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'U', 'N', 'I', 'F', 'I', 'E', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'E', 'L', 'E', 'M', 'E', 'N', 'T', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'U', 'N', 'I', 'F', 'I', 'E', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'A', 'D', 'D', 'R', 'E', 'S', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'A', 'D', 'D', 'R', 'E', 'S', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'N', 'O', 'R', 'M', 'A', 'L', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'A', 'D', 'D', 'R', 'E', 'S', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'A', 'D', 'D', 'R', 'E', 'S', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'I', 'N', 'D', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'A', 'D', 'D', 'R', 'E', 'S', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'A', 'D', 'D', 'R', 'E', 'S', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'E', 'D', 'G', 'E', '_', 'F', 'L', 'A', 'G', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'A', 'D', 'D', 'R', 'E', 'S', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'E', 'C', 'O', 'N', 'D', 'A', 'R', 'Y', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'A', 'D', 'D', 'R', 'E', 'S', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'O', 'G', '_', 'C', 'O', 'O', 'R', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'A', 'D', 'D', 'R', 'E', 'S', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'E', 'L', 'E', 'M', 'E', 'N', 'T', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'A', 'D', 'D', 'R', 'E', 'S', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'T', 'R', 'I', 'B', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'L', 'E', 'N', 'G', 'T', 'H', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'L', 'E', 'N', 'G', 'T', 'H', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'N', 'O', 'R', 'M', 'A', 'L', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'L', 'E', 'N', 'G', 'T', 'H', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'L', 'E', 'N', 'G', 'T', 'H', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'I', 'N', 'D', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'L', 'E', 'N', 'G', 'T', 'H', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'L', 'E', 'N', 'G', 'T', 'H', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'E', 'D', 'G', 'E', '_', 'F', 'L', 'A', 'G', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'L', 'E', 'N', 'G', 'T', 'H', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'E', 'C', 'O', 'N', 'D', 'A', 'R', 'Y', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'L', 'E', 'N', 'G', 'T', 'H', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'O', 'G', '_', 'C', 'O', 'O', 'R', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'L', 'E', 'N', 'G', 'T', 'H', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'E', 'L', 'E', 'M', 'E', 'N', 'T', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'L', 'E', 'N', 'G', 'T', 'H', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'G', 'P', 'U', '_', 'A', 'D', 'D', 'R', 'E', 'S', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'A', 'D', 'D', 'R', 'E', 'S', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'P', 'Y', '_', 'R', 'E', 'A', 'D', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'C', 'O', 'P', 'Y', '_', 'W', 'R', 'I', 'T', 'E', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'I', 'M', 'A', 'G', 'E', '_', 'U', 'N', 'I', 'T', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'D', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'R', 'E', 'S', 'O', 'U', 'R', 'C', 'E', 'S', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', 'N', 'A', 'M', 'E', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', 'L', 'E', 'V', 'E', 'L', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', 'L', 'A', 'Y', 'E', 'R', 'E', 'D', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', 'L', 'A', 'Y', 'E', 'R', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', 'A', 'C', 'C', 'E', 'S', 'S', '\0', - 'G', 'L', '_', 'D', 'R', 'A', 'W', '_', 'I', 'N', 'D', 'I', 'R', 'E', 'C', 'T', '_', 'B', 'U', 'F', 'F', 'E', 'R', '\0', - 'G', 'L', '_', 'D', 'R', 'A', 'W', '_', 'I', 'N', 'D', 'I', 'R', 'E', 'C', 'T', '_', 'U', 'N', 'I', 'F', 'I', 'E', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'R', 'A', 'W', '_', 'I', 'N', 'D', 'I', 'R', 'E', 'C', 'T', '_', 'A', 'D', 'D', 'R', 'E', 'S', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'R', 'A', 'W', '_', 'I', 'N', 'D', 'I', 'R', 'E', 'C', 'T', '_', 'L', 'E', 'N', 'G', 'T', 'H', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'R', 'A', 'W', '_', 'I', 'N', 'D', 'I', 'R', 'E', 'C', 'T', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'S', 'U', 'B', 'R', 'O', 'U', 'T', 'I', 'N', 'E', '_', 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'S', 'U', 'B', 'R', 'O', 'U', 'T', 'I', 'N', 'E', '_', 'N', 'U', 'M', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'O', 'U', 'B', 'L', 'E', '_', 'M', 'A', 'T', '2', '\0', - 'G', 'L', '_', 'D', 'O', 'U', 'B', 'L', 'E', '_', 'M', 'A', 'T', '3', '\0', - 'G', 'L', '_', 'D', 'O', 'U', 'B', 'L', 'E', '_', 'M', 'A', 'T', '4', '\0', - 'G', 'L', '_', 'D', 'O', 'U', 'B', 'L', 'E', '_', 'M', 'A', 'T', '2', 'x', '3', '\0', - 'G', 'L', '_', 'D', 'O', 'U', 'B', 'L', 'E', '_', 'M', 'A', 'T', '2', 'x', '4', '\0', - 'G', 'L', '_', 'D', 'O', 'U', 'B', 'L', 'E', '_', 'M', 'A', 'T', '3', 'x', '2', '\0', - 'G', 'L', '_', 'D', 'O', 'U', 'B', 'L', 'E', '_', 'M', 'A', 'T', '3', 'x', '4', '\0', - 'G', 'L', '_', 'D', 'O', 'U', 'B', 'L', 'E', '_', 'M', 'A', 'T', '4', 'x', '2', '\0', - 'G', 'L', '_', 'D', 'O', 'U', 'B', 'L', 'E', '_', 'M', 'A', 'T', '4', 'x', '3', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', 'B', 'U', 'F', 'F', 'E', 'R', '\0', - 'G', 'L', '_', 'M', 'A', 'L', 'I', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'B', 'I', 'N', 'A', 'R', 'Y', '_', 'A', 'R', 'M', '\0', - 'G', 'L', '_', 'M', 'A', 'L', 'I', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'B', 'I', 'N', 'A', 'R', 'Y', '_', 'A', 'R', 'M', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'P', 'I', 'X', 'E', 'L', '_', 'L', 'O', 'C', 'A', 'L', '_', 'S', 'T', 'O', 'R', 'A', 'G', 'E', '_', 'F', 'A', 'S', 'T', '_', 'S', 'I', 'Z', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'P', 'I', 'X', 'E', 'L', '_', 'L', 'O', 'C', 'A', 'L', '_', 'S', 'T', 'O', 'R', 'A', 'G', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'F', 'E', 'T', 'C', 'H', '_', 'P', 'E', 'R', '_', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'A', 'R', 'M', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'F', 'E', 'T', 'C', 'H', '_', 'M', 'R', 'T', '_', 'A', 'R', 'M', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'P', 'I', 'X', 'E', 'L', '_', 'L', 'O', 'C', 'A', 'L', '_', 'S', 'T', 'O', 'R', 'A', 'G', 'E', '_', 'S', 'I', 'Z', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'A', 'S', 'T', 'C', '_', 'D', 'E', 'C', 'O', 'D', 'E', '_', 'P', 'R', 'E', 'C', 'I', 'S', 'I', 'O', 'N', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'R', 'E', 'D', '_', 'S', 'N', 'O', 'R', 'M', '\0', - 'G', 'L', '_', 'R', 'G', '_', 'S', 'N', 'O', 'R', 'M', '\0', - 'G', 'L', '_', 'R', 'G', 'B', '_', 'S', 'N', 'O', 'R', 'M', '\0', - 'G', 'L', '_', 'R', 'G', 'B', 'A', '_', 'S', 'N', 'O', 'R', 'M', '\0', - 'G', 'L', '_', 'R', '8', '_', 'S', 'N', 'O', 'R', 'M', '\0', - 'G', 'L', '_', 'R', 'G', '8', '_', 'S', 'N', 'O', 'R', 'M', '\0', - 'G', 'L', '_', 'R', 'G', 'B', '8', '_', 'S', 'N', 'O', 'R', 'M', '\0', - 'G', 'L', '_', 'R', 'G', 'B', 'A', '8', '_', 'S', 'N', 'O', 'R', 'M', '\0', - 'G', 'L', '_', 'R', '1', '6', '_', 'S', 'N', 'O', 'R', 'M', '\0', - 'G', 'L', '_', 'R', 'G', '1', '6', '_', 'S', 'N', 'O', 'R', 'M', '\0', - 'G', 'L', '_', 'R', 'G', 'B', '1', '6', '_', 'S', 'N', 'O', 'R', 'M', '\0', - 'G', 'L', '_', 'R', 'G', 'B', 'A', '1', '6', '_', 'S', 'N', 'O', 'R', 'M', '\0', - 'G', 'L', '_', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'N', 'O', 'R', 'M', 'A', 'L', 'I', 'Z', 'E', 'D', '\0', - 'G', 'L', '_', 'P', 'R', 'I', 'M', 'I', 'T', 'I', 'V', 'E', '_', 'R', 'E', 'S', 'T', 'A', 'R', 'T', '\0', - 'G', 'L', '_', 'P', 'R', 'I', 'M', 'I', 'T', 'I', 'V', 'E', '_', 'R', 'E', 'S', 'T', 'A', 'R', 'T', '_', 'I', 'N', 'D', 'E', 'X', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'G', 'A', 'T', 'H', 'E', 'R', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'P', 'E', 'R', 'F', 'M', 'O', 'N', '_', 'G', 'L', 'O', 'B', 'A', 'L', '_', 'M', 'O', 'D', 'E', '_', 'Q', 'C', 'O', 'M', '\0', - 'G', 'L', '_', 'B', 'I', 'N', 'N', 'I', 'N', 'G', '_', 'C', 'O', 'N', 'T', 'R', 'O', 'L', '_', 'H', 'I', 'N', 'T', '_', 'Q', 'C', 'O', 'M', '\0', - 'G', 'L', '_', 'C', 'P', 'U', '_', 'O', 'P', 'T', 'I', 'M', 'I', 'Z', 'E', 'D', '_', 'Q', 'C', 'O', 'M', '\0', - 'G', 'L', '_', 'G', 'P', 'U', '_', 'O', 'P', 'T', 'I', 'M', 'I', 'Z', 'E', 'D', '_', 'Q', 'C', 'O', 'M', '\0', - 'G', 'L', '_', 'R', 'E', 'N', 'D', 'E', 'R', '_', 'D', 'I', 'R', 'E', 'C', 'T', '_', 'T', 'O', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'Q', 'C', 'O', 'M', '\0', - 'G', 'L', '_', 'G', 'P', 'U', '_', 'D', 'I', 'S', 'J', 'O', 'I', 'N', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'S', 'R', '8', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'S', 'R', 'G', '8', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'B', 'I', 'N', 'A', 'R', 'Y', '_', 'V', 'I', 'V', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '8', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '8', '_', 'V', 'E', 'C', '2', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '8', '_', 'V', 'E', 'C', '3', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '8', '_', 'V', 'E', 'C', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '1', '6', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '1', '6', '_', 'V', 'E', 'C', '2', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '1', '6', '_', 'V', 'E', 'C', '3', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '1', '6', '_', 'V', 'E', 'C', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '6', '4', '_', 'V', 'E', 'C', '2', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '6', '4', '_', 'V', 'E', 'C', '3', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '6', '4', '_', 'V', 'E', 'C', '4', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '8', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '8', '_', 'V', 'E', 'C', '2', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '8', '_', 'V', 'E', 'C', '3', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '8', '_', 'V', 'E', 'C', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '1', '6', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '1', '6', '_', 'V', 'E', 'C', '2', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '1', '6', '_', 'V', 'E', 'C', '3', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '1', '6', '_', 'V', 'E', 'C', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '6', '4', '_', 'V', 'E', 'C', '2', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '6', '4', '_', 'V', 'E', 'C', '3', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '6', '4', '_', 'V', 'E', 'C', '4', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '1', '6', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '1', '6', '_', 'V', 'E', 'C', '2', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '1', '6', '_', 'V', 'E', 'C', '3', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '1', '6', '_', 'V', 'E', 'C', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'O', 'U', 'B', 'L', 'E', '_', 'V', 'E', 'C', '2', '\0', - 'G', 'L', '_', 'D', 'O', 'U', 'B', 'L', 'E', '_', 'V', 'E', 'C', '3', '\0', - 'G', 'L', '_', 'D', 'O', 'U', 'B', 'L', 'E', '_', 'V', 'E', 'C', '4', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'T', 'E', 'S', 'S', 'E', 'L', 'L', 'A', 'T', 'I', 'O', 'N', '_', 'M', 'O', 'D', 'E', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'T', 'E', 'S', 'S', 'E', 'L', 'L', 'A', 'T', 'I', 'O', 'N', '_', 'F', 'A', 'C', 'T', 'O', 'R', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'D', 'I', 'S', 'C', 'R', 'E', 'T', 'E', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'T', 'I', 'N', 'U', 'O', 'U', 'S', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'U', 'B', 'E', '_', 'M', 'A', 'P', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', 'C', 'U', 'B', 'E', '_', 'M', 'A', 'P', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'X', 'Y', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'U', 'B', 'E', '_', 'M', 'A', 'P', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', 'C', 'U', 'B', 'E', '_', 'M', 'A', 'P', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', 'C', 'U', 'B', 'E', '_', 'M', 'A', 'P', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'H', 'A', 'D', 'O', 'W', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', 'C', 'U', 'B', 'E', '_', 'M', 'A', 'P', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', 'C', 'U', 'B', 'E', '_', 'M', 'A', 'P', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'A', 'L', 'P', 'H', 'A', '_', 'S', 'N', 'O', 'R', 'M', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '_', 'S', 'N', 'O', 'R', 'M', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '_', 'A', 'L', 'P', 'H', 'A', '_', 'S', 'N', 'O', 'R', 'M', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'N', 'S', 'I', 'T', 'Y', '_', 'S', 'N', 'O', 'R', 'M', '\0', - 'G', 'L', '_', 'A', 'L', 'P', 'H', 'A', '8', '_', 'S', 'N', 'O', 'R', 'M', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '8', '_', 'S', 'N', 'O', 'R', 'M', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '8', '_', 'A', 'L', 'P', 'H', 'A', '8', '_', 'S', 'N', 'O', 'R', 'M', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'N', 'S', 'I', 'T', 'Y', '8', '_', 'S', 'N', 'O', 'R', 'M', '\0', - 'G', 'L', '_', 'A', 'L', 'P', 'H', 'A', '1', '6', '_', 'S', 'N', 'O', 'R', 'M', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '1', '6', '_', 'S', 'N', 'O', 'R', 'M', '\0', - 'G', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'A', 'N', 'C', 'E', '1', '6', '_', 'A', 'L', 'P', 'H', 'A', '1', '6', '_', 'S', 'N', 'O', 'R', 'M', '\0', - 'G', 'L', '_', 'I', 'N', 'T', 'E', 'N', 'S', 'I', 'T', 'Y', '1', '6', '_', 'S', 'N', 'O', 'R', 'M', '\0', - 'G', 'L', '_', 'F', 'A', 'C', 'T', 'O', 'R', '_', 'M', 'I', 'N', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'F', 'A', 'C', 'T', 'O', 'R', '_', 'M', 'A', 'X', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'C', 'L', 'A', 'M', 'P', '_', 'N', 'E', 'A', 'R', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'C', 'L', 'A', 'M', 'P', '_', 'F', 'A', 'R', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'V', 'I', 'D', 'E', 'O', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'I', 'D', 'E', 'O', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'I', 'E', 'L', 'D', '_', 'U', 'P', 'P', 'E', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'I', 'E', 'L', 'D', '_', 'L', 'O', 'W', 'E', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'N', 'U', 'M', '_', 'V', 'I', 'D', 'E', 'O', '_', 'C', 'A', 'P', 'T', 'U', 'R', 'E', '_', 'S', 'T', 'R', 'E', 'A', 'M', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'N', 'E', 'X', 'T', '_', 'V', 'I', 'D', 'E', 'O', '_', 'C', 'A', 'P', 'T', 'U', 'R', 'E', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'S', 'T', 'A', 'T', 'U', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'I', 'D', 'E', 'O', '_', 'C', 'A', 'P', 'T', 'U', 'R', 'E', '_', 'T', 'O', '_', '4', '2', '2', '_', 'S', 'U', 'P', 'P', 'O', 'R', 'T', 'E', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'L', 'A', 'S', 'T', '_', 'V', 'I', 'D', 'E', 'O', '_', 'C', 'A', 'P', 'T', 'U', 'R', 'E', '_', 'S', 'T', 'A', 'T', 'U', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'I', 'D', 'E', 'O', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'P', 'I', 'T', 'C', 'H', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'I', 'D', 'E', 'O', '_', 'C', 'O', 'L', 'O', 'R', '_', 'C', 'O', 'N', 'V', 'E', 'R', 'S', 'I', 'O', 'N', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'I', 'D', 'E', 'O', '_', 'C', 'O', 'L', 'O', 'R', '_', 'C', 'O', 'N', 'V', 'E', 'R', 'S', 'I', 'O', 'N', '_', 'M', 'A', 'X', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'I', 'D', 'E', 'O', '_', 'C', 'O', 'L', 'O', 'R', '_', 'C', 'O', 'N', 'V', 'E', 'R', 'S', 'I', 'O', 'N', '_', 'M', 'I', 'N', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'I', 'D', 'E', 'O', '_', 'C', 'O', 'L', 'O', 'R', '_', 'C', 'O', 'N', 'V', 'E', 'R', 'S', 'I', 'O', 'N', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'I', 'D', 'E', 'O', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'I', 'N', 'T', 'E', 'R', 'N', 'A', 'L', '_', 'F', 'O', 'R', 'M', 'A', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'R', 'T', 'I', 'A', 'L', '_', 'S', 'U', 'C', 'C', 'E', 'S', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'U', 'C', 'C', 'E', 'S', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'A', 'I', 'L', 'U', 'R', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'Y', 'C', 'B', 'Y', 'C', 'R', '8', '_', '4', '2', '2', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'Y', 'C', 'B', 'A', 'Y', 'C', 'R', '8', 'A', '_', '4', '2', '2', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'Z', '6', 'Y', '1', '0', 'Z', '6', 'C', 'B', '1', '0', 'Z', '6', 'Y', '1', '0', 'Z', '6', 'C', 'R', '1', '0', '_', '4', '2', '2', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'Z', '6', 'Y', '1', '0', 'Z', '6', 'C', 'B', '1', '0', 'Z', '6', 'A', '1', '0', 'Z', '6', 'Y', '1', '0', 'Z', '6', 'C', 'R', '1', '0', 'Z', '6', 'A', '1', '0', '_', '4', '2', '2', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'Z', '4', 'Y', '1', '2', 'Z', '4', 'C', 'B', '1', '2', 'Z', '4', 'Y', '1', '2', 'Z', '4', 'C', 'R', '1', '2', '_', '4', '2', '2', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'Z', '4', 'Y', '1', '2', 'Z', '4', 'C', 'B', '1', '2', 'Z', '4', 'A', '1', '2', 'Z', '4', 'Y', '1', '2', 'Z', '4', 'C', 'R', '1', '2', 'Z', '4', 'A', '1', '2', '_', '4', '2', '2', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'Z', '4', 'Y', '1', '2', 'Z', '4', 'C', 'B', '1', '2', 'Z', '4', 'C', 'R', '1', '2', '_', '4', '4', '4', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'I', 'D', 'E', 'O', '_', 'C', 'A', 'P', 'T', 'U', 'R', 'E', '_', 'F', 'R', 'A', 'M', 'E', '_', 'W', 'I', 'D', 'T', 'H', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'I', 'D', 'E', 'O', '_', 'C', 'A', 'P', 'T', 'U', 'R', 'E', '_', 'F', 'R', 'A', 'M', 'E', '_', 'H', 'E', 'I', 'G', 'H', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'I', 'D', 'E', 'O', '_', 'C', 'A', 'P', 'T', 'U', 'R', 'E', '_', 'F', 'I', 'E', 'L', 'D', '_', 'U', 'P', 'P', 'E', 'R', '_', 'H', 'E', 'I', 'G', 'H', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'I', 'D', 'E', 'O', '_', 'C', 'A', 'P', 'T', 'U', 'R', 'E', '_', 'F', 'I', 'E', 'L', 'D', '_', 'L', 'O', 'W', 'E', 'R', '_', 'H', 'E', 'I', 'G', 'H', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'I', 'D', 'E', 'O', '_', 'C', 'A', 'P', 'T', 'U', 'R', 'E', '_', 'S', 'U', 'R', 'F', 'A', 'C', 'E', '_', 'O', 'R', 'I', 'G', 'I', 'N', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'V', 'E', 'R', 'A', 'G', 'E', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'L', 'O', 'R', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'G', 'P', 'U', '_', 'M', 'E', 'M', 'O', 'R', 'Y', '_', 'I', 'N', 'F', 'O', '_', 'D', 'E', 'D', 'I', 'C', 'A', 'T', 'E', 'D', '_', 'V', 'I', 'D', 'M', 'E', 'M', '_', 'N', 'V', 'X', '\0', - 'G', 'L', '_', 'G', 'P', 'U', '_', 'M', 'E', 'M', 'O', 'R', 'Y', '_', 'I', 'N', 'F', 'O', '_', 'T', 'O', 'T', 'A', 'L', '_', 'A', 'V', 'A', 'I', 'L', 'A', 'B', 'L', 'E', '_', 'M', 'E', 'M', 'O', 'R', 'Y', '_', 'N', 'V', 'X', '\0', - 'G', 'L', '_', 'G', 'P', 'U', '_', 'M', 'E', 'M', 'O', 'R', 'Y', '_', 'I', 'N', 'F', 'O', '_', 'C', 'U', 'R', 'R', 'E', 'N', 'T', '_', 'A', 'V', 'A', 'I', 'L', 'A', 'B', 'L', 'E', '_', 'V', 'I', 'D', 'M', 'E', 'M', '_', 'N', 'V', 'X', '\0', - 'G', 'L', '_', 'G', 'P', 'U', '_', 'M', 'E', 'M', 'O', 'R', 'Y', '_', 'I', 'N', 'F', 'O', '_', 'E', 'V', 'I', 'C', 'T', 'I', 'O', 'N', '_', 'C', 'O', 'U', 'N', 'T', '_', 'N', 'V', 'X', '\0', - 'G', 'L', '_', 'G', 'P', 'U', '_', 'M', 'E', 'M', 'O', 'R', 'Y', '_', 'I', 'N', 'F', 'O', '_', 'E', 'V', 'I', 'C', 'T', 'E', 'D', '_', 'M', 'E', 'M', 'O', 'R', 'Y', '_', 'N', 'V', 'X', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', '1', 'D', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', '2', 'D', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', '3', 'D', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', '2', 'D', '_', 'R', 'E', 'C', 'T', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'C', 'U', 'B', 'E', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'B', 'U', 'F', 'F', 'E', 'R', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', '1', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', '2', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'C', 'U', 'B', 'E', '_', 'M', 'A', 'P', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', '2', 'D', '_', 'M', 'U', 'L', 'T', 'I', 'S', 'A', 'M', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', '2', 'D', '_', 'M', 'U', 'L', 'T', 'I', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '_', 'I', 'M', 'A', 'G', 'E', '_', '1', 'D', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '_', 'I', 'M', 'A', 'G', 'E', '_', '2', 'D', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '_', 'I', 'M', 'A', 'G', 'E', '_', '3', 'D', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '_', 'I', 'M', 'A', 'G', 'E', '_', '2', 'D', '_', 'R', 'E', 'C', 'T', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '_', 'I', 'M', 'A', 'G', 'E', '_', 'C', 'U', 'B', 'E', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '_', 'I', 'M', 'A', 'G', 'E', '_', 'B', 'U', 'F', 'F', 'E', 'R', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '_', 'I', 'M', 'A', 'G', 'E', '_', '1', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '_', 'I', 'M', 'A', 'G', 'E', '_', '2', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '_', 'I', 'M', 'A', 'G', 'E', '_', 'C', 'U', 'B', 'E', '_', 'M', 'A', 'P', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '_', 'I', 'M', 'A', 'G', 'E', '_', '2', 'D', '_', 'M', 'U', 'L', 'T', 'I', 'S', 'A', 'M', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '_', 'I', 'M', 'A', 'G', 'E', '_', '2', 'D', '_', 'M', 'U', 'L', 'T', 'I', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', 'I', 'M', 'A', 'G', 'E', '_', '1', 'D', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', 'I', 'M', 'A', 'G', 'E', '_', '2', 'D', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', 'I', 'M', 'A', 'G', 'E', '_', '3', 'D', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', 'I', 'M', 'A', 'G', 'E', '_', '2', 'D', '_', 'R', 'E', 'C', 'T', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', 'I', 'M', 'A', 'G', 'E', '_', 'C', 'U', 'B', 'E', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', 'I', 'M', 'A', 'G', 'E', '_', 'B', 'U', 'F', 'F', 'E', 'R', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', 'I', 'M', 'A', 'G', 'E', '_', '1', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', 'I', 'M', 'A', 'G', 'E', '_', '2', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', 'I', 'M', 'A', 'G', 'E', '_', 'C', 'U', 'B', 'E', '_', 'M', 'A', 'P', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', 'I', 'M', 'A', 'G', 'E', '_', '2', 'D', '_', 'M', 'U', 'L', 'T', 'I', 'S', 'A', 'M', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', 'I', 'M', 'A', 'G', 'E', '_', '2', 'D', '_', 'M', 'U', 'L', 'T', 'I', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'I', 'M', 'A', 'G', 'E', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'S', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', 'F', 'O', 'R', 'M', 'A', 'T', '\0', - 'G', 'L', '_', 'R', 'G', 'B', '1', '0', '_', 'A', '2', 'U', 'I', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'F', 'O', 'R', 'M', 'A', 'T', '_', 'S', 'V', 'G', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'F', 'O', 'R', 'M', 'A', 'T', '_', 'P', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'T', 'A', 'N', 'D', 'A', 'R', 'D', '_', 'F', 'O', 'N', 'T', '_', 'N', 'A', 'M', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'Y', 'S', 'T', 'E', 'M', '_', 'F', 'O', 'N', 'T', '_', 'N', 'A', 'M', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'I', 'L', 'E', '_', 'N', 'A', 'M', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'S', 'T', 'R', 'O', 'K', 'E', '_', 'W', 'I', 'D', 'T', 'H', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'E', 'N', 'D', '_', 'C', 'A', 'P', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'I', 'N', 'I', 'T', 'I', 'A', 'L', '_', 'E', 'N', 'D', '_', 'C', 'A', 'P', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'T', 'E', 'R', 'M', 'I', 'N', 'A', 'L', '_', 'E', 'N', 'D', '_', 'C', 'A', 'P', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'J', 'O', 'I', 'N', '_', 'S', 'T', 'Y', 'L', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'M', 'I', 'T', 'E', 'R', '_', 'L', 'I', 'M', 'I', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'D', 'A', 'S', 'H', '_', 'C', 'A', 'P', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'I', 'N', 'I', 'T', 'I', 'A', 'L', '_', 'D', 'A', 'S', 'H', '_', 'C', 'A', 'P', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'T', 'E', 'R', 'M', 'I', 'N', 'A', 'L', '_', 'D', 'A', 'S', 'H', '_', 'C', 'A', 'P', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'D', 'A', 'S', 'H', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'C', 'L', 'I', 'E', 'N', 'T', '_', 'L', 'E', 'N', 'G', 'T', 'H', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'F', 'I', 'L', 'L', '_', 'M', 'O', 'D', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'F', 'I', 'L', 'L', '_', 'M', 'A', 'S', 'K', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'F', 'I', 'L', 'L', '_', 'C', 'O', 'V', 'E', 'R', '_', 'M', 'O', 'D', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'S', 'T', 'R', 'O', 'K', 'E', '_', 'C', 'O', 'V', 'E', 'R', '_', 'M', 'O', 'D', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'S', 'T', 'R', 'O', 'K', 'E', '_', 'M', 'A', 'S', 'K', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'U', 'N', 'T', '_', 'U', 'P', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'U', 'N', 'T', '_', 'D', 'O', 'W', 'N', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'O', 'B', 'J', 'E', 'C', 'T', '_', 'B', 'O', 'U', 'N', 'D', 'I', 'N', 'G', '_', 'B', 'O', 'X', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'V', 'E', 'X', '_', 'H', 'U', 'L', 'L', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'B', 'O', 'U', 'N', 'D', 'I', 'N', 'G', '_', 'B', 'O', 'X', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'L', 'A', 'T', 'E', '_', 'X', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'L', 'A', 'T', 'E', '_', 'Y', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'L', 'A', 'T', 'E', '_', '2', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'L', 'A', 'T', 'E', '_', '3', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'A', 'F', 'F', 'I', 'N', 'E', '_', '2', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'A', 'F', 'F', 'I', 'N', 'E', '_', '3', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'P', 'O', 'S', 'E', '_', 'A', 'F', 'F', 'I', 'N', 'E', '_', '2', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'P', 'O', 'S', 'E', '_', 'A', 'F', 'F', 'I', 'N', 'E', '_', '3', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'U', 'T', 'F', '8', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'U', 'T', 'F', '1', '6', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'B', 'O', 'U', 'N', 'D', 'I', 'N', 'G', '_', 'B', 'O', 'X', '_', 'O', 'F', '_', 'B', 'O', 'U', 'N', 'D', 'I', 'N', 'G', '_', 'B', 'O', 'X', 'E', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'C', 'O', 'M', 'M', 'A', 'N', 'D', '_', 'C', 'O', 'U', 'N', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'C', 'O', 'O', 'R', 'D', '_', 'C', 'O', 'U', 'N', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'D', 'A', 'S', 'H', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'C', 'O', 'U', 'N', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'C', 'O', 'M', 'P', 'U', 'T', 'E', 'D', '_', 'L', 'E', 'N', 'G', 'T', 'H', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'F', 'I', 'L', 'L', '_', 'B', 'O', 'U', 'N', 'D', 'I', 'N', 'G', '_', 'B', 'O', 'X', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'S', 'T', 'R', 'O', 'K', 'E', '_', 'B', 'O', 'U', 'N', 'D', 'I', 'N', 'G', '_', 'B', 'O', 'X', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'Q', 'U', 'A', 'R', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'R', 'O', 'U', 'N', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'R', 'I', 'A', 'N', 'G', 'U', 'L', 'A', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'B', 'E', 'V', 'E', 'L', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'I', 'T', 'E', 'R', '_', 'R', 'E', 'V', 'E', 'R', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'I', 'T', 'E', 'R', '_', 'T', 'R', 'U', 'N', 'C', 'A', 'T', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'K', 'I', 'P', '_', 'M', 'I', 'S', 'S', 'I', 'N', 'G', '_', 'G', 'L', 'Y', 'P', 'H', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'U', 'S', 'E', '_', 'M', 'I', 'S', 'S', 'I', 'N', 'G', '_', 'G', 'L', 'Y', 'P', 'H', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'E', 'R', 'R', 'O', 'R', '_', 'P', 'O', 'S', 'I', 'T', 'I', 'O', 'N', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'F', 'O', 'G', '_', 'G', 'E', 'N', '_', 'M', 'O', 'D', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'A', 'C', 'C', 'U', 'M', '_', 'A', 'D', 'J', 'A', 'C', 'E', 'N', 'T', '_', 'P', 'A', 'I', 'R', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'A', 'D', 'J', 'A', 'C', 'E', 'N', 'T', '_', 'P', 'A', 'I', 'R', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'I', 'R', 'S', 'T', '_', 'T', 'O', '_', 'R', 'E', 'S', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'G', 'E', 'N', '_', 'M', 'O', 'D', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'G', 'E', 'N', '_', 'C', 'O', 'E', 'F', 'F', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'G', 'E', 'N', '_', 'C', 'O', 'L', 'O', 'R', '_', 'F', 'O', 'R', 'M', 'A', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'G', 'E', 'N', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'D', 'A', 'S', 'H', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'R', 'E', 'S', 'E', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'O', 'V', 'E', '_', 'T', 'O', '_', 'R', 'E', 'S', 'E', 'T', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'O', 'V', 'E', '_', 'T', 'O', '_', 'C', 'O', 'N', 'T', 'I', 'N', 'U', 'E', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'F', 'U', 'N', 'C', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'R', 'E', 'F', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'V', 'A', 'L', 'U', 'E', '_', 'M', 'A', 'S', 'K', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'C', 'A', 'L', 'E', 'D', '_', 'R', 'E', 'S', 'O', 'L', 'V', 'E', '_', 'F', 'A', 'S', 'T', 'E', 'S', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'S', 'C', 'A', 'L', 'E', 'D', '_', 'R', 'E', 'S', 'O', 'L', 'V', 'E', '_', 'N', 'I', 'C', 'E', 'S', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'M', 'I', 'N', '_', 'M', 'A', 'P', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'A', 'L', 'I', 'G', 'N', 'M', 'E', 'N', 'T', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'F', 'A', 'C', 'T', 'O', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'U', 'N', 'I', 'T', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'A', 'T', 'H', '_', 'C', 'O', 'V', 'E', 'R', '_', 'D', 'E', 'P', 'T', 'H', '_', 'F', 'U', 'N', 'C', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'F', 'O', 'R', 'M', 'A', 'T', '_', 'C', 'O', 'M', 'P', 'A', 'T', 'I', 'B', 'I', 'L', 'I', 'T', 'Y', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'F', 'O', 'R', 'M', 'A', 'T', '_', 'C', 'O', 'M', 'P', 'A', 'T', 'I', 'B', 'I', 'L', 'I', 'T', 'Y', '_', 'B', 'Y', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'F', 'O', 'R', 'M', 'A', 'T', '_', 'C', 'O', 'M', 'P', 'A', 'T', 'I', 'B', 'I', 'L', 'I', 'T', 'Y', '_', 'B', 'Y', '_', 'C', 'L', 'A', 'S', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'I', 'M', 'A', 'G', 'E', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'T', 'E', 'S', 'S', '_', 'C', 'O', 'N', 'T', 'R', 'O', 'L', '_', 'I', 'M', 'A', 'G', 'E', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'T', 'E', 'S', 'S', '_', 'E', 'V', 'A', 'L', 'U', 'A', 'T', 'I', 'O', 'N', '_', 'I', 'M', 'A', 'G', 'E', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'Y', '_', 'I', 'M', 'A', 'G', 'E', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'I', 'M', 'A', 'G', 'E', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'D', '_', 'I', 'M', 'A', 'G', 'E', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'D', 'E', 'E', 'P', '_', '3', 'D', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'W', 'I', 'D', 'T', 'H', '_', 'H', 'E', 'I', 'G', 'H', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'D', 'E', 'E', 'P', '_', '3', 'D', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'D', 'E', 'P', 'T', 'H', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'S', 'T', 'O', 'R', 'A', 'G', 'E', '_', 'B', 'U', 'F', 'F', 'E', 'R', '\0', - 'G', 'L', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'S', 'T', 'O', 'R', 'A', 'G', 'E', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'S', 'T', 'O', 'R', 'A', 'G', 'E', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'S', 'T', 'A', 'R', 'T', '\0', - 'G', 'L', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'S', 'T', 'O', 'R', 'A', 'G', 'E', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'S', 'T', 'O', 'R', 'A', 'G', 'E', '_', 'B', 'L', 'O', 'C', 'K', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'Y', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'S', 'T', 'O', 'R', 'A', 'G', 'E', '_', 'B', 'L', 'O', 'C', 'K', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'T', 'E', 'S', 'S', '_', 'C', 'O', 'N', 'T', 'R', 'O', 'L', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'S', 'T', 'O', 'R', 'A', 'G', 'E', '_', 'B', 'L', 'O', 'C', 'K', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'T', 'E', 'S', 'S', '_', 'E', 'V', 'A', 'L', 'U', 'A', 'T', 'I', 'O', 'N', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'S', 'T', 'O', 'R', 'A', 'G', 'E', '_', 'B', 'L', 'O', 'C', 'K', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'S', 'T', 'O', 'R', 'A', 'G', 'E', '_', 'B', 'L', 'O', 'C', 'K', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'O', 'M', 'P', 'U', 'T', 'E', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'S', 'T', 'O', 'R', 'A', 'G', 'E', '_', 'B', 'L', 'O', 'C', 'K', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'D', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'S', 'T', 'O', 'R', 'A', 'G', 'E', '_', 'B', 'L', 'O', 'C', 'K', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'S', 'T', 'O', 'R', 'A', 'G', 'E', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'S', 'T', 'O', 'R', 'A', 'G', 'E', '_', 'B', 'L', 'O', 'C', 'K', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'S', 'T', 'O', 'R', 'A', 'G', 'E', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'A', 'L', 'I', 'G', 'N', 'M', 'E', 'N', 'T', '\0', - 'G', 'L', '_', 'S', 'Y', 'N', 'C', '_', 'X', '1', '1', '_', 'F', 'E', 'N', 'C', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'M', 'O', 'D', 'E', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'O', 'M', 'P', 'U', 'T', 'E', '_', 'W', 'O', 'R', 'K', '_', 'G', 'R', 'O', 'U', 'P', '_', 'I', 'N', 'V', 'O', 'C', 'A', 'T', 'I', 'O', 'N', 'S', '\0', - 'G', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'B', 'L', 'O', 'C', 'K', '_', 'R', 'E', 'F', 'E', 'R', 'E', 'N', 'C', 'E', 'D', '_', 'B', 'Y', '_', 'C', 'O', 'M', 'P', 'U', 'T', 'E', '_', 'S', 'H', 'A', 'D', 'E', 'R', '\0', - 'G', 'L', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'R', 'E', 'F', 'E', 'R', 'E', 'N', 'C', 'E', 'D', '_', 'B', 'Y', '_', 'C', 'O', 'M', 'P', 'U', 'T', 'E', '_', 'S', 'H', 'A', 'D', 'E', 'R', '\0', - 'G', 'L', '_', 'D', 'I', 'S', 'P', 'A', 'T', 'C', 'H', '_', 'I', 'N', 'D', 'I', 'R', 'E', 'C', 'T', '_', 'B', 'U', 'F', 'F', 'E', 'R', '\0', - 'G', 'L', '_', 'D', 'I', 'S', 'P', 'A', 'T', 'C', 'H', '_', 'I', 'N', 'D', 'I', 'R', 'E', 'C', 'T', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'M', 'U', 'L', 'T', 'I', 'V', 'I', 'E', 'W', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'M', 'U', 'L', 'T', 'I', 'V', 'I', 'E', 'W', '_', 'B', 'U', 'F', 'F', 'E', 'R', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'T', 'E', 'X', 'T', '_', 'R', 'O', 'B', 'U', 'S', 'T', '_', 'A', 'C', 'C', 'E', 'S', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'U', 'T', 'E', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'U', 'T', 'E', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'P', 'A', 'R', 'A', 'M', 'E', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '2', 'D', '_', 'M', 'U', 'L', 'T', 'I', 'S', 'A', 'M', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'X', 'Y', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '2', 'D', '_', 'M', 'U', 'L', 'T', 'I', 'S', 'A', 'M', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '2', 'D', '_', 'M', 'U', 'L', 'T', 'I', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'X', 'Y', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', '2', 'D', '_', 'M', 'U', 'L', 'T', 'I', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', '2', 'D', '_', 'M', 'U', 'L', 'T', 'I', 'S', 'A', 'M', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '_', '2', 'D', '_', 'M', 'U', 'L', 'T', 'I', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'S', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'F', 'I', 'X', 'E', 'D', '_', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'L', 'O', 'C', 'A', 'T', 'I', 'O', 'N', 'S', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', '2', 'D', '_', 'M', 'U', 'L', 'T', 'I', 'S', 'A', 'M', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', '2', 'D', '_', 'M', 'U', 'L', 'T', 'I', 'S', 'A', 'M', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', '2', 'D', '_', 'M', 'U', 'L', 'T', 'I', 'S', 'A', 'M', 'P', 'L', 'E', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', '2', 'D', '_', 'M', 'U', 'L', 'T', 'I', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'I', 'N', 'T', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', '2', 'D', '_', 'M', 'U', 'L', 'T', 'I', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', '2', 'D', '_', 'M', 'U', 'L', 'T', 'I', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'A', 'R', 'R', 'A', 'Y', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'O', 'L', 'O', 'R', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'D', 'E', 'P', 'T', 'H', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'I', 'N', 'T', 'E', 'G', 'E', 'R', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'S', 'E', 'R', 'V', 'E', 'R', '_', 'W', 'A', 'I', 'T', '_', 'T', 'I', 'M', 'E', 'O', 'U', 'T', '\0', - 'G', 'L', '_', 'O', 'B', 'J', 'E', 'C', 'T', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'S', 'Y', 'N', 'C', '_', 'C', 'O', 'N', 'D', 'I', 'T', 'I', 'O', 'N', '\0', - 'G', 'L', '_', 'S', 'Y', 'N', 'C', '_', 'S', 'T', 'A', 'T', 'U', 'S', '\0', - 'G', 'L', '_', 'S', 'Y', 'N', 'C', '_', 'F', 'L', 'A', 'G', 'S', '\0', - 'G', 'L', '_', 'S', 'Y', 'N', 'C', '_', 'F', 'E', 'N', 'C', 'E', '\0', - 'G', 'L', '_', 'S', 'Y', 'N', 'C', '_', 'G', 'P', 'U', '_', 'C', 'O', 'M', 'M', 'A', 'N', 'D', 'S', '_', 'C', 'O', 'M', 'P', 'L', 'E', 'T', 'E', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'A', 'L', 'E', 'D', '\0', - 'G', 'L', '_', 'S', 'I', 'G', 'N', 'A', 'L', 'E', 'D', '\0', - 'G', 'L', '_', 'A', 'L', 'R', 'E', 'A', 'D', 'Y', '_', 'S', 'I', 'G', 'N', 'A', 'L', 'E', 'D', '\0', - 'G', 'L', '_', 'T', 'I', 'M', 'E', 'O', 'U', 'T', '_', 'E', 'X', 'P', 'I', 'R', 'E', 'D', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'D', 'I', 'T', 'I', 'O', 'N', '_', 'S', 'A', 'T', 'I', 'S', 'F', 'I', 'E', 'D', '\0', - 'G', 'L', '_', 'W', 'A', 'I', 'T', '_', 'F', 'A', 'I', 'L', 'E', 'D', '\0', - 'G', 'L', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'A', 'C', 'C', 'E', 'S', 'S', '_', 'F', 'L', 'A', 'G', 'S', '\0', - 'G', 'L', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'M', 'A', 'P', '_', 'L', 'E', 'N', 'G', 'T', 'H', '\0', - 'G', 'L', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'M', 'A', 'P', '_', 'O', 'F', 'F', 'S', 'E', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'Y', '_', 'I', 'N', 'P', 'U', 'T', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'Y', '_', 'O', 'U', 'T', 'P', 'U', 'T', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'I', 'N', 'P', 'U', 'T', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'T', 'E', 'X', 'T', '_', 'P', 'R', 'O', 'F', 'I', 'L', 'E', '_', 'M', 'A', 'S', 'K', '\0', - 'G', 'L', '_', 'U', 'N', 'P', 'A', 'C', 'K', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'B', 'L', 'O', 'C', 'K', '_', 'W', 'I', 'D', 'T', 'H', '\0', - 'G', 'L', '_', 'U', 'N', 'P', 'A', 'C', 'K', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'B', 'L', 'O', 'C', 'K', '_', 'H', 'E', 'I', 'G', 'H', 'T', '\0', - 'G', 'L', '_', 'U', 'N', 'P', 'A', 'C', 'K', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'B', 'L', 'O', 'C', 'K', '_', 'D', 'E', 'P', 'T', 'H', '\0', - 'G', 'L', '_', 'U', 'N', 'P', 'A', 'C', 'K', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'B', 'L', 'O', 'C', 'K', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'P', 'A', 'C', 'K', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'B', 'L', 'O', 'C', 'K', '_', 'W', 'I', 'D', 'T', 'H', '\0', - 'G', 'L', '_', 'P', 'A', 'C', 'K', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'B', 'L', 'O', 'C', 'K', '_', 'H', 'E', 'I', 'G', 'H', 'T', '\0', - 'G', 'L', '_', 'P', 'A', 'C', 'K', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'B', 'L', 'O', 'C', 'K', '_', 'D', 'E', 'P', 'T', 'H', '\0', - 'G', 'L', '_', 'P', 'A', 'C', 'K', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'B', 'L', 'O', 'C', 'K', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'I', 'M', 'M', 'U', 'T', 'A', 'B', 'L', 'E', '_', 'F', 'O', 'R', 'M', 'A', 'T', '\0', - 'G', 'L', '_', 'S', 'G', 'X', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'B', 'I', 'N', 'A', 'R', 'Y', '_', 'I', 'M', 'G', '\0', - 'G', 'L', '_', 'R', 'E', 'N', 'D', 'E', 'R', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'S', '_', 'I', 'M', 'G', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'I', 'N', 'C', 'O', 'M', 'P', 'L', 'E', 'T', 'E', '_', 'M', 'U', 'L', 'T', 'I', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'I', 'M', 'G', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'S', '_', 'I', 'M', 'G', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'S', '_', 'I', 'M', 'G', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '_', 'P', 'V', 'R', 'T', 'C', '_', '2', 'B', 'P', 'P', 'V', '2', '_', 'I', 'M', 'G', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '_', 'P', 'V', 'R', 'T', 'C', '_', '4', 'B', 'P', 'P', 'V', '2', '_', 'I', 'M', 'G', '\0', - 'G', 'L', '_', 'C', 'U', 'B', 'I', 'C', '_', 'I', 'M', 'G', '\0', - 'G', 'L', '_', 'C', 'U', 'B', 'I', 'C', '_', 'M', 'I', 'P', 'M', 'A', 'P', '_', 'N', 'E', 'A', 'R', 'E', 'S', 'T', '_', 'I', 'M', 'G', '\0', - 'G', 'L', '_', 'C', 'U', 'B', 'I', 'C', '_', 'M', 'I', 'P', 'M', 'A', 'P', '_', 'L', 'I', 'N', 'E', 'A', 'R', '_', 'I', 'M', 'G', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'I', 'N', 'C', 'O', 'M', 'P', 'L', 'E', 'T', 'E', '_', 'M', 'U', 'L', 'T', 'I', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'A', 'N', 'D', '_', 'D', 'O', 'W', 'N', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'I', 'M', 'G', '\0', - 'G', 'L', '_', 'N', 'U', 'M', '_', 'D', 'O', 'W', 'N', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'S', 'C', 'A', 'L', 'E', 'S', '_', 'I', 'M', 'G', '\0', - 'G', 'L', '_', 'D', 'O', 'W', 'N', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'S', 'C', 'A', 'L', 'E', 'S', '_', 'I', 'M', 'G', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'S', 'C', 'A', 'L', 'E', '_', 'I', 'M', 'G', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'D', 'E', 'B', 'U', 'G', '_', 'M', 'E', 'S', 'S', 'A', 'G', 'E', '_', 'L', 'E', 'N', 'G', 'T', 'H', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'D', 'E', 'B', 'U', 'G', '_', 'L', 'O', 'G', 'G', 'E', 'D', '_', 'M', 'E', 'S', 'S', 'A', 'G', 'E', 'S', '\0', - 'G', 'L', '_', 'D', 'E', 'B', 'U', 'G', '_', 'L', 'O', 'G', 'G', 'E', 'D', '_', 'M', 'E', 'S', 'S', 'A', 'G', 'E', 'S', '\0', - 'G', 'L', '_', 'D', 'E', 'B', 'U', 'G', '_', 'S', 'E', 'V', 'E', 'R', 'I', 'T', 'Y', '_', 'H', 'I', 'G', 'H', '\0', - 'G', 'L', '_', 'D', 'E', 'B', 'U', 'G', '_', 'S', 'E', 'V', 'E', 'R', 'I', 'T', 'Y', '_', 'M', 'E', 'D', 'I', 'U', 'M', '\0', - 'G', 'L', '_', 'D', 'E', 'B', 'U', 'G', '_', 'S', 'E', 'V', 'E', 'R', 'I', 'T', 'Y', '_', 'L', 'O', 'W', '\0', - 'G', 'L', '_', 'D', 'E', 'B', 'U', 'G', '_', 'C', 'A', 'T', 'E', 'G', 'O', 'R', 'Y', '_', 'A', 'P', 'I', '_', 'E', 'R', 'R', 'O', 'R', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'D', 'E', 'B', 'U', 'G', '_', 'C', 'A', 'T', 'E', 'G', 'O', 'R', 'Y', '_', 'W', 'I', 'N', 'D', 'O', 'W', '_', 'S', 'Y', 'S', 'T', 'E', 'M', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'D', 'E', 'B', 'U', 'G', '_', 'C', 'A', 'T', 'E', 'G', 'O', 'R', 'Y', '_', 'D', 'E', 'P', 'R', 'E', 'C', 'A', 'T', 'I', 'O', 'N', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'D', 'E', 'B', 'U', 'G', '_', 'C', 'A', 'T', 'E', 'G', 'O', 'R', 'Y', '_', 'U', 'N', 'D', 'E', 'F', 'I', 'N', 'E', 'D', '_', 'B', 'E', 'H', 'A', 'V', 'I', 'O', 'R', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'D', 'E', 'B', 'U', 'G', '_', 'C', 'A', 'T', 'E', 'G', 'O', 'R', 'Y', '_', 'P', 'E', 'R', 'F', 'O', 'R', 'M', 'A', 'N', 'C', 'E', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'D', 'E', 'B', 'U', 'G', '_', 'C', 'A', 'T', 'E', 'G', 'O', 'R', 'Y', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'C', 'O', 'M', 'P', 'I', 'L', 'E', 'R', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'D', 'E', 'B', 'U', 'G', '_', 'C', 'A', 'T', 'E', 'G', 'O', 'R', 'Y', '_', 'A', 'P', 'P', 'L', 'I', 'C', 'A', 'T', 'I', 'O', 'N', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'D', 'E', 'B', 'U', 'G', '_', 'C', 'A', 'T', 'E', 'G', 'O', 'R', 'Y', '_', 'O', 'T', 'H', 'E', 'R', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'O', 'B', 'J', 'E', 'C', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'P', 'E', 'R', 'F', 'O', 'R', 'M', 'A', 'N', 'C', 'E', '_', 'M', 'O', 'N', 'I', 'T', 'O', 'R', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'Q', 'U', 'E', 'R', 'Y', '_', 'O', 'B', 'J', 'E', 'C', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'O', 'B', 'J', 'E', 'C', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'R', '_', 'O', 'B', 'J', 'E', 'C', 'T', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'E', 'X', 'T', 'E', 'R', 'N', 'A', 'L', '_', 'V', 'I', 'R', 'T', 'U', 'A', 'L', '_', 'M', 'E', 'M', 'O', 'R', 'Y', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'Q', 'U', 'E', 'R', 'Y', '_', 'B', 'U', 'F', 'F', 'E', 'R', '\0', - 'G', 'L', '_', 'Q', 'U', 'E', 'R', 'Y', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'Q', 'U', 'E', 'R', 'Y', '_', 'R', 'E', 'S', 'U', 'L', 'T', '_', 'N', 'O', '_', 'W', 'A', 'I', 'T', '\0', - 'G', 'L', '_', 'V', 'I', 'R', 'T', 'U', 'A', 'L', '_', 'P', 'A', 'G', 'E', '_', 'S', 'I', 'Z', 'E', '_', 'X', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'V', 'I', 'R', 'T', 'U', 'A', 'L', '_', 'P', 'A', 'G', 'E', '_', 'S', 'I', 'Z', 'E', '_', 'Y', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'V', 'I', 'R', 'T', 'U', 'A', 'L', '_', 'P', 'A', 'G', 'E', '_', 'S', 'I', 'Z', 'E', '_', 'Z', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'S', 'P', 'A', 'R', 'S', 'E', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'S', 'I', 'Z', 'E', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'S', 'P', 'A', 'R', 'S', 'E', '_', '3', 'D', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'S', 'I', 'Z', 'E', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'S', 'P', 'A', 'R', 'S', 'E', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'L', 'A', 'Y', 'E', 'R', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'I', 'N', '_', 'S', 'P', 'A', 'R', 'S', 'E', '_', 'L', 'E', 'V', 'E', 'L', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'M', 'I', 'N', '_', 'L', 'O', 'D', '_', 'W', 'A', 'R', 'N', 'I', 'N', 'G', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'O', 'F', 'F', 'S', 'E', 'T', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'O', 'F', 'F', 'S', 'E', 'T', '_', 'A', 'L', 'I', 'G', 'N', 'M', 'E', 'N', 'T', '\0', - 'G', 'L', '_', 'S', 'T', 'R', 'E', 'A', 'M', '_', 'R', 'A', 'S', 'T', 'E', 'R', 'I', 'Z', 'A', 'T', 'I', 'O', 'N', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'E', 'L', 'E', 'M', 'E', 'N', 'T', '_', 'S', 'W', 'I', 'Z', 'Z', 'L', 'E', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'I', 'D', '_', 'S', 'W', 'I', 'Z', 'Z', 'L', 'E', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'S', 'P', 'A', 'R', 'S', 'E', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'V', 'I', 'R', 'T', 'U', 'A', 'L', '_', 'P', 'A', 'G', 'E', '_', 'S', 'I', 'Z', 'E', '_', 'I', 'N', 'D', 'E', 'X', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'N', 'U', 'M', '_', 'V', 'I', 'R', 'T', 'U', 'A', 'L', '_', 'P', 'A', 'G', 'E', '_', 'S', 'I', 'Z', 'E', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'S', 'P', 'A', 'R', 'S', 'E', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'F', 'U', 'L', 'L', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'C', 'U', 'B', 'E', '_', 'M', 'I', 'P', 'M', 'A', 'P', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'N', 'U', 'M', '_', 'S', 'P', 'A', 'R', 'S', 'E', '_', 'L', 'E', 'V', 'E', 'L', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', 'S', '_', 'P', 'E', 'R', '_', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'P', 'A', 'T', 'T', 'E', 'R', 'N', '_', 'X', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'P', 'I', 'X', 'E', 'L', 'S', '_', 'P', 'E', 'R', '_', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'P', 'A', 'T', 'T', 'E', 'R', 'N', '_', 'Y', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'C', 'O', 'M', 'P', 'I', 'L', 'E', 'R', '_', 'T', 'H', 'R', 'E', 'A', 'D', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'L', 'E', 'T', 'I', 'O', 'N', '_', 'S', 'T', 'A', 'T', 'U', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'U', 'T', 'E', '_', 'S', 'H', 'A', 'D', 'E', 'R', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'O', 'M', 'P', 'U', 'T', 'E', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'B', 'L', 'O', 'C', 'K', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'O', 'M', 'P', 'U', 'T', 'E', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'I', 'M', 'A', 'G', 'E', '_', 'U', 'N', 'I', 'T', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'O', 'M', 'P', 'U', 'T', 'E', '_', 'I', 'M', 'A', 'G', 'E', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'O', 'M', 'P', 'U', 'T', 'E', '_', 'W', 'O', 'R', 'K', '_', 'G', 'R', 'O', 'U', 'P', '_', 'C', 'O', 'U', 'N', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'O', 'M', 'P', 'U', 'T', 'E', '_', 'W', 'O', 'R', 'K', '_', 'G', 'R', 'O', 'U', 'P', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '1', '6', '_', 'M', 'A', 'T', '2', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '1', '6', '_', 'M', 'A', 'T', '3', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '1', '6', '_', 'M', 'A', 'T', '4', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '1', '6', '_', 'M', 'A', 'T', '2', 'x', '3', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '1', '6', '_', 'M', 'A', 'T', '2', 'x', '4', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '1', '6', '_', 'M', 'A', 'T', '3', 'x', '2', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '1', '6', '_', 'M', 'A', 'T', '3', 'x', '4', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '1', '6', '_', 'M', 'A', 'T', '4', 'x', '2', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'F', 'L', 'O', 'A', 'T', '1', '6', '_', 'M', 'A', 'T', '4', 'x', '3', '_', 'A', 'M', 'D', '\0', - 'G', 'L', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'B', 'I', 'N', 'A', 'R', 'Y', '_', 'D', 'M', 'P', '\0', - 'G', 'L', '_', 'S', 'M', 'A', 'P', 'H', 'S', '3', '0', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'B', 'I', 'N', 'A', 'R', 'Y', '_', 'D', 'M', 'P', '\0', - 'G', 'L', '_', 'S', 'M', 'A', 'P', 'H', 'S', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'B', 'I', 'N', 'A', 'R', 'Y', '_', 'D', 'M', 'P', '\0', - 'G', 'L', '_', 'D', 'M', 'P', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'B', 'I', 'N', 'A', 'R', 'Y', '_', 'D', 'M', 'P', '\0', - 'G', 'L', '_', 'G', 'C', 'C', 'S', 'O', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'B', 'I', 'N', 'A', 'R', 'Y', '_', 'F', 'J', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', '1', '1', '_', 'E', 'A', 'C', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'R', '1', '1', '_', 'E', 'A', 'C', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', '1', '1', '_', 'E', 'A', 'C', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'R', 'G', '1', '1', '_', 'E', 'A', 'C', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', '8', '_', 'E', 'T', 'C', '2', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '8', '_', 'E', 'T', 'C', '2', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', '8', '_', 'P', 'U', 'N', 'C', 'H', 'T', 'H', 'R', 'O', 'U', 'G', 'H', '_', 'A', 'L', 'P', 'H', 'A', '1', '_', 'E', 'T', 'C', '2', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '8', '_', 'P', 'U', 'N', 'C', 'H', 'T', 'H', 'R', 'O', 'U', 'G', 'H', '_', 'A', 'L', 'P', 'H', 'A', '1', '_', 'E', 'T', 'C', '2', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '8', '_', 'E', 'T', 'C', '2', '_', 'E', 'A', 'C', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '8', '_', 'A', 'L', 'P', 'H', 'A', '8', '_', 'E', 'T', 'C', '2', '_', 'E', 'A', 'C', '\0', - 'G', 'L', '_', 'B', 'L', 'E', 'N', 'D', '_', 'P', 'R', 'E', 'M', 'U', 'L', 'T', 'I', 'P', 'L', 'I', 'E', 'D', '_', 'S', 'R', 'C', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'B', 'L', 'E', 'N', 'D', '_', 'O', 'V', 'E', 'R', 'L', 'A', 'P', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'U', 'N', 'C', 'O', 'R', 'R', 'E', 'L', 'A', 'T', 'E', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'I', 'S', 'J', 'O', 'I', 'N', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'J', 'O', 'I', 'N', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'B', 'L', 'E', 'N', 'D', '_', 'A', 'D', 'V', 'A', 'N', 'C', 'E', 'D', '_', 'C', 'O', 'H', 'E', 'R', 'E', 'N', 'T', '_', 'K', 'H', 'R', '\0', - 'G', 'L', '_', 'S', 'R', 'C', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'S', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'R', 'C', '_', 'O', 'V', 'E', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'S', 'T', '_', 'O', 'V', 'E', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'R', 'C', '_', 'I', 'N', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'S', 'T', '_', 'I', 'N', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'R', 'C', '_', 'O', 'U', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'S', 'T', '_', 'O', 'U', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'R', 'C', '_', 'A', 'T', 'O', 'P', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'S', 'T', '_', 'A', 'T', 'O', 'P', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'L', 'U', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'L', 'U', 'S', '_', 'D', 'A', 'R', 'K', 'E', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'U', 'L', 'T', 'I', 'P', 'L', 'Y', '\0', - 'G', 'L', '_', 'S', 'C', 'R', 'E', 'E', 'N', '\0', - 'G', 'L', '_', 'O', 'V', 'E', 'R', 'L', 'A', 'Y', '\0', - 'G', 'L', '_', 'D', 'A', 'R', 'K', 'E', 'N', '\0', - 'G', 'L', '_', 'L', 'I', 'G', 'H', 'T', 'E', 'N', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', 'D', 'O', 'D', 'G', 'E', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', 'B', 'U', 'R', 'N', '\0', - 'G', 'L', '_', 'H', 'A', 'R', 'D', 'L', 'I', 'G', 'H', 'T', '\0', - 'G', 'L', '_', 'S', 'O', 'F', 'T', 'L', 'I', 'G', 'H', 'T', '\0', - 'G', 'L', '_', 'D', 'I', 'F', 'F', 'E', 'R', 'E', 'N', 'C', 'E', '\0', - 'G', 'L', '_', 'M', 'I', 'N', 'U', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'E', 'X', 'C', 'L', 'U', 'S', 'I', 'O', 'N', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'T', 'R', 'A', 'S', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'I', 'N', 'V', 'E', 'R', 'T', '_', 'R', 'G', 'B', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'L', 'I', 'N', 'E', 'A', 'R', 'D', 'O', 'D', 'G', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'L', 'I', 'N', 'E', 'A', 'R', 'B', 'U', 'R', 'N', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'I', 'V', 'I', 'D', 'L', 'I', 'G', 'H', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'L', 'I', 'N', 'E', 'A', 'R', 'L', 'I', 'G', 'H', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'I', 'N', 'L', 'I', 'G', 'H', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'H', 'A', 'R', 'D', 'M', 'I', 'X', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'H', 'S', 'L', '_', 'H', 'U', 'E', '\0', - 'G', 'L', '_', 'H', 'S', 'L', '_', 'S', 'A', 'T', 'U', 'R', 'A', 'T', 'I', 'O', 'N', '\0', - 'G', 'L', '_', 'H', 'S', 'L', '_', 'C', 'O', 'L', 'O', 'R', '\0', - 'G', 'L', '_', 'H', 'S', 'L', '_', 'L', 'U', 'M', 'I', 'N', 'O', 'S', 'I', 'T', 'Y', '\0', - 'G', 'L', '_', 'P', 'L', 'U', 'S', '_', 'C', 'L', 'A', 'M', 'P', 'E', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'L', 'U', 'S', '_', 'C', 'L', 'A', 'M', 'P', 'E', 'D', '_', 'A', 'L', 'P', 'H', 'A', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'I', 'N', 'U', 'S', '_', 'C', 'L', 'A', 'M', 'P', 'E', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'I', 'N', 'V', 'E', 'R', 'T', '_', 'O', 'V', 'G', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'L', 'G', 'P', 'U', '_', 'G', 'P', 'U', 'S', '_', 'N', 'V', 'X', '\0', - 'G', 'L', '_', 'P', 'U', 'R', 'G', 'E', 'D', '_', 'C', 'O', 'N', 'T', 'E', 'X', 'T', '_', 'R', 'E', 'S', 'E', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'P', 'R', 'I', 'M', 'I', 'T', 'I', 'V', 'E', '_', 'B', 'O', 'U', 'N', 'D', 'I', 'N', 'G', '_', 'B', 'O', 'X', '\0', - 'G', 'L', '_', 'A', 'L', 'P', 'H', 'A', '_', 'T', 'O', '_', 'C', 'O', 'V', 'E', 'R', 'A', 'G', 'E', '_', 'D', 'I', 'T', 'H', 'E', 'R', '_', 'M', 'O', 'D', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '\0', - 'G', 'L', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'S', 'T', 'A', 'R', 'T', '\0', - 'G', 'L', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'D', 'A', 'T', 'A', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'A', 'C', 'T', 'I', 'V', 'E', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', 'S', '\0', - 'G', 'L', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'A', 'C', 'T', 'I', 'V', 'E', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'I', 'N', 'D', 'I', 'C', 'E', 'S', '\0', - 'G', 'L', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'R', 'E', 'F', 'E', 'R', 'E', 'N', 'C', 'E', 'D', '_', 'B', 'Y', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'H', 'A', 'D', 'E', 'R', '\0', - 'G', 'L', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'R', 'E', 'F', 'E', 'R', 'E', 'N', 'C', 'E', 'D', '_', 'B', 'Y', '_', 'T', 'E', 'S', 'S', '_', 'C', 'O', 'N', 'T', 'R', 'O', 'L', '_', 'S', 'H', 'A', 'D', 'E', 'R', '\0', - 'G', 'L', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'R', 'E', 'F', 'E', 'R', 'E', 'N', 'C', 'E', 'D', '_', 'B', 'Y', '_', 'T', 'E', 'S', 'S', '_', 'E', 'V', 'A', 'L', 'U', 'A', 'T', 'I', 'O', 'N', '_', 'S', 'H', 'A', 'D', 'E', 'R', '\0', - 'G', 'L', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'R', 'E', 'F', 'E', 'R', 'E', 'N', 'C', 'E', 'D', '_', 'B', 'Y', '_', 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'Y', '_', 'S', 'H', 'A', 'D', 'E', 'R', '\0', - 'G', 'L', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'R', 'E', 'F', 'E', 'R', 'E', 'N', 'C', 'E', 'D', '_', 'B', 'Y', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'S', 'H', 'A', 'D', 'E', 'R', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'T', 'E', 'S', 'S', '_', 'C', 'O', 'N', 'T', 'R', 'O', 'L', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'T', 'E', 'S', 'S', '_', 'E', 'V', 'A', 'L', 'U', 'A', 'T', 'I', 'O', 'N', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'Y', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'D', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'T', 'E', 'S', 'S', '_', 'C', 'O', 'N', 'T', 'R', 'O', 'L', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'T', 'E', 'S', 'S', '_', 'E', 'V', 'A', 'L', 'U', 'A', 'T', 'I', 'O', 'N', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'Y', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'D', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'A', 'C', 'T', 'I', 'V', 'E', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', 'S', '\0', - 'G', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'I', 'N', 'D', 'E', 'X', '\0', - 'G', 'L', '_', 'U', 'N', 'S', 'I', 'G', 'N', 'E', 'D', '_', 'I', 'N', 'T', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', 'S', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'C', 'O', 'V', 'E', 'R', 'A', 'G', 'E', '_', 'T', 'O', '_', 'C', 'O', 'L', 'O', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'C', 'O', 'V', 'E', 'R', 'A', 'G', 'E', '_', 'C', 'O', 'L', 'O', 'R', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'D', 'E', 'B', 'U', 'G', '_', 'O', 'U', 'T', 'P', 'U', 'T', '\0', - 'G', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '\0', - 'G', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'B', 'L', 'O', 'C', 'K', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'I', 'N', 'P', 'U', 'T', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'O', 'U', 'T', 'P', 'U', 'T', '\0', - 'G', 'L', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'V', 'A', 'R', 'I', 'A', 'B', 'L', 'E', '\0', - 'G', 'L', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'S', 'T', 'O', 'R', 'A', 'G', 'E', '_', 'B', 'L', 'O', 'C', 'K', '\0', - 'G', 'L', '_', 'I', 'S', '_', 'P', 'E', 'R', '_', 'P', 'A', 'T', 'C', 'H', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'U', 'B', 'R', 'O', 'U', 'T', 'I', 'N', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'S', 'S', '_', 'C', 'O', 'N', 'T', 'R', 'O', 'L', '_', 'S', 'U', 'B', 'R', 'O', 'U', 'T', 'I', 'N', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'S', 'S', '_', 'E', 'V', 'A', 'L', 'U', 'A', 'T', 'I', 'O', 'N', '_', 'S', 'U', 'B', 'R', 'O', 'U', 'T', 'I', 'N', 'E', '\0', - 'G', 'L', '_', 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'Y', '_', 'S', 'U', 'B', 'R', 'O', 'U', 'T', 'I', 'N', 'E', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'S', 'U', 'B', 'R', 'O', 'U', 'T', 'I', 'N', 'E', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'U', 'T', 'E', '_', 'S', 'U', 'B', 'R', 'O', 'U', 'T', 'I', 'N', 'E', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'U', 'B', 'R', 'O', 'U', 'T', 'I', 'N', 'E', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '\0', - 'G', 'L', '_', 'T', 'E', 'S', 'S', '_', 'C', 'O', 'N', 'T', 'R', 'O', 'L', '_', 'S', 'U', 'B', 'R', 'O', 'U', 'T', 'I', 'N', 'E', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '\0', - 'G', 'L', '_', 'T', 'E', 'S', 'S', '_', 'E', 'V', 'A', 'L', 'U', 'A', 'T', 'I', 'O', 'N', '_', 'S', 'U', 'B', 'R', 'O', 'U', 'T', 'I', 'N', 'E', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '\0', - 'G', 'L', '_', 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'Y', '_', 'S', 'U', 'B', 'R', 'O', 'U', 'T', 'I', 'N', 'E', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'S', 'U', 'B', 'R', 'O', 'U', 'T', 'I', 'N', 'E', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'U', 'T', 'E', '_', 'S', 'U', 'B', 'R', 'O', 'U', 'T', 'I', 'N', 'E', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'F', 'O', 'R', 'M', '_', 'F', 'E', 'E', 'D', 'B', 'A', 'C', 'K', '_', 'V', 'A', 'R', 'Y', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'A', 'C', 'T', 'I', 'V', 'E', '_', 'R', 'E', 'S', 'O', 'U', 'R', 'C', 'E', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'N', 'A', 'M', 'E', '_', 'L', 'E', 'N', 'G', 'T', 'H', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'N', 'U', 'M', '_', 'A', 'C', 'T', 'I', 'V', 'E', '_', 'V', 'A', 'R', 'I', 'A', 'B', 'L', 'E', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'N', 'U', 'M', '_', 'C', 'O', 'M', 'P', 'A', 'T', 'I', 'B', 'L', 'E', '_', 'S', 'U', 'B', 'R', 'O', 'U', 'T', 'I', 'N', 'E', 'S', '\0', - 'G', 'L', '_', 'N', 'A', 'M', 'E', '_', 'L', 'E', 'N', 'G', 'T', 'H', '\0', - 'G', 'L', '_', 'T', 'Y', 'P', 'E', '\0', - 'G', 'L', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'O', 'F', 'F', 'S', 'E', 'T', '\0', - 'G', 'L', '_', 'B', 'L', 'O', 'C', 'K', '_', 'I', 'N', 'D', 'E', 'X', '\0', - 'G', 'L', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'T', 'R', 'I', 'D', 'E', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'R', 'I', 'X', '_', 'S', 'T', 'R', 'I', 'D', 'E', '\0', - 'G', 'L', '_', 'I', 'S', '_', 'R', 'O', 'W', '_', 'M', 'A', 'J', 'O', 'R', '\0', - 'G', 'L', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'I', 'N', 'D', 'E', 'X', '\0', - 'G', 'L', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'B', 'I', 'N', 'D', 'I', 'N', 'G', '\0', - 'G', 'L', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'D', 'A', 'T', 'A', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'N', 'U', 'M', '_', 'A', 'C', 'T', 'I', 'V', 'E', '_', 'V', 'A', 'R', 'I', 'A', 'B', 'L', 'E', 'S', '\0', - 'G', 'L', '_', 'A', 'C', 'T', 'I', 'V', 'E', '_', 'V', 'A', 'R', 'I', 'A', 'B', 'L', 'E', 'S', '\0', - 'G', 'L', '_', 'R', 'E', 'F', 'E', 'R', 'E', 'N', 'C', 'E', 'D', '_', 'B', 'Y', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'S', 'H', 'A', 'D', 'E', 'R', '\0', - 'G', 'L', '_', 'R', 'E', 'F', 'E', 'R', 'E', 'N', 'C', 'E', 'D', '_', 'B', 'Y', '_', 'T', 'E', 'S', 'S', '_', 'C', 'O', 'N', 'T', 'R', 'O', 'L', '_', 'S', 'H', 'A', 'D', 'E', 'R', '\0', - 'G', 'L', '_', 'R', 'E', 'F', 'E', 'R', 'E', 'N', 'C', 'E', 'D', '_', 'B', 'Y', '_', 'T', 'E', 'S', 'S', '_', 'E', 'V', 'A', 'L', 'U', 'A', 'T', 'I', 'O', 'N', '_', 'S', 'H', 'A', 'D', 'E', 'R', '\0', - 'G', 'L', '_', 'R', 'E', 'F', 'E', 'R', 'E', 'N', 'C', 'E', 'D', '_', 'B', 'Y', '_', 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'Y', '_', 'S', 'H', 'A', 'D', 'E', 'R', '\0', - 'G', 'L', '_', 'R', 'E', 'F', 'E', 'R', 'E', 'N', 'C', 'E', 'D', '_', 'B', 'Y', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'S', 'H', 'A', 'D', 'E', 'R', '\0', - 'G', 'L', '_', 'R', 'E', 'F', 'E', 'R', 'E', 'N', 'C', 'E', 'D', '_', 'B', 'Y', '_', 'C', 'O', 'M', 'P', 'U', 'T', 'E', '_', 'S', 'H', 'A', 'D', 'E', 'R', '\0', - 'G', 'L', '_', 'T', 'O', 'P', '_', 'L', 'E', 'V', 'E', 'L', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'I', 'Z', 'E', '\0', - 'G', 'L', '_', 'T', 'O', 'P', '_', 'L', 'E', 'V', 'E', 'L', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'S', 'T', 'R', 'I', 'D', 'E', '\0', - 'G', 'L', '_', 'L', 'O', 'C', 'A', 'T', 'I', 'O', 'N', '\0', - 'G', 'L', '_', 'L', 'O', 'C', 'A', 'T', 'I', 'O', 'N', '_', 'I', 'N', 'D', 'E', 'X', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'D', 'E', 'F', 'A', 'U', 'L', 'T', '_', 'W', 'I', 'D', 'T', 'H', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'D', 'E', 'F', 'A', 'U', 'L', 'T', '_', 'H', 'E', 'I', 'G', 'H', 'T', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'D', 'E', 'F', 'A', 'U', 'L', 'T', '_', 'L', 'A', 'Y', 'E', 'R', 'S', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'D', 'E', 'F', 'A', 'U', 'L', 'T', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'S', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'D', 'E', 'F', 'A', 'U', 'L', 'T', '_', 'F', 'I', 'X', 'E', 'D', '_', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'L', 'O', 'C', 'A', 'T', 'I', 'O', 'N', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'W', 'I', 'D', 'T', 'H', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'H', 'E', 'I', 'G', 'H', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'L', 'A', 'Y', 'E', 'R', 'S', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'S', '\0', - 'G', 'L', '_', 'R', 'A', 'S', 'T', 'E', 'R', '_', 'M', 'U', 'L', 'T', 'I', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'R', 'A', 'S', 'T', 'E', 'R', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'R', 'A', 'S', 'T', 'E', 'R', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'R', 'A', 'S', 'T', 'E', 'R', '_', 'F', 'I', 'X', 'E', 'D', '_', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'L', 'O', 'C', 'A', 'T', 'I', 'O', 'N', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'M', 'U', 'L', 'T', 'I', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'R', 'A', 'S', 'T', 'E', 'R', 'I', 'Z', 'A', 'T', 'I', 'O', 'N', '_', 'A', 'L', 'L', 'O', 'W', 'E', 'D', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'E', 'F', 'F', 'E', 'C', 'T', 'I', 'V', 'E', '_', 'R', 'A', 'S', 'T', 'E', 'R', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'D', 'E', 'P', 'T', 'H', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'I', 'X', 'E', 'D', '_', 'D', 'E', 'P', 'T', 'H', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'S', '_', 'S', 'U', 'P', 'P', 'O', 'R', 'T', 'E', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'I', 'X', 'E', 'D', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', 'S', '_', 'S', 'U', 'P', 'P', 'O', 'R', 'T', 'E', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'V', 'E', 'R', 'A', 'G', 'E', '_', 'M', 'O', 'D', 'U', 'L', 'A', 'T', 'I', 'O', 'N', '_', 'T', 'A', 'B', 'L', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'V', 'E', 'R', 'A', 'G', 'E', '_', 'M', 'O', 'D', 'U', 'L', 'A', 'T', 'I', 'O', 'N', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'V', 'E', 'R', 'A', 'G', 'E', '_', 'M', 'O', 'D', 'U', 'L', 'A', 'T', 'I', 'O', 'N', '_', 'T', 'A', 'B', 'L', 'E', '_', 'S', 'I', 'Z', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'W', 'A', 'R', 'P', '_', 'S', 'I', 'Z', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'W', 'A', 'R', 'P', 'S', '_', 'P', 'E', 'R', '_', 'S', 'M', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'M', '_', 'C', 'O', 'U', 'N', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'I', 'L', 'L', '_', 'R', 'E', 'C', 'T', 'A', 'N', 'G', 'L', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'L', 'O', 'C', 'A', 'T', 'I', 'O', 'N', '_', 'S', 'U', 'B', 'P', 'I', 'X', 'E', 'L', '_', 'B', 'I', 'T', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'L', 'O', 'C', 'A', 'T', 'I', 'O', 'N', '_', 'P', 'I', 'X', 'E', 'L', '_', 'G', 'R', 'I', 'D', '_', 'W', 'I', 'D', 'T', 'H', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'L', 'O', 'C', 'A', 'T', 'I', 'O', 'N', '_', 'P', 'I', 'X', 'E', 'L', '_', 'G', 'R', 'I', 'D', '_', 'H', 'E', 'I', 'G', 'H', 'T', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', 'M', 'A', 'B', 'L', 'E', '_', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'L', 'O', 'C', 'A', 'T', 'I', 'O', 'N', '_', 'T', 'A', 'B', 'L', 'E', '_', 'S', 'I', 'Z', 'E', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', 'M', 'A', 'B', 'L', 'E', '_', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'L', 'O', 'C', 'A', 'T', 'I', 'O', 'N', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', 'M', 'A', 'B', 'L', 'E', '_', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'L', 'O', 'C', 'A', 'T', 'I', 'O', 'N', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'L', 'O', 'C', 'A', 'T', 'I', 'O', 'N', '_', 'P', 'I', 'X', 'E', 'L', '_', 'G', 'R', 'I', 'D', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'O', 'M', 'P', 'U', 'T', 'E', '_', 'V', 'A', 'R', 'I', 'A', 'B', 'L', 'E', '_', 'G', 'R', 'O', 'U', 'P', '_', 'I', 'N', 'V', 'O', 'C', 'A', 'T', 'I', 'O', 'N', 'S', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'C', 'O', 'M', 'P', 'U', 'T', 'E', '_', 'V', 'A', 'R', 'I', 'A', 'B', 'L', 'E', '_', 'G', 'R', 'O', 'U', 'P', '_', 'S', 'I', 'Z', 'E', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'S', 'E', 'R', 'V', 'A', 'T', 'I', 'V', 'E', '_', 'R', 'A', 'S', 'T', 'E', 'R', 'I', 'Z', 'A', 'T', 'I', 'O', 'N', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'U', 'B', 'P', 'I', 'X', 'E', 'L', '_', 'P', 'R', 'E', 'C', 'I', 'S', 'I', 'O', 'N', '_', 'B', 'I', 'A', 'S', '_', 'X', '_', 'B', 'I', 'T', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'U', 'B', 'P', 'I', 'X', 'E', 'L', '_', 'P', 'R', 'E', 'C', 'I', 'S', 'I', 'O', 'N', '_', 'B', 'I', 'A', 'S', '_', 'Y', '_', 'B', 'I', 'T', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'S', 'U', 'B', 'P', 'I', 'X', 'E', 'L', '_', 'P', 'R', 'E', 'C', 'I', 'S', 'I', 'O', 'N', '_', 'B', 'I', 'A', 'S', '_', 'B', 'I', 'T', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'L', 'O', 'C', 'A', 'T', 'I', 'O', 'N', '_', 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'F', 'O', 'R', 'M', '_', 'F', 'E', 'E', 'D', 'B', 'A', 'C', 'K', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'I', 'N', 'D', 'E', 'X', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'F', 'O', 'R', 'M', '_', 'F', 'E', 'E', 'D', 'B', 'A', 'C', 'K', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'S', 'T', 'R', 'I', 'D', 'E', '\0', - 'G', 'L', '_', 'A', 'L', 'P', 'H', 'A', '_', 'T', 'O', '_', 'C', 'O', 'V', 'E', 'R', 'A', 'G', 'E', '_', 'D', 'I', 'T', 'H', 'E', 'R', '_', 'D', 'E', 'F', 'A', 'U', 'L', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'A', 'L', 'P', 'H', 'A', '_', 'T', 'O', '_', 'C', 'O', 'V', 'E', 'R', 'A', 'G', 'E', '_', 'D', 'I', 'T', 'H', 'E', 'R', '_', 'E', 'N', 'A', 'B', 'L', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'A', 'L', 'P', 'H', 'A', '_', 'T', 'O', '_', 'C', 'O', 'V', 'E', 'R', 'A', 'G', 'E', '_', 'D', 'I', 'T', 'H', 'E', 'R', '_', 'D', 'I', 'S', 'A', 'B', 'L', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', 'P', 'O', 'R', 'T', '_', 'S', 'W', 'I', 'Z', 'Z', 'L', 'E', '_', 'P', 'O', 'S', 'I', 'T', 'I', 'V', 'E', '_', 'X', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', 'P', 'O', 'R', 'T', '_', 'S', 'W', 'I', 'Z', 'Z', 'L', 'E', '_', 'N', 'E', 'G', 'A', 'T', 'I', 'V', 'E', '_', 'X', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', 'P', 'O', 'R', 'T', '_', 'S', 'W', 'I', 'Z', 'Z', 'L', 'E', '_', 'P', 'O', 'S', 'I', 'T', 'I', 'V', 'E', '_', 'Y', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', 'P', 'O', 'R', 'T', '_', 'S', 'W', 'I', 'Z', 'Z', 'L', 'E', '_', 'N', 'E', 'G', 'A', 'T', 'I', 'V', 'E', '_', 'Y', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', 'P', 'O', 'R', 'T', '_', 'S', 'W', 'I', 'Z', 'Z', 'L', 'E', '_', 'P', 'O', 'S', 'I', 'T', 'I', 'V', 'E', '_', 'Z', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', 'P', 'O', 'R', 'T', '_', 'S', 'W', 'I', 'Z', 'Z', 'L', 'E', '_', 'N', 'E', 'G', 'A', 'T', 'I', 'V', 'E', '_', 'Z', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', 'P', 'O', 'R', 'T', '_', 'S', 'W', 'I', 'Z', 'Z', 'L', 'E', '_', 'P', 'O', 'S', 'I', 'T', 'I', 'V', 'E', '_', 'W', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', 'P', 'O', 'R', 'T', '_', 'S', 'W', 'I', 'Z', 'Z', 'L', 'E', '_', 'N', 'E', 'G', 'A', 'T', 'I', 'V', 'E', '_', 'W', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', 'P', 'O', 'R', 'T', '_', 'S', 'W', 'I', 'Z', 'Z', 'L', 'E', '_', 'X', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', 'P', 'O', 'R', 'T', '_', 'S', 'W', 'I', 'Z', 'Z', 'L', 'E', '_', 'Y', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', 'P', 'O', 'R', 'T', '_', 'S', 'W', 'I', 'Z', 'Z', 'L', 'E', '_', 'Z', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', 'P', 'O', 'R', 'T', '_', 'S', 'W', 'I', 'Z', 'Z', 'L', 'E', '_', 'W', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'L', 'I', 'P', '_', 'O', 'R', 'I', 'G', 'I', 'N', '\0', - 'G', 'L', '_', 'C', 'L', 'I', 'P', '_', 'D', 'E', 'P', 'T', 'H', '_', 'M', 'O', 'D', 'E', '\0', - 'G', 'L', '_', 'N', 'E', 'G', 'A', 'T', 'I', 'V', 'E', '_', 'O', 'N', 'E', '_', 'T', 'O', '_', 'O', 'N', 'E', '\0', - 'G', 'L', '_', 'Z', 'E', 'R', 'O', '_', 'T', 'O', '_', 'O', 'N', 'E', '\0', - 'G', 'L', '_', 'C', 'L', 'E', 'A', 'R', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'R', 'E', 'D', 'U', 'C', 'T', 'I', 'O', 'N', '_', 'M', 'O', 'D', 'E', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'W', 'E', 'I', 'G', 'H', 'T', 'E', 'D', '_', 'A', 'V', 'E', 'R', 'A', 'G', 'E', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'F', 'O', 'N', 'T', '_', 'G', 'L', 'Y', 'P', 'H', 'S', '_', 'A', 'V', 'A', 'I', 'L', 'A', 'B', 'L', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'O', 'N', 'T', '_', 'T', 'A', 'R', 'G', 'E', 'T', '_', 'U', 'N', 'A', 'V', 'A', 'I', 'L', 'A', 'B', 'L', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'O', 'N', 'T', '_', 'U', 'N', 'A', 'V', 'A', 'I', 'L', 'A', 'B', 'L', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'O', 'N', 'T', '_', 'U', 'N', 'I', 'N', 'T', 'E', 'L', 'L', 'I', 'G', 'I', 'B', 'L', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'T', 'A', 'N', 'D', 'A', 'R', 'D', '_', 'F', 'O', 'N', 'T', '_', 'F', 'O', 'R', 'M', 'A', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', '_', 'I', 'N', 'P', 'U', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'U', 'N', 'I', 'F', 'I', 'E', 'D', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'A', 'D', 'D', 'R', 'E', 'S', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'U', 'N', 'I', 'F', 'O', 'R', 'M', '_', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'L', 'E', 'N', 'G', 'T', 'H', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'U', 'L', 'T', 'I', 'S', 'A', 'M', 'P', 'L', 'E', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'U', 'P', 'E', 'R', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'S', 'C', 'A', 'L', 'E', '_', 'X', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'U', 'P', 'E', 'R', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'S', 'C', 'A', 'L', 'E', '_', 'Y', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'F', 'O', 'R', 'M', 'A', 'N', 'T', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'S', 'E', 'R', 'V', 'A', 'T', 'I', 'V', 'E', '_', 'R', 'A', 'S', 'T', 'E', 'R', '_', 'D', 'I', 'L', 'A', 'T', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'S', 'E', 'R', 'V', 'A', 'T', 'I', 'V', 'E', '_', 'R', 'A', 'S', 'T', 'E', 'R', '_', 'D', 'I', 'L', 'A', 'T', 'E', '_', 'R', 'A', 'N', 'G', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'S', 'E', 'R', 'V', 'A', 'T', 'I', 'V', 'E', '_', 'R', 'A', 'S', 'T', 'E', 'R', '_', 'D', 'I', 'L', 'A', 'T', 'E', '_', 'G', 'R', 'A', 'N', 'U', 'L', 'A', 'R', 'I', 'T', 'Y', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', 'P', 'O', 'R', 'T', '_', 'P', 'O', 'S', 'I', 'T', 'I', 'O', 'N', '_', 'W', '_', 'S', 'C', 'A', 'L', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', 'P', 'O', 'R', 'T', '_', 'P', 'O', 'S', 'I', 'T', 'I', 'O', 'N', '_', 'W', '_', 'S', 'C', 'A', 'L', 'E', '_', 'X', '_', 'C', 'O', 'E', 'F', 'F', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'V', 'I', 'E', 'W', 'P', 'O', 'R', 'T', '_', 'P', 'O', 'S', 'I', 'T', 'I', 'O', 'N', '_', 'W', '_', 'S', 'C', 'A', 'L', 'E', '_', 'Y', '_', 'C', 'O', 'E', 'F', 'F', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'N', 'U', 'M', '_', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'C', 'O', 'U', 'N', 'T', 'S', '\0', - 'G', 'L', '_', 'M', 'U', 'L', 'T', 'I', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'L', 'I', 'N', 'E', '_', 'W', 'I', 'D', 'T', 'H', '_', 'R', 'A', 'N', 'G', 'E', '\0', - 'G', 'L', '_', 'M', 'U', 'L', 'T', 'I', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'L', 'I', 'N', 'E', '_', 'W', 'I', 'D', 'T', 'H', '_', 'G', 'R', 'A', 'N', 'U', 'L', 'A', 'R', 'I', 'T', 'Y', '\0', - 'G', 'L', '_', 'T', 'R', 'A', 'N', 'S', 'L', 'A', 'T', 'E', 'D', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'S', 'O', 'U', 'R', 'C', 'E', '_', 'L', 'E', 'N', 'G', 'T', 'H', '_', 'A', 'N', 'G', 'L', 'E', '\0', - 'G', 'L', '_', 'B', 'G', 'R', 'A', '8', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'U', 'S', 'A', 'G', 'E', '_', 'A', 'N', 'G', 'L', 'E', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '_', 'A', 'N', 'G', 'L', 'E', '\0', - 'G', 'L', '_', 'P', 'A', 'C', 'K', '_', 'R', 'E', 'V', 'E', 'R', 'S', 'E', '_', 'R', 'O', 'W', '_', 'O', 'R', 'D', 'E', 'R', '_', 'A', 'N', 'G', 'L', 'E', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', '_', 'B', 'I', 'N', 'A', 'R', 'Y', '_', 'A', 'N', 'G', 'L', 'E', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '_', 'A', 'S', 'T', 'C', '_', '4', 'x', '4', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '_', 'A', 'S', 'T', 'C', '_', '5', 'x', '4', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '_', 'A', 'S', 'T', 'C', '_', '5', 'x', '5', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '_', 'A', 'S', 'T', 'C', '_', '6', 'x', '5', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '_', 'A', 'S', 'T', 'C', '_', '6', 'x', '6', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '_', 'A', 'S', 'T', 'C', '_', '8', 'x', '5', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '_', 'A', 'S', 'T', 'C', '_', '8', 'x', '6', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '_', 'A', 'S', 'T', 'C', '_', '8', 'x', '8', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '_', 'A', 'S', 'T', 'C', '_', '1', '0', 'x', '5', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '_', 'A', 'S', 'T', 'C', '_', '1', '0', 'x', '6', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '_', 'A', 'S', 'T', 'C', '_', '1', '0', 'x', '8', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '_', 'A', 'S', 'T', 'C', '_', '1', '0', 'x', '1', '0', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '_', 'A', 'S', 'T', 'C', '_', '1', '2', 'x', '1', '0', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '_', 'A', 'S', 'T', 'C', '_', '1', '2', 'x', '1', '2', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '_', 'A', 'S', 'T', 'C', '_', '3', 'x', '3', 'x', '3', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '_', 'A', 'S', 'T', 'C', '_', '4', 'x', '3', 'x', '3', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '_', 'A', 'S', 'T', 'C', '_', '4', 'x', '4', 'x', '3', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '_', 'A', 'S', 'T', 'C', '_', '4', 'x', '4', 'x', '4', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '_', 'A', 'S', 'T', 'C', '_', '5', 'x', '4', 'x', '4', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '_', 'A', 'S', 'T', 'C', '_', '5', 'x', '5', 'x', '4', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '_', 'A', 'S', 'T', 'C', '_', '5', 'x', '5', 'x', '5', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '_', 'A', 'S', 'T', 'C', '_', '6', 'x', '5', 'x', '5', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '_', 'A', 'S', 'T', 'C', '_', '6', 'x', '6', 'x', '5', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'R', 'G', 'B', 'A', '_', 'A', 'S', 'T', 'C', '_', '6', 'x', '6', 'x', '6', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '8', '_', 'A', 'L', 'P', 'H', 'A', '8', '_', 'A', 'S', 'T', 'C', '_', '4', 'x', '4', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '8', '_', 'A', 'L', 'P', 'H', 'A', '8', '_', 'A', 'S', 'T', 'C', '_', '5', 'x', '4', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '8', '_', 'A', 'L', 'P', 'H', 'A', '8', '_', 'A', 'S', 'T', 'C', '_', '5', 'x', '5', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '8', '_', 'A', 'L', 'P', 'H', 'A', '8', '_', 'A', 'S', 'T', 'C', '_', '6', 'x', '5', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '8', '_', 'A', 'L', 'P', 'H', 'A', '8', '_', 'A', 'S', 'T', 'C', '_', '6', 'x', '6', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '8', '_', 'A', 'L', 'P', 'H', 'A', '8', '_', 'A', 'S', 'T', 'C', '_', '8', 'x', '5', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '8', '_', 'A', 'L', 'P', 'H', 'A', '8', '_', 'A', 'S', 'T', 'C', '_', '8', 'x', '6', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '8', '_', 'A', 'L', 'P', 'H', 'A', '8', '_', 'A', 'S', 'T', 'C', '_', '8', 'x', '8', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '8', '_', 'A', 'L', 'P', 'H', 'A', '8', '_', 'A', 'S', 'T', 'C', '_', '1', '0', 'x', '5', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '8', '_', 'A', 'L', 'P', 'H', 'A', '8', '_', 'A', 'S', 'T', 'C', '_', '1', '0', 'x', '6', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '8', '_', 'A', 'L', 'P', 'H', 'A', '8', '_', 'A', 'S', 'T', 'C', '_', '1', '0', 'x', '8', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '8', '_', 'A', 'L', 'P', 'H', 'A', '8', '_', 'A', 'S', 'T', 'C', '_', '1', '0', 'x', '1', '0', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '8', '_', 'A', 'L', 'P', 'H', 'A', '8', '_', 'A', 'S', 'T', 'C', '_', '1', '2', 'x', '1', '0', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '8', '_', 'A', 'L', 'P', 'H', 'A', '8', '_', 'A', 'S', 'T', 'C', '_', '1', '2', 'x', '1', '2', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '8', '_', 'A', 'L', 'P', 'H', 'A', '8', '_', 'A', 'S', 'T', 'C', '_', '3', 'x', '3', 'x', '3', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '8', '_', 'A', 'L', 'P', 'H', 'A', '8', '_', 'A', 'S', 'T', 'C', '_', '4', 'x', '3', 'x', '3', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '8', '_', 'A', 'L', 'P', 'H', 'A', '8', '_', 'A', 'S', 'T', 'C', '_', '4', 'x', '4', 'x', '3', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '8', '_', 'A', 'L', 'P', 'H', 'A', '8', '_', 'A', 'S', 'T', 'C', '_', '4', 'x', '4', 'x', '4', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '8', '_', 'A', 'L', 'P', 'H', 'A', '8', '_', 'A', 'S', 'T', 'C', '_', '5', 'x', '4', 'x', '4', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '8', '_', 'A', 'L', 'P', 'H', 'A', '8', '_', 'A', 'S', 'T', 'C', '_', '5', 'x', '5', 'x', '4', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '8', '_', 'A', 'L', 'P', 'H', 'A', '8', '_', 'A', 'S', 'T', 'C', '_', '5', 'x', '5', 'x', '5', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '8', '_', 'A', 'L', 'P', 'H', 'A', '8', '_', 'A', 'S', 'T', 'C', '_', '6', 'x', '5', 'x', '5', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '8', '_', 'A', 'L', 'P', 'H', 'A', '8', '_', 'A', 'S', 'T', 'C', '_', '6', 'x', '6', 'x', '5', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '8', '_', 'A', 'L', 'P', 'H', 'A', '8', '_', 'A', 'S', 'T', 'C', '_', '6', 'x', '6', 'x', '6', '_', 'O', 'E', 'S', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '_', 'A', 'L', 'P', 'H', 'A', '_', 'P', 'V', 'R', 'T', 'C', '_', '2', 'B', 'P', 'P', 'V', '2', '_', 'I', 'M', 'G', '\0', - 'G', 'L', '_', 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', '_', 'S', 'R', 'G', 'B', '_', 'A', 'L', 'P', 'H', 'A', '_', 'P', 'V', 'R', 'T', 'C', '_', '4', 'B', 'P', 'P', 'V', '2', '_', 'I', 'M', 'G', '\0', - 'G', 'L', '_', 'P', 'E', 'R', 'F', 'Q', 'U', 'E', 'R', 'Y', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'E', 'V', 'E', 'N', 'T', '_', 'I', 'N', 'T', 'E', 'L', '\0', - 'G', 'L', '_', 'P', 'E', 'R', 'F', 'Q', 'U', 'E', 'R', 'Y', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'D', 'U', 'R', 'A', 'T', 'I', 'O', 'N', '_', 'N', 'O', 'R', 'M', '_', 'I', 'N', 'T', 'E', 'L', '\0', - 'G', 'L', '_', 'P', 'E', 'R', 'F', 'Q', 'U', 'E', 'R', 'Y', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'D', 'U', 'R', 'A', 'T', 'I', 'O', 'N', '_', 'R', 'A', 'W', '_', 'I', 'N', 'T', 'E', 'L', '\0', - 'G', 'L', '_', 'P', 'E', 'R', 'F', 'Q', 'U', 'E', 'R', 'Y', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'T', 'H', 'R', 'O', 'U', 'G', 'H', 'P', 'U', 'T', '_', 'I', 'N', 'T', 'E', 'L', '\0', - 'G', 'L', '_', 'P', 'E', 'R', 'F', 'Q', 'U', 'E', 'R', 'Y', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'R', 'A', 'W', '_', 'I', 'N', 'T', 'E', 'L', '\0', - 'G', 'L', '_', 'P', 'E', 'R', 'F', 'Q', 'U', 'E', 'R', 'Y', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'T', 'I', 'M', 'E', 'S', 'T', 'A', 'M', 'P', '_', 'I', 'N', 'T', 'E', 'L', '\0', - 'G', 'L', '_', 'P', 'E', 'R', 'F', 'Q', 'U', 'E', 'R', 'Y', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'D', 'A', 'T', 'A', '_', 'U', 'I', 'N', 'T', '3', '2', '_', 'I', 'N', 'T', 'E', 'L', '\0', - 'G', 'L', '_', 'P', 'E', 'R', 'F', 'Q', 'U', 'E', 'R', 'Y', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'D', 'A', 'T', 'A', '_', 'U', 'I', 'N', 'T', '6', '4', '_', 'I', 'N', 'T', 'E', 'L', '\0', - 'G', 'L', '_', 'P', 'E', 'R', 'F', 'Q', 'U', 'E', 'R', 'Y', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'D', 'A', 'T', 'A', '_', 'F', 'L', 'O', 'A', 'T', '_', 'I', 'N', 'T', 'E', 'L', '\0', - 'G', 'L', '_', 'P', 'E', 'R', 'F', 'Q', 'U', 'E', 'R', 'Y', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'D', 'A', 'T', 'A', '_', 'D', 'O', 'U', 'B', 'L', 'E', '_', 'I', 'N', 'T', 'E', 'L', '\0', - 'G', 'L', '_', 'P', 'E', 'R', 'F', 'Q', 'U', 'E', 'R', 'Y', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'D', 'A', 'T', 'A', '_', 'B', 'O', 'O', 'L', '3', '2', '_', 'I', 'N', 'T', 'E', 'L', '\0', - 'G', 'L', '_', 'P', 'E', 'R', 'F', 'Q', 'U', 'E', 'R', 'Y', '_', 'Q', 'U', 'E', 'R', 'Y', '_', 'N', 'A', 'M', 'E', '_', 'L', 'E', 'N', 'G', 'T', 'H', '_', 'M', 'A', 'X', '_', 'I', 'N', 'T', 'E', 'L', '\0', - 'G', 'L', '_', 'P', 'E', 'R', 'F', 'Q', 'U', 'E', 'R', 'Y', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'N', 'A', 'M', 'E', '_', 'L', 'E', 'N', 'G', 'T', 'H', '_', 'M', 'A', 'X', '_', 'I', 'N', 'T', 'E', 'L', '\0', - 'G', 'L', '_', 'P', 'E', 'R', 'F', 'Q', 'U', 'E', 'R', 'Y', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', '_', 'D', 'E', 'S', 'C', '_', 'L', 'E', 'N', 'G', 'T', 'H', '_', 'M', 'A', 'X', '_', 'I', 'N', 'T', 'E', 'L', '\0', - 'G', 'L', '_', 'P', 'E', 'R', 'F', 'Q', 'U', 'E', 'R', 'Y', '_', 'G', 'P', 'A', '_', 'E', 'X', 'T', 'E', 'N', 'D', 'E', 'D', '_', 'C', 'O', 'U', 'N', 'T', 'E', 'R', 'S', '_', 'I', 'N', 'T', 'E', 'L', '\0', - 'G', 'L', '_', 'P', 'E', 'R', '_', 'G', 'P', 'U', '_', 'S', 'T', 'O', 'R', 'A', 'G', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'M', 'U', 'L', 'T', 'I', 'C', 'A', 'S', 'T', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M', 'M', 'A', 'B', 'L', 'E', '_', 'S', 'A', 'M', 'P', 'L', 'E', '_', 'L', 'O', 'C', 'A', 'T', 'I', 'O', 'N', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'S', 'E', 'R', 'V', 'A', 'T', 'I', 'V', 'E', '_', 'R', 'A', 'S', 'T', 'E', 'R', '_', 'M', 'O', 'D', 'E', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'S', 'E', 'R', 'V', 'A', 'T', 'I', 'V', 'E', '_', 'R', 'A', 'S', 'T', 'E', 'R', '_', 'M', 'O', 'D', 'E', '_', 'P', 'O', 'S', 'T', '_', 'S', 'N', 'A', 'P', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'S', 'E', 'R', 'V', 'A', 'T', 'I', 'V', 'E', '_', 'R', 'A', 'S', 'T', 'E', 'R', '_', 'M', 'O', 'D', 'E', '_', 'P', 'R', 'E', '_', 'S', 'N', 'A', 'P', '_', 'T', 'R', 'I', 'A', 'N', 'G', 'L', 'E', 'S', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'B', 'I', 'N', 'A', 'R', 'Y', '_', 'F', 'O', 'R', 'M', 'A', 'T', '_', 'S', 'P', 'I', 'R', '_', 'V', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'S', 'P', 'I', 'R', '_', 'V', '_', 'B', 'I', 'N', 'A', 'R', 'Y', '_', 'A', 'R', 'B', '\0', - 'G', 'L', '_', 'R', 'E', 'N', 'D', 'E', 'R', '_', 'G', 'P', 'U', '_', 'M', 'A', 'S', 'K', '_', 'N', 'V', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'T', 'I', 'L', 'I', 'N', 'G', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'D', 'E', 'D', 'I', 'C', 'A', 'T', 'E', 'D', '_', 'M', 'E', 'M', 'O', 'R', 'Y', '_', 'O', 'B', 'J', 'E', 'C', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'N', 'U', 'M', '_', 'T', 'I', 'L', 'I', 'N', 'G', '_', 'T', 'Y', 'P', 'E', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'T', 'I', 'L', 'I', 'N', 'G', '_', 'T', 'Y', 'P', 'E', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'O', 'P', 'T', 'I', 'M', 'A', 'L', '_', 'T', 'I', 'L', 'I', 'N', 'G', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'L', 'I', 'N', 'E', 'A', 'R', '_', 'T', 'I', 'L', 'I', 'N', 'G', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'H', 'A', 'N', 'D', 'L', 'E', '_', 'T', 'Y', 'P', 'E', '_', 'O', 'P', 'A', 'Q', 'U', 'E', '_', 'F', 'D', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'H', 'A', 'N', 'D', 'L', 'E', '_', 'T', 'Y', 'P', 'E', '_', 'O', 'P', 'A', 'Q', 'U', 'E', '_', 'W', 'I', 'N', '3', '2', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'H', 'A', 'N', 'D', 'L', 'E', '_', 'T', 'Y', 'P', 'E', '_', 'O', 'P', 'A', 'Q', 'U', 'E', '_', 'W', 'I', 'N', '3', '2', '_', 'K', 'M', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'H', 'A', 'N', 'D', 'L', 'E', '_', 'T', 'Y', 'P', 'E', '_', 'D', '3', 'D', '1', '2', '_', 'T', 'I', 'L', 'E', 'P', 'O', 'O', 'L', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'H', 'A', 'N', 'D', 'L', 'E', '_', 'T', 'Y', 'P', 'E', '_', 'D', '3', 'D', '1', '2', '_', 'R', 'E', 'S', 'O', 'U', 'R', 'C', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'H', 'A', 'N', 'D', 'L', 'E', '_', 'T', 'Y', 'P', 'E', '_', 'D', '3', 'D', '1', '1', '_', 'I', 'M', 'A', 'G', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'H', 'A', 'N', 'D', 'L', 'E', '_', 'T', 'Y', 'P', 'E', '_', 'D', '3', 'D', '1', '1', '_', 'I', 'M', 'A', 'G', 'E', '_', 'K', 'M', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'L', 'A', 'Y', 'O', 'U', 'T', '_', 'G', 'E', 'N', 'E', 'R', 'A', 'L', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'L', 'A', 'Y', 'O', 'U', 'T', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'L', 'A', 'Y', 'O', 'U', 'T', '_', 'D', 'E', 'P', 'T', 'H', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'L', 'A', 'Y', 'O', 'U', 'T', '_', 'D', 'E', 'P', 'T', 'H', '_', 'S', 'T', 'E', 'N', 'C', 'I', 'L', '_', 'R', 'E', 'A', 'D', '_', 'O', 'N', 'L', 'Y', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'L', 'A', 'Y', 'O', 'U', 'T', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'R', 'E', 'A', 'D', '_', 'O', 'N', 'L', 'Y', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'L', 'A', 'Y', 'O', 'U', 'T', '_', 'T', 'R', 'A', 'N', 'S', 'F', 'E', 'R', '_', 'S', 'R', 'C', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'L', 'A', 'Y', 'O', 'U', 'T', '_', 'T', 'R', 'A', 'N', 'S', 'F', 'E', 'R', '_', 'D', 'S', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'H', 'A', 'N', 'D', 'L', 'E', '_', 'T', 'Y', 'P', 'E', '_', 'D', '3', 'D', '1', '2', '_', 'F', 'E', 'N', 'C', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'D', '3', 'D', '1', '2', '_', 'F', 'E', 'N', 'C', 'E', '_', 'V', 'A', 'L', 'U', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'N', 'U', 'M', '_', 'D', 'E', 'V', 'I', 'C', 'E', '_', 'U', 'U', 'I', 'D', 'S', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'D', 'E', 'V', 'I', 'C', 'E', '_', 'U', 'U', 'I', 'D', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'D', 'R', 'I', 'V', 'E', 'R', '_', 'U', 'U', 'I', 'D', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'D', 'E', 'V', 'I', 'C', 'E', '_', 'L', 'U', 'I', 'D', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'D', 'E', 'V', 'I', 'C', 'E', '_', 'N', 'O', 'D', 'E', '_', 'M', 'A', 'S', 'K', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'P', 'R', 'O', 'T', 'E', 'C', 'T', 'E', 'D', '_', 'M', 'E', 'M', 'O', 'R', 'Y', '_', 'O', 'B', 'J', 'E', 'C', 'T', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'N', 'U', 'M', '_', 'V', 'I', 'E', 'W', 'S', '_', 'O', 'V', 'R', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'V', 'I', 'E', 'W', 'S', '_', 'O', 'V', 'R', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'A', 'T', 'T', 'A', 'C', 'H', 'M', 'E', 'N', 'T', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'B', 'A', 'S', 'E', '_', 'V', 'I', 'E', 'W', '_', 'I', 'N', 'D', 'E', 'X', '_', 'O', 'V', 'R', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'I', 'N', 'C', 'O', 'M', 'P', 'L', 'E', 'T', 'E', '_', 'V', 'I', 'E', 'W', '_', 'T', 'A', 'R', 'G', 'E', 'T', 'S', '_', 'O', 'V', 'R', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'D', '_', 'L', 'O', 'C', 'A', 'L', '_', 'S', 'T', 'O', 'R', 'A', 'G', 'E', '_', 'F', 'A', 'S', 'T', '_', 'S', 'I', 'Z', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'D', '_', 'L', 'O', 'C', 'A', 'L', '_', 'S', 'T', 'O', 'R', 'A', 'G', 'E', '_', 'S', 'I', 'Z', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'I', 'N', 'C', 'O', 'M', 'P', 'L', 'E', 'T', 'E', '_', 'I', 'N', 'S', 'U', 'F', 'F', 'I', 'C', 'I', 'E', 'N', 'T', '_', 'S', 'H', 'A', 'D', 'E', 'R', '_', 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'D', '_', 'L', 'O', 'C', 'A', 'L', '_', 'S', 'T', 'O', 'R', 'A', 'G', 'E', '_', 'E', 'X', 'T', '\0', - 'G', 'L', '_', 'F', 'R', 'A', 'M', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'F', 'E', 'T', 'C', 'H', '_', 'N', 'O', 'N', 'C', 'O', 'H', 'E', 'R', 'E', 'N', 'T', '_', 'Q', 'C', 'O', 'M', '\0', - 'G', 'L', '_', 'R', 'A', 'S', 'T', 'E', 'R', '_', 'P', 'O', 'S', 'I', 'T', 'I', 'O', 'N', '_', 'U', 'N', 'C', 'L', 'I', 'P', 'P', 'E', 'D', '_', 'I', 'B', 'M', '\0', - 'G', 'L', '_', 'P', 'R', 'E', 'F', 'E', 'R', '_', 'D', 'O', 'U', 'B', 'L', 'E', 'B', 'U', 'F', 'F', 'E', 'R', '_', 'H', 'I', 'N', 'T', '_', 'P', 'G', 'I', '\0', - 'G', 'L', '_', 'C', 'O', 'N', 'S', 'E', 'R', 'V', 'E', '_', 'M', 'E', 'M', 'O', 'R', 'Y', '_', 'H', 'I', 'N', 'T', '_', 'P', 'G', 'I', '\0', - 'G', 'L', '_', 'R', 'E', 'C', 'L', 'A', 'I', 'M', '_', 'M', 'E', 'M', 'O', 'R', 'Y', '_', 'H', 'I', 'N', 'T', '_', 'P', 'G', 'I', '\0', - 'G', 'L', '_', 'N', 'A', 'T', 'I', 'V', 'E', '_', 'G', 'R', 'A', 'P', 'H', 'I', 'C', 'S', '_', 'H', 'A', 'N', 'D', 'L', 'E', '_', 'P', 'G', 'I', '\0', - 'G', 'L', '_', 'N', 'A', 'T', 'I', 'V', 'E', '_', 'G', 'R', 'A', 'P', 'H', 'I', 'C', 'S', '_', 'B', 'E', 'G', 'I', 'N', '_', 'H', 'I', 'N', 'T', '_', 'P', 'G', 'I', '\0', - 'G', 'L', '_', 'N', 'A', 'T', 'I', 'V', 'E', '_', 'G', 'R', 'A', 'P', 'H', 'I', 'C', 'S', '_', 'E', 'N', 'D', '_', 'H', 'I', 'N', 'T', '_', 'P', 'G', 'I', '\0', - 'G', 'L', '_', 'A', 'L', 'W', 'A', 'Y', 'S', '_', 'F', 'A', 'S', 'T', '_', 'H', 'I', 'N', 'T', '_', 'P', 'G', 'I', '\0', - 'G', 'L', '_', 'A', 'L', 'W', 'A', 'Y', 'S', '_', 'S', 'O', 'F', 'T', '_', 'H', 'I', 'N', 'T', '_', 'P', 'G', 'I', '\0', - 'G', 'L', '_', 'A', 'L', 'L', 'O', 'W', '_', 'D', 'R', 'A', 'W', '_', 'O', 'B', 'J', '_', 'H', 'I', 'N', 'T', '_', 'P', 'G', 'I', '\0', - 'G', 'L', '_', 'A', 'L', 'L', 'O', 'W', '_', 'D', 'R', 'A', 'W', '_', 'W', 'I', 'N', '_', 'H', 'I', 'N', 'T', '_', 'P', 'G', 'I', '\0', - 'G', 'L', '_', 'A', 'L', 'L', 'O', 'W', '_', 'D', 'R', 'A', 'W', '_', 'F', 'R', 'G', '_', 'H', 'I', 'N', 'T', '_', 'P', 'G', 'I', '\0', - 'G', 'L', '_', 'A', 'L', 'L', 'O', 'W', '_', 'D', 'R', 'A', 'W', '_', 'M', 'E', 'M', '_', 'H', 'I', 'N', 'T', '_', 'P', 'G', 'I', '\0', - 'G', 'L', '_', 'S', 'T', 'R', 'I', 'C', 'T', '_', 'D', 'E', 'P', 'T', 'H', 'F', 'U', 'N', 'C', '_', 'H', 'I', 'N', 'T', '_', 'P', 'G', 'I', '\0', - 'G', 'L', '_', 'S', 'T', 'R', 'I', 'C', 'T', '_', 'L', 'I', 'G', 'H', 'T', 'I', 'N', 'G', '_', 'H', 'I', 'N', 'T', '_', 'P', 'G', 'I', '\0', - 'G', 'L', '_', 'S', 'T', 'R', 'I', 'C', 'T', '_', 'S', 'C', 'I', 'S', 'S', 'O', 'R', '_', 'H', 'I', 'N', 'T', '_', 'P', 'G', 'I', '\0', - 'G', 'L', '_', 'F', 'U', 'L', 'L', '_', 'S', 'T', 'I', 'P', 'P', 'L', 'E', '_', 'H', 'I', 'N', 'T', '_', 'P', 'G', 'I', '\0', - 'G', 'L', '_', 'C', 'L', 'I', 'P', '_', 'N', 'E', 'A', 'R', '_', 'H', 'I', 'N', 'T', '_', 'P', 'G', 'I', '\0', - 'G', 'L', '_', 'C', 'L', 'I', 'P', '_', 'F', 'A', 'R', '_', 'H', 'I', 'N', 'T', '_', 'P', 'G', 'I', '\0', - 'G', 'L', '_', 'W', 'I', 'D', 'E', '_', 'L', 'I', 'N', 'E', '_', 'H', 'I', 'N', 'T', '_', 'P', 'G', 'I', '\0', - 'G', 'L', '_', 'B', 'A', 'C', 'K', '_', 'N', 'O', 'R', 'M', 'A', 'L', 'S', '_', 'H', 'I', 'N', 'T', '_', 'P', 'G', 'I', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'D', 'A', 'T', 'A', '_', 'H', 'I', 'N', 'T', '_', 'P', 'G', 'I', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'C', 'O', 'N', 'S', 'I', 'S', 'T', 'E', 'N', 'T', '_', 'H', 'I', 'N', 'T', '_', 'P', 'G', 'I', '\0', - 'G', 'L', '_', 'M', 'A', 'T', 'E', 'R', 'I', 'A', 'L', '_', 'S', 'I', 'D', 'E', '_', 'H', 'I', 'N', 'T', '_', 'P', 'G', 'I', '\0', - 'G', 'L', '_', 'M', 'A', 'X', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'H', 'I', 'N', 'T', '_', 'P', 'G', 'I', '\0', - 'G', 'L', '_', 'C', 'U', 'L', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'I', 'B', 'M', '\0', - 'G', 'L', '_', 'A', 'L', 'L', '_', 'S', 'T', 'A', 'T', 'I', 'C', '_', 'D', 'A', 'T', 'A', '_', 'I', 'B', 'M', '\0', - 'G', 'L', '_', 'S', 'T', 'A', 'T', 'I', 'C', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'I', 'B', 'M', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'L', 'I', 'S', 'T', '_', 'I', 'B', 'M', '\0', - 'G', 'L', '_', 'N', 'O', 'R', 'M', 'A', 'L', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'L', 'I', 'S', 'T', '_', 'I', 'B', 'M', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'L', 'I', 'S', 'T', '_', 'I', 'B', 'M', '\0', - 'G', 'L', '_', 'I', 'N', 'D', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'L', 'I', 'S', 'T', '_', 'I', 'B', 'M', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'L', 'I', 'S', 'T', '_', 'I', 'B', 'M', '\0', - 'G', 'L', '_', 'E', 'D', 'G', 'E', '_', 'F', 'L', 'A', 'G', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'L', 'I', 'S', 'T', '_', 'I', 'B', 'M', '\0', - 'G', 'L', '_', 'F', 'O', 'G', '_', 'C', 'O', 'O', 'R', 'D', 'I', 'N', 'A', 'T', 'E', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'L', 'I', 'S', 'T', '_', 'I', 'B', 'M', '\0', - 'G', 'L', '_', 'S', 'E', 'C', 'O', 'N', 'D', 'A', 'R', 'Y', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'L', 'I', 'S', 'T', '_', 'I', 'B', 'M', '\0', - 'G', 'L', '_', 'V', 'E', 'R', 'T', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'L', 'I', 'S', 'T', '_', 'S', 'T', 'R', 'I', 'D', 'E', '_', 'I', 'B', 'M', '\0', - 'G', 'L', '_', 'N', 'O', 'R', 'M', 'A', 'L', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'L', 'I', 'S', 'T', '_', 'S', 'T', 'R', 'I', 'D', 'E', '_', 'I', 'B', 'M', '\0', - 'G', 'L', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'L', 'I', 'S', 'T', '_', 'S', 'T', 'R', 'I', 'D', 'E', '_', 'I', 'B', 'M', '\0', - 'G', 'L', '_', 'I', 'N', 'D', 'E', 'X', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'L', 'I', 'S', 'T', '_', 'S', 'T', 'R', 'I', 'D', 'E', '_', 'I', 'B', 'M', '\0', - 'G', 'L', '_', 'T', 'E', 'X', 'T', 'U', 'R', 'E', '_', 'C', 'O', 'O', 'R', 'D', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'L', 'I', 'S', 'T', '_', 'S', 'T', 'R', 'I', 'D', 'E', '_', 'I', 'B', 'M', '\0', - 'G', 'L', '_', 'E', 'D', 'G', 'E', '_', 'F', 'L', 'A', 'G', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'L', 'I', 'S', 'T', '_', 'S', 'T', 'R', 'I', 'D', 'E', '_', 'I', 'B', 'M', '\0', - 'G', 'L', '_', 'F', 'O', 'G', '_', 'C', 'O', 'O', 'R', 'D', 'I', 'N', 'A', 'T', 'E', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'L', 'I', 'S', 'T', '_', 'S', 'T', 'R', 'I', 'D', 'E', '_', 'I', 'B', 'M', '\0', - 'G', 'L', '_', 'S', 'E', 'C', 'O', 'N', 'D', 'A', 'R', 'Y', '_', 'C', 'O', 'L', 'O', 'R', '_', 'A', 'R', 'R', 'A', 'Y', '_', 'L', 'I', 'S', 'T', '_', 'S', 'T', 'R', 'I', 'D', 'E', '_', 'I', 'B', 'M', '\0', -}; +LONGSTRING static const char enum_string_table[] = + "GL_FALSE\0" + "GL_LINES\0" + "GL_LINE_LOOP\0" + "GL_LINE_STRIP\0" + "GL_TRIANGLES\0" + "GL_TRIANGLE_STRIP\0" + "GL_TRIANGLE_FAN\0" + "GL_QUADS\0" + "GL_QUAD_STRIP\0" + "GL_POLYGON\0" + "GL_LINES_ADJACENCY\0" + "GL_LINE_STRIP_ADJACENCY\0" + "GL_TRIANGLES_ADJACENCY\0" + "GL_TRIANGLE_STRIP_ADJACENCY\0" + "GL_PATCHES\0" + "GL_POLYGON_STIPPLE_BIT\0" + "GL_PIXEL_MODE_BIT\0" + "GL_LIGHTING_BIT\0" + "GL_FOG_BIT\0" + "GL_ACCUM\0" + "GL_LOAD\0" + "GL_RETURN\0" + "GL_MULT\0" + "GL_ADD\0" + "GL_NEVER\0" + "GL_LESS\0" + "GL_EQUAL\0" + "GL_LEQUAL\0" + "GL_GREATER\0" + "GL_NOTEQUAL\0" + "GL_GEQUAL\0" + "GL_ALWAYS\0" + "GL_SRC_COLOR\0" + "GL_ONE_MINUS_SRC_COLOR\0" + "GL_SRC_ALPHA\0" + "GL_ONE_MINUS_SRC_ALPHA\0" + "GL_DST_ALPHA\0" + "GL_ONE_MINUS_DST_ALPHA\0" + "GL_DST_COLOR\0" + "GL_ONE_MINUS_DST_COLOR\0" + "GL_SRC_ALPHA_SATURATE\0" + "GL_FRONT_LEFT\0" + "GL_FRONT_RIGHT\0" + "GL_BACK_LEFT\0" + "GL_BACK_RIGHT\0" + "GL_FRONT\0" + "GL_BACK\0" + "GL_LEFT\0" + "GL_RIGHT\0" + "GL_FRONT_AND_BACK\0" + "GL_AUX0\0" + "GL_AUX1\0" + "GL_AUX2\0" + "GL_AUX3\0" + "GL_INVALID_ENUM\0" + "GL_INVALID_VALUE\0" + "GL_INVALID_OPERATION\0" + "GL_STACK_OVERFLOW\0" + "GL_STACK_UNDERFLOW\0" + "GL_OUT_OF_MEMORY\0" + "GL_INVALID_FRAMEBUFFER_OPERATION\0" + "GL_2D\0" + "GL_3D\0" + "GL_3D_COLOR\0" + "GL_3D_COLOR_TEXTURE\0" + "GL_4D_COLOR_TEXTURE\0" + "GL_PASS_THROUGH_TOKEN\0" + "GL_POINT_TOKEN\0" + "GL_LINE_TOKEN\0" + "GL_POLYGON_TOKEN\0" + "GL_BITMAP_TOKEN\0" + "GL_DRAW_PIXEL_TOKEN\0" + "GL_COPY_PIXEL_TOKEN\0" + "GL_LINE_RESET_TOKEN\0" + "GL_EXP\0" + "GL_EXP2\0" + "GL_CW\0" + "GL_CCW\0" + "GL_COEFF\0" + "GL_ORDER\0" + "GL_DOMAIN\0" + "GL_CURRENT_COLOR\0" + "GL_CURRENT_INDEX\0" + "GL_CURRENT_NORMAL\0" + "GL_CURRENT_TEXTURE_COORDS\0" + "GL_CURRENT_RASTER_COLOR\0" + "GL_CURRENT_RASTER_INDEX\0" + "GL_CURRENT_RASTER_TEXTURE_COORDS\0" + "GL_CURRENT_RASTER_POSITION\0" + "GL_CURRENT_RASTER_POSITION_VALID\0" + "GL_CURRENT_RASTER_DISTANCE\0" + "GL_POINT_SMOOTH\0" + "GL_POINT_SIZE\0" + "GL_POINT_SIZE_RANGE\0" + "GL_POINT_SIZE_GRANULARITY\0" + "GL_LINE_SMOOTH\0" + "GL_LINE_WIDTH\0" + "GL_LINE_WIDTH_RANGE\0" + "GL_LINE_WIDTH_GRANULARITY\0" + "GL_LINE_STIPPLE\0" + "GL_LINE_STIPPLE_PATTERN\0" + "GL_LINE_STIPPLE_REPEAT\0" + "GL_LIST_MODE\0" + "GL_MAX_LIST_NESTING\0" + "GL_LIST_BASE\0" + "GL_LIST_INDEX\0" + "GL_POLYGON_MODE\0" + "GL_POLYGON_SMOOTH\0" + "GL_POLYGON_STIPPLE\0" + "GL_EDGE_FLAG\0" + "GL_CULL_FACE\0" + "GL_CULL_FACE_MODE\0" + "GL_FRONT_FACE\0" + "GL_LIGHTING\0" + "GL_LIGHT_MODEL_LOCAL_VIEWER\0" + "GL_LIGHT_MODEL_TWO_SIDE\0" + "GL_LIGHT_MODEL_AMBIENT\0" + "GL_SHADE_MODEL\0" + "GL_COLOR_MATERIAL_FACE\0" + "GL_COLOR_MATERIAL_PARAMETER\0" + "GL_COLOR_MATERIAL\0" + "GL_FOG\0" + "GL_FOG_INDEX\0" + "GL_FOG_DENSITY\0" + "GL_FOG_START\0" + "GL_FOG_END\0" + "GL_FOG_MODE\0" + "GL_FOG_COLOR\0" + "GL_DEPTH_RANGE\0" + "GL_DEPTH_TEST\0" + "GL_DEPTH_WRITEMASK\0" + "GL_DEPTH_CLEAR_VALUE\0" + "GL_DEPTH_FUNC\0" + "GL_ACCUM_CLEAR_VALUE\0" + "GL_STENCIL_TEST\0" + "GL_STENCIL_CLEAR_VALUE\0" + "GL_STENCIL_FUNC\0" + "GL_STENCIL_VALUE_MASK\0" + "GL_STENCIL_FAIL\0" + "GL_STENCIL_PASS_DEPTH_FAIL\0" + "GL_STENCIL_PASS_DEPTH_PASS\0" + "GL_STENCIL_REF\0" + "GL_STENCIL_WRITEMASK\0" + "GL_MATRIX_MODE\0" + "GL_NORMALIZE\0" + "GL_VIEWPORT\0" + "GL_MODELVIEW_STACK_DEPTH\0" + "GL_PROJECTION_STACK_DEPTH\0" + "GL_TEXTURE_STACK_DEPTH\0" + "GL_MODELVIEW_MATRIX\0" + "GL_PROJECTION_MATRIX\0" + "GL_TEXTURE_MATRIX\0" + "GL_ATTRIB_STACK_DEPTH\0" + "GL_CLIENT_ATTRIB_STACK_DEPTH\0" + "GL_ALPHA_TEST\0" + "GL_ALPHA_TEST_FUNC\0" + "GL_ALPHA_TEST_REF\0" + "GL_DITHER\0" + "GL_BLEND_DST\0" + "GL_BLEND_SRC\0" + "GL_BLEND\0" + "GL_LOGIC_OP_MODE\0" + "GL_INDEX_LOGIC_OP\0" + "GL_COLOR_LOGIC_OP\0" + "GL_AUX_BUFFERS\0" + "GL_DRAW_BUFFER\0" + "GL_READ_BUFFER\0" + "GL_SCISSOR_BOX\0" + "GL_SCISSOR_TEST\0" + "GL_INDEX_CLEAR_VALUE\0" + "GL_INDEX_WRITEMASK\0" + "GL_COLOR_CLEAR_VALUE\0" + "GL_COLOR_WRITEMASK\0" + "GL_INDEX_MODE\0" + "GL_RGBA_MODE\0" + "GL_DOUBLEBUFFER\0" + "GL_STEREO\0" + "GL_RENDER_MODE\0" + "GL_PERSPECTIVE_CORRECTION_HINT\0" + "GL_POINT_SMOOTH_HINT\0" + "GL_LINE_SMOOTH_HINT\0" + "GL_POLYGON_SMOOTH_HINT\0" + "GL_FOG_HINT\0" + "GL_TEXTURE_GEN_S\0" + "GL_TEXTURE_GEN_T\0" + "GL_TEXTURE_GEN_R\0" + "GL_TEXTURE_GEN_Q\0" + "GL_PIXEL_MAP_I_TO_I\0" + "GL_PIXEL_MAP_S_TO_S\0" + "GL_PIXEL_MAP_I_TO_R\0" + "GL_PIXEL_MAP_I_TO_G\0" + "GL_PIXEL_MAP_I_TO_B\0" + "GL_PIXEL_MAP_I_TO_A\0" + "GL_PIXEL_MAP_R_TO_R\0" + "GL_PIXEL_MAP_G_TO_G\0" + "GL_PIXEL_MAP_B_TO_B\0" + "GL_PIXEL_MAP_A_TO_A\0" + "GL_PIXEL_MAP_I_TO_I_SIZE\0" + "GL_PIXEL_MAP_S_TO_S_SIZE\0" + "GL_PIXEL_MAP_I_TO_R_SIZE\0" + "GL_PIXEL_MAP_I_TO_G_SIZE\0" + "GL_PIXEL_MAP_I_TO_B_SIZE\0" + "GL_PIXEL_MAP_I_TO_A_SIZE\0" + "GL_PIXEL_MAP_R_TO_R_SIZE\0" + "GL_PIXEL_MAP_G_TO_G_SIZE\0" + "GL_PIXEL_MAP_B_TO_B_SIZE\0" + "GL_PIXEL_MAP_A_TO_A_SIZE\0" + "GL_UNPACK_SWAP_BYTES\0" + "GL_UNPACK_LSB_FIRST\0" + "GL_UNPACK_ROW_LENGTH\0" + "GL_UNPACK_SKIP_ROWS\0" + "GL_UNPACK_SKIP_PIXELS\0" + "GL_UNPACK_ALIGNMENT\0" + "GL_PACK_SWAP_BYTES\0" + "GL_PACK_LSB_FIRST\0" + "GL_PACK_ROW_LENGTH\0" + "GL_PACK_SKIP_ROWS\0" + "GL_PACK_SKIP_PIXELS\0" + "GL_PACK_ALIGNMENT\0" + "GL_MAP_COLOR\0" + "GL_MAP_STENCIL\0" + "GL_INDEX_SHIFT\0" + "GL_INDEX_OFFSET\0" + "GL_RED_SCALE\0" + "GL_RED_BIAS\0" + "GL_ZOOM_X\0" + "GL_ZOOM_Y\0" + "GL_GREEN_SCALE\0" + "GL_GREEN_BIAS\0" + "GL_BLUE_SCALE\0" + "GL_BLUE_BIAS\0" + "GL_ALPHA_SCALE\0" + "GL_ALPHA_BIAS\0" + "GL_DEPTH_SCALE\0" + "GL_DEPTH_BIAS\0" + "GL_MAX_EVAL_ORDER\0" + "GL_MAX_LIGHTS\0" + "GL_MAX_CLIP_DISTANCES\0" + "GL_MAX_TEXTURE_SIZE\0" + "GL_MAX_PIXEL_MAP_TABLE\0" + "GL_MAX_ATTRIB_STACK_DEPTH\0" + "GL_MAX_MODELVIEW_STACK_DEPTH\0" + "GL_MAX_NAME_STACK_DEPTH\0" + "GL_MAX_PROJECTION_STACK_DEPTH\0" + "GL_MAX_TEXTURE_STACK_DEPTH\0" + "GL_MAX_VIEWPORT_DIMS\0" + "GL_MAX_CLIENT_ATTRIB_STACK_DEPTH\0" + "GL_SUBPIXEL_BITS\0" + "GL_INDEX_BITS\0" + "GL_RED_BITS\0" + "GL_GREEN_BITS\0" + "GL_BLUE_BITS\0" + "GL_ALPHA_BITS\0" + "GL_DEPTH_BITS\0" + "GL_STENCIL_BITS\0" + "GL_ACCUM_RED_BITS\0" + "GL_ACCUM_GREEN_BITS\0" + "GL_ACCUM_BLUE_BITS\0" + "GL_ACCUM_ALPHA_BITS\0" + "GL_NAME_STACK_DEPTH\0" + "GL_AUTO_NORMAL\0" + "GL_MAP1_COLOR_4\0" + "GL_MAP1_INDEX\0" + "GL_MAP1_NORMAL\0" + "GL_MAP1_TEXTURE_COORD_1\0" + "GL_MAP1_TEXTURE_COORD_2\0" + "GL_MAP1_TEXTURE_COORD_3\0" + "GL_MAP1_TEXTURE_COORD_4\0" + "GL_MAP1_VERTEX_3\0" + "GL_MAP1_VERTEX_4\0" + "GL_MAP2_COLOR_4\0" + "GL_MAP2_INDEX\0" + "GL_MAP2_NORMAL\0" + "GL_MAP2_TEXTURE_COORD_1\0" + "GL_MAP2_TEXTURE_COORD_2\0" + "GL_MAP2_TEXTURE_COORD_3\0" + "GL_MAP2_TEXTURE_COORD_4\0" + "GL_MAP2_VERTEX_3\0" + "GL_MAP2_VERTEX_4\0" + "GL_MAP1_GRID_DOMAIN\0" + "GL_MAP1_GRID_SEGMENTS\0" + "GL_MAP2_GRID_DOMAIN\0" + "GL_MAP2_GRID_SEGMENTS\0" + "GL_TEXTURE_1D\0" + "GL_TEXTURE_2D\0" + "GL_FEEDBACK_BUFFER_POINTER\0" + "GL_FEEDBACK_BUFFER_SIZE\0" + "GL_FEEDBACK_BUFFER_TYPE\0" + "GL_SELECTION_BUFFER_POINTER\0" + "GL_SELECTION_BUFFER_SIZE\0" + "GL_TEXTURE_WIDTH\0" + "GL_TEXTURE_HEIGHT\0" + "GL_TEXTURE_COMPONENTS\0" + "GL_TEXTURE_BORDER_COLOR\0" + "GL_TEXTURE_BORDER\0" + "GL_TEXTURE_TARGET\0" + "GL_DONT_CARE\0" + "GL_FASTEST\0" + "GL_NICEST\0" + "GL_AMBIENT\0" + "GL_DIFFUSE\0" + "GL_SPECULAR\0" + "GL_POSITION\0" + "GL_SPOT_DIRECTION\0" + "GL_SPOT_EXPONENT\0" + "GL_SPOT_CUTOFF\0" + "GL_CONSTANT_ATTENUATION\0" + "GL_LINEAR_ATTENUATION\0" + "GL_QUADRATIC_ATTENUATION\0" + "GL_COMPILE\0" + "GL_COMPILE_AND_EXECUTE\0" + "GL_BYTE\0" + "GL_UNSIGNED_BYTE\0" + "GL_SHORT\0" + "GL_UNSIGNED_SHORT\0" + "GL_INT\0" + "GL_UNSIGNED_INT\0" + "GL_FLOAT\0" + "GL_2_BYTES\0" + "GL_3_BYTES\0" + "GL_4_BYTES\0" + "GL_DOUBLE\0" + "GL_HALF_FLOAT\0" + "GL_FIXED\0" + "GL_CLEAR\0" + "GL_AND\0" + "GL_AND_REVERSE\0" + "GL_COPY\0" + "GL_AND_INVERTED\0" + "GL_NOOP\0" + "GL_XOR\0" + "GL_OR\0" + "GL_NOR\0" + "GL_EQUIV\0" + "GL_INVERT\0" + "GL_OR_REVERSE\0" + "GL_COPY_INVERTED\0" + "GL_OR_INVERTED\0" + "GL_NAND\0" + "GL_SET\0" + "GL_EMISSION\0" + "GL_SHININESS\0" + "GL_AMBIENT_AND_DIFFUSE\0" + "GL_COLOR_INDEXES\0" + "GL_MODELVIEW\0" + "GL_PROJECTION\0" + "GL_TEXTURE\0" + "GL_COLOR\0" + "GL_DEPTH\0" + "GL_STENCIL\0" + "GL_COLOR_INDEX\0" + "GL_STENCIL_INDEX\0" + "GL_DEPTH_COMPONENT\0" + "GL_RED\0" + "GL_GREEN\0" + "GL_BLUE\0" + "GL_ALPHA\0" + "GL_RGB\0" + "GL_RGBA\0" + "GL_LUMINANCE\0" + "GL_LUMINANCE_ALPHA\0" + "GL_BITMAP\0" + "GL_POINT\0" + "GL_LINE\0" + "GL_FILL\0" + "GL_RENDER\0" + "GL_FEEDBACK\0" + "GL_SELECT\0" + "GL_FLAT\0" + "GL_SMOOTH\0" + "GL_KEEP\0" + "GL_REPLACE\0" + "GL_INCR\0" + "GL_DECR\0" + "GL_VENDOR\0" + "GL_RENDERER\0" + "GL_VERSION\0" + "GL_EXTENSIONS\0" + "GL_S\0" + "GL_T\0" + "GL_R\0" + "GL_Q\0" + "GL_MODULATE\0" + "GL_DECAL\0" + "GL_TEXTURE_ENV_MODE\0" + "GL_TEXTURE_ENV_COLOR\0" + "GL_TEXTURE_ENV\0" + "GL_EYE_LINEAR\0" + "GL_OBJECT_LINEAR\0" + "GL_SPHERE_MAP\0" + "GL_TEXTURE_GEN_MODE\0" + "GL_OBJECT_PLANE\0" + "GL_EYE_PLANE\0" + "GL_NEAREST\0" + "GL_LINEAR\0" + "GL_NEAREST_MIPMAP_NEAREST\0" + "GL_LINEAR_MIPMAP_NEAREST\0" + "GL_NEAREST_MIPMAP_LINEAR\0" + "GL_LINEAR_MIPMAP_LINEAR\0" + "GL_TEXTURE_MAG_FILTER\0" + "GL_TEXTURE_MIN_FILTER\0" + "GL_TEXTURE_WRAP_S\0" + "GL_TEXTURE_WRAP_T\0" + "GL_CLAMP\0" + "GL_REPEAT\0" + "GL_POLYGON_OFFSET_UNITS\0" + "GL_POLYGON_OFFSET_POINT\0" + "GL_POLYGON_OFFSET_LINE\0" + "GL_R3_G3_B2\0" + "GL_V2F\0" + "GL_V3F\0" + "GL_C4UB_V2F\0" + "GL_C4UB_V3F\0" + "GL_C3F_V3F\0" + "GL_N3F_V3F\0" + "GL_C4F_N3F_V3F\0" + "GL_T2F_V3F\0" + "GL_T4F_V4F\0" + "GL_T2F_C4UB_V3F\0" + "GL_T2F_C3F_V3F\0" + "GL_T2F_N3F_V3F\0" + "GL_T2F_C4F_N3F_V3F\0" + "GL_T4F_C4F_N3F_V4F\0" + "GL_CLIP_DISTANCE0\0" + "GL_CLIP_DISTANCE1\0" + "GL_CLIP_DISTANCE2\0" + "GL_CLIP_DISTANCE3\0" + "GL_CLIP_DISTANCE4\0" + "GL_CLIP_DISTANCE5\0" + "GL_CLIP_DISTANCE6\0" + "GL_CLIP_DISTANCE7\0" + "GL_LIGHT0\0" + "GL_LIGHT1\0" + "GL_LIGHT2\0" + "GL_LIGHT3\0" + "GL_LIGHT4\0" + "GL_LIGHT5\0" + "GL_LIGHT6\0" + "GL_LIGHT7\0" + "GL_HINT_BIT\0" + "GL_CONSTANT_COLOR\0" + "GL_ONE_MINUS_CONSTANT_COLOR\0" + "GL_CONSTANT_ALPHA\0" + "GL_ONE_MINUS_CONSTANT_ALPHA\0" + "GL_BLEND_COLOR\0" + "GL_FUNC_ADD\0" + "GL_MIN\0" + "GL_MAX\0" + "GL_BLEND_EQUATION\0" + "GL_FUNC_SUBTRACT\0" + "GL_FUNC_REVERSE_SUBTRACT\0" + "GL_CONVOLUTION_1D\0" + "GL_CONVOLUTION_2D\0" + "GL_SEPARABLE_2D\0" + "GL_CONVOLUTION_BORDER_MODE\0" + "GL_CONVOLUTION_FILTER_SCALE\0" + "GL_CONVOLUTION_FILTER_BIAS\0" + "GL_REDUCE\0" + "GL_CONVOLUTION_FORMAT\0" + "GL_CONVOLUTION_WIDTH\0" + "GL_CONVOLUTION_HEIGHT\0" + "GL_MAX_CONVOLUTION_WIDTH\0" + "GL_MAX_CONVOLUTION_HEIGHT\0" + "GL_POST_CONVOLUTION_RED_SCALE\0" + "GL_POST_CONVOLUTION_GREEN_SCALE\0" + "GL_POST_CONVOLUTION_BLUE_SCALE\0" + "GL_POST_CONVOLUTION_ALPHA_SCALE\0" + "GL_POST_CONVOLUTION_RED_BIAS\0" + "GL_POST_CONVOLUTION_GREEN_BIAS\0" + "GL_POST_CONVOLUTION_BLUE_BIAS\0" + "GL_POST_CONVOLUTION_ALPHA_BIAS\0" + "GL_HISTOGRAM\0" + "GL_PROXY_HISTOGRAM\0" + "GL_HISTOGRAM_WIDTH\0" + "GL_HISTOGRAM_FORMAT\0" + "GL_HISTOGRAM_RED_SIZE\0" + "GL_HISTOGRAM_GREEN_SIZE\0" + "GL_HISTOGRAM_BLUE_SIZE\0" + "GL_HISTOGRAM_ALPHA_SIZE\0" + "GL_HISTOGRAM_LUMINANCE_SIZE\0" + "GL_HISTOGRAM_SINK\0" + "GL_MINMAX\0" + "GL_MINMAX_FORMAT\0" + "GL_MINMAX_SINK\0" + "GL_TABLE_TOO_LARGE_EXT\0" + "GL_UNSIGNED_BYTE_3_3_2\0" + "GL_UNSIGNED_SHORT_4_4_4_4\0" + "GL_UNSIGNED_SHORT_5_5_5_1\0" + "GL_UNSIGNED_INT_8_8_8_8\0" + "GL_UNSIGNED_INT_10_10_10_2\0" + "GL_POLYGON_OFFSET_FILL\0" + "GL_POLYGON_OFFSET_FACTOR\0" + "GL_POLYGON_OFFSET_BIAS_EXT\0" + "GL_RESCALE_NORMAL\0" + "GL_ALPHA4\0" + "GL_ALPHA8\0" + "GL_ALPHA12\0" + "GL_ALPHA16\0" + "GL_LUMINANCE4\0" + "GL_LUMINANCE8\0" + "GL_LUMINANCE12\0" + "GL_LUMINANCE16\0" + "GL_LUMINANCE4_ALPHA4\0" + "GL_LUMINANCE6_ALPHA2\0" + "GL_LUMINANCE8_ALPHA8\0" + "GL_LUMINANCE12_ALPHA4\0" + "GL_LUMINANCE12_ALPHA12\0" + "GL_LUMINANCE16_ALPHA16\0" + "GL_INTENSITY\0" + "GL_INTENSITY4\0" + "GL_INTENSITY8\0" + "GL_INTENSITY12\0" + "GL_INTENSITY16\0" + "GL_RGB2_EXT\0" + "GL_RGB4\0" + "GL_RGB5\0" + "GL_RGB8\0" + "GL_RGB10\0" + "GL_RGB12\0" + "GL_RGB16\0" + "GL_RGBA2\0" + "GL_RGBA4\0" + "GL_RGB5_A1\0" + "GL_RGBA8\0" + "GL_RGB10_A2\0" + "GL_RGBA12\0" + "GL_RGBA16\0" + "GL_TEXTURE_RED_SIZE\0" + "GL_TEXTURE_GREEN_SIZE\0" + "GL_TEXTURE_BLUE_SIZE\0" + "GL_TEXTURE_ALPHA_SIZE\0" + "GL_TEXTURE_LUMINANCE_SIZE\0" + "GL_TEXTURE_INTENSITY_SIZE\0" + "GL_REPLACE_EXT\0" + "GL_PROXY_TEXTURE_1D\0" + "GL_PROXY_TEXTURE_2D\0" + "GL_TEXTURE_TOO_LARGE_EXT\0" + "GL_TEXTURE_PRIORITY\0" + "GL_TEXTURE_RESIDENT\0" + "GL_TEXTURE_BINDING_1D\0" + "GL_TEXTURE_BINDING_2D\0" + "GL_TEXTURE_BINDING_3D\0" + "GL_PACK_SKIP_IMAGES\0" + "GL_PACK_IMAGE_HEIGHT\0" + "GL_UNPACK_SKIP_IMAGES\0" + "GL_UNPACK_IMAGE_HEIGHT\0" + "GL_TEXTURE_3D\0" + "GL_PROXY_TEXTURE_3D\0" + "GL_TEXTURE_DEPTH\0" + "GL_TEXTURE_WRAP_R\0" + "GL_MAX_3D_TEXTURE_SIZE\0" + "GL_VERTEX_ARRAY\0" + "GL_NORMAL_ARRAY\0" + "GL_COLOR_ARRAY\0" + "GL_INDEX_ARRAY\0" + "GL_TEXTURE_COORD_ARRAY\0" + "GL_EDGE_FLAG_ARRAY\0" + "GL_VERTEX_ARRAY_SIZE\0" + "GL_VERTEX_ARRAY_TYPE\0" + "GL_VERTEX_ARRAY_STRIDE\0" + "GL_VERTEX_ARRAY_COUNT_EXT\0" + "GL_NORMAL_ARRAY_TYPE\0" + "GL_NORMAL_ARRAY_STRIDE\0" + "GL_NORMAL_ARRAY_COUNT_EXT\0" + "GL_COLOR_ARRAY_SIZE\0" + "GL_COLOR_ARRAY_TYPE\0" + "GL_COLOR_ARRAY_STRIDE\0" + "GL_COLOR_ARRAY_COUNT_EXT\0" + "GL_INDEX_ARRAY_TYPE\0" + "GL_INDEX_ARRAY_STRIDE\0" + "GL_INDEX_ARRAY_COUNT_EXT\0" + "GL_TEXTURE_COORD_ARRAY_SIZE\0" + "GL_TEXTURE_COORD_ARRAY_TYPE\0" + "GL_TEXTURE_COORD_ARRAY_STRIDE\0" + "GL_TEXTURE_COORD_ARRAY_COUNT_EXT\0" + "GL_EDGE_FLAG_ARRAY_STRIDE\0" + "GL_EDGE_FLAG_ARRAY_COUNT_EXT\0" + "GL_VERTEX_ARRAY_POINTER\0" + "GL_NORMAL_ARRAY_POINTER\0" + "GL_COLOR_ARRAY_POINTER\0" + "GL_INDEX_ARRAY_POINTER\0" + "GL_TEXTURE_COORD_ARRAY_POINTER\0" + "GL_EDGE_FLAG_ARRAY_POINTER\0" + "GL_MULTISAMPLE\0" + "GL_SAMPLE_ALPHA_TO_COVERAGE\0" + "GL_SAMPLE_ALPHA_TO_ONE\0" + "GL_SAMPLE_COVERAGE\0" + "GL_SAMPLE_BUFFERS\0" + "GL_SAMPLES\0" + "GL_SAMPLE_COVERAGE_VALUE\0" + "GL_SAMPLE_COVERAGE_INVERT\0" + "GL_COLOR_MATRIX\0" + "GL_COLOR_MATRIX_STACK_DEPTH\0" + "GL_MAX_COLOR_MATRIX_STACK_DEPTH\0" + "GL_POST_COLOR_MATRIX_RED_SCALE\0" + "GL_POST_COLOR_MATRIX_GREEN_SCALE\0" + "GL_POST_COLOR_MATRIX_BLUE_SCALE\0" + "GL_POST_COLOR_MATRIX_ALPHA_SCALE\0" + "GL_POST_COLOR_MATRIX_RED_BIAS\0" + "GL_POST_COLOR_MATRIX_GREEN_BIAS\0" + "GL_POST_COLOR_MATRIX_BLUE_BIAS\0" + "GL_POST_COLOR_MATRIX_ALPHA_BIAS\0" + "GL_TEXTURE_COLOR_TABLE_SGI\0" + "GL_PROXY_TEXTURE_COLOR_TABLE_SGI\0" + "GL_TEXTURE_COMPARE_FAIL_VALUE_ARB\0" + "GL_BLEND_DST_RGB\0" + "GL_BLEND_SRC_RGB\0" + "GL_BLEND_DST_ALPHA\0" + "GL_BLEND_SRC_ALPHA\0" + "GL_COLOR_TABLE\0" + "GL_POST_CONVOLUTION_COLOR_TABLE\0" + "GL_POST_COLOR_MATRIX_COLOR_TABLE\0" + "GL_PROXY_COLOR_TABLE\0" + "GL_PROXY_POST_CONVOLUTION_COLOR_TABLE\0" + "GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE\0" + "GL_COLOR_TABLE_SCALE\0" + "GL_COLOR_TABLE_BIAS\0" + "GL_COLOR_TABLE_FORMAT\0" + "GL_COLOR_TABLE_WIDTH\0" + "GL_COLOR_TABLE_RED_SIZE\0" + "GL_COLOR_TABLE_GREEN_SIZE\0" + "GL_COLOR_TABLE_BLUE_SIZE\0" + "GL_COLOR_TABLE_ALPHA_SIZE\0" + "GL_COLOR_TABLE_LUMINANCE_SIZE\0" + "GL_COLOR_TABLE_INTENSITY_SIZE\0" + "GL_BGR\0" + "GL_BGRA\0" + "GL_MAX_ELEMENTS_VERTICES\0" + "GL_MAX_ELEMENTS_INDICES\0" + "GL_TEXTURE_INDEX_SIZE_EXT\0" + "GL_CLIP_VOLUME_CLIPPING_HINT_EXT\0" + "GL_POINT_SIZE_MIN\0" + "GL_POINT_SIZE_MAX\0" + "GL_POINT_FADE_THRESHOLD_SIZE\0" + "GL_POINT_DISTANCE_ATTENUATION\0" + "GL_CLAMP_TO_BORDER\0" + "GL_CLAMP_TO_EDGE\0" + "GL_TEXTURE_MIN_LOD\0" + "GL_TEXTURE_MAX_LOD\0" + "GL_TEXTURE_BASE_LEVEL\0" + "GL_TEXTURE_MAX_LEVEL\0" + "GL_IGNORE_BORDER_HP\0" + "GL_CONSTANT_BORDER_HP\0" + "GL_REPLICATE_BORDER_HP\0" + "GL_CONVOLUTION_BORDER_COLOR\0" + "GL_OCCLUSION_TEST_HP\0" + "GL_OCCLUSION_TEST_RESULT_HP\0" + "GL_LINEAR_CLIPMAP_LINEAR_SGIX\0" + "GL_TEXTURE_CLIPMAP_CENTER_SGIX\0" + "GL_TEXTURE_CLIPMAP_FRAME_SGIX\0" + "GL_TEXTURE_CLIPMAP_OFFSET_SGIX\0" + "GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX\0" + "GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX\0" + "GL_TEXTURE_CLIPMAP_DEPTH_SGIX\0" + "GL_MAX_CLIPMAP_DEPTH_SGIX\0" + "GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX\0" + "GL_POST_TEXTURE_FILTER_BIAS_SGIX\0" + "GL_POST_TEXTURE_FILTER_SCALE_SGIX\0" + "GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX\0" + "GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX\0" + "GL_TEXTURE_LOD_BIAS_S_SGIX\0" + "GL_TEXTURE_LOD_BIAS_T_SGIX\0" + "GL_TEXTURE_LOD_BIAS_R_SGIX\0" + "GL_GENERATE_MIPMAP\0" + "GL_GENERATE_MIPMAP_HINT\0" + "GL_FOG_OFFSET_SGIX\0" + "GL_FOG_OFFSET_VALUE_SGIX\0" + "GL_TEXTURE_COMPARE_SGIX\0" + "GL_TEXTURE_COMPARE_OPERATOR_SGIX\0" + "GL_TEXTURE_LEQUAL_R_SGIX\0" + "GL_TEXTURE_GEQUAL_R_SGIX\0" + "GL_DEPTH_COMPONENT16\0" + "GL_DEPTH_COMPONENT24\0" + "GL_DEPTH_COMPONENT32\0" + "GL_ARRAY_ELEMENT_LOCK_FIRST_EXT\0" + "GL_ARRAY_ELEMENT_LOCK_COUNT_EXT\0" + "GL_CULL_VERTEX_EXT\0" + "GL_CULL_VERTEX_OBJECT_POSITION_EXT\0" + "GL_CULL_VERTEX_EYE_POSITION_EXT\0" + "GL_WRAP_BORDER_SUN\0" + "GL_TEXTURE_COLOR_WRITEMASK_SGIS\0" + "GL_LIGHT_MODEL_COLOR_CONTROL\0" + "GL_SINGLE_COLOR\0" + "GL_SEPARATE_SPECULAR_COLOR\0" + "GL_SHARED_TEXTURE_PALETTE_EXT\0" + "GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING\0" + "GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE\0" + "GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE\0" + "GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE\0" + "GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE\0" + "GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE\0" + "GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE\0" + "GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE\0" + "GL_FRAMEBUFFER_DEFAULT\0" + "GL_FRAMEBUFFER_UNDEFINED\0" + "GL_DEPTH_STENCIL_ATTACHMENT\0" + "GL_MAJOR_VERSION\0" + "GL_MINOR_VERSION\0" + "GL_NUM_EXTENSIONS\0" + "GL_CONTEXT_FLAGS\0" + "GL_BUFFER_IMMUTABLE_STORAGE\0" + "GL_BUFFER_STORAGE_FLAGS\0" + "GL_INDEX\0" + "GL_DEPTH_BUFFER\0" + "GL_STENCIL_BUFFER\0" + "GL_COMPRESSED_RED\0" + "GL_COMPRESSED_RG\0" + "GL_RG\0" + "GL_RG_INTEGER\0" + "GL_R8\0" + "GL_R16\0" + "GL_RG8\0" + "GL_RG16\0" + "GL_R16F\0" + "GL_R32F\0" + "GL_RG16F\0" + "GL_RG32F\0" + "GL_R8I\0" + "GL_R8UI\0" + "GL_R16I\0" + "GL_R16UI\0" + "GL_R32I\0" + "GL_R32UI\0" + "GL_RG8I\0" + "GL_RG8UI\0" + "GL_RG16I\0" + "GL_RG16UI\0" + "GL_RG32I\0" + "GL_RG32UI\0" + "GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB\0" + "GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB\0" + "GL_DEBUG_CALLBACK_FUNCTION_ARB\0" + "GL_DEBUG_CALLBACK_USER_PARAM_ARB\0" + "GL_DEBUG_SOURCE_API_ARB\0" + "GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB\0" + "GL_DEBUG_SOURCE_SHADER_COMPILER_ARB\0" + "GL_DEBUG_SOURCE_THIRD_PARTY_ARB\0" + "GL_DEBUG_SOURCE_APPLICATION_ARB\0" + "GL_DEBUG_SOURCE_OTHER_ARB\0" + "GL_DEBUG_TYPE_ERROR_ARB\0" + "GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB\0" + "GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB\0" + "GL_DEBUG_TYPE_PORTABILITY_ARB\0" + "GL_DEBUG_TYPE_PERFORMANCE_ARB\0" + "GL_DEBUG_TYPE_OTHER_ARB\0" + "GL_LOSE_CONTEXT_ON_RESET_ARB\0" + "GL_GUILTY_CONTEXT_RESET_ARB\0" + "GL_INNOCENT_CONTEXT_RESET_ARB\0" + "GL_UNKNOWN_CONTEXT_RESET_ARB\0" + "GL_RESET_NOTIFICATION_STRATEGY_ARB\0" + "GL_PROGRAM_BINARY_RETRIEVABLE_HINT\0" + "GL_PROGRAM_SEPARABLE_EXT\0" + "GL_ACTIVE_PROGRAM_EXT\0" + "GL_PROGRAM_PIPELINE_BINDING_EXT\0" + "GL_MAX_VIEWPORTS\0" + "GL_VIEWPORT_SUBPIXEL_BITS\0" + "GL_VIEWPORT_BOUNDS_RANGE\0" + "GL_LAYER_PROVOKING_VERTEX\0" + "GL_VIEWPORT_INDEX_PROVOKING_VERTEX\0" + "GL_UNDEFINED_VERTEX\0" + "GL_NO_RESET_NOTIFICATION_ARB\0" + "GL_MAX_COMPUTE_SHARED_MEMORY_SIZE\0" + "GL_MAX_COMPUTE_UNIFORM_COMPONENTS\0" + "GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS\0" + "GL_MAX_COMPUTE_ATOMIC_COUNTERS\0" + "GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS\0" + "GL_COMPUTE_WORK_GROUP_SIZE\0" + "GL_DEBUG_TYPE_MARKER\0" + "GL_DEBUG_TYPE_PUSH_GROUP\0" + "GL_DEBUG_TYPE_POP_GROUP\0" + "GL_DEBUG_SEVERITY_NOTIFICATION\0" + "GL_MAX_DEBUG_GROUP_STACK_DEPTH\0" + "GL_DEBUG_GROUP_STACK_DEPTH\0" + "GL_MAX_UNIFORM_LOCATIONS\0" + "GL_VERTEX_ATTRIB_BINDING\0" + "GL_VERTEX_ATTRIB_RELATIVE_OFFSET\0" + "GL_VERTEX_BINDING_DIVISOR\0" + "GL_VERTEX_BINDING_OFFSET\0" + "GL_VERTEX_BINDING_STRIDE\0" + "GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET\0" + "GL_MAX_VERTEX_ATTRIB_BINDINGS\0" + "GL_TEXTURE_IMMUTABLE_LEVELS\0" + "GL_BUFFER\0" + "GL_SHADER\0" + "GL_PROGRAM\0" + "GL_QUERY\0" + "GL_PROGRAM_PIPELINE\0" + "GL_MAX_VERTEX_ATTRIB_STRIDE\0" + "GL_SAMPLER\0" + "GL_DISPLAY_LIST\0" + "GL_MAX_LABEL_LENGTH\0" + "GL_QUERY_TARGET\0" + "GL_TEXTURE_BINDING\0" + "GL_VERTICES_SUBMITTED_ARB\0" + "GL_PRIMITIVES_SUBMITTED_ARB\0" + "GL_VERTEX_SHADER_INVOCATIONS_ARB\0" + "GL_TESS_CONTROL_SHADER_PATCHES_ARB\0" + "GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB\0" + "GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB\0" + "GL_FRAGMENT_SHADER_INVOCATIONS_ARB\0" + "GL_COMPUTE_SHADER_INVOCATIONS_ARB\0" + "GL_CLIPPING_INPUT_PRIMITIVES_ARB\0" + "GL_CLIPPING_OUTPUT_PRIMITIVES_ARB\0" + "GL_CONTEXT_RELEASE_BEHAVIOR\0" + "GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH\0" + "GL_UNSIGNED_BYTE_2_3_3_REV\0" + "GL_UNSIGNED_SHORT_5_6_5\0" + "GL_UNSIGNED_SHORT_5_6_5_REV\0" + "GL_UNSIGNED_SHORT_4_4_4_4_REV\0" + "GL_UNSIGNED_SHORT_1_5_5_5_REV\0" + "GL_UNSIGNED_INT_8_8_8_8_REV\0" + "GL_UNSIGNED_INT_2_10_10_10_REV\0" + "GL_TEXTURE_MAX_CLAMP_S_SGIX\0" + "GL_TEXTURE_MAX_CLAMP_T_SGIX\0" + "GL_TEXTURE_MAX_CLAMP_R_SGIX\0" + "GL_MIRRORED_REPEAT\0" + "GL_RGB_S3TC\0" + "GL_RGB4_S3TC\0" + "GL_RGBA_S3TC\0" + "GL_RGBA4_S3TC\0" + "GL_RGBA_DXT5_S3TC\0" + "GL_RGBA4_DXT5_S3TC\0" + "GL_COMPRESSED_RGB_S3TC_DXT1_EXT\0" + "GL_COMPRESSED_RGBA_S3TC_DXT1_EXT\0" + "GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE\0" + "GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE\0" + "GL_PERFQUERY_DONOT_FLUSH_INTEL\0" + "GL_PERFQUERY_FLUSH_INTEL\0" + "GL_PERFQUERY_WAIT_INTEL\0" + "GL_NEAREST_CLIPMAP_NEAREST_SGIX\0" + "GL_NEAREST_CLIPMAP_LINEAR_SGIX\0" + "GL_LINEAR_CLIPMAP_NEAREST_SGIX\0" + "GL_FOG_COORDINATE_SOURCE\0" + "GL_FOG_COORD\0" + "GL_FRAGMENT_DEPTH\0" + "GL_CURRENT_FOG_COORD\0" + "GL_FOG_COORDINATE_ARRAY_TYPE\0" + "GL_FOG_COORDINATE_ARRAY_STRIDE\0" + "GL_FOG_COORDINATE_ARRAY_POINTER\0" + "GL_FOG_COORDINATE_ARRAY\0" + "GL_COLOR_SUM\0" + "GL_CURRENT_SECONDARY_COLOR\0" + "GL_SECONDARY_COLOR_ARRAY_SIZE\0" + "GL_SECONDARY_COLOR_ARRAY_TYPE\0" + "GL_SECONDARY_COLOR_ARRAY_STRIDE\0" + "GL_SECONDARY_COLOR_ARRAY_POINTER\0" + "GL_SECONDARY_COLOR_ARRAY\0" + "GL_CURRENT_RASTER_SECONDARY_COLOR\0" + "GL_ALIASED_POINT_SIZE_RANGE\0" + "GL_ALIASED_LINE_WIDTH_RANGE\0" + "GL_TEXTURE0\0" + "GL_TEXTURE1\0" + "GL_TEXTURE2\0" + "GL_TEXTURE3\0" + "GL_TEXTURE4\0" + "GL_TEXTURE5\0" + "GL_TEXTURE6\0" + "GL_TEXTURE7\0" + "GL_TEXTURE8\0" + "GL_TEXTURE9\0" + "GL_TEXTURE10\0" + "GL_TEXTURE11\0" + "GL_TEXTURE12\0" + "GL_TEXTURE13\0" + "GL_TEXTURE14\0" + "GL_TEXTURE15\0" + "GL_TEXTURE16\0" + "GL_TEXTURE17\0" + "GL_TEXTURE18\0" + "GL_TEXTURE19\0" + "GL_TEXTURE20\0" + "GL_TEXTURE21\0" + "GL_TEXTURE22\0" + "GL_TEXTURE23\0" + "GL_TEXTURE24\0" + "GL_TEXTURE25\0" + "GL_TEXTURE26\0" + "GL_TEXTURE27\0" + "GL_TEXTURE28\0" + "GL_TEXTURE29\0" + "GL_TEXTURE30\0" + "GL_TEXTURE31\0" + "GL_ACTIVE_TEXTURE\0" + "GL_CLIENT_ACTIVE_TEXTURE\0" + "GL_MAX_TEXTURE_UNITS\0" + "GL_TRANSPOSE_MODELVIEW_MATRIX\0" + "GL_TRANSPOSE_PROJECTION_MATRIX\0" + "GL_TRANSPOSE_TEXTURE_MATRIX\0" + "GL_TRANSPOSE_COLOR_MATRIX\0" + "GL_SUBTRACT\0" + "GL_MAX_RENDERBUFFER_SIZE\0" + "GL_COMPRESSED_ALPHA\0" + "GL_COMPRESSED_LUMINANCE\0" + "GL_COMPRESSED_LUMINANCE_ALPHA\0" + "GL_COMPRESSED_INTENSITY\0" + "GL_COMPRESSED_RGB\0" + "GL_COMPRESSED_RGBA\0" + "GL_TEXTURE_COMPRESSION_HINT\0" + "GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER\0" + "GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER\0" + "GL_TEXTURE_RECTANGLE\0" + "GL_TEXTURE_BINDING_RECTANGLE\0" + "GL_PROXY_TEXTURE_RECTANGLE\0" + "GL_MAX_RECTANGLE_TEXTURE_SIZE\0" + "GL_DEPTH_STENCIL\0" + "GL_UNSIGNED_INT_24_8\0" + "GL_MAX_TEXTURE_LOD_BIAS\0" + "GL_TEXTURE_MAX_ANISOTROPY_EXT\0" + "GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT\0" + "GL_TEXTURE_FILTER_CONTROL\0" + "GL_TEXTURE_LOD_BIAS\0" + "GL_COMBINE4_NV\0" + "GL_MAX_SHININESS_NV\0" + "GL_MAX_SPOT_EXPONENT_NV\0" + "GL_INCR_WRAP\0" + "GL_DECR_WRAP\0" + "GL_MODELVIEW1_ARB\0" + "GL_NORMAL_MAP\0" + "GL_REFLECTION_MAP\0" + "GL_TEXTURE_CUBE_MAP\0" + "GL_TEXTURE_BINDING_CUBE_MAP\0" + "GL_TEXTURE_CUBE_MAP_POSITIVE_X\0" + "GL_TEXTURE_CUBE_MAP_NEGATIVE_X\0" + "GL_TEXTURE_CUBE_MAP_POSITIVE_Y\0" + "GL_TEXTURE_CUBE_MAP_NEGATIVE_Y\0" + "GL_TEXTURE_CUBE_MAP_POSITIVE_Z\0" + "GL_TEXTURE_CUBE_MAP_NEGATIVE_Z\0" + "GL_PROXY_TEXTURE_CUBE_MAP\0" + "GL_MAX_CUBE_MAP_TEXTURE_SIZE\0" + "GL_MULTISAMPLE_FILTER_HINT_NV\0" + "GL_PRIMITIVE_RESTART_NV\0" + "GL_PRIMITIVE_RESTART_INDEX_NV\0" + "GL_FOG_DISTANCE_MODE_NV\0" + "GL_EYE_RADIAL_NV\0" + "GL_EYE_PLANE_ABSOLUTE_NV\0" + "GL_COMBINE\0" + "GL_COMBINE_RGB\0" + "GL_COMBINE_ALPHA\0" + "GL_RGB_SCALE\0" + "GL_ADD_SIGNED\0" + "GL_INTERPOLATE\0" + "GL_CONSTANT\0" + "GL_PRIMARY_COLOR\0" + "GL_PREVIOUS\0" + "GL_SOURCE0_RGB\0" + "GL_SOURCE1_RGB\0" + "GL_SOURCE2_RGB\0" + "GL_SOURCE3_RGB_NV\0" + "GL_SOURCE0_ALPHA\0" + "GL_SOURCE1_ALPHA\0" + "GL_SOURCE2_ALPHA\0" + "GL_SOURCE3_ALPHA_NV\0" + "GL_OPERAND0_RGB\0" + "GL_OPERAND1_RGB\0" + "GL_OPERAND2_RGB\0" + "GL_OPERAND3_RGB_NV\0" + "GL_OPERAND0_ALPHA\0" + "GL_OPERAND1_ALPHA\0" + "GL_OPERAND2_ALPHA\0" + "GL_OPERAND3_ALPHA_NV\0" + "GL_BUFFER_OBJECT_APPLE\0" + "GL_VERTEX_ARRAY_BINDING\0" + "GL_TEXTURE_RANGE_LENGTH_APPLE\0" + "GL_TEXTURE_RANGE_POINTER_APPLE\0" + "GL_YCBCR_422_APPLE\0" + "GL_UNSIGNED_SHORT_8_8_APPLE\0" + "GL_UNSIGNED_SHORT_8_8_REV_APPLE\0" + "GL_TEXTURE_STORAGE_HINT_APPLE\0" + "GL_STORAGE_PRIVATE_APPLE\0" + "GL_STORAGE_CACHED_APPLE\0" + "GL_STORAGE_SHARED_APPLE\0" + "GL_SLICE_ACCUM_SUN\0" + "GL_QUAD_MESH_SUN\0" + "GL_TRIANGLE_MESH_SUN\0" + "GL_VERTEX_PROGRAM_ARB\0" + "GL_VERTEX_STATE_PROGRAM_NV\0" + "GL_VERTEX_ATTRIB_ARRAY_ENABLED\0" + "GL_VERTEX_ATTRIB_ARRAY_SIZE\0" + "GL_VERTEX_ATTRIB_ARRAY_STRIDE\0" + "GL_VERTEX_ATTRIB_ARRAY_TYPE\0" + "GL_CURRENT_VERTEX_ATTRIB\0" + "GL_PROGRAM_LENGTH_ARB\0" + "GL_PROGRAM_STRING_ARB\0" + "GL_MODELVIEW_PROJECTION_NV\0" + "GL_IDENTITY_NV\0" + "GL_INVERSE_NV\0" + "GL_TRANSPOSE_NV\0" + "GL_INVERSE_TRANSPOSE_NV\0" + "GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB\0" + "GL_MAX_PROGRAM_MATRICES_ARB\0" + "GL_MATRIX0_NV\0" + "GL_MATRIX1_NV\0" + "GL_MATRIX2_NV\0" + "GL_MATRIX3_NV\0" + "GL_MATRIX4_NV\0" + "GL_MATRIX5_NV\0" + "GL_MATRIX6_NV\0" + "GL_MATRIX7_NV\0" + "GL_CURRENT_MATRIX_STACK_DEPTH_ARB\0" + "GL_CURRENT_MATRIX_ARB\0" + "GL_PROGRAM_POINT_SIZE\0" + "GL_VERTEX_PROGRAM_TWO_SIDE\0" + "GL_PROGRAM_PARAMETER_NV\0" + "GL_VERTEX_ATTRIB_ARRAY_POINTER\0" + "GL_PROGRAM_TARGET_NV\0" + "GL_PROGRAM_RESIDENT_NV\0" + "GL_TRACK_MATRIX_NV\0" + "GL_TRACK_MATRIX_TRANSFORM_NV\0" + "GL_VERTEX_PROGRAM_BINDING_NV\0" + "GL_PROGRAM_ERROR_POSITION_ARB\0" + "GL_DEPTH_CLAMP\0" + "GL_VERTEX_ATTRIB_ARRAY0_NV\0" + "GL_VERTEX_ATTRIB_ARRAY1_NV\0" + "GL_VERTEX_ATTRIB_ARRAY2_NV\0" + "GL_VERTEX_ATTRIB_ARRAY3_NV\0" + "GL_VERTEX_ATTRIB_ARRAY4_NV\0" + "GL_VERTEX_ATTRIB_ARRAY5_NV\0" + "GL_VERTEX_ATTRIB_ARRAY6_NV\0" + "GL_VERTEX_ATTRIB_ARRAY7_NV\0" + "GL_VERTEX_ATTRIB_ARRAY8_NV\0" + "GL_VERTEX_ATTRIB_ARRAY9_NV\0" + "GL_VERTEX_ATTRIB_ARRAY10_NV\0" + "GL_VERTEX_ATTRIB_ARRAY11_NV\0" + "GL_VERTEX_ATTRIB_ARRAY12_NV\0" + "GL_VERTEX_ATTRIB_ARRAY13_NV\0" + "GL_VERTEX_ATTRIB_ARRAY14_NV\0" + "GL_VERTEX_ATTRIB_ARRAY15_NV\0" + "GL_MAP1_VERTEX_ATTRIB0_4_NV\0" + "GL_MAP1_VERTEX_ATTRIB1_4_NV\0" + "GL_MAP1_VERTEX_ATTRIB2_4_NV\0" + "GL_MAP1_VERTEX_ATTRIB3_4_NV\0" + "GL_MAP1_VERTEX_ATTRIB4_4_NV\0" + "GL_MAP1_VERTEX_ATTRIB5_4_NV\0" + "GL_MAP1_VERTEX_ATTRIB6_4_NV\0" + "GL_MAP1_VERTEX_ATTRIB7_4_NV\0" + "GL_MAP1_VERTEX_ATTRIB8_4_NV\0" + "GL_MAP1_VERTEX_ATTRIB9_4_NV\0" + "GL_MAP1_VERTEX_ATTRIB10_4_NV\0" + "GL_MAP1_VERTEX_ATTRIB11_4_NV\0" + "GL_MAP1_VERTEX_ATTRIB12_4_NV\0" + "GL_MAP1_VERTEX_ATTRIB13_4_NV\0" + "GL_MAP1_VERTEX_ATTRIB14_4_NV\0" + "GL_MAP1_VERTEX_ATTRIB15_4_NV\0" + "GL_MAP2_VERTEX_ATTRIB0_4_NV\0" + "GL_MAP2_VERTEX_ATTRIB1_4_NV\0" + "GL_MAP2_VERTEX_ATTRIB2_4_NV\0" + "GL_MAP2_VERTEX_ATTRIB3_4_NV\0" + "GL_MAP2_VERTEX_ATTRIB4_4_NV\0" + "GL_MAP2_VERTEX_ATTRIB5_4_NV\0" + "GL_MAP2_VERTEX_ATTRIB6_4_NV\0" + "GL_PROGRAM_BINDING_ARB\0" + "GL_MAP2_VERTEX_ATTRIB8_4_NV\0" + "GL_MAP2_VERTEX_ATTRIB9_4_NV\0" + "GL_MAP2_VERTEX_ATTRIB10_4_NV\0" + "GL_MAP2_VERTEX_ATTRIB11_4_NV\0" + "GL_MAP2_VERTEX_ATTRIB12_4_NV\0" + "GL_MAP2_VERTEX_ATTRIB13_4_NV\0" + "GL_MAP2_VERTEX_ATTRIB14_4_NV\0" + "GL_MAP2_VERTEX_ATTRIB15_4_NV\0" + "GL_TEXTURE_COMPRESSED_IMAGE_SIZE\0" + "GL_TEXTURE_COMPRESSED\0" + "GL_NUM_COMPRESSED_TEXTURE_FORMATS\0" + "GL_COMPRESSED_TEXTURE_FORMATS\0" + "GL_MAX_VERTEX_UNITS_ARB\0" + "GL_ACTIVE_VERTEX_UNITS_ARB\0" + "GL_WEIGHT_SUM_UNITY_ARB\0" + "GL_VERTEX_BLEND_ARB\0" + "GL_CURRENT_WEIGHT_ARB\0" + "GL_WEIGHT_ARRAY_TYPE_ARB\0" + "GL_WEIGHT_ARRAY_STRIDE_ARB\0" + "GL_WEIGHT_ARRAY_SIZE_ARB\0" + "GL_WEIGHT_ARRAY_POINTER_ARB\0" + "GL_WEIGHT_ARRAY_ARB\0" + "GL_DOT3_RGB\0" + "GL_DOT3_RGBA\0" + "GL_COMPRESSED_RGB_FXT1_3DFX\0" + "GL_COMPRESSED_RGBA_FXT1_3DFX\0" + "GL_MULTISAMPLE_3DFX\0" + "GL_SAMPLE_BUFFERS_3DFX\0" + "GL_SAMPLES_3DFX\0" + "GL_SURFACE_STATE_NV\0" + "GL_SURFACE_REGISTERED_NV\0" + "GL_SURFACE_MAPPED_NV\0" + "GL_MODELVIEW2_ARB\0" + "GL_MODELVIEW3_ARB\0" + "GL_MODELVIEW4_ARB\0" + "GL_MODELVIEW5_ARB\0" + "GL_MODELVIEW6_ARB\0" + "GL_MODELVIEW7_ARB\0" + "GL_MODELVIEW8_ARB\0" + "GL_MODELVIEW9_ARB\0" + "GL_MODELVIEW10_ARB\0" + "GL_MODELVIEW11_ARB\0" + "GL_MODELVIEW12_ARB\0" + "GL_MODELVIEW13_ARB\0" + "GL_MODELVIEW14_ARB\0" + "GL_MODELVIEW15_ARB\0" + "GL_MODELVIEW16_ARB\0" + "GL_MODELVIEW17_ARB\0" + "GL_MODELVIEW18_ARB\0" + "GL_MODELVIEW19_ARB\0" + "GL_MODELVIEW20_ARB\0" + "GL_MODELVIEW21_ARB\0" + "GL_MODELVIEW22_ARB\0" + "GL_MODELVIEW23_ARB\0" + "GL_MODELVIEW24_ARB\0" + "GL_MODELVIEW25_ARB\0" + "GL_MODELVIEW26_ARB\0" + "GL_MODELVIEW27_ARB\0" + "GL_MODELVIEW28_ARB\0" + "GL_MODELVIEW29_ARB\0" + "GL_MODELVIEW30_ARB\0" + "GL_MODELVIEW31_ARB\0" + "GL_DOT3_RGB_EXT\0" + "GL_PROGRAM_BINARY_LENGTH\0" + "GL_MIRROR_CLAMP_EXT\0" + "GL_MIRROR_CLAMP_TO_EDGE_EXT\0" + "GL_MODULATE_ADD_ATI\0" + "GL_MODULATE_SIGNED_ADD_ATI\0" + "GL_MODULATE_SUBTRACT_ATI\0" + "GL_YCBCR_MESA\0" + "GL_PACK_INVERT_MESA\0" + "GL_BUFFER_SIZE\0" + "GL_BUFFER_USAGE\0" + "GL_BUMP_ROT_MATRIX_ATI\0" + "GL_BUMP_ROT_MATRIX_SIZE_ATI\0" + "GL_BUMP_NUM_TEX_UNITS_ATI\0" + "GL_BUMP_TEX_UNITS_ATI\0" + "GL_DUDV_ATI\0" + "GL_DU8DV8_ATI\0" + "GL_BUMP_ENVMAP_ATI\0" + "GL_BUMP_TARGET_ATI\0" + "GL_NUM_PROGRAM_BINARY_FORMATS\0" + "GL_PROGRAM_BINARY_FORMATS\0" + "GL_STENCIL_BACK_FUNC\0" + "GL_STENCIL_BACK_FAIL\0" + "GL_STENCIL_BACK_PASS_DEPTH_FAIL\0" + "GL_STENCIL_BACK_PASS_DEPTH_PASS\0" + "GL_FRAGMENT_PROGRAM_ARB\0" + "GL_PROGRAM_ALU_INSTRUCTIONS_ARB\0" + "GL_PROGRAM_TEX_INSTRUCTIONS_ARB\0" + "GL_PROGRAM_TEX_INDIRECTIONS_ARB\0" + "GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB\0" + "GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB\0" + "GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB\0" + "GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB\0" + "GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB\0" + "GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB\0" + "GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB\0" + "GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB\0" + "GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB\0" + "GL_RGBA32F\0" + "GL_RGB32F\0" + "GL_ALPHA32F_ARB\0" + "GL_INTENSITY32F_ARB\0" + "GL_LUMINANCE32F_ARB\0" + "GL_LUMINANCE_ALPHA32F_ARB\0" + "GL_RGBA16F\0" + "GL_RGB16F\0" + "GL_ALPHA16F_ARB\0" + "GL_INTENSITY16F_ARB\0" + "GL_LUMINANCE16F_ARB\0" + "GL_LUMINANCE_ALPHA16F_ARB\0" + "GL_RGBA_FLOAT_MODE_ARB\0" + "GL_MAX_DRAW_BUFFERS\0" + "GL_DRAW_BUFFER0\0" + "GL_DRAW_BUFFER1\0" + "GL_DRAW_BUFFER2\0" + "GL_DRAW_BUFFER3\0" + "GL_DRAW_BUFFER4\0" + "GL_DRAW_BUFFER5\0" + "GL_DRAW_BUFFER6\0" + "GL_DRAW_BUFFER7\0" + "GL_DRAW_BUFFER8\0" + "GL_DRAW_BUFFER9\0" + "GL_DRAW_BUFFER10\0" + "GL_DRAW_BUFFER11\0" + "GL_DRAW_BUFFER12\0" + "GL_DRAW_BUFFER13\0" + "GL_DRAW_BUFFER14\0" + "GL_DRAW_BUFFER15\0" + "GL_BLEND_EQUATION_ALPHA\0" + "GL_MATRIX_PALETTE_ARB\0" + "GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB\0" + "GL_MAX_PALETTE_MATRICES_ARB\0" + "GL_CURRENT_PALETTE_MATRIX_ARB\0" + "GL_MATRIX_INDEX_ARRAY_ARB\0" + "GL_CURRENT_MATRIX_INDEX_ARB\0" + "GL_MATRIX_INDEX_ARRAY_SIZE_ARB\0" + "GL_MATRIX_INDEX_ARRAY_TYPE_ARB\0" + "GL_MATRIX_INDEX_ARRAY_STRIDE_ARB\0" + "GL_MATRIX_INDEX_ARRAY_POINTER_ARB\0" + "GL_TEXTURE_DEPTH_SIZE\0" + "GL_DEPTH_TEXTURE_MODE\0" + "GL_TEXTURE_COMPARE_MODE\0" + "GL_TEXTURE_COMPARE_FUNC\0" + "GL_COMPARE_REF_TO_TEXTURE\0" + "GL_TEXTURE_CUBE_MAP_SEAMLESS\0" + "GL_POINT_SPRITE\0" + "GL_COORD_REPLACE\0" + "GL_POINT_SPRITE_R_MODE_NV\0" + "GL_QUERY_COUNTER_BITS\0" + "GL_CURRENT_QUERY\0" + "GL_QUERY_RESULT\0" + "GL_QUERY_RESULT_AVAILABLE\0" + "GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV\0" + "GL_MAX_VERTEX_ATTRIBS\0" + "GL_VERTEX_ATTRIB_ARRAY_NORMALIZED\0" + "GL_MAX_TESS_CONTROL_INPUT_COMPONENTS\0" + "GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS\0" + "GL_DEPTH_STENCIL_TO_RGBA_NV\0" + "GL_DEPTH_STENCIL_TO_BGRA_NV\0" + "GL_FRAGMENT_PROGRAM_NV\0" + "GL_MAX_TEXTURE_COORDS\0" + "GL_MAX_TEXTURE_IMAGE_UNITS\0" + "GL_FRAGMENT_PROGRAM_BINDING_NV\0" + "GL_PROGRAM_ERROR_STRING_ARB\0" + "GL_PROGRAM_FORMAT_ASCII_ARB\0" + "GL_PROGRAM_FORMAT_ARB\0" + "GL_GEOMETRY_SHADER_INVOCATIONS\0" + "GL_TEXTURE_UNSIGNED_REMAP_MODE_NV\0" + "GL_DEPTH_BOUNDS_TEST_EXT\0" + "GL_DEPTH_BOUNDS_EXT\0" + "GL_ARRAY_BUFFER\0" + "GL_ELEMENT_ARRAY_BUFFER\0" + "GL_ARRAY_BUFFER_BINDING\0" + "GL_ELEMENT_ARRAY_BUFFER_BINDING\0" + "GL_VERTEX_ARRAY_BUFFER_BINDING\0" + "GL_NORMAL_ARRAY_BUFFER_BINDING\0" + "GL_COLOR_ARRAY_BUFFER_BINDING\0" + "GL_INDEX_ARRAY_BUFFER_BINDING\0" + "GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING\0" + "GL_EDGE_FLAG_ARRAY_BUFFER_BINDING\0" + "GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING\0" + "GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING\0" + "GL_WEIGHT_ARRAY_BUFFER_BINDING\0" + "GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING\0" + "GL_PROGRAM_INSTRUCTIONS_ARB\0" + "GL_MAX_PROGRAM_INSTRUCTIONS_ARB\0" + "GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB\0" + "GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB\0" + "GL_PROGRAM_TEMPORARIES_ARB\0" + "GL_MAX_PROGRAM_TEMPORARIES_ARB\0" + "GL_PROGRAM_NATIVE_TEMPORARIES_ARB\0" + "GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB\0" + "GL_PROGRAM_PARAMETERS_ARB\0" + "GL_MAX_PROGRAM_PARAMETERS_ARB\0" + "GL_PROGRAM_NATIVE_PARAMETERS_ARB\0" + "GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB\0" + "GL_PROGRAM_ATTRIBS_ARB\0" + "GL_MAX_PROGRAM_ATTRIBS_ARB\0" + "GL_PROGRAM_NATIVE_ATTRIBS_ARB\0" + "GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB\0" + "GL_PROGRAM_ADDRESS_REGISTERS_ARB\0" + "GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB\0" + "GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB\0" + "GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB\0" + "GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB\0" + "GL_MAX_PROGRAM_ENV_PARAMETERS_ARB\0" + "GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB\0" + "GL_TRANSPOSE_CURRENT_MATRIX_ARB\0" + "GL_READ_ONLY\0" + "GL_WRITE_ONLY\0" + "GL_READ_WRITE\0" + "GL_BUFFER_ACCESS\0" + "GL_BUFFER_MAPPED\0" + "GL_BUFFER_MAP_POINTER\0" + "GL_WRITE_DISCARD_NV\0" + "GL_TIME_ELAPSED\0" + "GL_MATRIX0_ARB\0" + "GL_MATRIX1_ARB\0" + "GL_MATRIX2_ARB\0" + "GL_MATRIX3_ARB\0" + "GL_MATRIX4_ARB\0" + "GL_MATRIX5_ARB\0" + "GL_MATRIX6_ARB\0" + "GL_MATRIX7_ARB\0" + "GL_MATRIX8_ARB\0" + "GL_MATRIX9_ARB\0" + "GL_MATRIX10_ARB\0" + "GL_MATRIX11_ARB\0" + "GL_MATRIX12_ARB\0" + "GL_MATRIX13_ARB\0" + "GL_MATRIX14_ARB\0" + "GL_MATRIX15_ARB\0" + "GL_MATRIX16_ARB\0" + "GL_MATRIX17_ARB\0" + "GL_MATRIX18_ARB\0" + "GL_MATRIX19_ARB\0" + "GL_MATRIX20_ARB\0" + "GL_MATRIX21_ARB\0" + "GL_MATRIX22_ARB\0" + "GL_MATRIX23_ARB\0" + "GL_MATRIX24_ARB\0" + "GL_MATRIX25_ARB\0" + "GL_MATRIX26_ARB\0" + "GL_MATRIX27_ARB\0" + "GL_MATRIX28_ARB\0" + "GL_MATRIX29_ARB\0" + "GL_MATRIX30_ARB\0" + "GL_MATRIX31_ARB\0" + "GL_STREAM_DRAW\0" + "GL_STREAM_READ\0" + "GL_STREAM_COPY\0" + "GL_STATIC_DRAW\0" + "GL_STATIC_READ\0" + "GL_STATIC_COPY\0" + "GL_DYNAMIC_DRAW\0" + "GL_DYNAMIC_READ\0" + "GL_DYNAMIC_COPY\0" + "GL_PIXEL_PACK_BUFFER\0" + "GL_PIXEL_UNPACK_BUFFER\0" + "GL_PIXEL_PACK_BUFFER_BINDING\0" + "GL_PIXEL_UNPACK_BUFFER_BINDING\0" + "GL_DEPTH24_STENCIL8\0" + "GL_TEXTURE_STENCIL_SIZE\0" + "GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV\0" + "GL_MAX_PROGRAM_CALL_DEPTH_NV\0" + "GL_MAX_PROGRAM_IF_DEPTH_NV\0" + "GL_MAX_PROGRAM_LOOP_DEPTH_NV\0" + "GL_MAX_PROGRAM_LOOP_COUNT_NV\0" + "GL_SRC1_COLOR\0" + "GL_ONE_MINUS_SRC1_COLOR\0" + "GL_ONE_MINUS_SRC1_ALPHA\0" + "GL_MAX_DUAL_SOURCE_DRAW_BUFFERS\0" + "GL_VERTEX_ATTRIB_ARRAY_INTEGER\0" + "GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB\0" + "GL_MAX_ARRAY_TEXTURE_LAYERS\0" + "GL_MIN_PROGRAM_TEXEL_OFFSET\0" + "GL_MAX_PROGRAM_TEXEL_OFFSET\0" + "GL_STENCIL_TEST_TWO_SIDE_EXT\0" + "GL_ACTIVE_STENCIL_FACE_EXT\0" + "GL_MIRROR_CLAMP_TO_BORDER_EXT\0" + "GL_SAMPLES_PASSED\0" + "GL_GEOMETRY_VERTICES_OUT\0" + "GL_GEOMETRY_INPUT_TYPE\0" + "GL_GEOMETRY_OUTPUT_TYPE\0" + "GL_SAMPLER_BINDING\0" + "GL_CLAMP_VERTEX_COLOR\0" + "GL_CLAMP_FRAGMENT_COLOR\0" + "GL_CLAMP_READ_COLOR\0" + "GL_FIXED_ONLY\0" + "GL_FRAGMENT_SHADER_ATI\0" + "GL_REG_0_ATI\0" + "GL_REG_1_ATI\0" + "GL_REG_2_ATI\0" + "GL_REG_3_ATI\0" + "GL_REG_4_ATI\0" + "GL_REG_5_ATI\0" + "GL_REG_6_ATI\0" + "GL_REG_7_ATI\0" + "GL_REG_8_ATI\0" + "GL_REG_9_ATI\0" + "GL_REG_10_ATI\0" + "GL_REG_11_ATI\0" + "GL_REG_12_ATI\0" + "GL_REG_13_ATI\0" + "GL_REG_14_ATI\0" + "GL_REG_15_ATI\0" + "GL_REG_16_ATI\0" + "GL_REG_17_ATI\0" + "GL_REG_18_ATI\0" + "GL_REG_19_ATI\0" + "GL_REG_20_ATI\0" + "GL_REG_21_ATI\0" + "GL_REG_22_ATI\0" + "GL_REG_23_ATI\0" + "GL_REG_24_ATI\0" + "GL_REG_25_ATI\0" + "GL_REG_26_ATI\0" + "GL_REG_27_ATI\0" + "GL_REG_28_ATI\0" + "GL_REG_29_ATI\0" + "GL_REG_30_ATI\0" + "GL_REG_31_ATI\0" + "GL_CON_0_ATI\0" + "GL_CON_1_ATI\0" + "GL_CON_2_ATI\0" + "GL_CON_3_ATI\0" + "GL_CON_4_ATI\0" + "GL_CON_5_ATI\0" + "GL_CON_6_ATI\0" + "GL_CON_7_ATI\0" + "GL_CON_8_ATI\0" + "GL_CON_9_ATI\0" + "GL_CON_10_ATI\0" + "GL_CON_11_ATI\0" + "GL_CON_12_ATI\0" + "GL_CON_13_ATI\0" + "GL_CON_14_ATI\0" + "GL_CON_15_ATI\0" + "GL_CON_16_ATI\0" + "GL_CON_17_ATI\0" + "GL_CON_18_ATI\0" + "GL_CON_19_ATI\0" + "GL_CON_20_ATI\0" + "GL_CON_21_ATI\0" + "GL_CON_22_ATI\0" + "GL_CON_23_ATI\0" + "GL_CON_24_ATI\0" + "GL_CON_25_ATI\0" + "GL_CON_26_ATI\0" + "GL_CON_27_ATI\0" + "GL_CON_28_ATI\0" + "GL_CON_29_ATI\0" + "GL_CON_30_ATI\0" + "GL_CON_31_ATI\0" + "GL_MOV_ATI\0" + "GL_ADD_ATI\0" + "GL_MUL_ATI\0" + "GL_SUB_ATI\0" + "GL_DOT3_ATI\0" + "GL_DOT4_ATI\0" + "GL_MAD_ATI\0" + "GL_LERP_ATI\0" + "GL_CND_ATI\0" + "GL_CND0_ATI\0" + "GL_DOT2_ADD_ATI\0" + "GL_SECONDARY_INTERPOLATOR_ATI\0" + "GL_NUM_FRAGMENT_REGISTERS_ATI\0" + "GL_NUM_FRAGMENT_CONSTANTS_ATI\0" + "GL_NUM_PASSES_ATI\0" + "GL_NUM_INSTRUCTIONS_PER_PASS_ATI\0" + "GL_NUM_INSTRUCTIONS_TOTAL_ATI\0" + "GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI\0" + "GL_NUM_LOOPBACK_COMPONENTS_ATI\0" + "GL_COLOR_ALPHA_PAIRING_ATI\0" + "GL_SWIZZLE_STR_ATI\0" + "GL_SWIZZLE_STQ_ATI\0" + "GL_SWIZZLE_STR_DR_ATI\0" + "GL_SWIZZLE_STQ_DQ_ATI\0" + "GL_SWIZZLE_STRQ_ATI\0" + "GL_SWIZZLE_STRQ_DQ_ATI\0" + "GL_POINT_SIZE_ARRAY_TYPE_OES\0" + "GL_POINT_SIZE_ARRAY_STRIDE_OES\0" + "GL_POINT_SIZE_ARRAY_POINTER_OES\0" + "GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES\0" + "GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES\0" + "GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES\0" + "GL_UNIFORM_BUFFER\0" + "GL_BUFFER_SERIALIZED_MODIFY_APPLE\0" + "GL_BUFFER_FLUSHING_UNMAP_APPLE\0" + "GL_RELEASED_APPLE\0" + "GL_VOLATILE_APPLE\0" + "GL_RETAINED_APPLE\0" + "GL_UNDEFINED_APPLE\0" + "GL_PURGEABLE_APPLE\0" + "GL_UNIFORM_BUFFER_BINDING\0" + "GL_UNIFORM_BUFFER_START\0" + "GL_UNIFORM_BUFFER_SIZE\0" + "GL_MAX_VERTEX_UNIFORM_BLOCKS\0" + "GL_MAX_GEOMETRY_UNIFORM_BLOCKS\0" + "GL_MAX_FRAGMENT_UNIFORM_BLOCKS\0" + "GL_MAX_COMBINED_UNIFORM_BLOCKS\0" + "GL_MAX_UNIFORM_BUFFER_BINDINGS\0" + "GL_MAX_UNIFORM_BLOCK_SIZE\0" + "GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS\0" + "GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS\0" + "GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS\0" + "GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT\0" + "GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH\0" + "GL_ACTIVE_UNIFORM_BLOCKS\0" + "GL_UNIFORM_TYPE\0" + "GL_UNIFORM_SIZE\0" + "GL_UNIFORM_NAME_LENGTH\0" + "GL_UNIFORM_BLOCK_INDEX\0" + "GL_UNIFORM_OFFSET\0" + "GL_UNIFORM_ARRAY_STRIDE\0" + "GL_UNIFORM_MATRIX_STRIDE\0" + "GL_UNIFORM_IS_ROW_MAJOR\0" + "GL_UNIFORM_BLOCK_BINDING\0" + "GL_UNIFORM_BLOCK_DATA_SIZE\0" + "GL_UNIFORM_BLOCK_NAME_LENGTH\0" + "GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS\0" + "GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES\0" + "GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER\0" + "GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER\0" + "GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER\0" + "GL_TEXTURE_SRGB_DECODE_EXT\0" + "GL_DECODE_EXT\0" + "GL_SKIP_DECODE_EXT\0" + "GL_FRAGMENT_SHADER\0" + "GL_VERTEX_SHADER\0" + "GL_PROGRAM_OBJECT_ARB\0" + "GL_SHADER_OBJECT_ARB\0" + "GL_MAX_FRAGMENT_UNIFORM_COMPONENTS\0" + "GL_MAX_VERTEX_UNIFORM_COMPONENTS\0" + "GL_MAX_VARYING_COMPONENTS\0" + "GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS\0" + "GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS\0" + "GL_OBJECT_TYPE_ARB\0" + "GL_SHADER_TYPE\0" + "GL_FLOAT_VEC2\0" + "GL_FLOAT_VEC3\0" + "GL_FLOAT_VEC4\0" + "GL_INT_VEC2\0" + "GL_INT_VEC3\0" + "GL_INT_VEC4\0" + "GL_BOOL\0" + "GL_BOOL_VEC2\0" + "GL_BOOL_VEC3\0" + "GL_BOOL_VEC4\0" + "GL_FLOAT_MAT2\0" + "GL_FLOAT_MAT3\0" + "GL_FLOAT_MAT4\0" + "GL_SAMPLER_1D\0" + "GL_SAMPLER_2D\0" + "GL_SAMPLER_3D\0" + "GL_SAMPLER_CUBE\0" + "GL_SAMPLER_1D_SHADOW\0" + "GL_SAMPLER_2D_SHADOW\0" + "GL_SAMPLER_2D_RECT\0" + "GL_SAMPLER_2D_RECT_SHADOW\0" + "GL_FLOAT_MAT2x3\0" + "GL_FLOAT_MAT2x4\0" + "GL_FLOAT_MAT3x2\0" + "GL_FLOAT_MAT3x4\0" + "GL_FLOAT_MAT4x2\0" + "GL_FLOAT_MAT4x3\0" + "GL_DELETE_STATUS\0" + "GL_COMPILE_STATUS\0" + "GL_LINK_STATUS\0" + "GL_VALIDATE_STATUS\0" + "GL_INFO_LOG_LENGTH\0" + "GL_ATTACHED_SHADERS\0" + "GL_ACTIVE_UNIFORMS\0" + "GL_ACTIVE_UNIFORM_MAX_LENGTH\0" + "GL_SHADER_SOURCE_LENGTH\0" + "GL_ACTIVE_ATTRIBUTES\0" + "GL_ACTIVE_ATTRIBUTE_MAX_LENGTH\0" + "GL_FRAGMENT_SHADER_DERIVATIVE_HINT\0" + "GL_SHADING_LANGUAGE_VERSION\0" + "GL_CURRENT_PROGRAM\0" + "GL_PALETTE4_RGB8_OES\0" + "GL_PALETTE4_RGBA8_OES\0" + "GL_PALETTE4_R5_G6_B5_OES\0" + "GL_PALETTE4_RGBA4_OES\0" + "GL_PALETTE4_RGB5_A1_OES\0" + "GL_PALETTE8_RGB8_OES\0" + "GL_PALETTE8_RGBA8_OES\0" + "GL_PALETTE8_R5_G6_B5_OES\0" + "GL_PALETTE8_RGBA4_OES\0" + "GL_PALETTE8_RGB5_A1_OES\0" + "GL_IMPLEMENTATION_COLOR_READ_TYPE\0" + "GL_IMPLEMENTATION_COLOR_READ_FORMAT\0" + "GL_POINT_SIZE_ARRAY_OES\0" + "GL_TEXTURE_CROP_RECT_OES\0" + "GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES\0" + "GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES\0" + "GL_COUNTER_TYPE_AMD\0" + "GL_COUNTER_RANGE_AMD\0" + "GL_UNSIGNED_INT64_AMD\0" + "GL_PECENTAGE_AMD\0" + "GL_PERFMON_RESULT_AVAILABLE_AMD\0" + "GL_PERFMON_RESULT_SIZE_AMD\0" + "GL_PERFMON_RESULT_AMD\0" + "GL_TEXTURE_RED_TYPE\0" + "GL_TEXTURE_GREEN_TYPE\0" + "GL_TEXTURE_BLUE_TYPE\0" + "GL_TEXTURE_ALPHA_TYPE\0" + "GL_TEXTURE_LUMINANCE_TYPE\0" + "GL_TEXTURE_INTENSITY_TYPE\0" + "GL_TEXTURE_DEPTH_TYPE\0" + "GL_UNSIGNED_NORMALIZED\0" + "GL_TEXTURE_1D_ARRAY\0" + "GL_PROXY_TEXTURE_1D_ARRAY\0" + "GL_TEXTURE_2D_ARRAY\0" + "GL_PROXY_TEXTURE_2D_ARRAY\0" + "GL_TEXTURE_BINDING_1D_ARRAY\0" + "GL_TEXTURE_BINDING_2D_ARRAY\0" + "GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS\0" + "GL_TEXTURE_BUFFER\0" + "GL_MAX_TEXTURE_BUFFER_SIZE\0" + "GL_TEXTURE_BINDING_BUFFER\0" + "GL_TEXTURE_BUFFER_DATA_STORE_BINDING\0" + "GL_TEXTURE_BUFFER_FORMAT\0" + "GL_ANY_SAMPLES_PASSED\0" + "GL_SAMPLE_SHADING\0" + "GL_MIN_SAMPLE_SHADING_VALUE\0" + "GL_R11F_G11F_B10F\0" + "GL_UNSIGNED_INT_10F_11F_11F_REV\0" + "GL_RGBA_SIGNED_COMPONENTS_EXT\0" + "GL_RGB9_E5\0" + "GL_UNSIGNED_INT_5_9_9_9_REV\0" + "GL_TEXTURE_SHARED_SIZE\0" + "GL_SRGB\0" + "GL_SRGB8\0" + "GL_SRGB_ALPHA\0" + "GL_SRGB8_ALPHA8\0" + "GL_SLUMINANCE_ALPHA\0" + "GL_SLUMINANCE8_ALPHA8\0" + "GL_SLUMINANCE\0" + "GL_SLUMINANCE8\0" + "GL_COMPRESSED_SRGB\0" + "GL_COMPRESSED_SRGB_ALPHA\0" + "GL_COMPRESSED_SLUMINANCE\0" + "GL_COMPRESSED_SLUMINANCE_ALPHA\0" + "GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH\0" + "GL_TRANSFORM_FEEDBACK_BUFFER_MODE\0" + "GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS\0" + "GL_TRANSFORM_FEEDBACK_VARYINGS\0" + "GL_TRANSFORM_FEEDBACK_BUFFER_START\0" + "GL_TRANSFORM_FEEDBACK_BUFFER_SIZE\0" + "GL_PRIMITIVES_GENERATED\0" + "GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN\0" + "GL_RASTERIZER_DISCARD\0" + "GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS\0" + "GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS\0" + "GL_INTERLEAVED_ATTRIBS\0" + "GL_SEPARATE_ATTRIBS\0" + "GL_TRANSFORM_FEEDBACK_BUFFER\0" + "GL_TRANSFORM_FEEDBACK_BUFFER_BINDING\0" + "GL_POINT_SPRITE_COORD_ORIGIN\0" + "GL_LOWER_LEFT\0" + "GL_UPPER_LEFT\0" + "GL_STENCIL_BACK_REF\0" + "GL_STENCIL_BACK_VALUE_MASK\0" + "GL_STENCIL_BACK_WRITEMASK\0" + "GL_DRAW_FRAMEBUFFER_BINDING\0" + "GL_RENDERBUFFER_BINDING\0" + "GL_READ_FRAMEBUFFER\0" + "GL_DRAW_FRAMEBUFFER\0" + "GL_READ_FRAMEBUFFER_BINDING\0" + "GL_RENDERBUFFER_SAMPLES\0" + "GL_DEPTH_COMPONENT32F\0" + "GL_DEPTH32F_STENCIL8\0" + "GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE\0" + "GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME\0" + "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL\0" + "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE\0" + "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER\0" + "GL_FRAMEBUFFER_COMPLETE\0" + "GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT\0" + "GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT\0" + "GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT\0" + "GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT\0" + "GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT\0" + "GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER\0" + "GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER\0" + "GL_FRAMEBUFFER_UNSUPPORTED\0" + "GL_FRAMEBUFFER_STATUS_ERROR_EXT\0" + "GL_MAX_COLOR_ATTACHMENTS\0" + "GL_COLOR_ATTACHMENT0\0" + "GL_COLOR_ATTACHMENT1\0" + "GL_COLOR_ATTACHMENT2\0" + "GL_COLOR_ATTACHMENT3\0" + "GL_COLOR_ATTACHMENT4\0" + "GL_COLOR_ATTACHMENT5\0" + "GL_COLOR_ATTACHMENT6\0" + "GL_COLOR_ATTACHMENT7\0" + "GL_COLOR_ATTACHMENT8\0" + "GL_COLOR_ATTACHMENT9\0" + "GL_COLOR_ATTACHMENT10\0" + "GL_COLOR_ATTACHMENT11\0" + "GL_COLOR_ATTACHMENT12\0" + "GL_COLOR_ATTACHMENT13\0" + "GL_COLOR_ATTACHMENT14\0" + "GL_COLOR_ATTACHMENT15\0" + "GL_DEPTH_ATTACHMENT\0" + "GL_STENCIL_ATTACHMENT\0" + "GL_FRAMEBUFFER\0" + "GL_RENDERBUFFER\0" + "GL_RENDERBUFFER_WIDTH\0" + "GL_RENDERBUFFER_HEIGHT\0" + "GL_RENDERBUFFER_INTERNAL_FORMAT\0" + "GL_STENCIL_INDEX_EXT\0" + "GL_STENCIL_INDEX1\0" + "GL_STENCIL_INDEX4\0" + "GL_STENCIL_INDEX8\0" + "GL_STENCIL_INDEX16\0" + "GL_RENDERBUFFER_RED_SIZE\0" + "GL_RENDERBUFFER_GREEN_SIZE\0" + "GL_RENDERBUFFER_BLUE_SIZE\0" + "GL_RENDERBUFFER_ALPHA_SIZE\0" + "GL_RENDERBUFFER_DEPTH_SIZE\0" + "GL_RENDERBUFFER_STENCIL_SIZE\0" + "GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE\0" + "GL_MAX_SAMPLES\0" + "GL_TEXTURE_GEN_STR_OES\0" + "GL_HALF_FLOAT_OES\0" + "GL_RGB565\0" + "GL_ETC1_RGB8_OES\0" + "GL_TEXTURE_EXTERNAL_OES\0" + "GL_SAMPLER_EXTERNAL_OES\0" + "GL_TEXTURE_BINDING_EXTERNAL_OES\0" + "GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES\0" + "GL_PRIMITIVE_RESTART_FIXED_INDEX\0" + "GL_ANY_SAMPLES_PASSED_CONSERVATIVE\0" + "GL_MAX_ELEMENT_INDEX\0" + "GL_RGBA32UI\0" + "GL_RGB32UI\0" + "GL_ALPHA32UI_EXT\0" + "GL_INTENSITY32UI_EXT\0" + "GL_LUMINANCE32UI_EXT\0" + "GL_LUMINANCE_ALPHA32UI_EXT\0" + "GL_RGBA16UI\0" + "GL_RGB16UI\0" + "GL_ALPHA16UI_EXT\0" + "GL_INTENSITY16UI_EXT\0" + "GL_LUMINANCE16UI_EXT\0" + "GL_LUMINANCE_ALPHA16UI_EXT\0" + "GL_RGBA8UI\0" + "GL_RGB8UI\0" + "GL_ALPHA8UI_EXT\0" + "GL_INTENSITY8UI_EXT\0" + "GL_LUMINANCE8UI_EXT\0" + "GL_LUMINANCE_ALPHA8UI_EXT\0" + "GL_RGBA32I\0" + "GL_RGB32I\0" + "GL_ALPHA32I_EXT\0" + "GL_INTENSITY32I_EXT\0" + "GL_LUMINANCE32I_EXT\0" + "GL_LUMINANCE_ALPHA32I_EXT\0" + "GL_RGBA16I\0" + "GL_RGB16I\0" + "GL_ALPHA16I_EXT\0" + "GL_INTENSITY16I_EXT\0" + "GL_LUMINANCE16I_EXT\0" + "GL_LUMINANCE_ALPHA16I_EXT\0" + "GL_RGBA8I\0" + "GL_RGB8I\0" + "GL_ALPHA8I_EXT\0" + "GL_INTENSITY8I_EXT\0" + "GL_LUMINANCE8I_EXT\0" + "GL_LUMINANCE_ALPHA8I_EXT\0" + "GL_RED_INTEGER\0" + "GL_GREEN_INTEGER\0" + "GL_BLUE_INTEGER\0" + "GL_ALPHA_INTEGER_EXT\0" + "GL_RGB_INTEGER\0" + "GL_RGBA_INTEGER\0" + "GL_BGR_INTEGER\0" + "GL_BGRA_INTEGER\0" + "GL_LUMINANCE_INTEGER_EXT\0" + "GL_LUMINANCE_ALPHA_INTEGER_EXT\0" + "GL_RGBA_INTEGER_MODE_EXT\0" + "GL_INT_2_10_10_10_REV\0" + "GL_FRAMEBUFFER_ATTACHMENT_LAYERED\0" + "GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS\0" + "GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB\0" + "GL_FLOAT_32_UNSIGNED_INT_24_8_REV\0" + "GL_FRAMEBUFFER_SRGB\0" + "GL_FRAMEBUFFER_SRGB_CAPABLE_EXT\0" + "GL_COMPRESSED_RED_RGTC1\0" + "GL_COMPRESSED_SIGNED_RED_RGTC1\0" + "GL_COMPRESSED_RG_RGTC2\0" + "GL_COMPRESSED_SIGNED_RG_RGTC2\0" + "GL_SAMPLER_1D_ARRAY\0" + "GL_SAMPLER_2D_ARRAY\0" + "GL_SAMPLER_BUFFER\0" + "GL_SAMPLER_1D_ARRAY_SHADOW\0" + "GL_SAMPLER_2D_ARRAY_SHADOW\0" + "GL_SAMPLER_CUBE_SHADOW\0" + "GL_UNSIGNED_INT_VEC2\0" + "GL_UNSIGNED_INT_VEC3\0" + "GL_UNSIGNED_INT_VEC4\0" + "GL_INT_SAMPLER_1D\0" + "GL_INT_SAMPLER_2D\0" + "GL_INT_SAMPLER_3D\0" + "GL_INT_SAMPLER_CUBE\0" + "GL_INT_SAMPLER_2D_RECT\0" + "GL_INT_SAMPLER_1D_ARRAY\0" + "GL_INT_SAMPLER_2D_ARRAY\0" + "GL_INT_SAMPLER_BUFFER\0" + "GL_UNSIGNED_INT_SAMPLER_1D\0" + "GL_UNSIGNED_INT_SAMPLER_2D\0" + "GL_UNSIGNED_INT_SAMPLER_3D\0" + "GL_UNSIGNED_INT_SAMPLER_CUBE\0" + "GL_UNSIGNED_INT_SAMPLER_2D_RECT\0" + "GL_UNSIGNED_INT_SAMPLER_1D_ARRAY\0" + "GL_UNSIGNED_INT_SAMPLER_2D_ARRAY\0" + "GL_UNSIGNED_INT_SAMPLER_BUFFER\0" + "GL_GEOMETRY_SHADER\0" + "GL_GEOMETRY_VERTICES_OUT_ARB\0" + "GL_GEOMETRY_INPUT_TYPE_ARB\0" + "GL_GEOMETRY_OUTPUT_TYPE_ARB\0" + "GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB\0" + "GL_MAX_VERTEX_VARYING_COMPONENTS_ARB\0" + "GL_MAX_GEOMETRY_UNIFORM_COMPONENTS\0" + "GL_MAX_GEOMETRY_OUTPUT_VERTICES\0" + "GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS\0" + "GL_ACTIVE_SUBROUTINES\0" + "GL_ACTIVE_SUBROUTINE_UNIFORMS\0" + "GL_MAX_SUBROUTINES\0" + "GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS\0" + "GL_LOW_FLOAT\0" + "GL_MEDIUM_FLOAT\0" + "GL_HIGH_FLOAT\0" + "GL_LOW_INT\0" + "GL_MEDIUM_INT\0" + "GL_HIGH_INT\0" + "GL_UNSIGNED_INT_10_10_10_2_OES\0" + "GL_INT_10_10_10_2_OES\0" + "GL_SHADER_BINARY_FORMATS\0" + "GL_NUM_SHADER_BINARY_FORMATS\0" + "GL_SHADER_COMPILER\0" + "GL_MAX_VERTEX_UNIFORM_VECTORS\0" + "GL_MAX_VARYING_VECTORS\0" + "GL_MAX_FRAGMENT_UNIFORM_VECTORS\0" + "GL_QUERY_WAIT\0" + "GL_QUERY_NO_WAIT\0" + "GL_QUERY_BY_REGION_WAIT\0" + "GL_QUERY_BY_REGION_NO_WAIT\0" + "GL_QUERY_WAIT_INVERTED\0" + "GL_QUERY_NO_WAIT_INVERTED\0" + "GL_QUERY_BY_REGION_WAIT_INVERTED\0" + "GL_QUERY_BY_REGION_NO_WAIT_INVERTED\0" + "GL_POLYGON_OFFSET_CLAMP_EXT\0" + "GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS\0" + "GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS\0" + "GL_TRANSFORM_FEEDBACK\0" + "GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED\0" + "GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE\0" + "GL_TRANSFORM_FEEDBACK_BINDING\0" + "GL_TIMESTAMP\0" + "GL_TEXTURE_SWIZZLE_R\0" + "GL_TEXTURE_SWIZZLE_G\0" + "GL_TEXTURE_SWIZZLE_B\0" + "GL_TEXTURE_SWIZZLE_A\0" + "GL_TEXTURE_SWIZZLE_RGBA\0" + "GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS\0" + "GL_ACTIVE_SUBROUTINE_MAX_LENGTH\0" + "GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH\0" + "GL_NUM_COMPATIBLE_SUBROUTINES\0" + "GL_COMPATIBLE_SUBROUTINES\0" + "GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION\0" + "GL_FIRST_VERTEX_CONVENTION\0" + "GL_LAST_VERTEX_CONVENTION\0" + "GL_PROVOKING_VERTEX\0" + "GL_SAMPLE_POSITION\0" + "GL_SAMPLE_MASK\0" + "GL_SAMPLE_MASK_VALUE\0" + "GL_MAX_SAMPLE_MASK_WORDS\0" + "GL_MAX_GEOMETRY_SHADER_INVOCATIONS\0" + "GL_MIN_FRAGMENT_INTERPOLATION_OFFSET\0" + "GL_MAX_FRAGMENT_INTERPOLATION_OFFSET\0" + "GL_FRAGMENT_INTERPOLATION_OFFSET_BITS\0" + "GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET\0" + "GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET\0" + "GL_MAX_TRANSFORM_FEEDBACK_BUFFERS\0" + "GL_MAX_VERTEX_STREAMS\0" + "GL_PATCH_VERTICES\0" + "GL_PATCH_DEFAULT_INNER_LEVEL\0" + "GL_PATCH_DEFAULT_OUTER_LEVEL\0" + "GL_TESS_CONTROL_OUTPUT_VERTICES\0" + "GL_TESS_GEN_MODE\0" + "GL_TESS_GEN_SPACING\0" + "GL_TESS_GEN_VERTEX_ORDER\0" + "GL_TESS_GEN_POINT_MODE\0" + "GL_ISOLINES\0" + "GL_FRACTIONAL_ODD\0" + "GL_FRACTIONAL_EVEN\0" + "GL_MAX_PATCH_VERTICES\0" + "GL_MAX_TESS_GEN_LEVEL\0" + "GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS\0" + "GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS\0" + "GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS\0" + "GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS\0" + "GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS\0" + "GL_MAX_TESS_PATCH_COMPONENTS\0" + "GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS\0" + "GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS\0" + "GL_TESS_EVALUATION_SHADER\0" + "GL_TESS_CONTROL_SHADER\0" + "GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS\0" + "GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS\0" + "GL_COPY_READ_BUFFER\0" + "GL_COPY_WRITE_BUFFER\0" + "GL_MAX_IMAGE_UNITS\0" + "GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS\0" + "GL_IMAGE_BINDING_NAME\0" + "GL_IMAGE_BINDING_LEVEL\0" + "GL_IMAGE_BINDING_LAYERED\0" + "GL_IMAGE_BINDING_LAYER\0" + "GL_IMAGE_BINDING_ACCESS\0" + "GL_DRAW_INDIRECT_BUFFER\0" + "GL_DRAW_INDIRECT_BUFFER_BINDING\0" + "GL_DOUBLE_MAT2\0" + "GL_DOUBLE_MAT3\0" + "GL_DOUBLE_MAT4\0" + "GL_DOUBLE_MAT2x3\0" + "GL_DOUBLE_MAT2x4\0" + "GL_DOUBLE_MAT3x2\0" + "GL_DOUBLE_MAT3x4\0" + "GL_DOUBLE_MAT4x2\0" + "GL_DOUBLE_MAT4x3\0" + "GL_RED_SNORM\0" + "GL_RG_SNORM\0" + "GL_RGB_SNORM\0" + "GL_RGBA_SNORM\0" + "GL_R8_SNORM\0" + "GL_RG8_SNORM\0" + "GL_RGB8_SNORM\0" + "GL_RGBA8_SNORM\0" + "GL_R16_SNORM\0" + "GL_RG16_SNORM\0" + "GL_RGB16_SNORM\0" + "GL_RGBA16_SNORM\0" + "GL_SIGNED_NORMALIZED\0" + "GL_PRIMITIVE_RESTART\0" + "GL_PRIMITIVE_RESTART_INDEX\0" + "GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB\0" + "GL_DOUBLE_VEC2\0" + "GL_DOUBLE_VEC3\0" + "GL_DOUBLE_VEC4\0" + "GL_TEXTURE_CUBE_MAP_ARRAY_ARB\0" + "GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB\0" + "GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB\0" + "GL_SAMPLER_CUBE_MAP_ARRAY_ARB\0" + "GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB\0" + "GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB\0" + "GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB\0" + "GL_IMAGE_1D\0" + "GL_IMAGE_2D\0" + "GL_IMAGE_3D\0" + "GL_IMAGE_2D_RECT\0" + "GL_IMAGE_CUBE\0" + "GL_IMAGE_BUFFER\0" + "GL_IMAGE_1D_ARRAY\0" + "GL_IMAGE_2D_ARRAY\0" + "GL_IMAGE_CUBE_MAP_ARRAY\0" + "GL_IMAGE_2D_MULTISAMPLE\0" + "GL_IMAGE_2D_MULTISAMPLE_ARRAY\0" + "GL_INT_IMAGE_1D\0" + "GL_INT_IMAGE_2D\0" + "GL_INT_IMAGE_3D\0" + "GL_INT_IMAGE_2D_RECT\0" + "GL_INT_IMAGE_CUBE\0" + "GL_INT_IMAGE_BUFFER\0" + "GL_INT_IMAGE_1D_ARRAY\0" + "GL_INT_IMAGE_2D_ARRAY\0" + "GL_INT_IMAGE_CUBE_MAP_ARRAY\0" + "GL_INT_IMAGE_2D_MULTISAMPLE\0" + "GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY\0" + "GL_UNSIGNED_INT_IMAGE_1D\0" + "GL_UNSIGNED_INT_IMAGE_2D\0" + "GL_UNSIGNED_INT_IMAGE_3D\0" + "GL_UNSIGNED_INT_IMAGE_2D_RECT\0" + "GL_UNSIGNED_INT_IMAGE_CUBE\0" + "GL_UNSIGNED_INT_IMAGE_BUFFER\0" + "GL_UNSIGNED_INT_IMAGE_1D_ARRAY\0" + "GL_UNSIGNED_INT_IMAGE_2D_ARRAY\0" + "GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY\0" + "GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE\0" + "GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY\0" + "GL_MAX_IMAGE_SAMPLES\0" + "GL_IMAGE_BINDING_FORMAT\0" + "GL_RGB10_A2UI\0" + "GL_MIN_MAP_BUFFER_ALIGNMENT\0" + "GL_IMAGE_FORMAT_COMPATIBILITY_TYPE\0" + "GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE\0" + "GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS\0" + "GL_MAX_VERTEX_IMAGE_UNIFORMS\0" + "GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS\0" + "GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS\0" + "GL_MAX_GEOMETRY_IMAGE_UNIFORMS\0" + "GL_MAX_FRAGMENT_IMAGE_UNIFORMS\0" + "GL_MAX_COMBINED_IMAGE_UNIFORMS\0" + "GL_DEPTH_STENCIL_TEXTURE_MODE\0" + "GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS\0" + "GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER\0" + "GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER\0" + "GL_DISPATCH_INDIRECT_BUFFER\0" + "GL_DISPATCH_INDIRECT_BUFFER_BINDING\0" + "GL_TEXTURE_2D_MULTISAMPLE\0" + "GL_PROXY_TEXTURE_2D_MULTISAMPLE\0" + "GL_TEXTURE_2D_MULTISAMPLE_ARRAY\0" + "GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY\0" + "GL_TEXTURE_BINDING_2D_MULTISAMPLE\0" + "GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY\0" + "GL_TEXTURE_SAMPLES\0" + "GL_TEXTURE_FIXED_SAMPLE_LOCATIONS\0" + "GL_SAMPLER_2D_MULTISAMPLE\0" + "GL_INT_SAMPLER_2D_MULTISAMPLE\0" + "GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE\0" + "GL_SAMPLER_2D_MULTISAMPLE_ARRAY\0" + "GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY\0" + "GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY\0" + "GL_MAX_COLOR_TEXTURE_SAMPLES\0" + "GL_MAX_DEPTH_TEXTURE_SAMPLES\0" + "GL_MAX_INTEGER_SAMPLES\0" + "GL_MAX_SERVER_WAIT_TIMEOUT\0" + "GL_OBJECT_TYPE\0" + "GL_SYNC_CONDITION\0" + "GL_SYNC_STATUS\0" + "GL_SYNC_FLAGS\0" + "GL_SYNC_FENCE\0" + "GL_SYNC_GPU_COMMANDS_COMPLETE\0" + "GL_UNSIGNALED\0" + "GL_SIGNALED\0" + "GL_ALREADY_SIGNALED\0" + "GL_TIMEOUT_EXPIRED\0" + "GL_CONDITION_SATISFIED\0" + "GL_WAIT_FAILED\0" + "GL_BUFFER_ACCESS_FLAGS\0" + "GL_BUFFER_MAP_LENGTH\0" + "GL_BUFFER_MAP_OFFSET\0" + "GL_MAX_VERTEX_OUTPUT_COMPONENTS\0" + "GL_MAX_GEOMETRY_INPUT_COMPONENTS\0" + "GL_MAX_GEOMETRY_OUTPUT_COMPONENTS\0" + "GL_MAX_FRAGMENT_INPUT_COMPONENTS\0" + "GL_CONTEXT_PROFILE_MASK\0" + "GL_UNPACK_COMPRESSED_BLOCK_WIDTH\0" + "GL_UNPACK_COMPRESSED_BLOCK_HEIGHT\0" + "GL_UNPACK_COMPRESSED_BLOCK_DEPTH\0" + "GL_UNPACK_COMPRESSED_BLOCK_SIZE\0" + "GL_PACK_COMPRESSED_BLOCK_WIDTH\0" + "GL_PACK_COMPRESSED_BLOCK_HEIGHT\0" + "GL_PACK_COMPRESSED_BLOCK_DEPTH\0" + "GL_PACK_COMPRESSED_BLOCK_SIZE\0" + "GL_TEXTURE_IMMUTABLE_FORMAT\0" + "GL_MAX_DEBUG_MESSAGE_LENGTH_ARB\0" + "GL_MAX_DEBUG_LOGGED_MESSAGES_ARB\0" + "GL_DEBUG_LOGGED_MESSAGES_ARB\0" + "GL_DEBUG_SEVERITY_HIGH_ARB\0" + "GL_DEBUG_SEVERITY_MEDIUM_ARB\0" + "GL_DEBUG_SEVERITY_LOW_ARB\0" + "GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD\0" + "GL_TEXTURE_BUFFER_OFFSET\0" + "GL_TEXTURE_BUFFER_SIZE\0" + "GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT\0" + "GL_COMPUTE_SHADER\0" + "GL_MAX_COMPUTE_UNIFORM_BLOCKS\0" + "GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS\0" + "GL_MAX_COMPUTE_IMAGE_UNIFORMS\0" + "GL_MAX_COMPUTE_WORK_GROUP_COUNT\0" + "GL_MAX_COMPUTE_WORK_GROUP_SIZE\0" + "GL_COMPRESSED_R11_EAC\0" + "GL_COMPRESSED_SIGNED_R11_EAC\0" + "GL_COMPRESSED_RG11_EAC\0" + "GL_COMPRESSED_SIGNED_RG11_EAC\0" + "GL_COMPRESSED_RGB8_ETC2\0" + "GL_COMPRESSED_SRGB8_ETC2\0" + "GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2\0" + "GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2\0" + "GL_COMPRESSED_RGBA8_ETC2_EAC\0" + "GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC\0" + "GL_ATOMIC_COUNTER_BUFFER\0" + "GL_ATOMIC_COUNTER_BUFFER_BINDING\0" + "GL_ATOMIC_COUNTER_BUFFER_START\0" + "GL_ATOMIC_COUNTER_BUFFER_SIZE\0" + "GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE\0" + "GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS\0" + "GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES\0" + "GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER\0" + "GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER\0" + "GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER\0" + "GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER\0" + "GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER\0" + "GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS\0" + "GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS\0" + "GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS\0" + "GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS\0" + "GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS\0" + "GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS\0" + "GL_MAX_VERTEX_ATOMIC_COUNTERS\0" + "GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS\0" + "GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS\0" + "GL_MAX_GEOMETRY_ATOMIC_COUNTERS\0" + "GL_MAX_FRAGMENT_ATOMIC_COUNTERS\0" + "GL_MAX_COMBINED_ATOMIC_COUNTERS\0" + "GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE\0" + "GL_ACTIVE_ATOMIC_COUNTER_BUFFERS\0" + "GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX\0" + "GL_UNSIGNED_INT_ATOMIC_COUNTER\0" + "GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS\0" + "GL_DEBUG_OUTPUT\0" + "GL_UNIFORM\0" + "GL_UNIFORM_BLOCK\0" + "GL_PROGRAM_INPUT\0" + "GL_PROGRAM_OUTPUT\0" + "GL_BUFFER_VARIABLE\0" + "GL_SHADER_STORAGE_BLOCK\0" + "GL_IS_PER_PATCH\0" + "GL_VERTEX_SUBROUTINE\0" + "GL_TESS_CONTROL_SUBROUTINE\0" + "GL_TESS_EVALUATION_SUBROUTINE\0" + "GL_GEOMETRY_SUBROUTINE\0" + "GL_FRAGMENT_SUBROUTINE\0" + "GL_COMPUTE_SUBROUTINE\0" + "GL_VERTEX_SUBROUTINE_UNIFORM\0" + "GL_TESS_CONTROL_SUBROUTINE_UNIFORM\0" + "GL_TESS_EVALUATION_SUBROUTINE_UNIFORM\0" + "GL_GEOMETRY_SUBROUTINE_UNIFORM\0" + "GL_FRAGMENT_SUBROUTINE_UNIFORM\0" + "GL_COMPUTE_SUBROUTINE_UNIFORM\0" + "GL_TRANSFORM_FEEDBACK_VARYING\0" + "GL_ACTIVE_RESOURCES\0" + "GL_MAX_NAME_LENGTH\0" + "GL_MAX_NUM_ACTIVE_VARIABLES\0" + "GL_MAX_NUM_COMPATIBLE_SUBROUTINES\0" + "GL_NAME_LENGTH\0" + "GL_TYPE\0" + "GL_ARRAY_SIZE\0" + "GL_OFFSET\0" + "GL_BLOCK_INDEX\0" + "GL_ARRAY_STRIDE\0" + "GL_MATRIX_STRIDE\0" + "GL_IS_ROW_MAJOR\0" + "GL_ATOMIC_COUNTER_BUFFER_INDEX\0" + "GL_BUFFER_BINDING\0" + "GL_BUFFER_DATA_SIZE\0" + "GL_NUM_ACTIVE_VARIABLES\0" + "GL_ACTIVE_VARIABLES\0" + "GL_REFERENCED_BY_VERTEX_SHADER\0" + "GL_REFERENCED_BY_TESS_CONTROL_SHADER\0" + "GL_REFERENCED_BY_TESS_EVALUATION_SHADER\0" + "GL_REFERENCED_BY_GEOMETRY_SHADER\0" + "GL_REFERENCED_BY_FRAGMENT_SHADER\0" + "GL_REFERENCED_BY_COMPUTE_SHADER\0" + "GL_TOP_LEVEL_ARRAY_SIZE\0" + "GL_TOP_LEVEL_ARRAY_STRIDE\0" + "GL_LOCATION\0" + "GL_LOCATION_INDEX\0" + "GL_FRAMEBUFFER_DEFAULT_WIDTH\0" + "GL_FRAMEBUFFER_DEFAULT_HEIGHT\0" + "GL_FRAMEBUFFER_DEFAULT_LAYERS\0" + "GL_FRAMEBUFFER_DEFAULT_SAMPLES\0" + "GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS\0" + "GL_MAX_FRAMEBUFFER_WIDTH\0" + "GL_MAX_FRAMEBUFFER_HEIGHT\0" + "GL_MAX_FRAMEBUFFER_LAYERS\0" + "GL_MAX_FRAMEBUFFER_SAMPLES\0" + "GL_CLIP_ORIGIN\0" + "GL_CLIP_DEPTH_MODE\0" + "GL_NEGATIVE_ONE_TO_ONE\0" + "GL_ZERO_TO_ONE\0" + "GL_CLEAR_TEXTURE\0" + "GL_NUM_SAMPLE_COUNTS\0" + "GL_PERFQUERY_COUNTER_EVENT_INTEL\0" + "GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL\0" + "GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL\0" + "GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL\0" + "GL_PERFQUERY_COUNTER_RAW_INTEL\0" + "GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL\0" + "GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL\0" + "GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL\0" + "GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL\0" + "GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL\0" + "GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL\0" + "GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL\0" + "GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL\0" + "GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL\0" + "GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL\0" + "GL_EVAL_BIT\0" + "GL_RASTER_POSITION_UNCLIPPED_IBM\0" + "GL_LIST_BIT\0" + "GL_TEXTURE_BIT\0" + "GL_SCISSOR_BIT\0" + "GL_ALL_ATTRIB_BITS\0" + "GL_MULTISAMPLE_BIT\0" + "GL_ALL_CLIENT_ATTRIB_BITS\0" + ; -static const enum_elt enum_string_table_offsets[3654] = +static const enum_elt enum_string_table_offsets[2152] = { - { 0, 0x00000000 }, /* GL_NO_ERROR */ - { 12, 0x00000001 }, /* GL_TRUE */ - { 20, 0x00000002 }, /* GL_LINE_LOOP */ - { 33, 0x00000003 }, /* GL_LINE_STRIP */ - { 47, 0x00000004 }, /* GL_TRIANGLES */ - { 60, 0x00000005 }, /* GL_TRIANGLE_STRIP */ - { 78, 0x00000006 }, /* GL_TRIANGLE_FAN */ - { 94, 0x00000007 }, /* GL_QUADS */ - { 103, 0x00000008 }, /* GL_QUAD_STRIP */ - { 117, 0x00000009 }, /* GL_POLYGON */ - { 128, 0x0000000A }, /* GL_LINES_ADJACENCY */ - { 147, 0x0000000B }, /* GL_LINE_STRIP_ADJACENCY */ - { 171, 0x0000000C }, /* GL_TRIANGLES_ADJACENCY */ - { 194, 0x0000000D }, /* GL_TRIANGLE_STRIP_ADJACENCY */ - { 222, 0x0000000E }, /* GL_PATCHES */ - { 233, 0x0000000F }, /* GL_ALPHA_REF_COMMAND_NV */ - { 257, 0x00000010 }, /* GL_VIEWPORT_COMMAND_NV */ - { 280, 0x00000011 }, /* GL_SCISSOR_COMMAND_NV */ - { 302, 0x00000012 }, /* GL_FRONT_FACE_COMMAND_NV */ - { 327, 0x00000013 }, /* GL_RELATIVE_SMALL_CCW_ARC_TO_NV */ - { 359, 0x00000014 }, /* GL_SMALL_CW_ARC_TO_NV */ - { 381, 0x00000015 }, /* GL_RELATIVE_SMALL_CW_ARC_TO_NV */ - { 412, 0x00000016 }, /* GL_UUID_SIZE_EXT */ - { 429, 0x00000017 }, /* GL_RELATIVE_LARGE_CCW_ARC_TO_NV */ - { 461, 0x00000018 }, /* GL_LARGE_CW_ARC_TO_NV */ - { 483, 0x00000019 }, /* GL_RELATIVE_LARGE_CW_ARC_TO_NV */ - { 514, 0x0000001A }, /* GL_CONIC_CURVE_TO_NV */ - { 535, 0x0000001B }, /* GL_RELATIVE_CONIC_CURVE_TO_NV */ - { 565, 0x000000C0 }, /* GL_SHARED_EDGE_NV */ - { 583, 0x000000E8 }, /* GL_ROUNDED_RECT_NV */ - { 602, 0x000000E9 }, /* GL_RELATIVE_ROUNDED_RECT_NV */ - { 630, 0x000000EA }, /* GL_ROUNDED_RECT2_NV */ - { 650, 0x000000EB }, /* GL_RELATIVE_ROUNDED_RECT2_NV */ - { 679, 0x000000EC }, /* GL_ROUNDED_RECT4_NV */ - { 699, 0x000000ED }, /* GL_RELATIVE_ROUNDED_RECT4_NV */ - { 728, 0x000000EE }, /* GL_ROUNDED_RECT8_NV */ - { 748, 0x000000EF }, /* GL_RELATIVE_ROUNDED_RECT8_NV */ - { 777, 0x000000F0 }, /* GL_RESTART_PATH_NV */ - { 796, 0x000000F2 }, /* GL_DUP_FIRST_CUBIC_CURVE_TO_NV */ - { 827, 0x000000F4 }, /* GL_DUP_LAST_CUBIC_CURVE_TO_NV */ - { 857, 0x000000F6 }, /* GL_RECT_NV */ - { 868, 0x000000F7 }, /* GL_RELATIVE_RECT_NV */ - { 888, 0x000000F8 }, /* GL_CIRCULAR_CCW_ARC_TO_NV */ - { 914, 0x000000FA }, /* GL_CIRCULAR_CW_ARC_TO_NV */ - { 939, 0x000000FC }, /* GL_CIRCULAR_TANGENT_ARC_TO_NV */ - { 969, 0x000000FE }, /* GL_ARC_TO_NV */ - { 982, 0x000000FF }, /* GL_RELATIVE_ARC_TO_NV */ - { 1004, 0x00000100 }, /* GL_ACCUM */ - { 1013, 0x00000101 }, /* GL_LOAD */ - { 1021, 0x00000102 }, /* GL_RETURN */ - { 1031, 0x00000103 }, /* GL_MULT */ - { 1039, 0x00000104 }, /* GL_ADD */ - { 1046, 0x00000200 }, /* GL_NEVER */ - { 1055, 0x00000201 }, /* GL_LESS */ - { 1063, 0x00000202 }, /* GL_EQUAL */ - { 1072, 0x00000203 }, /* GL_LEQUAL */ - { 1082, 0x00000204 }, /* GL_GREATER */ - { 1093, 0x00000205 }, /* GL_NOTEQUAL */ - { 1105, 0x00000206 }, /* GL_GEQUAL */ - { 1115, 0x00000207 }, /* GL_ALWAYS */ - { 1125, 0x00000300 }, /* GL_SRC_COLOR */ - { 1138, 0x00000301 }, /* GL_ONE_MINUS_SRC_COLOR */ - { 1161, 0x00000302 }, /* GL_SRC_ALPHA */ - { 1174, 0x00000303 }, /* GL_ONE_MINUS_SRC_ALPHA */ - { 1197, 0x00000304 }, /* GL_DST_ALPHA */ - { 1210, 0x00000305 }, /* GL_ONE_MINUS_DST_ALPHA */ - { 1233, 0x00000306 }, /* GL_DST_COLOR */ - { 1246, 0x00000307 }, /* GL_ONE_MINUS_DST_COLOR */ - { 1269, 0x00000308 }, /* GL_SRC_ALPHA_SATURATE */ - { 1291, 0x00000400 }, /* GL_FRONT_LEFT */ - { 1305, 0x00000401 }, /* GL_FRONT_RIGHT */ - { 1320, 0x00000402 }, /* GL_BACK_LEFT */ - { 1333, 0x00000403 }, /* GL_BACK_RIGHT */ - { 1347, 0x00000404 }, /* GL_FRONT */ - { 1356, 0x00000405 }, /* GL_BACK */ - { 1364, 0x00000406 }, /* GL_LEFT */ - { 1372, 0x00000407 }, /* GL_RIGHT */ - { 1381, 0x00000408 }, /* GL_FRONT_AND_BACK */ - { 1399, 0x00000409 }, /* GL_AUX0 */ - { 1407, 0x0000040A }, /* GL_AUX1 */ - { 1415, 0x0000040B }, /* GL_AUX2 */ - { 1423, 0x0000040C }, /* GL_AUX3 */ - { 1431, 0x00000500 }, /* GL_INVALID_ENUM */ - { 1447, 0x00000501 }, /* GL_INVALID_VALUE */ - { 1464, 0x00000502 }, /* GL_INVALID_OPERATION */ - { 1485, 0x00000503 }, /* GL_STACK_OVERFLOW */ - { 1503, 0x00000504 }, /* GL_STACK_UNDERFLOW */ - { 1522, 0x00000505 }, /* GL_OUT_OF_MEMORY */ - { 1539, 0x00000506 }, /* GL_INVALID_FRAMEBUFFER_OPERATION */ - { 1572, 0x00000507 }, /* GL_CONTEXT_LOST */ - { 1588, 0x00000600 }, /* GL_2D */ - { 1594, 0x00000601 }, /* GL_3D */ - { 1600, 0x00000602 }, /* GL_3D_COLOR */ - { 1612, 0x00000603 }, /* GL_3D_COLOR_TEXTURE */ - { 1632, 0x00000604 }, /* GL_4D_COLOR_TEXTURE */ - { 1652, 0x00000700 }, /* GL_PASS_THROUGH_TOKEN */ - { 1674, 0x00000701 }, /* GL_POINT_TOKEN */ - { 1689, 0x00000702 }, /* GL_LINE_TOKEN */ - { 1703, 0x00000703 }, /* GL_POLYGON_TOKEN */ - { 1720, 0x00000704 }, /* GL_BITMAP_TOKEN */ - { 1736, 0x00000705 }, /* GL_DRAW_PIXEL_TOKEN */ - { 1756, 0x00000706 }, /* GL_COPY_PIXEL_TOKEN */ - { 1776, 0x00000707 }, /* GL_LINE_RESET_TOKEN */ - { 1796, 0x00000800 }, /* GL_EXP */ - { 1803, 0x00000801 }, /* GL_EXP2 */ - { 1811, 0x00000900 }, /* GL_CW */ - { 1817, 0x00000901 }, /* GL_CCW */ - { 1824, 0x00000A00 }, /* GL_COEFF */ - { 1833, 0x00000A01 }, /* GL_ORDER */ - { 1842, 0x00000A02 }, /* GL_DOMAIN */ - { 1852, 0x00000B00 }, /* GL_CURRENT_COLOR */ - { 1869, 0x00000B01 }, /* GL_CURRENT_INDEX */ - { 1886, 0x00000B02 }, /* GL_CURRENT_NORMAL */ - { 1904, 0x00000B03 }, /* GL_CURRENT_TEXTURE_COORDS */ - { 1930, 0x00000B04 }, /* GL_CURRENT_RASTER_COLOR */ - { 1954, 0x00000B05 }, /* GL_CURRENT_RASTER_INDEX */ - { 1978, 0x00000B06 }, /* GL_CURRENT_RASTER_TEXTURE_COORDS */ - { 2011, 0x00000B07 }, /* GL_CURRENT_RASTER_POSITION */ - { 2038, 0x00000B08 }, /* GL_CURRENT_RASTER_POSITION_VALID */ - { 2071, 0x00000B09 }, /* GL_CURRENT_RASTER_DISTANCE */ - { 2098, 0x00000B10 }, /* GL_POINT_SMOOTH */ - { 2114, 0x00000B11 }, /* GL_POINT_SIZE */ - { 2128, 0x00000B12 }, /* GL_SMOOTH_POINT_SIZE_RANGE */ - { 2155, 0x00000B13 }, /* GL_SMOOTH_POINT_SIZE_GRANULARITY */ - { 2188, 0x00000B20 }, /* GL_LINE_SMOOTH */ - { 2203, 0x00000B21 }, /* GL_LINE_WIDTH */ - { 2217, 0x00000B22 }, /* GL_SMOOTH_LINE_WIDTH_RANGE */ - { 2244, 0x00000B23 }, /* GL_SMOOTH_LINE_WIDTH_GRANULARITY */ - { 2277, 0x00000B24 }, /* GL_LINE_STIPPLE */ - { 2293, 0x00000B25 }, /* GL_LINE_STIPPLE_PATTERN */ - { 2317, 0x00000B26 }, /* GL_LINE_STIPPLE_REPEAT */ - { 2340, 0x00000B30 }, /* GL_LIST_MODE */ - { 2353, 0x00000B31 }, /* GL_MAX_LIST_NESTING */ - { 2373, 0x00000B32 }, /* GL_LIST_BASE */ - { 2386, 0x00000B33 }, /* GL_LIST_INDEX */ - { 2400, 0x00000B40 }, /* GL_POLYGON_MODE */ - { 2416, 0x00000B41 }, /* GL_POLYGON_SMOOTH */ - { 2434, 0x00000B42 }, /* GL_POLYGON_STIPPLE */ - { 2453, 0x00000B43 }, /* GL_EDGE_FLAG */ - { 2466, 0x00000B44 }, /* GL_CULL_FACE */ - { 2479, 0x00000B45 }, /* GL_CULL_FACE_MODE */ - { 2497, 0x00000B46 }, /* GL_FRONT_FACE */ - { 2511, 0x00000B50 }, /* GL_LIGHTING */ - { 2523, 0x00000B51 }, /* GL_LIGHT_MODEL_LOCAL_VIEWER */ - { 2551, 0x00000B52 }, /* GL_LIGHT_MODEL_TWO_SIDE */ - { 2575, 0x00000B53 }, /* GL_LIGHT_MODEL_AMBIENT */ - { 2598, 0x00000B54 }, /* GL_SHADE_MODEL */ - { 2613, 0x00000B55 }, /* GL_COLOR_MATERIAL_FACE */ - { 2636, 0x00000B56 }, /* GL_COLOR_MATERIAL_PARAMETER */ - { 2664, 0x00000B57 }, /* GL_COLOR_MATERIAL */ - { 2682, 0x00000B60 }, /* GL_FOG */ - { 2689, 0x00000B61 }, /* GL_FOG_INDEX */ - { 2702, 0x00000B62 }, /* GL_FOG_DENSITY */ - { 2717, 0x00000B63 }, /* GL_FOG_START */ - { 2730, 0x00000B64 }, /* GL_FOG_END */ - { 2741, 0x00000B65 }, /* GL_FOG_MODE */ - { 2753, 0x00000B66 }, /* GL_FOG_COLOR */ - { 2766, 0x00000B70 }, /* GL_DEPTH_RANGE */ - { 2781, 0x00000B71 }, /* GL_DEPTH_TEST */ - { 2795, 0x00000B72 }, /* GL_DEPTH_WRITEMASK */ - { 2814, 0x00000B73 }, /* GL_DEPTH_CLEAR_VALUE */ - { 2835, 0x00000B74 }, /* GL_DEPTH_FUNC */ - { 2849, 0x00000B80 }, /* GL_ACCUM_CLEAR_VALUE */ - { 2870, 0x00000B90 }, /* GL_STENCIL_TEST */ - { 2886, 0x00000B91 }, /* GL_STENCIL_CLEAR_VALUE */ - { 2909, 0x00000B92 }, /* GL_STENCIL_FUNC */ - { 2925, 0x00000B93 }, /* GL_STENCIL_VALUE_MASK */ - { 2947, 0x00000B94 }, /* GL_STENCIL_FAIL */ - { 2963, 0x00000B95 }, /* GL_STENCIL_PASS_DEPTH_FAIL */ - { 2990, 0x00000B96 }, /* GL_STENCIL_PASS_DEPTH_PASS */ - { 3017, 0x00000B97 }, /* GL_STENCIL_REF */ - { 3032, 0x00000B98 }, /* GL_STENCIL_WRITEMASK */ - { 3053, 0x00000BA0 }, /* GL_MATRIX_MODE */ - { 3068, 0x00000BA1 }, /* GL_NORMALIZE */ - { 3081, 0x00000BA2 }, /* GL_VIEWPORT */ - { 3093, 0x00000BA3 }, /* GL_MODELVIEW_STACK_DEPTH */ - { 3118, 0x00000BA4 }, /* GL_PROJECTION_STACK_DEPTH */ - { 3144, 0x00000BA5 }, /* GL_TEXTURE_STACK_DEPTH */ - { 3167, 0x00000BA6 }, /* GL_MODELVIEW_MATRIX */ - { 3187, 0x00000BA7 }, /* GL_PROJECTION_MATRIX */ - { 3208, 0x00000BA8 }, /* GL_TEXTURE_MATRIX */ - { 3226, 0x00000BB0 }, /* GL_ATTRIB_STACK_DEPTH */ - { 3248, 0x00000BB1 }, /* GL_CLIENT_ATTRIB_STACK_DEPTH */ - { 3277, 0x00000BC0 }, /* GL_ALPHA_TEST */ - { 3291, 0x00000BC1 }, /* GL_ALPHA_TEST_FUNC */ - { 3310, 0x00000BC2 }, /* GL_ALPHA_TEST_REF */ - { 3328, 0x00000BD0 }, /* GL_DITHER */ - { 3338, 0x00000BE0 }, /* GL_BLEND_DST */ - { 3351, 0x00000BE1 }, /* GL_BLEND_SRC */ - { 3364, 0x00000BE2 }, /* GL_BLEND */ - { 3373, 0x00000BF0 }, /* GL_LOGIC_OP_MODE */ - { 3390, 0x00000BF1 }, /* GL_INDEX_LOGIC_OP */ - { 3408, 0x00000BF2 }, /* GL_COLOR_LOGIC_OP */ - { 3426, 0x00000C00 }, /* GL_AUX_BUFFERS */ - { 3441, 0x00000C01 }, /* GL_DRAW_BUFFER */ - { 3456, 0x00000C02 }, /* GL_READ_BUFFER */ - { 3471, 0x00000C10 }, /* GL_SCISSOR_BOX */ - { 3486, 0x00000C11 }, /* GL_SCISSOR_TEST */ - { 3502, 0x00000C20 }, /* GL_INDEX_CLEAR_VALUE */ - { 3523, 0x00000C21 }, /* GL_INDEX_WRITEMASK */ - { 3542, 0x00000C22 }, /* GL_COLOR_CLEAR_VALUE */ - { 3563, 0x00000C23 }, /* GL_COLOR_WRITEMASK */ - { 3582, 0x00000C30 }, /* GL_INDEX_MODE */ - { 3596, 0x00000C31 }, /* GL_RGBA_MODE */ - { 3609, 0x00000C32 }, /* GL_DOUBLEBUFFER */ - { 3625, 0x00000C33 }, /* GL_STEREO */ - { 3635, 0x00000C40 }, /* GL_RENDER_MODE */ - { 3650, 0x00000C50 }, /* GL_PERSPECTIVE_CORRECTION_HINT */ - { 3681, 0x00000C51 }, /* GL_POINT_SMOOTH_HINT */ - { 3702, 0x00000C52 }, /* GL_LINE_SMOOTH_HINT */ - { 3722, 0x00000C53 }, /* GL_POLYGON_SMOOTH_HINT */ - { 3745, 0x00000C54 }, /* GL_FOG_HINT */ - { 3757, 0x00000C60 }, /* GL_TEXTURE_GEN_S */ - { 3774, 0x00000C61 }, /* GL_TEXTURE_GEN_T */ - { 3791, 0x00000C62 }, /* GL_TEXTURE_GEN_R */ - { 3808, 0x00000C63 }, /* GL_TEXTURE_GEN_Q */ - { 3825, 0x00000C70 }, /* GL_PIXEL_MAP_I_TO_I */ - { 3845, 0x00000C71 }, /* GL_PIXEL_MAP_S_TO_S */ - { 3865, 0x00000C72 }, /* GL_PIXEL_MAP_I_TO_R */ - { 3885, 0x00000C73 }, /* GL_PIXEL_MAP_I_TO_G */ - { 3905, 0x00000C74 }, /* GL_PIXEL_MAP_I_TO_B */ - { 3925, 0x00000C75 }, /* GL_PIXEL_MAP_I_TO_A */ - { 3945, 0x00000C76 }, /* GL_PIXEL_MAP_R_TO_R */ - { 3965, 0x00000C77 }, /* GL_PIXEL_MAP_G_TO_G */ - { 3985, 0x00000C78 }, /* GL_PIXEL_MAP_B_TO_B */ - { 4005, 0x00000C79 }, /* GL_PIXEL_MAP_A_TO_A */ - { 4025, 0x00000CB0 }, /* GL_PIXEL_MAP_I_TO_I_SIZE */ - { 4050, 0x00000CB1 }, /* GL_PIXEL_MAP_S_TO_S_SIZE */ - { 4075, 0x00000CB2 }, /* GL_PIXEL_MAP_I_TO_R_SIZE */ - { 4100, 0x00000CB3 }, /* GL_PIXEL_MAP_I_TO_G_SIZE */ - { 4125, 0x00000CB4 }, /* GL_PIXEL_MAP_I_TO_B_SIZE */ - { 4150, 0x00000CB5 }, /* GL_PIXEL_MAP_I_TO_A_SIZE */ - { 4175, 0x00000CB6 }, /* GL_PIXEL_MAP_R_TO_R_SIZE */ - { 4200, 0x00000CB7 }, /* GL_PIXEL_MAP_G_TO_G_SIZE */ - { 4225, 0x00000CB8 }, /* GL_PIXEL_MAP_B_TO_B_SIZE */ - { 4250, 0x00000CB9 }, /* GL_PIXEL_MAP_A_TO_A_SIZE */ - { 4275, 0x00000CF0 }, /* GL_UNPACK_SWAP_BYTES */ - { 4296, 0x00000CF1 }, /* GL_UNPACK_LSB_FIRST */ - { 4316, 0x00000CF2 }, /* GL_UNPACK_ROW_LENGTH */ - { 4337, 0x00000CF3 }, /* GL_UNPACK_SKIP_ROWS */ - { 4357, 0x00000CF4 }, /* GL_UNPACK_SKIP_PIXELS */ - { 4379, 0x00000CF5 }, /* GL_UNPACK_ALIGNMENT */ - { 4399, 0x00000D00 }, /* GL_PACK_SWAP_BYTES */ - { 4418, 0x00000D01 }, /* GL_PACK_LSB_FIRST */ - { 4436, 0x00000D02 }, /* GL_PACK_ROW_LENGTH */ - { 4455, 0x00000D03 }, /* GL_PACK_SKIP_ROWS */ - { 4473, 0x00000D04 }, /* GL_PACK_SKIP_PIXELS */ - { 4493, 0x00000D05 }, /* GL_PACK_ALIGNMENT */ - { 4511, 0x00000D10 }, /* GL_MAP_COLOR */ - { 4524, 0x00000D11 }, /* GL_MAP_STENCIL */ - { 4539, 0x00000D12 }, /* GL_INDEX_SHIFT */ - { 4554, 0x00000D13 }, /* GL_INDEX_OFFSET */ - { 4570, 0x00000D14 }, /* GL_RED_SCALE */ - { 4583, 0x00000D15 }, /* GL_RED_BIAS */ - { 4595, 0x00000D16 }, /* GL_ZOOM_X */ - { 4605, 0x00000D17 }, /* GL_ZOOM_Y */ - { 4615, 0x00000D18 }, /* GL_GREEN_SCALE */ - { 4630, 0x00000D19 }, /* GL_GREEN_BIAS */ - { 4644, 0x00000D1A }, /* GL_BLUE_SCALE */ - { 4658, 0x00000D1B }, /* GL_BLUE_BIAS */ - { 4671, 0x00000D1C }, /* GL_ALPHA_SCALE */ - { 4686, 0x00000D1D }, /* GL_ALPHA_BIAS */ - { 4700, 0x00000D1E }, /* GL_DEPTH_SCALE */ - { 4715, 0x00000D1F }, /* GL_DEPTH_BIAS */ - { 4729, 0x00000D30 }, /* GL_MAX_EVAL_ORDER */ - { 4747, 0x00000D31 }, /* GL_MAX_LIGHTS */ - { 4761, 0x00000D32 }, /* GL_MAX_CLIP_DISTANCES */ - { 4783, 0x00000D33 }, /* GL_MAX_TEXTURE_SIZE */ - { 4803, 0x00000D34 }, /* GL_MAX_PIXEL_MAP_TABLE */ - { 4826, 0x00000D35 }, /* GL_MAX_ATTRIB_STACK_DEPTH */ - { 4852, 0x00000D36 }, /* GL_MAX_MODELVIEW_STACK_DEPTH */ - { 4881, 0x00000D37 }, /* GL_MAX_NAME_STACK_DEPTH */ - { 4905, 0x00000D38 }, /* GL_MAX_PROJECTION_STACK_DEPTH */ - { 4935, 0x00000D39 }, /* GL_MAX_TEXTURE_STACK_DEPTH */ - { 4962, 0x00000D3A }, /* GL_MAX_VIEWPORT_DIMS */ - { 4983, 0x00000D3B }, /* GL_MAX_CLIENT_ATTRIB_STACK_DEPTH */ - { 5016, 0x00000D50 }, /* GL_SUBPIXEL_BITS */ - { 5033, 0x00000D51 }, /* GL_INDEX_BITS */ - { 5047, 0x00000D52 }, /* GL_RED_BITS */ - { 5059, 0x00000D53 }, /* GL_GREEN_BITS */ - { 5073, 0x00000D54 }, /* GL_BLUE_BITS */ - { 5086, 0x00000D55 }, /* GL_ALPHA_BITS */ - { 5100, 0x00000D56 }, /* GL_DEPTH_BITS */ - { 5114, 0x00000D57 }, /* GL_STENCIL_BITS */ - { 5130, 0x00000D58 }, /* GL_ACCUM_RED_BITS */ - { 5148, 0x00000D59 }, /* GL_ACCUM_GREEN_BITS */ - { 5168, 0x00000D5A }, /* GL_ACCUM_BLUE_BITS */ - { 5187, 0x00000D5B }, /* GL_ACCUM_ALPHA_BITS */ - { 5207, 0x00000D70 }, /* GL_NAME_STACK_DEPTH */ - { 5227, 0x00000D80 }, /* GL_AUTO_NORMAL */ - { 5242, 0x00000D90 }, /* GL_MAP1_COLOR_4 */ - { 5258, 0x00000D91 }, /* GL_MAP1_INDEX */ - { 5272, 0x00000D92 }, /* GL_MAP1_NORMAL */ - { 5287, 0x00000D93 }, /* GL_MAP1_TEXTURE_COORD_1 */ - { 5311, 0x00000D94 }, /* GL_MAP1_TEXTURE_COORD_2 */ - { 5335, 0x00000D95 }, /* GL_MAP1_TEXTURE_COORD_3 */ - { 5359, 0x00000D96 }, /* GL_MAP1_TEXTURE_COORD_4 */ - { 5383, 0x00000D97 }, /* GL_MAP1_VERTEX_3 */ - { 5400, 0x00000D98 }, /* GL_MAP1_VERTEX_4 */ - { 5417, 0x00000DB0 }, /* GL_MAP2_COLOR_4 */ - { 5433, 0x00000DB1 }, /* GL_MAP2_INDEX */ - { 5447, 0x00000DB2 }, /* GL_MAP2_NORMAL */ - { 5462, 0x00000DB3 }, /* GL_MAP2_TEXTURE_COORD_1 */ - { 5486, 0x00000DB4 }, /* GL_MAP2_TEXTURE_COORD_2 */ - { 5510, 0x00000DB5 }, /* GL_MAP2_TEXTURE_COORD_3 */ - { 5534, 0x00000DB6 }, /* GL_MAP2_TEXTURE_COORD_4 */ - { 5558, 0x00000DB7 }, /* GL_MAP2_VERTEX_3 */ - { 5575, 0x00000DB8 }, /* GL_MAP2_VERTEX_4 */ - { 5592, 0x00000DD0 }, /* GL_MAP1_GRID_DOMAIN */ - { 5612, 0x00000DD1 }, /* GL_MAP1_GRID_SEGMENTS */ - { 5634, 0x00000DD2 }, /* GL_MAP2_GRID_DOMAIN */ - { 5654, 0x00000DD3 }, /* GL_MAP2_GRID_SEGMENTS */ - { 5676, 0x00000DE0 }, /* GL_TEXTURE_1D */ - { 5690, 0x00000DE1 }, /* GL_TEXTURE_2D */ - { 5704, 0x00000DF0 }, /* GL_FEEDBACK_BUFFER_POINTER */ - { 5731, 0x00000DF1 }, /* GL_FEEDBACK_BUFFER_SIZE */ - { 5755, 0x00000DF2 }, /* GL_FEEDBACK_BUFFER_TYPE */ - { 5779, 0x00000DF3 }, /* GL_SELECTION_BUFFER_POINTER */ - { 5807, 0x00000DF4 }, /* GL_SELECTION_BUFFER_SIZE */ - { 5832, 0x00001000 }, /* GL_TEXTURE_WIDTH */ - { 5849, 0x00001001 }, /* GL_TEXTURE_HEIGHT */ - { 5867, 0x00001003 }, /* GL_TEXTURE_INTERNAL_FORMAT */ - { 5894, 0x00001004 }, /* GL_TEXTURE_BORDER_COLOR */ - { 5918, 0x00001005 }, /* GL_TEXTURE_BORDER */ - { 5936, 0x00001006 }, /* GL_TEXTURE_TARGET */ - { 5954, 0x00001100 }, /* GL_DONT_CARE */ - { 5967, 0x00001101 }, /* GL_FASTEST */ - { 5978, 0x00001102 }, /* GL_NICEST */ - { 5988, 0x00001200 }, /* GL_AMBIENT */ - { 5999, 0x00001201 }, /* GL_DIFFUSE */ - { 6010, 0x00001202 }, /* GL_SPECULAR */ - { 6022, 0x00001203 }, /* GL_POSITION */ - { 6034, 0x00001204 }, /* GL_SPOT_DIRECTION */ - { 6052, 0x00001205 }, /* GL_SPOT_EXPONENT */ - { 6069, 0x00001206 }, /* GL_SPOT_CUTOFF */ - { 6084, 0x00001207 }, /* GL_CONSTANT_ATTENUATION */ - { 6108, 0x00001208 }, /* GL_LINEAR_ATTENUATION */ - { 6130, 0x00001209 }, /* GL_QUADRATIC_ATTENUATION */ - { 6155, 0x00001300 }, /* GL_COMPILE */ - { 6166, 0x00001301 }, /* GL_COMPILE_AND_EXECUTE */ - { 6189, 0x00001400 }, /* GL_BYTE */ - { 6197, 0x00001401 }, /* GL_UNSIGNED_BYTE */ - { 6214, 0x00001402 }, /* GL_SHORT */ - { 6223, 0x00001403 }, /* GL_UNSIGNED_SHORT */ - { 6241, 0x00001404 }, /* GL_INT */ - { 6248, 0x00001405 }, /* GL_UNSIGNED_INT */ - { 6264, 0x00001406 }, /* GL_FLOAT */ - { 6273, 0x00001407 }, /* GL_2_BYTES */ - { 6284, 0x00001408 }, /* GL_3_BYTES */ - { 6295, 0x00001409 }, /* GL_4_BYTES */ - { 6306, 0x0000140A }, /* GL_DOUBLE */ - { 6316, 0x0000140B }, /* GL_HALF_FLOAT */ - { 6330, 0x0000140C }, /* GL_FIXED */ - { 6339, 0x0000140E }, /* GL_INT64_ARB */ - { 6352, 0x0000140F }, /* GL_UNSIGNED_INT64_ARB */ - { 6374, 0x00001500 }, /* GL_CLEAR */ - { 6383, 0x00001501 }, /* GL_AND */ - { 6390, 0x00001502 }, /* GL_AND_REVERSE */ - { 6405, 0x00001503 }, /* GL_COPY */ - { 6413, 0x00001504 }, /* GL_AND_INVERTED */ - { 6429, 0x00001505 }, /* GL_NOOP */ - { 6437, 0x00001506 }, /* GL_XOR */ - { 6444, 0x00001507 }, /* GL_OR */ - { 6450, 0x00001508 }, /* GL_NOR */ - { 6457, 0x00001509 }, /* GL_EQUIV */ - { 6466, 0x0000150A }, /* GL_INVERT */ - { 6476, 0x0000150B }, /* GL_OR_REVERSE */ - { 6490, 0x0000150C }, /* GL_COPY_INVERTED */ - { 6507, 0x0000150D }, /* GL_OR_INVERTED */ - { 6522, 0x0000150E }, /* GL_NAND */ - { 6530, 0x0000150F }, /* GL_SET */ - { 6537, 0x00001600 }, /* GL_EMISSION */ - { 6549, 0x00001601 }, /* GL_SHININESS */ - { 6562, 0x00001602 }, /* GL_AMBIENT_AND_DIFFUSE */ - { 6585, 0x00001603 }, /* GL_COLOR_INDEXES */ - { 6602, 0x00001700 }, /* GL_MODELVIEW */ - { 6615, 0x00001701 }, /* GL_PROJECTION */ - { 6629, 0x00001702 }, /* GL_TEXTURE */ - { 6640, 0x00001800 }, /* GL_COLOR */ - { 6649, 0x00001801 }, /* GL_DEPTH */ - { 6658, 0x00001802 }, /* GL_STENCIL */ - { 6669, 0x00001900 }, /* GL_COLOR_INDEX */ - { 6684, 0x00001901 }, /* GL_STENCIL_INDEX */ - { 6701, 0x00001902 }, /* GL_DEPTH_COMPONENT */ - { 6720, 0x00001903 }, /* GL_RED */ - { 6727, 0x00001904 }, /* GL_GREEN */ - { 6736, 0x00001905 }, /* GL_BLUE */ - { 6744, 0x00001906 }, /* GL_ALPHA */ - { 6753, 0x00001907 }, /* GL_RGB */ - { 6760, 0x00001908 }, /* GL_RGBA */ - { 6768, 0x00001909 }, /* GL_LUMINANCE */ - { 6781, 0x0000190A }, /* GL_LUMINANCE_ALPHA */ - { 6800, 0x00001A00 }, /* GL_BITMAP */ - { 6810, 0x00001B00 }, /* GL_POINT */ - { 6819, 0x00001B01 }, /* GL_LINE */ - { 6827, 0x00001B02 }, /* GL_FILL */ - { 6835, 0x00001C00 }, /* GL_RENDER */ - { 6845, 0x00001C01 }, /* GL_FEEDBACK */ - { 6857, 0x00001C02 }, /* GL_SELECT */ - { 6867, 0x00001D00 }, /* GL_FLAT */ - { 6875, 0x00001D01 }, /* GL_SMOOTH */ - { 6885, 0x00001E00 }, /* GL_KEEP */ - { 6893, 0x00001E01 }, /* GL_REPLACE */ - { 6904, 0x00001E02 }, /* GL_INCR */ - { 6912, 0x00001E03 }, /* GL_DECR */ - { 6920, 0x00001F00 }, /* GL_VENDOR */ - { 6930, 0x00001F01 }, /* GL_RENDERER */ - { 6942, 0x00001F02 }, /* GL_VERSION */ - { 6953, 0x00001F03 }, /* GL_EXTENSIONS */ - { 6967, 0x00002000 }, /* GL_S */ - { 6972, 0x00002001 }, /* GL_T */ - { 6977, 0x00002002 }, /* GL_R */ - { 6982, 0x00002003 }, /* GL_Q */ - { 6987, 0x00002100 }, /* GL_MODULATE */ - { 6999, 0x00002101 }, /* GL_DECAL */ - { 7008, 0x00002200 }, /* GL_TEXTURE_ENV_MODE */ - { 7028, 0x00002201 }, /* GL_TEXTURE_ENV_COLOR */ - { 7049, 0x00002300 }, /* GL_TEXTURE_ENV */ - { 7064, 0x00002400 }, /* GL_EYE_LINEAR */ - { 7078, 0x00002401 }, /* GL_OBJECT_LINEAR */ - { 7095, 0x00002402 }, /* GL_SPHERE_MAP */ - { 7109, 0x00002500 }, /* GL_TEXTURE_GEN_MODE */ - { 7129, 0x00002501 }, /* GL_OBJECT_PLANE */ - { 7145, 0x00002502 }, /* GL_EYE_PLANE */ - { 7158, 0x00002600 }, /* GL_NEAREST */ - { 7169, 0x00002601 }, /* GL_LINEAR */ - { 7179, 0x00002700 }, /* GL_NEAREST_MIPMAP_NEAREST */ - { 7205, 0x00002701 }, /* GL_LINEAR_MIPMAP_NEAREST */ - { 7230, 0x00002702 }, /* GL_NEAREST_MIPMAP_LINEAR */ - { 7255, 0x00002703 }, /* GL_LINEAR_MIPMAP_LINEAR */ - { 7279, 0x00002800 }, /* GL_TEXTURE_MAG_FILTER */ - { 7301, 0x00002801 }, /* GL_TEXTURE_MIN_FILTER */ - { 7323, 0x00002802 }, /* GL_TEXTURE_WRAP_S */ - { 7341, 0x00002803 }, /* GL_TEXTURE_WRAP_T */ - { 7359, 0x00002900 }, /* GL_CLAMP */ - { 7368, 0x00002901 }, /* GL_REPEAT */ - { 7378, 0x00002A00 }, /* GL_POLYGON_OFFSET_UNITS */ - { 7402, 0x00002A01 }, /* GL_POLYGON_OFFSET_POINT */ - { 7426, 0x00002A02 }, /* GL_POLYGON_OFFSET_LINE */ - { 7449, 0x00002A10 }, /* GL_R3_G3_B2 */ - { 7461, 0x00002A20 }, /* GL_V2F */ - { 7468, 0x00002A21 }, /* GL_V3F */ - { 7475, 0x00002A22 }, /* GL_C4UB_V2F */ - { 7487, 0x00002A23 }, /* GL_C4UB_V3F */ - { 7499, 0x00002A24 }, /* GL_C3F_V3F */ - { 7510, 0x00002A25 }, /* GL_N3F_V3F */ - { 7521, 0x00002A26 }, /* GL_C4F_N3F_V3F */ - { 7536, 0x00002A27 }, /* GL_T2F_V3F */ - { 7547, 0x00002A28 }, /* GL_T4F_V4F */ - { 7558, 0x00002A29 }, /* GL_T2F_C4UB_V3F */ - { 7574, 0x00002A2A }, /* GL_T2F_C3F_V3F */ - { 7589, 0x00002A2B }, /* GL_T2F_N3F_V3F */ - { 7604, 0x00002A2C }, /* GL_T2F_C4F_N3F_V3F */ - { 7623, 0x00002A2D }, /* GL_T4F_C4F_N3F_V4F */ - { 7642, 0x00003000 }, /* GL_CLIP_DISTANCE0 */ - { 7660, 0x00003001 }, /* GL_CLIP_DISTANCE1 */ - { 7678, 0x00003002 }, /* GL_CLIP_DISTANCE2 */ - { 7696, 0x00003003 }, /* GL_CLIP_DISTANCE3 */ - { 7714, 0x00003004 }, /* GL_CLIP_DISTANCE4 */ - { 7732, 0x00003005 }, /* GL_CLIP_DISTANCE5 */ - { 7750, 0x00003006 }, /* GL_CLIP_DISTANCE6 */ - { 7768, 0x00003007 }, /* GL_CLIP_DISTANCE7 */ - { 7786, 0x00004000 }, /* GL_LIGHT0 */ - { 7796, 0x00004001 }, /* GL_LIGHT1 */ - { 7806, 0x00004002 }, /* GL_LIGHT2 */ - { 7816, 0x00004003 }, /* GL_LIGHT3 */ - { 7826, 0x00004004 }, /* GL_LIGHT4 */ - { 7836, 0x00004005 }, /* GL_LIGHT5 */ - { 7846, 0x00004006 }, /* GL_LIGHT6 */ - { 7856, 0x00004007 }, /* GL_LIGHT7 */ - { 7866, 0x00008000 }, /* GL_ABGR_EXT */ - { 7878, 0x00008001 }, /* GL_CONSTANT_COLOR */ - { 7896, 0x00008002 }, /* GL_ONE_MINUS_CONSTANT_COLOR */ - { 7924, 0x00008003 }, /* GL_CONSTANT_ALPHA */ - { 7942, 0x00008004 }, /* GL_ONE_MINUS_CONSTANT_ALPHA */ - { 7970, 0x00008005 }, /* GL_BLEND_COLOR */ - { 7985, 0x00008006 }, /* GL_FUNC_ADD */ - { 7997, 0x00008007 }, /* GL_MIN */ - { 8004, 0x00008008 }, /* GL_MAX */ - { 8011, 0x00008009 }, /* GL_BLEND_EQUATION_RGB */ - { 8033, 0x0000800A }, /* GL_FUNC_SUBTRACT */ - { 8050, 0x0000800B }, /* GL_FUNC_REVERSE_SUBTRACT */ - { 8075, 0x0000800C }, /* GL_CMYK_EXT */ - { 8087, 0x0000800D }, /* GL_CMYKA_EXT */ - { 8100, 0x0000800E }, /* GL_PACK_CMYK_HINT_EXT */ - { 8122, 0x0000800F }, /* GL_UNPACK_CMYK_HINT_EXT */ - { 8146, 0x00008010 }, /* GL_CONVOLUTION_1D */ - { 8164, 0x00008011 }, /* GL_CONVOLUTION_2D */ - { 8182, 0x00008012 }, /* GL_SEPARABLE_2D */ - { 8198, 0x00008013 }, /* GL_CONVOLUTION_BORDER_MODE */ - { 8225, 0x00008014 }, /* GL_CONVOLUTION_FILTER_SCALE */ - { 8253, 0x00008015 }, /* GL_CONVOLUTION_FILTER_BIAS */ - { 8280, 0x00008016 }, /* GL_REDUCE */ - { 8290, 0x00008017 }, /* GL_CONVOLUTION_FORMAT */ - { 8312, 0x00008018 }, /* GL_CONVOLUTION_WIDTH */ - { 8333, 0x00008019 }, /* GL_CONVOLUTION_HEIGHT */ - { 8355, 0x0000801A }, /* GL_MAX_CONVOLUTION_WIDTH */ - { 8380, 0x0000801B }, /* GL_MAX_CONVOLUTION_HEIGHT */ - { 8406, 0x0000801C }, /* GL_POST_CONVOLUTION_RED_SCALE */ - { 8436, 0x0000801D }, /* GL_POST_CONVOLUTION_GREEN_SCALE */ - { 8468, 0x0000801E }, /* GL_POST_CONVOLUTION_BLUE_SCALE */ - { 8499, 0x0000801F }, /* GL_POST_CONVOLUTION_ALPHA_SCALE */ - { 8531, 0x00008020 }, /* GL_POST_CONVOLUTION_RED_BIAS */ - { 8560, 0x00008021 }, /* GL_POST_CONVOLUTION_GREEN_BIAS */ - { 8591, 0x00008022 }, /* GL_POST_CONVOLUTION_BLUE_BIAS */ - { 8621, 0x00008023 }, /* GL_POST_CONVOLUTION_ALPHA_BIAS */ - { 8652, 0x00008024 }, /* GL_HISTOGRAM */ - { 8665, 0x00008025 }, /* GL_PROXY_HISTOGRAM */ - { 8684, 0x00008026 }, /* GL_HISTOGRAM_WIDTH */ - { 8703, 0x00008027 }, /* GL_HISTOGRAM_FORMAT */ - { 8723, 0x00008028 }, /* GL_HISTOGRAM_RED_SIZE */ - { 8745, 0x00008029 }, /* GL_HISTOGRAM_GREEN_SIZE */ - { 8769, 0x0000802A }, /* GL_HISTOGRAM_BLUE_SIZE */ - { 8792, 0x0000802B }, /* GL_HISTOGRAM_ALPHA_SIZE */ - { 8816, 0x0000802C }, /* GL_HISTOGRAM_LUMINANCE_SIZE */ - { 8844, 0x0000802D }, /* GL_HISTOGRAM_SINK */ - { 8862, 0x0000802E }, /* GL_MINMAX */ - { 8872, 0x0000802F }, /* GL_MINMAX_FORMAT */ - { 8889, 0x00008030 }, /* GL_MINMAX_SINK */ - { 8904, 0x00008031 }, /* GL_TABLE_TOO_LARGE */ - { 8923, 0x00008032 }, /* GL_UNSIGNED_BYTE_3_3_2 */ - { 8946, 0x00008033 }, /* GL_UNSIGNED_SHORT_4_4_4_4 */ - { 8972, 0x00008034 }, /* GL_UNSIGNED_SHORT_5_5_5_1 */ - { 8998, 0x00008035 }, /* GL_UNSIGNED_INT_8_8_8_8 */ - { 9022, 0x00008036 }, /* GL_UNSIGNED_INT_10_10_10_2 */ - { 9049, 0x00008037 }, /* GL_POLYGON_OFFSET_FILL */ - { 9072, 0x00008038 }, /* GL_POLYGON_OFFSET_FACTOR */ - { 9097, 0x00008039 }, /* GL_POLYGON_OFFSET_BIAS_EXT */ - { 9124, 0x0000803A }, /* GL_RESCALE_NORMAL */ - { 9142, 0x0000803B }, /* GL_ALPHA4 */ - { 9152, 0x0000803C }, /* GL_ALPHA8 */ - { 9162, 0x0000803D }, /* GL_ALPHA12 */ - { 9173, 0x0000803E }, /* GL_ALPHA16 */ - { 9184, 0x0000803F }, /* GL_LUMINANCE4 */ - { 9198, 0x00008040 }, /* GL_LUMINANCE8 */ - { 9212, 0x00008041 }, /* GL_LUMINANCE12 */ - { 9227, 0x00008042 }, /* GL_LUMINANCE16 */ - { 9242, 0x00008043 }, /* GL_LUMINANCE4_ALPHA4 */ - { 9263, 0x00008044 }, /* GL_LUMINANCE6_ALPHA2 */ - { 9284, 0x00008045 }, /* GL_LUMINANCE8_ALPHA8 */ - { 9305, 0x00008046 }, /* GL_LUMINANCE12_ALPHA4 */ - { 9327, 0x00008047 }, /* GL_LUMINANCE12_ALPHA12 */ - { 9350, 0x00008048 }, /* GL_LUMINANCE16_ALPHA16 */ - { 9373, 0x00008049 }, /* GL_INTENSITY */ - { 9386, 0x0000804A }, /* GL_INTENSITY4 */ - { 9400, 0x0000804B }, /* GL_INTENSITY8 */ - { 9414, 0x0000804C }, /* GL_INTENSITY12 */ - { 9429, 0x0000804D }, /* GL_INTENSITY16 */ - { 9444, 0x0000804E }, /* GL_RGB2_EXT */ - { 9456, 0x0000804F }, /* GL_RGB4 */ - { 9464, 0x00008050 }, /* GL_RGB5 */ - { 9472, 0x00008051 }, /* GL_RGB8 */ - { 9480, 0x00008052 }, /* GL_RGB10 */ - { 9489, 0x00008053 }, /* GL_RGB12 */ - { 9498, 0x00008054 }, /* GL_RGB16 */ - { 9507, 0x00008055 }, /* GL_RGBA2 */ - { 9516, 0x00008056 }, /* GL_RGBA4 */ - { 9525, 0x00008057 }, /* GL_RGB5_A1 */ - { 9536, 0x00008058 }, /* GL_RGBA8 */ - { 9545, 0x00008059 }, /* GL_RGB10_A2 */ - { 9557, 0x0000805A }, /* GL_RGBA12 */ - { 9567, 0x0000805B }, /* GL_RGBA16 */ - { 9577, 0x0000805C }, /* GL_TEXTURE_RED_SIZE */ - { 9597, 0x0000805D }, /* GL_TEXTURE_GREEN_SIZE */ - { 9619, 0x0000805E }, /* GL_TEXTURE_BLUE_SIZE */ - { 9640, 0x0000805F }, /* GL_TEXTURE_ALPHA_SIZE */ - { 9662, 0x00008060 }, /* GL_TEXTURE_LUMINANCE_SIZE */ - { 9688, 0x00008061 }, /* GL_TEXTURE_INTENSITY_SIZE */ - { 9714, 0x00008062 }, /* GL_REPLACE_EXT */ - { 9729, 0x00008063 }, /* GL_PROXY_TEXTURE_1D */ - { 9749, 0x00008064 }, /* GL_PROXY_TEXTURE_2D */ - { 9769, 0x00008065 }, /* GL_TEXTURE_TOO_LARGE_EXT */ - { 9794, 0x00008066 }, /* GL_TEXTURE_PRIORITY */ - { 9814, 0x00008067 }, /* GL_TEXTURE_RESIDENT */ - { 9834, 0x00008068 }, /* GL_TEXTURE_BINDING_1D */ - { 9856, 0x00008069 }, /* GL_TEXTURE_BINDING_2D */ - { 9878, 0x0000806A }, /* GL_TEXTURE_BINDING_3D */ - { 9900, 0x0000806B }, /* GL_PACK_SKIP_IMAGES */ - { 9920, 0x0000806C }, /* GL_PACK_IMAGE_HEIGHT */ - { 9941, 0x0000806D }, /* GL_UNPACK_SKIP_IMAGES */ - { 9963, 0x0000806E }, /* GL_UNPACK_IMAGE_HEIGHT */ - { 9986, 0x0000806F }, /* GL_TEXTURE_3D */ - { 10000, 0x00008070 }, /* GL_PROXY_TEXTURE_3D */ - { 10020, 0x00008071 }, /* GL_TEXTURE_DEPTH */ - { 10037, 0x00008072 }, /* GL_TEXTURE_WRAP_R */ - { 10055, 0x00008073 }, /* GL_MAX_3D_TEXTURE_SIZE */ - { 10078, 0x00008074 }, /* GL_VERTEX_ARRAY */ - { 10094, 0x00008075 }, /* GL_NORMAL_ARRAY */ - { 10110, 0x00008076 }, /* GL_COLOR_ARRAY */ - { 10125, 0x00008077 }, /* GL_INDEX_ARRAY */ - { 10140, 0x00008078 }, /* GL_TEXTURE_COORD_ARRAY */ - { 10163, 0x00008079 }, /* GL_EDGE_FLAG_ARRAY */ - { 10182, 0x0000807A }, /* GL_VERTEX_ARRAY_SIZE */ - { 10203, 0x0000807B }, /* GL_VERTEX_ARRAY_TYPE */ - { 10224, 0x0000807C }, /* GL_VERTEX_ARRAY_STRIDE */ - { 10247, 0x0000807D }, /* GL_VERTEX_ARRAY_COUNT_EXT */ - { 10273, 0x0000807E }, /* GL_NORMAL_ARRAY_TYPE */ - { 10294, 0x0000807F }, /* GL_NORMAL_ARRAY_STRIDE */ - { 10317, 0x00008080 }, /* GL_NORMAL_ARRAY_COUNT_EXT */ - { 10343, 0x00008081 }, /* GL_COLOR_ARRAY_SIZE */ - { 10363, 0x00008082 }, /* GL_COLOR_ARRAY_TYPE */ - { 10383, 0x00008083 }, /* GL_COLOR_ARRAY_STRIDE */ - { 10405, 0x00008084 }, /* GL_COLOR_ARRAY_COUNT_EXT */ - { 10430, 0x00008085 }, /* GL_INDEX_ARRAY_TYPE */ - { 10450, 0x00008086 }, /* GL_INDEX_ARRAY_STRIDE */ - { 10472, 0x00008087 }, /* GL_INDEX_ARRAY_COUNT_EXT */ - { 10497, 0x00008088 }, /* GL_TEXTURE_COORD_ARRAY_SIZE */ - { 10525, 0x00008089 }, /* GL_TEXTURE_COORD_ARRAY_TYPE */ - { 10553, 0x0000808A }, /* GL_TEXTURE_COORD_ARRAY_STRIDE */ - { 10583, 0x0000808B }, /* GL_TEXTURE_COORD_ARRAY_COUNT_EXT */ - { 10616, 0x0000808C }, /* GL_EDGE_FLAG_ARRAY_STRIDE */ - { 10642, 0x0000808D }, /* GL_EDGE_FLAG_ARRAY_COUNT_EXT */ - { 10671, 0x0000808E }, /* GL_VERTEX_ARRAY_POINTER */ - { 10695, 0x0000808F }, /* GL_NORMAL_ARRAY_POINTER */ - { 10719, 0x00008090 }, /* GL_COLOR_ARRAY_POINTER */ - { 10742, 0x00008091 }, /* GL_INDEX_ARRAY_POINTER */ - { 10765, 0x00008092 }, /* GL_TEXTURE_COORD_ARRAY_POINTER */ - { 10796, 0x00008093 }, /* GL_EDGE_FLAG_ARRAY_POINTER */ - { 10823, 0x00008094 }, /* GL_INTERLACE_SGIX */ - { 10841, 0x00008095 }, /* GL_DETAIL_TEXTURE_2D_SGIS */ - { 10867, 0x00008096 }, /* GL_DETAIL_TEXTURE_2D_BINDING_SGIS */ - { 10901, 0x00008097 }, /* GL_LINEAR_DETAIL_SGIS */ - { 10923, 0x00008098 }, /* GL_LINEAR_DETAIL_ALPHA_SGIS */ - { 10951, 0x00008099 }, /* GL_LINEAR_DETAIL_COLOR_SGIS */ - { 10979, 0x0000809A }, /* GL_DETAIL_TEXTURE_LEVEL_SGIS */ - { 11008, 0x0000809B }, /* GL_DETAIL_TEXTURE_MODE_SGIS */ - { 11036, 0x0000809C }, /* GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS */ - { 11071, 0x0000809D }, /* GL_MULTISAMPLE */ - { 11086, 0x0000809E }, /* GL_SAMPLE_ALPHA_TO_COVERAGE */ - { 11114, 0x0000809F }, /* GL_SAMPLE_ALPHA_TO_ONE */ - { 11137, 0x000080A0 }, /* GL_SAMPLE_COVERAGE */ - { 11156, 0x000080A1 }, /* GL_1PASS_EXT */ - { 11169, 0x000080A2 }, /* GL_2PASS_0_EXT */ - { 11184, 0x000080A3 }, /* GL_2PASS_1_EXT */ - { 11199, 0x000080A4 }, /* GL_4PASS_0_EXT */ - { 11214, 0x000080A5 }, /* GL_4PASS_1_EXT */ - { 11229, 0x000080A6 }, /* GL_4PASS_2_EXT */ - { 11244, 0x000080A7 }, /* GL_4PASS_3_EXT */ - { 11259, 0x000080A8 }, /* GL_SAMPLE_BUFFERS */ - { 11277, 0x000080A9 }, /* GL_SAMPLES */ - { 11288, 0x000080AA }, /* GL_SAMPLE_COVERAGE_VALUE */ - { 11313, 0x000080AB }, /* GL_SAMPLE_COVERAGE_INVERT */ - { 11339, 0x000080AC }, /* GL_SAMPLE_PATTERN_EXT */ - { 11361, 0x000080AD }, /* GL_LINEAR_SHARPEN_SGIS */ - { 11384, 0x000080AE }, /* GL_LINEAR_SHARPEN_ALPHA_SGIS */ - { 11413, 0x000080AF }, /* GL_LINEAR_SHARPEN_COLOR_SGIS */ - { 11442, 0x000080B0 }, /* GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS */ - { 11478, 0x000080B1 }, /* GL_COLOR_MATRIX */ - { 11494, 0x000080B2 }, /* GL_COLOR_MATRIX_STACK_DEPTH */ - { 11522, 0x000080B3 }, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH */ - { 11554, 0x000080B4 }, /* GL_POST_COLOR_MATRIX_RED_SCALE */ - { 11585, 0x000080B5 }, /* GL_POST_COLOR_MATRIX_GREEN_SCALE */ - { 11618, 0x000080B6 }, /* GL_POST_COLOR_MATRIX_BLUE_SCALE */ - { 11650, 0x000080B7 }, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE */ - { 11683, 0x000080B8 }, /* GL_POST_COLOR_MATRIX_RED_BIAS */ - { 11713, 0x000080B9 }, /* GL_POST_COLOR_MATRIX_GREEN_BIAS */ - { 11745, 0x000080BA }, /* GL_POST_COLOR_MATRIX_BLUE_BIAS */ - { 11776, 0x000080BB }, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS */ - { 11808, 0x000080BC }, /* GL_TEXTURE_COLOR_TABLE_SGI */ - { 11835, 0x000080BD }, /* GL_PROXY_TEXTURE_COLOR_TABLE_SGI */ - { 11868, 0x000080BE }, /* GL_TEXTURE_ENV_BIAS_SGIX */ - { 11893, 0x000080BF }, /* GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */ - { 11927, 0x000080C8 }, /* GL_BLEND_DST_RGB */ - { 11944, 0x000080C9 }, /* GL_BLEND_SRC_RGB */ - { 11961, 0x000080CA }, /* GL_BLEND_DST_ALPHA */ - { 11980, 0x000080CB }, /* GL_BLEND_SRC_ALPHA */ - { 11999, 0x000080CC }, /* GL_422_EXT */ - { 12010, 0x000080CD }, /* GL_422_REV_EXT */ - { 12025, 0x000080CE }, /* GL_422_AVERAGE_EXT */ - { 12044, 0x000080CF }, /* GL_422_REV_AVERAGE_EXT */ - { 12067, 0x000080D0 }, /* GL_COLOR_TABLE */ - { 12082, 0x000080D1 }, /* GL_POST_CONVOLUTION_COLOR_TABLE */ - { 12114, 0x000080D2 }, /* GL_POST_COLOR_MATRIX_COLOR_TABLE */ - { 12147, 0x000080D3 }, /* GL_PROXY_COLOR_TABLE */ - { 12168, 0x000080D4 }, /* GL_PROXY_POST_CONVOLUTION_COLOR_TABLE */ - { 12206, 0x000080D5 }, /* GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE */ - { 12245, 0x000080D6 }, /* GL_COLOR_TABLE_SCALE */ - { 12266, 0x000080D7 }, /* GL_COLOR_TABLE_BIAS */ - { 12286, 0x000080D8 }, /* GL_COLOR_TABLE_FORMAT */ - { 12308, 0x000080D9 }, /* GL_COLOR_TABLE_WIDTH */ - { 12329, 0x000080DA }, /* GL_COLOR_TABLE_RED_SIZE */ - { 12353, 0x000080DB }, /* GL_COLOR_TABLE_GREEN_SIZE */ - { 12379, 0x000080DC }, /* GL_COLOR_TABLE_BLUE_SIZE */ - { 12404, 0x000080DD }, /* GL_COLOR_TABLE_ALPHA_SIZE */ - { 12430, 0x000080DE }, /* GL_COLOR_TABLE_LUMINANCE_SIZE */ - { 12460, 0x000080DF }, /* GL_COLOR_TABLE_INTENSITY_SIZE */ - { 12490, 0x000080E0 }, /* GL_BGR */ - { 12497, 0x000080E1 }, /* GL_BGRA */ - { 12505, 0x000080E2 }, /* GL_COLOR_INDEX1_EXT */ - { 12525, 0x000080E3 }, /* GL_COLOR_INDEX2_EXT */ - { 12545, 0x000080E4 }, /* GL_COLOR_INDEX4_EXT */ - { 12565, 0x000080E5 }, /* GL_COLOR_INDEX8_EXT */ - { 12585, 0x000080E6 }, /* GL_COLOR_INDEX12_EXT */ - { 12606, 0x000080E7 }, /* GL_COLOR_INDEX16_EXT */ - { 12627, 0x000080E8 }, /* GL_MAX_ELEMENTS_VERTICES */ - { 12652, 0x000080E9 }, /* GL_MAX_ELEMENTS_INDICES */ - { 12676, 0x000080EA }, /* GL_PHONG_WIN */ - { 12689, 0x000080EB }, /* GL_PHONG_HINT_WIN */ - { 12707, 0x000080EC }, /* GL_FOG_SPECULAR_TEXTURE_WIN */ - { 12735, 0x000080ED }, /* GL_TEXTURE_INDEX_SIZE_EXT */ - { 12761, 0x000080EE }, /* GL_PARAMETER_BUFFER_ARB */ - { 12785, 0x000080EF }, /* GL_PARAMETER_BUFFER_BINDING_ARB */ - { 12817, 0x000080F0 }, /* GL_CLIP_VOLUME_CLIPPING_HINT_EXT */ - { 12850, 0x00008110 }, /* GL_DUAL_ALPHA4_SGIS */ - { 12870, 0x00008111 }, /* GL_DUAL_ALPHA8_SGIS */ - { 12890, 0x00008112 }, /* GL_DUAL_ALPHA12_SGIS */ - { 12911, 0x00008113 }, /* GL_DUAL_ALPHA16_SGIS */ - { 12932, 0x00008114 }, /* GL_DUAL_LUMINANCE4_SGIS */ - { 12956, 0x00008115 }, /* GL_DUAL_LUMINANCE8_SGIS */ - { 12980, 0x00008116 }, /* GL_DUAL_LUMINANCE12_SGIS */ - { 13005, 0x00008117 }, /* GL_DUAL_LUMINANCE16_SGIS */ - { 13030, 0x00008118 }, /* GL_DUAL_INTENSITY4_SGIS */ - { 13054, 0x00008119 }, /* GL_DUAL_INTENSITY8_SGIS */ - { 13078, 0x0000811A }, /* GL_DUAL_INTENSITY12_SGIS */ - { 13103, 0x0000811B }, /* GL_DUAL_INTENSITY16_SGIS */ - { 13128, 0x0000811C }, /* GL_DUAL_LUMINANCE_ALPHA4_SGIS */ - { 13158, 0x0000811D }, /* GL_DUAL_LUMINANCE_ALPHA8_SGIS */ - { 13188, 0x0000811E }, /* GL_QUAD_ALPHA4_SGIS */ - { 13208, 0x0000811F }, /* GL_QUAD_ALPHA8_SGIS */ - { 13228, 0x00008120 }, /* GL_QUAD_LUMINANCE4_SGIS */ - { 13252, 0x00008121 }, /* GL_QUAD_LUMINANCE8_SGIS */ - { 13276, 0x00008122 }, /* GL_QUAD_INTENSITY4_SGIS */ - { 13300, 0x00008123 }, /* GL_QUAD_INTENSITY8_SGIS */ - { 13324, 0x00008124 }, /* GL_DUAL_TEXTURE_SELECT_SGIS */ - { 13352, 0x00008125 }, /* GL_QUAD_TEXTURE_SELECT_SGIS */ - { 13380, 0x00008126 }, /* GL_POINT_SIZE_MIN */ - { 13398, 0x00008127 }, /* GL_POINT_SIZE_MAX */ - { 13416, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE */ - { 13445, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION */ - { 13475, 0x0000812A }, /* GL_FOG_FUNC_SGIS */ - { 13492, 0x0000812B }, /* GL_FOG_FUNC_POINTS_SGIS */ - { 13516, 0x0000812C }, /* GL_MAX_FOG_FUNC_POINTS_SGIS */ - { 13544, 0x0000812D }, /* GL_CLAMP_TO_BORDER */ - { 13563, 0x0000812E }, /* GL_TEXTURE_MULTI_BUFFER_HINT_SGIX */ - { 13597, 0x0000812F }, /* GL_CLAMP_TO_EDGE */ - { 13614, 0x00008130 }, /* GL_PACK_SKIP_VOLUMES_SGIS */ - { 13640, 0x00008131 }, /* GL_PACK_IMAGE_DEPTH_SGIS */ - { 13665, 0x00008132 }, /* GL_UNPACK_SKIP_VOLUMES_SGIS */ - { 13693, 0x00008133 }, /* GL_UNPACK_IMAGE_DEPTH_SGIS */ - { 13720, 0x00008134 }, /* GL_TEXTURE_4D_SGIS */ - { 13739, 0x00008135 }, /* GL_PROXY_TEXTURE_4D_SGIS */ - { 13764, 0x00008136 }, /* GL_TEXTURE_4DSIZE_SGIS */ - { 13787, 0x00008137 }, /* GL_TEXTURE_WRAP_Q_SGIS */ - { 13810, 0x00008138 }, /* GL_MAX_4D_TEXTURE_SIZE_SGIS */ - { 13838, 0x00008139 }, /* GL_PIXEL_TEX_GEN_SGIX */ - { 13860, 0x0000813A }, /* GL_TEXTURE_MIN_LOD */ - { 13879, 0x0000813B }, /* GL_TEXTURE_MAX_LOD */ - { 13898, 0x0000813C }, /* GL_TEXTURE_BASE_LEVEL */ - { 13920, 0x0000813D }, /* GL_TEXTURE_MAX_LEVEL */ - { 13941, 0x0000813E }, /* GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX */ - { 13975, 0x0000813F }, /* GL_PIXEL_TILE_CACHE_INCREMENT_SGIX */ - { 14010, 0x00008140 }, /* GL_PIXEL_TILE_WIDTH_SGIX */ - { 14035, 0x00008141 }, /* GL_PIXEL_TILE_HEIGHT_SGIX */ - { 14061, 0x00008142 }, /* GL_PIXEL_TILE_GRID_WIDTH_SGIX */ - { 14091, 0x00008143 }, /* GL_PIXEL_TILE_GRID_HEIGHT_SGIX */ - { 14122, 0x00008144 }, /* GL_PIXEL_TILE_GRID_DEPTH_SGIX */ - { 14152, 0x00008145 }, /* GL_PIXEL_TILE_CACHE_SIZE_SGIX */ - { 14182, 0x00008146 }, /* GL_FILTER4_SGIS */ - { 14198, 0x00008147 }, /* GL_TEXTURE_FILTER4_SIZE_SGIS */ - { 14227, 0x00008148 }, /* GL_SPRITE_SGIX */ - { 14242, 0x00008149 }, /* GL_SPRITE_MODE_SGIX */ - { 14262, 0x0000814A }, /* GL_SPRITE_AXIS_SGIX */ - { 14282, 0x0000814B }, /* GL_SPRITE_TRANSLATION_SGIX */ - { 14309, 0x0000814C }, /* GL_SPRITE_AXIAL_SGIX */ - { 14330, 0x0000814D }, /* GL_SPRITE_OBJECT_ALIGNED_SGIX */ - { 14360, 0x0000814E }, /* GL_SPRITE_EYE_ALIGNED_SGIX */ - { 14387, 0x0000814F }, /* GL_TEXTURE_4D_BINDING_SGIS */ - { 14414, 0x00008150 }, /* GL_IGNORE_BORDER_HP */ - { 14434, 0x00008151 }, /* GL_CONSTANT_BORDER */ - { 14453, 0x00008153 }, /* GL_REPLICATE_BORDER */ - { 14473, 0x00008154 }, /* GL_CONVOLUTION_BORDER_COLOR */ - { 14501, 0x00008155 }, /* GL_IMAGE_SCALE_X_HP */ - { 14521, 0x00008156 }, /* GL_IMAGE_SCALE_Y_HP */ - { 14541, 0x00008157 }, /* GL_IMAGE_TRANSLATE_X_HP */ - { 14565, 0x00008158 }, /* GL_IMAGE_TRANSLATE_Y_HP */ - { 14589, 0x00008159 }, /* GL_IMAGE_ROTATE_ANGLE_HP */ - { 14614, 0x0000815A }, /* GL_IMAGE_ROTATE_ORIGIN_X_HP */ - { 14642, 0x0000815B }, /* GL_IMAGE_ROTATE_ORIGIN_Y_HP */ - { 14670, 0x0000815C }, /* GL_IMAGE_MAG_FILTER_HP */ - { 14693, 0x0000815D }, /* GL_IMAGE_MIN_FILTER_HP */ - { 14716, 0x0000815E }, /* GL_IMAGE_CUBIC_WEIGHT_HP */ - { 14741, 0x0000815F }, /* GL_CUBIC_HP */ - { 14753, 0x00008160 }, /* GL_AVERAGE_HP */ - { 14767, 0x00008161 }, /* GL_IMAGE_TRANSFORM_2D_HP */ - { 14792, 0x00008162 }, /* GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP */ - { 14831, 0x00008163 }, /* GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP */ - { 14876, 0x00008165 }, /* GL_OCCLUSION_TEST_HP */ - { 14897, 0x00008166 }, /* GL_OCCLUSION_TEST_RESULT_HP */ - { 14925, 0x00008167 }, /* GL_TEXTURE_LIGHTING_MODE_HP */ - { 14953, 0x00008168 }, /* GL_TEXTURE_POST_SPECULAR_HP */ - { 14981, 0x00008169 }, /* GL_TEXTURE_PRE_SPECULAR_HP */ - { 15008, 0x00008170 }, /* GL_LINEAR_CLIPMAP_LINEAR_SGIX */ - { 15038, 0x00008171 }, /* GL_TEXTURE_CLIPMAP_CENTER_SGIX */ - { 15069, 0x00008172 }, /* GL_TEXTURE_CLIPMAP_FRAME_SGIX */ - { 15099, 0x00008173 }, /* GL_TEXTURE_CLIPMAP_OFFSET_SGIX */ - { 15130, 0x00008174 }, /* GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX */ - { 15168, 0x00008175 }, /* GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX */ - { 15203, 0x00008176 }, /* GL_TEXTURE_CLIPMAP_DEPTH_SGIX */ - { 15233, 0x00008177 }, /* GL_MAX_CLIPMAP_DEPTH_SGIX */ - { 15259, 0x00008178 }, /* GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX */ - { 15293, 0x00008179 }, /* GL_POST_TEXTURE_FILTER_BIAS_SGIX */ - { 15326, 0x0000817A }, /* GL_POST_TEXTURE_FILTER_SCALE_SGIX */ - { 15360, 0x0000817B }, /* GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX */ - { 15399, 0x0000817C }, /* GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX */ - { 15439, 0x0000817D }, /* GL_REFERENCE_PLANE_SGIX */ - { 15463, 0x0000817E }, /* GL_REFERENCE_PLANE_EQUATION_SGIX */ - { 15496, 0x0000817F }, /* GL_IR_INSTRUMENT1_SGIX */ - { 15519, 0x00008180 }, /* GL_INSTRUMENT_BUFFER_POINTER_SGIX */ - { 15553, 0x00008181 }, /* GL_INSTRUMENT_MEASUREMENTS_SGIX */ - { 15585, 0x00008182 }, /* GL_LIST_PRIORITY_SGIX */ - { 15607, 0x00008183 }, /* GL_CALLIGRAPHIC_FRAGMENT_SGIX */ - { 15637, 0x0000818B }, /* GL_FRAMEZOOM_SGIX */ - { 15655, 0x0000818C }, /* GL_FRAMEZOOM_FACTOR_SGIX */ - { 15680, 0x0000818D }, /* GL_MAX_FRAMEZOOM_FACTOR_SGIX */ - { 15709, 0x0000818E }, /* GL_TEXTURE_LOD_BIAS_S_SGIX */ - { 15736, 0x0000818F }, /* GL_TEXTURE_LOD_BIAS_T_SGIX */ - { 15763, 0x00008190 }, /* GL_TEXTURE_LOD_BIAS_R_SGIX */ - { 15790, 0x00008191 }, /* GL_GENERATE_MIPMAP */ - { 15809, 0x00008192 }, /* GL_GENERATE_MIPMAP_HINT */ - { 15833, 0x00008194 }, /* GL_GEOMETRY_DEFORMATION_SGIX */ - { 15862, 0x00008195 }, /* GL_TEXTURE_DEFORMATION_SGIX */ - { 15890, 0x00008196 }, /* GL_DEFORMATIONS_MASK_SGIX */ - { 15916, 0x00008197 }, /* GL_MAX_DEFORMATION_ORDER_SGIX */ - { 15946, 0x00008198 }, /* GL_FOG_OFFSET_SGIX */ - { 15965, 0x00008199 }, /* GL_FOG_OFFSET_VALUE_SGIX */ - { 15990, 0x0000819A }, /* GL_TEXTURE_COMPARE_SGIX */ - { 16014, 0x0000819B }, /* GL_TEXTURE_COMPARE_OPERATOR_SGIX */ - { 16047, 0x0000819C }, /* GL_TEXTURE_LEQUAL_R_SGIX */ - { 16072, 0x0000819D }, /* GL_TEXTURE_GEQUAL_R_SGIX */ - { 16097, 0x000081A5 }, /* GL_DEPTH_COMPONENT16 */ - { 16118, 0x000081A6 }, /* GL_DEPTH_COMPONENT24 */ - { 16139, 0x000081A7 }, /* GL_DEPTH_COMPONENT32 */ - { 16160, 0x000081A8 }, /* GL_ARRAY_ELEMENT_LOCK_FIRST_EXT */ - { 16192, 0x000081A9 }, /* GL_ARRAY_ELEMENT_LOCK_COUNT_EXT */ - { 16224, 0x000081AA }, /* GL_CULL_VERTEX_EXT */ - { 16243, 0x000081AB }, /* GL_CULL_VERTEX_EYE_POSITION_EXT */ - { 16275, 0x000081AC }, /* GL_CULL_VERTEX_OBJECT_POSITION_EXT */ - { 16310, 0x000081AD }, /* GL_IUI_V2F_EXT */ - { 16325, 0x000081AE }, /* GL_IUI_V3F_EXT */ - { 16340, 0x000081AF }, /* GL_IUI_N3F_V2F_EXT */ - { 16359, 0x000081B0 }, /* GL_IUI_N3F_V3F_EXT */ - { 16378, 0x000081B1 }, /* GL_T2F_IUI_V2F_EXT */ - { 16397, 0x000081B2 }, /* GL_T2F_IUI_V3F_EXT */ - { 16416, 0x000081B3 }, /* GL_T2F_IUI_N3F_V2F_EXT */ - { 16439, 0x000081B4 }, /* GL_T2F_IUI_N3F_V3F_EXT */ - { 16462, 0x000081B5 }, /* GL_INDEX_TEST_EXT */ - { 16480, 0x000081B6 }, /* GL_INDEX_TEST_FUNC_EXT */ - { 16503, 0x000081B7 }, /* GL_INDEX_TEST_REF_EXT */ - { 16525, 0x000081B8 }, /* GL_INDEX_MATERIAL_EXT */ - { 16547, 0x000081B9 }, /* GL_INDEX_MATERIAL_PARAMETER_EXT */ - { 16579, 0x000081BA }, /* GL_INDEX_MATERIAL_FACE_EXT */ - { 16606, 0x000081BB }, /* GL_YCRCB_422_SGIX */ - { 16624, 0x000081BC }, /* GL_YCRCB_444_SGIX */ - { 16642, 0x000081D4 }, /* GL_WRAP_BORDER_SUN */ - { 16661, 0x000081D5 }, /* GL_UNPACK_CONSTANT_DATA_SUNX */ - { 16690, 0x000081D6 }, /* GL_TEXTURE_CONSTANT_DATA_SUNX */ - { 16720, 0x000081D7 }, /* GL_TRIANGLE_LIST_SUN */ - { 16741, 0x000081D8 }, /* GL_REPLACEMENT_CODE_SUN */ - { 16765, 0x000081D9 }, /* GL_GLOBAL_ALPHA_SUN */ - { 16785, 0x000081DA }, /* GL_GLOBAL_ALPHA_FACTOR_SUN */ - { 16812, 0x000081EF }, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */ - { 16844, 0x000081F0 }, /* GL_EYE_DISTANCE_TO_POINT_SGIS */ - { 16874, 0x000081F1 }, /* GL_OBJECT_DISTANCE_TO_POINT_SGIS */ - { 16907, 0x000081F2 }, /* GL_EYE_DISTANCE_TO_LINE_SGIS */ - { 16936, 0x000081F3 }, /* GL_OBJECT_DISTANCE_TO_LINE_SGIS */ - { 16968, 0x000081F4 }, /* GL_EYE_POINT_SGIS */ - { 16986, 0x000081F5 }, /* GL_OBJECT_POINT_SGIS */ - { 17007, 0x000081F6 }, /* GL_EYE_LINE_SGIS */ - { 17024, 0x000081F7 }, /* GL_OBJECT_LINE_SGIS */ - { 17044, 0x000081F8 }, /* GL_LIGHT_MODEL_COLOR_CONTROL */ - { 17073, 0x000081F9 }, /* GL_SINGLE_COLOR */ - { 17089, 0x000081FA }, /* GL_SEPARATE_SPECULAR_COLOR */ - { 17116, 0x000081FB }, /* GL_SHARED_TEXTURE_PALETTE_EXT */ - { 17146, 0x00008200 }, /* GL_TEXT_FRAGMENT_SHADER_ATI */ - { 17174, 0x00008210 }, /* GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING */ - { 17215, 0x00008211 }, /* GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE */ - { 17256, 0x00008212 }, /* GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE */ - { 17291, 0x00008213 }, /* GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE */ - { 17328, 0x00008214 }, /* GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE */ - { 17364, 0x00008215 }, /* GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE */ - { 17401, 0x00008216 }, /* GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE */ - { 17438, 0x00008217 }, /* GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE */ - { 17477, 0x00008218 }, /* GL_FRAMEBUFFER_DEFAULT */ - { 17500, 0x00008219 }, /* GL_FRAMEBUFFER_UNDEFINED */ - { 17525, 0x0000821A }, /* GL_DEPTH_STENCIL_ATTACHMENT */ - { 17553, 0x0000821B }, /* GL_MAJOR_VERSION */ - { 17570, 0x0000821C }, /* GL_MINOR_VERSION */ - { 17587, 0x0000821D }, /* GL_NUM_EXTENSIONS */ - { 17605, 0x0000821E }, /* GL_CONTEXT_FLAGS */ - { 17622, 0x0000821F }, /* GL_BUFFER_IMMUTABLE_STORAGE */ - { 17650, 0x00008220 }, /* GL_BUFFER_STORAGE_FLAGS */ - { 17674, 0x00008221 }, /* GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED */ - { 17717, 0x00008222 }, /* GL_INDEX */ - { 17726, 0x00008225 }, /* GL_COMPRESSED_RED */ - { 17744, 0x00008226 }, /* GL_COMPRESSED_RG */ - { 17761, 0x00008227 }, /* GL_RG */ - { 17767, 0x00008228 }, /* GL_RG_INTEGER */ - { 17781, 0x00008229 }, /* GL_R8 */ - { 17787, 0x0000822A }, /* GL_R16 */ - { 17794, 0x0000822B }, /* GL_RG8 */ - { 17801, 0x0000822C }, /* GL_RG16 */ - { 17809, 0x0000822D }, /* GL_R16F */ - { 17817, 0x0000822E }, /* GL_R32F */ - { 17825, 0x0000822F }, /* GL_RG16F */ - { 17834, 0x00008230 }, /* GL_RG32F */ - { 17843, 0x00008231 }, /* GL_R8I */ - { 17850, 0x00008232 }, /* GL_R8UI */ - { 17858, 0x00008233 }, /* GL_R16I */ - { 17866, 0x00008234 }, /* GL_R16UI */ - { 17875, 0x00008235 }, /* GL_R32I */ - { 17883, 0x00008236 }, /* GL_R32UI */ - { 17892, 0x00008237 }, /* GL_RG8I */ - { 17900, 0x00008238 }, /* GL_RG8UI */ - { 17909, 0x00008239 }, /* GL_RG16I */ - { 17918, 0x0000823A }, /* GL_RG16UI */ - { 17928, 0x0000823B }, /* GL_RG32I */ - { 17937, 0x0000823C }, /* GL_RG32UI */ - { 17947, 0x00008240 }, /* GL_SYNC_CL_EVENT_ARB */ - { 17968, 0x00008241 }, /* GL_SYNC_CL_EVENT_COMPLETE_ARB */ - { 17998, 0x00008242 }, /* GL_DEBUG_OUTPUT_SYNCHRONOUS */ - { 18026, 0x00008243 }, /* GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH */ - { 18062, 0x00008244 }, /* GL_DEBUG_CALLBACK_FUNCTION */ - { 18089, 0x00008245 }, /* GL_DEBUG_CALLBACK_USER_PARAM */ - { 18118, 0x00008246 }, /* GL_DEBUG_SOURCE_API */ - { 18138, 0x00008247 }, /* GL_DEBUG_SOURCE_WINDOW_SYSTEM */ - { 18168, 0x00008248 }, /* GL_DEBUG_SOURCE_SHADER_COMPILER */ - { 18200, 0x00008249 }, /* GL_DEBUG_SOURCE_THIRD_PARTY */ - { 18228, 0x0000824A }, /* GL_DEBUG_SOURCE_APPLICATION */ - { 18256, 0x0000824B }, /* GL_DEBUG_SOURCE_OTHER */ - { 18278, 0x0000824C }, /* GL_DEBUG_TYPE_ERROR */ - { 18298, 0x0000824D }, /* GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR */ - { 18332, 0x0000824E }, /* GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR */ - { 18365, 0x0000824F }, /* GL_DEBUG_TYPE_PORTABILITY */ - { 18391, 0x00008250 }, /* GL_DEBUG_TYPE_PERFORMANCE */ - { 18417, 0x00008251 }, /* GL_DEBUG_TYPE_OTHER */ - { 18437, 0x00008252 }, /* GL_LOSE_CONTEXT_ON_RESET */ - { 18462, 0x00008253 }, /* GL_GUILTY_CONTEXT_RESET */ - { 18486, 0x00008254 }, /* GL_INNOCENT_CONTEXT_RESET */ - { 18512, 0x00008255 }, /* GL_UNKNOWN_CONTEXT_RESET */ - { 18537, 0x00008256 }, /* GL_RESET_NOTIFICATION_STRATEGY */ - { 18568, 0x00008257 }, /* GL_PROGRAM_BINARY_RETRIEVABLE_HINT */ - { 18603, 0x00008258 }, /* GL_PROGRAM_SEPARABLE */ - { 18624, 0x00008259 }, /* GL_ACTIVE_PROGRAM */ - { 18642, 0x0000825A }, /* GL_PROGRAM_PIPELINE_BINDING */ - { 18670, 0x0000825B }, /* GL_MAX_VIEWPORTS */ - { 18687, 0x0000825C }, /* GL_VIEWPORT_SUBPIXEL_BITS */ - { 18713, 0x0000825D }, /* GL_VIEWPORT_BOUNDS_RANGE */ - { 18738, 0x0000825E }, /* GL_LAYER_PROVOKING_VERTEX */ - { 18764, 0x0000825F }, /* GL_VIEWPORT_INDEX_PROVOKING_VERTEX */ - { 18799, 0x00008260 }, /* GL_UNDEFINED_VERTEX */ - { 18819, 0x00008261 }, /* GL_NO_RESET_NOTIFICATION */ - { 18844, 0x00008262 }, /* GL_MAX_COMPUTE_SHARED_MEMORY_SIZE */ - { 18878, 0x00008263 }, /* GL_MAX_COMPUTE_UNIFORM_COMPONENTS */ - { 18912, 0x00008264 }, /* GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS */ - { 18950, 0x00008265 }, /* GL_MAX_COMPUTE_ATOMIC_COUNTERS */ - { 18981, 0x00008266 }, /* GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS */ - { 19024, 0x00008267 }, /* GL_COMPUTE_WORK_GROUP_SIZE */ - { 19051, 0x00008268 }, /* GL_DEBUG_TYPE_MARKER */ - { 19072, 0x00008269 }, /* GL_DEBUG_TYPE_PUSH_GROUP */ - { 19097, 0x0000826A }, /* GL_DEBUG_TYPE_POP_GROUP */ - { 19121, 0x0000826B }, /* GL_DEBUG_SEVERITY_NOTIFICATION */ - { 19152, 0x0000826C }, /* GL_MAX_DEBUG_GROUP_STACK_DEPTH */ - { 19183, 0x0000826D }, /* GL_DEBUG_GROUP_STACK_DEPTH */ - { 19210, 0x0000826E }, /* GL_MAX_UNIFORM_LOCATIONS */ - { 19235, 0x0000826F }, /* GL_INTERNALFORMAT_SUPPORTED */ - { 19263, 0x00008270 }, /* GL_INTERNALFORMAT_PREFERRED */ - { 19291, 0x00008271 }, /* GL_INTERNALFORMAT_RED_SIZE */ - { 19318, 0x00008272 }, /* GL_INTERNALFORMAT_GREEN_SIZE */ - { 19347, 0x00008273 }, /* GL_INTERNALFORMAT_BLUE_SIZE */ - { 19375, 0x00008274 }, /* GL_INTERNALFORMAT_ALPHA_SIZE */ - { 19404, 0x00008275 }, /* GL_INTERNALFORMAT_DEPTH_SIZE */ - { 19433, 0x00008276 }, /* GL_INTERNALFORMAT_STENCIL_SIZE */ - { 19464, 0x00008277 }, /* GL_INTERNALFORMAT_SHARED_SIZE */ - { 19494, 0x00008278 }, /* GL_INTERNALFORMAT_RED_TYPE */ - { 19521, 0x00008279 }, /* GL_INTERNALFORMAT_GREEN_TYPE */ - { 19550, 0x0000827A }, /* GL_INTERNALFORMAT_BLUE_TYPE */ - { 19578, 0x0000827B }, /* GL_INTERNALFORMAT_ALPHA_TYPE */ - { 19607, 0x0000827C }, /* GL_INTERNALFORMAT_DEPTH_TYPE */ - { 19636, 0x0000827D }, /* GL_INTERNALFORMAT_STENCIL_TYPE */ - { 19667, 0x0000827E }, /* GL_MAX_WIDTH */ - { 19680, 0x0000827F }, /* GL_MAX_HEIGHT */ - { 19694, 0x00008280 }, /* GL_MAX_DEPTH */ - { 19707, 0x00008281 }, /* GL_MAX_LAYERS */ - { 19721, 0x00008282 }, /* GL_MAX_COMBINED_DIMENSIONS */ - { 19748, 0x00008283 }, /* GL_COLOR_COMPONENTS */ - { 19768, 0x00008284 }, /* GL_DEPTH_COMPONENTS */ - { 19788, 0x00008285 }, /* GL_STENCIL_COMPONENTS */ - { 19810, 0x00008286 }, /* GL_COLOR_RENDERABLE */ - { 19830, 0x00008287 }, /* GL_DEPTH_RENDERABLE */ - { 19850, 0x00008288 }, /* GL_STENCIL_RENDERABLE */ - { 19872, 0x00008289 }, /* GL_FRAMEBUFFER_RENDERABLE */ - { 19898, 0x0000828A }, /* GL_FRAMEBUFFER_RENDERABLE_LAYERED */ - { 19932, 0x0000828B }, /* GL_FRAMEBUFFER_BLEND */ - { 19953, 0x0000828C }, /* GL_READ_PIXELS */ - { 19968, 0x0000828D }, /* GL_READ_PIXELS_FORMAT */ - { 19990, 0x0000828E }, /* GL_READ_PIXELS_TYPE */ - { 20010, 0x0000828F }, /* GL_TEXTURE_IMAGE_FORMAT */ - { 20034, 0x00008290 }, /* GL_TEXTURE_IMAGE_TYPE */ - { 20056, 0x00008291 }, /* GL_GET_TEXTURE_IMAGE_FORMAT */ - { 20084, 0x00008292 }, /* GL_GET_TEXTURE_IMAGE_TYPE */ - { 20110, 0x00008293 }, /* GL_MIPMAP */ - { 20120, 0x00008294 }, /* GL_MANUAL_GENERATE_MIPMAP */ - { 20146, 0x00008295 }, /* GL_AUTO_GENERATE_MIPMAP */ - { 20170, 0x00008296 }, /* GL_COLOR_ENCODING */ - { 20188, 0x00008297 }, /* GL_SRGB_READ */ - { 20201, 0x00008298 }, /* GL_SRGB_WRITE */ - { 20215, 0x00008299 }, /* GL_SRGB_DECODE_ARB */ - { 20234, 0x0000829A }, /* GL_FILTER */ - { 20244, 0x0000829B }, /* GL_VERTEX_TEXTURE */ - { 20262, 0x0000829C }, /* GL_TESS_CONTROL_TEXTURE */ - { 20286, 0x0000829D }, /* GL_TESS_EVALUATION_TEXTURE */ - { 20313, 0x0000829E }, /* GL_GEOMETRY_TEXTURE */ - { 20333, 0x0000829F }, /* GL_FRAGMENT_TEXTURE */ - { 20353, 0x000082A0 }, /* GL_COMPUTE_TEXTURE */ - { 20372, 0x000082A1 }, /* GL_TEXTURE_SHADOW */ - { 20390, 0x000082A2 }, /* GL_TEXTURE_GATHER */ - { 20408, 0x000082A3 }, /* GL_TEXTURE_GATHER_SHADOW */ - { 20433, 0x000082A4 }, /* GL_SHADER_IMAGE_LOAD */ - { 20454, 0x000082A5 }, /* GL_SHADER_IMAGE_STORE */ - { 20476, 0x000082A6 }, /* GL_SHADER_IMAGE_ATOMIC */ - { 20499, 0x000082A7 }, /* GL_IMAGE_TEXEL_SIZE */ - { 20519, 0x000082A8 }, /* GL_IMAGE_COMPATIBILITY_CLASS */ - { 20548, 0x000082A9 }, /* GL_IMAGE_PIXEL_FORMAT */ - { 20570, 0x000082AA }, /* GL_IMAGE_PIXEL_TYPE */ - { 20590, 0x000082AC }, /* GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST */ - { 20629, 0x000082AD }, /* GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST */ - { 20670, 0x000082AE }, /* GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE */ - { 20710, 0x000082AF }, /* GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE */ - { 20752, 0x000082B1 }, /* GL_TEXTURE_COMPRESSED_BLOCK_WIDTH */ - { 20786, 0x000082B2 }, /* GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT */ - { 20821, 0x000082B3 }, /* GL_TEXTURE_COMPRESSED_BLOCK_SIZE */ - { 20854, 0x000082B4 }, /* GL_CLEAR_BUFFER */ - { 20870, 0x000082B5 }, /* GL_TEXTURE_VIEW */ - { 20886, 0x000082B6 }, /* GL_VIEW_COMPATIBILITY_CLASS */ - { 20914, 0x000082B7 }, /* GL_FULL_SUPPORT */ - { 20930, 0x000082B8 }, /* GL_CAVEAT_SUPPORT */ - { 20948, 0x000082B9 }, /* GL_IMAGE_CLASS_4_X_32 */ - { 20970, 0x000082BA }, /* GL_IMAGE_CLASS_2_X_32 */ - { 20992, 0x000082BB }, /* GL_IMAGE_CLASS_1_X_32 */ - { 21014, 0x000082BC }, /* GL_IMAGE_CLASS_4_X_16 */ - { 21036, 0x000082BD }, /* GL_IMAGE_CLASS_2_X_16 */ - { 21058, 0x000082BE }, /* GL_IMAGE_CLASS_1_X_16 */ - { 21080, 0x000082BF }, /* GL_IMAGE_CLASS_4_X_8 */ - { 21101, 0x000082C0 }, /* GL_IMAGE_CLASS_2_X_8 */ - { 21122, 0x000082C1 }, /* GL_IMAGE_CLASS_1_X_8 */ - { 21143, 0x000082C2 }, /* GL_IMAGE_CLASS_11_11_10 */ - { 21167, 0x000082C3 }, /* GL_IMAGE_CLASS_10_10_10_2 */ - { 21193, 0x000082C4 }, /* GL_VIEW_CLASS_128_BITS */ - { 21216, 0x000082C5 }, /* GL_VIEW_CLASS_96_BITS */ - { 21238, 0x000082C6 }, /* GL_VIEW_CLASS_64_BITS */ - { 21260, 0x000082C7 }, /* GL_VIEW_CLASS_48_BITS */ - { 21282, 0x000082C8 }, /* GL_VIEW_CLASS_32_BITS */ - { 21304, 0x000082C9 }, /* GL_VIEW_CLASS_24_BITS */ - { 21326, 0x000082CA }, /* GL_VIEW_CLASS_16_BITS */ - { 21348, 0x000082CB }, /* GL_VIEW_CLASS_8_BITS */ - { 21369, 0x000082CC }, /* GL_VIEW_CLASS_S3TC_DXT1_RGB */ - { 21397, 0x000082CD }, /* GL_VIEW_CLASS_S3TC_DXT1_RGBA */ - { 21426, 0x000082CE }, /* GL_VIEW_CLASS_S3TC_DXT3_RGBA */ - { 21455, 0x000082CF }, /* GL_VIEW_CLASS_S3TC_DXT5_RGBA */ - { 21484, 0x000082D0 }, /* GL_VIEW_CLASS_RGTC1_RED */ - { 21508, 0x000082D1 }, /* GL_VIEW_CLASS_RGTC2_RG */ - { 21531, 0x000082D2 }, /* GL_VIEW_CLASS_BPTC_UNORM */ - { 21556, 0x000082D3 }, /* GL_VIEW_CLASS_BPTC_FLOAT */ - { 21581, 0x000082D4 }, /* GL_VERTEX_ATTRIB_BINDING */ - { 21606, 0x000082D5 }, /* GL_VERTEX_ATTRIB_RELATIVE_OFFSET */ - { 21639, 0x000082D6 }, /* GL_VERTEX_BINDING_DIVISOR */ - { 21665, 0x000082D7 }, /* GL_VERTEX_BINDING_OFFSET */ - { 21690, 0x000082D8 }, /* GL_VERTEX_BINDING_STRIDE */ - { 21715, 0x000082D9 }, /* GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET */ - { 21752, 0x000082DA }, /* GL_MAX_VERTEX_ATTRIB_BINDINGS */ - { 21782, 0x000082DB }, /* GL_TEXTURE_VIEW_MIN_LEVEL */ - { 21808, 0x000082DC }, /* GL_TEXTURE_VIEW_NUM_LEVELS */ - { 21835, 0x000082DD }, /* GL_TEXTURE_VIEW_MIN_LAYER */ - { 21861, 0x000082DE }, /* GL_TEXTURE_VIEW_NUM_LAYERS */ - { 21888, 0x000082DF }, /* GL_TEXTURE_IMMUTABLE_LEVELS */ - { 21916, 0x000082E0 }, /* GL_BUFFER */ - { 21926, 0x000082E1 }, /* GL_SHADER */ - { 21936, 0x000082E2 }, /* GL_PROGRAM */ - { 21947, 0x000082E3 }, /* GL_QUERY */ - { 21956, 0x000082E4 }, /* GL_PROGRAM_PIPELINE */ - { 21976, 0x000082E5 }, /* GL_MAX_VERTEX_ATTRIB_STRIDE */ - { 22004, 0x000082E6 }, /* GL_SAMPLER */ - { 22015, 0x000082E7 }, /* GL_DISPLAY_LIST */ - { 22031, 0x000082E8 }, /* GL_MAX_LABEL_LENGTH */ - { 22051, 0x000082E9 }, /* GL_NUM_SHADING_LANGUAGE_VERSIONS */ - { 22084, 0x000082EA }, /* GL_QUERY_TARGET */ - { 22100, 0x000082EC }, /* GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB */ - { 22135, 0x000082ED }, /* GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB */ - { 22177, 0x000082EE }, /* GL_VERTICES_SUBMITTED_ARB */ - { 22203, 0x000082EF }, /* GL_PRIMITIVES_SUBMITTED_ARB */ - { 22231, 0x000082F0 }, /* GL_VERTEX_SHADER_INVOCATIONS_ARB */ - { 22264, 0x000082F1 }, /* GL_TESS_CONTROL_SHADER_PATCHES_ARB */ - { 22299, 0x000082F2 }, /* GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB */ - { 22341, 0x000082F3 }, /* GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB */ - { 22383, 0x000082F4 }, /* GL_FRAGMENT_SHADER_INVOCATIONS_ARB */ - { 22418, 0x000082F5 }, /* GL_COMPUTE_SHADER_INVOCATIONS_ARB */ - { 22452, 0x000082F6 }, /* GL_CLIPPING_INPUT_PRIMITIVES_ARB */ - { 22485, 0x000082F7 }, /* GL_CLIPPING_OUTPUT_PRIMITIVES_ARB */ - { 22519, 0x000082F8 }, /* GL_SPARSE_BUFFER_PAGE_SIZE_ARB */ - { 22550, 0x000082F9 }, /* GL_MAX_CULL_DISTANCES */ - { 22572, 0x000082FA }, /* GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES */ - { 22612, 0x000082FB }, /* GL_CONTEXT_RELEASE_BEHAVIOR */ - { 22640, 0x000082FC }, /* GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH */ - { 22674, 0x00008316 }, /* GL_CONVOLUTION_HINT_SGIX */ - { 22699, 0x00008318 }, /* GL_YCRCB_SGIX */ - { 22713, 0x00008319 }, /* GL_YCRCBA_SGIX */ - { 22728, 0x00008320 }, /* GL_ALPHA_MIN_SGIX */ - { 22746, 0x00008321 }, /* GL_ALPHA_MAX_SGIX */ - { 22764, 0x00008322 }, /* GL_SCALEBIAS_HINT_SGIX */ - { 22787, 0x00008329 }, /* GL_ASYNC_MARKER_SGIX */ - { 22808, 0x0000832B }, /* GL_PIXEL_TEX_GEN_MODE_SGIX */ - { 22835, 0x0000832C }, /* GL_ASYNC_HISTOGRAM_SGIX */ - { 22859, 0x0000832D }, /* GL_MAX_ASYNC_HISTOGRAM_SGIX */ - { 22887, 0x00008330 }, /* GL_PIXEL_TRANSFORM_2D_EXT */ - { 22913, 0x00008331 }, /* GL_PIXEL_MAG_FILTER_EXT */ - { 22937, 0x00008332 }, /* GL_PIXEL_MIN_FILTER_EXT */ - { 22961, 0x00008333 }, /* GL_PIXEL_CUBIC_WEIGHT_EXT */ - { 22987, 0x00008334 }, /* GL_CUBIC_EXT */ - { 23000, 0x00008335 }, /* GL_AVERAGE_EXT */ - { 23015, 0x00008336 }, /* GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT */ - { 23053, 0x00008337 }, /* GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT */ - { 23095, 0x00008338 }, /* GL_PIXEL_TRANSFORM_2D_MATRIX_EXT */ - { 23128, 0x00008349 }, /* GL_FRAGMENT_MATERIAL_EXT */ - { 23153, 0x0000834A }, /* GL_FRAGMENT_NORMAL_EXT */ - { 23176, 0x0000834C }, /* GL_FRAGMENT_COLOR_EXT */ - { 23198, 0x0000834D }, /* GL_ATTENUATION_EXT */ - { 23217, 0x0000834E }, /* GL_SHADOW_ATTENUATION_EXT */ - { 23243, 0x0000834F }, /* GL_TEXTURE_APPLICATION_MODE_EXT */ - { 23275, 0x00008350 }, /* GL_TEXTURE_LIGHT_EXT */ - { 23296, 0x00008351 }, /* GL_TEXTURE_MATERIAL_FACE_EXT */ - { 23325, 0x00008352 }, /* GL_TEXTURE_MATERIAL_PARAMETER_EXT */ - { 23359, 0x00008353 }, /* GL_PIXEL_TEXTURE_SGIS */ - { 23381, 0x00008354 }, /* GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS */ - { 23415, 0x00008355 }, /* GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS */ - { 23451, 0x00008356 }, /* GL_PIXEL_GROUP_COLOR_SGIS */ - { 23477, 0x0000835C }, /* GL_ASYNC_TEX_IMAGE_SGIX */ - { 23501, 0x0000835D }, /* GL_ASYNC_DRAW_PIXELS_SGIX */ - { 23527, 0x0000835E }, /* GL_ASYNC_READ_PIXELS_SGIX */ - { 23553, 0x0000835F }, /* GL_MAX_ASYNC_TEX_IMAGE_SGIX */ - { 23581, 0x00008360 }, /* GL_MAX_ASYNC_DRAW_PIXELS_SGIX */ - { 23611, 0x00008361 }, /* GL_MAX_ASYNC_READ_PIXELS_SGIX */ - { 23641, 0x00008362 }, /* GL_UNSIGNED_BYTE_2_3_3_REV */ - { 23668, 0x00008363 }, /* GL_UNSIGNED_SHORT_5_6_5 */ - { 23692, 0x00008364 }, /* GL_UNSIGNED_SHORT_5_6_5_REV */ - { 23720, 0x00008365 }, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */ - { 23750, 0x00008366 }, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */ - { 23780, 0x00008367 }, /* GL_UNSIGNED_INT_8_8_8_8_REV */ - { 23808, 0x00008368 }, /* GL_UNSIGNED_INT_2_10_10_10_REV */ - { 23839, 0x00008369 }, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */ - { 23867, 0x0000836A }, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */ - { 23895, 0x0000836B }, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */ - { 23923, 0x00008370 }, /* GL_MIRRORED_REPEAT */ - { 23942, 0x000083A0 }, /* GL_RGB_S3TC */ - { 23954, 0x000083A1 }, /* GL_RGB4_S3TC */ - { 23967, 0x000083A2 }, /* GL_RGBA_S3TC */ - { 23980, 0x000083A3 }, /* GL_RGBA4_S3TC */ - { 23994, 0x000083A4 }, /* GL_RGBA_DXT5_S3TC */ - { 24012, 0x000083A5 }, /* GL_RGBA4_DXT5_S3TC */ - { 24031, 0x000083EE }, /* GL_VERTEX_PRECLIP_SGIX */ - { 24054, 0x000083EF }, /* GL_VERTEX_PRECLIP_HINT_SGIX */ - { 24082, 0x000083F0 }, /* GL_COMPRESSED_RGB_S3TC_DXT1_EXT */ - { 24114, 0x000083F1 }, /* GL_COMPRESSED_RGBA_S3TC_DXT1_EXT */ - { 24147, 0x000083F2 }, /* GL_COMPRESSED_RGBA_S3TC_DXT3_EXT */ - { 24180, 0x000083F3 }, /* GL_COMPRESSED_RGBA_S3TC_DXT5_EXT */ - { 24213, 0x000083F4 }, /* GL_PARALLEL_ARRAYS_INTEL */ - { 24238, 0x000083F5 }, /* GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL */ - { 24278, 0x000083F6 }, /* GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL */ - { 24318, 0x000083F7 }, /* GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL */ - { 24357, 0x000083F8 }, /* GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL */ - { 24404, 0x000083F9 }, /* GL_PERFQUERY_DONOT_FLUSH_INTEL */ - { 24435, 0x000083FA }, /* GL_PERFQUERY_FLUSH_INTEL */ - { 24460, 0x000083FB }, /* GL_PERFQUERY_WAIT_INTEL */ - { 24484, 0x000083FE }, /* GL_CONSERVATIVE_RASTERIZATION_INTEL */ - { 24520, 0x000083FF }, /* GL_TEXTURE_MEMORY_LAYOUT_INTEL */ - { 24551, 0x00008400 }, /* GL_FRAGMENT_LIGHTING_SGIX */ - { 24577, 0x00008401 }, /* GL_FRAGMENT_COLOR_MATERIAL_SGIX */ - { 24609, 0x00008402 }, /* GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX */ - { 24646, 0x00008403 }, /* GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX */ - { 24688, 0x00008404 }, /* GL_MAX_FRAGMENT_LIGHTS_SGIX */ - { 24716, 0x00008405 }, /* GL_MAX_ACTIVE_LIGHTS_SGIX */ - { 24742, 0x00008406 }, /* GL_CURRENT_RASTER_NORMAL_SGIX */ - { 24772, 0x00008407 }, /* GL_LIGHT_ENV_MODE_SGIX */ - { 24795, 0x00008408 }, /* GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX */ - { 24837, 0x00008409 }, /* GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX */ - { 24875, 0x0000840A }, /* GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX */ - { 24912, 0x0000840B }, /* GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX */ - { 24962, 0x0000840C }, /* GL_FRAGMENT_LIGHT0_SGIX */ - { 24986, 0x0000840D }, /* GL_FRAGMENT_LIGHT1_SGIX */ - { 25010, 0x0000840E }, /* GL_FRAGMENT_LIGHT2_SGIX */ - { 25034, 0x0000840F }, /* GL_FRAGMENT_LIGHT3_SGIX */ - { 25058, 0x00008410 }, /* GL_FRAGMENT_LIGHT4_SGIX */ - { 25082, 0x00008411 }, /* GL_FRAGMENT_LIGHT5_SGIX */ - { 25106, 0x00008412 }, /* GL_FRAGMENT_LIGHT6_SGIX */ - { 25130, 0x00008413 }, /* GL_FRAGMENT_LIGHT7_SGIX */ - { 25154, 0x0000842E }, /* GL_PACK_RESAMPLE_SGIX */ - { 25176, 0x0000842F }, /* GL_UNPACK_RESAMPLE_SGIX */ - { 25200, 0x00008430 }, /* GL_RESAMPLE_DECIMATE_SGIX */ - { 25226, 0x00008433 }, /* GL_RESAMPLE_REPLICATE_SGIX */ - { 25253, 0x00008434 }, /* GL_RESAMPLE_ZERO_FILL_SGIX */ - { 25280, 0x00008439 }, /* GL_TANGENT_ARRAY_EXT */ - { 25301, 0x0000843A }, /* GL_BINORMAL_ARRAY_EXT */ - { 25323, 0x0000843B }, /* GL_CURRENT_TANGENT_EXT */ - { 25346, 0x0000843C }, /* GL_CURRENT_BINORMAL_EXT */ - { 25370, 0x0000843E }, /* GL_TANGENT_ARRAY_TYPE_EXT */ - { 25396, 0x0000843F }, /* GL_TANGENT_ARRAY_STRIDE_EXT */ - { 25424, 0x00008440 }, /* GL_BINORMAL_ARRAY_TYPE_EXT */ - { 25451, 0x00008441 }, /* GL_BINORMAL_ARRAY_STRIDE_EXT */ - { 25480, 0x00008442 }, /* GL_TANGENT_ARRAY_POINTER_EXT */ - { 25509, 0x00008443 }, /* GL_BINORMAL_ARRAY_POINTER_EXT */ - { 25539, 0x00008444 }, /* GL_MAP1_TANGENT_EXT */ - { 25559, 0x00008445 }, /* GL_MAP2_TANGENT_EXT */ - { 25579, 0x00008446 }, /* GL_MAP1_BINORMAL_EXT */ - { 25600, 0x00008447 }, /* GL_MAP2_BINORMAL_EXT */ - { 25621, 0x0000844D }, /* GL_NEAREST_CLIPMAP_NEAREST_SGIX */ - { 25653, 0x0000844E }, /* GL_NEAREST_CLIPMAP_LINEAR_SGIX */ - { 25684, 0x0000844F }, /* GL_LINEAR_CLIPMAP_NEAREST_SGIX */ - { 25715, 0x00008450 }, /* GL_FOG_COORD_SRC */ - { 25732, 0x00008451 }, /* GL_FOG_COORD */ - { 25745, 0x00008452 }, /* GL_FRAGMENT_DEPTH */ - { 25763, 0x00008453 }, /* GL_CURRENT_FOG_COORD */ - { 25784, 0x00008454 }, /* GL_FOG_COORD_ARRAY_TYPE */ - { 25808, 0x00008455 }, /* GL_FOG_COORD_ARRAY_STRIDE */ - { 25834, 0x00008456 }, /* GL_FOG_COORD_ARRAY_POINTER */ - { 25861, 0x00008457 }, /* GL_FOG_COORD_ARRAY */ - { 25880, 0x00008458 }, /* GL_COLOR_SUM */ - { 25893, 0x00008459 }, /* GL_CURRENT_SECONDARY_COLOR */ - { 25920, 0x0000845A }, /* GL_SECONDARY_COLOR_ARRAY_SIZE */ - { 25950, 0x0000845B }, /* GL_SECONDARY_COLOR_ARRAY_TYPE */ - { 25980, 0x0000845C }, /* GL_SECONDARY_COLOR_ARRAY_STRIDE */ - { 26012, 0x0000845D }, /* GL_SECONDARY_COLOR_ARRAY_POINTER */ - { 26045, 0x0000845E }, /* GL_SECONDARY_COLOR_ARRAY */ - { 26070, 0x0000845F }, /* GL_CURRENT_RASTER_SECONDARY_COLOR */ - { 26104, 0x0000846D }, /* GL_ALIASED_POINT_SIZE_RANGE */ - { 26132, 0x0000846E }, /* GL_ALIASED_LINE_WIDTH_RANGE */ - { 26160, 0x00008490 }, /* GL_SCREEN_COORDINATES_REND */ - { 26187, 0x00008491 }, /* GL_INVERTED_SCREEN_W_REND */ - { 26213, 0x000084C0 }, /* GL_TEXTURE0 */ - { 26225, 0x000084C1 }, /* GL_TEXTURE1 */ - { 26237, 0x000084C2 }, /* GL_TEXTURE2 */ - { 26249, 0x000084C3 }, /* GL_TEXTURE3 */ - { 26261, 0x000084C4 }, /* GL_TEXTURE4 */ - { 26273, 0x000084C5 }, /* GL_TEXTURE5 */ - { 26285, 0x000084C6 }, /* GL_TEXTURE6 */ - { 26297, 0x000084C7 }, /* GL_TEXTURE7 */ - { 26309, 0x000084C8 }, /* GL_TEXTURE8 */ - { 26321, 0x000084C9 }, /* GL_TEXTURE9 */ - { 26333, 0x000084CA }, /* GL_TEXTURE10 */ - { 26346, 0x000084CB }, /* GL_TEXTURE11 */ - { 26359, 0x000084CC }, /* GL_TEXTURE12 */ - { 26372, 0x000084CD }, /* GL_TEXTURE13 */ - { 26385, 0x000084CE }, /* GL_TEXTURE14 */ - { 26398, 0x000084CF }, /* GL_TEXTURE15 */ - { 26411, 0x000084D0 }, /* GL_TEXTURE16 */ - { 26424, 0x000084D1 }, /* GL_TEXTURE17 */ - { 26437, 0x000084D2 }, /* GL_TEXTURE18 */ - { 26450, 0x000084D3 }, /* GL_TEXTURE19 */ - { 26463, 0x000084D4 }, /* GL_TEXTURE20 */ - { 26476, 0x000084D5 }, /* GL_TEXTURE21 */ - { 26489, 0x000084D6 }, /* GL_TEXTURE22 */ - { 26502, 0x000084D7 }, /* GL_TEXTURE23 */ - { 26515, 0x000084D8 }, /* GL_TEXTURE24 */ - { 26528, 0x000084D9 }, /* GL_TEXTURE25 */ - { 26541, 0x000084DA }, /* GL_TEXTURE26 */ - { 26554, 0x000084DB }, /* GL_TEXTURE27 */ - { 26567, 0x000084DC }, /* GL_TEXTURE28 */ - { 26580, 0x000084DD }, /* GL_TEXTURE29 */ - { 26593, 0x000084DE }, /* GL_TEXTURE30 */ - { 26606, 0x000084DF }, /* GL_TEXTURE31 */ - { 26619, 0x000084E0 }, /* GL_ACTIVE_TEXTURE */ - { 26637, 0x000084E1 }, /* GL_CLIENT_ACTIVE_TEXTURE */ - { 26662, 0x000084E2 }, /* GL_MAX_TEXTURE_UNITS */ - { 26683, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX */ - { 26713, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX */ - { 26744, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX */ - { 26772, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX */ - { 26798, 0x000084E7 }, /* GL_SUBTRACT */ - { 26810, 0x000084E8 }, /* GL_MAX_RENDERBUFFER_SIZE */ - { 26835, 0x000084E9 }, /* GL_COMPRESSED_ALPHA */ - { 26855, 0x000084EA }, /* GL_COMPRESSED_LUMINANCE */ - { 26879, 0x000084EB }, /* GL_COMPRESSED_LUMINANCE_ALPHA */ - { 26909, 0x000084EC }, /* GL_COMPRESSED_INTENSITY */ - { 26933, 0x000084ED }, /* GL_COMPRESSED_RGB */ - { 26951, 0x000084EE }, /* GL_COMPRESSED_RGBA */ - { 26970, 0x000084EF }, /* GL_TEXTURE_COMPRESSION_HINT */ - { 26998, 0x000084F0 }, /* GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER */ - { 27049, 0x000084F1 }, /* GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER */ - { 27103, 0x000084F2 }, /* GL_ALL_COMPLETED_NV */ - { 27123, 0x000084F3 }, /* GL_FENCE_STATUS_NV */ - { 27142, 0x000084F4 }, /* GL_FENCE_CONDITION_NV */ - { 27164, 0x000084F5 }, /* GL_TEXTURE_RECTANGLE */ - { 27185, 0x000084F6 }, /* GL_TEXTURE_BINDING_RECTANGLE */ - { 27214, 0x000084F7 }, /* GL_PROXY_TEXTURE_RECTANGLE */ - { 27241, 0x000084F8 }, /* GL_MAX_RECTANGLE_TEXTURE_SIZE */ - { 27271, 0x000084F9 }, /* GL_DEPTH_STENCIL */ - { 27288, 0x000084FA }, /* GL_UNSIGNED_INT_24_8 */ - { 27309, 0x000084FD }, /* GL_MAX_TEXTURE_LOD_BIAS */ - { 27333, 0x000084FE }, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */ - { 27363, 0x000084FF }, /* GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT */ - { 27397, 0x00008500 }, /* GL_TEXTURE_FILTER_CONTROL */ - { 27423, 0x00008501 }, /* GL_TEXTURE_LOD_BIAS */ - { 27443, 0x00008502 }, /* GL_MODELVIEW1_STACK_DEPTH_EXT */ - { 27473, 0x00008503 }, /* GL_COMBINE4_NV */ - { 27488, 0x00008504 }, /* GL_MAX_SHININESS_NV */ - { 27508, 0x00008505 }, /* GL_MAX_SPOT_EXPONENT_NV */ - { 27532, 0x00008506 }, /* GL_MODELVIEW1_MATRIX_EXT */ - { 27557, 0x00008507 }, /* GL_INCR_WRAP */ - { 27570, 0x00008508 }, /* GL_DECR_WRAP */ - { 27583, 0x00008509 }, /* GL_VERTEX_WEIGHTING_EXT */ - { 27607, 0x0000850A }, /* GL_MODELVIEW1_ARB */ - { 27625, 0x0000850B }, /* GL_CURRENT_VERTEX_WEIGHT_EXT */ - { 27654, 0x0000850C }, /* GL_VERTEX_WEIGHT_ARRAY_EXT */ - { 27681, 0x0000850D }, /* GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT */ - { 27713, 0x0000850E }, /* GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT */ - { 27745, 0x0000850F }, /* GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT */ - { 27779, 0x00008510 }, /* GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT */ - { 27814, 0x00008511 }, /* GL_NORMAL_MAP */ - { 27828, 0x00008512 }, /* GL_REFLECTION_MAP */ - { 27846, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP */ - { 27866, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP */ - { 27894, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X */ - { 27925, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X */ - { 27956, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y */ - { 27987, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y */ - { 28018, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z */ - { 28049, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z */ - { 28080, 0x0000851B }, /* GL_PROXY_TEXTURE_CUBE_MAP */ - { 28106, 0x0000851C }, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE */ - { 28135, 0x0000851D }, /* GL_VERTEX_ARRAY_RANGE_APPLE */ - { 28163, 0x0000851E }, /* GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE */ - { 28198, 0x0000851F }, /* GL_VERTEX_ARRAY_STORAGE_HINT_APPLE */ - { 28233, 0x00008520 }, /* GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV */ - { 28270, 0x00008521 }, /* GL_VERTEX_ARRAY_RANGE_POINTER_APPLE */ - { 28306, 0x00008522 }, /* GL_REGISTER_COMBINERS_NV */ - { 28331, 0x00008523 }, /* GL_VARIABLE_A_NV */ - { 28348, 0x00008524 }, /* GL_VARIABLE_B_NV */ - { 28365, 0x00008525 }, /* GL_VARIABLE_C_NV */ - { 28382, 0x00008526 }, /* GL_VARIABLE_D_NV */ - { 28399, 0x00008527 }, /* GL_VARIABLE_E_NV */ - { 28416, 0x00008528 }, /* GL_VARIABLE_F_NV */ - { 28433, 0x00008529 }, /* GL_VARIABLE_G_NV */ - { 28450, 0x0000852A }, /* GL_CONSTANT_COLOR0_NV */ - { 28472, 0x0000852B }, /* GL_CONSTANT_COLOR1_NV */ - { 28494, 0x0000852C }, /* GL_PRIMARY_COLOR_NV */ - { 28514, 0x0000852D }, /* GL_SECONDARY_COLOR_NV */ - { 28536, 0x0000852E }, /* GL_SPARE0_NV */ - { 28549, 0x0000852F }, /* GL_SPARE1_NV */ - { 28562, 0x00008530 }, /* GL_DISCARD_NV */ - { 28576, 0x00008531 }, /* GL_E_TIMES_F_NV */ - { 28592, 0x00008532 }, /* GL_SPARE0_PLUS_SECONDARY_COLOR_NV */ - { 28626, 0x00008533 }, /* GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV */ - { 28665, 0x00008534 }, /* GL_MULTISAMPLE_FILTER_HINT_NV */ - { 28695, 0x00008535 }, /* GL_PER_STAGE_CONSTANTS_NV */ - { 28721, 0x00008536 }, /* GL_UNSIGNED_IDENTITY_NV */ - { 28745, 0x00008537 }, /* GL_UNSIGNED_INVERT_NV */ - { 28767, 0x00008538 }, /* GL_EXPAND_NORMAL_NV */ - { 28787, 0x00008539 }, /* GL_EXPAND_NEGATE_NV */ - { 28807, 0x0000853A }, /* GL_HALF_BIAS_NORMAL_NV */ - { 28830, 0x0000853B }, /* GL_HALF_BIAS_NEGATE_NV */ - { 28853, 0x0000853C }, /* GL_SIGNED_IDENTITY_NV */ - { 28875, 0x0000853D }, /* GL_SIGNED_NEGATE_NV */ - { 28895, 0x0000853E }, /* GL_SCALE_BY_TWO_NV */ - { 28914, 0x0000853F }, /* GL_SCALE_BY_FOUR_NV */ - { 28934, 0x00008540 }, /* GL_SCALE_BY_ONE_HALF_NV */ - { 28958, 0x00008541 }, /* GL_BIAS_BY_NEGATIVE_ONE_HALF_NV */ - { 28990, 0x00008542 }, /* GL_COMBINER_INPUT_NV */ - { 29011, 0x00008543 }, /* GL_COMBINER_MAPPING_NV */ - { 29034, 0x00008544 }, /* GL_COMBINER_COMPONENT_USAGE_NV */ - { 29065, 0x00008545 }, /* GL_COMBINER_AB_DOT_PRODUCT_NV */ - { 29095, 0x00008546 }, /* GL_COMBINER_CD_DOT_PRODUCT_NV */ - { 29125, 0x00008547 }, /* GL_COMBINER_MUX_SUM_NV */ - { 29148, 0x00008548 }, /* GL_COMBINER_SCALE_NV */ - { 29169, 0x00008549 }, /* GL_COMBINER_BIAS_NV */ - { 29189, 0x0000854A }, /* GL_COMBINER_AB_OUTPUT_NV */ - { 29214, 0x0000854B }, /* GL_COMBINER_CD_OUTPUT_NV */ - { 29239, 0x0000854C }, /* GL_COMBINER_SUM_OUTPUT_NV */ - { 29265, 0x0000854D }, /* GL_MAX_GENERAL_COMBINERS_NV */ - { 29293, 0x0000854E }, /* GL_NUM_GENERAL_COMBINERS_NV */ - { 29321, 0x0000854F }, /* GL_COLOR_SUM_CLAMP_NV */ - { 29343, 0x00008550 }, /* GL_COMBINER0_NV */ - { 29359, 0x00008551 }, /* GL_COMBINER1_NV */ - { 29375, 0x00008552 }, /* GL_COMBINER2_NV */ - { 29391, 0x00008553 }, /* GL_COMBINER3_NV */ - { 29407, 0x00008554 }, /* GL_COMBINER4_NV */ - { 29423, 0x00008555 }, /* GL_COMBINER5_NV */ - { 29439, 0x00008556 }, /* GL_COMBINER6_NV */ - { 29455, 0x00008557 }, /* GL_COMBINER7_NV */ - { 29471, 0x00008558 }, /* GL_PRIMITIVE_RESTART_NV */ - { 29495, 0x00008559 }, /* GL_PRIMITIVE_RESTART_INDEX_NV */ - { 29525, 0x0000855A }, /* GL_FOG_DISTANCE_MODE_NV */ - { 29549, 0x0000855B }, /* GL_EYE_RADIAL_NV */ - { 29566, 0x0000855C }, /* GL_EYE_PLANE_ABSOLUTE_NV */ - { 29591, 0x0000855D }, /* GL_EMBOSS_LIGHT_NV */ - { 29610, 0x0000855E }, /* GL_EMBOSS_CONSTANT_NV */ - { 29632, 0x0000855F }, /* GL_EMBOSS_MAP_NV */ - { 29649, 0x00008560 }, /* GL_RED_MIN_CLAMP_INGR */ - { 29671, 0x00008561 }, /* GL_GREEN_MIN_CLAMP_INGR */ - { 29695, 0x00008562 }, /* GL_BLUE_MIN_CLAMP_INGR */ - { 29718, 0x00008563 }, /* GL_ALPHA_MIN_CLAMP_INGR */ - { 29742, 0x00008564 }, /* GL_RED_MAX_CLAMP_INGR */ - { 29764, 0x00008565 }, /* GL_GREEN_MAX_CLAMP_INGR */ - { 29788, 0x00008566 }, /* GL_BLUE_MAX_CLAMP_INGR */ - { 29811, 0x00008567 }, /* GL_ALPHA_MAX_CLAMP_INGR */ - { 29835, 0x00008568 }, /* GL_INTERLACE_READ_INGR */ - { 29858, 0x00008570 }, /* GL_COMBINE */ - { 29869, 0x00008571 }, /* GL_COMBINE_RGB */ - { 29884, 0x00008572 }, /* GL_COMBINE_ALPHA */ - { 29901, 0x00008573 }, /* GL_RGB_SCALE */ - { 29914, 0x00008574 }, /* GL_ADD_SIGNED */ - { 29928, 0x00008575 }, /* GL_INTERPOLATE */ - { 29943, 0x00008576 }, /* GL_CONSTANT */ - { 29955, 0x00008577 }, /* GL_PRIMARY_COLOR */ - { 29972, 0x00008578 }, /* GL_PREVIOUS */ - { 29984, 0x00008580 }, /* GL_SRC0_RGB */ - { 29996, 0x00008581 }, /* GL_SRC1_RGB */ - { 30008, 0x00008582 }, /* GL_SRC2_RGB */ - { 30020, 0x00008583 }, /* GL_SOURCE3_RGB_NV */ - { 30038, 0x00008588 }, /* GL_SRC0_ALPHA */ - { 30052, 0x00008589 }, /* GL_SRC1_ALPHA */ - { 30066, 0x0000858A }, /* GL_SRC2_ALPHA */ - { 30080, 0x0000858B }, /* GL_SOURCE3_ALPHA_NV */ - { 30100, 0x00008590 }, /* GL_OPERAND0_RGB */ - { 30116, 0x00008591 }, /* GL_OPERAND1_RGB */ - { 30132, 0x00008592 }, /* GL_OPERAND2_RGB */ - { 30148, 0x00008593 }, /* GL_OPERAND3_RGB_NV */ - { 30167, 0x00008598 }, /* GL_OPERAND0_ALPHA */ - { 30185, 0x00008599 }, /* GL_OPERAND1_ALPHA */ - { 30203, 0x0000859A }, /* GL_OPERAND2_ALPHA */ - { 30221, 0x0000859B }, /* GL_OPERAND3_ALPHA_NV */ - { 30242, 0x000085A0 }, /* GL_PACK_SUBSAMPLE_RATE_SGIX */ - { 30270, 0x000085A1 }, /* GL_UNPACK_SUBSAMPLE_RATE_SGIX */ - { 30300, 0x000085A2 }, /* GL_PIXEL_SUBSAMPLE_4444_SGIX */ - { 30329, 0x000085A3 }, /* GL_PIXEL_SUBSAMPLE_2424_SGIX */ - { 30358, 0x000085A4 }, /* GL_PIXEL_SUBSAMPLE_4242_SGIX */ - { 30387, 0x000085AE }, /* GL_PERTURB_EXT */ - { 30402, 0x000085AF }, /* GL_TEXTURE_NORMAL_EXT */ - { 30424, 0x000085B0 }, /* GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE */ - { 30461, 0x000085B1 }, /* GL_TRANSFORM_HINT_APPLE */ - { 30485, 0x000085B2 }, /* GL_UNPACK_CLIENT_STORAGE_APPLE */ - { 30516, 0x000085B3 }, /* GL_BUFFER_OBJECT_APPLE */ - { 30539, 0x000085B4 }, /* GL_STORAGE_CLIENT_APPLE */ - { 30563, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING */ - { 30587, 0x000085B7 }, /* GL_TEXTURE_RANGE_LENGTH_APPLE */ - { 30617, 0x000085B8 }, /* GL_TEXTURE_RANGE_POINTER_APPLE */ - { 30648, 0x000085B9 }, /* GL_YCBCR_422_APPLE */ - { 30667, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_APPLE */ - { 30695, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */ - { 30727, 0x000085BC }, /* GL_TEXTURE_STORAGE_HINT_APPLE */ - { 30757, 0x000085BD }, /* GL_STORAGE_PRIVATE_APPLE */ - { 30782, 0x000085BE }, /* GL_STORAGE_CACHED_APPLE */ - { 30806, 0x000085BF }, /* GL_STORAGE_SHARED_APPLE */ - { 30830, 0x000085C0 }, /* GL_REPLACEMENT_CODE_ARRAY_SUN */ - { 30860, 0x000085C1 }, /* GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN */ - { 30895, 0x000085C2 }, /* GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN */ - { 30932, 0x000085C3 }, /* GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN */ - { 30970, 0x000085C4 }, /* GL_R1UI_V3F_SUN */ - { 30986, 0x000085C5 }, /* GL_R1UI_C4UB_V3F_SUN */ - { 31007, 0x000085C6 }, /* GL_R1UI_C3F_V3F_SUN */ - { 31027, 0x000085C7 }, /* GL_R1UI_N3F_V3F_SUN */ - { 31047, 0x000085C8 }, /* GL_R1UI_C4F_N3F_V3F_SUN */ - { 31071, 0x000085C9 }, /* GL_R1UI_T2F_V3F_SUN */ - { 31091, 0x000085CA }, /* GL_R1UI_T2F_N3F_V3F_SUN */ - { 31115, 0x000085CB }, /* GL_R1UI_T2F_C4F_N3F_V3F_SUN */ - { 31143, 0x000085CC }, /* GL_SLICE_ACCUM_SUN */ - { 31162, 0x00008614 }, /* GL_QUAD_MESH_SUN */ - { 31179, 0x00008615 }, /* GL_TRIANGLE_MESH_SUN */ - { 31200, 0x00008620 }, /* GL_VERTEX_PROGRAM_ARB */ - { 31222, 0x00008621 }, /* GL_VERTEX_STATE_PROGRAM_NV */ - { 31249, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */ - { 31280, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */ - { 31308, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */ - { 31338, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */ - { 31366, 0x00008626 }, /* GL_CURRENT_VERTEX_ATTRIB */ - { 31391, 0x00008627 }, /* GL_PROGRAM_LENGTH_ARB */ - { 31413, 0x00008628 }, /* GL_PROGRAM_STRING_ARB */ - { 31435, 0x00008629 }, /* GL_MODELVIEW_PROJECTION_NV */ - { 31462, 0x0000862A }, /* GL_IDENTITY_NV */ - { 31477, 0x0000862B }, /* GL_INVERSE_NV */ - { 31491, 0x0000862C }, /* GL_TRANSPOSE_NV */ - { 31507, 0x0000862D }, /* GL_INVERSE_TRANSPOSE_NV */ - { 31531, 0x0000862E }, /* GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB */ - { 31569, 0x0000862F }, /* GL_MAX_PROGRAM_MATRICES_ARB */ - { 31597, 0x00008630 }, /* GL_MATRIX0_NV */ - { 31611, 0x00008631 }, /* GL_MATRIX1_NV */ - { 31625, 0x00008632 }, /* GL_MATRIX2_NV */ - { 31639, 0x00008633 }, /* GL_MATRIX3_NV */ - { 31653, 0x00008634 }, /* GL_MATRIX4_NV */ - { 31667, 0x00008635 }, /* GL_MATRIX5_NV */ - { 31681, 0x00008636 }, /* GL_MATRIX6_NV */ - { 31695, 0x00008637 }, /* GL_MATRIX7_NV */ - { 31709, 0x00008640 }, /* GL_CURRENT_MATRIX_STACK_DEPTH_ARB */ - { 31743, 0x00008641 }, /* GL_CURRENT_MATRIX_ARB */ - { 31765, 0x00008642 }, /* GL_PROGRAM_POINT_SIZE */ - { 31787, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE */ - { 31814, 0x00008644 }, /* GL_PROGRAM_PARAMETER_NV */ - { 31838, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */ - { 31869, 0x00008646 }, /* GL_PROGRAM_TARGET_NV */ - { 31890, 0x00008647 }, /* GL_PROGRAM_RESIDENT_NV */ - { 31913, 0x00008648 }, /* GL_TRACK_MATRIX_NV */ - { 31932, 0x00008649 }, /* GL_TRACK_MATRIX_TRANSFORM_NV */ - { 31961, 0x0000864A }, /* GL_VERTEX_PROGRAM_BINDING_NV */ - { 31990, 0x0000864B }, /* GL_PROGRAM_ERROR_POSITION_ARB */ - { 32020, 0x0000864C }, /* GL_OFFSET_TEXTURE_RECTANGLE_NV */ - { 32051, 0x0000864D }, /* GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV */ - { 32088, 0x0000864E }, /* GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV */ - { 32124, 0x0000864F }, /* GL_DEPTH_CLAMP */ - { 32139, 0x00008650 }, /* GL_VERTEX_ATTRIB_ARRAY0_NV */ - { 32166, 0x00008651 }, /* GL_VERTEX_ATTRIB_ARRAY1_NV */ - { 32193, 0x00008652 }, /* GL_VERTEX_ATTRIB_ARRAY2_NV */ - { 32220, 0x00008653 }, /* GL_VERTEX_ATTRIB_ARRAY3_NV */ - { 32247, 0x00008654 }, /* GL_VERTEX_ATTRIB_ARRAY4_NV */ - { 32274, 0x00008655 }, /* GL_VERTEX_ATTRIB_ARRAY5_NV */ - { 32301, 0x00008656 }, /* GL_VERTEX_ATTRIB_ARRAY6_NV */ - { 32328, 0x00008657 }, /* GL_VERTEX_ATTRIB_ARRAY7_NV */ - { 32355, 0x00008658 }, /* GL_VERTEX_ATTRIB_ARRAY8_NV */ - { 32382, 0x00008659 }, /* GL_VERTEX_ATTRIB_ARRAY9_NV */ - { 32409, 0x0000865A }, /* GL_VERTEX_ATTRIB_ARRAY10_NV */ - { 32437, 0x0000865B }, /* GL_VERTEX_ATTRIB_ARRAY11_NV */ - { 32465, 0x0000865C }, /* GL_VERTEX_ATTRIB_ARRAY12_NV */ - { 32493, 0x0000865D }, /* GL_VERTEX_ATTRIB_ARRAY13_NV */ - { 32521, 0x0000865E }, /* GL_VERTEX_ATTRIB_ARRAY14_NV */ - { 32549, 0x0000865F }, /* GL_VERTEX_ATTRIB_ARRAY15_NV */ - { 32577, 0x00008660 }, /* GL_MAP1_VERTEX_ATTRIB0_4_NV */ - { 32605, 0x00008661 }, /* GL_MAP1_VERTEX_ATTRIB1_4_NV */ - { 32633, 0x00008662 }, /* GL_MAP1_VERTEX_ATTRIB2_4_NV */ - { 32661, 0x00008663 }, /* GL_MAP1_VERTEX_ATTRIB3_4_NV */ - { 32689, 0x00008664 }, /* GL_MAP1_VERTEX_ATTRIB4_4_NV */ - { 32717, 0x00008665 }, /* GL_MAP1_VERTEX_ATTRIB5_4_NV */ - { 32745, 0x00008666 }, /* GL_MAP1_VERTEX_ATTRIB6_4_NV */ - { 32773, 0x00008667 }, /* GL_MAP1_VERTEX_ATTRIB7_4_NV */ - { 32801, 0x00008668 }, /* GL_MAP1_VERTEX_ATTRIB8_4_NV */ - { 32829, 0x00008669 }, /* GL_MAP1_VERTEX_ATTRIB9_4_NV */ - { 32857, 0x0000866A }, /* GL_MAP1_VERTEX_ATTRIB10_4_NV */ - { 32886, 0x0000866B }, /* GL_MAP1_VERTEX_ATTRIB11_4_NV */ - { 32915, 0x0000866C }, /* GL_MAP1_VERTEX_ATTRIB12_4_NV */ - { 32944, 0x0000866D }, /* GL_MAP1_VERTEX_ATTRIB13_4_NV */ - { 32973, 0x0000866E }, /* GL_MAP1_VERTEX_ATTRIB14_4_NV */ - { 33002, 0x0000866F }, /* GL_MAP1_VERTEX_ATTRIB15_4_NV */ - { 33031, 0x00008670 }, /* GL_MAP2_VERTEX_ATTRIB0_4_NV */ - { 33059, 0x00008671 }, /* GL_MAP2_VERTEX_ATTRIB1_4_NV */ - { 33087, 0x00008672 }, /* GL_MAP2_VERTEX_ATTRIB2_4_NV */ - { 33115, 0x00008673 }, /* GL_MAP2_VERTEX_ATTRIB3_4_NV */ - { 33143, 0x00008674 }, /* GL_MAP2_VERTEX_ATTRIB4_4_NV */ - { 33171, 0x00008675 }, /* GL_MAP2_VERTEX_ATTRIB5_4_NV */ - { 33199, 0x00008676 }, /* GL_MAP2_VERTEX_ATTRIB6_4_NV */ - { 33227, 0x00008677 }, /* GL_PROGRAM_BINDING_ARB */ - { 33250, 0x00008678 }, /* GL_MAP2_VERTEX_ATTRIB8_4_NV */ - { 33278, 0x00008679 }, /* GL_MAP2_VERTEX_ATTRIB9_4_NV */ - { 33306, 0x0000867A }, /* GL_MAP2_VERTEX_ATTRIB10_4_NV */ - { 33335, 0x0000867B }, /* GL_MAP2_VERTEX_ATTRIB11_4_NV */ - { 33364, 0x0000867C }, /* GL_MAP2_VERTEX_ATTRIB12_4_NV */ - { 33393, 0x0000867D }, /* GL_MAP2_VERTEX_ATTRIB13_4_NV */ - { 33422, 0x0000867E }, /* GL_MAP2_VERTEX_ATTRIB14_4_NV */ - { 33451, 0x0000867F }, /* GL_MAP2_VERTEX_ATTRIB15_4_NV */ - { 33480, 0x000086A0 }, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE */ - { 33513, 0x000086A1 }, /* GL_TEXTURE_COMPRESSED */ - { 33535, 0x000086A2 }, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS */ - { 33569, 0x000086A3 }, /* GL_COMPRESSED_TEXTURE_FORMATS */ - { 33599, 0x000086A4 }, /* GL_MAX_VERTEX_UNITS_ARB */ - { 33623, 0x000086A5 }, /* GL_ACTIVE_VERTEX_UNITS_ARB */ - { 33650, 0x000086A6 }, /* GL_WEIGHT_SUM_UNITY_ARB */ - { 33674, 0x000086A7 }, /* GL_VERTEX_BLEND_ARB */ - { 33694, 0x000086A8 }, /* GL_CURRENT_WEIGHT_ARB */ - { 33716, 0x000086A9 }, /* GL_WEIGHT_ARRAY_TYPE_ARB */ - { 33741, 0x000086AA }, /* GL_WEIGHT_ARRAY_STRIDE_ARB */ - { 33768, 0x000086AB }, /* GL_WEIGHT_ARRAY_SIZE_ARB */ - { 33793, 0x000086AC }, /* GL_WEIGHT_ARRAY_POINTER_ARB */ - { 33821, 0x000086AD }, /* GL_WEIGHT_ARRAY_ARB */ - { 33841, 0x000086AE }, /* GL_DOT3_RGB */ - { 33853, 0x000086AF }, /* GL_DOT3_RGBA */ - { 33866, 0x000086B0 }, /* GL_COMPRESSED_RGB_FXT1_3DFX */ - { 33894, 0x000086B1 }, /* GL_COMPRESSED_RGBA_FXT1_3DFX */ - { 33923, 0x000086B2 }, /* GL_MULTISAMPLE_3DFX */ - { 33943, 0x000086B3 }, /* GL_SAMPLE_BUFFERS_3DFX */ - { 33966, 0x000086B4 }, /* GL_SAMPLES_3DFX */ - { 33982, 0x000086C0 }, /* GL_EVAL_2D_NV */ - { 33996, 0x000086C1 }, /* GL_EVAL_TRIANGULAR_2D_NV */ - { 34021, 0x000086C2 }, /* GL_MAP_TESSELLATION_NV */ - { 34044, 0x000086C3 }, /* GL_MAP_ATTRIB_U_ORDER_NV */ - { 34069, 0x000086C4 }, /* GL_MAP_ATTRIB_V_ORDER_NV */ - { 34094, 0x000086C5 }, /* GL_EVAL_FRACTIONAL_TESSELLATION_NV */ - { 34129, 0x000086C6 }, /* GL_EVAL_VERTEX_ATTRIB0_NV */ - { 34155, 0x000086C7 }, /* GL_EVAL_VERTEX_ATTRIB1_NV */ - { 34181, 0x000086C8 }, /* GL_EVAL_VERTEX_ATTRIB2_NV */ - { 34207, 0x000086C9 }, /* GL_EVAL_VERTEX_ATTRIB3_NV */ - { 34233, 0x000086CA }, /* GL_EVAL_VERTEX_ATTRIB4_NV */ - { 34259, 0x000086CB }, /* GL_EVAL_VERTEX_ATTRIB5_NV */ - { 34285, 0x000086CC }, /* GL_EVAL_VERTEX_ATTRIB6_NV */ - { 34311, 0x000086CD }, /* GL_EVAL_VERTEX_ATTRIB7_NV */ - { 34337, 0x000086CE }, /* GL_EVAL_VERTEX_ATTRIB8_NV */ - { 34363, 0x000086CF }, /* GL_EVAL_VERTEX_ATTRIB9_NV */ - { 34389, 0x000086D0 }, /* GL_EVAL_VERTEX_ATTRIB10_NV */ - { 34416, 0x000086D1 }, /* GL_EVAL_VERTEX_ATTRIB11_NV */ - { 34443, 0x000086D2 }, /* GL_EVAL_VERTEX_ATTRIB12_NV */ - { 34470, 0x000086D3 }, /* GL_EVAL_VERTEX_ATTRIB13_NV */ - { 34497, 0x000086D4 }, /* GL_EVAL_VERTEX_ATTRIB14_NV */ - { 34524, 0x000086D5 }, /* GL_EVAL_VERTEX_ATTRIB15_NV */ - { 34551, 0x000086D6 }, /* GL_MAX_MAP_TESSELLATION_NV */ - { 34578, 0x000086D7 }, /* GL_MAX_RATIONAL_EVAL_ORDER_NV */ - { 34608, 0x000086D8 }, /* GL_MAX_PROGRAM_PATCH_ATTRIBS_NV */ - { 34640, 0x000086D9 }, /* GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV */ - { 34680, 0x000086DA }, /* GL_UNSIGNED_INT_S8_S8_8_8_NV */ - { 34709, 0x000086DB }, /* GL_UNSIGNED_INT_8_8_S8_S8_REV_NV */ - { 34742, 0x000086DC }, /* GL_DSDT_MAG_INTENSITY_NV */ - { 34767, 0x000086DD }, /* GL_SHADER_CONSISTENT_NV */ - { 34791, 0x000086DE }, /* GL_TEXTURE_SHADER_NV */ - { 34812, 0x000086DF }, /* GL_SHADER_OPERATION_NV */ - { 34835, 0x000086E0 }, /* GL_CULL_MODES_NV */ - { 34852, 0x000086E1 }, /* GL_OFFSET_TEXTURE_MATRIX_NV */ - { 34880, 0x000086E2 }, /* GL_OFFSET_TEXTURE_SCALE_NV */ - { 34907, 0x000086E3 }, /* GL_OFFSET_TEXTURE_BIAS_NV */ - { 34933, 0x000086E4 }, /* GL_PREVIOUS_TEXTURE_INPUT_NV */ - { 34962, 0x000086E5 }, /* GL_CONST_EYE_NV */ - { 34978, 0x000086E6 }, /* GL_PASS_THROUGH_NV */ - { 34997, 0x000086E7 }, /* GL_CULL_FRAGMENT_NV */ - { 35017, 0x000086E8 }, /* GL_OFFSET_TEXTURE_2D_NV */ - { 35041, 0x000086E9 }, /* GL_DEPENDENT_AR_TEXTURE_2D_NV */ - { 35071, 0x000086EA }, /* GL_DEPENDENT_GB_TEXTURE_2D_NV */ - { 35101, 0x000086EB }, /* GL_SURFACE_STATE_NV */ - { 35121, 0x000086EC }, /* GL_DOT_PRODUCT_NV */ - { 35139, 0x000086ED }, /* GL_DOT_PRODUCT_DEPTH_REPLACE_NV */ - { 35171, 0x000086EE }, /* GL_DOT_PRODUCT_TEXTURE_2D_NV */ - { 35200, 0x000086EF }, /* GL_DOT_PRODUCT_TEXTURE_3D_NV */ - { 35229, 0x000086F0 }, /* GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV */ - { 35264, 0x000086F1 }, /* GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV */ - { 35299, 0x000086F2 }, /* GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV */ - { 35334, 0x000086F3 }, /* GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV */ - { 35379, 0x000086F4 }, /* GL_HILO_NV */ - { 35390, 0x000086F5 }, /* GL_DSDT_NV */ - { 35401, 0x000086F6 }, /* GL_DSDT_MAG_NV */ - { 35416, 0x000086F7 }, /* GL_DSDT_MAG_VIB_NV */ - { 35435, 0x000086F8 }, /* GL_HILO16_NV */ - { 35448, 0x000086F9 }, /* GL_SIGNED_HILO_NV */ - { 35466, 0x000086FA }, /* GL_SIGNED_HILO16_NV */ - { 35486, 0x000086FB }, /* GL_SIGNED_RGBA_NV */ - { 35504, 0x000086FC }, /* GL_SIGNED_RGBA8_NV */ - { 35523, 0x000086FD }, /* GL_SURFACE_REGISTERED_NV */ - { 35548, 0x000086FE }, /* GL_SIGNED_RGB_NV */ - { 35565, 0x000086FF }, /* GL_SIGNED_RGB8_NV */ - { 35583, 0x00008700 }, /* GL_SURFACE_MAPPED_NV */ - { 35604, 0x00008701 }, /* GL_SIGNED_LUMINANCE_NV */ - { 35627, 0x00008702 }, /* GL_SIGNED_LUMINANCE8_NV */ - { 35651, 0x00008703 }, /* GL_SIGNED_LUMINANCE_ALPHA_NV */ - { 35680, 0x00008704 }, /* GL_SIGNED_LUMINANCE8_ALPHA8_NV */ - { 35711, 0x00008705 }, /* GL_SIGNED_ALPHA_NV */ - { 35730, 0x00008706 }, /* GL_SIGNED_ALPHA8_NV */ - { 35750, 0x00008707 }, /* GL_SIGNED_INTENSITY_NV */ - { 35773, 0x00008708 }, /* GL_SIGNED_INTENSITY8_NV */ - { 35797, 0x00008709 }, /* GL_DSDT8_NV */ - { 35809, 0x0000870A }, /* GL_DSDT8_MAG8_NV */ - { 35826, 0x0000870B }, /* GL_DSDT8_MAG8_INTENSITY8_NV */ - { 35854, 0x0000870C }, /* GL_SIGNED_RGB_UNSIGNED_ALPHA_NV */ - { 35886, 0x0000870D }, /* GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV */ - { 35920, 0x0000870E }, /* GL_HI_SCALE_NV */ - { 35935, 0x0000870F }, /* GL_LO_SCALE_NV */ - { 35950, 0x00008710 }, /* GL_DS_SCALE_NV */ - { 35965, 0x00008711 }, /* GL_DT_SCALE_NV */ - { 35980, 0x00008712 }, /* GL_MAGNITUDE_SCALE_NV */ - { 36002, 0x00008713 }, /* GL_VIBRANCE_SCALE_NV */ - { 36023, 0x00008714 }, /* GL_HI_BIAS_NV */ - { 36037, 0x00008715 }, /* GL_LO_BIAS_NV */ - { 36051, 0x00008716 }, /* GL_DS_BIAS_NV */ - { 36065, 0x00008717 }, /* GL_DT_BIAS_NV */ - { 36079, 0x00008718 }, /* GL_MAGNITUDE_BIAS_NV */ - { 36100, 0x00008719 }, /* GL_VIBRANCE_BIAS_NV */ - { 36120, 0x0000871A }, /* GL_TEXTURE_BORDER_VALUES_NV */ - { 36148, 0x0000871B }, /* GL_TEXTURE_HI_SIZE_NV */ - { 36170, 0x0000871C }, /* GL_TEXTURE_LO_SIZE_NV */ - { 36192, 0x0000871D }, /* GL_TEXTURE_DS_SIZE_NV */ - { 36214, 0x0000871E }, /* GL_TEXTURE_DT_SIZE_NV */ - { 36236, 0x0000871F }, /* GL_TEXTURE_MAG_SIZE_NV */ - { 36259, 0x00008722 }, /* GL_MODELVIEW2_ARB */ - { 36277, 0x00008723 }, /* GL_MODELVIEW3_ARB */ - { 36295, 0x00008724 }, /* GL_MODELVIEW4_ARB */ - { 36313, 0x00008725 }, /* GL_MODELVIEW5_ARB */ - { 36331, 0x00008726 }, /* GL_MODELVIEW6_ARB */ - { 36349, 0x00008727 }, /* GL_MODELVIEW7_ARB */ - { 36367, 0x00008728 }, /* GL_MODELVIEW8_ARB */ - { 36385, 0x00008729 }, /* GL_MODELVIEW9_ARB */ - { 36403, 0x0000872A }, /* GL_MODELVIEW10_ARB */ - { 36422, 0x0000872B }, /* GL_MODELVIEW11_ARB */ - { 36441, 0x0000872C }, /* GL_MODELVIEW12_ARB */ - { 36460, 0x0000872D }, /* GL_MODELVIEW13_ARB */ - { 36479, 0x0000872E }, /* GL_MODELVIEW14_ARB */ - { 36498, 0x0000872F }, /* GL_MODELVIEW15_ARB */ - { 36517, 0x00008730 }, /* GL_MODELVIEW16_ARB */ - { 36536, 0x00008731 }, /* GL_MODELVIEW17_ARB */ - { 36555, 0x00008732 }, /* GL_MODELVIEW18_ARB */ - { 36574, 0x00008733 }, /* GL_MODELVIEW19_ARB */ - { 36593, 0x00008734 }, /* GL_MODELVIEW20_ARB */ - { 36612, 0x00008735 }, /* GL_MODELVIEW21_ARB */ - { 36631, 0x00008736 }, /* GL_MODELVIEW22_ARB */ - { 36650, 0x00008737 }, /* GL_MODELVIEW23_ARB */ - { 36669, 0x00008738 }, /* GL_MODELVIEW24_ARB */ - { 36688, 0x00008739 }, /* GL_MODELVIEW25_ARB */ - { 36707, 0x0000873A }, /* GL_MODELVIEW26_ARB */ - { 36726, 0x0000873B }, /* GL_MODELVIEW27_ARB */ - { 36745, 0x0000873C }, /* GL_MODELVIEW28_ARB */ - { 36764, 0x0000873D }, /* GL_MODELVIEW29_ARB */ - { 36783, 0x0000873E }, /* GL_MODELVIEW30_ARB */ - { 36802, 0x0000873F }, /* GL_MODELVIEW31_ARB */ - { 36821, 0x00008740 }, /* GL_DOT3_RGB_EXT */ - { 36837, 0x00008741 }, /* GL_PROGRAM_BINARY_LENGTH */ - { 36862, 0x00008742 }, /* GL_MIRROR_CLAMP_EXT */ - { 36882, 0x00008743 }, /* GL_MIRROR_CLAMP_TO_EDGE */ - { 36906, 0x00008744 }, /* GL_MODULATE_ADD_ATI */ - { 36926, 0x00008745 }, /* GL_MODULATE_SIGNED_ADD_ATI */ - { 36953, 0x00008746 }, /* GL_MODULATE_SUBTRACT_ATI */ - { 36978, 0x0000874A }, /* GL_SET_AMD */ - { 36989, 0x0000874B }, /* GL_REPLACE_VALUE_AMD */ - { 37010, 0x0000874C }, /* GL_STENCIL_OP_VALUE_AMD */ - { 37034, 0x0000874D }, /* GL_STENCIL_BACK_OP_VALUE_AMD */ - { 37063, 0x0000874E }, /* GL_VERTEX_ATTRIB_ARRAY_LONG */ - { 37091, 0x0000874F }, /* GL_OCCLUSION_QUERY_EVENT_MASK_AMD */ - { 37125, 0x00008757 }, /* GL_YCBCR_MESA */ - { 37139, 0x00008758 }, /* GL_PACK_INVERT_MESA */ - { 37159, 0x00008759 }, /* GL_TEXTURE_1D_STACK_MESAX */ - { 37185, 0x0000875A }, /* GL_TEXTURE_2D_STACK_MESAX */ - { 37211, 0x0000875B }, /* GL_PROXY_TEXTURE_1D_STACK_MESAX */ - { 37243, 0x0000875C }, /* GL_PROXY_TEXTURE_2D_STACK_MESAX */ - { 37275, 0x0000875D }, /* GL_TEXTURE_1D_STACK_BINDING_MESAX */ - { 37309, 0x0000875E }, /* GL_TEXTURE_2D_STACK_BINDING_MESAX */ - { 37343, 0x00008760 }, /* GL_STATIC_ATI */ - { 37357, 0x00008761 }, /* GL_DYNAMIC_ATI */ - { 37372, 0x00008762 }, /* GL_PRESERVE_ATI */ - { 37388, 0x00008763 }, /* GL_DISCARD_ATI */ - { 37403, 0x00008764 }, /* GL_BUFFER_SIZE */ - { 37418, 0x00008765 }, /* GL_BUFFER_USAGE */ - { 37434, 0x00008766 }, /* GL_ARRAY_OBJECT_BUFFER_ATI */ - { 37461, 0x00008767 }, /* GL_ARRAY_OBJECT_OFFSET_ATI */ - { 37488, 0x00008768 }, /* GL_ELEMENT_ARRAY_ATI */ - { 37509, 0x00008769 }, /* GL_ELEMENT_ARRAY_TYPE_ATI */ - { 37535, 0x0000876A }, /* GL_ELEMENT_ARRAY_POINTER_ATI */ - { 37564, 0x0000876B }, /* GL_MAX_VERTEX_STREAMS_ATI */ - { 37590, 0x0000876C }, /* GL_VERTEX_STREAM0_ATI */ - { 37612, 0x0000876D }, /* GL_VERTEX_STREAM1_ATI */ - { 37634, 0x0000876E }, /* GL_VERTEX_STREAM2_ATI */ - { 37656, 0x0000876F }, /* GL_VERTEX_STREAM3_ATI */ - { 37678, 0x00008770 }, /* GL_VERTEX_STREAM4_ATI */ - { 37700, 0x00008771 }, /* GL_VERTEX_STREAM5_ATI */ - { 37722, 0x00008772 }, /* GL_VERTEX_STREAM6_ATI */ - { 37744, 0x00008773 }, /* GL_VERTEX_STREAM7_ATI */ - { 37766, 0x00008774 }, /* GL_VERTEX_SOURCE_ATI */ - { 37787, 0x00008775 }, /* GL_BUMP_ROT_MATRIX_ATI */ - { 37810, 0x00008776 }, /* GL_BUMP_ROT_MATRIX_SIZE_ATI */ - { 37838, 0x00008777 }, /* GL_BUMP_NUM_TEX_UNITS_ATI */ - { 37864, 0x00008778 }, /* GL_BUMP_TEX_UNITS_ATI */ - { 37886, 0x00008779 }, /* GL_DUDV_ATI */ - { 37898, 0x0000877A }, /* GL_DU8DV8_ATI */ - { 37912, 0x0000877B }, /* GL_BUMP_ENVMAP_ATI */ - { 37931, 0x0000877C }, /* GL_BUMP_TARGET_ATI */ - { 37950, 0x00008780 }, /* GL_VERTEX_SHADER_EXT */ - { 37971, 0x00008781 }, /* GL_VERTEX_SHADER_BINDING_EXT */ - { 38000, 0x00008782 }, /* GL_OP_INDEX_EXT */ - { 38016, 0x00008783 }, /* GL_OP_NEGATE_EXT */ - { 38033, 0x00008784 }, /* GL_OP_DOT3_EXT */ - { 38048, 0x00008785 }, /* GL_OP_DOT4_EXT */ - { 38063, 0x00008786 }, /* GL_OP_MUL_EXT */ - { 38077, 0x00008787 }, /* GL_OP_ADD_EXT */ - { 38091, 0x00008788 }, /* GL_OP_MADD_EXT */ - { 38106, 0x00008789 }, /* GL_OP_FRAC_EXT */ - { 38121, 0x0000878A }, /* GL_OP_MAX_EXT */ - { 38135, 0x0000878B }, /* GL_OP_MIN_EXT */ - { 38149, 0x0000878C }, /* GL_OP_SET_GE_EXT */ - { 38166, 0x0000878D }, /* GL_OP_SET_LT_EXT */ - { 38183, 0x0000878E }, /* GL_OP_CLAMP_EXT */ - { 38199, 0x0000878F }, /* GL_OP_FLOOR_EXT */ - { 38215, 0x00008790 }, /* GL_OP_ROUND_EXT */ - { 38231, 0x00008791 }, /* GL_OP_EXP_BASE_2_EXT */ - { 38252, 0x00008792 }, /* GL_OP_LOG_BASE_2_EXT */ - { 38273, 0x00008793 }, /* GL_OP_POWER_EXT */ - { 38289, 0x00008794 }, /* GL_OP_RECIP_EXT */ - { 38305, 0x00008795 }, /* GL_OP_RECIP_SQRT_EXT */ - { 38326, 0x00008796 }, /* GL_OP_SUB_EXT */ - { 38340, 0x00008797 }, /* GL_OP_CROSS_PRODUCT_EXT */ - { 38364, 0x00008798 }, /* GL_OP_MULTIPLY_MATRIX_EXT */ - { 38390, 0x00008799 }, /* GL_OP_MOV_EXT */ - { 38404, 0x0000879A }, /* GL_OUTPUT_VERTEX_EXT */ - { 38425, 0x0000879B }, /* GL_OUTPUT_COLOR0_EXT */ - { 38446, 0x0000879C }, /* GL_OUTPUT_COLOR1_EXT */ - { 38467, 0x0000879D }, /* GL_OUTPUT_TEXTURE_COORD0_EXT */ - { 38496, 0x0000879E }, /* GL_OUTPUT_TEXTURE_COORD1_EXT */ - { 38525, 0x0000879F }, /* GL_OUTPUT_TEXTURE_COORD2_EXT */ - { 38554, 0x000087A0 }, /* GL_OUTPUT_TEXTURE_COORD3_EXT */ - { 38583, 0x000087A1 }, /* GL_OUTPUT_TEXTURE_COORD4_EXT */ - { 38612, 0x000087A2 }, /* GL_OUTPUT_TEXTURE_COORD5_EXT */ - { 38641, 0x000087A3 }, /* GL_OUTPUT_TEXTURE_COORD6_EXT */ - { 38670, 0x000087A4 }, /* GL_OUTPUT_TEXTURE_COORD7_EXT */ - { 38699, 0x000087A5 }, /* GL_OUTPUT_TEXTURE_COORD8_EXT */ - { 38728, 0x000087A6 }, /* GL_OUTPUT_TEXTURE_COORD9_EXT */ - { 38757, 0x000087A7 }, /* GL_OUTPUT_TEXTURE_COORD10_EXT */ - { 38787, 0x000087A8 }, /* GL_OUTPUT_TEXTURE_COORD11_EXT */ - { 38817, 0x000087A9 }, /* GL_OUTPUT_TEXTURE_COORD12_EXT */ - { 38847, 0x000087AA }, /* GL_OUTPUT_TEXTURE_COORD13_EXT */ - { 38877, 0x000087AB }, /* GL_OUTPUT_TEXTURE_COORD14_EXT */ - { 38907, 0x000087AC }, /* GL_OUTPUT_TEXTURE_COORD15_EXT */ - { 38937, 0x000087AD }, /* GL_OUTPUT_TEXTURE_COORD16_EXT */ - { 38967, 0x000087AE }, /* GL_OUTPUT_TEXTURE_COORD17_EXT */ - { 38997, 0x000087AF }, /* GL_OUTPUT_TEXTURE_COORD18_EXT */ - { 39027, 0x000087B0 }, /* GL_OUTPUT_TEXTURE_COORD19_EXT */ - { 39057, 0x000087B1 }, /* GL_OUTPUT_TEXTURE_COORD20_EXT */ - { 39087, 0x000087B2 }, /* GL_OUTPUT_TEXTURE_COORD21_EXT */ - { 39117, 0x000087B3 }, /* GL_OUTPUT_TEXTURE_COORD22_EXT */ - { 39147, 0x000087B4 }, /* GL_OUTPUT_TEXTURE_COORD23_EXT */ - { 39177, 0x000087B5 }, /* GL_OUTPUT_TEXTURE_COORD24_EXT */ - { 39207, 0x000087B6 }, /* GL_OUTPUT_TEXTURE_COORD25_EXT */ - { 39237, 0x000087B7 }, /* GL_OUTPUT_TEXTURE_COORD26_EXT */ - { 39267, 0x000087B8 }, /* GL_OUTPUT_TEXTURE_COORD27_EXT */ - { 39297, 0x000087B9 }, /* GL_OUTPUT_TEXTURE_COORD28_EXT */ - { 39327, 0x000087BA }, /* GL_OUTPUT_TEXTURE_COORD29_EXT */ - { 39357, 0x000087BB }, /* GL_OUTPUT_TEXTURE_COORD30_EXT */ - { 39387, 0x000087BC }, /* GL_OUTPUT_TEXTURE_COORD31_EXT */ - { 39417, 0x000087BD }, /* GL_OUTPUT_FOG_EXT */ - { 39435, 0x000087BE }, /* GL_SCALAR_EXT */ - { 39449, 0x000087BF }, /* GL_VECTOR_EXT */ - { 39463, 0x000087C0 }, /* GL_MATRIX_EXT */ - { 39477, 0x000087C1 }, /* GL_VARIANT_EXT */ - { 39492, 0x000087C2 }, /* GL_INVARIANT_EXT */ - { 39509, 0x000087C3 }, /* GL_LOCAL_CONSTANT_EXT */ - { 39531, 0x000087C4 }, /* GL_LOCAL_EXT */ - { 39544, 0x000087C5 }, /* GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT */ - { 39582, 0x000087C6 }, /* GL_MAX_VERTEX_SHADER_VARIANTS_EXT */ - { 39616, 0x000087C7 }, /* GL_MAX_VERTEX_SHADER_INVARIANTS_EXT */ - { 39652, 0x000087C8 }, /* GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT */ - { 39693, 0x000087C9 }, /* GL_MAX_VERTEX_SHADER_LOCALS_EXT */ - { 39725, 0x000087CA }, /* GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT */ - { 39773, 0x000087CB }, /* GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT */ - { 39817, 0x000087CC }, /* GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT */ - { 39868, 0x000087CD }, /* GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT */ - { 39914, 0x000087CE }, /* GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT */ - { 39956, 0x000087CF }, /* GL_VERTEX_SHADER_INSTRUCTIONS_EXT */ - { 39990, 0x000087D0 }, /* GL_VERTEX_SHADER_VARIANTS_EXT */ - { 40020, 0x000087D1 }, /* GL_VERTEX_SHADER_INVARIANTS_EXT */ - { 40052, 0x000087D2 }, /* GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT */ - { 40089, 0x000087D3 }, /* GL_VERTEX_SHADER_LOCALS_EXT */ - { 40117, 0x000087D4 }, /* GL_VERTEX_SHADER_OPTIMIZED_EXT */ - { 40148, 0x000087D5 }, /* GL_X_EXT */ - { 40157, 0x000087D6 }, /* GL_Y_EXT */ - { 40166, 0x000087D7 }, /* GL_Z_EXT */ - { 40175, 0x000087D8 }, /* GL_W_EXT */ - { 40184, 0x000087D9 }, /* GL_NEGATIVE_X_EXT */ - { 40202, 0x000087DA }, /* GL_NEGATIVE_Y_EXT */ - { 40220, 0x000087DB }, /* GL_NEGATIVE_Z_EXT */ - { 40238, 0x000087DC }, /* GL_NEGATIVE_W_EXT */ - { 40256, 0x000087DD }, /* GL_ZERO_EXT */ - { 40268, 0x000087DE }, /* GL_ONE_EXT */ - { 40279, 0x000087DF }, /* GL_NEGATIVE_ONE_EXT */ - { 40299, 0x000087E0 }, /* GL_NORMALIZED_RANGE_EXT */ - { 40323, 0x000087E1 }, /* GL_FULL_RANGE_EXT */ - { 40341, 0x000087E2 }, /* GL_CURRENT_VERTEX_EXT */ - { 40363, 0x000087E3 }, /* GL_MVP_MATRIX_EXT */ - { 40381, 0x000087E4 }, /* GL_VARIANT_VALUE_EXT */ - { 40402, 0x000087E5 }, /* GL_VARIANT_DATATYPE_EXT */ - { 40426, 0x000087E6 }, /* GL_VARIANT_ARRAY_STRIDE_EXT */ - { 40454, 0x000087E7 }, /* GL_VARIANT_ARRAY_TYPE_EXT */ - { 40480, 0x000087E8 }, /* GL_VARIANT_ARRAY_EXT */ - { 40501, 0x000087E9 }, /* GL_VARIANT_ARRAY_POINTER_EXT */ - { 40530, 0x000087EA }, /* GL_INVARIANT_VALUE_EXT */ - { 40553, 0x000087EB }, /* GL_INVARIANT_DATATYPE_EXT */ - { 40579, 0x000087EC }, /* GL_LOCAL_CONSTANT_VALUE_EXT */ - { 40607, 0x000087ED }, /* GL_LOCAL_CONSTANT_DATATYPE_EXT */ - { 40638, 0x000087EE }, /* GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD */ - { 40673, 0x000087F0 }, /* GL_PN_TRIANGLES_ATI */ - { 40693, 0x000087F1 }, /* GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI */ - { 40735, 0x000087F2 }, /* GL_PN_TRIANGLES_POINT_MODE_ATI */ - { 40766, 0x000087F3 }, /* GL_PN_TRIANGLES_NORMAL_MODE_ATI */ - { 40798, 0x000087F4 }, /* GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI */ - { 40836, 0x000087F5 }, /* GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI */ - { 40874, 0x000087F6 }, /* GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI */ - { 40911, 0x000087F7 }, /* GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI */ - { 40950, 0x000087F8 }, /* GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI */ - { 40992, 0x000087F9 }, /* GL_3DC_X_AMD */ - { 41005, 0x000087FA }, /* GL_3DC_XY_AMD */ - { 41019, 0x000087FB }, /* GL_VBO_FREE_MEMORY_ATI */ - { 41042, 0x000087FC }, /* GL_TEXTURE_FREE_MEMORY_ATI */ - { 41069, 0x000087FD }, /* GL_RENDERBUFFER_FREE_MEMORY_ATI */ - { 41101, 0x000087FE }, /* GL_NUM_PROGRAM_BINARY_FORMATS */ - { 41131, 0x000087FF }, /* GL_PROGRAM_BINARY_FORMATS */ - { 41157, 0x00008800 }, /* GL_STENCIL_BACK_FUNC */ - { 41178, 0x00008801 }, /* GL_STENCIL_BACK_FAIL */ - { 41199, 0x00008802 }, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL */ - { 41231, 0x00008803 }, /* GL_STENCIL_BACK_PASS_DEPTH_PASS */ - { 41263, 0x00008804 }, /* GL_FRAGMENT_PROGRAM_ARB */ - { 41287, 0x00008805 }, /* GL_PROGRAM_ALU_INSTRUCTIONS_ARB */ - { 41319, 0x00008806 }, /* GL_PROGRAM_TEX_INSTRUCTIONS_ARB */ - { 41351, 0x00008807 }, /* GL_PROGRAM_TEX_INDIRECTIONS_ARB */ - { 41383, 0x00008808 }, /* GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */ - { 41422, 0x00008809 }, /* GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */ - { 41461, 0x0000880A }, /* GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */ - { 41500, 0x0000880B }, /* GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB */ - { 41536, 0x0000880C }, /* GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB */ - { 41572, 0x0000880D }, /* GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB */ - { 41608, 0x0000880E }, /* GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */ - { 41651, 0x0000880F }, /* GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */ - { 41694, 0x00008810 }, /* GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */ - { 41737, 0x00008814 }, /* GL_RGBA32F */ - { 41748, 0x00008815 }, /* GL_RGB32F */ - { 41758, 0x00008816 }, /* GL_ALPHA32F_ARB */ - { 41774, 0x00008817 }, /* GL_INTENSITY32F_ARB */ - { 41794, 0x00008818 }, /* GL_LUMINANCE32F_ARB */ - { 41814, 0x00008819 }, /* GL_LUMINANCE_ALPHA32F_ARB */ - { 41840, 0x0000881A }, /* GL_RGBA16F */ - { 41851, 0x0000881B }, /* GL_RGB16F */ - { 41861, 0x0000881C }, /* GL_ALPHA16F_ARB */ - { 41877, 0x0000881D }, /* GL_INTENSITY16F_ARB */ - { 41897, 0x0000881E }, /* GL_LUMINANCE16F_ARB */ - { 41917, 0x0000881F }, /* GL_LUMINANCE_ALPHA16F_ARB */ - { 41943, 0x00008820 }, /* GL_RGBA_FLOAT_MODE_ARB */ - { 41966, 0x00008823 }, /* GL_WRITEONLY_RENDERING_QCOM */ - { 41994, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS */ - { 42014, 0x00008825 }, /* GL_DRAW_BUFFER0 */ - { 42030, 0x00008826 }, /* GL_DRAW_BUFFER1 */ - { 42046, 0x00008827 }, /* GL_DRAW_BUFFER2 */ - { 42062, 0x00008828 }, /* GL_DRAW_BUFFER3 */ - { 42078, 0x00008829 }, /* GL_DRAW_BUFFER4 */ - { 42094, 0x0000882A }, /* GL_DRAW_BUFFER5 */ - { 42110, 0x0000882B }, /* GL_DRAW_BUFFER6 */ - { 42126, 0x0000882C }, /* GL_DRAW_BUFFER7 */ - { 42142, 0x0000882D }, /* GL_DRAW_BUFFER8 */ - { 42158, 0x0000882E }, /* GL_DRAW_BUFFER9 */ - { 42174, 0x0000882F }, /* GL_DRAW_BUFFER10 */ - { 42191, 0x00008830 }, /* GL_DRAW_BUFFER11 */ - { 42208, 0x00008831 }, /* GL_DRAW_BUFFER12 */ - { 42225, 0x00008832 }, /* GL_DRAW_BUFFER13 */ - { 42242, 0x00008833 }, /* GL_DRAW_BUFFER14 */ - { 42259, 0x00008834 }, /* GL_DRAW_BUFFER15 */ - { 42276, 0x00008835 }, /* GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI */ - { 42311, 0x0000883D }, /* GL_BLEND_EQUATION_ALPHA */ - { 42335, 0x0000883F }, /* GL_SUBSAMPLE_DISTANCE_AMD */ - { 42361, 0x00008840 }, /* GL_MATRIX_PALETTE_ARB */ - { 42383, 0x00008841 }, /* GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB */ - { 42421, 0x00008842 }, /* GL_MAX_PALETTE_MATRICES_ARB */ - { 42449, 0x00008843 }, /* GL_CURRENT_PALETTE_MATRIX_ARB */ - { 42479, 0x00008844 }, /* GL_MATRIX_INDEX_ARRAY_ARB */ - { 42505, 0x00008845 }, /* GL_CURRENT_MATRIX_INDEX_ARB */ - { 42533, 0x00008846 }, /* GL_MATRIX_INDEX_ARRAY_SIZE_ARB */ - { 42564, 0x00008847 }, /* GL_MATRIX_INDEX_ARRAY_TYPE_ARB */ - { 42595, 0x00008848 }, /* GL_MATRIX_INDEX_ARRAY_STRIDE_ARB */ - { 42628, 0x00008849 }, /* GL_MATRIX_INDEX_ARRAY_POINTER_ARB */ - { 42662, 0x0000884A }, /* GL_TEXTURE_DEPTH_SIZE */ - { 42684, 0x0000884B }, /* GL_DEPTH_TEXTURE_MODE */ - { 42706, 0x0000884C }, /* GL_TEXTURE_COMPARE_MODE */ - { 42730, 0x0000884D }, /* GL_TEXTURE_COMPARE_FUNC */ - { 42754, 0x0000884E }, /* GL_COMPARE_REF_TO_TEXTURE */ - { 42780, 0x0000884F }, /* GL_TEXTURE_CUBE_MAP_SEAMLESS */ - { 42809, 0x00008850 }, /* GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV */ - { 42844, 0x00008851 }, /* GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV */ - { 42885, 0x00008852 }, /* GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV */ - { 42927, 0x00008853 }, /* GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV */ - { 42975, 0x00008854 }, /* GL_OFFSET_HILO_TEXTURE_2D_NV */ - { 43004, 0x00008855 }, /* GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV */ - { 43040, 0x00008856 }, /* GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV */ - { 43080, 0x00008857 }, /* GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV */ - { 43127, 0x00008858 }, /* GL_DEPENDENT_HILO_TEXTURE_2D_NV */ - { 43159, 0x00008859 }, /* GL_DEPENDENT_RGB_TEXTURE_3D_NV */ - { 43190, 0x0000885A }, /* GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV */ - { 43227, 0x0000885B }, /* GL_DOT_PRODUCT_PASS_THROUGH_NV */ - { 43258, 0x0000885C }, /* GL_DOT_PRODUCT_TEXTURE_1D_NV */ - { 43287, 0x0000885D }, /* GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV */ - { 43326, 0x0000885E }, /* GL_HILO8_NV */ - { 43338, 0x0000885F }, /* GL_SIGNED_HILO8_NV */ - { 43357, 0x00008860 }, /* GL_FORCE_BLUE_TO_ONE_NV */ - { 43381, 0x00008861 }, /* GL_POINT_SPRITE */ - { 43397, 0x00008862 }, /* GL_COORD_REPLACE */ - { 43414, 0x00008863 }, /* GL_POINT_SPRITE_R_MODE_NV */ - { 43440, 0x00008864 }, /* GL_QUERY_COUNTER_BITS */ - { 43462, 0x00008865 }, /* GL_CURRENT_QUERY */ - { 43479, 0x00008866 }, /* GL_QUERY_RESULT */ - { 43495, 0x00008867 }, /* GL_QUERY_RESULT_AVAILABLE */ - { 43521, 0x00008868 }, /* GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV */ - { 43565, 0x00008869 }, /* GL_MAX_VERTEX_ATTRIBS */ - { 43587, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */ - { 43621, 0x0000886C }, /* GL_MAX_TESS_CONTROL_INPUT_COMPONENTS */ - { 43658, 0x0000886D }, /* GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS */ - { 43698, 0x0000886E }, /* GL_DEPTH_STENCIL_TO_RGBA_NV */ - { 43726, 0x0000886F }, /* GL_DEPTH_STENCIL_TO_BGRA_NV */ - { 43754, 0x00008870 }, /* GL_FRAGMENT_PROGRAM_NV */ - { 43777, 0x00008871 }, /* GL_MAX_TEXTURE_COORDS */ - { 43799, 0x00008872 }, /* GL_MAX_TEXTURE_IMAGE_UNITS */ - { 43826, 0x00008873 }, /* GL_FRAGMENT_PROGRAM_BINDING_NV */ - { 43857, 0x00008874 }, /* GL_PROGRAM_ERROR_STRING_ARB */ - { 43885, 0x00008875 }, /* GL_PROGRAM_FORMAT_ASCII_ARB */ - { 43913, 0x00008876 }, /* GL_PROGRAM_FORMAT_ARB */ - { 43935, 0x00008878 }, /* GL_WRITE_PIXEL_DATA_RANGE_NV */ - { 43964, 0x00008879 }, /* GL_READ_PIXEL_DATA_RANGE_NV */ - { 43992, 0x0000887A }, /* GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV */ - { 44028, 0x0000887B }, /* GL_READ_PIXEL_DATA_RANGE_LENGTH_NV */ - { 44063, 0x0000887C }, /* GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV */ - { 44100, 0x0000887D }, /* GL_READ_PIXEL_DATA_RANGE_POINTER_NV */ - { 44136, 0x0000887F }, /* GL_GEOMETRY_SHADER_INVOCATIONS */ - { 44167, 0x00008880 }, /* GL_FLOAT_R_NV */ - { 44181, 0x00008881 }, /* GL_FLOAT_RG_NV */ - { 44196, 0x00008882 }, /* GL_FLOAT_RGB_NV */ - { 44212, 0x00008883 }, /* GL_FLOAT_RGBA_NV */ - { 44229, 0x00008884 }, /* GL_FLOAT_R16_NV */ - { 44245, 0x00008885 }, /* GL_FLOAT_R32_NV */ - { 44261, 0x00008886 }, /* GL_FLOAT_RG16_NV */ - { 44278, 0x00008887 }, /* GL_FLOAT_RG32_NV */ - { 44295, 0x00008888 }, /* GL_FLOAT_RGB16_NV */ - { 44313, 0x00008889 }, /* GL_FLOAT_RGB32_NV */ - { 44331, 0x0000888A }, /* GL_FLOAT_RGBA16_NV */ - { 44350, 0x0000888B }, /* GL_FLOAT_RGBA32_NV */ - { 44369, 0x0000888C }, /* GL_TEXTURE_FLOAT_COMPONENTS_NV */ - { 44400, 0x0000888D }, /* GL_FLOAT_CLEAR_COLOR_VALUE_NV */ - { 44430, 0x0000888E }, /* GL_FLOAT_RGBA_MODE_NV */ - { 44452, 0x0000888F }, /* GL_TEXTURE_UNSIGNED_REMAP_MODE_NV */ - { 44486, 0x00008890 }, /* GL_DEPTH_BOUNDS_TEST_EXT */ - { 44511, 0x00008891 }, /* GL_DEPTH_BOUNDS_EXT */ - { 44531, 0x00008892 }, /* GL_ARRAY_BUFFER */ - { 44547, 0x00008893 }, /* GL_ELEMENT_ARRAY_BUFFER */ - { 44571, 0x00008894 }, /* GL_ARRAY_BUFFER_BINDING */ - { 44595, 0x00008895 }, /* GL_ELEMENT_ARRAY_BUFFER_BINDING */ - { 44627, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING */ - { 44658, 0x00008897 }, /* GL_NORMAL_ARRAY_BUFFER_BINDING */ - { 44689, 0x00008898 }, /* GL_COLOR_ARRAY_BUFFER_BINDING */ - { 44719, 0x00008899 }, /* GL_INDEX_ARRAY_BUFFER_BINDING */ - { 44749, 0x0000889A }, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING */ - { 44787, 0x0000889B }, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING */ - { 44821, 0x0000889C }, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING */ - { 44861, 0x0000889D }, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING */ - { 44900, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */ - { 44931, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */ - { 44969, 0x000088A0 }, /* GL_PROGRAM_INSTRUCTIONS_ARB */ - { 44997, 0x000088A1 }, /* GL_MAX_PROGRAM_INSTRUCTIONS_ARB */ - { 45029, 0x000088A2 }, /* GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB */ - { 45064, 0x000088A3 }, /* GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB */ - { 45103, 0x000088A4 }, /* GL_PROGRAM_TEMPORARIES_ARB */ - { 45130, 0x000088A5 }, /* GL_MAX_PROGRAM_TEMPORARIES_ARB */ - { 45161, 0x000088A6 }, /* GL_PROGRAM_NATIVE_TEMPORARIES_ARB */ - { 45195, 0x000088A7 }, /* GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB */ - { 45233, 0x000088A8 }, /* GL_PROGRAM_PARAMETERS_ARB */ - { 45259, 0x000088A9 }, /* GL_MAX_PROGRAM_PARAMETERS_ARB */ - { 45289, 0x000088AA }, /* GL_PROGRAM_NATIVE_PARAMETERS_ARB */ - { 45322, 0x000088AB }, /* GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB */ - { 45359, 0x000088AC }, /* GL_PROGRAM_ATTRIBS_ARB */ - { 45382, 0x000088AD }, /* GL_MAX_PROGRAM_ATTRIBS_ARB */ - { 45409, 0x000088AE }, /* GL_PROGRAM_NATIVE_ATTRIBS_ARB */ - { 45439, 0x000088AF }, /* GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB */ - { 45473, 0x000088B0 }, /* GL_PROGRAM_ADDRESS_REGISTERS_ARB */ - { 45506, 0x000088B1 }, /* GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB */ - { 45543, 0x000088B2 }, /* GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */ - { 45583, 0x000088B3 }, /* GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */ - { 45627, 0x000088B4 }, /* GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB */ - { 45663, 0x000088B5 }, /* GL_MAX_PROGRAM_ENV_PARAMETERS_ARB */ - { 45697, 0x000088B6 }, /* GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB */ - { 45732, 0x000088B7 }, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */ - { 45764, 0x000088B8 }, /* GL_READ_ONLY */ - { 45777, 0x000088B9 }, /* GL_WRITE_ONLY */ - { 45791, 0x000088BA }, /* GL_READ_WRITE */ - { 45805, 0x000088BB }, /* GL_BUFFER_ACCESS */ - { 45822, 0x000088BC }, /* GL_BUFFER_MAPPED */ - { 45839, 0x000088BD }, /* GL_BUFFER_MAP_POINTER */ - { 45861, 0x000088BE }, /* GL_WRITE_DISCARD_NV */ - { 45881, 0x000088BF }, /* GL_TIME_ELAPSED */ - { 45897, 0x000088C0 }, /* GL_MATRIX0_ARB */ - { 45912, 0x000088C1 }, /* GL_MATRIX1_ARB */ - { 45927, 0x000088C2 }, /* GL_MATRIX2_ARB */ - { 45942, 0x000088C3 }, /* GL_MATRIX3_ARB */ - { 45957, 0x000088C4 }, /* GL_MATRIX4_ARB */ - { 45972, 0x000088C5 }, /* GL_MATRIX5_ARB */ - { 45987, 0x000088C6 }, /* GL_MATRIX6_ARB */ - { 46002, 0x000088C7 }, /* GL_MATRIX7_ARB */ - { 46017, 0x000088C8 }, /* GL_MATRIX8_ARB */ - { 46032, 0x000088C9 }, /* GL_MATRIX9_ARB */ - { 46047, 0x000088CA }, /* GL_MATRIX10_ARB */ - { 46063, 0x000088CB }, /* GL_MATRIX11_ARB */ - { 46079, 0x000088CC }, /* GL_MATRIX12_ARB */ - { 46095, 0x000088CD }, /* GL_MATRIX13_ARB */ - { 46111, 0x000088CE }, /* GL_MATRIX14_ARB */ - { 46127, 0x000088CF }, /* GL_MATRIX15_ARB */ - { 46143, 0x000088D0 }, /* GL_MATRIX16_ARB */ - { 46159, 0x000088D1 }, /* GL_MATRIX17_ARB */ - { 46175, 0x000088D2 }, /* GL_MATRIX18_ARB */ - { 46191, 0x000088D3 }, /* GL_MATRIX19_ARB */ - { 46207, 0x000088D4 }, /* GL_MATRIX20_ARB */ - { 46223, 0x000088D5 }, /* GL_MATRIX21_ARB */ - { 46239, 0x000088D6 }, /* GL_MATRIX22_ARB */ - { 46255, 0x000088D7 }, /* GL_MATRIX23_ARB */ - { 46271, 0x000088D8 }, /* GL_MATRIX24_ARB */ - { 46287, 0x000088D9 }, /* GL_MATRIX25_ARB */ - { 46303, 0x000088DA }, /* GL_MATRIX26_ARB */ - { 46319, 0x000088DB }, /* GL_MATRIX27_ARB */ - { 46335, 0x000088DC }, /* GL_MATRIX28_ARB */ - { 46351, 0x000088DD }, /* GL_MATRIX29_ARB */ - { 46367, 0x000088DE }, /* GL_MATRIX30_ARB */ - { 46383, 0x000088DF }, /* GL_MATRIX31_ARB */ - { 46399, 0x000088E0 }, /* GL_STREAM_DRAW */ - { 46414, 0x000088E1 }, /* GL_STREAM_READ */ - { 46429, 0x000088E2 }, /* GL_STREAM_COPY */ - { 46444, 0x000088E4 }, /* GL_STATIC_DRAW */ - { 46459, 0x000088E5 }, /* GL_STATIC_READ */ - { 46474, 0x000088E6 }, /* GL_STATIC_COPY */ - { 46489, 0x000088E8 }, /* GL_DYNAMIC_DRAW */ - { 46505, 0x000088E9 }, /* GL_DYNAMIC_READ */ - { 46521, 0x000088EA }, /* GL_DYNAMIC_COPY */ - { 46537, 0x000088EB }, /* GL_PIXEL_PACK_BUFFER */ - { 46558, 0x000088EC }, /* GL_PIXEL_UNPACK_BUFFER */ - { 46581, 0x000088ED }, /* GL_PIXEL_PACK_BUFFER_BINDING */ - { 46610, 0x000088EE }, /* GL_ETC1_SRGB8_NV */ - { 46627, 0x000088EF }, /* GL_PIXEL_UNPACK_BUFFER_BINDING */ - { 46658, 0x000088F0 }, /* GL_DEPTH24_STENCIL8 */ - { 46678, 0x000088F1 }, /* GL_TEXTURE_STENCIL_SIZE */ - { 46702, 0x000088F2 }, /* GL_STENCIL_TAG_BITS_EXT */ - { 46726, 0x000088F3 }, /* GL_STENCIL_CLEAR_TAG_VALUE_EXT */ - { 46757, 0x000088F4 }, /* GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV */ - { 46793, 0x000088F5 }, /* GL_MAX_PROGRAM_CALL_DEPTH_NV */ - { 46822, 0x000088F6 }, /* GL_MAX_PROGRAM_IF_DEPTH_NV */ - { 46849, 0x000088F7 }, /* GL_MAX_PROGRAM_LOOP_DEPTH_NV */ - { 46878, 0x000088F8 }, /* GL_MAX_PROGRAM_LOOP_COUNT_NV */ - { 46907, 0x000088F9 }, /* GL_SRC1_COLOR */ - { 46921, 0x000088FA }, /* GL_ONE_MINUS_SRC1_COLOR */ - { 46945, 0x000088FB }, /* GL_ONE_MINUS_SRC1_ALPHA */ - { 46969, 0x000088FC }, /* GL_MAX_DUAL_SOURCE_DRAW_BUFFERS */ - { 47001, 0x000088FD }, /* GL_VERTEX_ATTRIB_ARRAY_INTEGER */ - { 47032, 0x000088FE }, /* GL_VERTEX_ATTRIB_ARRAY_DIVISOR */ - { 47063, 0x000088FF }, /* GL_MAX_ARRAY_TEXTURE_LAYERS */ - { 47091, 0x00008904 }, /* GL_MIN_PROGRAM_TEXEL_OFFSET */ - { 47119, 0x00008905 }, /* GL_MAX_PROGRAM_TEXEL_OFFSET */ - { 47147, 0x00008906 }, /* GL_PROGRAM_ATTRIB_COMPONENTS_NV */ - { 47179, 0x00008907 }, /* GL_PROGRAM_RESULT_COMPONENTS_NV */ - { 47211, 0x00008908 }, /* GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV */ - { 47247, 0x00008909 }, /* GL_MAX_PROGRAM_RESULT_COMPONENTS_NV */ - { 47283, 0x00008910 }, /* GL_STENCIL_TEST_TWO_SIDE_EXT */ - { 47312, 0x00008911 }, /* GL_ACTIVE_STENCIL_FACE_EXT */ - { 47339, 0x00008912 }, /* GL_MIRROR_CLAMP_TO_BORDER_EXT */ - { 47369, 0x00008914 }, /* GL_SAMPLES_PASSED */ - { 47387, 0x00008916 }, /* GL_GEOMETRY_VERTICES_OUT */ - { 47412, 0x00008917 }, /* GL_GEOMETRY_INPUT_TYPE */ - { 47435, 0x00008918 }, /* GL_GEOMETRY_OUTPUT_TYPE */ - { 47459, 0x00008919 }, /* GL_SAMPLER_BINDING */ - { 47478, 0x0000891A }, /* GL_CLAMP_VERTEX_COLOR */ - { 47500, 0x0000891B }, /* GL_CLAMP_FRAGMENT_COLOR */ - { 47524, 0x0000891C }, /* GL_CLAMP_READ_COLOR */ - { 47544, 0x0000891D }, /* GL_FIXED_ONLY */ - { 47558, 0x0000891E }, /* GL_TESS_CONTROL_PROGRAM_NV */ - { 47585, 0x0000891F }, /* GL_TESS_EVALUATION_PROGRAM_NV */ - { 47615, 0x00008920 }, /* GL_FRAGMENT_SHADER_ATI */ - { 47638, 0x00008921 }, /* GL_REG_0_ATI */ - { 47651, 0x00008922 }, /* GL_REG_1_ATI */ - { 47664, 0x00008923 }, /* GL_REG_2_ATI */ - { 47677, 0x00008924 }, /* GL_REG_3_ATI */ - { 47690, 0x00008925 }, /* GL_REG_4_ATI */ - { 47703, 0x00008926 }, /* GL_REG_5_ATI */ - { 47716, 0x00008927 }, /* GL_REG_6_ATI */ - { 47729, 0x00008928 }, /* GL_REG_7_ATI */ - { 47742, 0x00008929 }, /* GL_REG_8_ATI */ - { 47755, 0x0000892A }, /* GL_REG_9_ATI */ - { 47768, 0x0000892B }, /* GL_REG_10_ATI */ - { 47782, 0x0000892C }, /* GL_REG_11_ATI */ - { 47796, 0x0000892D }, /* GL_REG_12_ATI */ - { 47810, 0x0000892E }, /* GL_REG_13_ATI */ - { 47824, 0x0000892F }, /* GL_REG_14_ATI */ - { 47838, 0x00008930 }, /* GL_REG_15_ATI */ - { 47852, 0x00008931 }, /* GL_REG_16_ATI */ - { 47866, 0x00008932 }, /* GL_REG_17_ATI */ - { 47880, 0x00008933 }, /* GL_REG_18_ATI */ - { 47894, 0x00008934 }, /* GL_REG_19_ATI */ - { 47908, 0x00008935 }, /* GL_REG_20_ATI */ - { 47922, 0x00008936 }, /* GL_REG_21_ATI */ - { 47936, 0x00008937 }, /* GL_REG_22_ATI */ - { 47950, 0x00008938 }, /* GL_REG_23_ATI */ - { 47964, 0x00008939 }, /* GL_REG_24_ATI */ - { 47978, 0x0000893A }, /* GL_REG_25_ATI */ - { 47992, 0x0000893B }, /* GL_REG_26_ATI */ - { 48006, 0x0000893C }, /* GL_REG_27_ATI */ - { 48020, 0x0000893D }, /* GL_REG_28_ATI */ - { 48034, 0x0000893E }, /* GL_REG_29_ATI */ - { 48048, 0x0000893F }, /* GL_REG_30_ATI */ - { 48062, 0x00008940 }, /* GL_REG_31_ATI */ - { 48076, 0x00008941 }, /* GL_CON_0_ATI */ - { 48089, 0x00008942 }, /* GL_CON_1_ATI */ - { 48102, 0x00008943 }, /* GL_CON_2_ATI */ - { 48115, 0x00008944 }, /* GL_CON_3_ATI */ - { 48128, 0x00008945 }, /* GL_CON_4_ATI */ - { 48141, 0x00008946 }, /* GL_CON_5_ATI */ - { 48154, 0x00008947 }, /* GL_CON_6_ATI */ - { 48167, 0x00008948 }, /* GL_CON_7_ATI */ - { 48180, 0x00008949 }, /* GL_CON_8_ATI */ - { 48193, 0x0000894A }, /* GL_CON_9_ATI */ - { 48206, 0x0000894B }, /* GL_CON_10_ATI */ - { 48220, 0x0000894C }, /* GL_CON_11_ATI */ - { 48234, 0x0000894D }, /* GL_CON_12_ATI */ - { 48248, 0x0000894E }, /* GL_CON_13_ATI */ - { 48262, 0x0000894F }, /* GL_CON_14_ATI */ - { 48276, 0x00008950 }, /* GL_CON_15_ATI */ - { 48290, 0x00008951 }, /* GL_CON_16_ATI */ - { 48304, 0x00008952 }, /* GL_CON_17_ATI */ - { 48318, 0x00008953 }, /* GL_CON_18_ATI */ - { 48332, 0x00008954 }, /* GL_CON_19_ATI */ - { 48346, 0x00008955 }, /* GL_CON_20_ATI */ - { 48360, 0x00008956 }, /* GL_CON_21_ATI */ - { 48374, 0x00008957 }, /* GL_CON_22_ATI */ - { 48388, 0x00008958 }, /* GL_CON_23_ATI */ - { 48402, 0x00008959 }, /* GL_CON_24_ATI */ - { 48416, 0x0000895A }, /* GL_CON_25_ATI */ - { 48430, 0x0000895B }, /* GL_CON_26_ATI */ - { 48444, 0x0000895C }, /* GL_CON_27_ATI */ - { 48458, 0x0000895D }, /* GL_CON_28_ATI */ - { 48472, 0x0000895E }, /* GL_CON_29_ATI */ - { 48486, 0x0000895F }, /* GL_CON_30_ATI */ - { 48500, 0x00008960 }, /* GL_CON_31_ATI */ - { 48514, 0x00008961 }, /* GL_MOV_ATI */ - { 48525, 0x00008963 }, /* GL_ADD_ATI */ - { 48536, 0x00008964 }, /* GL_MUL_ATI */ - { 48547, 0x00008965 }, /* GL_SUB_ATI */ - { 48558, 0x00008966 }, /* GL_DOT3_ATI */ - { 48570, 0x00008967 }, /* GL_DOT4_ATI */ - { 48582, 0x00008968 }, /* GL_MAD_ATI */ - { 48593, 0x00008969 }, /* GL_LERP_ATI */ - { 48605, 0x0000896A }, /* GL_CND_ATI */ - { 48616, 0x0000896B }, /* GL_CND0_ATI */ - { 48628, 0x0000896C }, /* GL_DOT2_ADD_ATI */ - { 48644, 0x0000896D }, /* GL_SECONDARY_INTERPOLATOR_ATI */ - { 48674, 0x0000896E }, /* GL_NUM_FRAGMENT_REGISTERS_ATI */ - { 48704, 0x0000896F }, /* GL_NUM_FRAGMENT_CONSTANTS_ATI */ - { 48734, 0x00008970 }, /* GL_NUM_PASSES_ATI */ - { 48752, 0x00008971 }, /* GL_NUM_INSTRUCTIONS_PER_PASS_ATI */ - { 48785, 0x00008972 }, /* GL_NUM_INSTRUCTIONS_TOTAL_ATI */ - { 48815, 0x00008973 }, /* GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI */ - { 48856, 0x00008974 }, /* GL_NUM_LOOPBACK_COMPONENTS_ATI */ - { 48887, 0x00008975 }, /* GL_COLOR_ALPHA_PAIRING_ATI */ - { 48914, 0x00008976 }, /* GL_SWIZZLE_STR_ATI */ - { 48933, 0x00008977 }, /* GL_SWIZZLE_STQ_ATI */ - { 48952, 0x00008978 }, /* GL_SWIZZLE_STR_DR_ATI */ - { 48974, 0x00008979 }, /* GL_SWIZZLE_STQ_DQ_ATI */ - { 48996, 0x0000897A }, /* GL_SWIZZLE_STRQ_ATI */ - { 49016, 0x0000897B }, /* GL_SWIZZLE_STRQ_DQ_ATI */ - { 49039, 0x00008980 }, /* GL_INTERLACE_OML */ - { 49056, 0x00008981 }, /* GL_INTERLACE_READ_OML */ - { 49078, 0x00008982 }, /* GL_FORMAT_SUBSAMPLE_24_24_OML */ - { 49108, 0x00008983 }, /* GL_FORMAT_SUBSAMPLE_244_244_OML */ - { 49140, 0x00008984 }, /* GL_PACK_RESAMPLE_OML */ - { 49161, 0x00008985 }, /* GL_UNPACK_RESAMPLE_OML */ - { 49184, 0x00008986 }, /* GL_RESAMPLE_REPLICATE_OML */ - { 49210, 0x00008987 }, /* GL_RESAMPLE_ZERO_FILL_OML */ - { 49236, 0x00008988 }, /* GL_RESAMPLE_AVERAGE_OML */ - { 49260, 0x00008989 }, /* GL_RESAMPLE_DECIMATE_OML */ - { 49285, 0x0000898A }, /* GL_POINT_SIZE_ARRAY_TYPE_OES */ - { 49314, 0x0000898B }, /* GL_POINT_SIZE_ARRAY_STRIDE_OES */ - { 49345, 0x0000898C }, /* GL_POINT_SIZE_ARRAY_POINTER_OES */ - { 49377, 0x0000898D }, /* GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES */ - { 49419, 0x0000898E }, /* GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES */ - { 49462, 0x0000898F }, /* GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES */ - { 49502, 0x00008A00 }, /* GL_VERTEX_ATTRIB_MAP1_APPLE */ - { 49530, 0x00008A01 }, /* GL_VERTEX_ATTRIB_MAP2_APPLE */ - { 49558, 0x00008A02 }, /* GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE */ - { 49591, 0x00008A03 }, /* GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE */ - { 49625, 0x00008A04 }, /* GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE */ - { 49659, 0x00008A05 }, /* GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE */ - { 49694, 0x00008A06 }, /* GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE */ - { 49727, 0x00008A07 }, /* GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE */ - { 49761, 0x00008A08 }, /* GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE */ - { 49795, 0x00008A09 }, /* GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE */ - { 49830, 0x00008A0A }, /* GL_DRAW_PIXELS_APPLE */ - { 49851, 0x00008A0B }, /* GL_FENCE_APPLE */ - { 49866, 0x00008A0C }, /* GL_ELEMENT_ARRAY_APPLE */ - { 49889, 0x00008A0D }, /* GL_ELEMENT_ARRAY_TYPE_APPLE */ - { 49917, 0x00008A0E }, /* GL_ELEMENT_ARRAY_POINTER_APPLE */ - { 49948, 0x00008A0F }, /* GL_COLOR_FLOAT_APPLE */ - { 49969, 0x00008A11 }, /* GL_UNIFORM_BUFFER */ - { 49987, 0x00008A12 }, /* GL_BUFFER_SERIALIZED_MODIFY_APPLE */ - { 50021, 0x00008A13 }, /* GL_BUFFER_FLUSHING_UNMAP_APPLE */ - { 50052, 0x00008A14 }, /* GL_AUX_DEPTH_STENCIL_APPLE */ - { 50079, 0x00008A15 }, /* GL_PACK_ROW_BYTES_APPLE */ - { 50103, 0x00008A16 }, /* GL_UNPACK_ROW_BYTES_APPLE */ - { 50129, 0x00008A19 }, /* GL_RELEASED_APPLE */ - { 50147, 0x00008A1A }, /* GL_VOLATILE_APPLE */ - { 50165, 0x00008A1B }, /* GL_RETAINED_APPLE */ - { 50183, 0x00008A1C }, /* GL_UNDEFINED_APPLE */ - { 50202, 0x00008A1D }, /* GL_PURGEABLE_APPLE */ - { 50221, 0x00008A1F }, /* GL_RGB_422_APPLE */ - { 50238, 0x00008A28 }, /* GL_UNIFORM_BUFFER_BINDING */ - { 50264, 0x00008A29 }, /* GL_UNIFORM_BUFFER_START */ - { 50288, 0x00008A2A }, /* GL_UNIFORM_BUFFER_SIZE */ - { 50311, 0x00008A2B }, /* GL_MAX_VERTEX_UNIFORM_BLOCKS */ - { 50340, 0x00008A2C }, /* GL_MAX_GEOMETRY_UNIFORM_BLOCKS */ - { 50371, 0x00008A2D }, /* GL_MAX_FRAGMENT_UNIFORM_BLOCKS */ - { 50402, 0x00008A2E }, /* GL_MAX_COMBINED_UNIFORM_BLOCKS */ - { 50433, 0x00008A2F }, /* GL_MAX_UNIFORM_BUFFER_BINDINGS */ - { 50464, 0x00008A30 }, /* GL_MAX_UNIFORM_BLOCK_SIZE */ - { 50490, 0x00008A31 }, /* GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS */ - { 50532, 0x00008A32 }, /* GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS */ - { 50576, 0x00008A33 }, /* GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS */ - { 50620, 0x00008A34 }, /* GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT */ - { 50655, 0x00008A35 }, /* GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH */ - { 50695, 0x00008A36 }, /* GL_ACTIVE_UNIFORM_BLOCKS */ - { 50720, 0x00008A37 }, /* GL_UNIFORM_TYPE */ - { 50736, 0x00008A38 }, /* GL_UNIFORM_SIZE */ - { 50752, 0x00008A39 }, /* GL_UNIFORM_NAME_LENGTH */ - { 50775, 0x00008A3A }, /* GL_UNIFORM_BLOCK_INDEX */ - { 50798, 0x00008A3B }, /* GL_UNIFORM_OFFSET */ - { 50816, 0x00008A3C }, /* GL_UNIFORM_ARRAY_STRIDE */ - { 50840, 0x00008A3D }, /* GL_UNIFORM_MATRIX_STRIDE */ - { 50865, 0x00008A3E }, /* GL_UNIFORM_IS_ROW_MAJOR */ - { 50889, 0x00008A3F }, /* GL_UNIFORM_BLOCK_BINDING */ - { 50914, 0x00008A40 }, /* GL_UNIFORM_BLOCK_DATA_SIZE */ - { 50941, 0x00008A41 }, /* GL_UNIFORM_BLOCK_NAME_LENGTH */ - { 50970, 0x00008A42 }, /* GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS */ - { 51003, 0x00008A43 }, /* GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES */ - { 51043, 0x00008A44 }, /* GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER */ - { 51088, 0x00008A45 }, /* GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER */ - { 51135, 0x00008A46 }, /* GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER */ - { 51182, 0x00008A48 }, /* GL_TEXTURE_SRGB_DECODE_EXT */ - { 51209, 0x00008A49 }, /* GL_DECODE_EXT */ - { 51223, 0x00008A4A }, /* GL_SKIP_DECODE_EXT */ - { 51242, 0x00008A4F }, /* GL_PROGRAM_PIPELINE_OBJECT_EXT */ - { 51273, 0x00008A51 }, /* GL_RGB_RAW_422_APPLE */ - { 51294, 0x00008A52 }, /* GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT */ - { 51334, 0x00008A53 }, /* GL_SYNC_OBJECT_APPLE */ - { 51355, 0x00008A54 }, /* GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT */ - { 51391, 0x00008A55 }, /* GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT */ - { 51427, 0x00008A56 }, /* GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT */ - { 51469, 0x00008A57 }, /* GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT */ - { 51511, 0x00008B30 }, /* GL_FRAGMENT_SHADER */ - { 51530, 0x00008B31 }, /* GL_VERTEX_SHADER */ - { 51547, 0x00008B40 }, /* GL_PROGRAM_OBJECT_ARB */ - { 51569, 0x00008B48 }, /* GL_SHADER_OBJECT_ARB */ - { 51590, 0x00008B49 }, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS */ - { 51625, 0x00008B4A }, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS */ - { 51658, 0x00008B4B }, /* GL_MAX_VARYING_COMPONENTS */ - { 51684, 0x00008B4C }, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS */ - { 51718, 0x00008B4D }, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS */ - { 51754, 0x00008B4E }, /* GL_OBJECT_TYPE_ARB */ - { 51773, 0x00008B4F }, /* GL_SHADER_TYPE */ - { 51788, 0x00008B50 }, /* GL_FLOAT_VEC2 */ - { 51802, 0x00008B51 }, /* GL_FLOAT_VEC3 */ - { 51816, 0x00008B52 }, /* GL_FLOAT_VEC4 */ - { 51830, 0x00008B53 }, /* GL_INT_VEC2 */ - { 51842, 0x00008B54 }, /* GL_INT_VEC3 */ - { 51854, 0x00008B55 }, /* GL_INT_VEC4 */ - { 51866, 0x00008B56 }, /* GL_BOOL */ - { 51874, 0x00008B57 }, /* GL_BOOL_VEC2 */ - { 51887, 0x00008B58 }, /* GL_BOOL_VEC3 */ - { 51900, 0x00008B59 }, /* GL_BOOL_VEC4 */ - { 51913, 0x00008B5A }, /* GL_FLOAT_MAT2 */ - { 51927, 0x00008B5B }, /* GL_FLOAT_MAT3 */ - { 51941, 0x00008B5C }, /* GL_FLOAT_MAT4 */ - { 51955, 0x00008B5D }, /* GL_SAMPLER_1D */ - { 51969, 0x00008B5E }, /* GL_SAMPLER_2D */ - { 51983, 0x00008B5F }, /* GL_SAMPLER_3D */ - { 51997, 0x00008B60 }, /* GL_SAMPLER_CUBE */ - { 52013, 0x00008B61 }, /* GL_SAMPLER_1D_SHADOW */ - { 52034, 0x00008B62 }, /* GL_SAMPLER_2D_SHADOW */ - { 52055, 0x00008B63 }, /* GL_SAMPLER_2D_RECT */ - { 52074, 0x00008B64 }, /* GL_SAMPLER_2D_RECT_SHADOW */ - { 52100, 0x00008B65 }, /* GL_FLOAT_MAT2x3 */ - { 52116, 0x00008B66 }, /* GL_FLOAT_MAT2x4 */ - { 52132, 0x00008B67 }, /* GL_FLOAT_MAT3x2 */ - { 52148, 0x00008B68 }, /* GL_FLOAT_MAT3x4 */ - { 52164, 0x00008B69 }, /* GL_FLOAT_MAT4x2 */ - { 52180, 0x00008B6A }, /* GL_FLOAT_MAT4x3 */ - { 52196, 0x00008B80 }, /* GL_DELETE_STATUS */ - { 52213, 0x00008B81 }, /* GL_COMPILE_STATUS */ - { 52231, 0x00008B82 }, /* GL_LINK_STATUS */ - { 52246, 0x00008B83 }, /* GL_VALIDATE_STATUS */ - { 52265, 0x00008B84 }, /* GL_INFO_LOG_LENGTH */ - { 52284, 0x00008B85 }, /* GL_ATTACHED_SHADERS */ - { 52304, 0x00008B86 }, /* GL_ACTIVE_UNIFORMS */ - { 52323, 0x00008B87 }, /* GL_ACTIVE_UNIFORM_MAX_LENGTH */ - { 52352, 0x00008B88 }, /* GL_SHADER_SOURCE_LENGTH */ - { 52376, 0x00008B89 }, /* GL_ACTIVE_ATTRIBUTES */ - { 52397, 0x00008B8A }, /* GL_ACTIVE_ATTRIBUTE_MAX_LENGTH */ - { 52428, 0x00008B8B }, /* GL_FRAGMENT_SHADER_DERIVATIVE_HINT */ - { 52463, 0x00008B8C }, /* GL_SHADING_LANGUAGE_VERSION */ - { 52491, 0x00008B8D }, /* GL_CURRENT_PROGRAM */ - { 52510, 0x00008B90 }, /* GL_PALETTE4_RGB8_OES */ - { 52531, 0x00008B91 }, /* GL_PALETTE4_RGBA8_OES */ - { 52553, 0x00008B92 }, /* GL_PALETTE4_R5_G6_B5_OES */ - { 52578, 0x00008B93 }, /* GL_PALETTE4_RGBA4_OES */ - { 52600, 0x00008B94 }, /* GL_PALETTE4_RGB5_A1_OES */ - { 52624, 0x00008B95 }, /* GL_PALETTE8_RGB8_OES */ - { 52645, 0x00008B96 }, /* GL_PALETTE8_RGBA8_OES */ - { 52667, 0x00008B97 }, /* GL_PALETTE8_R5_G6_B5_OES */ - { 52692, 0x00008B98 }, /* GL_PALETTE8_RGBA4_OES */ - { 52714, 0x00008B99 }, /* GL_PALETTE8_RGB5_A1_OES */ - { 52738, 0x00008B9A }, /* GL_IMPLEMENTATION_COLOR_READ_TYPE */ - { 52772, 0x00008B9B }, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT */ - { 52808, 0x00008B9C }, /* GL_POINT_SIZE_ARRAY_OES */ - { 52832, 0x00008B9D }, /* GL_TEXTURE_CROP_RECT_OES */ - { 52857, 0x00008B9E }, /* GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES */ - { 52898, 0x00008B9F }, /* GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES */ - { 52937, 0x00008BC0 }, /* GL_COUNTER_TYPE_AMD */ - { 52957, 0x00008BC1 }, /* GL_COUNTER_RANGE_AMD */ - { 52978, 0x00008BC2 }, /* GL_UNSIGNED_INT64_AMD */ - { 53000, 0x00008BC3 }, /* GL_PERCENTAGE_AMD */ - { 53018, 0x00008BC4 }, /* GL_PERFMON_RESULT_AVAILABLE_AMD */ - { 53050, 0x00008BC5 }, /* GL_PERFMON_RESULT_SIZE_AMD */ - { 53077, 0x00008BC6 }, /* GL_PERFMON_RESULT_AMD */ - { 53099, 0x00008BD2 }, /* GL_TEXTURE_WIDTH_QCOM */ - { 53121, 0x00008BD3 }, /* GL_TEXTURE_HEIGHT_QCOM */ - { 53144, 0x00008BD4 }, /* GL_TEXTURE_DEPTH_QCOM */ - { 53166, 0x00008BD5 }, /* GL_TEXTURE_INTERNAL_FORMAT_QCOM */ - { 53198, 0x00008BD6 }, /* GL_TEXTURE_FORMAT_QCOM */ - { 53221, 0x00008BD7 }, /* GL_TEXTURE_TYPE_QCOM */ - { 53242, 0x00008BD8 }, /* GL_TEXTURE_IMAGE_VALID_QCOM */ - { 53270, 0x00008BD9 }, /* GL_TEXTURE_NUM_LEVELS_QCOM */ - { 53297, 0x00008BDA }, /* GL_TEXTURE_TARGET_QCOM */ - { 53320, 0x00008BDB }, /* GL_TEXTURE_OBJECT_VALID_QCOM */ - { 53349, 0x00008BDC }, /* GL_STATE_RESTORE */ - { 53366, 0x00008BE7 }, /* GL_SAMPLER_EXTERNAL_2D_Y2Y_EXT */ - { 53397, 0x00008BFA }, /* GL_TEXTURE_PROTECTED_EXT */ - { 53422, 0x00008C00 }, /* GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG */ - { 53457, 0x00008C01 }, /* GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG */ - { 53492, 0x00008C02 }, /* GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG */ - { 53528, 0x00008C03 }, /* GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG */ - { 53564, 0x00008C04 }, /* GL_MODULATE_COLOR_IMG */ - { 53586, 0x00008C05 }, /* GL_RECIP_ADD_SIGNED_ALPHA_IMG */ - { 53616, 0x00008C06 }, /* GL_TEXTURE_ALPHA_MODULATE_IMG */ - { 53646, 0x00008C07 }, /* GL_FACTOR_ALPHA_MODULATE_IMG */ - { 53675, 0x00008C08 }, /* GL_FRAGMENT_ALPHA_MODULATE_IMG */ - { 53706, 0x00008C09 }, /* GL_ADD_BLEND_IMG */ - { 53723, 0x00008C0A }, /* GL_SGX_BINARY_IMG */ - { 53741, 0x00008C10 }, /* GL_TEXTURE_RED_TYPE */ - { 53761, 0x00008C11 }, /* GL_TEXTURE_GREEN_TYPE */ - { 53783, 0x00008C12 }, /* GL_TEXTURE_BLUE_TYPE */ - { 53804, 0x00008C13 }, /* GL_TEXTURE_ALPHA_TYPE */ - { 53826, 0x00008C14 }, /* GL_TEXTURE_LUMINANCE_TYPE */ - { 53852, 0x00008C15 }, /* GL_TEXTURE_INTENSITY_TYPE */ - { 53878, 0x00008C16 }, /* GL_TEXTURE_DEPTH_TYPE */ - { 53900, 0x00008C17 }, /* GL_UNSIGNED_NORMALIZED */ - { 53923, 0x00008C18 }, /* GL_TEXTURE_1D_ARRAY */ - { 53943, 0x00008C19 }, /* GL_PROXY_TEXTURE_1D_ARRAY */ - { 53969, 0x00008C1A }, /* GL_TEXTURE_2D_ARRAY */ - { 53989, 0x00008C1B }, /* GL_PROXY_TEXTURE_2D_ARRAY */ - { 54015, 0x00008C1C }, /* GL_TEXTURE_BINDING_1D_ARRAY */ - { 54043, 0x00008C1D }, /* GL_TEXTURE_BINDING_2D_ARRAY */ - { 54071, 0x00008C26 }, /* GL_GEOMETRY_PROGRAM_NV */ - { 54094, 0x00008C27 }, /* GL_MAX_PROGRAM_OUTPUT_VERTICES_NV */ - { 54128, 0x00008C28 }, /* GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV */ - { 54170, 0x00008C29 }, /* GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS */ - { 54206, 0x00008C2A }, /* GL_TEXTURE_BUFFER_BINDING */ - { 54232, 0x00008C2B }, /* GL_MAX_TEXTURE_BUFFER_SIZE */ - { 54259, 0x00008C2C }, /* GL_TEXTURE_BINDING_BUFFER */ - { 54285, 0x00008C2D }, /* GL_TEXTURE_BUFFER_DATA_STORE_BINDING */ - { 54322, 0x00008C2E }, /* GL_TEXTURE_BUFFER_FORMAT_ARB */ - { 54351, 0x00008C2F }, /* GL_ANY_SAMPLES_PASSED */ - { 54373, 0x00008C36 }, /* GL_SAMPLE_SHADING */ - { 54391, 0x00008C37 }, /* GL_MIN_SAMPLE_SHADING_VALUE */ - { 54419, 0x00008C3A }, /* GL_R11F_G11F_B10F */ - { 54437, 0x00008C3B }, /* GL_UNSIGNED_INT_10F_11F_11F_REV */ - { 54469, 0x00008C3C }, /* GL_RGBA_SIGNED_COMPONENTS_EXT */ - { 54499, 0x00008C3D }, /* GL_RGB9_E5 */ - { 54510, 0x00008C3E }, /* GL_UNSIGNED_INT_5_9_9_9_REV */ - { 54538, 0x00008C3F }, /* GL_TEXTURE_SHARED_SIZE */ - { 54561, 0x00008C40 }, /* GL_SRGB */ - { 54569, 0x00008C41 }, /* GL_SRGB8 */ - { 54578, 0x00008C42 }, /* GL_SRGB_ALPHA */ - { 54592, 0x00008C43 }, /* GL_SRGB8_ALPHA8 */ - { 54608, 0x00008C44 }, /* GL_SLUMINANCE_ALPHA */ - { 54628, 0x00008C45 }, /* GL_SLUMINANCE8_ALPHA8 */ - { 54650, 0x00008C46 }, /* GL_SLUMINANCE */ - { 54664, 0x00008C47 }, /* GL_SLUMINANCE8 */ - { 54679, 0x00008C48 }, /* GL_COMPRESSED_SRGB */ - { 54698, 0x00008C49 }, /* GL_COMPRESSED_SRGB_ALPHA */ - { 54723, 0x00008C4A }, /* GL_COMPRESSED_SLUMINANCE */ - { 54748, 0x00008C4B }, /* GL_COMPRESSED_SLUMINANCE_ALPHA */ - { 54779, 0x00008C4C }, /* GL_COMPRESSED_SRGB_S3TC_DXT1_EXT */ - { 54812, 0x00008C4D }, /* GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT */ - { 54851, 0x00008C4E }, /* GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT */ - { 54890, 0x00008C4F }, /* GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT */ - { 54929, 0x00008C70 }, /* GL_COMPRESSED_LUMINANCE_LATC1_EXT */ - { 54963, 0x00008C71 }, /* GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT */ - { 55004, 0x00008C72 }, /* GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT */ - { 55044, 0x00008C73 }, /* GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT */ - { 55091, 0x00008C74 }, /* GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV */ - { 55135, 0x00008C75 }, /* GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV */ - { 55182, 0x00008C76 }, /* GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH */ - { 55223, 0x00008C77 }, /* GL_BACK_PRIMARY_COLOR_NV */ - { 55248, 0x00008C78 }, /* GL_BACK_SECONDARY_COLOR_NV */ - { 55275, 0x00008C79 }, /* GL_TEXTURE_COORD_NV */ - { 55295, 0x00008C7A }, /* GL_CLIP_DISTANCE_NV */ - { 55315, 0x00008C7B }, /* GL_VERTEX_ID_NV */ - { 55331, 0x00008C7C }, /* GL_PRIMITIVE_ID_NV */ - { 55350, 0x00008C7D }, /* GL_GENERIC_ATTRIB_NV */ - { 55371, 0x00008C7E }, /* GL_TRANSFORM_FEEDBACK_ATTRIBS_NV */ - { 55404, 0x00008C7F }, /* GL_TRANSFORM_FEEDBACK_BUFFER_MODE */ - { 55438, 0x00008C80 }, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS */ - { 55484, 0x00008C81 }, /* GL_ACTIVE_VARYINGS_NV */ - { 55506, 0x00008C82 }, /* GL_ACTIVE_VARYING_MAX_LENGTH_NV */ - { 55538, 0x00008C83 }, /* GL_TRANSFORM_FEEDBACK_VARYINGS */ - { 55569, 0x00008C84 }, /* GL_TRANSFORM_FEEDBACK_BUFFER_START */ - { 55604, 0x00008C85 }, /* GL_TRANSFORM_FEEDBACK_BUFFER_SIZE */ - { 55638, 0x00008C86 }, /* GL_TRANSFORM_FEEDBACK_RECORD_NV */ - { 55670, 0x00008C87 }, /* GL_PRIMITIVES_GENERATED */ - { 55694, 0x00008C88 }, /* GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN */ - { 55735, 0x00008C89 }, /* GL_RASTERIZER_DISCARD */ - { 55757, 0x00008C8A }, /* GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS */ - { 55806, 0x00008C8B }, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS */ - { 55849, 0x00008C8C }, /* GL_INTERLEAVED_ATTRIBS */ - { 55872, 0x00008C8D }, /* GL_SEPARATE_ATTRIBS */ - { 55892, 0x00008C8E }, /* GL_TRANSFORM_FEEDBACK_BUFFER */ - { 55921, 0x00008C8F }, /* GL_TRANSFORM_FEEDBACK_BUFFER_BINDING */ - { 55958, 0x00008C92 }, /* GL_ATC_RGB_AMD */ - { 55973, 0x00008C93 }, /* GL_ATC_RGBA_EXPLICIT_ALPHA_AMD */ - { 56004, 0x00008CA0 }, /* GL_POINT_SPRITE_COORD_ORIGIN */ - { 56033, 0x00008CA1 }, /* GL_LOWER_LEFT */ - { 56047, 0x00008CA2 }, /* GL_UPPER_LEFT */ - { 56061, 0x00008CA3 }, /* GL_STENCIL_BACK_REF */ - { 56081, 0x00008CA4 }, /* GL_STENCIL_BACK_VALUE_MASK */ - { 56108, 0x00008CA5 }, /* GL_STENCIL_BACK_WRITEMASK */ - { 56134, 0x00008CA6 }, /* GL_FRAMEBUFFER_BINDING */ - { 56157, 0x00008CA7 }, /* GL_RENDERBUFFER_BINDING */ - { 56181, 0x00008CA8 }, /* GL_READ_FRAMEBUFFER */ - { 56201, 0x00008CA9 }, /* GL_DRAW_FRAMEBUFFER */ - { 56221, 0x00008CAA }, /* GL_READ_FRAMEBUFFER_BINDING */ - { 56249, 0x00008CAB }, /* GL_RENDERBUFFER_SAMPLES */ - { 56273, 0x00008CAC }, /* GL_DEPTH_COMPONENT32F */ - { 56295, 0x00008CAD }, /* GL_DEPTH32F_STENCIL8 */ - { 56316, 0x00008CD0 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE */ - { 56354, 0x00008CD1 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME */ - { 56392, 0x00008CD2 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL */ - { 56432, 0x00008CD3 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE */ - { 56480, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */ - { 56520, 0x00008CD5 }, /* GL_FRAMEBUFFER_COMPLETE */ - { 56544, 0x00008CD6 }, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT */ - { 56581, 0x00008CD7 }, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT */ - { 56626, 0x00008CD9 }, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS */ - { 56663, 0x00008CDA }, /* GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT */ - { 56701, 0x00008CDB }, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER */ - { 56739, 0x00008CDC }, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER */ - { 56777, 0x00008CDD }, /* GL_FRAMEBUFFER_UNSUPPORTED */ - { 56804, 0x00008CDF }, /* GL_MAX_COLOR_ATTACHMENTS */ - { 56829, 0x00008CE0 }, /* GL_COLOR_ATTACHMENT0 */ - { 56850, 0x00008CE1 }, /* GL_COLOR_ATTACHMENT1 */ - { 56871, 0x00008CE2 }, /* GL_COLOR_ATTACHMENT2 */ - { 56892, 0x00008CE3 }, /* GL_COLOR_ATTACHMENT3 */ - { 56913, 0x00008CE4 }, /* GL_COLOR_ATTACHMENT4 */ - { 56934, 0x00008CE5 }, /* GL_COLOR_ATTACHMENT5 */ - { 56955, 0x00008CE6 }, /* GL_COLOR_ATTACHMENT6 */ - { 56976, 0x00008CE7 }, /* GL_COLOR_ATTACHMENT7 */ - { 56997, 0x00008CE8 }, /* GL_COLOR_ATTACHMENT8 */ - { 57018, 0x00008CE9 }, /* GL_COLOR_ATTACHMENT9 */ - { 57039, 0x00008CEA }, /* GL_COLOR_ATTACHMENT10 */ - { 57061, 0x00008CEB }, /* GL_COLOR_ATTACHMENT11 */ - { 57083, 0x00008CEC }, /* GL_COLOR_ATTACHMENT12 */ - { 57105, 0x00008CED }, /* GL_COLOR_ATTACHMENT13 */ - { 57127, 0x00008CEE }, /* GL_COLOR_ATTACHMENT14 */ - { 57149, 0x00008CEF }, /* GL_COLOR_ATTACHMENT15 */ - { 57171, 0x00008CF0 }, /* GL_COLOR_ATTACHMENT16 */ - { 57193, 0x00008CF1 }, /* GL_COLOR_ATTACHMENT17 */ - { 57215, 0x00008CF2 }, /* GL_COLOR_ATTACHMENT18 */ - { 57237, 0x00008CF3 }, /* GL_COLOR_ATTACHMENT19 */ - { 57259, 0x00008CF4 }, /* GL_COLOR_ATTACHMENT20 */ - { 57281, 0x00008CF5 }, /* GL_COLOR_ATTACHMENT21 */ - { 57303, 0x00008CF6 }, /* GL_COLOR_ATTACHMENT22 */ - { 57325, 0x00008CF7 }, /* GL_COLOR_ATTACHMENT23 */ - { 57347, 0x00008CF8 }, /* GL_COLOR_ATTACHMENT24 */ - { 57369, 0x00008CF9 }, /* GL_COLOR_ATTACHMENT25 */ - { 57391, 0x00008CFA }, /* GL_COLOR_ATTACHMENT26 */ - { 57413, 0x00008CFB }, /* GL_COLOR_ATTACHMENT27 */ - { 57435, 0x00008CFC }, /* GL_COLOR_ATTACHMENT28 */ - { 57457, 0x00008CFD }, /* GL_COLOR_ATTACHMENT29 */ - { 57479, 0x00008CFE }, /* GL_COLOR_ATTACHMENT30 */ - { 57501, 0x00008CFF }, /* GL_COLOR_ATTACHMENT31 */ - { 57523, 0x00008D00 }, /* GL_DEPTH_ATTACHMENT */ - { 57543, 0x00008D20 }, /* GL_STENCIL_ATTACHMENT */ - { 57565, 0x00008D40 }, /* GL_FRAMEBUFFER */ - { 57580, 0x00008D41 }, /* GL_RENDERBUFFER */ - { 57596, 0x00008D42 }, /* GL_RENDERBUFFER_WIDTH */ - { 57618, 0x00008D43 }, /* GL_RENDERBUFFER_HEIGHT */ - { 57641, 0x00008D44 }, /* GL_RENDERBUFFER_INTERNAL_FORMAT */ - { 57673, 0x00008D46 }, /* GL_STENCIL_INDEX1 */ - { 57691, 0x00008D47 }, /* GL_STENCIL_INDEX4 */ - { 57709, 0x00008D48 }, /* GL_STENCIL_INDEX8 */ - { 57727, 0x00008D49 }, /* GL_STENCIL_INDEX16 */ - { 57746, 0x00008D50 }, /* GL_RENDERBUFFER_RED_SIZE */ - { 57771, 0x00008D51 }, /* GL_RENDERBUFFER_GREEN_SIZE */ - { 57798, 0x00008D52 }, /* GL_RENDERBUFFER_BLUE_SIZE */ - { 57824, 0x00008D53 }, /* GL_RENDERBUFFER_ALPHA_SIZE */ - { 57851, 0x00008D54 }, /* GL_RENDERBUFFER_DEPTH_SIZE */ - { 57878, 0x00008D55 }, /* GL_RENDERBUFFER_STENCIL_SIZE */ - { 57907, 0x00008D56 }, /* GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE */ - { 57945, 0x00008D57 }, /* GL_MAX_SAMPLES */ - { 57960, 0x00008D60 }, /* GL_TEXTURE_GEN_STR_OES */ - { 57983, 0x00008D61 }, /* GL_HALF_FLOAT_OES */ - { 58001, 0x00008D62 }, /* GL_RGB565 */ - { 58011, 0x00008D64 }, /* GL_ETC1_RGB8_OES */ - { 58028, 0x00008D65 }, /* GL_TEXTURE_EXTERNAL_OES */ - { 58052, 0x00008D66 }, /* GL_SAMPLER_EXTERNAL_OES */ - { 58076, 0x00008D67 }, /* GL_TEXTURE_BINDING_EXTERNAL_OES */ - { 58108, 0x00008D68 }, /* GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES */ - { 58144, 0x00008D69 }, /* GL_PRIMITIVE_RESTART_FIXED_INDEX */ - { 58177, 0x00008D6A }, /* GL_ANY_SAMPLES_PASSED_CONSERVATIVE */ - { 58212, 0x00008D6B }, /* GL_MAX_ELEMENT_INDEX */ - { 58233, 0x00008D6C }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT */ - { 58279, 0x00008D70 }, /* GL_RGBA32UI */ - { 58291, 0x00008D71 }, /* GL_RGB32UI */ - { 58302, 0x00008D72 }, /* GL_ALPHA32UI_EXT */ - { 58319, 0x00008D73 }, /* GL_INTENSITY32UI_EXT */ - { 58340, 0x00008D74 }, /* GL_LUMINANCE32UI_EXT */ - { 58361, 0x00008D75 }, /* GL_LUMINANCE_ALPHA32UI_EXT */ - { 58388, 0x00008D76 }, /* GL_RGBA16UI */ - { 58400, 0x00008D77 }, /* GL_RGB16UI */ - { 58411, 0x00008D78 }, /* GL_ALPHA16UI_EXT */ - { 58428, 0x00008D79 }, /* GL_INTENSITY16UI_EXT */ - { 58449, 0x00008D7A }, /* GL_LUMINANCE16UI_EXT */ - { 58470, 0x00008D7B }, /* GL_LUMINANCE_ALPHA16UI_EXT */ - { 58497, 0x00008D7C }, /* GL_RGBA8UI */ - { 58508, 0x00008D7D }, /* GL_RGB8UI */ - { 58518, 0x00008D7E }, /* GL_ALPHA8UI_EXT */ - { 58534, 0x00008D7F }, /* GL_INTENSITY8UI_EXT */ - { 58554, 0x00008D80 }, /* GL_LUMINANCE8UI_EXT */ - { 58574, 0x00008D81 }, /* GL_LUMINANCE_ALPHA8UI_EXT */ - { 58600, 0x00008D82 }, /* GL_RGBA32I */ - { 58611, 0x00008D83 }, /* GL_RGB32I */ - { 58621, 0x00008D84 }, /* GL_ALPHA32I_EXT */ - { 58637, 0x00008D85 }, /* GL_INTENSITY32I_EXT */ - { 58657, 0x00008D86 }, /* GL_LUMINANCE32I_EXT */ - { 58677, 0x00008D87 }, /* GL_LUMINANCE_ALPHA32I_EXT */ - { 58703, 0x00008D88 }, /* GL_RGBA16I */ - { 58714, 0x00008D89 }, /* GL_RGB16I */ - { 58724, 0x00008D8A }, /* GL_ALPHA16I_EXT */ - { 58740, 0x00008D8B }, /* GL_INTENSITY16I_EXT */ - { 58760, 0x00008D8C }, /* GL_LUMINANCE16I_EXT */ - { 58780, 0x00008D8D }, /* GL_LUMINANCE_ALPHA16I_EXT */ - { 58806, 0x00008D8E }, /* GL_RGBA8I */ - { 58816, 0x00008D8F }, /* GL_RGB8I */ - { 58825, 0x00008D90 }, /* GL_ALPHA8I_EXT */ - { 58840, 0x00008D91 }, /* GL_INTENSITY8I_EXT */ - { 58859, 0x00008D92 }, /* GL_LUMINANCE8I_EXT */ - { 58878, 0x00008D93 }, /* GL_LUMINANCE_ALPHA8I_EXT */ - { 58903, 0x00008D94 }, /* GL_RED_INTEGER */ - { 58918, 0x00008D95 }, /* GL_GREEN_INTEGER */ - { 58935, 0x00008D96 }, /* GL_BLUE_INTEGER */ - { 58951, 0x00008D97 }, /* GL_ALPHA_INTEGER */ - { 58968, 0x00008D98 }, /* GL_RGB_INTEGER */ - { 58983, 0x00008D99 }, /* GL_RGBA_INTEGER */ - { 58999, 0x00008D9A }, /* GL_BGR_INTEGER */ - { 59014, 0x00008D9B }, /* GL_BGRA_INTEGER */ - { 59030, 0x00008D9C }, /* GL_LUMINANCE_INTEGER_EXT */ - { 59055, 0x00008D9D }, /* GL_LUMINANCE_ALPHA_INTEGER_EXT */ - { 59086, 0x00008D9E }, /* GL_RGBA_INTEGER_MODE_EXT */ - { 59111, 0x00008D9F }, /* GL_INT_2_10_10_10_REV */ - { 59133, 0x00008DA0 }, /* GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV */ - { 59177, 0x00008DA1 }, /* GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV */ - { 59217, 0x00008DA2 }, /* GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV */ - { 59255, 0x00008DA3 }, /* GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV */ - { 59295, 0x00008DA4 }, /* GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV */ - { 59335, 0x00008DA5 }, /* GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV */ - { 59369, 0x00008DA6 }, /* GL_MAX_PROGRAM_GENERIC_RESULTS_NV */ - { 59403, 0x00008DA7 }, /* GL_FRAMEBUFFER_ATTACHMENT_LAYERED */ - { 59437, 0x00008DA8 }, /* GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS */ - { 59477, 0x00008DA9 }, /* GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB */ - { 59519, 0x00008DAA }, /* GL_LAYER_NV */ - { 59531, 0x00008DAB }, /* GL_DEPTH_COMPONENT32F_NV */ - { 59556, 0x00008DAC }, /* GL_DEPTH32F_STENCIL8_NV */ - { 59580, 0x00008DAD }, /* GL_FLOAT_32_UNSIGNED_INT_24_8_REV */ - { 59614, 0x00008DAE }, /* GL_SHADER_INCLUDE_ARB */ - { 59636, 0x00008DAF }, /* GL_DEPTH_BUFFER_FLOAT_MODE_NV */ - { 59666, 0x00008DB9 }, /* GL_FRAMEBUFFER_SRGB */ - { 59686, 0x00008DBA }, /* GL_FRAMEBUFFER_SRGB_CAPABLE_EXT */ - { 59718, 0x00008DBB }, /* GL_COMPRESSED_RED_RGTC1 */ - { 59742, 0x00008DBC }, /* GL_COMPRESSED_SIGNED_RED_RGTC1 */ - { 59773, 0x00008DBD }, /* GL_COMPRESSED_RG_RGTC2 */ - { 59796, 0x00008DBE }, /* GL_COMPRESSED_SIGNED_RG_RGTC2 */ - { 59826, 0x00008DC0 }, /* GL_SAMPLER_1D_ARRAY */ - { 59846, 0x00008DC1 }, /* GL_SAMPLER_2D_ARRAY */ - { 59866, 0x00008DC2 }, /* GL_SAMPLER_BUFFER */ - { 59884, 0x00008DC3 }, /* GL_SAMPLER_1D_ARRAY_SHADOW */ - { 59911, 0x00008DC4 }, /* GL_SAMPLER_2D_ARRAY_SHADOW */ - { 59938, 0x00008DC5 }, /* GL_SAMPLER_CUBE_SHADOW */ - { 59961, 0x00008DC6 }, /* GL_UNSIGNED_INT_VEC2 */ - { 59982, 0x00008DC7 }, /* GL_UNSIGNED_INT_VEC3 */ - { 60003, 0x00008DC8 }, /* GL_UNSIGNED_INT_VEC4 */ - { 60024, 0x00008DC9 }, /* GL_INT_SAMPLER_1D */ - { 60042, 0x00008DCA }, /* GL_INT_SAMPLER_2D */ - { 60060, 0x00008DCB }, /* GL_INT_SAMPLER_3D */ - { 60078, 0x00008DCC }, /* GL_INT_SAMPLER_CUBE */ - { 60098, 0x00008DCD }, /* GL_INT_SAMPLER_2D_RECT */ - { 60121, 0x00008DCE }, /* GL_INT_SAMPLER_1D_ARRAY */ - { 60145, 0x00008DCF }, /* GL_INT_SAMPLER_2D_ARRAY */ - { 60169, 0x00008DD0 }, /* GL_INT_SAMPLER_BUFFER */ - { 60191, 0x00008DD1 }, /* GL_UNSIGNED_INT_SAMPLER_1D */ - { 60218, 0x00008DD2 }, /* GL_UNSIGNED_INT_SAMPLER_2D */ - { 60245, 0x00008DD3 }, /* GL_UNSIGNED_INT_SAMPLER_3D */ - { 60272, 0x00008DD4 }, /* GL_UNSIGNED_INT_SAMPLER_CUBE */ - { 60301, 0x00008DD5 }, /* GL_UNSIGNED_INT_SAMPLER_2D_RECT */ - { 60333, 0x00008DD6 }, /* GL_UNSIGNED_INT_SAMPLER_1D_ARRAY */ - { 60366, 0x00008DD7 }, /* GL_UNSIGNED_INT_SAMPLER_2D_ARRAY */ - { 60399, 0x00008DD8 }, /* GL_UNSIGNED_INT_SAMPLER_BUFFER */ - { 60430, 0x00008DD9 }, /* GL_GEOMETRY_SHADER */ - { 60449, 0x00008DDA }, /* GL_GEOMETRY_VERTICES_OUT_ARB */ - { 60478, 0x00008DDB }, /* GL_GEOMETRY_INPUT_TYPE_ARB */ - { 60505, 0x00008DDC }, /* GL_GEOMETRY_OUTPUT_TYPE_ARB */ - { 60533, 0x00008DDD }, /* GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB */ - { 60572, 0x00008DDE }, /* GL_MAX_VERTEX_VARYING_COMPONENTS_ARB */ - { 60609, 0x00008DDF }, /* GL_MAX_GEOMETRY_UNIFORM_COMPONENTS */ - { 60644, 0x00008DE0 }, /* GL_MAX_GEOMETRY_OUTPUT_VERTICES */ - { 60676, 0x00008DE1 }, /* GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS */ - { 60716, 0x00008DE2 }, /* GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT */ - { 60752, 0x00008DE3 }, /* GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT */ - { 60790, 0x00008DE4 }, /* GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT */ - { 60828, 0x00008DE5 }, /* GL_ACTIVE_SUBROUTINES */ - { 60850, 0x00008DE6 }, /* GL_ACTIVE_SUBROUTINE_UNIFORMS */ - { 60880, 0x00008DE7 }, /* GL_MAX_SUBROUTINES */ - { 60899, 0x00008DE8 }, /* GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS */ - { 60935, 0x00008DE9 }, /* GL_NAMED_STRING_LENGTH_ARB */ - { 60962, 0x00008DEA }, /* GL_NAMED_STRING_TYPE_ARB */ - { 60987, 0x00008DED }, /* GL_MAX_BINDABLE_UNIFORM_SIZE_EXT */ - { 61020, 0x00008DEE }, /* GL_UNIFORM_BUFFER_EXT */ - { 61042, 0x00008DEF }, /* GL_UNIFORM_BUFFER_BINDING_EXT */ - { 61072, 0x00008DF0 }, /* GL_LOW_FLOAT */ - { 61085, 0x00008DF1 }, /* GL_MEDIUM_FLOAT */ - { 61101, 0x00008DF2 }, /* GL_HIGH_FLOAT */ - { 61115, 0x00008DF3 }, /* GL_LOW_INT */ - { 61126, 0x00008DF4 }, /* GL_MEDIUM_INT */ - { 61140, 0x00008DF5 }, /* GL_HIGH_INT */ - { 61152, 0x00008DF6 }, /* GL_UNSIGNED_INT_10_10_10_2_OES */ - { 61183, 0x00008DF7 }, /* GL_INT_10_10_10_2_OES */ - { 61205, 0x00008DF8 }, /* GL_SHADER_BINARY_FORMATS */ - { 61230, 0x00008DF9 }, /* GL_NUM_SHADER_BINARY_FORMATS */ - { 61259, 0x00008DFA }, /* GL_SHADER_COMPILER */ - { 61278, 0x00008DFB }, /* GL_MAX_VERTEX_UNIFORM_VECTORS */ - { 61308, 0x00008DFC }, /* GL_MAX_VARYING_VECTORS */ - { 61331, 0x00008DFD }, /* GL_MAX_FRAGMENT_UNIFORM_VECTORS */ - { 61363, 0x00008E10 }, /* GL_RENDERBUFFER_COLOR_SAMPLES_NV */ - { 61396, 0x00008E11 }, /* GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV */ - { 61433, 0x00008E12 }, /* GL_MULTISAMPLE_COVERAGE_MODES_NV */ - { 61466, 0x00008E13 }, /* GL_QUERY_WAIT */ - { 61480, 0x00008E14 }, /* GL_QUERY_NO_WAIT */ - { 61497, 0x00008E15 }, /* GL_QUERY_BY_REGION_WAIT */ - { 61521, 0x00008E16 }, /* GL_QUERY_BY_REGION_NO_WAIT */ - { 61548, 0x00008E17 }, /* GL_QUERY_WAIT_INVERTED */ - { 61571, 0x00008E18 }, /* GL_QUERY_NO_WAIT_INVERTED */ - { 61597, 0x00008E19 }, /* GL_QUERY_BY_REGION_WAIT_INVERTED */ - { 61630, 0x00008E1A }, /* GL_QUERY_BY_REGION_NO_WAIT_INVERTED */ - { 61666, 0x00008E1B }, /* GL_POLYGON_OFFSET_CLAMP_EXT */ - { 61694, 0x00008E1E }, /* GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS */ - { 61742, 0x00008E1F }, /* GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS */ - { 61793, 0x00008E20 }, /* GL_COLOR_SAMPLES_NV */ - { 61813, 0x00008E22 }, /* GL_TRANSFORM_FEEDBACK */ - { 61835, 0x00008E23 }, /* GL_TRANSFORM_FEEDBACK_PAUSED */ - { 61864, 0x00008E24 }, /* GL_TRANSFORM_FEEDBACK_ACTIVE */ - { 61893, 0x00008E25 }, /* GL_TRANSFORM_FEEDBACK_BINDING */ - { 61923, 0x00008E26 }, /* GL_FRAME_NV */ - { 61935, 0x00008E27 }, /* GL_FIELDS_NV */ - { 61948, 0x00008E28 }, /* GL_TIMESTAMP */ - { 61961, 0x00008E29 }, /* GL_NUM_FILL_STREAMS_NV */ - { 61984, 0x00008E2A }, /* GL_PRESENT_TIME_NV */ - { 62003, 0x00008E2B }, /* GL_PRESENT_DURATION_NV */ - { 62026, 0x00008E2C }, /* GL_DEPTH_COMPONENT16_NONLINEAR_NV */ - { 62060, 0x00008E2D }, /* GL_PROGRAM_MATRIX_EXT */ - { 62082, 0x00008E2E }, /* GL_TRANSPOSE_PROGRAM_MATRIX_EXT */ - { 62114, 0x00008E2F }, /* GL_PROGRAM_MATRIX_STACK_DEPTH_EXT */ - { 62148, 0x00008E42 }, /* GL_TEXTURE_SWIZZLE_R */ - { 62169, 0x00008E43 }, /* GL_TEXTURE_SWIZZLE_G */ - { 62190, 0x00008E44 }, /* GL_TEXTURE_SWIZZLE_B */ - { 62211, 0x00008E45 }, /* GL_TEXTURE_SWIZZLE_A */ - { 62232, 0x00008E46 }, /* GL_TEXTURE_SWIZZLE_RGBA */ - { 62256, 0x00008E47 }, /* GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS */ - { 62295, 0x00008E48 }, /* GL_ACTIVE_SUBROUTINE_MAX_LENGTH */ - { 62327, 0x00008E49 }, /* GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH */ - { 62367, 0x00008E4A }, /* GL_NUM_COMPATIBLE_SUBROUTINES */ - { 62397, 0x00008E4B }, /* GL_COMPATIBLE_SUBROUTINES */ - { 62423, 0x00008E4C }, /* GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION */ - { 62467, 0x00008E4D }, /* GL_FIRST_VERTEX_CONVENTION */ - { 62494, 0x00008E4E }, /* GL_LAST_VERTEX_CONVENTION */ - { 62520, 0x00008E4F }, /* GL_PROVOKING_VERTEX */ - { 62540, 0x00008E50 }, /* GL_SAMPLE_POSITION */ - { 62559, 0x00008E51 }, /* GL_SAMPLE_MASK */ - { 62574, 0x00008E52 }, /* GL_SAMPLE_MASK_VALUE */ - { 62595, 0x00008E53 }, /* GL_TEXTURE_BINDING_RENDERBUFFER_NV */ - { 62630, 0x00008E54 }, /* GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV */ - { 62676, 0x00008E55 }, /* GL_TEXTURE_RENDERBUFFER_NV */ - { 62703, 0x00008E56 }, /* GL_SAMPLER_RENDERBUFFER_NV */ - { 62730, 0x00008E57 }, /* GL_INT_SAMPLER_RENDERBUFFER_NV */ - { 62761, 0x00008E58 }, /* GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV */ - { 62801, 0x00008E59 }, /* GL_MAX_SAMPLE_MASK_WORDS */ - { 62826, 0x00008E5A }, /* GL_MAX_GEOMETRY_SHADER_INVOCATIONS */ - { 62861, 0x00008E5B }, /* GL_MIN_FRAGMENT_INTERPOLATION_OFFSET */ - { 62898, 0x00008E5C }, /* GL_MAX_FRAGMENT_INTERPOLATION_OFFSET */ - { 62935, 0x00008E5D }, /* GL_FRAGMENT_INTERPOLATION_OFFSET_BITS */ - { 62973, 0x00008E5E }, /* GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET */ - { 63010, 0x00008E5F }, /* GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET */ - { 63047, 0x00008E70 }, /* GL_MAX_TRANSFORM_FEEDBACK_BUFFERS */ - { 63081, 0x00008E71 }, /* GL_MAX_VERTEX_STREAMS */ - { 63103, 0x00008E72 }, /* GL_PATCH_VERTICES */ - { 63121, 0x00008E73 }, /* GL_PATCH_DEFAULT_INNER_LEVEL */ - { 63150, 0x00008E74 }, /* GL_PATCH_DEFAULT_OUTER_LEVEL */ - { 63179, 0x00008E75 }, /* GL_TESS_CONTROL_OUTPUT_VERTICES */ - { 63211, 0x00008E76 }, /* GL_TESS_GEN_MODE */ - { 63228, 0x00008E77 }, /* GL_TESS_GEN_SPACING */ - { 63248, 0x00008E78 }, /* GL_TESS_GEN_VERTEX_ORDER */ - { 63273, 0x00008E79 }, /* GL_TESS_GEN_POINT_MODE */ - { 63296, 0x00008E7A }, /* GL_ISOLINES */ - { 63308, 0x00008E7B }, /* GL_FRACTIONAL_ODD */ - { 63326, 0x00008E7C }, /* GL_FRACTIONAL_EVEN */ - { 63345, 0x00008E7D }, /* GL_MAX_PATCH_VERTICES */ - { 63367, 0x00008E7E }, /* GL_MAX_TESS_GEN_LEVEL */ - { 63389, 0x00008E7F }, /* GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS */ - { 63428, 0x00008E80 }, /* GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS */ - { 63470, 0x00008E81 }, /* GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS */ - { 63510, 0x00008E82 }, /* GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS */ - { 63553, 0x00008E83 }, /* GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS */ - { 63591, 0x00008E84 }, /* GL_MAX_TESS_PATCH_COMPONENTS */ - { 63620, 0x00008E85 }, /* GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS */ - { 63664, 0x00008E86 }, /* GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS */ - { 63705, 0x00008E87 }, /* GL_TESS_EVALUATION_SHADER */ - { 63731, 0x00008E88 }, /* GL_TESS_CONTROL_SHADER */ - { 63754, 0x00008E89 }, /* GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS */ - { 63789, 0x00008E8A }, /* GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS */ - { 63827, 0x00008E8C }, /* GL_COMPRESSED_RGBA_BPTC_UNORM */ - { 63857, 0x00008E8D }, /* GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM */ - { 63893, 0x00008E8E }, /* GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT */ - { 63929, 0x00008E8F }, /* GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT */ - { 63967, 0x00008ED0 }, /* GL_COVERAGE_COMPONENT_NV */ - { 63992, 0x00008ED1 }, /* GL_COVERAGE_COMPONENT4_NV */ - { 64018, 0x00008ED2 }, /* GL_COVERAGE_ATTACHMENT_NV */ - { 64044, 0x00008ED3 }, /* GL_COVERAGE_BUFFERS_NV */ - { 64067, 0x00008ED4 }, /* GL_COVERAGE_SAMPLES_NV */ - { 64090, 0x00008ED5 }, /* GL_COVERAGE_ALL_FRAGMENTS_NV */ - { 64119, 0x00008ED6 }, /* GL_COVERAGE_EDGE_FRAGMENTS_NV */ - { 64149, 0x00008ED7 }, /* GL_COVERAGE_AUTOMATIC_NV */ - { 64174, 0x00008F10 }, /* GL_INCLUSIVE_EXT */ - { 64191, 0x00008F11 }, /* GL_EXCLUSIVE_EXT */ - { 64208, 0x00008F12 }, /* GL_WINDOW_RECTANGLE_EXT */ - { 64232, 0x00008F13 }, /* GL_WINDOW_RECTANGLE_MODE_EXT */ - { 64261, 0x00008F14 }, /* GL_MAX_WINDOW_RECTANGLES_EXT */ - { 64290, 0x00008F15 }, /* GL_NUM_WINDOW_RECTANGLES_EXT */ - { 64319, 0x00008F1D }, /* GL_BUFFER_GPU_ADDRESS_NV */ - { 64344, 0x00008F1E }, /* GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV */ - { 64378, 0x00008F1F }, /* GL_ELEMENT_ARRAY_UNIFIED_NV */ - { 64406, 0x00008F20 }, /* GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV */ - { 64440, 0x00008F21 }, /* GL_VERTEX_ARRAY_ADDRESS_NV */ - { 64467, 0x00008F22 }, /* GL_NORMAL_ARRAY_ADDRESS_NV */ - { 64494, 0x00008F23 }, /* GL_COLOR_ARRAY_ADDRESS_NV */ - { 64520, 0x00008F24 }, /* GL_INDEX_ARRAY_ADDRESS_NV */ - { 64546, 0x00008F25 }, /* GL_TEXTURE_COORD_ARRAY_ADDRESS_NV */ - { 64580, 0x00008F26 }, /* GL_EDGE_FLAG_ARRAY_ADDRESS_NV */ - { 64610, 0x00008F27 }, /* GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV */ - { 64646, 0x00008F28 }, /* GL_FOG_COORD_ARRAY_ADDRESS_NV */ - { 64676, 0x00008F29 }, /* GL_ELEMENT_ARRAY_ADDRESS_NV */ - { 64704, 0x00008F2A }, /* GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV */ - { 64737, 0x00008F2B }, /* GL_VERTEX_ARRAY_LENGTH_NV */ - { 64763, 0x00008F2C }, /* GL_NORMAL_ARRAY_LENGTH_NV */ - { 64789, 0x00008F2D }, /* GL_COLOR_ARRAY_LENGTH_NV */ - { 64814, 0x00008F2E }, /* GL_INDEX_ARRAY_LENGTH_NV */ - { 64839, 0x00008F2F }, /* GL_TEXTURE_COORD_ARRAY_LENGTH_NV */ - { 64872, 0x00008F30 }, /* GL_EDGE_FLAG_ARRAY_LENGTH_NV */ - { 64901, 0x00008F31 }, /* GL_SECONDARY_COLOR_ARRAY_LENGTH_NV */ - { 64936, 0x00008F32 }, /* GL_FOG_COORD_ARRAY_LENGTH_NV */ - { 64965, 0x00008F33 }, /* GL_ELEMENT_ARRAY_LENGTH_NV */ - { 64992, 0x00008F34 }, /* GL_GPU_ADDRESS_NV */ - { 65010, 0x00008F35 }, /* GL_MAX_SHADER_BUFFER_ADDRESS_NV */ - { 65042, 0x00008F36 }, /* GL_COPY_READ_BUFFER_BINDING */ - { 65070, 0x00008F37 }, /* GL_COPY_WRITE_BUFFER_BINDING */ - { 65099, 0x00008F38 }, /* GL_MAX_IMAGE_UNITS */ - { 65118, 0x00008F39 }, /* GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES */ - { 65158, 0x00008F3A }, /* GL_IMAGE_BINDING_NAME */ - { 65180, 0x00008F3B }, /* GL_IMAGE_BINDING_LEVEL */ - { 65203, 0x00008F3C }, /* GL_IMAGE_BINDING_LAYERED */ - { 65228, 0x00008F3D }, /* GL_IMAGE_BINDING_LAYER */ - { 65251, 0x00008F3E }, /* GL_IMAGE_BINDING_ACCESS */ - { 65275, 0x00008F3F }, /* GL_DRAW_INDIRECT_BUFFER */ - { 65299, 0x00008F40 }, /* GL_DRAW_INDIRECT_UNIFIED_NV */ - { 65327, 0x00008F41 }, /* GL_DRAW_INDIRECT_ADDRESS_NV */ - { 65355, 0x00008F42 }, /* GL_DRAW_INDIRECT_LENGTH_NV */ - { 65382, 0x00008F43 }, /* GL_DRAW_INDIRECT_BUFFER_BINDING */ - { 65414, 0x00008F44 }, /* GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV */ - { 65454, 0x00008F45 }, /* GL_MAX_PROGRAM_SUBROUTINE_NUM_NV */ - { 65487, 0x00008F46 }, /* GL_DOUBLE_MAT2 */ - { 65502, 0x00008F47 }, /* GL_DOUBLE_MAT3 */ - { 65517, 0x00008F48 }, /* GL_DOUBLE_MAT4 */ - { 65532, 0x00008F49 }, /* GL_DOUBLE_MAT2x3 */ - { 65549, 0x00008F4A }, /* GL_DOUBLE_MAT2x4 */ - { 65566, 0x00008F4B }, /* GL_DOUBLE_MAT3x2 */ - { 65583, 0x00008F4C }, /* GL_DOUBLE_MAT3x4 */ - { 65600, 0x00008F4D }, /* GL_DOUBLE_MAT4x2 */ - { 65617, 0x00008F4E }, /* GL_DOUBLE_MAT4x3 */ - { 65634, 0x00008F4F }, /* GL_VERTEX_BINDING_BUFFER */ - { 65659, 0x00008F60 }, /* GL_MALI_SHADER_BINARY_ARM */ - { 65685, 0x00008F61 }, /* GL_MALI_PROGRAM_BINARY_ARM */ - { 65712, 0x00008F63 }, /* GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT */ - { 65760, 0x00008F64 }, /* GL_SHADER_PIXEL_LOCAL_STORAGE_EXT */ - { 65794, 0x00008F65 }, /* GL_FETCH_PER_SAMPLE_ARM */ - { 65818, 0x00008F66 }, /* GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM */ - { 65863, 0x00008F67 }, /* GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT */ - { 65906, 0x00008F69 }, /* GL_TEXTURE_ASTC_DECODE_PRECISION_EXT */ - { 65943, 0x00008F90 }, /* GL_RED_SNORM */ - { 65956, 0x00008F91 }, /* GL_RG_SNORM */ - { 65968, 0x00008F92 }, /* GL_RGB_SNORM */ - { 65981, 0x00008F93 }, /* GL_RGBA_SNORM */ - { 65995, 0x00008F94 }, /* GL_R8_SNORM */ - { 66007, 0x00008F95 }, /* GL_RG8_SNORM */ - { 66020, 0x00008F96 }, /* GL_RGB8_SNORM */ - { 66034, 0x00008F97 }, /* GL_RGBA8_SNORM */ - { 66049, 0x00008F98 }, /* GL_R16_SNORM */ - { 66062, 0x00008F99 }, /* GL_RG16_SNORM */ - { 66076, 0x00008F9A }, /* GL_RGB16_SNORM */ - { 66091, 0x00008F9B }, /* GL_RGBA16_SNORM */ - { 66107, 0x00008F9C }, /* GL_SIGNED_NORMALIZED */ - { 66128, 0x00008F9D }, /* GL_PRIMITIVE_RESTART */ - { 66149, 0x00008F9E }, /* GL_PRIMITIVE_RESTART_INDEX */ - { 66176, 0x00008F9F }, /* GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB */ - { 66221, 0x00008FA0 }, /* GL_PERFMON_GLOBAL_MODE_QCOM */ - { 66249, 0x00008FB0 }, /* GL_BINNING_CONTROL_HINT_QCOM */ - { 66278, 0x00008FB1 }, /* GL_CPU_OPTIMIZED_QCOM */ - { 66300, 0x00008FB2 }, /* GL_GPU_OPTIMIZED_QCOM */ - { 66322, 0x00008FB3 }, /* GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM */ - { 66359, 0x00008FBB }, /* GL_GPU_DISJOINT_EXT */ - { 66379, 0x00008FBD }, /* GL_SR8_EXT */ - { 66390, 0x00008FBE }, /* GL_SRG8_EXT */ - { 66402, 0x00008FC4 }, /* GL_SHADER_BINARY_VIV */ - { 66423, 0x00008FE0 }, /* GL_INT8_NV */ - { 66434, 0x00008FE1 }, /* GL_INT8_VEC2_NV */ - { 66450, 0x00008FE2 }, /* GL_INT8_VEC3_NV */ - { 66466, 0x00008FE3 }, /* GL_INT8_VEC4_NV */ - { 66482, 0x00008FE4 }, /* GL_INT16_NV */ - { 66494, 0x00008FE5 }, /* GL_INT16_VEC2_NV */ - { 66511, 0x00008FE6 }, /* GL_INT16_VEC3_NV */ - { 66528, 0x00008FE7 }, /* GL_INT16_VEC4_NV */ - { 66545, 0x00008FE9 }, /* GL_INT64_VEC2_ARB */ - { 66563, 0x00008FEA }, /* GL_INT64_VEC3_ARB */ - { 66581, 0x00008FEB }, /* GL_INT64_VEC4_ARB */ - { 66599, 0x00008FEC }, /* GL_UNSIGNED_INT8_NV */ - { 66619, 0x00008FED }, /* GL_UNSIGNED_INT8_VEC2_NV */ - { 66644, 0x00008FEE }, /* GL_UNSIGNED_INT8_VEC3_NV */ - { 66669, 0x00008FEF }, /* GL_UNSIGNED_INT8_VEC4_NV */ - { 66694, 0x00008FF0 }, /* GL_UNSIGNED_INT16_NV */ - { 66715, 0x00008FF1 }, /* GL_UNSIGNED_INT16_VEC2_NV */ - { 66741, 0x00008FF2 }, /* GL_UNSIGNED_INT16_VEC3_NV */ - { 66767, 0x00008FF3 }, /* GL_UNSIGNED_INT16_VEC4_NV */ - { 66793, 0x00008FF5 }, /* GL_UNSIGNED_INT64_VEC2_ARB */ - { 66820, 0x00008FF6 }, /* GL_UNSIGNED_INT64_VEC3_ARB */ - { 66847, 0x00008FF7 }, /* GL_UNSIGNED_INT64_VEC4_ARB */ - { 66874, 0x00008FF8 }, /* GL_FLOAT16_NV */ - { 66888, 0x00008FF9 }, /* GL_FLOAT16_VEC2_NV */ - { 66907, 0x00008FFA }, /* GL_FLOAT16_VEC3_NV */ - { 66926, 0x00008FFB }, /* GL_FLOAT16_VEC4_NV */ - { 66945, 0x00008FFC }, /* GL_DOUBLE_VEC2 */ - { 66960, 0x00008FFD }, /* GL_DOUBLE_VEC3 */ - { 66975, 0x00008FFE }, /* GL_DOUBLE_VEC4 */ - { 66990, 0x00009001 }, /* GL_SAMPLER_BUFFER_AMD */ - { 67012, 0x00009002 }, /* GL_INT_SAMPLER_BUFFER_AMD */ - { 67038, 0x00009003 }, /* GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD */ - { 67073, 0x00009004 }, /* GL_TESSELLATION_MODE_AMD */ - { 67098, 0x00009005 }, /* GL_TESSELLATION_FACTOR_AMD */ - { 67125, 0x00009006 }, /* GL_DISCRETE_AMD */ - { 67141, 0x00009007 }, /* GL_CONTINUOUS_AMD */ - { 67159, 0x00009009 }, /* GL_TEXTURE_CUBE_MAP_ARRAY */ - { 67185, 0x0000900A }, /* GL_TEXTURE_BINDING_CUBE_MAP_ARRAY */ - { 67219, 0x0000900B }, /* GL_PROXY_TEXTURE_CUBE_MAP_ARRAY */ - { 67251, 0x0000900C }, /* GL_SAMPLER_CUBE_MAP_ARRAY */ - { 67277, 0x0000900D }, /* GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW */ - { 67310, 0x0000900E }, /* GL_INT_SAMPLER_CUBE_MAP_ARRAY */ - { 67340, 0x0000900F }, /* GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY */ - { 67379, 0x00009010 }, /* GL_ALPHA_SNORM */ - { 67394, 0x00009011 }, /* GL_LUMINANCE_SNORM */ - { 67413, 0x00009012 }, /* GL_LUMINANCE_ALPHA_SNORM */ - { 67438, 0x00009013 }, /* GL_INTENSITY_SNORM */ - { 67457, 0x00009014 }, /* GL_ALPHA8_SNORM */ - { 67473, 0x00009015 }, /* GL_LUMINANCE8_SNORM */ - { 67493, 0x00009016 }, /* GL_LUMINANCE8_ALPHA8_SNORM */ - { 67520, 0x00009017 }, /* GL_INTENSITY8_SNORM */ - { 67540, 0x00009018 }, /* GL_ALPHA16_SNORM */ - { 67557, 0x00009019 }, /* GL_LUMINANCE16_SNORM */ - { 67578, 0x0000901A }, /* GL_LUMINANCE16_ALPHA16_SNORM */ - { 67607, 0x0000901B }, /* GL_INTENSITY16_SNORM */ - { 67628, 0x0000901C }, /* GL_FACTOR_MIN_AMD */ - { 67646, 0x0000901D }, /* GL_FACTOR_MAX_AMD */ - { 67664, 0x0000901E }, /* GL_DEPTH_CLAMP_NEAR_AMD */ - { 67688, 0x0000901F }, /* GL_DEPTH_CLAMP_FAR_AMD */ - { 67711, 0x00009020 }, /* GL_VIDEO_BUFFER_NV */ - { 67730, 0x00009021 }, /* GL_VIDEO_BUFFER_BINDING_NV */ - { 67757, 0x00009022 }, /* GL_FIELD_UPPER_NV */ - { 67775, 0x00009023 }, /* GL_FIELD_LOWER_NV */ - { 67793, 0x00009024 }, /* GL_NUM_VIDEO_CAPTURE_STREAMS_NV */ - { 67825, 0x00009025 }, /* GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV */ - { 67864, 0x00009026 }, /* GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV */ - { 67901, 0x00009027 }, /* GL_LAST_VIDEO_CAPTURE_STATUS_NV */ - { 67933, 0x00009028 }, /* GL_VIDEO_BUFFER_PITCH_NV */ - { 67958, 0x00009029 }, /* GL_VIDEO_COLOR_CONVERSION_MATRIX_NV */ - { 67994, 0x0000902A }, /* GL_VIDEO_COLOR_CONVERSION_MAX_NV */ - { 68027, 0x0000902B }, /* GL_VIDEO_COLOR_CONVERSION_MIN_NV */ - { 68060, 0x0000902C }, /* GL_VIDEO_COLOR_CONVERSION_OFFSET_NV */ - { 68096, 0x0000902D }, /* GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV */ - { 68131, 0x0000902E }, /* GL_PARTIAL_SUCCESS_NV */ - { 68153, 0x0000902F }, /* GL_SUCCESS_NV */ - { 68167, 0x00009030 }, /* GL_FAILURE_NV */ - { 68181, 0x00009031 }, /* GL_YCBYCR8_422_NV */ - { 68199, 0x00009032 }, /* GL_YCBAYCR8A_4224_NV */ - { 68220, 0x00009033 }, /* GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV */ - { 68253, 0x00009034 }, /* GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV */ - { 68297, 0x00009035 }, /* GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV */ - { 68330, 0x00009036 }, /* GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV */ - { 68374, 0x00009037 }, /* GL_Z4Y12Z4CB12Z4CR12_444_NV */ - { 68402, 0x00009038 }, /* GL_VIDEO_CAPTURE_FRAME_WIDTH_NV */ - { 68434, 0x00009039 }, /* GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV */ - { 68467, 0x0000903A }, /* GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV */ - { 68506, 0x0000903B }, /* GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV */ - { 68545, 0x0000903C }, /* GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV */ - { 68580, 0x00009045 }, /* GL_TEXTURE_COVERAGE_SAMPLES_NV */ - { 68611, 0x00009046 }, /* GL_TEXTURE_COLOR_SAMPLES_NV */ - { 68639, 0x00009047 }, /* GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX */ - { 68679, 0x00009048 }, /* GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX */ - { 68725, 0x00009049 }, /* GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX */ - { 68773, 0x0000904A }, /* GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX */ - { 68811, 0x0000904B }, /* GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX */ - { 68849, 0x0000904C }, /* GL_IMAGE_1D */ - { 68861, 0x0000904D }, /* GL_IMAGE_2D */ - { 68873, 0x0000904E }, /* GL_IMAGE_3D */ - { 68885, 0x0000904F }, /* GL_IMAGE_2D_RECT */ - { 68902, 0x00009050 }, /* GL_IMAGE_CUBE */ - { 68916, 0x00009051 }, /* GL_IMAGE_BUFFER */ - { 68932, 0x00009052 }, /* GL_IMAGE_1D_ARRAY */ - { 68950, 0x00009053 }, /* GL_IMAGE_2D_ARRAY */ - { 68968, 0x00009054 }, /* GL_IMAGE_CUBE_MAP_ARRAY */ - { 68992, 0x00009055 }, /* GL_IMAGE_2D_MULTISAMPLE */ - { 69016, 0x00009056 }, /* GL_IMAGE_2D_MULTISAMPLE_ARRAY */ - { 69046, 0x00009057 }, /* GL_INT_IMAGE_1D */ - { 69062, 0x00009058 }, /* GL_INT_IMAGE_2D */ - { 69078, 0x00009059 }, /* GL_INT_IMAGE_3D */ - { 69094, 0x0000905A }, /* GL_INT_IMAGE_2D_RECT */ - { 69115, 0x0000905B }, /* GL_INT_IMAGE_CUBE */ - { 69133, 0x0000905C }, /* GL_INT_IMAGE_BUFFER */ - { 69153, 0x0000905D }, /* GL_INT_IMAGE_1D_ARRAY */ - { 69175, 0x0000905E }, /* GL_INT_IMAGE_2D_ARRAY */ - { 69197, 0x0000905F }, /* GL_INT_IMAGE_CUBE_MAP_ARRAY */ - { 69225, 0x00009060 }, /* GL_INT_IMAGE_2D_MULTISAMPLE */ - { 69253, 0x00009061 }, /* GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY */ - { 69287, 0x00009062 }, /* GL_UNSIGNED_INT_IMAGE_1D */ - { 69312, 0x00009063 }, /* GL_UNSIGNED_INT_IMAGE_2D */ - { 69337, 0x00009064 }, /* GL_UNSIGNED_INT_IMAGE_3D */ - { 69362, 0x00009065 }, /* GL_UNSIGNED_INT_IMAGE_2D_RECT */ - { 69392, 0x00009066 }, /* GL_UNSIGNED_INT_IMAGE_CUBE */ - { 69419, 0x00009067 }, /* GL_UNSIGNED_INT_IMAGE_BUFFER */ - { 69448, 0x00009068 }, /* GL_UNSIGNED_INT_IMAGE_1D_ARRAY */ - { 69479, 0x00009069 }, /* GL_UNSIGNED_INT_IMAGE_2D_ARRAY */ - { 69510, 0x0000906A }, /* GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY */ - { 69547, 0x0000906B }, /* GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE */ - { 69584, 0x0000906C }, /* GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY */ - { 69627, 0x0000906D }, /* GL_MAX_IMAGE_SAMPLES */ - { 69648, 0x0000906E }, /* GL_IMAGE_BINDING_FORMAT */ - { 69672, 0x0000906F }, /* GL_RGB10_A2UI */ - { 69686, 0x00009070 }, /* GL_PATH_FORMAT_SVG_NV */ - { 69708, 0x00009071 }, /* GL_PATH_FORMAT_PS_NV */ - { 69729, 0x00009072 }, /* GL_STANDARD_FONT_NAME_NV */ - { 69754, 0x00009073 }, /* GL_SYSTEM_FONT_NAME_NV */ - { 69777, 0x00009074 }, /* GL_FILE_NAME_NV */ - { 69793, 0x00009075 }, /* GL_PATH_STROKE_WIDTH_NV */ - { 69817, 0x00009076 }, /* GL_PATH_END_CAPS_NV */ - { 69837, 0x00009077 }, /* GL_PATH_INITIAL_END_CAP_NV */ - { 69864, 0x00009078 }, /* GL_PATH_TERMINAL_END_CAP_NV */ - { 69892, 0x00009079 }, /* GL_PATH_JOIN_STYLE_NV */ - { 69914, 0x0000907A }, /* GL_PATH_MITER_LIMIT_NV */ - { 69937, 0x0000907B }, /* GL_PATH_DASH_CAPS_NV */ - { 69958, 0x0000907C }, /* GL_PATH_INITIAL_DASH_CAP_NV */ - { 69986, 0x0000907D }, /* GL_PATH_TERMINAL_DASH_CAP_NV */ - { 70015, 0x0000907E }, /* GL_PATH_DASH_OFFSET_NV */ - { 70038, 0x0000907F }, /* GL_PATH_CLIENT_LENGTH_NV */ - { 70063, 0x00009080 }, /* GL_PATH_FILL_MODE_NV */ - { 70084, 0x00009081 }, /* GL_PATH_FILL_MASK_NV */ - { 70105, 0x00009082 }, /* GL_PATH_FILL_COVER_MODE_NV */ - { 70132, 0x00009083 }, /* GL_PATH_STROKE_COVER_MODE_NV */ - { 70161, 0x00009084 }, /* GL_PATH_STROKE_MASK_NV */ - { 70184, 0x00009088 }, /* GL_COUNT_UP_NV */ - { 70199, 0x00009089 }, /* GL_COUNT_DOWN_NV */ - { 70216, 0x0000908A }, /* GL_PATH_OBJECT_BOUNDING_BOX_NV */ - { 70247, 0x0000908B }, /* GL_CONVEX_HULL_NV */ - { 70265, 0x0000908D }, /* GL_BOUNDING_BOX_NV */ - { 70284, 0x0000908E }, /* GL_TRANSLATE_X_NV */ - { 70302, 0x0000908F }, /* GL_TRANSLATE_Y_NV */ - { 70320, 0x00009090 }, /* GL_TRANSLATE_2D_NV */ - { 70339, 0x00009091 }, /* GL_TRANSLATE_3D_NV */ - { 70358, 0x00009092 }, /* GL_AFFINE_2D_NV */ - { 70374, 0x00009094 }, /* GL_AFFINE_3D_NV */ - { 70390, 0x00009096 }, /* GL_TRANSPOSE_AFFINE_2D_NV */ - { 70416, 0x00009098 }, /* GL_TRANSPOSE_AFFINE_3D_NV */ - { 70442, 0x0000909A }, /* GL_UTF8_NV */ - { 70453, 0x0000909B }, /* GL_UTF16_NV */ - { 70465, 0x0000909C }, /* GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV */ - { 70502, 0x0000909D }, /* GL_PATH_COMMAND_COUNT_NV */ - { 70527, 0x0000909E }, /* GL_PATH_COORD_COUNT_NV */ - { 70550, 0x0000909F }, /* GL_PATH_DASH_ARRAY_COUNT_NV */ - { 70578, 0x000090A0 }, /* GL_PATH_COMPUTED_LENGTH_NV */ - { 70605, 0x000090A1 }, /* GL_PATH_FILL_BOUNDING_BOX_NV */ - { 70634, 0x000090A2 }, /* GL_PATH_STROKE_BOUNDING_BOX_NV */ - { 70665, 0x000090A3 }, /* GL_SQUARE_NV */ - { 70678, 0x000090A4 }, /* GL_ROUND_NV */ - { 70690, 0x000090A5 }, /* GL_TRIANGULAR_NV */ - { 70707, 0x000090A6 }, /* GL_BEVEL_NV */ - { 70719, 0x000090A7 }, /* GL_MITER_REVERT_NV */ - { 70738, 0x000090A8 }, /* GL_MITER_TRUNCATE_NV */ - { 70759, 0x000090A9 }, /* GL_SKIP_MISSING_GLYPH_NV */ - { 70784, 0x000090AA }, /* GL_USE_MISSING_GLYPH_NV */ - { 70808, 0x000090AB }, /* GL_PATH_ERROR_POSITION_NV */ - { 70834, 0x000090AC }, /* GL_PATH_FOG_GEN_MODE_NV */ - { 70858, 0x000090AD }, /* GL_ACCUM_ADJACENT_PAIRS_NV */ - { 70885, 0x000090AE }, /* GL_ADJACENT_PAIRS_NV */ - { 70906, 0x000090AF }, /* GL_FIRST_TO_REST_NV */ - { 70926, 0x000090B0 }, /* GL_PATH_GEN_MODE_NV */ - { 70946, 0x000090B1 }, /* GL_PATH_GEN_COEFF_NV */ - { 70967, 0x000090B2 }, /* GL_PATH_GEN_COLOR_FORMAT_NV */ - { 70995, 0x000090B3 }, /* GL_PATH_GEN_COMPONENTS_NV */ - { 71021, 0x000090B4 }, /* GL_PATH_DASH_OFFSET_RESET_NV */ - { 71050, 0x000090B5 }, /* GL_MOVE_TO_RESETS_NV */ - { 71071, 0x000090B6 }, /* GL_MOVE_TO_CONTINUES_NV */ - { 71095, 0x000090B7 }, /* GL_PATH_STENCIL_FUNC_NV */ - { 71119, 0x000090B8 }, /* GL_PATH_STENCIL_REF_NV */ - { 71142, 0x000090B9 }, /* GL_PATH_STENCIL_VALUE_MASK_NV */ - { 71172, 0x000090BA }, /* GL_SCALED_RESOLVE_FASTEST_EXT */ - { 71202, 0x000090BB }, /* GL_SCALED_RESOLVE_NICEST_EXT */ - { 71231, 0x000090BC }, /* GL_MIN_MAP_BUFFER_ALIGNMENT */ - { 71259, 0x000090BD }, /* GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV */ - { 71298, 0x000090BE }, /* GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV */ - { 71336, 0x000090BF }, /* GL_PATH_COVER_DEPTH_FUNC_NV */ - { 71364, 0x000090C7 }, /* GL_IMAGE_FORMAT_COMPATIBILITY_TYPE */ - { 71399, 0x000090C8 }, /* GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE */ - { 71437, 0x000090C9 }, /* GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS */ - { 71476, 0x000090CA }, /* GL_MAX_VERTEX_IMAGE_UNIFORMS */ - { 71505, 0x000090CB }, /* GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS */ - { 71540, 0x000090CC }, /* GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS */ - { 71578, 0x000090CD }, /* GL_MAX_GEOMETRY_IMAGE_UNIFORMS */ - { 71609, 0x000090CE }, /* GL_MAX_FRAGMENT_IMAGE_UNIFORMS */ - { 71640, 0x000090CF }, /* GL_MAX_COMBINED_IMAGE_UNIFORMS */ - { 71671, 0x000090D0 }, /* GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV */ - { 71710, 0x000090D1 }, /* GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV */ - { 71742, 0x000090D2 }, /* GL_SHADER_STORAGE_BUFFER */ - { 71767, 0x000090D3 }, /* GL_SHADER_STORAGE_BUFFER_BINDING */ - { 71800, 0x000090D4 }, /* GL_SHADER_STORAGE_BUFFER_START */ - { 71831, 0x000090D5 }, /* GL_SHADER_STORAGE_BUFFER_SIZE */ - { 71861, 0x000090D6 }, /* GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS */ - { 71897, 0x000090D7 }, /* GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS */ - { 71935, 0x000090D8 }, /* GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS */ - { 71977, 0x000090D9 }, /* GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS */ - { 72022, 0x000090DA }, /* GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS */ - { 72060, 0x000090DB }, /* GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS */ - { 72097, 0x000090DC }, /* GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS */ - { 72135, 0x000090DD }, /* GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS */ - { 72173, 0x000090DE }, /* GL_MAX_SHADER_STORAGE_BLOCK_SIZE */ - { 72206, 0x000090DF }, /* GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT */ - { 72248, 0x000090E1 }, /* GL_SYNC_X11_FENCE_EXT */ - { 72270, 0x000090EA }, /* GL_DEPTH_STENCIL_TEXTURE_MODE */ - { 72300, 0x000090EB }, /* GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS */ - { 72338, 0x000090EC }, /* GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER */ - { 72384, 0x000090ED }, /* GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER */ - { 72438, 0x000090EE }, /* GL_DISPATCH_INDIRECT_BUFFER */ - { 72466, 0x000090EF }, /* GL_DISPATCH_INDIRECT_BUFFER_BINDING */ - { 72502, 0x000090F0 }, /* GL_COLOR_ATTACHMENT_EXT */ - { 72526, 0x000090F1 }, /* GL_MULTIVIEW_EXT */ - { 72543, 0x000090F2 }, /* GL_MAX_MULTIVIEW_BUFFERS_EXT */ - { 72572, 0x000090F3 }, /* GL_CONTEXT_ROBUST_ACCESS */ - { 72597, 0x000090FB }, /* GL_COMPUTE_PROGRAM_NV */ - { 72619, 0x000090FC }, /* GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV */ - { 72658, 0x00009100 }, /* GL_TEXTURE_2D_MULTISAMPLE */ - { 72684, 0x00009101 }, /* GL_PROXY_TEXTURE_2D_MULTISAMPLE */ - { 72716, 0x00009102 }, /* GL_TEXTURE_2D_MULTISAMPLE_ARRAY */ - { 72748, 0x00009103 }, /* GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY */ - { 72786, 0x00009104 }, /* GL_TEXTURE_BINDING_2D_MULTISAMPLE */ - { 72820, 0x00009105 }, /* GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY */ - { 72860, 0x00009106 }, /* GL_TEXTURE_SAMPLES */ - { 72879, 0x00009107 }, /* GL_TEXTURE_FIXED_SAMPLE_LOCATIONS */ - { 72913, 0x00009108 }, /* GL_SAMPLER_2D_MULTISAMPLE */ - { 72939, 0x00009109 }, /* GL_INT_SAMPLER_2D_MULTISAMPLE */ - { 72969, 0x0000910A }, /* GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE */ - { 73008, 0x0000910B }, /* GL_SAMPLER_2D_MULTISAMPLE_ARRAY */ - { 73040, 0x0000910C }, /* GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY */ - { 73076, 0x0000910D }, /* GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY */ - { 73121, 0x0000910E }, /* GL_MAX_COLOR_TEXTURE_SAMPLES */ - { 73150, 0x0000910F }, /* GL_MAX_DEPTH_TEXTURE_SAMPLES */ - { 73179, 0x00009110 }, /* GL_MAX_INTEGER_SAMPLES */ - { 73202, 0x00009111 }, /* GL_MAX_SERVER_WAIT_TIMEOUT */ - { 73229, 0x00009112 }, /* GL_OBJECT_TYPE */ - { 73244, 0x00009113 }, /* GL_SYNC_CONDITION */ - { 73262, 0x00009114 }, /* GL_SYNC_STATUS */ - { 73277, 0x00009115 }, /* GL_SYNC_FLAGS */ - { 73291, 0x00009116 }, /* GL_SYNC_FENCE */ - { 73305, 0x00009117 }, /* GL_SYNC_GPU_COMMANDS_COMPLETE */ - { 73335, 0x00009118 }, /* GL_UNSIGNALED */ - { 73349, 0x00009119 }, /* GL_SIGNALED */ - { 73361, 0x0000911A }, /* GL_ALREADY_SIGNALED */ - { 73381, 0x0000911B }, /* GL_TIMEOUT_EXPIRED */ - { 73400, 0x0000911C }, /* GL_CONDITION_SATISFIED */ - { 73423, 0x0000911D }, /* GL_WAIT_FAILED */ - { 73438, 0x0000911F }, /* GL_BUFFER_ACCESS_FLAGS */ - { 73461, 0x00009120 }, /* GL_BUFFER_MAP_LENGTH */ - { 73482, 0x00009121 }, /* GL_BUFFER_MAP_OFFSET */ - { 73503, 0x00009122 }, /* GL_MAX_VERTEX_OUTPUT_COMPONENTS */ - { 73535, 0x00009123 }, /* GL_MAX_GEOMETRY_INPUT_COMPONENTS */ - { 73568, 0x00009124 }, /* GL_MAX_GEOMETRY_OUTPUT_COMPONENTS */ - { 73602, 0x00009125 }, /* GL_MAX_FRAGMENT_INPUT_COMPONENTS */ - { 73635, 0x00009126 }, /* GL_CONTEXT_PROFILE_MASK */ - { 73659, 0x00009127 }, /* GL_UNPACK_COMPRESSED_BLOCK_WIDTH */ - { 73692, 0x00009128 }, /* GL_UNPACK_COMPRESSED_BLOCK_HEIGHT */ - { 73726, 0x00009129 }, /* GL_UNPACK_COMPRESSED_BLOCK_DEPTH */ - { 73759, 0x0000912A }, /* GL_UNPACK_COMPRESSED_BLOCK_SIZE */ - { 73791, 0x0000912B }, /* GL_PACK_COMPRESSED_BLOCK_WIDTH */ - { 73822, 0x0000912C }, /* GL_PACK_COMPRESSED_BLOCK_HEIGHT */ - { 73854, 0x0000912D }, /* GL_PACK_COMPRESSED_BLOCK_DEPTH */ - { 73885, 0x0000912E }, /* GL_PACK_COMPRESSED_BLOCK_SIZE */ - { 73915, 0x0000912F }, /* GL_TEXTURE_IMMUTABLE_FORMAT */ - { 73943, 0x00009130 }, /* GL_SGX_PROGRAM_BINARY_IMG */ - { 73969, 0x00009133 }, /* GL_RENDERBUFFER_SAMPLES_IMG */ - { 73997, 0x00009134 }, /* GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG */ - { 74039, 0x00009135 }, /* GL_MAX_SAMPLES_IMG */ - { 74058, 0x00009136 }, /* GL_TEXTURE_SAMPLES_IMG */ - { 74081, 0x00009137 }, /* GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG */ - { 74117, 0x00009138 }, /* GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG */ - { 74153, 0x00009139 }, /* GL_CUBIC_IMG */ - { 74166, 0x0000913A }, /* GL_CUBIC_MIPMAP_NEAREST_IMG */ - { 74194, 0x0000913B }, /* GL_CUBIC_MIPMAP_LINEAR_IMG */ - { 74221, 0x0000913C }, /* GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_AND_DOWNSAMPLE_IMG */ - { 74278, 0x0000913D }, /* GL_NUM_DOWNSAMPLE_SCALES_IMG */ - { 74307, 0x0000913E }, /* GL_DOWNSAMPLE_SCALES_IMG */ - { 74332, 0x0000913F }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SCALE_IMG */ - { 74376, 0x00009143 }, /* GL_MAX_DEBUG_MESSAGE_LENGTH */ - { 74404, 0x00009144 }, /* GL_MAX_DEBUG_LOGGED_MESSAGES */ - { 74433, 0x00009145 }, /* GL_DEBUG_LOGGED_MESSAGES */ - { 74458, 0x00009146 }, /* GL_DEBUG_SEVERITY_HIGH */ - { 74481, 0x00009147 }, /* GL_DEBUG_SEVERITY_MEDIUM */ - { 74506, 0x00009148 }, /* GL_DEBUG_SEVERITY_LOW */ - { 74528, 0x00009149 }, /* GL_DEBUG_CATEGORY_API_ERROR_AMD */ - { 74560, 0x0000914A }, /* GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD */ - { 74596, 0x0000914B }, /* GL_DEBUG_CATEGORY_DEPRECATION_AMD */ - { 74630, 0x0000914C }, /* GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD */ - { 74671, 0x0000914D }, /* GL_DEBUG_CATEGORY_PERFORMANCE_AMD */ - { 74705, 0x0000914E }, /* GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD */ - { 74743, 0x0000914F }, /* GL_DEBUG_CATEGORY_APPLICATION_AMD */ - { 74777, 0x00009150 }, /* GL_DEBUG_CATEGORY_OTHER_AMD */ - { 74805, 0x00009151 }, /* GL_BUFFER_OBJECT_EXT */ - { 74826, 0x00009152 }, /* GL_PERFORMANCE_MONITOR_AMD */ - { 74853, 0x00009153 }, /* GL_QUERY_OBJECT_EXT */ - { 74873, 0x00009154 }, /* GL_VERTEX_ARRAY_OBJECT_EXT */ - { 74900, 0x00009155 }, /* GL_SAMPLER_OBJECT_AMD */ - { 74922, 0x00009160 }, /* GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD */ - { 74960, 0x00009192 }, /* GL_QUERY_BUFFER */ - { 74976, 0x00009193 }, /* GL_QUERY_BUFFER_BINDING */ - { 75000, 0x00009194 }, /* GL_QUERY_RESULT_NO_WAIT */ - { 75024, 0x00009195 }, /* GL_VIRTUAL_PAGE_SIZE_X_ARB */ - { 75051, 0x00009196 }, /* GL_VIRTUAL_PAGE_SIZE_Y_ARB */ - { 75078, 0x00009197 }, /* GL_VIRTUAL_PAGE_SIZE_Z_ARB */ - { 75105, 0x00009198 }, /* GL_MAX_SPARSE_TEXTURE_SIZE_ARB */ - { 75136, 0x00009199 }, /* GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB */ - { 75170, 0x0000919A }, /* GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB */ - { 75209, 0x0000919B }, /* GL_MIN_SPARSE_LEVEL_AMD */ - { 75233, 0x0000919C }, /* GL_MIN_LOD_WARNING_AMD */ - { 75256, 0x0000919D }, /* GL_TEXTURE_BUFFER_OFFSET */ - { 75281, 0x0000919E }, /* GL_TEXTURE_BUFFER_SIZE */ - { 75304, 0x0000919F }, /* GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT */ - { 75339, 0x000091A0 }, /* GL_STREAM_RASTERIZATION_AMD */ - { 75367, 0x000091A4 }, /* GL_VERTEX_ELEMENT_SWIZZLE_AMD */ - { 75397, 0x000091A5 }, /* GL_VERTEX_ID_SWIZZLE_AMD */ - { 75422, 0x000091A6 }, /* GL_TEXTURE_SPARSE_ARB */ - { 75444, 0x000091A7 }, /* GL_VIRTUAL_PAGE_SIZE_INDEX_ARB */ - { 75475, 0x000091A8 }, /* GL_NUM_VIRTUAL_PAGE_SIZES_ARB */ - { 75505, 0x000091A9 }, /* GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB */ - { 75551, 0x000091AA }, /* GL_NUM_SPARSE_LEVELS_ARB */ - { 75576, 0x000091AE }, /* GL_PIXELS_PER_SAMPLE_PATTERN_X_AMD */ - { 75611, 0x000091AF }, /* GL_PIXELS_PER_SAMPLE_PATTERN_Y_AMD */ - { 75646, 0x000091B0 }, /* GL_MAX_SHADER_COMPILER_THREADS_ARB */ - { 75681, 0x000091B1 }, /* GL_COMPLETION_STATUS_ARB */ - { 75706, 0x000091B9 }, /* GL_COMPUTE_SHADER */ - { 75724, 0x000091BB }, /* GL_MAX_COMPUTE_UNIFORM_BLOCKS */ - { 75754, 0x000091BC }, /* GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS */ - { 75789, 0x000091BD }, /* GL_MAX_COMPUTE_IMAGE_UNIFORMS */ - { 75819, 0x000091BE }, /* GL_MAX_COMPUTE_WORK_GROUP_COUNT */ - { 75851, 0x000091BF }, /* GL_MAX_COMPUTE_WORK_GROUP_SIZE */ - { 75882, 0x000091C5 }, /* GL_FLOAT16_MAT2_AMD */ - { 75902, 0x000091C6 }, /* GL_FLOAT16_MAT3_AMD */ - { 75922, 0x000091C7 }, /* GL_FLOAT16_MAT4_AMD */ - { 75942, 0x000091C8 }, /* GL_FLOAT16_MAT2x3_AMD */ - { 75964, 0x000091C9 }, /* GL_FLOAT16_MAT2x4_AMD */ - { 75986, 0x000091CA }, /* GL_FLOAT16_MAT3x2_AMD */ - { 76008, 0x000091CB }, /* GL_FLOAT16_MAT3x4_AMD */ - { 76030, 0x000091CC }, /* GL_FLOAT16_MAT4x2_AMD */ - { 76052, 0x000091CD }, /* GL_FLOAT16_MAT4x3_AMD */ - { 76074, 0x00009250 }, /* GL_SHADER_BINARY_DMP */ - { 76095, 0x00009251 }, /* GL_SMAPHS30_PROGRAM_BINARY_DMP */ - { 76126, 0x00009252 }, /* GL_SMAPHS_PROGRAM_BINARY_DMP */ - { 76155, 0x00009253 }, /* GL_DMP_PROGRAM_BINARY_DMP */ - { 76181, 0x00009260 }, /* GL_GCCSO_SHADER_BINARY_FJ */ - { 76207, 0x00009270 }, /* GL_COMPRESSED_R11_EAC */ - { 76229, 0x00009271 }, /* GL_COMPRESSED_SIGNED_R11_EAC */ - { 76258, 0x00009272 }, /* GL_COMPRESSED_RG11_EAC */ - { 76281, 0x00009273 }, /* GL_COMPRESSED_SIGNED_RG11_EAC */ - { 76311, 0x00009274 }, /* GL_COMPRESSED_RGB8_ETC2 */ - { 76335, 0x00009275 }, /* GL_COMPRESSED_SRGB8_ETC2 */ - { 76360, 0x00009276 }, /* GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 */ - { 76404, 0x00009277 }, /* GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 */ - { 76449, 0x00009278 }, /* GL_COMPRESSED_RGBA8_ETC2_EAC */ - { 76478, 0x00009279 }, /* GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC */ - { 76514, 0x00009280 }, /* GL_BLEND_PREMULTIPLIED_SRC_NV */ - { 76544, 0x00009281 }, /* GL_BLEND_OVERLAP_NV */ - { 76564, 0x00009282 }, /* GL_UNCORRELATED_NV */ - { 76583, 0x00009283 }, /* GL_DISJOINT_NV */ - { 76598, 0x00009284 }, /* GL_CONJOINT_NV */ - { 76613, 0x00009285 }, /* GL_BLEND_ADVANCED_COHERENT_KHR */ - { 76644, 0x00009286 }, /* GL_SRC_NV */ - { 76654, 0x00009287 }, /* GL_DST_NV */ - { 76664, 0x00009288 }, /* GL_SRC_OVER_NV */ - { 76679, 0x00009289 }, /* GL_DST_OVER_NV */ - { 76694, 0x0000928A }, /* GL_SRC_IN_NV */ - { 76707, 0x0000928B }, /* GL_DST_IN_NV */ - { 76720, 0x0000928C }, /* GL_SRC_OUT_NV */ - { 76734, 0x0000928D }, /* GL_DST_OUT_NV */ - { 76748, 0x0000928E }, /* GL_SRC_ATOP_NV */ - { 76763, 0x0000928F }, /* GL_DST_ATOP_NV */ - { 76778, 0x00009291 }, /* GL_PLUS_NV */ - { 76789, 0x00009292 }, /* GL_PLUS_DARKER_NV */ - { 76807, 0x00009294 }, /* GL_MULTIPLY */ - { 76819, 0x00009295 }, /* GL_SCREEN */ - { 76829, 0x00009296 }, /* GL_OVERLAY */ - { 76840, 0x00009297 }, /* GL_DARKEN */ - { 76850, 0x00009298 }, /* GL_LIGHTEN */ - { 76861, 0x00009299 }, /* GL_COLORDODGE */ - { 76875, 0x0000929A }, /* GL_COLORBURN */ - { 76888, 0x0000929B }, /* GL_HARDLIGHT */ - { 76901, 0x0000929C }, /* GL_SOFTLIGHT */ - { 76914, 0x0000929E }, /* GL_DIFFERENCE */ - { 76928, 0x0000929F }, /* GL_MINUS_NV */ - { 76940, 0x000092A0 }, /* GL_EXCLUSION */ - { 76953, 0x000092A1 }, /* GL_CONTRAST_NV */ - { 76968, 0x000092A3 }, /* GL_INVERT_RGB_NV */ - { 76985, 0x000092A4 }, /* GL_LINEARDODGE_NV */ - { 77003, 0x000092A5 }, /* GL_LINEARBURN_NV */ - { 77020, 0x000092A6 }, /* GL_VIVIDLIGHT_NV */ - { 77037, 0x000092A7 }, /* GL_LINEARLIGHT_NV */ - { 77055, 0x000092A8 }, /* GL_PINLIGHT_NV */ - { 77070, 0x000092A9 }, /* GL_HARDMIX_NV */ - { 77084, 0x000092AD }, /* GL_HSL_HUE */ - { 77095, 0x000092AE }, /* GL_HSL_SATURATION */ - { 77113, 0x000092AF }, /* GL_HSL_COLOR */ - { 77126, 0x000092B0 }, /* GL_HSL_LUMINOSITY */ - { 77144, 0x000092B1 }, /* GL_PLUS_CLAMPED_NV */ - { 77163, 0x000092B2 }, /* GL_PLUS_CLAMPED_ALPHA_NV */ - { 77188, 0x000092B3 }, /* GL_MINUS_CLAMPED_NV */ - { 77208, 0x000092B4 }, /* GL_INVERT_OVG_NV */ - { 77225, 0x000092BA }, /* GL_MAX_LGPU_GPUS_NVX */ - { 77246, 0x000092BB }, /* GL_PURGED_CONTEXT_RESET_NV */ - { 77273, 0x000092BE }, /* GL_PRIMITIVE_BOUNDING_BOX */ - { 77299, 0x000092BF }, /* GL_ALPHA_TO_COVERAGE_DITHER_MODE_NV */ - { 77335, 0x000092C0 }, /* GL_ATOMIC_COUNTER_BUFFER */ - { 77360, 0x000092C1 }, /* GL_ATOMIC_COUNTER_BUFFER_BINDING */ - { 77393, 0x000092C2 }, /* GL_ATOMIC_COUNTER_BUFFER_START */ - { 77424, 0x000092C3 }, /* GL_ATOMIC_COUNTER_BUFFER_SIZE */ - { 77454, 0x000092C4 }, /* GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE */ - { 77489, 0x000092C5 }, /* GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS */ - { 77537, 0x000092C6 }, /* GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES */ - { 77592, 0x000092C7 }, /* GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER */ - { 77645, 0x000092C8 }, /* GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER */ - { 77704, 0x000092C9 }, /* GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER */ - { 77766, 0x000092CA }, /* GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER */ - { 77821, 0x000092CB }, /* GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER */ - { 77876, 0x000092CC }, /* GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS */ - { 77913, 0x000092CD }, /* GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS */ - { 77956, 0x000092CE }, /* GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS */ - { 78002, 0x000092CF }, /* GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS */ - { 78041, 0x000092D0 }, /* GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS */ - { 78080, 0x000092D1 }, /* GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS */ - { 78119, 0x000092D2 }, /* GL_MAX_VERTEX_ATOMIC_COUNTERS */ - { 78149, 0x000092D3 }, /* GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS */ - { 78185, 0x000092D4 }, /* GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS */ - { 78224, 0x000092D5 }, /* GL_MAX_GEOMETRY_ATOMIC_COUNTERS */ - { 78256, 0x000092D6 }, /* GL_MAX_FRAGMENT_ATOMIC_COUNTERS */ - { 78288, 0x000092D7 }, /* GL_MAX_COMBINED_ATOMIC_COUNTERS */ - { 78320, 0x000092D8 }, /* GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE */ - { 78354, 0x000092D9 }, /* GL_ACTIVE_ATOMIC_COUNTER_BUFFERS */ - { 78387, 0x000092DA }, /* GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX */ - { 78426, 0x000092DB }, /* GL_UNSIGNED_INT_ATOMIC_COUNTER */ - { 78457, 0x000092DC }, /* GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS */ - { 78495, 0x000092DD }, /* GL_FRAGMENT_COVERAGE_TO_COLOR_NV */ - { 78528, 0x000092DE }, /* GL_FRAGMENT_COVERAGE_COLOR_NV */ - { 78558, 0x000092E0 }, /* GL_DEBUG_OUTPUT */ - { 78574, 0x000092E1 }, /* GL_UNIFORM */ - { 78585, 0x000092E2 }, /* GL_UNIFORM_BLOCK */ - { 78602, 0x000092E3 }, /* GL_PROGRAM_INPUT */ - { 78619, 0x000092E4 }, /* GL_PROGRAM_OUTPUT */ - { 78637, 0x000092E5 }, /* GL_BUFFER_VARIABLE */ - { 78656, 0x000092E6 }, /* GL_SHADER_STORAGE_BLOCK */ - { 78680, 0x000092E7 }, /* GL_IS_PER_PATCH */ - { 78696, 0x000092E8 }, /* GL_VERTEX_SUBROUTINE */ - { 78717, 0x000092E9 }, /* GL_TESS_CONTROL_SUBROUTINE */ - { 78744, 0x000092EA }, /* GL_TESS_EVALUATION_SUBROUTINE */ - { 78774, 0x000092EB }, /* GL_GEOMETRY_SUBROUTINE */ - { 78797, 0x000092EC }, /* GL_FRAGMENT_SUBROUTINE */ - { 78820, 0x000092ED }, /* GL_COMPUTE_SUBROUTINE */ - { 78842, 0x000092EE }, /* GL_VERTEX_SUBROUTINE_UNIFORM */ - { 78871, 0x000092EF }, /* GL_TESS_CONTROL_SUBROUTINE_UNIFORM */ - { 78906, 0x000092F0 }, /* GL_TESS_EVALUATION_SUBROUTINE_UNIFORM */ - { 78944, 0x000092F1 }, /* GL_GEOMETRY_SUBROUTINE_UNIFORM */ - { 78975, 0x000092F2 }, /* GL_FRAGMENT_SUBROUTINE_UNIFORM */ - { 79006, 0x000092F3 }, /* GL_COMPUTE_SUBROUTINE_UNIFORM */ - { 79036, 0x000092F4 }, /* GL_TRANSFORM_FEEDBACK_VARYING */ - { 79066, 0x000092F5 }, /* GL_ACTIVE_RESOURCES */ - { 79086, 0x000092F6 }, /* GL_MAX_NAME_LENGTH */ - { 79105, 0x000092F7 }, /* GL_MAX_NUM_ACTIVE_VARIABLES */ - { 79133, 0x000092F8 }, /* GL_MAX_NUM_COMPATIBLE_SUBROUTINES */ - { 79167, 0x000092F9 }, /* GL_NAME_LENGTH */ - { 79182, 0x000092FA }, /* GL_TYPE */ - { 79190, 0x000092FB }, /* GL_ARRAY_SIZE */ - { 79204, 0x000092FC }, /* GL_OFFSET */ - { 79214, 0x000092FD }, /* GL_BLOCK_INDEX */ - { 79229, 0x000092FE }, /* GL_ARRAY_STRIDE */ - { 79245, 0x000092FF }, /* GL_MATRIX_STRIDE */ - { 79262, 0x00009300 }, /* GL_IS_ROW_MAJOR */ - { 79278, 0x00009301 }, /* GL_ATOMIC_COUNTER_BUFFER_INDEX */ - { 79309, 0x00009302 }, /* GL_BUFFER_BINDING */ - { 79327, 0x00009303 }, /* GL_BUFFER_DATA_SIZE */ - { 79347, 0x00009304 }, /* GL_NUM_ACTIVE_VARIABLES */ - { 79371, 0x00009305 }, /* GL_ACTIVE_VARIABLES */ - { 79391, 0x00009306 }, /* GL_REFERENCED_BY_VERTEX_SHADER */ - { 79422, 0x00009307 }, /* GL_REFERENCED_BY_TESS_CONTROL_SHADER */ - { 79459, 0x00009308 }, /* GL_REFERENCED_BY_TESS_EVALUATION_SHADER */ - { 79499, 0x00009309 }, /* GL_REFERENCED_BY_GEOMETRY_SHADER */ - { 79532, 0x0000930A }, /* GL_REFERENCED_BY_FRAGMENT_SHADER */ - { 79565, 0x0000930B }, /* GL_REFERENCED_BY_COMPUTE_SHADER */ - { 79597, 0x0000930C }, /* GL_TOP_LEVEL_ARRAY_SIZE */ - { 79621, 0x0000930D }, /* GL_TOP_LEVEL_ARRAY_STRIDE */ - { 79647, 0x0000930E }, /* GL_LOCATION */ - { 79659, 0x0000930F }, /* GL_LOCATION_INDEX */ - { 79677, 0x00009310 }, /* GL_FRAMEBUFFER_DEFAULT_WIDTH */ - { 79706, 0x00009311 }, /* GL_FRAMEBUFFER_DEFAULT_HEIGHT */ - { 79736, 0x00009312 }, /* GL_FRAMEBUFFER_DEFAULT_LAYERS */ - { 79766, 0x00009313 }, /* GL_FRAMEBUFFER_DEFAULT_SAMPLES */ - { 79797, 0x00009314 }, /* GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS */ - { 79843, 0x00009315 }, /* GL_MAX_FRAMEBUFFER_WIDTH */ - { 79868, 0x00009316 }, /* GL_MAX_FRAMEBUFFER_HEIGHT */ - { 79894, 0x00009317 }, /* GL_MAX_FRAMEBUFFER_LAYERS */ - { 79920, 0x00009318 }, /* GL_MAX_FRAMEBUFFER_SAMPLES */ - { 79947, 0x00009327 }, /* GL_RASTER_MULTISAMPLE_EXT */ - { 79973, 0x00009328 }, /* GL_RASTER_SAMPLES_EXT */ - { 79995, 0x00009329 }, /* GL_MAX_RASTER_SAMPLES_EXT */ - { 80021, 0x0000932A }, /* GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT */ - { 80058, 0x0000932B }, /* GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT */ - { 80099, 0x0000932C }, /* GL_EFFECTIVE_RASTER_SAMPLES_EXT */ - { 80131, 0x0000932D }, /* GL_DEPTH_SAMPLES_NV */ - { 80151, 0x0000932E }, /* GL_STENCIL_SAMPLES_NV */ - { 80173, 0x0000932F }, /* GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV */ - { 80209, 0x00009330 }, /* GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV */ - { 80247, 0x00009331 }, /* GL_COVERAGE_MODULATION_TABLE_NV */ - { 80279, 0x00009332 }, /* GL_COVERAGE_MODULATION_NV */ - { 80305, 0x00009333 }, /* GL_COVERAGE_MODULATION_TABLE_SIZE_NV */ - { 80342, 0x00009339 }, /* GL_WARP_SIZE_NV */ - { 80358, 0x0000933A }, /* GL_WARPS_PER_SM_NV */ - { 80377, 0x0000933B }, /* GL_SM_COUNT_NV */ - { 80392, 0x0000933C }, /* GL_FILL_RECTANGLE_NV */ - { 80413, 0x0000933D }, /* GL_SAMPLE_LOCATION_SUBPIXEL_BITS_ARB */ - { 80450, 0x0000933E }, /* GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB */ - { 80490, 0x0000933F }, /* GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB */ - { 80531, 0x00009340 }, /* GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB */ - { 80578, 0x00009341 }, /* GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB */ - { 80614, 0x00009342 }, /* GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB */ - { 80663, 0x00009343 }, /* GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB */ - { 80709, 0x00009344 }, /* GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB */ - { 80755, 0x00009345 }, /* GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB */ - { 80794, 0x00009346 }, /* GL_CONSERVATIVE_RASTERIZATION_NV */ - { 80827, 0x00009347 }, /* GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV */ - { 80864, 0x00009348 }, /* GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV */ - { 80901, 0x00009349 }, /* GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV */ - { 80940, 0x0000934A }, /* GL_LOCATION_COMPONENT */ - { 80962, 0x0000934B }, /* GL_TRANSFORM_FEEDBACK_BUFFER_INDEX */ - { 80997, 0x0000934C }, /* GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE */ - { 81033, 0x0000934D }, /* GL_ALPHA_TO_COVERAGE_DITHER_DEFAULT_NV */ - { 81072, 0x0000934E }, /* GL_ALPHA_TO_COVERAGE_DITHER_ENABLE_NV */ - { 81110, 0x0000934F }, /* GL_ALPHA_TO_COVERAGE_DITHER_DISABLE_NV */ - { 81149, 0x00009350 }, /* GL_VIEWPORT_SWIZZLE_POSITIVE_X_NV */ - { 81183, 0x00009351 }, /* GL_VIEWPORT_SWIZZLE_NEGATIVE_X_NV */ - { 81217, 0x00009352 }, /* GL_VIEWPORT_SWIZZLE_POSITIVE_Y_NV */ - { 81251, 0x00009353 }, /* GL_VIEWPORT_SWIZZLE_NEGATIVE_Y_NV */ - { 81285, 0x00009354 }, /* GL_VIEWPORT_SWIZZLE_POSITIVE_Z_NV */ - { 81319, 0x00009355 }, /* GL_VIEWPORT_SWIZZLE_NEGATIVE_Z_NV */ - { 81353, 0x00009356 }, /* GL_VIEWPORT_SWIZZLE_POSITIVE_W_NV */ - { 81387, 0x00009357 }, /* GL_VIEWPORT_SWIZZLE_NEGATIVE_W_NV */ - { 81421, 0x00009358 }, /* GL_VIEWPORT_SWIZZLE_X_NV */ - { 81446, 0x00009359 }, /* GL_VIEWPORT_SWIZZLE_Y_NV */ - { 81471, 0x0000935A }, /* GL_VIEWPORT_SWIZZLE_Z_NV */ - { 81496, 0x0000935B }, /* GL_VIEWPORT_SWIZZLE_W_NV */ - { 81521, 0x0000935C }, /* GL_CLIP_ORIGIN */ - { 81536, 0x0000935D }, /* GL_CLIP_DEPTH_MODE */ - { 81555, 0x0000935E }, /* GL_NEGATIVE_ONE_TO_ONE */ - { 81578, 0x0000935F }, /* GL_ZERO_TO_ONE */ - { 81593, 0x00009365 }, /* GL_CLEAR_TEXTURE */ - { 81610, 0x00009366 }, /* GL_TEXTURE_REDUCTION_MODE_ARB */ - { 81640, 0x00009367 }, /* GL_WEIGHTED_AVERAGE_ARB */ - { 81664, 0x00009368 }, /* GL_FONT_GLYPHS_AVAILABLE_NV */ - { 81692, 0x00009369 }, /* GL_FONT_TARGET_UNAVAILABLE_NV */ - { 81722, 0x0000936A }, /* GL_FONT_UNAVAILABLE_NV */ - { 81745, 0x0000936B }, /* GL_FONT_UNINTELLIGIBLE_NV */ - { 81771, 0x0000936C }, /* GL_STANDARD_FONT_FORMAT_NV */ - { 81798, 0x0000936D }, /* GL_FRAGMENT_INPUT_NV */ - { 81819, 0x0000936E }, /* GL_UNIFORM_BUFFER_UNIFIED_NV */ - { 81848, 0x0000936F }, /* GL_UNIFORM_BUFFER_ADDRESS_NV */ - { 81877, 0x00009370 }, /* GL_UNIFORM_BUFFER_LENGTH_NV */ - { 81905, 0x00009371 }, /* GL_MULTISAMPLES_NV */ - { 81924, 0x00009372 }, /* GL_SUPERSAMPLE_SCALE_X_NV */ - { 81950, 0x00009373 }, /* GL_SUPERSAMPLE_SCALE_Y_NV */ - { 81976, 0x00009374 }, /* GL_CONFORMANT_NV */ - { 81993, 0x00009379 }, /* GL_CONSERVATIVE_RASTER_DILATE_NV */ - { 82026, 0x0000937A }, /* GL_CONSERVATIVE_RASTER_DILATE_RANGE_NV */ - { 82065, 0x0000937B }, /* GL_CONSERVATIVE_RASTER_DILATE_GRANULARITY_NV */ - { 82110, 0x0000937C }, /* GL_VIEWPORT_POSITION_W_SCALE_NV */ - { 82142, 0x0000937D }, /* GL_VIEWPORT_POSITION_W_SCALE_X_COEFF_NV */ - { 82182, 0x0000937E }, /* GL_VIEWPORT_POSITION_W_SCALE_Y_COEFF_NV */ - { 82222, 0x00009380 }, /* GL_NUM_SAMPLE_COUNTS */ - { 82243, 0x00009381 }, /* GL_MULTISAMPLE_LINE_WIDTH_RANGE */ - { 82275, 0x00009382 }, /* GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY */ - { 82313, 0x000093A0 }, /* GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE */ - { 82354, 0x000093A1 }, /* GL_BGRA8_EXT */ - { 82367, 0x000093A2 }, /* GL_TEXTURE_USAGE_ANGLE */ - { 82390, 0x000093A3 }, /* GL_FRAMEBUFFER_ATTACHMENT_ANGLE */ - { 82422, 0x000093A4 }, /* GL_PACK_REVERSE_ROW_ORDER_ANGLE */ - { 82454, 0x000093A6 }, /* GL_PROGRAM_BINARY_ANGLE */ - { 82478, 0x000093B0 }, /* GL_COMPRESSED_RGBA_ASTC_4x4 */ - { 82506, 0x000093B1 }, /* GL_COMPRESSED_RGBA_ASTC_5x4 */ - { 82534, 0x000093B2 }, /* GL_COMPRESSED_RGBA_ASTC_5x5 */ - { 82562, 0x000093B3 }, /* GL_COMPRESSED_RGBA_ASTC_6x5 */ - { 82590, 0x000093B4 }, /* GL_COMPRESSED_RGBA_ASTC_6x6 */ - { 82618, 0x000093B5 }, /* GL_COMPRESSED_RGBA_ASTC_8x5 */ - { 82646, 0x000093B6 }, /* GL_COMPRESSED_RGBA_ASTC_8x6 */ - { 82674, 0x000093B7 }, /* GL_COMPRESSED_RGBA_ASTC_8x8 */ - { 82702, 0x000093B8 }, /* GL_COMPRESSED_RGBA_ASTC_10x5 */ - { 82731, 0x000093B9 }, /* GL_COMPRESSED_RGBA_ASTC_10x6 */ - { 82760, 0x000093BA }, /* GL_COMPRESSED_RGBA_ASTC_10x8 */ - { 82789, 0x000093BB }, /* GL_COMPRESSED_RGBA_ASTC_10x10 */ - { 82819, 0x000093BC }, /* GL_COMPRESSED_RGBA_ASTC_12x10 */ - { 82849, 0x000093BD }, /* GL_COMPRESSED_RGBA_ASTC_12x12 */ - { 82879, 0x000093C0 }, /* GL_COMPRESSED_RGBA_ASTC_3x3x3_OES */ - { 82913, 0x000093C1 }, /* GL_COMPRESSED_RGBA_ASTC_4x3x3_OES */ - { 82947, 0x000093C2 }, /* GL_COMPRESSED_RGBA_ASTC_4x4x3_OES */ - { 82981, 0x000093C3 }, /* GL_COMPRESSED_RGBA_ASTC_4x4x4_OES */ - { 83015, 0x000093C4 }, /* GL_COMPRESSED_RGBA_ASTC_5x4x4_OES */ - { 83049, 0x000093C5 }, /* GL_COMPRESSED_RGBA_ASTC_5x5x4_OES */ - { 83083, 0x000093C6 }, /* GL_COMPRESSED_RGBA_ASTC_5x5x5_OES */ - { 83117, 0x000093C7 }, /* GL_COMPRESSED_RGBA_ASTC_6x5x5_OES */ - { 83151, 0x000093C8 }, /* GL_COMPRESSED_RGBA_ASTC_6x6x5_OES */ - { 83185, 0x000093C9 }, /* GL_COMPRESSED_RGBA_ASTC_6x6x6_OES */ - { 83219, 0x000093D0 }, /* GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4 */ - { 83255, 0x000093D1 }, /* GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4 */ - { 83291, 0x000093D2 }, /* GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5 */ - { 83327, 0x000093D3 }, /* GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5 */ - { 83363, 0x000093D4 }, /* GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6 */ - { 83399, 0x000093D5 }, /* GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5 */ - { 83435, 0x000093D6 }, /* GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6 */ - { 83471, 0x000093D7 }, /* GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8 */ - { 83507, 0x000093D8 }, /* GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5 */ - { 83544, 0x000093D9 }, /* GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6 */ - { 83581, 0x000093DA }, /* GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8 */ - { 83618, 0x000093DB }, /* GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10 */ - { 83656, 0x000093DC }, /* GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10 */ - { 83694, 0x000093DD }, /* GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12 */ - { 83732, 0x000093E0 }, /* GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES */ - { 83774, 0x000093E1 }, /* GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES */ - { 83816, 0x000093E2 }, /* GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES */ - { 83858, 0x000093E3 }, /* GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES */ - { 83900, 0x000093E4 }, /* GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES */ - { 83942, 0x000093E5 }, /* GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES */ - { 83984, 0x000093E6 }, /* GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES */ - { 84026, 0x000093E7 }, /* GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES */ - { 84068, 0x000093E8 }, /* GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES */ - { 84110, 0x000093E9 }, /* GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES */ - { 84152, 0x000093F0 }, /* GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG */ - { 84194, 0x000093F1 }, /* GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG */ - { 84236, 0x000094F0 }, /* GL_PERFQUERY_COUNTER_EVENT_INTEL */ - { 84269, 0x000094F1 }, /* GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL */ - { 84310, 0x000094F2 }, /* GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL */ - { 84350, 0x000094F3 }, /* GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL */ - { 84388, 0x000094F4 }, /* GL_PERFQUERY_COUNTER_RAW_INTEL */ - { 84419, 0x000094F5 }, /* GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL */ - { 84456, 0x000094F8 }, /* GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL */ - { 84495, 0x000094F9 }, /* GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL */ - { 84534, 0x000094FA }, /* GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL */ - { 84572, 0x000094FB }, /* GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL */ - { 84611, 0x000094FC }, /* GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL */ - { 84650, 0x000094FD }, /* GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL */ - { 84691, 0x000094FE }, /* GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL */ - { 84734, 0x000094FF }, /* GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL */ - { 84777, 0x00009500 }, /* GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL */ - { 84818, 0x00009548 }, /* GL_PER_GPU_STORAGE_NV */ - { 84840, 0x00009549 }, /* GL_MULTICAST_PROGRAMMABLE_SAMPLE_LOCATION_NV */ - { 84885, 0x0000954D }, /* GL_CONSERVATIVE_RASTER_MODE_NV */ - { 84916, 0x0000954E }, /* GL_CONSERVATIVE_RASTER_MODE_POST_SNAP_NV */ - { 84957, 0x0000954F }, /* GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV */ - { 85007, 0x00009551 }, /* GL_SHADER_BINARY_FORMAT_SPIR_V_ARB */ - { 85042, 0x00009552 }, /* GL_SPIR_V_BINARY_ARB */ - { 85063, 0x00009558 }, /* GL_RENDER_GPU_MASK_NV */ - { 85085, 0x00009580 }, /* GL_TEXTURE_TILING_EXT */ - { 85107, 0x00009581 }, /* GL_DEDICATED_MEMORY_OBJECT_EXT */ - { 85138, 0x00009582 }, /* GL_NUM_TILING_TYPES_EXT */ - { 85162, 0x00009583 }, /* GL_TILING_TYPES_EXT */ - { 85182, 0x00009584 }, /* GL_OPTIMAL_TILING_EXT */ - { 85204, 0x00009585 }, /* GL_LINEAR_TILING_EXT */ - { 85225, 0x00009586 }, /* GL_HANDLE_TYPE_OPAQUE_FD_EXT */ - { 85254, 0x00009587 }, /* GL_HANDLE_TYPE_OPAQUE_WIN32_EXT */ - { 85286, 0x00009588 }, /* GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT */ - { 85322, 0x00009589 }, /* GL_HANDLE_TYPE_D3D12_TILEPOOL_EXT */ - { 85356, 0x0000958A }, /* GL_HANDLE_TYPE_D3D12_RESOURCE_EXT */ - { 85390, 0x0000958B }, /* GL_HANDLE_TYPE_D3D11_IMAGE_EXT */ - { 85421, 0x0000958C }, /* GL_HANDLE_TYPE_D3D11_IMAGE_KMT_EXT */ - { 85456, 0x0000958D }, /* GL_LAYOUT_GENERAL_EXT */ - { 85478, 0x0000958E }, /* GL_LAYOUT_COLOR_ATTACHMENT_EXT */ - { 85509, 0x0000958F }, /* GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT */ - { 85548, 0x00009590 }, /* GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT */ - { 85586, 0x00009591 }, /* GL_LAYOUT_SHADER_READ_ONLY_EXT */ - { 85617, 0x00009592 }, /* GL_LAYOUT_TRANSFER_SRC_EXT */ - { 85644, 0x00009593 }, /* GL_LAYOUT_TRANSFER_DST_EXT */ - { 85671, 0x00009594 }, /* GL_HANDLE_TYPE_D3D12_FENCE_EXT */ - { 85702, 0x00009595 }, /* GL_D3D12_FENCE_VALUE_EXT */ - { 85727, 0x00009596 }, /* GL_NUM_DEVICE_UUIDS_EXT */ - { 85751, 0x00009597 }, /* GL_DEVICE_UUID_EXT */ - { 85770, 0x00009598 }, /* GL_DRIVER_UUID_EXT */ - { 85789, 0x00009599 }, /* GL_DEVICE_LUID_EXT */ - { 85808, 0x0000959A }, /* GL_DEVICE_NODE_MASK_EXT */ - { 85832, 0x0000959B }, /* GL_PROTECTED_MEMORY_OBJECT_EXT */ - { 85863, 0x00009630 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR */ - { 85911, 0x00009631 }, /* GL_MAX_VIEWS_OVR */ - { 85928, 0x00009632 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR */ - { 85982, 0x00009633 }, /* GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR */ - { 86025, 0x00009650 }, /* GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_FAST_SIZE_EXT */ - { 86076, 0x00009651 }, /* GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_SIZE_EXT */ - { 86122, 0x00009652 }, /* GL_FRAMEBUFFER_INCOMPLETE_INSUFFICIENT_SHADER_COMBINED_LOCAL_STORAGE_EXT */ - { 86195, 0x000096A2 }, /* GL_FRAMEBUFFER_FETCH_NONCOHERENT_QCOM */ - { 86233, 0x00019262 }, /* GL_RASTER_POSITION_UNCLIPPED_IBM */ - { 86266, 0x0001A1F8 }, /* GL_PREFER_DOUBLEBUFFER_HINT_PGI */ - { 86298, 0x0001A1FD }, /* GL_CONSERVE_MEMORY_HINT_PGI */ - { 86326, 0x0001A1FE }, /* GL_RECLAIM_MEMORY_HINT_PGI */ - { 86353, 0x0001A202 }, /* GL_NATIVE_GRAPHICS_HANDLE_PGI */ - { 86383, 0x0001A203 }, /* GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI */ - { 86417, 0x0001A204 }, /* GL_NATIVE_GRAPHICS_END_HINT_PGI */ - { 86449, 0x0001A20C }, /* GL_ALWAYS_FAST_HINT_PGI */ - { 86473, 0x0001A20D }, /* GL_ALWAYS_SOFT_HINT_PGI */ - { 86497, 0x0001A20E }, /* GL_ALLOW_DRAW_OBJ_HINT_PGI */ - { 86524, 0x0001A20F }, /* GL_ALLOW_DRAW_WIN_HINT_PGI */ - { 86551, 0x0001A210 }, /* GL_ALLOW_DRAW_FRG_HINT_PGI */ - { 86578, 0x0001A211 }, /* GL_ALLOW_DRAW_MEM_HINT_PGI */ - { 86605, 0x0001A216 }, /* GL_STRICT_DEPTHFUNC_HINT_PGI */ - { 86634, 0x0001A217 }, /* GL_STRICT_LIGHTING_HINT_PGI */ - { 86662, 0x0001A218 }, /* GL_STRICT_SCISSOR_HINT_PGI */ - { 86689, 0x0001A219 }, /* GL_FULL_STIPPLE_HINT_PGI */ - { 86714, 0x0001A220 }, /* GL_CLIP_NEAR_HINT_PGI */ - { 86736, 0x0001A221 }, /* GL_CLIP_FAR_HINT_PGI */ - { 86757, 0x0001A222 }, /* GL_WIDE_LINE_HINT_PGI */ - { 86779, 0x0001A223 }, /* GL_BACK_NORMALS_HINT_PGI */ - { 86804, 0x0001A22A }, /* GL_VERTEX_DATA_HINT_PGI */ - { 86828, 0x0001A22B }, /* GL_VERTEX_CONSISTENT_HINT_PGI */ - { 86858, 0x0001A22C }, /* GL_MATERIAL_SIDE_HINT_PGI */ - { 86884, 0x0001A22D }, /* GL_MAX_VERTEX_HINT_PGI */ - { 86907, 0x00103050 }, /* GL_CULL_VERTEX_IBM */ - { 86926, 0x00103060 }, /* GL_ALL_STATIC_DATA_IBM */ - { 86949, 0x00103061 }, /* GL_STATIC_VERTEX_ARRAY_IBM */ - { 86976, 0x00103070 }, /* GL_VERTEX_ARRAY_LIST_IBM */ - { 87001, 0x00103071 }, /* GL_NORMAL_ARRAY_LIST_IBM */ - { 87026, 0x00103072 }, /* GL_COLOR_ARRAY_LIST_IBM */ - { 87050, 0x00103073 }, /* GL_INDEX_ARRAY_LIST_IBM */ - { 87074, 0x00103074 }, /* GL_TEXTURE_COORD_ARRAY_LIST_IBM */ - { 87106, 0x00103075 }, /* GL_EDGE_FLAG_ARRAY_LIST_IBM */ - { 87134, 0x00103076 }, /* GL_FOG_COORDINATE_ARRAY_LIST_IBM */ - { 87167, 0x00103077 }, /* GL_SECONDARY_COLOR_ARRAY_LIST_IBM */ - { 87201, 0x00103080 }, /* GL_VERTEX_ARRAY_LIST_STRIDE_IBM */ - { 87233, 0x00103081 }, /* GL_NORMAL_ARRAY_LIST_STRIDE_IBM */ - { 87265, 0x00103082 }, /* GL_COLOR_ARRAY_LIST_STRIDE_IBM */ - { 87296, 0x00103083 }, /* GL_INDEX_ARRAY_LIST_STRIDE_IBM */ - { 87327, 0x00103084 }, /* GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM */ - { 87366, 0x00103085 }, /* GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM */ - { 87401, 0x00103086 }, /* GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM */ - { 87441, 0x00103087 }, /* GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM */ + { 0, 0x00000000 }, /* GL_FALSE */ + { 9, 0x00000001 }, /* GL_LINES */ + { 18, 0x00000002 }, /* GL_LINE_LOOP */ + { 31, 0x00000003 }, /* GL_LINE_STRIP */ + { 45, 0x00000004 }, /* GL_TRIANGLES */ + { 58, 0x00000005 }, /* GL_TRIANGLE_STRIP */ + { 76, 0x00000006 }, /* GL_TRIANGLE_FAN */ + { 92, 0x00000007 }, /* GL_QUADS */ + { 101, 0x00000008 }, /* GL_QUAD_STRIP */ + { 115, 0x00000009 }, /* GL_POLYGON */ + { 126, 0x0000000A }, /* GL_LINES_ADJACENCY */ + { 145, 0x0000000B }, /* GL_LINE_STRIP_ADJACENCY */ + { 169, 0x0000000C }, /* GL_TRIANGLES_ADJACENCY */ + { 192, 0x0000000D }, /* GL_TRIANGLE_STRIP_ADJACENCY */ + { 220, 0x0000000E }, /* GL_PATCHES */ + { 231, 0x00000010 }, /* GL_POLYGON_STIPPLE_BIT */ + { 254, 0x00000020 }, /* GL_PIXEL_MODE_BIT */ + { 272, 0x00000040 }, /* GL_LIGHTING_BIT */ + { 288, 0x00000080 }, /* GL_FOG_BIT */ + { 299, 0x00000100 }, /* GL_ACCUM */ + { 308, 0x00000101 }, /* GL_LOAD */ + { 316, 0x00000102 }, /* GL_RETURN */ + { 326, 0x00000103 }, /* GL_MULT */ + { 334, 0x00000104 }, /* GL_ADD */ + { 341, 0x00000200 }, /* GL_NEVER */ + { 350, 0x00000201 }, /* GL_LESS */ + { 358, 0x00000202 }, /* GL_EQUAL */ + { 367, 0x00000203 }, /* GL_LEQUAL */ + { 377, 0x00000204 }, /* GL_GREATER */ + { 388, 0x00000205 }, /* GL_NOTEQUAL */ + { 400, 0x00000206 }, /* GL_GEQUAL */ + { 410, 0x00000207 }, /* GL_ALWAYS */ + { 420, 0x00000300 }, /* GL_SRC_COLOR */ + { 433, 0x00000301 }, /* GL_ONE_MINUS_SRC_COLOR */ + { 456, 0x00000302 }, /* GL_SRC_ALPHA */ + { 469, 0x00000303 }, /* GL_ONE_MINUS_SRC_ALPHA */ + { 492, 0x00000304 }, /* GL_DST_ALPHA */ + { 505, 0x00000305 }, /* GL_ONE_MINUS_DST_ALPHA */ + { 528, 0x00000306 }, /* GL_DST_COLOR */ + { 541, 0x00000307 }, /* GL_ONE_MINUS_DST_COLOR */ + { 564, 0x00000308 }, /* GL_SRC_ALPHA_SATURATE */ + { 586, 0x00000400 }, /* GL_FRONT_LEFT */ + { 600, 0x00000401 }, /* GL_FRONT_RIGHT */ + { 615, 0x00000402 }, /* GL_BACK_LEFT */ + { 628, 0x00000403 }, /* GL_BACK_RIGHT */ + { 642, 0x00000404 }, /* GL_FRONT */ + { 651, 0x00000405 }, /* GL_BACK */ + { 659, 0x00000406 }, /* GL_LEFT */ + { 667, 0x00000407 }, /* GL_RIGHT */ + { 676, 0x00000408 }, /* GL_FRONT_AND_BACK */ + { 694, 0x00000409 }, /* GL_AUX0 */ + { 702, 0x0000040A }, /* GL_AUX1 */ + { 710, 0x0000040B }, /* GL_AUX2 */ + { 718, 0x0000040C }, /* GL_AUX3 */ + { 726, 0x00000500 }, /* GL_INVALID_ENUM */ + { 742, 0x00000501 }, /* GL_INVALID_VALUE */ + { 759, 0x00000502 }, /* GL_INVALID_OPERATION */ + { 780, 0x00000503 }, /* GL_STACK_OVERFLOW */ + { 798, 0x00000504 }, /* GL_STACK_UNDERFLOW */ + { 817, 0x00000505 }, /* GL_OUT_OF_MEMORY */ + { 834, 0x00000506 }, /* GL_INVALID_FRAMEBUFFER_OPERATION */ + { 867, 0x00000600 }, /* GL_2D */ + { 873, 0x00000601 }, /* GL_3D */ + { 879, 0x00000602 }, /* GL_3D_COLOR */ + { 891, 0x00000603 }, /* GL_3D_COLOR_TEXTURE */ + { 911, 0x00000604 }, /* GL_4D_COLOR_TEXTURE */ + { 931, 0x00000700 }, /* GL_PASS_THROUGH_TOKEN */ + { 953, 0x00000701 }, /* GL_POINT_TOKEN */ + { 968, 0x00000702 }, /* GL_LINE_TOKEN */ + { 982, 0x00000703 }, /* GL_POLYGON_TOKEN */ + { 999, 0x00000704 }, /* GL_BITMAP_TOKEN */ + { 1015, 0x00000705 }, /* GL_DRAW_PIXEL_TOKEN */ + { 1035, 0x00000706 }, /* GL_COPY_PIXEL_TOKEN */ + { 1055, 0x00000707 }, /* GL_LINE_RESET_TOKEN */ + { 1075, 0x00000800 }, /* GL_EXP */ + { 1082, 0x00000801 }, /* GL_EXP2 */ + { 1090, 0x00000900 }, /* GL_CW */ + { 1096, 0x00000901 }, /* GL_CCW */ + { 1103, 0x00000A00 }, /* GL_COEFF */ + { 1112, 0x00000A01 }, /* GL_ORDER */ + { 1121, 0x00000A02 }, /* GL_DOMAIN */ + { 1131, 0x00000B00 }, /* GL_CURRENT_COLOR */ + { 1148, 0x00000B01 }, /* GL_CURRENT_INDEX */ + { 1165, 0x00000B02 }, /* GL_CURRENT_NORMAL */ + { 1183, 0x00000B03 }, /* GL_CURRENT_TEXTURE_COORDS */ + { 1209, 0x00000B04 }, /* GL_CURRENT_RASTER_COLOR */ + { 1233, 0x00000B05 }, /* GL_CURRENT_RASTER_INDEX */ + { 1257, 0x00000B06 }, /* GL_CURRENT_RASTER_TEXTURE_COORDS */ + { 1290, 0x00000B07 }, /* GL_CURRENT_RASTER_POSITION */ + { 1317, 0x00000B08 }, /* GL_CURRENT_RASTER_POSITION_VALID */ + { 1350, 0x00000B09 }, /* GL_CURRENT_RASTER_DISTANCE */ + { 1377, 0x00000B10 }, /* GL_POINT_SMOOTH */ + { 1393, 0x00000B11 }, /* GL_POINT_SIZE */ + { 1407, 0x00000B12 }, /* GL_POINT_SIZE_RANGE */ + { 1427, 0x00000B13 }, /* GL_POINT_SIZE_GRANULARITY */ + { 1453, 0x00000B20 }, /* GL_LINE_SMOOTH */ + { 1468, 0x00000B21 }, /* GL_LINE_WIDTH */ + { 1482, 0x00000B22 }, /* GL_LINE_WIDTH_RANGE */ + { 1502, 0x00000B23 }, /* GL_LINE_WIDTH_GRANULARITY */ + { 1528, 0x00000B24 }, /* GL_LINE_STIPPLE */ + { 1544, 0x00000B25 }, /* GL_LINE_STIPPLE_PATTERN */ + { 1568, 0x00000B26 }, /* GL_LINE_STIPPLE_REPEAT */ + { 1591, 0x00000B30 }, /* GL_LIST_MODE */ + { 1604, 0x00000B31 }, /* GL_MAX_LIST_NESTING */ + { 1624, 0x00000B32 }, /* GL_LIST_BASE */ + { 1637, 0x00000B33 }, /* GL_LIST_INDEX */ + { 1651, 0x00000B40 }, /* GL_POLYGON_MODE */ + { 1667, 0x00000B41 }, /* GL_POLYGON_SMOOTH */ + { 1685, 0x00000B42 }, /* GL_POLYGON_STIPPLE */ + { 1704, 0x00000B43 }, /* GL_EDGE_FLAG */ + { 1717, 0x00000B44 }, /* GL_CULL_FACE */ + { 1730, 0x00000B45 }, /* GL_CULL_FACE_MODE */ + { 1748, 0x00000B46 }, /* GL_FRONT_FACE */ + { 1762, 0x00000B50 }, /* GL_LIGHTING */ + { 1774, 0x00000B51 }, /* GL_LIGHT_MODEL_LOCAL_VIEWER */ + { 1802, 0x00000B52 }, /* GL_LIGHT_MODEL_TWO_SIDE */ + { 1826, 0x00000B53 }, /* GL_LIGHT_MODEL_AMBIENT */ + { 1849, 0x00000B54 }, /* GL_SHADE_MODEL */ + { 1864, 0x00000B55 }, /* GL_COLOR_MATERIAL_FACE */ + { 1887, 0x00000B56 }, /* GL_COLOR_MATERIAL_PARAMETER */ + { 1915, 0x00000B57 }, /* GL_COLOR_MATERIAL */ + { 1933, 0x00000B60 }, /* GL_FOG */ + { 1940, 0x00000B61 }, /* GL_FOG_INDEX */ + { 1953, 0x00000B62 }, /* GL_FOG_DENSITY */ + { 1968, 0x00000B63 }, /* GL_FOG_START */ + { 1981, 0x00000B64 }, /* GL_FOG_END */ + { 1992, 0x00000B65 }, /* GL_FOG_MODE */ + { 2004, 0x00000B66 }, /* GL_FOG_COLOR */ + { 2017, 0x00000B70 }, /* GL_DEPTH_RANGE */ + { 2032, 0x00000B71 }, /* GL_DEPTH_TEST */ + { 2046, 0x00000B72 }, /* GL_DEPTH_WRITEMASK */ + { 2065, 0x00000B73 }, /* GL_DEPTH_CLEAR_VALUE */ + { 2086, 0x00000B74 }, /* GL_DEPTH_FUNC */ + { 2100, 0x00000B80 }, /* GL_ACCUM_CLEAR_VALUE */ + { 2121, 0x00000B90 }, /* GL_STENCIL_TEST */ + { 2137, 0x00000B91 }, /* GL_STENCIL_CLEAR_VALUE */ + { 2160, 0x00000B92 }, /* GL_STENCIL_FUNC */ + { 2176, 0x00000B93 }, /* GL_STENCIL_VALUE_MASK */ + { 2198, 0x00000B94 }, /* GL_STENCIL_FAIL */ + { 2214, 0x00000B95 }, /* GL_STENCIL_PASS_DEPTH_FAIL */ + { 2241, 0x00000B96 }, /* GL_STENCIL_PASS_DEPTH_PASS */ + { 2268, 0x00000B97 }, /* GL_STENCIL_REF */ + { 2283, 0x00000B98 }, /* GL_STENCIL_WRITEMASK */ + { 2304, 0x00000BA0 }, /* GL_MATRIX_MODE */ + { 2319, 0x00000BA1 }, /* GL_NORMALIZE */ + { 2332, 0x00000BA2 }, /* GL_VIEWPORT */ + { 2344, 0x00000BA3 }, /* GL_MODELVIEW_STACK_DEPTH */ + { 2369, 0x00000BA4 }, /* GL_PROJECTION_STACK_DEPTH */ + { 2395, 0x00000BA5 }, /* GL_TEXTURE_STACK_DEPTH */ + { 2418, 0x00000BA6 }, /* GL_MODELVIEW_MATRIX */ + { 2438, 0x00000BA7 }, /* GL_PROJECTION_MATRIX */ + { 2459, 0x00000BA8 }, /* GL_TEXTURE_MATRIX */ + { 2477, 0x00000BB0 }, /* GL_ATTRIB_STACK_DEPTH */ + { 2499, 0x00000BB1 }, /* GL_CLIENT_ATTRIB_STACK_DEPTH */ + { 2528, 0x00000BC0 }, /* GL_ALPHA_TEST */ + { 2542, 0x00000BC1 }, /* GL_ALPHA_TEST_FUNC */ + { 2561, 0x00000BC2 }, /* GL_ALPHA_TEST_REF */ + { 2579, 0x00000BD0 }, /* GL_DITHER */ + { 2589, 0x00000BE0 }, /* GL_BLEND_DST */ + { 2602, 0x00000BE1 }, /* GL_BLEND_SRC */ + { 2615, 0x00000BE2 }, /* GL_BLEND */ + { 2624, 0x00000BF0 }, /* GL_LOGIC_OP_MODE */ + { 2641, 0x00000BF1 }, /* GL_INDEX_LOGIC_OP */ + { 2659, 0x00000BF2 }, /* GL_COLOR_LOGIC_OP */ + { 2677, 0x00000C00 }, /* GL_AUX_BUFFERS */ + { 2692, 0x00000C01 }, /* GL_DRAW_BUFFER */ + { 2707, 0x00000C02 }, /* GL_READ_BUFFER */ + { 2722, 0x00000C10 }, /* GL_SCISSOR_BOX */ + { 2737, 0x00000C11 }, /* GL_SCISSOR_TEST */ + { 2753, 0x00000C20 }, /* GL_INDEX_CLEAR_VALUE */ + { 2774, 0x00000C21 }, /* GL_INDEX_WRITEMASK */ + { 2793, 0x00000C22 }, /* GL_COLOR_CLEAR_VALUE */ + { 2814, 0x00000C23 }, /* GL_COLOR_WRITEMASK */ + { 2833, 0x00000C30 }, /* GL_INDEX_MODE */ + { 2847, 0x00000C31 }, /* GL_RGBA_MODE */ + { 2860, 0x00000C32 }, /* GL_DOUBLEBUFFER */ + { 2876, 0x00000C33 }, /* GL_STEREO */ + { 2886, 0x00000C40 }, /* GL_RENDER_MODE */ + { 2901, 0x00000C50 }, /* GL_PERSPECTIVE_CORRECTION_HINT */ + { 2932, 0x00000C51 }, /* GL_POINT_SMOOTH_HINT */ + { 2953, 0x00000C52 }, /* GL_LINE_SMOOTH_HINT */ + { 2973, 0x00000C53 }, /* GL_POLYGON_SMOOTH_HINT */ + { 2996, 0x00000C54 }, /* GL_FOG_HINT */ + { 3008, 0x00000C60 }, /* GL_TEXTURE_GEN_S */ + { 3025, 0x00000C61 }, /* GL_TEXTURE_GEN_T */ + { 3042, 0x00000C62 }, /* GL_TEXTURE_GEN_R */ + { 3059, 0x00000C63 }, /* GL_TEXTURE_GEN_Q */ + { 3076, 0x00000C70 }, /* GL_PIXEL_MAP_I_TO_I */ + { 3096, 0x00000C71 }, /* GL_PIXEL_MAP_S_TO_S */ + { 3116, 0x00000C72 }, /* GL_PIXEL_MAP_I_TO_R */ + { 3136, 0x00000C73 }, /* GL_PIXEL_MAP_I_TO_G */ + { 3156, 0x00000C74 }, /* GL_PIXEL_MAP_I_TO_B */ + { 3176, 0x00000C75 }, /* GL_PIXEL_MAP_I_TO_A */ + { 3196, 0x00000C76 }, /* GL_PIXEL_MAP_R_TO_R */ + { 3216, 0x00000C77 }, /* GL_PIXEL_MAP_G_TO_G */ + { 3236, 0x00000C78 }, /* GL_PIXEL_MAP_B_TO_B */ + { 3256, 0x00000C79 }, /* GL_PIXEL_MAP_A_TO_A */ + { 3276, 0x00000CB0 }, /* GL_PIXEL_MAP_I_TO_I_SIZE */ + { 3301, 0x00000CB1 }, /* GL_PIXEL_MAP_S_TO_S_SIZE */ + { 3326, 0x00000CB2 }, /* GL_PIXEL_MAP_I_TO_R_SIZE */ + { 3351, 0x00000CB3 }, /* GL_PIXEL_MAP_I_TO_G_SIZE */ + { 3376, 0x00000CB4 }, /* GL_PIXEL_MAP_I_TO_B_SIZE */ + { 3401, 0x00000CB5 }, /* GL_PIXEL_MAP_I_TO_A_SIZE */ + { 3426, 0x00000CB6 }, /* GL_PIXEL_MAP_R_TO_R_SIZE */ + { 3451, 0x00000CB7 }, /* GL_PIXEL_MAP_G_TO_G_SIZE */ + { 3476, 0x00000CB8 }, /* GL_PIXEL_MAP_B_TO_B_SIZE */ + { 3501, 0x00000CB9 }, /* GL_PIXEL_MAP_A_TO_A_SIZE */ + { 3526, 0x00000CF0 }, /* GL_UNPACK_SWAP_BYTES */ + { 3547, 0x00000CF1 }, /* GL_UNPACK_LSB_FIRST */ + { 3567, 0x00000CF2 }, /* GL_UNPACK_ROW_LENGTH */ + { 3588, 0x00000CF3 }, /* GL_UNPACK_SKIP_ROWS */ + { 3608, 0x00000CF4 }, /* GL_UNPACK_SKIP_PIXELS */ + { 3630, 0x00000CF5 }, /* GL_UNPACK_ALIGNMENT */ + { 3650, 0x00000D00 }, /* GL_PACK_SWAP_BYTES */ + { 3669, 0x00000D01 }, /* GL_PACK_LSB_FIRST */ + { 3687, 0x00000D02 }, /* GL_PACK_ROW_LENGTH */ + { 3706, 0x00000D03 }, /* GL_PACK_SKIP_ROWS */ + { 3724, 0x00000D04 }, /* GL_PACK_SKIP_PIXELS */ + { 3744, 0x00000D05 }, /* GL_PACK_ALIGNMENT */ + { 3762, 0x00000D10 }, /* GL_MAP_COLOR */ + { 3775, 0x00000D11 }, /* GL_MAP_STENCIL */ + { 3790, 0x00000D12 }, /* GL_INDEX_SHIFT */ + { 3805, 0x00000D13 }, /* GL_INDEX_OFFSET */ + { 3821, 0x00000D14 }, /* GL_RED_SCALE */ + { 3834, 0x00000D15 }, /* GL_RED_BIAS */ + { 3846, 0x00000D16 }, /* GL_ZOOM_X */ + { 3856, 0x00000D17 }, /* GL_ZOOM_Y */ + { 3866, 0x00000D18 }, /* GL_GREEN_SCALE */ + { 3881, 0x00000D19 }, /* GL_GREEN_BIAS */ + { 3895, 0x00000D1A }, /* GL_BLUE_SCALE */ + { 3909, 0x00000D1B }, /* GL_BLUE_BIAS */ + { 3922, 0x00000D1C }, /* GL_ALPHA_SCALE */ + { 3937, 0x00000D1D }, /* GL_ALPHA_BIAS */ + { 3951, 0x00000D1E }, /* GL_DEPTH_SCALE */ + { 3966, 0x00000D1F }, /* GL_DEPTH_BIAS */ + { 3980, 0x00000D30 }, /* GL_MAX_EVAL_ORDER */ + { 3998, 0x00000D31 }, /* GL_MAX_LIGHTS */ + { 4012, 0x00000D32 }, /* GL_MAX_CLIP_DISTANCES */ + { 4034, 0x00000D33 }, /* GL_MAX_TEXTURE_SIZE */ + { 4054, 0x00000D34 }, /* GL_MAX_PIXEL_MAP_TABLE */ + { 4077, 0x00000D35 }, /* GL_MAX_ATTRIB_STACK_DEPTH */ + { 4103, 0x00000D36 }, /* GL_MAX_MODELVIEW_STACK_DEPTH */ + { 4132, 0x00000D37 }, /* GL_MAX_NAME_STACK_DEPTH */ + { 4156, 0x00000D38 }, /* GL_MAX_PROJECTION_STACK_DEPTH */ + { 4186, 0x00000D39 }, /* GL_MAX_TEXTURE_STACK_DEPTH */ + { 4213, 0x00000D3A }, /* GL_MAX_VIEWPORT_DIMS */ + { 4234, 0x00000D3B }, /* GL_MAX_CLIENT_ATTRIB_STACK_DEPTH */ + { 4267, 0x00000D50 }, /* GL_SUBPIXEL_BITS */ + { 4284, 0x00000D51 }, /* GL_INDEX_BITS */ + { 4298, 0x00000D52 }, /* GL_RED_BITS */ + { 4310, 0x00000D53 }, /* GL_GREEN_BITS */ + { 4324, 0x00000D54 }, /* GL_BLUE_BITS */ + { 4337, 0x00000D55 }, /* GL_ALPHA_BITS */ + { 4351, 0x00000D56 }, /* GL_DEPTH_BITS */ + { 4365, 0x00000D57 }, /* GL_STENCIL_BITS */ + { 4381, 0x00000D58 }, /* GL_ACCUM_RED_BITS */ + { 4399, 0x00000D59 }, /* GL_ACCUM_GREEN_BITS */ + { 4419, 0x00000D5A }, /* GL_ACCUM_BLUE_BITS */ + { 4438, 0x00000D5B }, /* GL_ACCUM_ALPHA_BITS */ + { 4458, 0x00000D70 }, /* GL_NAME_STACK_DEPTH */ + { 4478, 0x00000D80 }, /* GL_AUTO_NORMAL */ + { 4493, 0x00000D90 }, /* GL_MAP1_COLOR_4 */ + { 4509, 0x00000D91 }, /* GL_MAP1_INDEX */ + { 4523, 0x00000D92 }, /* GL_MAP1_NORMAL */ + { 4538, 0x00000D93 }, /* GL_MAP1_TEXTURE_COORD_1 */ + { 4562, 0x00000D94 }, /* GL_MAP1_TEXTURE_COORD_2 */ + { 4586, 0x00000D95 }, /* GL_MAP1_TEXTURE_COORD_3 */ + { 4610, 0x00000D96 }, /* GL_MAP1_TEXTURE_COORD_4 */ + { 4634, 0x00000D97 }, /* GL_MAP1_VERTEX_3 */ + { 4651, 0x00000D98 }, /* GL_MAP1_VERTEX_4 */ + { 4668, 0x00000DB0 }, /* GL_MAP2_COLOR_4 */ + { 4684, 0x00000DB1 }, /* GL_MAP2_INDEX */ + { 4698, 0x00000DB2 }, /* GL_MAP2_NORMAL */ + { 4713, 0x00000DB3 }, /* GL_MAP2_TEXTURE_COORD_1 */ + { 4737, 0x00000DB4 }, /* GL_MAP2_TEXTURE_COORD_2 */ + { 4761, 0x00000DB5 }, /* GL_MAP2_TEXTURE_COORD_3 */ + { 4785, 0x00000DB6 }, /* GL_MAP2_TEXTURE_COORD_4 */ + { 4809, 0x00000DB7 }, /* GL_MAP2_VERTEX_3 */ + { 4826, 0x00000DB8 }, /* GL_MAP2_VERTEX_4 */ + { 4843, 0x00000DD0 }, /* GL_MAP1_GRID_DOMAIN */ + { 4863, 0x00000DD1 }, /* GL_MAP1_GRID_SEGMENTS */ + { 4885, 0x00000DD2 }, /* GL_MAP2_GRID_DOMAIN */ + { 4905, 0x00000DD3 }, /* GL_MAP2_GRID_SEGMENTS */ + { 4927, 0x00000DE0 }, /* GL_TEXTURE_1D */ + { 4941, 0x00000DE1 }, /* GL_TEXTURE_2D */ + { 4955, 0x00000DF0 }, /* GL_FEEDBACK_BUFFER_POINTER */ + { 4982, 0x00000DF1 }, /* GL_FEEDBACK_BUFFER_SIZE */ + { 5006, 0x00000DF2 }, /* GL_FEEDBACK_BUFFER_TYPE */ + { 5030, 0x00000DF3 }, /* GL_SELECTION_BUFFER_POINTER */ + { 5058, 0x00000DF4 }, /* GL_SELECTION_BUFFER_SIZE */ + { 5083, 0x00001000 }, /* GL_TEXTURE_WIDTH */ + { 5100, 0x00001001 }, /* GL_TEXTURE_HEIGHT */ + { 5118, 0x00001003 }, /* GL_TEXTURE_COMPONENTS */ + { 5140, 0x00001004 }, /* GL_TEXTURE_BORDER_COLOR */ + { 5164, 0x00001005 }, /* GL_TEXTURE_BORDER */ + { 5182, 0x00001006 }, /* GL_TEXTURE_TARGET */ + { 5200, 0x00001100 }, /* GL_DONT_CARE */ + { 5213, 0x00001101 }, /* GL_FASTEST */ + { 5224, 0x00001102 }, /* GL_NICEST */ + { 5234, 0x00001200 }, /* GL_AMBIENT */ + { 5245, 0x00001201 }, /* GL_DIFFUSE */ + { 5256, 0x00001202 }, /* GL_SPECULAR */ + { 5268, 0x00001203 }, /* GL_POSITION */ + { 5280, 0x00001204 }, /* GL_SPOT_DIRECTION */ + { 5298, 0x00001205 }, /* GL_SPOT_EXPONENT */ + { 5315, 0x00001206 }, /* GL_SPOT_CUTOFF */ + { 5330, 0x00001207 }, /* GL_CONSTANT_ATTENUATION */ + { 5354, 0x00001208 }, /* GL_LINEAR_ATTENUATION */ + { 5376, 0x00001209 }, /* GL_QUADRATIC_ATTENUATION */ + { 5401, 0x00001300 }, /* GL_COMPILE */ + { 5412, 0x00001301 }, /* GL_COMPILE_AND_EXECUTE */ + { 5435, 0x00001400 }, /* GL_BYTE */ + { 5443, 0x00001401 }, /* GL_UNSIGNED_BYTE */ + { 5460, 0x00001402 }, /* GL_SHORT */ + { 5469, 0x00001403 }, /* GL_UNSIGNED_SHORT */ + { 5487, 0x00001404 }, /* GL_INT */ + { 5494, 0x00001405 }, /* GL_UNSIGNED_INT */ + { 5510, 0x00001406 }, /* GL_FLOAT */ + { 5519, 0x00001407 }, /* GL_2_BYTES */ + { 5530, 0x00001408 }, /* GL_3_BYTES */ + { 5541, 0x00001409 }, /* GL_4_BYTES */ + { 5552, 0x0000140A }, /* GL_DOUBLE */ + { 5562, 0x0000140B }, /* GL_HALF_FLOAT */ + { 5576, 0x0000140C }, /* GL_FIXED */ + { 5585, 0x00001500 }, /* GL_CLEAR */ + { 5594, 0x00001501 }, /* GL_AND */ + { 5601, 0x00001502 }, /* GL_AND_REVERSE */ + { 5616, 0x00001503 }, /* GL_COPY */ + { 5624, 0x00001504 }, /* GL_AND_INVERTED */ + { 5640, 0x00001505 }, /* GL_NOOP */ + { 5648, 0x00001506 }, /* GL_XOR */ + { 5655, 0x00001507 }, /* GL_OR */ + { 5661, 0x00001508 }, /* GL_NOR */ + { 5668, 0x00001509 }, /* GL_EQUIV */ + { 5677, 0x0000150A }, /* GL_INVERT */ + { 5687, 0x0000150B }, /* GL_OR_REVERSE */ + { 5701, 0x0000150C }, /* GL_COPY_INVERTED */ + { 5718, 0x0000150D }, /* GL_OR_INVERTED */ + { 5733, 0x0000150E }, /* GL_NAND */ + { 5741, 0x0000150F }, /* GL_SET */ + { 5748, 0x00001600 }, /* GL_EMISSION */ + { 5760, 0x00001601 }, /* GL_SHININESS */ + { 5773, 0x00001602 }, /* GL_AMBIENT_AND_DIFFUSE */ + { 5796, 0x00001603 }, /* GL_COLOR_INDEXES */ + { 5813, 0x00001700 }, /* GL_MODELVIEW */ + { 5826, 0x00001701 }, /* GL_PROJECTION */ + { 5840, 0x00001702 }, /* GL_TEXTURE */ + { 5851, 0x00001800 }, /* GL_COLOR */ + { 5860, 0x00001801 }, /* GL_DEPTH */ + { 5869, 0x00001802 }, /* GL_STENCIL */ + { 5880, 0x00001900 }, /* GL_COLOR_INDEX */ + { 5895, 0x00001901 }, /* GL_STENCIL_INDEX */ + { 5912, 0x00001902 }, /* GL_DEPTH_COMPONENT */ + { 5931, 0x00001903 }, /* GL_RED */ + { 5938, 0x00001904 }, /* GL_GREEN */ + { 5947, 0x00001905 }, /* GL_BLUE */ + { 5955, 0x00001906 }, /* GL_ALPHA */ + { 5964, 0x00001907 }, /* GL_RGB */ + { 5971, 0x00001908 }, /* GL_RGBA */ + { 5979, 0x00001909 }, /* GL_LUMINANCE */ + { 5992, 0x0000190A }, /* GL_LUMINANCE_ALPHA */ + { 6011, 0x00001A00 }, /* GL_BITMAP */ + { 6021, 0x00001B00 }, /* GL_POINT */ + { 6030, 0x00001B01 }, /* GL_LINE */ + { 6038, 0x00001B02 }, /* GL_FILL */ + { 6046, 0x00001C00 }, /* GL_RENDER */ + { 6056, 0x00001C01 }, /* GL_FEEDBACK */ + { 6068, 0x00001C02 }, /* GL_SELECT */ + { 6078, 0x00001D00 }, /* GL_FLAT */ + { 6086, 0x00001D01 }, /* GL_SMOOTH */ + { 6096, 0x00001E00 }, /* GL_KEEP */ + { 6104, 0x00001E01 }, /* GL_REPLACE */ + { 6115, 0x00001E02 }, /* GL_INCR */ + { 6123, 0x00001E03 }, /* GL_DECR */ + { 6131, 0x00001F00 }, /* GL_VENDOR */ + { 6141, 0x00001F01 }, /* GL_RENDERER */ + { 6153, 0x00001F02 }, /* GL_VERSION */ + { 6164, 0x00001F03 }, /* GL_EXTENSIONS */ + { 6178, 0x00002000 }, /* GL_S */ + { 6183, 0x00002001 }, /* GL_T */ + { 6188, 0x00002002 }, /* GL_R */ + { 6193, 0x00002003 }, /* GL_Q */ + { 6198, 0x00002100 }, /* GL_MODULATE */ + { 6210, 0x00002101 }, /* GL_DECAL */ + { 6219, 0x00002200 }, /* GL_TEXTURE_ENV_MODE */ + { 6239, 0x00002201 }, /* GL_TEXTURE_ENV_COLOR */ + { 6260, 0x00002300 }, /* GL_TEXTURE_ENV */ + { 6275, 0x00002400 }, /* GL_EYE_LINEAR */ + { 6289, 0x00002401 }, /* GL_OBJECT_LINEAR */ + { 6306, 0x00002402 }, /* GL_SPHERE_MAP */ + { 6320, 0x00002500 }, /* GL_TEXTURE_GEN_MODE */ + { 6340, 0x00002501 }, /* GL_OBJECT_PLANE */ + { 6356, 0x00002502 }, /* GL_EYE_PLANE */ + { 6369, 0x00002600 }, /* GL_NEAREST */ + { 6380, 0x00002601 }, /* GL_LINEAR */ + { 6390, 0x00002700 }, /* GL_NEAREST_MIPMAP_NEAREST */ + { 6416, 0x00002701 }, /* GL_LINEAR_MIPMAP_NEAREST */ + { 6441, 0x00002702 }, /* GL_NEAREST_MIPMAP_LINEAR */ + { 6466, 0x00002703 }, /* GL_LINEAR_MIPMAP_LINEAR */ + { 6490, 0x00002800 }, /* GL_TEXTURE_MAG_FILTER */ + { 6512, 0x00002801 }, /* GL_TEXTURE_MIN_FILTER */ + { 6534, 0x00002802 }, /* GL_TEXTURE_WRAP_S */ + { 6552, 0x00002803 }, /* GL_TEXTURE_WRAP_T */ + { 6570, 0x00002900 }, /* GL_CLAMP */ + { 6579, 0x00002901 }, /* GL_REPEAT */ + { 6589, 0x00002A00 }, /* GL_POLYGON_OFFSET_UNITS */ + { 6613, 0x00002A01 }, /* GL_POLYGON_OFFSET_POINT */ + { 6637, 0x00002A02 }, /* GL_POLYGON_OFFSET_LINE */ + { 6660, 0x00002A10 }, /* GL_R3_G3_B2 */ + { 6672, 0x00002A20 }, /* GL_V2F */ + { 6679, 0x00002A21 }, /* GL_V3F */ + { 6686, 0x00002A22 }, /* GL_C4UB_V2F */ + { 6698, 0x00002A23 }, /* GL_C4UB_V3F */ + { 6710, 0x00002A24 }, /* GL_C3F_V3F */ + { 6721, 0x00002A25 }, /* GL_N3F_V3F */ + { 6732, 0x00002A26 }, /* GL_C4F_N3F_V3F */ + { 6747, 0x00002A27 }, /* GL_T2F_V3F */ + { 6758, 0x00002A28 }, /* GL_T4F_V4F */ + { 6769, 0x00002A29 }, /* GL_T2F_C4UB_V3F */ + { 6785, 0x00002A2A }, /* GL_T2F_C3F_V3F */ + { 6800, 0x00002A2B }, /* GL_T2F_N3F_V3F */ + { 6815, 0x00002A2C }, /* GL_T2F_C4F_N3F_V3F */ + { 6834, 0x00002A2D }, /* GL_T4F_C4F_N3F_V4F */ + { 6853, 0x00003000 }, /* GL_CLIP_DISTANCE0 */ + { 6871, 0x00003001 }, /* GL_CLIP_DISTANCE1 */ + { 6889, 0x00003002 }, /* GL_CLIP_DISTANCE2 */ + { 6907, 0x00003003 }, /* GL_CLIP_DISTANCE3 */ + { 6925, 0x00003004 }, /* GL_CLIP_DISTANCE4 */ + { 6943, 0x00003005 }, /* GL_CLIP_DISTANCE5 */ + { 6961, 0x00003006 }, /* GL_CLIP_DISTANCE6 */ + { 6979, 0x00003007 }, /* GL_CLIP_DISTANCE7 */ + { 6997, 0x00004000 }, /* GL_LIGHT0 */ + { 7007, 0x00004001 }, /* GL_LIGHT1 */ + { 7017, 0x00004002 }, /* GL_LIGHT2 */ + { 7027, 0x00004003 }, /* GL_LIGHT3 */ + { 7037, 0x00004004 }, /* GL_LIGHT4 */ + { 7047, 0x00004005 }, /* GL_LIGHT5 */ + { 7057, 0x00004006 }, /* GL_LIGHT6 */ + { 7067, 0x00004007 }, /* GL_LIGHT7 */ + { 7077, 0x00008000 }, /* GL_HINT_BIT */ + { 7089, 0x00008001 }, /* GL_CONSTANT_COLOR */ + { 7107, 0x00008002 }, /* GL_ONE_MINUS_CONSTANT_COLOR */ + { 7135, 0x00008003 }, /* GL_CONSTANT_ALPHA */ + { 7153, 0x00008004 }, /* GL_ONE_MINUS_CONSTANT_ALPHA */ + { 7181, 0x00008005 }, /* GL_BLEND_COLOR */ + { 7196, 0x00008006 }, /* GL_FUNC_ADD */ + { 7208, 0x00008007 }, /* GL_MIN */ + { 7215, 0x00008008 }, /* GL_MAX */ + { 7222, 0x00008009 }, /* GL_BLEND_EQUATION */ + { 7240, 0x0000800A }, /* GL_FUNC_SUBTRACT */ + { 7257, 0x0000800B }, /* GL_FUNC_REVERSE_SUBTRACT */ + { 7282, 0x00008010 }, /* GL_CONVOLUTION_1D */ + { 7300, 0x00008011 }, /* GL_CONVOLUTION_2D */ + { 7318, 0x00008012 }, /* GL_SEPARABLE_2D */ + { 7334, 0x00008013 }, /* GL_CONVOLUTION_BORDER_MODE */ + { 7361, 0x00008014 }, /* GL_CONVOLUTION_FILTER_SCALE */ + { 7389, 0x00008015 }, /* GL_CONVOLUTION_FILTER_BIAS */ + { 7416, 0x00008016 }, /* GL_REDUCE */ + { 7426, 0x00008017 }, /* GL_CONVOLUTION_FORMAT */ + { 7448, 0x00008018 }, /* GL_CONVOLUTION_WIDTH */ + { 7469, 0x00008019 }, /* GL_CONVOLUTION_HEIGHT */ + { 7491, 0x0000801A }, /* GL_MAX_CONVOLUTION_WIDTH */ + { 7516, 0x0000801B }, /* GL_MAX_CONVOLUTION_HEIGHT */ + { 7542, 0x0000801C }, /* GL_POST_CONVOLUTION_RED_SCALE */ + { 7572, 0x0000801D }, /* GL_POST_CONVOLUTION_GREEN_SCALE */ + { 7604, 0x0000801E }, /* GL_POST_CONVOLUTION_BLUE_SCALE */ + { 7635, 0x0000801F }, /* GL_POST_CONVOLUTION_ALPHA_SCALE */ + { 7667, 0x00008020 }, /* GL_POST_CONVOLUTION_RED_BIAS */ + { 7696, 0x00008021 }, /* GL_POST_CONVOLUTION_GREEN_BIAS */ + { 7727, 0x00008022 }, /* GL_POST_CONVOLUTION_BLUE_BIAS */ + { 7757, 0x00008023 }, /* GL_POST_CONVOLUTION_ALPHA_BIAS */ + { 7788, 0x00008024 }, /* GL_HISTOGRAM */ + { 7801, 0x00008025 }, /* GL_PROXY_HISTOGRAM */ + { 7820, 0x00008026 }, /* GL_HISTOGRAM_WIDTH */ + { 7839, 0x00008027 }, /* GL_HISTOGRAM_FORMAT */ + { 7859, 0x00008028 }, /* GL_HISTOGRAM_RED_SIZE */ + { 7881, 0x00008029 }, /* GL_HISTOGRAM_GREEN_SIZE */ + { 7905, 0x0000802A }, /* GL_HISTOGRAM_BLUE_SIZE */ + { 7928, 0x0000802B }, /* GL_HISTOGRAM_ALPHA_SIZE */ + { 7952, 0x0000802C }, /* GL_HISTOGRAM_LUMINANCE_SIZE */ + { 7980, 0x0000802D }, /* GL_HISTOGRAM_SINK */ + { 7998, 0x0000802E }, /* GL_MINMAX */ + { 8008, 0x0000802F }, /* GL_MINMAX_FORMAT */ + { 8025, 0x00008030 }, /* GL_MINMAX_SINK */ + { 8040, 0x00008031 }, /* GL_TABLE_TOO_LARGE_EXT */ + { 8063, 0x00008032 }, /* GL_UNSIGNED_BYTE_3_3_2 */ + { 8086, 0x00008033 }, /* GL_UNSIGNED_SHORT_4_4_4_4 */ + { 8112, 0x00008034 }, /* GL_UNSIGNED_SHORT_5_5_5_1 */ + { 8138, 0x00008035 }, /* GL_UNSIGNED_INT_8_8_8_8 */ + { 8162, 0x00008036 }, /* GL_UNSIGNED_INT_10_10_10_2 */ + { 8189, 0x00008037 }, /* GL_POLYGON_OFFSET_FILL */ + { 8212, 0x00008038 }, /* GL_POLYGON_OFFSET_FACTOR */ + { 8237, 0x00008039 }, /* GL_POLYGON_OFFSET_BIAS_EXT */ + { 8264, 0x0000803A }, /* GL_RESCALE_NORMAL */ + { 8282, 0x0000803B }, /* GL_ALPHA4 */ + { 8292, 0x0000803C }, /* GL_ALPHA8 */ + { 8302, 0x0000803D }, /* GL_ALPHA12 */ + { 8313, 0x0000803E }, /* GL_ALPHA16 */ + { 8324, 0x0000803F }, /* GL_LUMINANCE4 */ + { 8338, 0x00008040 }, /* GL_LUMINANCE8 */ + { 8352, 0x00008041 }, /* GL_LUMINANCE12 */ + { 8367, 0x00008042 }, /* GL_LUMINANCE16 */ + { 8382, 0x00008043 }, /* GL_LUMINANCE4_ALPHA4 */ + { 8403, 0x00008044 }, /* GL_LUMINANCE6_ALPHA2 */ + { 8424, 0x00008045 }, /* GL_LUMINANCE8_ALPHA8 */ + { 8445, 0x00008046 }, /* GL_LUMINANCE12_ALPHA4 */ + { 8467, 0x00008047 }, /* GL_LUMINANCE12_ALPHA12 */ + { 8490, 0x00008048 }, /* GL_LUMINANCE16_ALPHA16 */ + { 8513, 0x00008049 }, /* GL_INTENSITY */ + { 8526, 0x0000804A }, /* GL_INTENSITY4 */ + { 8540, 0x0000804B }, /* GL_INTENSITY8 */ + { 8554, 0x0000804C }, /* GL_INTENSITY12 */ + { 8569, 0x0000804D }, /* GL_INTENSITY16 */ + { 8584, 0x0000804E }, /* GL_RGB2_EXT */ + { 8596, 0x0000804F }, /* GL_RGB4 */ + { 8604, 0x00008050 }, /* GL_RGB5 */ + { 8612, 0x00008051 }, /* GL_RGB8 */ + { 8620, 0x00008052 }, /* GL_RGB10 */ + { 8629, 0x00008053 }, /* GL_RGB12 */ + { 8638, 0x00008054 }, /* GL_RGB16 */ + { 8647, 0x00008055 }, /* GL_RGBA2 */ + { 8656, 0x00008056 }, /* GL_RGBA4 */ + { 8665, 0x00008057 }, /* GL_RGB5_A1 */ + { 8676, 0x00008058 }, /* GL_RGBA8 */ + { 8685, 0x00008059 }, /* GL_RGB10_A2 */ + { 8697, 0x0000805A }, /* GL_RGBA12 */ + { 8707, 0x0000805B }, /* GL_RGBA16 */ + { 8717, 0x0000805C }, /* GL_TEXTURE_RED_SIZE */ + { 8737, 0x0000805D }, /* GL_TEXTURE_GREEN_SIZE */ + { 8759, 0x0000805E }, /* GL_TEXTURE_BLUE_SIZE */ + { 8780, 0x0000805F }, /* GL_TEXTURE_ALPHA_SIZE */ + { 8802, 0x00008060 }, /* GL_TEXTURE_LUMINANCE_SIZE */ + { 8828, 0x00008061 }, /* GL_TEXTURE_INTENSITY_SIZE */ + { 8854, 0x00008062 }, /* GL_REPLACE_EXT */ + { 8869, 0x00008063 }, /* GL_PROXY_TEXTURE_1D */ + { 8889, 0x00008064 }, /* GL_PROXY_TEXTURE_2D */ + { 8909, 0x00008065 }, /* GL_TEXTURE_TOO_LARGE_EXT */ + { 8934, 0x00008066 }, /* GL_TEXTURE_PRIORITY */ + { 8954, 0x00008067 }, /* GL_TEXTURE_RESIDENT */ + { 8974, 0x00008068 }, /* GL_TEXTURE_BINDING_1D */ + { 8996, 0x00008069 }, /* GL_TEXTURE_BINDING_2D */ + { 9018, 0x0000806A }, /* GL_TEXTURE_BINDING_3D */ + { 9040, 0x0000806B }, /* GL_PACK_SKIP_IMAGES */ + { 9060, 0x0000806C }, /* GL_PACK_IMAGE_HEIGHT */ + { 9081, 0x0000806D }, /* GL_UNPACK_SKIP_IMAGES */ + { 9103, 0x0000806E }, /* GL_UNPACK_IMAGE_HEIGHT */ + { 9126, 0x0000806F }, /* GL_TEXTURE_3D */ + { 9140, 0x00008070 }, /* GL_PROXY_TEXTURE_3D */ + { 9160, 0x00008071 }, /* GL_TEXTURE_DEPTH */ + { 9177, 0x00008072 }, /* GL_TEXTURE_WRAP_R */ + { 9195, 0x00008073 }, /* GL_MAX_3D_TEXTURE_SIZE */ + { 9218, 0x00008074 }, /* GL_VERTEX_ARRAY */ + { 9234, 0x00008075 }, /* GL_NORMAL_ARRAY */ + { 9250, 0x00008076 }, /* GL_COLOR_ARRAY */ + { 9265, 0x00008077 }, /* GL_INDEX_ARRAY */ + { 9280, 0x00008078 }, /* GL_TEXTURE_COORD_ARRAY */ + { 9303, 0x00008079 }, /* GL_EDGE_FLAG_ARRAY */ + { 9322, 0x0000807A }, /* GL_VERTEX_ARRAY_SIZE */ + { 9343, 0x0000807B }, /* GL_VERTEX_ARRAY_TYPE */ + { 9364, 0x0000807C }, /* GL_VERTEX_ARRAY_STRIDE */ + { 9387, 0x0000807D }, /* GL_VERTEX_ARRAY_COUNT_EXT */ + { 9413, 0x0000807E }, /* GL_NORMAL_ARRAY_TYPE */ + { 9434, 0x0000807F }, /* GL_NORMAL_ARRAY_STRIDE */ + { 9457, 0x00008080 }, /* GL_NORMAL_ARRAY_COUNT_EXT */ + { 9483, 0x00008081 }, /* GL_COLOR_ARRAY_SIZE */ + { 9503, 0x00008082 }, /* GL_COLOR_ARRAY_TYPE */ + { 9523, 0x00008083 }, /* GL_COLOR_ARRAY_STRIDE */ + { 9545, 0x00008084 }, /* GL_COLOR_ARRAY_COUNT_EXT */ + { 9570, 0x00008085 }, /* GL_INDEX_ARRAY_TYPE */ + { 9590, 0x00008086 }, /* GL_INDEX_ARRAY_STRIDE */ + { 9612, 0x00008087 }, /* GL_INDEX_ARRAY_COUNT_EXT */ + { 9637, 0x00008088 }, /* GL_TEXTURE_COORD_ARRAY_SIZE */ + { 9665, 0x00008089 }, /* GL_TEXTURE_COORD_ARRAY_TYPE */ + { 9693, 0x0000808A }, /* GL_TEXTURE_COORD_ARRAY_STRIDE */ + { 9723, 0x0000808B }, /* GL_TEXTURE_COORD_ARRAY_COUNT_EXT */ + { 9756, 0x0000808C }, /* GL_EDGE_FLAG_ARRAY_STRIDE */ + { 9782, 0x0000808D }, /* GL_EDGE_FLAG_ARRAY_COUNT_EXT */ + { 9811, 0x0000808E }, /* GL_VERTEX_ARRAY_POINTER */ + { 9835, 0x0000808F }, /* GL_NORMAL_ARRAY_POINTER */ + { 9859, 0x00008090 }, /* GL_COLOR_ARRAY_POINTER */ + { 9882, 0x00008091 }, /* GL_INDEX_ARRAY_POINTER */ + { 9905, 0x00008092 }, /* GL_TEXTURE_COORD_ARRAY_POINTER */ + { 9936, 0x00008093 }, /* GL_EDGE_FLAG_ARRAY_POINTER */ + { 9963, 0x0000809D }, /* GL_MULTISAMPLE */ + { 9978, 0x0000809E }, /* GL_SAMPLE_ALPHA_TO_COVERAGE */ + { 10006, 0x0000809F }, /* GL_SAMPLE_ALPHA_TO_ONE */ + { 10029, 0x000080A0 }, /* GL_SAMPLE_COVERAGE */ + { 10048, 0x000080A8 }, /* GL_SAMPLE_BUFFERS */ + { 10066, 0x000080A9 }, /* GL_SAMPLES */ + { 10077, 0x000080AA }, /* GL_SAMPLE_COVERAGE_VALUE */ + { 10102, 0x000080AB }, /* GL_SAMPLE_COVERAGE_INVERT */ + { 10128, 0x000080B1 }, /* GL_COLOR_MATRIX */ + { 10144, 0x000080B2 }, /* GL_COLOR_MATRIX_STACK_DEPTH */ + { 10172, 0x000080B3 }, /* GL_MAX_COLOR_MATRIX_STACK_DEPTH */ + { 10204, 0x000080B4 }, /* GL_POST_COLOR_MATRIX_RED_SCALE */ + { 10235, 0x000080B5 }, /* GL_POST_COLOR_MATRIX_GREEN_SCALE */ + { 10268, 0x000080B6 }, /* GL_POST_COLOR_MATRIX_BLUE_SCALE */ + { 10300, 0x000080B7 }, /* GL_POST_COLOR_MATRIX_ALPHA_SCALE */ + { 10333, 0x000080B8 }, /* GL_POST_COLOR_MATRIX_RED_BIAS */ + { 10363, 0x000080B9 }, /* GL_POST_COLOR_MATRIX_GREEN_BIAS */ + { 10395, 0x000080BA }, /* GL_POST_COLOR_MATRIX_BLUE_BIAS */ + { 10426, 0x000080BB }, /* GL_POST_COLOR_MATRIX_ALPHA_BIAS */ + { 10458, 0x000080BC }, /* GL_TEXTURE_COLOR_TABLE_SGI */ + { 10485, 0x000080BD }, /* GL_PROXY_TEXTURE_COLOR_TABLE_SGI */ + { 10518, 0x000080BF }, /* GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */ + { 10552, 0x000080C8 }, /* GL_BLEND_DST_RGB */ + { 10569, 0x000080C9 }, /* GL_BLEND_SRC_RGB */ + { 10586, 0x000080CA }, /* GL_BLEND_DST_ALPHA */ + { 10605, 0x000080CB }, /* GL_BLEND_SRC_ALPHA */ + { 10624, 0x000080D0 }, /* GL_COLOR_TABLE */ + { 10639, 0x000080D1 }, /* GL_POST_CONVOLUTION_COLOR_TABLE */ + { 10671, 0x000080D2 }, /* GL_POST_COLOR_MATRIX_COLOR_TABLE */ + { 10704, 0x000080D3 }, /* GL_PROXY_COLOR_TABLE */ + { 10725, 0x000080D4 }, /* GL_PROXY_POST_CONVOLUTION_COLOR_TABLE */ + { 10763, 0x000080D5 }, /* GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE */ + { 10802, 0x000080D6 }, /* GL_COLOR_TABLE_SCALE */ + { 10823, 0x000080D7 }, /* GL_COLOR_TABLE_BIAS */ + { 10843, 0x000080D8 }, /* GL_COLOR_TABLE_FORMAT */ + { 10865, 0x000080D9 }, /* GL_COLOR_TABLE_WIDTH */ + { 10886, 0x000080DA }, /* GL_COLOR_TABLE_RED_SIZE */ + { 10910, 0x000080DB }, /* GL_COLOR_TABLE_GREEN_SIZE */ + { 10936, 0x000080DC }, /* GL_COLOR_TABLE_BLUE_SIZE */ + { 10961, 0x000080DD }, /* GL_COLOR_TABLE_ALPHA_SIZE */ + { 10987, 0x000080DE }, /* GL_COLOR_TABLE_LUMINANCE_SIZE */ + { 11017, 0x000080DF }, /* GL_COLOR_TABLE_INTENSITY_SIZE */ + { 11047, 0x000080E0 }, /* GL_BGR */ + { 11054, 0x000080E1 }, /* GL_BGRA */ + { 11062, 0x000080E8 }, /* GL_MAX_ELEMENTS_VERTICES */ + { 11087, 0x000080E9 }, /* GL_MAX_ELEMENTS_INDICES */ + { 11111, 0x000080ED }, /* GL_TEXTURE_INDEX_SIZE_EXT */ + { 11137, 0x000080F0 }, /* GL_CLIP_VOLUME_CLIPPING_HINT_EXT */ + { 11170, 0x00008126 }, /* GL_POINT_SIZE_MIN */ + { 11188, 0x00008127 }, /* GL_POINT_SIZE_MAX */ + { 11206, 0x00008128 }, /* GL_POINT_FADE_THRESHOLD_SIZE */ + { 11235, 0x00008129 }, /* GL_POINT_DISTANCE_ATTENUATION */ + { 11265, 0x0000812D }, /* GL_CLAMP_TO_BORDER */ + { 11284, 0x0000812F }, /* GL_CLAMP_TO_EDGE */ + { 11301, 0x0000813A }, /* GL_TEXTURE_MIN_LOD */ + { 11320, 0x0000813B }, /* GL_TEXTURE_MAX_LOD */ + { 11339, 0x0000813C }, /* GL_TEXTURE_BASE_LEVEL */ + { 11361, 0x0000813D }, /* GL_TEXTURE_MAX_LEVEL */ + { 11382, 0x00008150 }, /* GL_IGNORE_BORDER_HP */ + { 11402, 0x00008151 }, /* GL_CONSTANT_BORDER_HP */ + { 11424, 0x00008153 }, /* GL_REPLICATE_BORDER_HP */ + { 11447, 0x00008154 }, /* GL_CONVOLUTION_BORDER_COLOR */ + { 11475, 0x00008165 }, /* GL_OCCLUSION_TEST_HP */ + { 11496, 0x00008166 }, /* GL_OCCLUSION_TEST_RESULT_HP */ + { 11524, 0x00008170 }, /* GL_LINEAR_CLIPMAP_LINEAR_SGIX */ + { 11554, 0x00008171 }, /* GL_TEXTURE_CLIPMAP_CENTER_SGIX */ + { 11585, 0x00008172 }, /* GL_TEXTURE_CLIPMAP_FRAME_SGIX */ + { 11615, 0x00008173 }, /* GL_TEXTURE_CLIPMAP_OFFSET_SGIX */ + { 11646, 0x00008174 }, /* GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX */ + { 11684, 0x00008175 }, /* GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX */ + { 11719, 0x00008176 }, /* GL_TEXTURE_CLIPMAP_DEPTH_SGIX */ + { 11749, 0x00008177 }, /* GL_MAX_CLIPMAP_DEPTH_SGIX */ + { 11775, 0x00008178 }, /* GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX */ + { 11809, 0x00008179 }, /* GL_POST_TEXTURE_FILTER_BIAS_SGIX */ + { 11842, 0x0000817A }, /* GL_POST_TEXTURE_FILTER_SCALE_SGIX */ + { 11876, 0x0000817B }, /* GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX */ + { 11915, 0x0000817C }, /* GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX */ + { 11955, 0x0000818E }, /* GL_TEXTURE_LOD_BIAS_S_SGIX */ + { 11982, 0x0000818F }, /* GL_TEXTURE_LOD_BIAS_T_SGIX */ + { 12009, 0x00008190 }, /* GL_TEXTURE_LOD_BIAS_R_SGIX */ + { 12036, 0x00008191 }, /* GL_GENERATE_MIPMAP */ + { 12055, 0x00008192 }, /* GL_GENERATE_MIPMAP_HINT */ + { 12079, 0x00008198 }, /* GL_FOG_OFFSET_SGIX */ + { 12098, 0x00008199 }, /* GL_FOG_OFFSET_VALUE_SGIX */ + { 12123, 0x0000819A }, /* GL_TEXTURE_COMPARE_SGIX */ + { 12147, 0x0000819B }, /* GL_TEXTURE_COMPARE_OPERATOR_SGIX */ + { 12180, 0x0000819C }, /* GL_TEXTURE_LEQUAL_R_SGIX */ + { 12205, 0x0000819D }, /* GL_TEXTURE_GEQUAL_R_SGIX */ + { 12230, 0x000081A5 }, /* GL_DEPTH_COMPONENT16 */ + { 12251, 0x000081A6 }, /* GL_DEPTH_COMPONENT24 */ + { 12272, 0x000081A7 }, /* GL_DEPTH_COMPONENT32 */ + { 12293, 0x000081A8 }, /* GL_ARRAY_ELEMENT_LOCK_FIRST_EXT */ + { 12325, 0x000081A9 }, /* GL_ARRAY_ELEMENT_LOCK_COUNT_EXT */ + { 12357, 0x000081AA }, /* GL_CULL_VERTEX_EXT */ + { 12376, 0x000081AB }, /* GL_CULL_VERTEX_OBJECT_POSITION_EXT */ + { 12411, 0x000081AC }, /* GL_CULL_VERTEX_EYE_POSITION_EXT */ + { 12443, 0x000081D4 }, /* GL_WRAP_BORDER_SUN */ + { 12462, 0x000081EF }, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */ + { 12494, 0x000081F8 }, /* GL_LIGHT_MODEL_COLOR_CONTROL */ + { 12523, 0x000081F9 }, /* GL_SINGLE_COLOR */ + { 12539, 0x000081FA }, /* GL_SEPARATE_SPECULAR_COLOR */ + { 12566, 0x000081FB }, /* GL_SHARED_TEXTURE_PALETTE_EXT */ + { 12596, 0x00008210 }, /* GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING */ + { 12637, 0x00008211 }, /* GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE */ + { 12678, 0x00008212 }, /* GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE */ + { 12713, 0x00008213 }, /* GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE */ + { 12750, 0x00008214 }, /* GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE */ + { 12786, 0x00008215 }, /* GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE */ + { 12823, 0x00008216 }, /* GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE */ + { 12860, 0x00008217 }, /* GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE */ + { 12899, 0x00008218 }, /* GL_FRAMEBUFFER_DEFAULT */ + { 12922, 0x00008219 }, /* GL_FRAMEBUFFER_UNDEFINED */ + { 12947, 0x0000821A }, /* GL_DEPTH_STENCIL_ATTACHMENT */ + { 12975, 0x0000821B }, /* GL_MAJOR_VERSION */ + { 12992, 0x0000821C }, /* GL_MINOR_VERSION */ + { 13009, 0x0000821D }, /* GL_NUM_EXTENSIONS */ + { 13027, 0x0000821E }, /* GL_CONTEXT_FLAGS */ + { 13044, 0x0000821F }, /* GL_BUFFER_IMMUTABLE_STORAGE */ + { 13072, 0x00008220 }, /* GL_BUFFER_STORAGE_FLAGS */ + { 13096, 0x00008222 }, /* GL_INDEX */ + { 13105, 0x00008223 }, /* GL_DEPTH_BUFFER */ + { 13121, 0x00008224 }, /* GL_STENCIL_BUFFER */ + { 13139, 0x00008225 }, /* GL_COMPRESSED_RED */ + { 13157, 0x00008226 }, /* GL_COMPRESSED_RG */ + { 13174, 0x00008227 }, /* GL_RG */ + { 13180, 0x00008228 }, /* GL_RG_INTEGER */ + { 13194, 0x00008229 }, /* GL_R8 */ + { 13200, 0x0000822A }, /* GL_R16 */ + { 13207, 0x0000822B }, /* GL_RG8 */ + { 13214, 0x0000822C }, /* GL_RG16 */ + { 13222, 0x0000822D }, /* GL_R16F */ + { 13230, 0x0000822E }, /* GL_R32F */ + { 13238, 0x0000822F }, /* GL_RG16F */ + { 13247, 0x00008230 }, /* GL_RG32F */ + { 13256, 0x00008231 }, /* GL_R8I */ + { 13263, 0x00008232 }, /* GL_R8UI */ + { 13271, 0x00008233 }, /* GL_R16I */ + { 13279, 0x00008234 }, /* GL_R16UI */ + { 13288, 0x00008235 }, /* GL_R32I */ + { 13296, 0x00008236 }, /* GL_R32UI */ + { 13305, 0x00008237 }, /* GL_RG8I */ + { 13313, 0x00008238 }, /* GL_RG8UI */ + { 13322, 0x00008239 }, /* GL_RG16I */ + { 13331, 0x0000823A }, /* GL_RG16UI */ + { 13341, 0x0000823B }, /* GL_RG32I */ + { 13350, 0x0000823C }, /* GL_RG32UI */ + { 13360, 0x00008242 }, /* GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB */ + { 13392, 0x00008243 }, /* GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB */ + { 13432, 0x00008244 }, /* GL_DEBUG_CALLBACK_FUNCTION_ARB */ + { 13463, 0x00008245 }, /* GL_DEBUG_CALLBACK_USER_PARAM_ARB */ + { 13496, 0x00008246 }, /* GL_DEBUG_SOURCE_API_ARB */ + { 13520, 0x00008247 }, /* GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB */ + { 13554, 0x00008248 }, /* GL_DEBUG_SOURCE_SHADER_COMPILER_ARB */ + { 13590, 0x00008249 }, /* GL_DEBUG_SOURCE_THIRD_PARTY_ARB */ + { 13622, 0x0000824A }, /* GL_DEBUG_SOURCE_APPLICATION_ARB */ + { 13654, 0x0000824B }, /* GL_DEBUG_SOURCE_OTHER_ARB */ + { 13680, 0x0000824C }, /* GL_DEBUG_TYPE_ERROR_ARB */ + { 13704, 0x0000824D }, /* GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB */ + { 13742, 0x0000824E }, /* GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB */ + { 13779, 0x0000824F }, /* GL_DEBUG_TYPE_PORTABILITY_ARB */ + { 13809, 0x00008250 }, /* GL_DEBUG_TYPE_PERFORMANCE_ARB */ + { 13839, 0x00008251 }, /* GL_DEBUG_TYPE_OTHER_ARB */ + { 13863, 0x00008252 }, /* GL_LOSE_CONTEXT_ON_RESET_ARB */ + { 13892, 0x00008253 }, /* GL_GUILTY_CONTEXT_RESET_ARB */ + { 13920, 0x00008254 }, /* GL_INNOCENT_CONTEXT_RESET_ARB */ + { 13950, 0x00008255 }, /* GL_UNKNOWN_CONTEXT_RESET_ARB */ + { 13979, 0x00008256 }, /* GL_RESET_NOTIFICATION_STRATEGY_ARB */ + { 14014, 0x00008257 }, /* GL_PROGRAM_BINARY_RETRIEVABLE_HINT */ + { 14049, 0x00008258 }, /* GL_PROGRAM_SEPARABLE_EXT */ + { 14074, 0x00008259 }, /* GL_ACTIVE_PROGRAM_EXT */ + { 14096, 0x0000825A }, /* GL_PROGRAM_PIPELINE_BINDING_EXT */ + { 14128, 0x0000825B }, /* GL_MAX_VIEWPORTS */ + { 14145, 0x0000825C }, /* GL_VIEWPORT_SUBPIXEL_BITS */ + { 14171, 0x0000825D }, /* GL_VIEWPORT_BOUNDS_RANGE */ + { 14196, 0x0000825E }, /* GL_LAYER_PROVOKING_VERTEX */ + { 14222, 0x0000825F }, /* GL_VIEWPORT_INDEX_PROVOKING_VERTEX */ + { 14257, 0x00008260 }, /* GL_UNDEFINED_VERTEX */ + { 14277, 0x00008261 }, /* GL_NO_RESET_NOTIFICATION_ARB */ + { 14306, 0x00008262 }, /* GL_MAX_COMPUTE_SHARED_MEMORY_SIZE */ + { 14340, 0x00008263 }, /* GL_MAX_COMPUTE_UNIFORM_COMPONENTS */ + { 14374, 0x00008264 }, /* GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS */ + { 14412, 0x00008265 }, /* GL_MAX_COMPUTE_ATOMIC_COUNTERS */ + { 14443, 0x00008266 }, /* GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS */ + { 14486, 0x00008267 }, /* GL_COMPUTE_WORK_GROUP_SIZE */ + { 14513, 0x00008268 }, /* GL_DEBUG_TYPE_MARKER */ + { 14534, 0x00008269 }, /* GL_DEBUG_TYPE_PUSH_GROUP */ + { 14559, 0x0000826A }, /* GL_DEBUG_TYPE_POP_GROUP */ + { 14583, 0x0000826B }, /* GL_DEBUG_SEVERITY_NOTIFICATION */ + { 14614, 0x0000826C }, /* GL_MAX_DEBUG_GROUP_STACK_DEPTH */ + { 14645, 0x0000826D }, /* GL_DEBUG_GROUP_STACK_DEPTH */ + { 14672, 0x0000826E }, /* GL_MAX_UNIFORM_LOCATIONS */ + { 14697, 0x000082D4 }, /* GL_VERTEX_ATTRIB_BINDING */ + { 14722, 0x000082D5 }, /* GL_VERTEX_ATTRIB_RELATIVE_OFFSET */ + { 14755, 0x000082D6 }, /* GL_VERTEX_BINDING_DIVISOR */ + { 14781, 0x000082D7 }, /* GL_VERTEX_BINDING_OFFSET */ + { 14806, 0x000082D8 }, /* GL_VERTEX_BINDING_STRIDE */ + { 14831, 0x000082D9 }, /* GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET */ + { 14868, 0x000082DA }, /* GL_MAX_VERTEX_ATTRIB_BINDINGS */ + { 14898, 0x000082DF }, /* GL_TEXTURE_IMMUTABLE_LEVELS */ + { 14926, 0x000082E0 }, /* GL_BUFFER */ + { 14936, 0x000082E1 }, /* GL_SHADER */ + { 14946, 0x000082E2 }, /* GL_PROGRAM */ + { 14957, 0x000082E3 }, /* GL_QUERY */ + { 14966, 0x000082E4 }, /* GL_PROGRAM_PIPELINE */ + { 14986, 0x000082E5 }, /* GL_MAX_VERTEX_ATTRIB_STRIDE */ + { 15014, 0x000082E6 }, /* GL_SAMPLER */ + { 15025, 0x000082E7 }, /* GL_DISPLAY_LIST */ + { 15041, 0x000082E8 }, /* GL_MAX_LABEL_LENGTH */ + { 15061, 0x000082EA }, /* GL_QUERY_TARGET */ + { 15077, 0x000082EB }, /* GL_TEXTURE_BINDING */ + { 15096, 0x000082EE }, /* GL_VERTICES_SUBMITTED_ARB */ + { 15122, 0x000082EF }, /* GL_PRIMITIVES_SUBMITTED_ARB */ + { 15150, 0x000082F0 }, /* GL_VERTEX_SHADER_INVOCATIONS_ARB */ + { 15183, 0x000082F1 }, /* GL_TESS_CONTROL_SHADER_PATCHES_ARB */ + { 15218, 0x000082F2 }, /* GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB */ + { 15260, 0x000082F3 }, /* GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB */ + { 15302, 0x000082F4 }, /* GL_FRAGMENT_SHADER_INVOCATIONS_ARB */ + { 15337, 0x000082F5 }, /* GL_COMPUTE_SHADER_INVOCATIONS_ARB */ + { 15371, 0x000082F6 }, /* GL_CLIPPING_INPUT_PRIMITIVES_ARB */ + { 15404, 0x000082F7 }, /* GL_CLIPPING_OUTPUT_PRIMITIVES_ARB */ + { 15438, 0x000082FB }, /* GL_CONTEXT_RELEASE_BEHAVIOR */ + { 15466, 0x000082FC }, /* GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH */ + { 15500, 0x00008362 }, /* GL_UNSIGNED_BYTE_2_3_3_REV */ + { 15527, 0x00008363 }, /* GL_UNSIGNED_SHORT_5_6_5 */ + { 15551, 0x00008364 }, /* GL_UNSIGNED_SHORT_5_6_5_REV */ + { 15579, 0x00008365 }, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */ + { 15609, 0x00008366 }, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */ + { 15639, 0x00008367 }, /* GL_UNSIGNED_INT_8_8_8_8_REV */ + { 15667, 0x00008368 }, /* GL_UNSIGNED_INT_2_10_10_10_REV */ + { 15698, 0x00008369 }, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */ + { 15726, 0x0000836A }, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */ + { 15754, 0x0000836B }, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */ + { 15782, 0x00008370 }, /* GL_MIRRORED_REPEAT */ + { 15801, 0x000083A0 }, /* GL_RGB_S3TC */ + { 15813, 0x000083A1 }, /* GL_RGB4_S3TC */ + { 15826, 0x000083A2 }, /* GL_RGBA_S3TC */ + { 15839, 0x000083A3 }, /* GL_RGBA4_S3TC */ + { 15853, 0x000083A4 }, /* GL_RGBA_DXT5_S3TC */ + { 15871, 0x000083A5 }, /* GL_RGBA4_DXT5_S3TC */ + { 15890, 0x000083F0 }, /* GL_COMPRESSED_RGB_S3TC_DXT1_EXT */ + { 15922, 0x000083F1 }, /* GL_COMPRESSED_RGBA_S3TC_DXT1_EXT */ + { 15955, 0x000083F2 }, /* GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE */ + { 15990, 0x000083F3 }, /* GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE */ + { 16025, 0x000083F9 }, /* GL_PERFQUERY_DONOT_FLUSH_INTEL */ + { 16056, 0x000083FA }, /* GL_PERFQUERY_FLUSH_INTEL */ + { 16081, 0x000083FB }, /* GL_PERFQUERY_WAIT_INTEL */ + { 16105, 0x0000844D }, /* GL_NEAREST_CLIPMAP_NEAREST_SGIX */ + { 16137, 0x0000844E }, /* GL_NEAREST_CLIPMAP_LINEAR_SGIX */ + { 16168, 0x0000844F }, /* GL_LINEAR_CLIPMAP_NEAREST_SGIX */ + { 16199, 0x00008450 }, /* GL_FOG_COORDINATE_SOURCE */ + { 16224, 0x00008451 }, /* GL_FOG_COORD */ + { 16237, 0x00008452 }, /* GL_FRAGMENT_DEPTH */ + { 16255, 0x00008453 }, /* GL_CURRENT_FOG_COORD */ + { 16276, 0x00008454 }, /* GL_FOG_COORDINATE_ARRAY_TYPE */ + { 16305, 0x00008455 }, /* GL_FOG_COORDINATE_ARRAY_STRIDE */ + { 16336, 0x00008456 }, /* GL_FOG_COORDINATE_ARRAY_POINTER */ + { 16368, 0x00008457 }, /* GL_FOG_COORDINATE_ARRAY */ + { 16392, 0x00008458 }, /* GL_COLOR_SUM */ + { 16405, 0x00008459 }, /* GL_CURRENT_SECONDARY_COLOR */ + { 16432, 0x0000845A }, /* GL_SECONDARY_COLOR_ARRAY_SIZE */ + { 16462, 0x0000845B }, /* GL_SECONDARY_COLOR_ARRAY_TYPE */ + { 16492, 0x0000845C }, /* GL_SECONDARY_COLOR_ARRAY_STRIDE */ + { 16524, 0x0000845D }, /* GL_SECONDARY_COLOR_ARRAY_POINTER */ + { 16557, 0x0000845E }, /* GL_SECONDARY_COLOR_ARRAY */ + { 16582, 0x0000845F }, /* GL_CURRENT_RASTER_SECONDARY_COLOR */ + { 16616, 0x0000846D }, /* GL_ALIASED_POINT_SIZE_RANGE */ + { 16644, 0x0000846E }, /* GL_ALIASED_LINE_WIDTH_RANGE */ + { 16672, 0x000084C0 }, /* GL_TEXTURE0 */ + { 16684, 0x000084C1 }, /* GL_TEXTURE1 */ + { 16696, 0x000084C2 }, /* GL_TEXTURE2 */ + { 16708, 0x000084C3 }, /* GL_TEXTURE3 */ + { 16720, 0x000084C4 }, /* GL_TEXTURE4 */ + { 16732, 0x000084C5 }, /* GL_TEXTURE5 */ + { 16744, 0x000084C6 }, /* GL_TEXTURE6 */ + { 16756, 0x000084C7 }, /* GL_TEXTURE7 */ + { 16768, 0x000084C8 }, /* GL_TEXTURE8 */ + { 16780, 0x000084C9 }, /* GL_TEXTURE9 */ + { 16792, 0x000084CA }, /* GL_TEXTURE10 */ + { 16805, 0x000084CB }, /* GL_TEXTURE11 */ + { 16818, 0x000084CC }, /* GL_TEXTURE12 */ + { 16831, 0x000084CD }, /* GL_TEXTURE13 */ + { 16844, 0x000084CE }, /* GL_TEXTURE14 */ + { 16857, 0x000084CF }, /* GL_TEXTURE15 */ + { 16870, 0x000084D0 }, /* GL_TEXTURE16 */ + { 16883, 0x000084D1 }, /* GL_TEXTURE17 */ + { 16896, 0x000084D2 }, /* GL_TEXTURE18 */ + { 16909, 0x000084D3 }, /* GL_TEXTURE19 */ + { 16922, 0x000084D4 }, /* GL_TEXTURE20 */ + { 16935, 0x000084D5 }, /* GL_TEXTURE21 */ + { 16948, 0x000084D6 }, /* GL_TEXTURE22 */ + { 16961, 0x000084D7 }, /* GL_TEXTURE23 */ + { 16974, 0x000084D8 }, /* GL_TEXTURE24 */ + { 16987, 0x000084D9 }, /* GL_TEXTURE25 */ + { 17000, 0x000084DA }, /* GL_TEXTURE26 */ + { 17013, 0x000084DB }, /* GL_TEXTURE27 */ + { 17026, 0x000084DC }, /* GL_TEXTURE28 */ + { 17039, 0x000084DD }, /* GL_TEXTURE29 */ + { 17052, 0x000084DE }, /* GL_TEXTURE30 */ + { 17065, 0x000084DF }, /* GL_TEXTURE31 */ + { 17078, 0x000084E0 }, /* GL_ACTIVE_TEXTURE */ + { 17096, 0x000084E1 }, /* GL_CLIENT_ACTIVE_TEXTURE */ + { 17121, 0x000084E2 }, /* GL_MAX_TEXTURE_UNITS */ + { 17142, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX */ + { 17172, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX */ + { 17203, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX */ + { 17231, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX */ + { 17257, 0x000084E7 }, /* GL_SUBTRACT */ + { 17269, 0x000084E8 }, /* GL_MAX_RENDERBUFFER_SIZE */ + { 17294, 0x000084E9 }, /* GL_COMPRESSED_ALPHA */ + { 17314, 0x000084EA }, /* GL_COMPRESSED_LUMINANCE */ + { 17338, 0x000084EB }, /* GL_COMPRESSED_LUMINANCE_ALPHA */ + { 17368, 0x000084EC }, /* GL_COMPRESSED_INTENSITY */ + { 17392, 0x000084ED }, /* GL_COMPRESSED_RGB */ + { 17410, 0x000084EE }, /* GL_COMPRESSED_RGBA */ + { 17429, 0x000084EF }, /* GL_TEXTURE_COMPRESSION_HINT */ + { 17457, 0x000084F0 }, /* GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER */ + { 17508, 0x000084F1 }, /* GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER */ + { 17562, 0x000084F5 }, /* GL_TEXTURE_RECTANGLE */ + { 17583, 0x000084F6 }, /* GL_TEXTURE_BINDING_RECTANGLE */ + { 17612, 0x000084F7 }, /* GL_PROXY_TEXTURE_RECTANGLE */ + { 17639, 0x000084F8 }, /* GL_MAX_RECTANGLE_TEXTURE_SIZE */ + { 17669, 0x000084F9 }, /* GL_DEPTH_STENCIL */ + { 17686, 0x000084FA }, /* GL_UNSIGNED_INT_24_8 */ + { 17707, 0x000084FD }, /* GL_MAX_TEXTURE_LOD_BIAS */ + { 17731, 0x000084FE }, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */ + { 17761, 0x000084FF }, /* GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT */ + { 17795, 0x00008500 }, /* GL_TEXTURE_FILTER_CONTROL */ + { 17821, 0x00008501 }, /* GL_TEXTURE_LOD_BIAS */ + { 17841, 0x00008503 }, /* GL_COMBINE4_NV */ + { 17856, 0x00008504 }, /* GL_MAX_SHININESS_NV */ + { 17876, 0x00008505 }, /* GL_MAX_SPOT_EXPONENT_NV */ + { 17900, 0x00008507 }, /* GL_INCR_WRAP */ + { 17913, 0x00008508 }, /* GL_DECR_WRAP */ + { 17926, 0x0000850A }, /* GL_MODELVIEW1_ARB */ + { 17944, 0x00008511 }, /* GL_NORMAL_MAP */ + { 17958, 0x00008512 }, /* GL_REFLECTION_MAP */ + { 17976, 0x00008513 }, /* GL_TEXTURE_CUBE_MAP */ + { 17996, 0x00008514 }, /* GL_TEXTURE_BINDING_CUBE_MAP */ + { 18024, 0x00008515 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_X */ + { 18055, 0x00008516 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_X */ + { 18086, 0x00008517 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Y */ + { 18117, 0x00008518 }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Y */ + { 18148, 0x00008519 }, /* GL_TEXTURE_CUBE_MAP_POSITIVE_Z */ + { 18179, 0x0000851A }, /* GL_TEXTURE_CUBE_MAP_NEGATIVE_Z */ + { 18210, 0x0000851B }, /* GL_PROXY_TEXTURE_CUBE_MAP */ + { 18236, 0x0000851C }, /* GL_MAX_CUBE_MAP_TEXTURE_SIZE */ + { 18265, 0x00008534 }, /* GL_MULTISAMPLE_FILTER_HINT_NV */ + { 18295, 0x00008558 }, /* GL_PRIMITIVE_RESTART_NV */ + { 18319, 0x00008559 }, /* GL_PRIMITIVE_RESTART_INDEX_NV */ + { 18349, 0x0000855A }, /* GL_FOG_DISTANCE_MODE_NV */ + { 18373, 0x0000855B }, /* GL_EYE_RADIAL_NV */ + { 18390, 0x0000855C }, /* GL_EYE_PLANE_ABSOLUTE_NV */ + { 18415, 0x00008570 }, /* GL_COMBINE */ + { 18426, 0x00008571 }, /* GL_COMBINE_RGB */ + { 18441, 0x00008572 }, /* GL_COMBINE_ALPHA */ + { 18458, 0x00008573 }, /* GL_RGB_SCALE */ + { 18471, 0x00008574 }, /* GL_ADD_SIGNED */ + { 18485, 0x00008575 }, /* GL_INTERPOLATE */ + { 18500, 0x00008576 }, /* GL_CONSTANT */ + { 18512, 0x00008577 }, /* GL_PRIMARY_COLOR */ + { 18529, 0x00008578 }, /* GL_PREVIOUS */ + { 18541, 0x00008580 }, /* GL_SOURCE0_RGB */ + { 18556, 0x00008581 }, /* GL_SOURCE1_RGB */ + { 18571, 0x00008582 }, /* GL_SOURCE2_RGB */ + { 18586, 0x00008583 }, /* GL_SOURCE3_RGB_NV */ + { 18604, 0x00008588 }, /* GL_SOURCE0_ALPHA */ + { 18621, 0x00008589 }, /* GL_SOURCE1_ALPHA */ + { 18638, 0x0000858A }, /* GL_SOURCE2_ALPHA */ + { 18655, 0x0000858B }, /* GL_SOURCE3_ALPHA_NV */ + { 18675, 0x00008590 }, /* GL_OPERAND0_RGB */ + { 18691, 0x00008591 }, /* GL_OPERAND1_RGB */ + { 18707, 0x00008592 }, /* GL_OPERAND2_RGB */ + { 18723, 0x00008593 }, /* GL_OPERAND3_RGB_NV */ + { 18742, 0x00008598 }, /* GL_OPERAND0_ALPHA */ + { 18760, 0x00008599 }, /* GL_OPERAND1_ALPHA */ + { 18778, 0x0000859A }, /* GL_OPERAND2_ALPHA */ + { 18796, 0x0000859B }, /* GL_OPERAND3_ALPHA_NV */ + { 18817, 0x000085B3 }, /* GL_BUFFER_OBJECT_APPLE */ + { 18840, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING */ + { 18864, 0x000085B7 }, /* GL_TEXTURE_RANGE_LENGTH_APPLE */ + { 18894, 0x000085B8 }, /* GL_TEXTURE_RANGE_POINTER_APPLE */ + { 18925, 0x000085B9 }, /* GL_YCBCR_422_APPLE */ + { 18944, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_APPLE */ + { 18972, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */ + { 19004, 0x000085BC }, /* GL_TEXTURE_STORAGE_HINT_APPLE */ + { 19034, 0x000085BD }, /* GL_STORAGE_PRIVATE_APPLE */ + { 19059, 0x000085BE }, /* GL_STORAGE_CACHED_APPLE */ + { 19083, 0x000085BF }, /* GL_STORAGE_SHARED_APPLE */ + { 19107, 0x000085CC }, /* GL_SLICE_ACCUM_SUN */ + { 19126, 0x00008614 }, /* GL_QUAD_MESH_SUN */ + { 19143, 0x00008615 }, /* GL_TRIANGLE_MESH_SUN */ + { 19164, 0x00008620 }, /* GL_VERTEX_PROGRAM_ARB */ + { 19186, 0x00008621 }, /* GL_VERTEX_STATE_PROGRAM_NV */ + { 19213, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */ + { 19244, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */ + { 19272, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */ + { 19302, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */ + { 19330, 0x00008626 }, /* GL_CURRENT_VERTEX_ATTRIB */ + { 19355, 0x00008627 }, /* GL_PROGRAM_LENGTH_ARB */ + { 19377, 0x00008628 }, /* GL_PROGRAM_STRING_ARB */ + { 19399, 0x00008629 }, /* GL_MODELVIEW_PROJECTION_NV */ + { 19426, 0x0000862A }, /* GL_IDENTITY_NV */ + { 19441, 0x0000862B }, /* GL_INVERSE_NV */ + { 19455, 0x0000862C }, /* GL_TRANSPOSE_NV */ + { 19471, 0x0000862D }, /* GL_INVERSE_TRANSPOSE_NV */ + { 19495, 0x0000862E }, /* GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB */ + { 19533, 0x0000862F }, /* GL_MAX_PROGRAM_MATRICES_ARB */ + { 19561, 0x00008630 }, /* GL_MATRIX0_NV */ + { 19575, 0x00008631 }, /* GL_MATRIX1_NV */ + { 19589, 0x00008632 }, /* GL_MATRIX2_NV */ + { 19603, 0x00008633 }, /* GL_MATRIX3_NV */ + { 19617, 0x00008634 }, /* GL_MATRIX4_NV */ + { 19631, 0x00008635 }, /* GL_MATRIX5_NV */ + { 19645, 0x00008636 }, /* GL_MATRIX6_NV */ + { 19659, 0x00008637 }, /* GL_MATRIX7_NV */ + { 19673, 0x00008640 }, /* GL_CURRENT_MATRIX_STACK_DEPTH_ARB */ + { 19707, 0x00008641 }, /* GL_CURRENT_MATRIX_ARB */ + { 19729, 0x00008642 }, /* GL_PROGRAM_POINT_SIZE */ + { 19751, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE */ + { 19778, 0x00008644 }, /* GL_PROGRAM_PARAMETER_NV */ + { 19802, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */ + { 19833, 0x00008646 }, /* GL_PROGRAM_TARGET_NV */ + { 19854, 0x00008647 }, /* GL_PROGRAM_RESIDENT_NV */ + { 19877, 0x00008648 }, /* GL_TRACK_MATRIX_NV */ + { 19896, 0x00008649 }, /* GL_TRACK_MATRIX_TRANSFORM_NV */ + { 19925, 0x0000864A }, /* GL_VERTEX_PROGRAM_BINDING_NV */ + { 19954, 0x0000864B }, /* GL_PROGRAM_ERROR_POSITION_ARB */ + { 19984, 0x0000864F }, /* GL_DEPTH_CLAMP */ + { 19999, 0x00008650 }, /* GL_VERTEX_ATTRIB_ARRAY0_NV */ + { 20026, 0x00008651 }, /* GL_VERTEX_ATTRIB_ARRAY1_NV */ + { 20053, 0x00008652 }, /* GL_VERTEX_ATTRIB_ARRAY2_NV */ + { 20080, 0x00008653 }, /* GL_VERTEX_ATTRIB_ARRAY3_NV */ + { 20107, 0x00008654 }, /* GL_VERTEX_ATTRIB_ARRAY4_NV */ + { 20134, 0x00008655 }, /* GL_VERTEX_ATTRIB_ARRAY5_NV */ + { 20161, 0x00008656 }, /* GL_VERTEX_ATTRIB_ARRAY6_NV */ + { 20188, 0x00008657 }, /* GL_VERTEX_ATTRIB_ARRAY7_NV */ + { 20215, 0x00008658 }, /* GL_VERTEX_ATTRIB_ARRAY8_NV */ + { 20242, 0x00008659 }, /* GL_VERTEX_ATTRIB_ARRAY9_NV */ + { 20269, 0x0000865A }, /* GL_VERTEX_ATTRIB_ARRAY10_NV */ + { 20297, 0x0000865B }, /* GL_VERTEX_ATTRIB_ARRAY11_NV */ + { 20325, 0x0000865C }, /* GL_VERTEX_ATTRIB_ARRAY12_NV */ + { 20353, 0x0000865D }, /* GL_VERTEX_ATTRIB_ARRAY13_NV */ + { 20381, 0x0000865E }, /* GL_VERTEX_ATTRIB_ARRAY14_NV */ + { 20409, 0x0000865F }, /* GL_VERTEX_ATTRIB_ARRAY15_NV */ + { 20437, 0x00008660 }, /* GL_MAP1_VERTEX_ATTRIB0_4_NV */ + { 20465, 0x00008661 }, /* GL_MAP1_VERTEX_ATTRIB1_4_NV */ + { 20493, 0x00008662 }, /* GL_MAP1_VERTEX_ATTRIB2_4_NV */ + { 20521, 0x00008663 }, /* GL_MAP1_VERTEX_ATTRIB3_4_NV */ + { 20549, 0x00008664 }, /* GL_MAP1_VERTEX_ATTRIB4_4_NV */ + { 20577, 0x00008665 }, /* GL_MAP1_VERTEX_ATTRIB5_4_NV */ + { 20605, 0x00008666 }, /* GL_MAP1_VERTEX_ATTRIB6_4_NV */ + { 20633, 0x00008667 }, /* GL_MAP1_VERTEX_ATTRIB7_4_NV */ + { 20661, 0x00008668 }, /* GL_MAP1_VERTEX_ATTRIB8_4_NV */ + { 20689, 0x00008669 }, /* GL_MAP1_VERTEX_ATTRIB9_4_NV */ + { 20717, 0x0000866A }, /* GL_MAP1_VERTEX_ATTRIB10_4_NV */ + { 20746, 0x0000866B }, /* GL_MAP1_VERTEX_ATTRIB11_4_NV */ + { 20775, 0x0000866C }, /* GL_MAP1_VERTEX_ATTRIB12_4_NV */ + { 20804, 0x0000866D }, /* GL_MAP1_VERTEX_ATTRIB13_4_NV */ + { 20833, 0x0000866E }, /* GL_MAP1_VERTEX_ATTRIB14_4_NV */ + { 20862, 0x0000866F }, /* GL_MAP1_VERTEX_ATTRIB15_4_NV */ + { 20891, 0x00008670 }, /* GL_MAP2_VERTEX_ATTRIB0_4_NV */ + { 20919, 0x00008671 }, /* GL_MAP2_VERTEX_ATTRIB1_4_NV */ + { 20947, 0x00008672 }, /* GL_MAP2_VERTEX_ATTRIB2_4_NV */ + { 20975, 0x00008673 }, /* GL_MAP2_VERTEX_ATTRIB3_4_NV */ + { 21003, 0x00008674 }, /* GL_MAP2_VERTEX_ATTRIB4_4_NV */ + { 21031, 0x00008675 }, /* GL_MAP2_VERTEX_ATTRIB5_4_NV */ + { 21059, 0x00008676 }, /* GL_MAP2_VERTEX_ATTRIB6_4_NV */ + { 21087, 0x00008677 }, /* GL_PROGRAM_BINDING_ARB */ + { 21110, 0x00008678 }, /* GL_MAP2_VERTEX_ATTRIB8_4_NV */ + { 21138, 0x00008679 }, /* GL_MAP2_VERTEX_ATTRIB9_4_NV */ + { 21166, 0x0000867A }, /* GL_MAP2_VERTEX_ATTRIB10_4_NV */ + { 21195, 0x0000867B }, /* GL_MAP2_VERTEX_ATTRIB11_4_NV */ + { 21224, 0x0000867C }, /* GL_MAP2_VERTEX_ATTRIB12_4_NV */ + { 21253, 0x0000867D }, /* GL_MAP2_VERTEX_ATTRIB13_4_NV */ + { 21282, 0x0000867E }, /* GL_MAP2_VERTEX_ATTRIB14_4_NV */ + { 21311, 0x0000867F }, /* GL_MAP2_VERTEX_ATTRIB15_4_NV */ + { 21340, 0x000086A0 }, /* GL_TEXTURE_COMPRESSED_IMAGE_SIZE */ + { 21373, 0x000086A1 }, /* GL_TEXTURE_COMPRESSED */ + { 21395, 0x000086A2 }, /* GL_NUM_COMPRESSED_TEXTURE_FORMATS */ + { 21429, 0x000086A3 }, /* GL_COMPRESSED_TEXTURE_FORMATS */ + { 21459, 0x000086A4 }, /* GL_MAX_VERTEX_UNITS_ARB */ + { 21483, 0x000086A5 }, /* GL_ACTIVE_VERTEX_UNITS_ARB */ + { 21510, 0x000086A6 }, /* GL_WEIGHT_SUM_UNITY_ARB */ + { 21534, 0x000086A7 }, /* GL_VERTEX_BLEND_ARB */ + { 21554, 0x000086A8 }, /* GL_CURRENT_WEIGHT_ARB */ + { 21576, 0x000086A9 }, /* GL_WEIGHT_ARRAY_TYPE_ARB */ + { 21601, 0x000086AA }, /* GL_WEIGHT_ARRAY_STRIDE_ARB */ + { 21628, 0x000086AB }, /* GL_WEIGHT_ARRAY_SIZE_ARB */ + { 21653, 0x000086AC }, /* GL_WEIGHT_ARRAY_POINTER_ARB */ + { 21681, 0x000086AD }, /* GL_WEIGHT_ARRAY_ARB */ + { 21701, 0x000086AE }, /* GL_DOT3_RGB */ + { 21713, 0x000086AF }, /* GL_DOT3_RGBA */ + { 21726, 0x000086B0 }, /* GL_COMPRESSED_RGB_FXT1_3DFX */ + { 21754, 0x000086B1 }, /* GL_COMPRESSED_RGBA_FXT1_3DFX */ + { 21783, 0x000086B2 }, /* GL_MULTISAMPLE_3DFX */ + { 21803, 0x000086B3 }, /* GL_SAMPLE_BUFFERS_3DFX */ + { 21826, 0x000086B4 }, /* GL_SAMPLES_3DFX */ + { 21842, 0x000086EB }, /* GL_SURFACE_STATE_NV */ + { 21862, 0x000086FD }, /* GL_SURFACE_REGISTERED_NV */ + { 21887, 0x00008700 }, /* GL_SURFACE_MAPPED_NV */ + { 21908, 0x00008722 }, /* GL_MODELVIEW2_ARB */ + { 21926, 0x00008723 }, /* GL_MODELVIEW3_ARB */ + { 21944, 0x00008724 }, /* GL_MODELVIEW4_ARB */ + { 21962, 0x00008725 }, /* GL_MODELVIEW5_ARB */ + { 21980, 0x00008726 }, /* GL_MODELVIEW6_ARB */ + { 21998, 0x00008727 }, /* GL_MODELVIEW7_ARB */ + { 22016, 0x00008728 }, /* GL_MODELVIEW8_ARB */ + { 22034, 0x00008729 }, /* GL_MODELVIEW9_ARB */ + { 22052, 0x0000872A }, /* GL_MODELVIEW10_ARB */ + { 22071, 0x0000872B }, /* GL_MODELVIEW11_ARB */ + { 22090, 0x0000872C }, /* GL_MODELVIEW12_ARB */ + { 22109, 0x0000872D }, /* GL_MODELVIEW13_ARB */ + { 22128, 0x0000872E }, /* GL_MODELVIEW14_ARB */ + { 22147, 0x0000872F }, /* GL_MODELVIEW15_ARB */ + { 22166, 0x00008730 }, /* GL_MODELVIEW16_ARB */ + { 22185, 0x00008731 }, /* GL_MODELVIEW17_ARB */ + { 22204, 0x00008732 }, /* GL_MODELVIEW18_ARB */ + { 22223, 0x00008733 }, /* GL_MODELVIEW19_ARB */ + { 22242, 0x00008734 }, /* GL_MODELVIEW20_ARB */ + { 22261, 0x00008735 }, /* GL_MODELVIEW21_ARB */ + { 22280, 0x00008736 }, /* GL_MODELVIEW22_ARB */ + { 22299, 0x00008737 }, /* GL_MODELVIEW23_ARB */ + { 22318, 0x00008738 }, /* GL_MODELVIEW24_ARB */ + { 22337, 0x00008739 }, /* GL_MODELVIEW25_ARB */ + { 22356, 0x0000873A }, /* GL_MODELVIEW26_ARB */ + { 22375, 0x0000873B }, /* GL_MODELVIEW27_ARB */ + { 22394, 0x0000873C }, /* GL_MODELVIEW28_ARB */ + { 22413, 0x0000873D }, /* GL_MODELVIEW29_ARB */ + { 22432, 0x0000873E }, /* GL_MODELVIEW30_ARB */ + { 22451, 0x0000873F }, /* GL_MODELVIEW31_ARB */ + { 22470, 0x00008740 }, /* GL_DOT3_RGB_EXT */ + { 22486, 0x00008741 }, /* GL_PROGRAM_BINARY_LENGTH */ + { 22511, 0x00008742 }, /* GL_MIRROR_CLAMP_EXT */ + { 22531, 0x00008743 }, /* GL_MIRROR_CLAMP_TO_EDGE_EXT */ + { 22559, 0x00008744 }, /* GL_MODULATE_ADD_ATI */ + { 22579, 0x00008745 }, /* GL_MODULATE_SIGNED_ADD_ATI */ + { 22606, 0x00008746 }, /* GL_MODULATE_SUBTRACT_ATI */ + { 22631, 0x00008757 }, /* GL_YCBCR_MESA */ + { 22645, 0x00008758 }, /* GL_PACK_INVERT_MESA */ + { 22665, 0x00008764 }, /* GL_BUFFER_SIZE */ + { 22680, 0x00008765 }, /* GL_BUFFER_USAGE */ + { 22696, 0x00008775 }, /* GL_BUMP_ROT_MATRIX_ATI */ + { 22719, 0x00008776 }, /* GL_BUMP_ROT_MATRIX_SIZE_ATI */ + { 22747, 0x00008777 }, /* GL_BUMP_NUM_TEX_UNITS_ATI */ + { 22773, 0x00008778 }, /* GL_BUMP_TEX_UNITS_ATI */ + { 22795, 0x00008779 }, /* GL_DUDV_ATI */ + { 22807, 0x0000877A }, /* GL_DU8DV8_ATI */ + { 22821, 0x0000877B }, /* GL_BUMP_ENVMAP_ATI */ + { 22840, 0x0000877C }, /* GL_BUMP_TARGET_ATI */ + { 22859, 0x000087FE }, /* GL_NUM_PROGRAM_BINARY_FORMATS */ + { 22889, 0x000087FF }, /* GL_PROGRAM_BINARY_FORMATS */ + { 22915, 0x00008800 }, /* GL_STENCIL_BACK_FUNC */ + { 22936, 0x00008801 }, /* GL_STENCIL_BACK_FAIL */ + { 22957, 0x00008802 }, /* GL_STENCIL_BACK_PASS_DEPTH_FAIL */ + { 22989, 0x00008803 }, /* GL_STENCIL_BACK_PASS_DEPTH_PASS */ + { 23021, 0x00008804 }, /* GL_FRAGMENT_PROGRAM_ARB */ + { 23045, 0x00008805 }, /* GL_PROGRAM_ALU_INSTRUCTIONS_ARB */ + { 23077, 0x00008806 }, /* GL_PROGRAM_TEX_INSTRUCTIONS_ARB */ + { 23109, 0x00008807 }, /* GL_PROGRAM_TEX_INDIRECTIONS_ARB */ + { 23141, 0x00008808 }, /* GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */ + { 23180, 0x00008809 }, /* GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */ + { 23219, 0x0000880A }, /* GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */ + { 23258, 0x0000880B }, /* GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB */ + { 23294, 0x0000880C }, /* GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB */ + { 23330, 0x0000880D }, /* GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB */ + { 23366, 0x0000880E }, /* GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB */ + { 23409, 0x0000880F }, /* GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB */ + { 23452, 0x00008810 }, /* GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB */ + { 23495, 0x00008814 }, /* GL_RGBA32F */ + { 23506, 0x00008815 }, /* GL_RGB32F */ + { 23516, 0x00008816 }, /* GL_ALPHA32F_ARB */ + { 23532, 0x00008817 }, /* GL_INTENSITY32F_ARB */ + { 23552, 0x00008818 }, /* GL_LUMINANCE32F_ARB */ + { 23572, 0x00008819 }, /* GL_LUMINANCE_ALPHA32F_ARB */ + { 23598, 0x0000881A }, /* GL_RGBA16F */ + { 23609, 0x0000881B }, /* GL_RGB16F */ + { 23619, 0x0000881C }, /* GL_ALPHA16F_ARB */ + { 23635, 0x0000881D }, /* GL_INTENSITY16F_ARB */ + { 23655, 0x0000881E }, /* GL_LUMINANCE16F_ARB */ + { 23675, 0x0000881F }, /* GL_LUMINANCE_ALPHA16F_ARB */ + { 23701, 0x00008820 }, /* GL_RGBA_FLOAT_MODE_ARB */ + { 23724, 0x00008824 }, /* GL_MAX_DRAW_BUFFERS */ + { 23744, 0x00008825 }, /* GL_DRAW_BUFFER0 */ + { 23760, 0x00008826 }, /* GL_DRAW_BUFFER1 */ + { 23776, 0x00008827 }, /* GL_DRAW_BUFFER2 */ + { 23792, 0x00008828 }, /* GL_DRAW_BUFFER3 */ + { 23808, 0x00008829 }, /* GL_DRAW_BUFFER4 */ + { 23824, 0x0000882A }, /* GL_DRAW_BUFFER5 */ + { 23840, 0x0000882B }, /* GL_DRAW_BUFFER6 */ + { 23856, 0x0000882C }, /* GL_DRAW_BUFFER7 */ + { 23872, 0x0000882D }, /* GL_DRAW_BUFFER8 */ + { 23888, 0x0000882E }, /* GL_DRAW_BUFFER9 */ + { 23904, 0x0000882F }, /* GL_DRAW_BUFFER10 */ + { 23921, 0x00008830 }, /* GL_DRAW_BUFFER11 */ + { 23938, 0x00008831 }, /* GL_DRAW_BUFFER12 */ + { 23955, 0x00008832 }, /* GL_DRAW_BUFFER13 */ + { 23972, 0x00008833 }, /* GL_DRAW_BUFFER14 */ + { 23989, 0x00008834 }, /* GL_DRAW_BUFFER15 */ + { 24006, 0x0000883D }, /* GL_BLEND_EQUATION_ALPHA */ + { 24030, 0x00008840 }, /* GL_MATRIX_PALETTE_ARB */ + { 24052, 0x00008841 }, /* GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB */ + { 24090, 0x00008842 }, /* GL_MAX_PALETTE_MATRICES_ARB */ + { 24118, 0x00008843 }, /* GL_CURRENT_PALETTE_MATRIX_ARB */ + { 24148, 0x00008844 }, /* GL_MATRIX_INDEX_ARRAY_ARB */ + { 24174, 0x00008845 }, /* GL_CURRENT_MATRIX_INDEX_ARB */ + { 24202, 0x00008846 }, /* GL_MATRIX_INDEX_ARRAY_SIZE_ARB */ + { 24233, 0x00008847 }, /* GL_MATRIX_INDEX_ARRAY_TYPE_ARB */ + { 24264, 0x00008848 }, /* GL_MATRIX_INDEX_ARRAY_STRIDE_ARB */ + { 24297, 0x00008849 }, /* GL_MATRIX_INDEX_ARRAY_POINTER_ARB */ + { 24331, 0x0000884A }, /* GL_TEXTURE_DEPTH_SIZE */ + { 24353, 0x0000884B }, /* GL_DEPTH_TEXTURE_MODE */ + { 24375, 0x0000884C }, /* GL_TEXTURE_COMPARE_MODE */ + { 24399, 0x0000884D }, /* GL_TEXTURE_COMPARE_FUNC */ + { 24423, 0x0000884E }, /* GL_COMPARE_REF_TO_TEXTURE */ + { 24449, 0x0000884F }, /* GL_TEXTURE_CUBE_MAP_SEAMLESS */ + { 24478, 0x00008861 }, /* GL_POINT_SPRITE */ + { 24494, 0x00008862 }, /* GL_COORD_REPLACE */ + { 24511, 0x00008863 }, /* GL_POINT_SPRITE_R_MODE_NV */ + { 24537, 0x00008864 }, /* GL_QUERY_COUNTER_BITS */ + { 24559, 0x00008865 }, /* GL_CURRENT_QUERY */ + { 24576, 0x00008866 }, /* GL_QUERY_RESULT */ + { 24592, 0x00008867 }, /* GL_QUERY_RESULT_AVAILABLE */ + { 24618, 0x00008868 }, /* GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV */ + { 24662, 0x00008869 }, /* GL_MAX_VERTEX_ATTRIBS */ + { 24684, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */ + { 24718, 0x0000886C }, /* GL_MAX_TESS_CONTROL_INPUT_COMPONENTS */ + { 24755, 0x0000886D }, /* GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS */ + { 24795, 0x0000886E }, /* GL_DEPTH_STENCIL_TO_RGBA_NV */ + { 24823, 0x0000886F }, /* GL_DEPTH_STENCIL_TO_BGRA_NV */ + { 24851, 0x00008870 }, /* GL_FRAGMENT_PROGRAM_NV */ + { 24874, 0x00008871 }, /* GL_MAX_TEXTURE_COORDS */ + { 24896, 0x00008872 }, /* GL_MAX_TEXTURE_IMAGE_UNITS */ + { 24923, 0x00008873 }, /* GL_FRAGMENT_PROGRAM_BINDING_NV */ + { 24954, 0x00008874 }, /* GL_PROGRAM_ERROR_STRING_ARB */ + { 24982, 0x00008875 }, /* GL_PROGRAM_FORMAT_ASCII_ARB */ + { 25010, 0x00008876 }, /* GL_PROGRAM_FORMAT_ARB */ + { 25032, 0x0000887F }, /* GL_GEOMETRY_SHADER_INVOCATIONS */ + { 25063, 0x0000888F }, /* GL_TEXTURE_UNSIGNED_REMAP_MODE_NV */ + { 25097, 0x00008890 }, /* GL_DEPTH_BOUNDS_TEST_EXT */ + { 25122, 0x00008891 }, /* GL_DEPTH_BOUNDS_EXT */ + { 25142, 0x00008892 }, /* GL_ARRAY_BUFFER */ + { 25158, 0x00008893 }, /* GL_ELEMENT_ARRAY_BUFFER */ + { 25182, 0x00008894 }, /* GL_ARRAY_BUFFER_BINDING */ + { 25206, 0x00008895 }, /* GL_ELEMENT_ARRAY_BUFFER_BINDING */ + { 25238, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING */ + { 25269, 0x00008897 }, /* GL_NORMAL_ARRAY_BUFFER_BINDING */ + { 25300, 0x00008898 }, /* GL_COLOR_ARRAY_BUFFER_BINDING */ + { 25330, 0x00008899 }, /* GL_INDEX_ARRAY_BUFFER_BINDING */ + { 25360, 0x0000889A }, /* GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING */ + { 25398, 0x0000889B }, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING */ + { 25432, 0x0000889C }, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING */ + { 25472, 0x0000889D }, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING */ + { 25511, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */ + { 25542, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */ + { 25580, 0x000088A0 }, /* GL_PROGRAM_INSTRUCTIONS_ARB */ + { 25608, 0x000088A1 }, /* GL_MAX_PROGRAM_INSTRUCTIONS_ARB */ + { 25640, 0x000088A2 }, /* GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB */ + { 25675, 0x000088A3 }, /* GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB */ + { 25714, 0x000088A4 }, /* GL_PROGRAM_TEMPORARIES_ARB */ + { 25741, 0x000088A5 }, /* GL_MAX_PROGRAM_TEMPORARIES_ARB */ + { 25772, 0x000088A6 }, /* GL_PROGRAM_NATIVE_TEMPORARIES_ARB */ + { 25806, 0x000088A7 }, /* GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB */ + { 25844, 0x000088A8 }, /* GL_PROGRAM_PARAMETERS_ARB */ + { 25870, 0x000088A9 }, /* GL_MAX_PROGRAM_PARAMETERS_ARB */ + { 25900, 0x000088AA }, /* GL_PROGRAM_NATIVE_PARAMETERS_ARB */ + { 25933, 0x000088AB }, /* GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB */ + { 25970, 0x000088AC }, /* GL_PROGRAM_ATTRIBS_ARB */ + { 25993, 0x000088AD }, /* GL_MAX_PROGRAM_ATTRIBS_ARB */ + { 26020, 0x000088AE }, /* GL_PROGRAM_NATIVE_ATTRIBS_ARB */ + { 26050, 0x000088AF }, /* GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB */ + { 26084, 0x000088B0 }, /* GL_PROGRAM_ADDRESS_REGISTERS_ARB */ + { 26117, 0x000088B1 }, /* GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB */ + { 26154, 0x000088B2 }, /* GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */ + { 26194, 0x000088B3 }, /* GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB */ + { 26238, 0x000088B4 }, /* GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB */ + { 26274, 0x000088B5 }, /* GL_MAX_PROGRAM_ENV_PARAMETERS_ARB */ + { 26308, 0x000088B6 }, /* GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB */ + { 26343, 0x000088B7 }, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */ + { 26375, 0x000088B8 }, /* GL_READ_ONLY */ + { 26388, 0x000088B9 }, /* GL_WRITE_ONLY */ + { 26402, 0x000088BA }, /* GL_READ_WRITE */ + { 26416, 0x000088BB }, /* GL_BUFFER_ACCESS */ + { 26433, 0x000088BC }, /* GL_BUFFER_MAPPED */ + { 26450, 0x000088BD }, /* GL_BUFFER_MAP_POINTER */ + { 26472, 0x000088BE }, /* GL_WRITE_DISCARD_NV */ + { 26492, 0x000088BF }, /* GL_TIME_ELAPSED */ + { 26508, 0x000088C0 }, /* GL_MATRIX0_ARB */ + { 26523, 0x000088C1 }, /* GL_MATRIX1_ARB */ + { 26538, 0x000088C2 }, /* GL_MATRIX2_ARB */ + { 26553, 0x000088C3 }, /* GL_MATRIX3_ARB */ + { 26568, 0x000088C4 }, /* GL_MATRIX4_ARB */ + { 26583, 0x000088C5 }, /* GL_MATRIX5_ARB */ + { 26598, 0x000088C6 }, /* GL_MATRIX6_ARB */ + { 26613, 0x000088C7 }, /* GL_MATRIX7_ARB */ + { 26628, 0x000088C8 }, /* GL_MATRIX8_ARB */ + { 26643, 0x000088C9 }, /* GL_MATRIX9_ARB */ + { 26658, 0x000088CA }, /* GL_MATRIX10_ARB */ + { 26674, 0x000088CB }, /* GL_MATRIX11_ARB */ + { 26690, 0x000088CC }, /* GL_MATRIX12_ARB */ + { 26706, 0x000088CD }, /* GL_MATRIX13_ARB */ + { 26722, 0x000088CE }, /* GL_MATRIX14_ARB */ + { 26738, 0x000088CF }, /* GL_MATRIX15_ARB */ + { 26754, 0x000088D0 }, /* GL_MATRIX16_ARB */ + { 26770, 0x000088D1 }, /* GL_MATRIX17_ARB */ + { 26786, 0x000088D2 }, /* GL_MATRIX18_ARB */ + { 26802, 0x000088D3 }, /* GL_MATRIX19_ARB */ + { 26818, 0x000088D4 }, /* GL_MATRIX20_ARB */ + { 26834, 0x000088D5 }, /* GL_MATRIX21_ARB */ + { 26850, 0x000088D6 }, /* GL_MATRIX22_ARB */ + { 26866, 0x000088D7 }, /* GL_MATRIX23_ARB */ + { 26882, 0x000088D8 }, /* GL_MATRIX24_ARB */ + { 26898, 0x000088D9 }, /* GL_MATRIX25_ARB */ + { 26914, 0x000088DA }, /* GL_MATRIX26_ARB */ + { 26930, 0x000088DB }, /* GL_MATRIX27_ARB */ + { 26946, 0x000088DC }, /* GL_MATRIX28_ARB */ + { 26962, 0x000088DD }, /* GL_MATRIX29_ARB */ + { 26978, 0x000088DE }, /* GL_MATRIX30_ARB */ + { 26994, 0x000088DF }, /* GL_MATRIX31_ARB */ + { 27010, 0x000088E0 }, /* GL_STREAM_DRAW */ + { 27025, 0x000088E1 }, /* GL_STREAM_READ */ + { 27040, 0x000088E2 }, /* GL_STREAM_COPY */ + { 27055, 0x000088E4 }, /* GL_STATIC_DRAW */ + { 27070, 0x000088E5 }, /* GL_STATIC_READ */ + { 27085, 0x000088E6 }, /* GL_STATIC_COPY */ + { 27100, 0x000088E8 }, /* GL_DYNAMIC_DRAW */ + { 27116, 0x000088E9 }, /* GL_DYNAMIC_READ */ + { 27132, 0x000088EA }, /* GL_DYNAMIC_COPY */ + { 27148, 0x000088EB }, /* GL_PIXEL_PACK_BUFFER */ + { 27169, 0x000088EC }, /* GL_PIXEL_UNPACK_BUFFER */ + { 27192, 0x000088ED }, /* GL_PIXEL_PACK_BUFFER_BINDING */ + { 27221, 0x000088EF }, /* GL_PIXEL_UNPACK_BUFFER_BINDING */ + { 27252, 0x000088F0 }, /* GL_DEPTH24_STENCIL8 */ + { 27272, 0x000088F1 }, /* GL_TEXTURE_STENCIL_SIZE */ + { 27296, 0x000088F4 }, /* GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV */ + { 27332, 0x000088F5 }, /* GL_MAX_PROGRAM_CALL_DEPTH_NV */ + { 27361, 0x000088F6 }, /* GL_MAX_PROGRAM_IF_DEPTH_NV */ + { 27388, 0x000088F7 }, /* GL_MAX_PROGRAM_LOOP_DEPTH_NV */ + { 27417, 0x000088F8 }, /* GL_MAX_PROGRAM_LOOP_COUNT_NV */ + { 27446, 0x000088F9 }, /* GL_SRC1_COLOR */ + { 27460, 0x000088FA }, /* GL_ONE_MINUS_SRC1_COLOR */ + { 27484, 0x000088FB }, /* GL_ONE_MINUS_SRC1_ALPHA */ + { 27508, 0x000088FC }, /* GL_MAX_DUAL_SOURCE_DRAW_BUFFERS */ + { 27540, 0x000088FD }, /* GL_VERTEX_ATTRIB_ARRAY_INTEGER */ + { 27571, 0x000088FE }, /* GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB */ + { 27606, 0x000088FF }, /* GL_MAX_ARRAY_TEXTURE_LAYERS */ + { 27634, 0x00008904 }, /* GL_MIN_PROGRAM_TEXEL_OFFSET */ + { 27662, 0x00008905 }, /* GL_MAX_PROGRAM_TEXEL_OFFSET */ + { 27690, 0x00008910 }, /* GL_STENCIL_TEST_TWO_SIDE_EXT */ + { 27719, 0x00008911 }, /* GL_ACTIVE_STENCIL_FACE_EXT */ + { 27746, 0x00008912 }, /* GL_MIRROR_CLAMP_TO_BORDER_EXT */ + { 27776, 0x00008914 }, /* GL_SAMPLES_PASSED */ + { 27794, 0x00008916 }, /* GL_GEOMETRY_VERTICES_OUT */ + { 27819, 0x00008917 }, /* GL_GEOMETRY_INPUT_TYPE */ + { 27842, 0x00008918 }, /* GL_GEOMETRY_OUTPUT_TYPE */ + { 27866, 0x00008919 }, /* GL_SAMPLER_BINDING */ + { 27885, 0x0000891A }, /* GL_CLAMP_VERTEX_COLOR */ + { 27907, 0x0000891B }, /* GL_CLAMP_FRAGMENT_COLOR */ + { 27931, 0x0000891C }, /* GL_CLAMP_READ_COLOR */ + { 27951, 0x0000891D }, /* GL_FIXED_ONLY */ + { 27965, 0x00008920 }, /* GL_FRAGMENT_SHADER_ATI */ + { 27988, 0x00008921 }, /* GL_REG_0_ATI */ + { 28001, 0x00008922 }, /* GL_REG_1_ATI */ + { 28014, 0x00008923 }, /* GL_REG_2_ATI */ + { 28027, 0x00008924 }, /* GL_REG_3_ATI */ + { 28040, 0x00008925 }, /* GL_REG_4_ATI */ + { 28053, 0x00008926 }, /* GL_REG_5_ATI */ + { 28066, 0x00008927 }, /* GL_REG_6_ATI */ + { 28079, 0x00008928 }, /* GL_REG_7_ATI */ + { 28092, 0x00008929 }, /* GL_REG_8_ATI */ + { 28105, 0x0000892A }, /* GL_REG_9_ATI */ + { 28118, 0x0000892B }, /* GL_REG_10_ATI */ + { 28132, 0x0000892C }, /* GL_REG_11_ATI */ + { 28146, 0x0000892D }, /* GL_REG_12_ATI */ + { 28160, 0x0000892E }, /* GL_REG_13_ATI */ + { 28174, 0x0000892F }, /* GL_REG_14_ATI */ + { 28188, 0x00008930 }, /* GL_REG_15_ATI */ + { 28202, 0x00008931 }, /* GL_REG_16_ATI */ + { 28216, 0x00008932 }, /* GL_REG_17_ATI */ + { 28230, 0x00008933 }, /* GL_REG_18_ATI */ + { 28244, 0x00008934 }, /* GL_REG_19_ATI */ + { 28258, 0x00008935 }, /* GL_REG_20_ATI */ + { 28272, 0x00008936 }, /* GL_REG_21_ATI */ + { 28286, 0x00008937 }, /* GL_REG_22_ATI */ + { 28300, 0x00008938 }, /* GL_REG_23_ATI */ + { 28314, 0x00008939 }, /* GL_REG_24_ATI */ + { 28328, 0x0000893A }, /* GL_REG_25_ATI */ + { 28342, 0x0000893B }, /* GL_REG_26_ATI */ + { 28356, 0x0000893C }, /* GL_REG_27_ATI */ + { 28370, 0x0000893D }, /* GL_REG_28_ATI */ + { 28384, 0x0000893E }, /* GL_REG_29_ATI */ + { 28398, 0x0000893F }, /* GL_REG_30_ATI */ + { 28412, 0x00008940 }, /* GL_REG_31_ATI */ + { 28426, 0x00008941 }, /* GL_CON_0_ATI */ + { 28439, 0x00008942 }, /* GL_CON_1_ATI */ + { 28452, 0x00008943 }, /* GL_CON_2_ATI */ + { 28465, 0x00008944 }, /* GL_CON_3_ATI */ + { 28478, 0x00008945 }, /* GL_CON_4_ATI */ + { 28491, 0x00008946 }, /* GL_CON_5_ATI */ + { 28504, 0x00008947 }, /* GL_CON_6_ATI */ + { 28517, 0x00008948 }, /* GL_CON_7_ATI */ + { 28530, 0x00008949 }, /* GL_CON_8_ATI */ + { 28543, 0x0000894A }, /* GL_CON_9_ATI */ + { 28556, 0x0000894B }, /* GL_CON_10_ATI */ + { 28570, 0x0000894C }, /* GL_CON_11_ATI */ + { 28584, 0x0000894D }, /* GL_CON_12_ATI */ + { 28598, 0x0000894E }, /* GL_CON_13_ATI */ + { 28612, 0x0000894F }, /* GL_CON_14_ATI */ + { 28626, 0x00008950 }, /* GL_CON_15_ATI */ + { 28640, 0x00008951 }, /* GL_CON_16_ATI */ + { 28654, 0x00008952 }, /* GL_CON_17_ATI */ + { 28668, 0x00008953 }, /* GL_CON_18_ATI */ + { 28682, 0x00008954 }, /* GL_CON_19_ATI */ + { 28696, 0x00008955 }, /* GL_CON_20_ATI */ + { 28710, 0x00008956 }, /* GL_CON_21_ATI */ + { 28724, 0x00008957 }, /* GL_CON_22_ATI */ + { 28738, 0x00008958 }, /* GL_CON_23_ATI */ + { 28752, 0x00008959 }, /* GL_CON_24_ATI */ + { 28766, 0x0000895A }, /* GL_CON_25_ATI */ + { 28780, 0x0000895B }, /* GL_CON_26_ATI */ + { 28794, 0x0000895C }, /* GL_CON_27_ATI */ + { 28808, 0x0000895D }, /* GL_CON_28_ATI */ + { 28822, 0x0000895E }, /* GL_CON_29_ATI */ + { 28836, 0x0000895F }, /* GL_CON_30_ATI */ + { 28850, 0x00008960 }, /* GL_CON_31_ATI */ + { 28864, 0x00008961 }, /* GL_MOV_ATI */ + { 28875, 0x00008963 }, /* GL_ADD_ATI */ + { 28886, 0x00008964 }, /* GL_MUL_ATI */ + { 28897, 0x00008965 }, /* GL_SUB_ATI */ + { 28908, 0x00008966 }, /* GL_DOT3_ATI */ + { 28920, 0x00008967 }, /* GL_DOT4_ATI */ + { 28932, 0x00008968 }, /* GL_MAD_ATI */ + { 28943, 0x00008969 }, /* GL_LERP_ATI */ + { 28955, 0x0000896A }, /* GL_CND_ATI */ + { 28966, 0x0000896B }, /* GL_CND0_ATI */ + { 28978, 0x0000896C }, /* GL_DOT2_ADD_ATI */ + { 28994, 0x0000896D }, /* GL_SECONDARY_INTERPOLATOR_ATI */ + { 29024, 0x0000896E }, /* GL_NUM_FRAGMENT_REGISTERS_ATI */ + { 29054, 0x0000896F }, /* GL_NUM_FRAGMENT_CONSTANTS_ATI */ + { 29084, 0x00008970 }, /* GL_NUM_PASSES_ATI */ + { 29102, 0x00008971 }, /* GL_NUM_INSTRUCTIONS_PER_PASS_ATI */ + { 29135, 0x00008972 }, /* GL_NUM_INSTRUCTIONS_TOTAL_ATI */ + { 29165, 0x00008973 }, /* GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI */ + { 29206, 0x00008974 }, /* GL_NUM_LOOPBACK_COMPONENTS_ATI */ + { 29237, 0x00008975 }, /* GL_COLOR_ALPHA_PAIRING_ATI */ + { 29264, 0x00008976 }, /* GL_SWIZZLE_STR_ATI */ + { 29283, 0x00008977 }, /* GL_SWIZZLE_STQ_ATI */ + { 29302, 0x00008978 }, /* GL_SWIZZLE_STR_DR_ATI */ + { 29324, 0x00008979 }, /* GL_SWIZZLE_STQ_DQ_ATI */ + { 29346, 0x0000897A }, /* GL_SWIZZLE_STRQ_ATI */ + { 29366, 0x0000897B }, /* GL_SWIZZLE_STRQ_DQ_ATI */ + { 29389, 0x0000898A }, /* GL_POINT_SIZE_ARRAY_TYPE_OES */ + { 29418, 0x0000898B }, /* GL_POINT_SIZE_ARRAY_STRIDE_OES */ + { 29449, 0x0000898C }, /* GL_POINT_SIZE_ARRAY_POINTER_OES */ + { 29481, 0x0000898D }, /* GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES */ + { 29523, 0x0000898E }, /* GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES */ + { 29566, 0x0000898F }, /* GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES */ + { 29606, 0x00008A11 }, /* GL_UNIFORM_BUFFER */ + { 29624, 0x00008A12 }, /* GL_BUFFER_SERIALIZED_MODIFY_APPLE */ + { 29658, 0x00008A13 }, /* GL_BUFFER_FLUSHING_UNMAP_APPLE */ + { 29689, 0x00008A19 }, /* GL_RELEASED_APPLE */ + { 29707, 0x00008A1A }, /* GL_VOLATILE_APPLE */ + { 29725, 0x00008A1B }, /* GL_RETAINED_APPLE */ + { 29743, 0x00008A1C }, /* GL_UNDEFINED_APPLE */ + { 29762, 0x00008A1D }, /* GL_PURGEABLE_APPLE */ + { 29781, 0x00008A28 }, /* GL_UNIFORM_BUFFER_BINDING */ + { 29807, 0x00008A29 }, /* GL_UNIFORM_BUFFER_START */ + { 29831, 0x00008A2A }, /* GL_UNIFORM_BUFFER_SIZE */ + { 29854, 0x00008A2B }, /* GL_MAX_VERTEX_UNIFORM_BLOCKS */ + { 29883, 0x00008A2C }, /* GL_MAX_GEOMETRY_UNIFORM_BLOCKS */ + { 29914, 0x00008A2D }, /* GL_MAX_FRAGMENT_UNIFORM_BLOCKS */ + { 29945, 0x00008A2E }, /* GL_MAX_COMBINED_UNIFORM_BLOCKS */ + { 29976, 0x00008A2F }, /* GL_MAX_UNIFORM_BUFFER_BINDINGS */ + { 30007, 0x00008A30 }, /* GL_MAX_UNIFORM_BLOCK_SIZE */ + { 30033, 0x00008A31 }, /* GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS */ + { 30075, 0x00008A32 }, /* GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS */ + { 30119, 0x00008A33 }, /* GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS */ + { 30163, 0x00008A34 }, /* GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT */ + { 30198, 0x00008A35 }, /* GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH */ + { 30238, 0x00008A36 }, /* GL_ACTIVE_UNIFORM_BLOCKS */ + { 30263, 0x00008A37 }, /* GL_UNIFORM_TYPE */ + { 30279, 0x00008A38 }, /* GL_UNIFORM_SIZE */ + { 30295, 0x00008A39 }, /* GL_UNIFORM_NAME_LENGTH */ + { 30318, 0x00008A3A }, /* GL_UNIFORM_BLOCK_INDEX */ + { 30341, 0x00008A3B }, /* GL_UNIFORM_OFFSET */ + { 30359, 0x00008A3C }, /* GL_UNIFORM_ARRAY_STRIDE */ + { 30383, 0x00008A3D }, /* GL_UNIFORM_MATRIX_STRIDE */ + { 30408, 0x00008A3E }, /* GL_UNIFORM_IS_ROW_MAJOR */ + { 30432, 0x00008A3F }, /* GL_UNIFORM_BLOCK_BINDING */ + { 30457, 0x00008A40 }, /* GL_UNIFORM_BLOCK_DATA_SIZE */ + { 30484, 0x00008A41 }, /* GL_UNIFORM_BLOCK_NAME_LENGTH */ + { 30513, 0x00008A42 }, /* GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS */ + { 30546, 0x00008A43 }, /* GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES */ + { 30586, 0x00008A44 }, /* GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER */ + { 30631, 0x00008A45 }, /* GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER */ + { 30678, 0x00008A46 }, /* GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER */ + { 30725, 0x00008A48 }, /* GL_TEXTURE_SRGB_DECODE_EXT */ + { 30752, 0x00008A49 }, /* GL_DECODE_EXT */ + { 30766, 0x00008A4A }, /* GL_SKIP_DECODE_EXT */ + { 30785, 0x00008B30 }, /* GL_FRAGMENT_SHADER */ + { 30804, 0x00008B31 }, /* GL_VERTEX_SHADER */ + { 30821, 0x00008B40 }, /* GL_PROGRAM_OBJECT_ARB */ + { 30843, 0x00008B48 }, /* GL_SHADER_OBJECT_ARB */ + { 30864, 0x00008B49 }, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS */ + { 30899, 0x00008B4A }, /* GL_MAX_VERTEX_UNIFORM_COMPONENTS */ + { 30932, 0x00008B4B }, /* GL_MAX_VARYING_COMPONENTS */ + { 30958, 0x00008B4C }, /* GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS */ + { 30992, 0x00008B4D }, /* GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS */ + { 31028, 0x00008B4E }, /* GL_OBJECT_TYPE_ARB */ + { 31047, 0x00008B4F }, /* GL_SHADER_TYPE */ + { 31062, 0x00008B50 }, /* GL_FLOAT_VEC2 */ + { 31076, 0x00008B51 }, /* GL_FLOAT_VEC3 */ + { 31090, 0x00008B52 }, /* GL_FLOAT_VEC4 */ + { 31104, 0x00008B53 }, /* GL_INT_VEC2 */ + { 31116, 0x00008B54 }, /* GL_INT_VEC3 */ + { 31128, 0x00008B55 }, /* GL_INT_VEC4 */ + { 31140, 0x00008B56 }, /* GL_BOOL */ + { 31148, 0x00008B57 }, /* GL_BOOL_VEC2 */ + { 31161, 0x00008B58 }, /* GL_BOOL_VEC3 */ + { 31174, 0x00008B59 }, /* GL_BOOL_VEC4 */ + { 31187, 0x00008B5A }, /* GL_FLOAT_MAT2 */ + { 31201, 0x00008B5B }, /* GL_FLOAT_MAT3 */ + { 31215, 0x00008B5C }, /* GL_FLOAT_MAT4 */ + { 31229, 0x00008B5D }, /* GL_SAMPLER_1D */ + { 31243, 0x00008B5E }, /* GL_SAMPLER_2D */ + { 31257, 0x00008B5F }, /* GL_SAMPLER_3D */ + { 31271, 0x00008B60 }, /* GL_SAMPLER_CUBE */ + { 31287, 0x00008B61 }, /* GL_SAMPLER_1D_SHADOW */ + { 31308, 0x00008B62 }, /* GL_SAMPLER_2D_SHADOW */ + { 31329, 0x00008B63 }, /* GL_SAMPLER_2D_RECT */ + { 31348, 0x00008B64 }, /* GL_SAMPLER_2D_RECT_SHADOW */ + { 31374, 0x00008B65 }, /* GL_FLOAT_MAT2x3 */ + { 31390, 0x00008B66 }, /* GL_FLOAT_MAT2x4 */ + { 31406, 0x00008B67 }, /* GL_FLOAT_MAT3x2 */ + { 31422, 0x00008B68 }, /* GL_FLOAT_MAT3x4 */ + { 31438, 0x00008B69 }, /* GL_FLOAT_MAT4x2 */ + { 31454, 0x00008B6A }, /* GL_FLOAT_MAT4x3 */ + { 31470, 0x00008B80 }, /* GL_DELETE_STATUS */ + { 31487, 0x00008B81 }, /* GL_COMPILE_STATUS */ + { 31505, 0x00008B82 }, /* GL_LINK_STATUS */ + { 31520, 0x00008B83 }, /* GL_VALIDATE_STATUS */ + { 31539, 0x00008B84 }, /* GL_INFO_LOG_LENGTH */ + { 31558, 0x00008B85 }, /* GL_ATTACHED_SHADERS */ + { 31578, 0x00008B86 }, /* GL_ACTIVE_UNIFORMS */ + { 31597, 0x00008B87 }, /* GL_ACTIVE_UNIFORM_MAX_LENGTH */ + { 31626, 0x00008B88 }, /* GL_SHADER_SOURCE_LENGTH */ + { 31650, 0x00008B89 }, /* GL_ACTIVE_ATTRIBUTES */ + { 31671, 0x00008B8A }, /* GL_ACTIVE_ATTRIBUTE_MAX_LENGTH */ + { 31702, 0x00008B8B }, /* GL_FRAGMENT_SHADER_DERIVATIVE_HINT */ + { 31737, 0x00008B8C }, /* GL_SHADING_LANGUAGE_VERSION */ + { 31765, 0x00008B8D }, /* GL_CURRENT_PROGRAM */ + { 31784, 0x00008B90 }, /* GL_PALETTE4_RGB8_OES */ + { 31805, 0x00008B91 }, /* GL_PALETTE4_RGBA8_OES */ + { 31827, 0x00008B92 }, /* GL_PALETTE4_R5_G6_B5_OES */ + { 31852, 0x00008B93 }, /* GL_PALETTE4_RGBA4_OES */ + { 31874, 0x00008B94 }, /* GL_PALETTE4_RGB5_A1_OES */ + { 31898, 0x00008B95 }, /* GL_PALETTE8_RGB8_OES */ + { 31919, 0x00008B96 }, /* GL_PALETTE8_RGBA8_OES */ + { 31941, 0x00008B97 }, /* GL_PALETTE8_R5_G6_B5_OES */ + { 31966, 0x00008B98 }, /* GL_PALETTE8_RGBA4_OES */ + { 31988, 0x00008B99 }, /* GL_PALETTE8_RGB5_A1_OES */ + { 32012, 0x00008B9A }, /* GL_IMPLEMENTATION_COLOR_READ_TYPE */ + { 32046, 0x00008B9B }, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT */ + { 32082, 0x00008B9C }, /* GL_POINT_SIZE_ARRAY_OES */ + { 32106, 0x00008B9D }, /* GL_TEXTURE_CROP_RECT_OES */ + { 32131, 0x00008B9E }, /* GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES */ + { 32172, 0x00008B9F }, /* GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES */ + { 32211, 0x00008BC0 }, /* GL_COUNTER_TYPE_AMD */ + { 32231, 0x00008BC1 }, /* GL_COUNTER_RANGE_AMD */ + { 32252, 0x00008BC2 }, /* GL_UNSIGNED_INT64_AMD */ + { 32274, 0x00008BC3 }, /* GL_PECENTAGE_AMD */ + { 32291, 0x00008BC4 }, /* GL_PERFMON_RESULT_AVAILABLE_AMD */ + { 32323, 0x00008BC5 }, /* GL_PERFMON_RESULT_SIZE_AMD */ + { 32350, 0x00008BC6 }, /* GL_PERFMON_RESULT_AMD */ + { 32372, 0x00008C10 }, /* GL_TEXTURE_RED_TYPE */ + { 32392, 0x00008C11 }, /* GL_TEXTURE_GREEN_TYPE */ + { 32414, 0x00008C12 }, /* GL_TEXTURE_BLUE_TYPE */ + { 32435, 0x00008C13 }, /* GL_TEXTURE_ALPHA_TYPE */ + { 32457, 0x00008C14 }, /* GL_TEXTURE_LUMINANCE_TYPE */ + { 32483, 0x00008C15 }, /* GL_TEXTURE_INTENSITY_TYPE */ + { 32509, 0x00008C16 }, /* GL_TEXTURE_DEPTH_TYPE */ + { 32531, 0x00008C17 }, /* GL_UNSIGNED_NORMALIZED */ + { 32554, 0x00008C18 }, /* GL_TEXTURE_1D_ARRAY */ + { 32574, 0x00008C19 }, /* GL_PROXY_TEXTURE_1D_ARRAY */ + { 32600, 0x00008C1A }, /* GL_TEXTURE_2D_ARRAY */ + { 32620, 0x00008C1B }, /* GL_PROXY_TEXTURE_2D_ARRAY */ + { 32646, 0x00008C1C }, /* GL_TEXTURE_BINDING_1D_ARRAY */ + { 32674, 0x00008C1D }, /* GL_TEXTURE_BINDING_2D_ARRAY */ + { 32702, 0x00008C29 }, /* GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS */ + { 32738, 0x00008C2A }, /* GL_TEXTURE_BUFFER */ + { 32756, 0x00008C2B }, /* GL_MAX_TEXTURE_BUFFER_SIZE */ + { 32783, 0x00008C2C }, /* GL_TEXTURE_BINDING_BUFFER */ + { 32809, 0x00008C2D }, /* GL_TEXTURE_BUFFER_DATA_STORE_BINDING */ + { 32846, 0x00008C2E }, /* GL_TEXTURE_BUFFER_FORMAT */ + { 32871, 0x00008C2F }, /* GL_ANY_SAMPLES_PASSED */ + { 32893, 0x00008C36 }, /* GL_SAMPLE_SHADING */ + { 32911, 0x00008C37 }, /* GL_MIN_SAMPLE_SHADING_VALUE */ + { 32939, 0x00008C3A }, /* GL_R11F_G11F_B10F */ + { 32957, 0x00008C3B }, /* GL_UNSIGNED_INT_10F_11F_11F_REV */ + { 32989, 0x00008C3C }, /* GL_RGBA_SIGNED_COMPONENTS_EXT */ + { 33019, 0x00008C3D }, /* GL_RGB9_E5 */ + { 33030, 0x00008C3E }, /* GL_UNSIGNED_INT_5_9_9_9_REV */ + { 33058, 0x00008C3F }, /* GL_TEXTURE_SHARED_SIZE */ + { 33081, 0x00008C40 }, /* GL_SRGB */ + { 33089, 0x00008C41 }, /* GL_SRGB8 */ + { 33098, 0x00008C42 }, /* GL_SRGB_ALPHA */ + { 33112, 0x00008C43 }, /* GL_SRGB8_ALPHA8 */ + { 33128, 0x00008C44 }, /* GL_SLUMINANCE_ALPHA */ + { 33148, 0x00008C45 }, /* GL_SLUMINANCE8_ALPHA8 */ + { 33170, 0x00008C46 }, /* GL_SLUMINANCE */ + { 33184, 0x00008C47 }, /* GL_SLUMINANCE8 */ + { 33199, 0x00008C48 }, /* GL_COMPRESSED_SRGB */ + { 33218, 0x00008C49 }, /* GL_COMPRESSED_SRGB_ALPHA */ + { 33243, 0x00008C4A }, /* GL_COMPRESSED_SLUMINANCE */ + { 33268, 0x00008C4B }, /* GL_COMPRESSED_SLUMINANCE_ALPHA */ + { 33299, 0x00008C76 }, /* GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH */ + { 33340, 0x00008C7F }, /* GL_TRANSFORM_FEEDBACK_BUFFER_MODE */ + { 33374, 0x00008C80 }, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS */ + { 33420, 0x00008C83 }, /* GL_TRANSFORM_FEEDBACK_VARYINGS */ + { 33451, 0x00008C84 }, /* GL_TRANSFORM_FEEDBACK_BUFFER_START */ + { 33486, 0x00008C85 }, /* GL_TRANSFORM_FEEDBACK_BUFFER_SIZE */ + { 33520, 0x00008C87 }, /* GL_PRIMITIVES_GENERATED */ + { 33544, 0x00008C88 }, /* GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN */ + { 33585, 0x00008C89 }, /* GL_RASTERIZER_DISCARD */ + { 33607, 0x00008C8A }, /* GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS */ + { 33656, 0x00008C8B }, /* GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS */ + { 33699, 0x00008C8C }, /* GL_INTERLEAVED_ATTRIBS */ + { 33722, 0x00008C8D }, /* GL_SEPARATE_ATTRIBS */ + { 33742, 0x00008C8E }, /* GL_TRANSFORM_FEEDBACK_BUFFER */ + { 33771, 0x00008C8F }, /* GL_TRANSFORM_FEEDBACK_BUFFER_BINDING */ + { 33808, 0x00008CA0 }, /* GL_POINT_SPRITE_COORD_ORIGIN */ + { 33837, 0x00008CA1 }, /* GL_LOWER_LEFT */ + { 33851, 0x00008CA2 }, /* GL_UPPER_LEFT */ + { 33865, 0x00008CA3 }, /* GL_STENCIL_BACK_REF */ + { 33885, 0x00008CA4 }, /* GL_STENCIL_BACK_VALUE_MASK */ + { 33912, 0x00008CA5 }, /* GL_STENCIL_BACK_WRITEMASK */ + { 33938, 0x00008CA6 }, /* GL_DRAW_FRAMEBUFFER_BINDING */ + { 33966, 0x00008CA7 }, /* GL_RENDERBUFFER_BINDING */ + { 33990, 0x00008CA8 }, /* GL_READ_FRAMEBUFFER */ + { 34010, 0x00008CA9 }, /* GL_DRAW_FRAMEBUFFER */ + { 34030, 0x00008CAA }, /* GL_READ_FRAMEBUFFER_BINDING */ + { 34058, 0x00008CAB }, /* GL_RENDERBUFFER_SAMPLES */ + { 34082, 0x00008CAC }, /* GL_DEPTH_COMPONENT32F */ + { 34104, 0x00008CAD }, /* GL_DEPTH32F_STENCIL8 */ + { 34125, 0x00008CD0 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE */ + { 34163, 0x00008CD1 }, /* GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME */ + { 34201, 0x00008CD2 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL */ + { 34241, 0x00008CD3 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE */ + { 34289, 0x00008CD4 }, /* GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */ + { 34329, 0x00008CD5 }, /* GL_FRAMEBUFFER_COMPLETE */ + { 34353, 0x00008CD6 }, /* GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT */ + { 34390, 0x00008CD7 }, /* GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT */ + { 34435, 0x00008CD8 }, /* GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT */ + { 34486, 0x00008CD9 }, /* GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT */ + { 34527, 0x00008CDA }, /* GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT */ + { 34565, 0x00008CDB }, /* GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER */ + { 34603, 0x00008CDC }, /* GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER */ + { 34641, 0x00008CDD }, /* GL_FRAMEBUFFER_UNSUPPORTED */ + { 34668, 0x00008CDE }, /* GL_FRAMEBUFFER_STATUS_ERROR_EXT */ + { 34700, 0x00008CDF }, /* GL_MAX_COLOR_ATTACHMENTS */ + { 34725, 0x00008CE0 }, /* GL_COLOR_ATTACHMENT0 */ + { 34746, 0x00008CE1 }, /* GL_COLOR_ATTACHMENT1 */ + { 34767, 0x00008CE2 }, /* GL_COLOR_ATTACHMENT2 */ + { 34788, 0x00008CE3 }, /* GL_COLOR_ATTACHMENT3 */ + { 34809, 0x00008CE4 }, /* GL_COLOR_ATTACHMENT4 */ + { 34830, 0x00008CE5 }, /* GL_COLOR_ATTACHMENT5 */ + { 34851, 0x00008CE6 }, /* GL_COLOR_ATTACHMENT6 */ + { 34872, 0x00008CE7 }, /* GL_COLOR_ATTACHMENT7 */ + { 34893, 0x00008CE8 }, /* GL_COLOR_ATTACHMENT8 */ + { 34914, 0x00008CE9 }, /* GL_COLOR_ATTACHMENT9 */ + { 34935, 0x00008CEA }, /* GL_COLOR_ATTACHMENT10 */ + { 34957, 0x00008CEB }, /* GL_COLOR_ATTACHMENT11 */ + { 34979, 0x00008CEC }, /* GL_COLOR_ATTACHMENT12 */ + { 35001, 0x00008CED }, /* GL_COLOR_ATTACHMENT13 */ + { 35023, 0x00008CEE }, /* GL_COLOR_ATTACHMENT14 */ + { 35045, 0x00008CEF }, /* GL_COLOR_ATTACHMENT15 */ + { 35067, 0x00008D00 }, /* GL_DEPTH_ATTACHMENT */ + { 35087, 0x00008D20 }, /* GL_STENCIL_ATTACHMENT */ + { 35109, 0x00008D40 }, /* GL_FRAMEBUFFER */ + { 35124, 0x00008D41 }, /* GL_RENDERBUFFER */ + { 35140, 0x00008D42 }, /* GL_RENDERBUFFER_WIDTH */ + { 35162, 0x00008D43 }, /* GL_RENDERBUFFER_HEIGHT */ + { 35185, 0x00008D44 }, /* GL_RENDERBUFFER_INTERNAL_FORMAT */ + { 35217, 0x00008D45 }, /* GL_STENCIL_INDEX_EXT */ + { 35238, 0x00008D46 }, /* GL_STENCIL_INDEX1 */ + { 35256, 0x00008D47 }, /* GL_STENCIL_INDEX4 */ + { 35274, 0x00008D48 }, /* GL_STENCIL_INDEX8 */ + { 35292, 0x00008D49 }, /* GL_STENCIL_INDEX16 */ + { 35311, 0x00008D50 }, /* GL_RENDERBUFFER_RED_SIZE */ + { 35336, 0x00008D51 }, /* GL_RENDERBUFFER_GREEN_SIZE */ + { 35363, 0x00008D52 }, /* GL_RENDERBUFFER_BLUE_SIZE */ + { 35389, 0x00008D53 }, /* GL_RENDERBUFFER_ALPHA_SIZE */ + { 35416, 0x00008D54 }, /* GL_RENDERBUFFER_DEPTH_SIZE */ + { 35443, 0x00008D55 }, /* GL_RENDERBUFFER_STENCIL_SIZE */ + { 35472, 0x00008D56 }, /* GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE */ + { 35510, 0x00008D57 }, /* GL_MAX_SAMPLES */ + { 35525, 0x00008D60 }, /* GL_TEXTURE_GEN_STR_OES */ + { 35548, 0x00008D61 }, /* GL_HALF_FLOAT_OES */ + { 35566, 0x00008D62 }, /* GL_RGB565 */ + { 35576, 0x00008D64 }, /* GL_ETC1_RGB8_OES */ + { 35593, 0x00008D65 }, /* GL_TEXTURE_EXTERNAL_OES */ + { 35617, 0x00008D66 }, /* GL_SAMPLER_EXTERNAL_OES */ + { 35641, 0x00008D67 }, /* GL_TEXTURE_BINDING_EXTERNAL_OES */ + { 35673, 0x00008D68 }, /* GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES */ + { 35709, 0x00008D69 }, /* GL_PRIMITIVE_RESTART_FIXED_INDEX */ + { 35742, 0x00008D6A }, /* GL_ANY_SAMPLES_PASSED_CONSERVATIVE */ + { 35777, 0x00008D6B }, /* GL_MAX_ELEMENT_INDEX */ + { 35798, 0x00008D70 }, /* GL_RGBA32UI */ + { 35810, 0x00008D71 }, /* GL_RGB32UI */ + { 35821, 0x00008D72 }, /* GL_ALPHA32UI_EXT */ + { 35838, 0x00008D73 }, /* GL_INTENSITY32UI_EXT */ + { 35859, 0x00008D74 }, /* GL_LUMINANCE32UI_EXT */ + { 35880, 0x00008D75 }, /* GL_LUMINANCE_ALPHA32UI_EXT */ + { 35907, 0x00008D76 }, /* GL_RGBA16UI */ + { 35919, 0x00008D77 }, /* GL_RGB16UI */ + { 35930, 0x00008D78 }, /* GL_ALPHA16UI_EXT */ + { 35947, 0x00008D79 }, /* GL_INTENSITY16UI_EXT */ + { 35968, 0x00008D7A }, /* GL_LUMINANCE16UI_EXT */ + { 35989, 0x00008D7B }, /* GL_LUMINANCE_ALPHA16UI_EXT */ + { 36016, 0x00008D7C }, /* GL_RGBA8UI */ + { 36027, 0x00008D7D }, /* GL_RGB8UI */ + { 36037, 0x00008D7E }, /* GL_ALPHA8UI_EXT */ + { 36053, 0x00008D7F }, /* GL_INTENSITY8UI_EXT */ + { 36073, 0x00008D80 }, /* GL_LUMINANCE8UI_EXT */ + { 36093, 0x00008D81 }, /* GL_LUMINANCE_ALPHA8UI_EXT */ + { 36119, 0x00008D82 }, /* GL_RGBA32I */ + { 36130, 0x00008D83 }, /* GL_RGB32I */ + { 36140, 0x00008D84 }, /* GL_ALPHA32I_EXT */ + { 36156, 0x00008D85 }, /* GL_INTENSITY32I_EXT */ + { 36176, 0x00008D86 }, /* GL_LUMINANCE32I_EXT */ + { 36196, 0x00008D87 }, /* GL_LUMINANCE_ALPHA32I_EXT */ + { 36222, 0x00008D88 }, /* GL_RGBA16I */ + { 36233, 0x00008D89 }, /* GL_RGB16I */ + { 36243, 0x00008D8A }, /* GL_ALPHA16I_EXT */ + { 36259, 0x00008D8B }, /* GL_INTENSITY16I_EXT */ + { 36279, 0x00008D8C }, /* GL_LUMINANCE16I_EXT */ + { 36299, 0x00008D8D }, /* GL_LUMINANCE_ALPHA16I_EXT */ + { 36325, 0x00008D8E }, /* GL_RGBA8I */ + { 36335, 0x00008D8F }, /* GL_RGB8I */ + { 36344, 0x00008D90 }, /* GL_ALPHA8I_EXT */ + { 36359, 0x00008D91 }, /* GL_INTENSITY8I_EXT */ + { 36378, 0x00008D92 }, /* GL_LUMINANCE8I_EXT */ + { 36397, 0x00008D93 }, /* GL_LUMINANCE_ALPHA8I_EXT */ + { 36422, 0x00008D94 }, /* GL_RED_INTEGER */ + { 36437, 0x00008D95 }, /* GL_GREEN_INTEGER */ + { 36454, 0x00008D96 }, /* GL_BLUE_INTEGER */ + { 36470, 0x00008D97 }, /* GL_ALPHA_INTEGER_EXT */ + { 36491, 0x00008D98 }, /* GL_RGB_INTEGER */ + { 36506, 0x00008D99 }, /* GL_RGBA_INTEGER */ + { 36522, 0x00008D9A }, /* GL_BGR_INTEGER */ + { 36537, 0x00008D9B }, /* GL_BGRA_INTEGER */ + { 36553, 0x00008D9C }, /* GL_LUMINANCE_INTEGER_EXT */ + { 36578, 0x00008D9D }, /* GL_LUMINANCE_ALPHA_INTEGER_EXT */ + { 36609, 0x00008D9E }, /* GL_RGBA_INTEGER_MODE_EXT */ + { 36634, 0x00008D9F }, /* GL_INT_2_10_10_10_REV */ + { 36656, 0x00008DA7 }, /* GL_FRAMEBUFFER_ATTACHMENT_LAYERED */ + { 36690, 0x00008DA8 }, /* GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS */ + { 36730, 0x00008DA9 }, /* GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB */ + { 36772, 0x00008DAD }, /* GL_FLOAT_32_UNSIGNED_INT_24_8_REV */ + { 36806, 0x00008DB9 }, /* GL_FRAMEBUFFER_SRGB */ + { 36826, 0x00008DBA }, /* GL_FRAMEBUFFER_SRGB_CAPABLE_EXT */ + { 36858, 0x00008DBB }, /* GL_COMPRESSED_RED_RGTC1 */ + { 36882, 0x00008DBC }, /* GL_COMPRESSED_SIGNED_RED_RGTC1 */ + { 36913, 0x00008DBD }, /* GL_COMPRESSED_RG_RGTC2 */ + { 36936, 0x00008DBE }, /* GL_COMPRESSED_SIGNED_RG_RGTC2 */ + { 36966, 0x00008DC0 }, /* GL_SAMPLER_1D_ARRAY */ + { 36986, 0x00008DC1 }, /* GL_SAMPLER_2D_ARRAY */ + { 37006, 0x00008DC2 }, /* GL_SAMPLER_BUFFER */ + { 37024, 0x00008DC3 }, /* GL_SAMPLER_1D_ARRAY_SHADOW */ + { 37051, 0x00008DC4 }, /* GL_SAMPLER_2D_ARRAY_SHADOW */ + { 37078, 0x00008DC5 }, /* GL_SAMPLER_CUBE_SHADOW */ + { 37101, 0x00008DC6 }, /* GL_UNSIGNED_INT_VEC2 */ + { 37122, 0x00008DC7 }, /* GL_UNSIGNED_INT_VEC3 */ + { 37143, 0x00008DC8 }, /* GL_UNSIGNED_INT_VEC4 */ + { 37164, 0x00008DC9 }, /* GL_INT_SAMPLER_1D */ + { 37182, 0x00008DCA }, /* GL_INT_SAMPLER_2D */ + { 37200, 0x00008DCB }, /* GL_INT_SAMPLER_3D */ + { 37218, 0x00008DCC }, /* GL_INT_SAMPLER_CUBE */ + { 37238, 0x00008DCD }, /* GL_INT_SAMPLER_2D_RECT */ + { 37261, 0x00008DCE }, /* GL_INT_SAMPLER_1D_ARRAY */ + { 37285, 0x00008DCF }, /* GL_INT_SAMPLER_2D_ARRAY */ + { 37309, 0x00008DD0 }, /* GL_INT_SAMPLER_BUFFER */ + { 37331, 0x00008DD1 }, /* GL_UNSIGNED_INT_SAMPLER_1D */ + { 37358, 0x00008DD2 }, /* GL_UNSIGNED_INT_SAMPLER_2D */ + { 37385, 0x00008DD3 }, /* GL_UNSIGNED_INT_SAMPLER_3D */ + { 37412, 0x00008DD4 }, /* GL_UNSIGNED_INT_SAMPLER_CUBE */ + { 37441, 0x00008DD5 }, /* GL_UNSIGNED_INT_SAMPLER_2D_RECT */ + { 37473, 0x00008DD6 }, /* GL_UNSIGNED_INT_SAMPLER_1D_ARRAY */ + { 37506, 0x00008DD7 }, /* GL_UNSIGNED_INT_SAMPLER_2D_ARRAY */ + { 37539, 0x00008DD8 }, /* GL_UNSIGNED_INT_SAMPLER_BUFFER */ + { 37570, 0x00008DD9 }, /* GL_GEOMETRY_SHADER */ + { 37589, 0x00008DDA }, /* GL_GEOMETRY_VERTICES_OUT_ARB */ + { 37618, 0x00008DDB }, /* GL_GEOMETRY_INPUT_TYPE_ARB */ + { 37645, 0x00008DDC }, /* GL_GEOMETRY_OUTPUT_TYPE_ARB */ + { 37673, 0x00008DDD }, /* GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB */ + { 37712, 0x00008DDE }, /* GL_MAX_VERTEX_VARYING_COMPONENTS_ARB */ + { 37749, 0x00008DDF }, /* GL_MAX_GEOMETRY_UNIFORM_COMPONENTS */ + { 37784, 0x00008DE0 }, /* GL_MAX_GEOMETRY_OUTPUT_VERTICES */ + { 37816, 0x00008DE1 }, /* GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS */ + { 37856, 0x00008DE5 }, /* GL_ACTIVE_SUBROUTINES */ + { 37878, 0x00008DE6 }, /* GL_ACTIVE_SUBROUTINE_UNIFORMS */ + { 37908, 0x00008DE7 }, /* GL_MAX_SUBROUTINES */ + { 37927, 0x00008DE8 }, /* GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS */ + { 37963, 0x00008DF0 }, /* GL_LOW_FLOAT */ + { 37976, 0x00008DF1 }, /* GL_MEDIUM_FLOAT */ + { 37992, 0x00008DF2 }, /* GL_HIGH_FLOAT */ + { 38006, 0x00008DF3 }, /* GL_LOW_INT */ + { 38017, 0x00008DF4 }, /* GL_MEDIUM_INT */ + { 38031, 0x00008DF5 }, /* GL_HIGH_INT */ + { 38043, 0x00008DF6 }, /* GL_UNSIGNED_INT_10_10_10_2_OES */ + { 38074, 0x00008DF7 }, /* GL_INT_10_10_10_2_OES */ + { 38096, 0x00008DF8 }, /* GL_SHADER_BINARY_FORMATS */ + { 38121, 0x00008DF9 }, /* GL_NUM_SHADER_BINARY_FORMATS */ + { 38150, 0x00008DFA }, /* GL_SHADER_COMPILER */ + { 38169, 0x00008DFB }, /* GL_MAX_VERTEX_UNIFORM_VECTORS */ + { 38199, 0x00008DFC }, /* GL_MAX_VARYING_VECTORS */ + { 38222, 0x00008DFD }, /* GL_MAX_FRAGMENT_UNIFORM_VECTORS */ + { 38254, 0x00008E13 }, /* GL_QUERY_WAIT */ + { 38268, 0x00008E14 }, /* GL_QUERY_NO_WAIT */ + { 38285, 0x00008E15 }, /* GL_QUERY_BY_REGION_WAIT */ + { 38309, 0x00008E16 }, /* GL_QUERY_BY_REGION_NO_WAIT */ + { 38336, 0x00008E17 }, /* GL_QUERY_WAIT_INVERTED */ + { 38359, 0x00008E18 }, /* GL_QUERY_NO_WAIT_INVERTED */ + { 38385, 0x00008E19 }, /* GL_QUERY_BY_REGION_WAIT_INVERTED */ + { 38418, 0x00008E1A }, /* GL_QUERY_BY_REGION_NO_WAIT_INVERTED */ + { 38454, 0x00008E1B }, /* GL_POLYGON_OFFSET_CLAMP_EXT */ + { 38482, 0x00008E1E }, /* GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS */ + { 38530, 0x00008E1F }, /* GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS */ + { 38581, 0x00008E22 }, /* GL_TRANSFORM_FEEDBACK */ + { 38603, 0x00008E23 }, /* GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED */ + { 38639, 0x00008E24 }, /* GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE */ + { 38675, 0x00008E25 }, /* GL_TRANSFORM_FEEDBACK_BINDING */ + { 38705, 0x00008E28 }, /* GL_TIMESTAMP */ + { 38718, 0x00008E42 }, /* GL_TEXTURE_SWIZZLE_R */ + { 38739, 0x00008E43 }, /* GL_TEXTURE_SWIZZLE_G */ + { 38760, 0x00008E44 }, /* GL_TEXTURE_SWIZZLE_B */ + { 38781, 0x00008E45 }, /* GL_TEXTURE_SWIZZLE_A */ + { 38802, 0x00008E46 }, /* GL_TEXTURE_SWIZZLE_RGBA */ + { 38826, 0x00008E47 }, /* GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS */ + { 38865, 0x00008E48 }, /* GL_ACTIVE_SUBROUTINE_MAX_LENGTH */ + { 38897, 0x00008E49 }, /* GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH */ + { 38937, 0x00008E4A }, /* GL_NUM_COMPATIBLE_SUBROUTINES */ + { 38967, 0x00008E4B }, /* GL_COMPATIBLE_SUBROUTINES */ + { 38993, 0x00008E4C }, /* GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION */ + { 39037, 0x00008E4D }, /* GL_FIRST_VERTEX_CONVENTION */ + { 39064, 0x00008E4E }, /* GL_LAST_VERTEX_CONVENTION */ + { 39090, 0x00008E4F }, /* GL_PROVOKING_VERTEX */ + { 39110, 0x00008E50 }, /* GL_SAMPLE_POSITION */ + { 39129, 0x00008E51 }, /* GL_SAMPLE_MASK */ + { 39144, 0x00008E52 }, /* GL_SAMPLE_MASK_VALUE */ + { 39165, 0x00008E59 }, /* GL_MAX_SAMPLE_MASK_WORDS */ + { 39190, 0x00008E5A }, /* GL_MAX_GEOMETRY_SHADER_INVOCATIONS */ + { 39225, 0x00008E5B }, /* GL_MIN_FRAGMENT_INTERPOLATION_OFFSET */ + { 39262, 0x00008E5C }, /* GL_MAX_FRAGMENT_INTERPOLATION_OFFSET */ + { 39299, 0x00008E5D }, /* GL_FRAGMENT_INTERPOLATION_OFFSET_BITS */ + { 39337, 0x00008E5E }, /* GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET */ + { 39374, 0x00008E5F }, /* GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET */ + { 39411, 0x00008E70 }, /* GL_MAX_TRANSFORM_FEEDBACK_BUFFERS */ + { 39445, 0x00008E71 }, /* GL_MAX_VERTEX_STREAMS */ + { 39467, 0x00008E72 }, /* GL_PATCH_VERTICES */ + { 39485, 0x00008E73 }, /* GL_PATCH_DEFAULT_INNER_LEVEL */ + { 39514, 0x00008E74 }, /* GL_PATCH_DEFAULT_OUTER_LEVEL */ + { 39543, 0x00008E75 }, /* GL_TESS_CONTROL_OUTPUT_VERTICES */ + { 39575, 0x00008E76 }, /* GL_TESS_GEN_MODE */ + { 39592, 0x00008E77 }, /* GL_TESS_GEN_SPACING */ + { 39612, 0x00008E78 }, /* GL_TESS_GEN_VERTEX_ORDER */ + { 39637, 0x00008E79 }, /* GL_TESS_GEN_POINT_MODE */ + { 39660, 0x00008E7A }, /* GL_ISOLINES */ + { 39672, 0x00008E7B }, /* GL_FRACTIONAL_ODD */ + { 39690, 0x00008E7C }, /* GL_FRACTIONAL_EVEN */ + { 39709, 0x00008E7D }, /* GL_MAX_PATCH_VERTICES */ + { 39731, 0x00008E7E }, /* GL_MAX_TESS_GEN_LEVEL */ + { 39753, 0x00008E7F }, /* GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS */ + { 39792, 0x00008E80 }, /* GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS */ + { 39834, 0x00008E81 }, /* GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS */ + { 39874, 0x00008E82 }, /* GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS */ + { 39917, 0x00008E83 }, /* GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS */ + { 39955, 0x00008E84 }, /* GL_MAX_TESS_PATCH_COMPONENTS */ + { 39984, 0x00008E85 }, /* GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS */ + { 40028, 0x00008E86 }, /* GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS */ + { 40069, 0x00008E87 }, /* GL_TESS_EVALUATION_SHADER */ + { 40095, 0x00008E88 }, /* GL_TESS_CONTROL_SHADER */ + { 40118, 0x00008E89 }, /* GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS */ + { 40153, 0x00008E8A }, /* GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS */ + { 40191, 0x00008F36 }, /* GL_COPY_READ_BUFFER */ + { 40211, 0x00008F37 }, /* GL_COPY_WRITE_BUFFER */ + { 40232, 0x00008F38 }, /* GL_MAX_IMAGE_UNITS */ + { 40251, 0x00008F39 }, /* GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS */ + { 40300, 0x00008F3A }, /* GL_IMAGE_BINDING_NAME */ + { 40322, 0x00008F3B }, /* GL_IMAGE_BINDING_LEVEL */ + { 40345, 0x00008F3C }, /* GL_IMAGE_BINDING_LAYERED */ + { 40370, 0x00008F3D }, /* GL_IMAGE_BINDING_LAYER */ + { 40393, 0x00008F3E }, /* GL_IMAGE_BINDING_ACCESS */ + { 40417, 0x00008F3F }, /* GL_DRAW_INDIRECT_BUFFER */ + { 40441, 0x00008F43 }, /* GL_DRAW_INDIRECT_BUFFER_BINDING */ + { 40473, 0x00008F46 }, /* GL_DOUBLE_MAT2 */ + { 40488, 0x00008F47 }, /* GL_DOUBLE_MAT3 */ + { 40503, 0x00008F48 }, /* GL_DOUBLE_MAT4 */ + { 40518, 0x00008F49 }, /* GL_DOUBLE_MAT2x3 */ + { 40535, 0x00008F4A }, /* GL_DOUBLE_MAT2x4 */ + { 40552, 0x00008F4B }, /* GL_DOUBLE_MAT3x2 */ + { 40569, 0x00008F4C }, /* GL_DOUBLE_MAT3x4 */ + { 40586, 0x00008F4D }, /* GL_DOUBLE_MAT4x2 */ + { 40603, 0x00008F4E }, /* GL_DOUBLE_MAT4x3 */ + { 40620, 0x00008F90 }, /* GL_RED_SNORM */ + { 40633, 0x00008F91 }, /* GL_RG_SNORM */ + { 40645, 0x00008F92 }, /* GL_RGB_SNORM */ + { 40658, 0x00008F93 }, /* GL_RGBA_SNORM */ + { 40672, 0x00008F94 }, /* GL_R8_SNORM */ + { 40684, 0x00008F95 }, /* GL_RG8_SNORM */ + { 40697, 0x00008F96 }, /* GL_RGB8_SNORM */ + { 40711, 0x00008F97 }, /* GL_RGBA8_SNORM */ + { 40726, 0x00008F98 }, /* GL_R16_SNORM */ + { 40739, 0x00008F99 }, /* GL_RG16_SNORM */ + { 40753, 0x00008F9A }, /* GL_RGB16_SNORM */ + { 40768, 0x00008F9B }, /* GL_RGBA16_SNORM */ + { 40784, 0x00008F9C }, /* GL_SIGNED_NORMALIZED */ + { 40805, 0x00008F9D }, /* GL_PRIMITIVE_RESTART */ + { 40826, 0x00008F9E }, /* GL_PRIMITIVE_RESTART_INDEX */ + { 40853, 0x00008F9F }, /* GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB */ + { 40898, 0x00008FFC }, /* GL_DOUBLE_VEC2 */ + { 40913, 0x00008FFD }, /* GL_DOUBLE_VEC3 */ + { 40928, 0x00008FFE }, /* GL_DOUBLE_VEC4 */ + { 40943, 0x00009009 }, /* GL_TEXTURE_CUBE_MAP_ARRAY_ARB */ + { 40973, 0x0000900A }, /* GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB */ + { 41011, 0x0000900B }, /* GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB */ + { 41047, 0x0000900C }, /* GL_SAMPLER_CUBE_MAP_ARRAY_ARB */ + { 41077, 0x0000900D }, /* GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB */ + { 41114, 0x0000900E }, /* GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB */ + { 41148, 0x0000900F }, /* GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB */ + { 41191, 0x0000904C }, /* GL_IMAGE_1D */ + { 41203, 0x0000904D }, /* GL_IMAGE_2D */ + { 41215, 0x0000904E }, /* GL_IMAGE_3D */ + { 41227, 0x0000904F }, /* GL_IMAGE_2D_RECT */ + { 41244, 0x00009050 }, /* GL_IMAGE_CUBE */ + { 41258, 0x00009051 }, /* GL_IMAGE_BUFFER */ + { 41274, 0x00009052 }, /* GL_IMAGE_1D_ARRAY */ + { 41292, 0x00009053 }, /* GL_IMAGE_2D_ARRAY */ + { 41310, 0x00009054 }, /* GL_IMAGE_CUBE_MAP_ARRAY */ + { 41334, 0x00009055 }, /* GL_IMAGE_2D_MULTISAMPLE */ + { 41358, 0x00009056 }, /* GL_IMAGE_2D_MULTISAMPLE_ARRAY */ + { 41388, 0x00009057 }, /* GL_INT_IMAGE_1D */ + { 41404, 0x00009058 }, /* GL_INT_IMAGE_2D */ + { 41420, 0x00009059 }, /* GL_INT_IMAGE_3D */ + { 41436, 0x0000905A }, /* GL_INT_IMAGE_2D_RECT */ + { 41457, 0x0000905B }, /* GL_INT_IMAGE_CUBE */ + { 41475, 0x0000905C }, /* GL_INT_IMAGE_BUFFER */ + { 41495, 0x0000905D }, /* GL_INT_IMAGE_1D_ARRAY */ + { 41517, 0x0000905E }, /* GL_INT_IMAGE_2D_ARRAY */ + { 41539, 0x0000905F }, /* GL_INT_IMAGE_CUBE_MAP_ARRAY */ + { 41567, 0x00009060 }, /* GL_INT_IMAGE_2D_MULTISAMPLE */ + { 41595, 0x00009061 }, /* GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY */ + { 41629, 0x00009062 }, /* GL_UNSIGNED_INT_IMAGE_1D */ + { 41654, 0x00009063 }, /* GL_UNSIGNED_INT_IMAGE_2D */ + { 41679, 0x00009064 }, /* GL_UNSIGNED_INT_IMAGE_3D */ + { 41704, 0x00009065 }, /* GL_UNSIGNED_INT_IMAGE_2D_RECT */ + { 41734, 0x00009066 }, /* GL_UNSIGNED_INT_IMAGE_CUBE */ + { 41761, 0x00009067 }, /* GL_UNSIGNED_INT_IMAGE_BUFFER */ + { 41790, 0x00009068 }, /* GL_UNSIGNED_INT_IMAGE_1D_ARRAY */ + { 41821, 0x00009069 }, /* GL_UNSIGNED_INT_IMAGE_2D_ARRAY */ + { 41852, 0x0000906A }, /* GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY */ + { 41889, 0x0000906B }, /* GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE */ + { 41926, 0x0000906C }, /* GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY */ + { 41969, 0x0000906D }, /* GL_MAX_IMAGE_SAMPLES */ + { 41990, 0x0000906E }, /* GL_IMAGE_BINDING_FORMAT */ + { 42014, 0x0000906F }, /* GL_RGB10_A2UI */ + { 42028, 0x000090BC }, /* GL_MIN_MAP_BUFFER_ALIGNMENT */ + { 42056, 0x000090C7 }, /* GL_IMAGE_FORMAT_COMPATIBILITY_TYPE */ + { 42091, 0x000090C8 }, /* GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE */ + { 42129, 0x000090C9 }, /* GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS */ + { 42168, 0x000090CA }, /* GL_MAX_VERTEX_IMAGE_UNIFORMS */ + { 42197, 0x000090CB }, /* GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS */ + { 42232, 0x000090CC }, /* GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS */ + { 42270, 0x000090CD }, /* GL_MAX_GEOMETRY_IMAGE_UNIFORMS */ + { 42301, 0x000090CE }, /* GL_MAX_FRAGMENT_IMAGE_UNIFORMS */ + { 42332, 0x000090CF }, /* GL_MAX_COMBINED_IMAGE_UNIFORMS */ + { 42363, 0x000090EA }, /* GL_DEPTH_STENCIL_TEXTURE_MODE */ + { 42393, 0x000090EB }, /* GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS */ + { 42431, 0x000090EC }, /* GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER */ + { 42477, 0x000090ED }, /* GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER */ + { 42531, 0x000090EE }, /* GL_DISPATCH_INDIRECT_BUFFER */ + { 42559, 0x000090EF }, /* GL_DISPATCH_INDIRECT_BUFFER_BINDING */ + { 42595, 0x00009100 }, /* GL_TEXTURE_2D_MULTISAMPLE */ + { 42621, 0x00009101 }, /* GL_PROXY_TEXTURE_2D_MULTISAMPLE */ + { 42653, 0x00009102 }, /* GL_TEXTURE_2D_MULTISAMPLE_ARRAY */ + { 42685, 0x00009103 }, /* GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY */ + { 42723, 0x00009104 }, /* GL_TEXTURE_BINDING_2D_MULTISAMPLE */ + { 42757, 0x00009105 }, /* GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY */ + { 42797, 0x00009106 }, /* GL_TEXTURE_SAMPLES */ + { 42816, 0x00009107 }, /* GL_TEXTURE_FIXED_SAMPLE_LOCATIONS */ + { 42850, 0x00009108 }, /* GL_SAMPLER_2D_MULTISAMPLE */ + { 42876, 0x00009109 }, /* GL_INT_SAMPLER_2D_MULTISAMPLE */ + { 42906, 0x0000910A }, /* GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE */ + { 42945, 0x0000910B }, /* GL_SAMPLER_2D_MULTISAMPLE_ARRAY */ + { 42977, 0x0000910C }, /* GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY */ + { 43013, 0x0000910D }, /* GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY */ + { 43058, 0x0000910E }, /* GL_MAX_COLOR_TEXTURE_SAMPLES */ + { 43087, 0x0000910F }, /* GL_MAX_DEPTH_TEXTURE_SAMPLES */ + { 43116, 0x00009110 }, /* GL_MAX_INTEGER_SAMPLES */ + { 43139, 0x00009111 }, /* GL_MAX_SERVER_WAIT_TIMEOUT */ + { 43166, 0x00009112 }, /* GL_OBJECT_TYPE */ + { 43181, 0x00009113 }, /* GL_SYNC_CONDITION */ + { 43199, 0x00009114 }, /* GL_SYNC_STATUS */ + { 43214, 0x00009115 }, /* GL_SYNC_FLAGS */ + { 43228, 0x00009116 }, /* GL_SYNC_FENCE */ + { 43242, 0x00009117 }, /* GL_SYNC_GPU_COMMANDS_COMPLETE */ + { 43272, 0x00009118 }, /* GL_UNSIGNALED */ + { 43286, 0x00009119 }, /* GL_SIGNALED */ + { 43298, 0x0000911A }, /* GL_ALREADY_SIGNALED */ + { 43318, 0x0000911B }, /* GL_TIMEOUT_EXPIRED */ + { 43337, 0x0000911C }, /* GL_CONDITION_SATISFIED */ + { 43360, 0x0000911D }, /* GL_WAIT_FAILED */ + { 43375, 0x0000911F }, /* GL_BUFFER_ACCESS_FLAGS */ + { 43398, 0x00009120 }, /* GL_BUFFER_MAP_LENGTH */ + { 43419, 0x00009121 }, /* GL_BUFFER_MAP_OFFSET */ + { 43440, 0x00009122 }, /* GL_MAX_VERTEX_OUTPUT_COMPONENTS */ + { 43472, 0x00009123 }, /* GL_MAX_GEOMETRY_INPUT_COMPONENTS */ + { 43505, 0x00009124 }, /* GL_MAX_GEOMETRY_OUTPUT_COMPONENTS */ + { 43539, 0x00009125 }, /* GL_MAX_FRAGMENT_INPUT_COMPONENTS */ + { 43572, 0x00009126 }, /* GL_CONTEXT_PROFILE_MASK */ + { 43596, 0x00009127 }, /* GL_UNPACK_COMPRESSED_BLOCK_WIDTH */ + { 43629, 0x00009128 }, /* GL_UNPACK_COMPRESSED_BLOCK_HEIGHT */ + { 43663, 0x00009129 }, /* GL_UNPACK_COMPRESSED_BLOCK_DEPTH */ + { 43696, 0x0000912A }, /* GL_UNPACK_COMPRESSED_BLOCK_SIZE */ + { 43728, 0x0000912B }, /* GL_PACK_COMPRESSED_BLOCK_WIDTH */ + { 43759, 0x0000912C }, /* GL_PACK_COMPRESSED_BLOCK_HEIGHT */ + { 43791, 0x0000912D }, /* GL_PACK_COMPRESSED_BLOCK_DEPTH */ + { 43822, 0x0000912E }, /* GL_PACK_COMPRESSED_BLOCK_SIZE */ + { 43852, 0x0000912F }, /* GL_TEXTURE_IMMUTABLE_FORMAT */ + { 43880, 0x00009143 }, /* GL_MAX_DEBUG_MESSAGE_LENGTH_ARB */ + { 43912, 0x00009144 }, /* GL_MAX_DEBUG_LOGGED_MESSAGES_ARB */ + { 43945, 0x00009145 }, /* GL_DEBUG_LOGGED_MESSAGES_ARB */ + { 43974, 0x00009146 }, /* GL_DEBUG_SEVERITY_HIGH_ARB */ + { 44001, 0x00009147 }, /* GL_DEBUG_SEVERITY_MEDIUM_ARB */ + { 44030, 0x00009148 }, /* GL_DEBUG_SEVERITY_LOW_ARB */ + { 44056, 0x00009160 }, /* GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD */ + { 44094, 0x0000919D }, /* GL_TEXTURE_BUFFER_OFFSET */ + { 44119, 0x0000919E }, /* GL_TEXTURE_BUFFER_SIZE */ + { 44142, 0x0000919F }, /* GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT */ + { 44177, 0x000091B9 }, /* GL_COMPUTE_SHADER */ + { 44195, 0x000091BB }, /* GL_MAX_COMPUTE_UNIFORM_BLOCKS */ + { 44225, 0x000091BC }, /* GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS */ + { 44260, 0x000091BD }, /* GL_MAX_COMPUTE_IMAGE_UNIFORMS */ + { 44290, 0x000091BE }, /* GL_MAX_COMPUTE_WORK_GROUP_COUNT */ + { 44322, 0x000091BF }, /* GL_MAX_COMPUTE_WORK_GROUP_SIZE */ + { 44353, 0x00009270 }, /* GL_COMPRESSED_R11_EAC */ + { 44375, 0x00009271 }, /* GL_COMPRESSED_SIGNED_R11_EAC */ + { 44404, 0x00009272 }, /* GL_COMPRESSED_RG11_EAC */ + { 44427, 0x00009273 }, /* GL_COMPRESSED_SIGNED_RG11_EAC */ + { 44457, 0x00009274 }, /* GL_COMPRESSED_RGB8_ETC2 */ + { 44481, 0x00009275 }, /* GL_COMPRESSED_SRGB8_ETC2 */ + { 44506, 0x00009276 }, /* GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 */ + { 44550, 0x00009277 }, /* GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 */ + { 44595, 0x00009278 }, /* GL_COMPRESSED_RGBA8_ETC2_EAC */ + { 44624, 0x00009279 }, /* GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC */ + { 44660, 0x000092C0 }, /* GL_ATOMIC_COUNTER_BUFFER */ + { 44685, 0x000092C1 }, /* GL_ATOMIC_COUNTER_BUFFER_BINDING */ + { 44718, 0x000092C2 }, /* GL_ATOMIC_COUNTER_BUFFER_START */ + { 44749, 0x000092C3 }, /* GL_ATOMIC_COUNTER_BUFFER_SIZE */ + { 44779, 0x000092C4 }, /* GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE */ + { 44814, 0x000092C5 }, /* GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS */ + { 44862, 0x000092C6 }, /* GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES */ + { 44917, 0x000092C7 }, /* GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER */ + { 44970, 0x000092C8 }, /* GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER */ + { 45029, 0x000092C9 }, /* GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER */ + { 45091, 0x000092CA }, /* GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER */ + { 45146, 0x000092CB }, /* GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER */ + { 45201, 0x000092CC }, /* GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS */ + { 45238, 0x000092CD }, /* GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS */ + { 45281, 0x000092CE }, /* GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS */ + { 45327, 0x000092CF }, /* GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS */ + { 45366, 0x000092D0 }, /* GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS */ + { 45405, 0x000092D1 }, /* GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS */ + { 45444, 0x000092D2 }, /* GL_MAX_VERTEX_ATOMIC_COUNTERS */ + { 45474, 0x000092D3 }, /* GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS */ + { 45510, 0x000092D4 }, /* GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS */ + { 45549, 0x000092D5 }, /* GL_MAX_GEOMETRY_ATOMIC_COUNTERS */ + { 45581, 0x000092D6 }, /* GL_MAX_FRAGMENT_ATOMIC_COUNTERS */ + { 45613, 0x000092D7 }, /* GL_MAX_COMBINED_ATOMIC_COUNTERS */ + { 45645, 0x000092D8 }, /* GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE */ + { 45679, 0x000092D9 }, /* GL_ACTIVE_ATOMIC_COUNTER_BUFFERS */ + { 45712, 0x000092DA }, /* GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX */ + { 45751, 0x000092DB }, /* GL_UNSIGNED_INT_ATOMIC_COUNTER */ + { 45782, 0x000092DC }, /* GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS */ + { 45820, 0x000092E0 }, /* GL_DEBUG_OUTPUT */ + { 45836, 0x000092E1 }, /* GL_UNIFORM */ + { 45847, 0x000092E2 }, /* GL_UNIFORM_BLOCK */ + { 45864, 0x000092E3 }, /* GL_PROGRAM_INPUT */ + { 45881, 0x000092E4 }, /* GL_PROGRAM_OUTPUT */ + { 45899, 0x000092E5 }, /* GL_BUFFER_VARIABLE */ + { 45918, 0x000092E6 }, /* GL_SHADER_STORAGE_BLOCK */ + { 45942, 0x000092E7 }, /* GL_IS_PER_PATCH */ + { 45958, 0x000092E8 }, /* GL_VERTEX_SUBROUTINE */ + { 45979, 0x000092E9 }, /* GL_TESS_CONTROL_SUBROUTINE */ + { 46006, 0x000092EA }, /* GL_TESS_EVALUATION_SUBROUTINE */ + { 46036, 0x000092EB }, /* GL_GEOMETRY_SUBROUTINE */ + { 46059, 0x000092EC }, /* GL_FRAGMENT_SUBROUTINE */ + { 46082, 0x000092ED }, /* GL_COMPUTE_SUBROUTINE */ + { 46104, 0x000092EE }, /* GL_VERTEX_SUBROUTINE_UNIFORM */ + { 46133, 0x000092EF }, /* GL_TESS_CONTROL_SUBROUTINE_UNIFORM */ + { 46168, 0x000092F0 }, /* GL_TESS_EVALUATION_SUBROUTINE_UNIFORM */ + { 46206, 0x000092F1 }, /* GL_GEOMETRY_SUBROUTINE_UNIFORM */ + { 46237, 0x000092F2 }, /* GL_FRAGMENT_SUBROUTINE_UNIFORM */ + { 46268, 0x000092F3 }, /* GL_COMPUTE_SUBROUTINE_UNIFORM */ + { 46298, 0x000092F4 }, /* GL_TRANSFORM_FEEDBACK_VARYING */ + { 46328, 0x000092F5 }, /* GL_ACTIVE_RESOURCES */ + { 46348, 0x000092F6 }, /* GL_MAX_NAME_LENGTH */ + { 46367, 0x000092F7 }, /* GL_MAX_NUM_ACTIVE_VARIABLES */ + { 46395, 0x000092F8 }, /* GL_MAX_NUM_COMPATIBLE_SUBROUTINES */ + { 46429, 0x000092F9 }, /* GL_NAME_LENGTH */ + { 46444, 0x000092FA }, /* GL_TYPE */ + { 46452, 0x000092FB }, /* GL_ARRAY_SIZE */ + { 46466, 0x000092FC }, /* GL_OFFSET */ + { 46476, 0x000092FD }, /* GL_BLOCK_INDEX */ + { 46491, 0x000092FE }, /* GL_ARRAY_STRIDE */ + { 46507, 0x000092FF }, /* GL_MATRIX_STRIDE */ + { 46524, 0x00009300 }, /* GL_IS_ROW_MAJOR */ + { 46540, 0x00009301 }, /* GL_ATOMIC_COUNTER_BUFFER_INDEX */ + { 46571, 0x00009302 }, /* GL_BUFFER_BINDING */ + { 46589, 0x00009303 }, /* GL_BUFFER_DATA_SIZE */ + { 46609, 0x00009304 }, /* GL_NUM_ACTIVE_VARIABLES */ + { 46633, 0x00009305 }, /* GL_ACTIVE_VARIABLES */ + { 46653, 0x00009306 }, /* GL_REFERENCED_BY_VERTEX_SHADER */ + { 46684, 0x00009307 }, /* GL_REFERENCED_BY_TESS_CONTROL_SHADER */ + { 46721, 0x00009308 }, /* GL_REFERENCED_BY_TESS_EVALUATION_SHADER */ + { 46761, 0x00009309 }, /* GL_REFERENCED_BY_GEOMETRY_SHADER */ + { 46794, 0x0000930A }, /* GL_REFERENCED_BY_FRAGMENT_SHADER */ + { 46827, 0x0000930B }, /* GL_REFERENCED_BY_COMPUTE_SHADER */ + { 46859, 0x0000930C }, /* GL_TOP_LEVEL_ARRAY_SIZE */ + { 46883, 0x0000930D }, /* GL_TOP_LEVEL_ARRAY_STRIDE */ + { 46909, 0x0000930E }, /* GL_LOCATION */ + { 46921, 0x0000930F }, /* GL_LOCATION_INDEX */ + { 46939, 0x00009310 }, /* GL_FRAMEBUFFER_DEFAULT_WIDTH */ + { 46968, 0x00009311 }, /* GL_FRAMEBUFFER_DEFAULT_HEIGHT */ + { 46998, 0x00009312 }, /* GL_FRAMEBUFFER_DEFAULT_LAYERS */ + { 47028, 0x00009313 }, /* GL_FRAMEBUFFER_DEFAULT_SAMPLES */ + { 47059, 0x00009314 }, /* GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS */ + { 47105, 0x00009315 }, /* GL_MAX_FRAMEBUFFER_WIDTH */ + { 47130, 0x00009316 }, /* GL_MAX_FRAMEBUFFER_HEIGHT */ + { 47156, 0x00009317 }, /* GL_MAX_FRAMEBUFFER_LAYERS */ + { 47182, 0x00009318 }, /* GL_MAX_FRAMEBUFFER_SAMPLES */ + { 47209, 0x0000935C }, /* GL_CLIP_ORIGIN */ + { 47224, 0x0000935D }, /* GL_CLIP_DEPTH_MODE */ + { 47243, 0x0000935E }, /* GL_NEGATIVE_ONE_TO_ONE */ + { 47266, 0x0000935F }, /* GL_ZERO_TO_ONE */ + { 47281, 0x00009365 }, /* GL_CLEAR_TEXTURE */ + { 47298, 0x00009380 }, /* GL_NUM_SAMPLE_COUNTS */ + { 47319, 0x000094F0 }, /* GL_PERFQUERY_COUNTER_EVENT_INTEL */ + { 47352, 0x000094F1 }, /* GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL */ + { 47393, 0x000094F2 }, /* GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL */ + { 47433, 0x000094F3 }, /* GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL */ + { 47471, 0x000094F4 }, /* GL_PERFQUERY_COUNTER_RAW_INTEL */ + { 47502, 0x000094F5 }, /* GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL */ + { 47539, 0x000094F8 }, /* GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL */ + { 47578, 0x000094F9 }, /* GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL */ + { 47617, 0x000094FA }, /* GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL */ + { 47655, 0x000094FB }, /* GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL */ + { 47694, 0x000094FC }, /* GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL */ + { 47733, 0x000094FD }, /* GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL */ + { 47774, 0x000094FE }, /* GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL */ + { 47817, 0x000094FF }, /* GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL */ + { 47860, 0x00009500 }, /* GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL */ + { 47901, 0x00010000 }, /* GL_EVAL_BIT */ + { 47913, 0x00019262 }, /* GL_RASTER_POSITION_UNCLIPPED_IBM */ + { 47946, 0x00020000 }, /* GL_LIST_BIT */ + { 47958, 0x00040000 }, /* GL_TEXTURE_BIT */ + { 47973, 0x00080000 }, /* GL_SCISSOR_BIT */ + { 47988, 0x000FFFFF }, /* GL_ALL_ATTRIB_BITS */ + { 48007, 0x20000000 }, /* GL_MULTISAMPLE_BIT */ + { 48026, 0xFFFFFFFF }, /* GL_ALL_CLIENT_ATTRIB_BITS */ }; @@ -7377,15 +4373,12 @@ static int compar_nr( const int *a, enum_elt *b ) static char token_tmp[20]; -/** - * This function always returns a string. If the number is a valid enum, it - * returns the enum name. Otherwise, it returns a numeric string. - */ -const char * -_mesa_enum_to_string(int nr) +const char *_mesa_enum_to_string( int nr ) { enum_elt *elt; + STATIC_ASSERT(sizeof(enum_string_table) < (1 << 16)); + elt = bsearch(& nr, enum_string_table_offsets, ARRAY_SIZE(enum_string_table_offsets), sizeof(enum_string_table_offsets[0]), diff --git a/lib/mesa/src/mesa/main/fbobject.h b/lib/mesa/src/mesa/main/fbobject.h index 6e10c1874..8dad0ff34 100644 --- a/lib/mesa/src/mesa/main/fbobject.h +++ b/lib/mesa/src/mesa/main/fbobject.h @@ -91,12 +91,8 @@ extern void _mesa_framebuffer_renderbuffer(struct gl_context *ctx, struct gl_framebuffer *fb, GLenum attachment, - struct gl_renderbuffer *rb); - -extern void -_mesa_renderbuffer_storage(struct gl_context *ctx, struct gl_renderbuffer *rb, - GLenum internalFormat, GLsizei width, - GLsizei height, GLsizei samples); + struct gl_renderbuffer *rb, + const char *func); extern void _mesa_validate_framebuffer(struct gl_context *ctx, struct gl_framebuffer *fb); @@ -119,26 +115,23 @@ _mesa_detach_renderbuffer(struct gl_context *ctx, struct gl_framebuffer *fb, const void *att); -extern struct gl_renderbuffer_attachment * -_mesa_get_and_validate_attachment(struct gl_context *ctx, - struct gl_framebuffer *fb, - GLenum attachment, const char *caller); - extern void _mesa_framebuffer_texture(struct gl_context *ctx, struct gl_framebuffer *fb, GLenum attachment, - struct gl_renderbuffer_attachment *att, struct gl_texture_object *texObj, GLenum textarget, - GLint level, GLuint layer, GLboolean layered); + GLint level, GLuint layer, GLboolean layered, + const char *caller); extern GLenum _mesa_check_framebuffer_status(struct gl_context *ctx, struct gl_framebuffer *fb); extern void -_mesa_bind_framebuffers(struct gl_context *ctx, - struct gl_framebuffer *newDrawFb, - struct gl_framebuffer *newReadFb); +_mesa_get_framebuffer_attachment_parameter(struct gl_context *ctx, + struct gl_framebuffer *buffer, + GLenum attachment, GLenum pname, + GLint *params, const char *caller); + extern GLboolean GLAPIENTRY _mesa_IsRenderbuffer(GLuint renderbuffer); @@ -152,15 +145,9 @@ _mesa_BindRenderbufferEXT(GLenum target, GLuint renderbuffer); extern void GLAPIENTRY _mesa_DeleteRenderbuffers(GLsizei n, const GLuint *renderbuffers); -void GLAPIENTRY -_mesa_GenRenderbuffers_no_error(GLsizei n, GLuint *renderbuffers); - extern void GLAPIENTRY _mesa_GenRenderbuffers(GLsizei n, GLuint *renderbuffers); -void GLAPIENTRY -_mesa_CreateRenderbuffers_no_error(GLsizei n, GLuint *renderbuffers); - extern void GLAPIENTRY _mesa_CreateRenderbuffers(GLsizei n, GLuint *renderbuffers); @@ -215,9 +202,6 @@ _mesa_GenFramebuffers(GLsizei n, GLuint *framebuffers); extern void GLAPIENTRY _mesa_CreateFramebuffers(GLsizei n, GLuint *framebuffers); -GLenum GLAPIENTRY -_mesa_CheckFramebufferStatus_no_error(GLenum target); - extern GLenum GLAPIENTRY _mesa_CheckFramebufferStatus(GLenum target); @@ -225,58 +209,31 @@ extern GLenum GLAPIENTRY _mesa_CheckNamedFramebufferStatus(GLuint framebuffer, GLenum target); extern void GLAPIENTRY -_mesa_FramebufferTexture1D_no_error(GLenum target, GLenum attachment, - GLenum textarget, GLuint texture, - GLint level); -extern void GLAPIENTRY _mesa_FramebufferTexture1D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); extern void GLAPIENTRY -_mesa_FramebufferTexture2D_no_error(GLenum target, GLenum attachment, - GLenum textarget, GLuint texture, - GLint level); -extern void GLAPIENTRY _mesa_FramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); extern void GLAPIENTRY -_mesa_FramebufferTexture3D_no_error(GLenum target, GLenum attachment, - GLenum textarget, GLuint texture, - GLint level, GLint layer); -extern void GLAPIENTRY _mesa_FramebufferTexture3D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint layer); extern void GLAPIENTRY -_mesa_FramebufferTextureLayer_no_error(GLenum target, GLenum attachment, - GLuint texture, GLint level, - GLint layer); -extern void GLAPIENTRY _mesa_FramebufferTextureLayer(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); extern void GLAPIENTRY -_mesa_NamedFramebufferTextureLayer_no_error(GLuint framebuffer, - GLenum attachment, - GLuint texture, GLint level, - GLint layer); -extern void GLAPIENTRY _mesa_NamedFramebufferTextureLayer(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); extern void GLAPIENTRY -_mesa_FramebufferTexture_no_error(GLenum target, GLenum attachment, - GLuint texture, GLint level); -extern void GLAPIENTRY _mesa_FramebufferTexture(GLenum target, GLenum attachment, GLuint texture, GLint level); extern void GLAPIENTRY -_mesa_NamedFramebufferTexture_no_error(GLuint framebuffer, GLenum attachment, - GLuint texture, GLint level); -extern void GLAPIENTRY _mesa_NamedFramebufferTexture(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); diff --git a/lib/mesa/src/mesa/main/format_info.h b/lib/mesa/src/mesa/main/format_info.h index 5160764ef..55ba733fc 100644 --- a/lib/mesa/src/mesa/main/format_info.h +++ b/lib/mesa/src/mesa/main/format_info.h @@ -28,3787 +28,2671 @@ * manually or commit it into version control. */ -static const struct gl_format_info format_info[MESA_FORMAT_COUNT] = +static struct gl_format_info format_info[MESA_FORMAT_COUNT] = { { - .Name = MESA_FORMAT_NONE, - .StrName = "MESA_FORMAT_NONE", - .Layout = MESA_FORMAT_LAYOUT_OTHER, - .BaseFormat = GL_NONE, - .DataType = GL_NONE, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 1, - .Swizzle = { 4, 4, 4, 5 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_A8B8G8R8_UNORM, - .StrName = "MESA_FORMAT_A8B8G8R8_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 3, 2, 1, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 1, 4, 3, 2, 1, 0), - }, - { - .Name = MESA_FORMAT_X8B8G8R8_UNORM, - .StrName = "MESA_FORMAT_X8B8G8R8_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 3, 2, 1, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 1, 4, 3, 2, 1, 5), - }, - { - .Name = MESA_FORMAT_R8G8B8A8_UNORM, - .StrName = "MESA_FORMAT_R8G8B8A8_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 1, 4, 0, 1, 2, 3), - }, - { - .Name = MESA_FORMAT_R8G8B8X8_UNORM, - .StrName = "MESA_FORMAT_R8G8B8X8_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 1, 4, 0, 1, 2, 5), - }, - { - .Name = MESA_FORMAT_B8G8R8A8_UNORM, - .StrName = "MESA_FORMAT_B8G8R8A8_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 2, 1, 0, 3 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 1, 4, 2, 1, 0, 3), - }, - { - .Name = MESA_FORMAT_B8G8R8X8_UNORM, - .StrName = "MESA_FORMAT_B8G8R8X8_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 2, 1, 0, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 1, 4, 2, 1, 0, 5), - }, - { - .Name = MESA_FORMAT_A8R8G8B8_UNORM, - .StrName = "MESA_FORMAT_A8R8G8B8_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 1, 2, 3, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 1, 4, 1, 2, 3, 0), - }, - { - .Name = MESA_FORMAT_X8R8G8B8_UNORM, - .StrName = "MESA_FORMAT_X8R8G8B8_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 1, 2, 3, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 1, 4, 1, 2, 3, 5), - }, - { - .Name = MESA_FORMAT_L16A16_UNORM, - .StrName = "MESA_FORMAT_L16A16_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_LUMINANCE_ALPHA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 16, - .LuminanceBits = 16, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 0, 0, 1 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 0, 0, 1, 2, 0, 0, 0, 1), - }, - { - .Name = MESA_FORMAT_A16L16_UNORM, - .StrName = "MESA_FORMAT_A16L16_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_LUMINANCE_ALPHA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 16, - .LuminanceBits = 16, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 1, 1, 1, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 0, 0, 1, 2, 1, 1, 1, 0), - }, - { - .Name = MESA_FORMAT_B5G6R5_UNORM, - .StrName = "MESA_FORMAT_B5G6R5_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 5, .GreenBits = 6, .BlueBits = 5, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 2, 1, 0, 5 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_R5G6B5_UNORM, - .StrName = "MESA_FORMAT_R5G6B5_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 5, .GreenBits = 6, .BlueBits = 5, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_B4G4R4A4_UNORM, - .StrName = "MESA_FORMAT_B4G4R4A4_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 4, .GreenBits = 4, .BlueBits = 4, .AlphaBits = 4, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 2, 1, 0, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_B4G4R4X4_UNORM, - .StrName = "MESA_FORMAT_B4G4R4X4_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 4, .GreenBits = 4, .BlueBits = 4, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 2, 1, 0, 5 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_A4R4G4B4_UNORM, - .StrName = "MESA_FORMAT_A4R4G4B4_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 4, .GreenBits = 4, .BlueBits = 4, .AlphaBits = 4, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 1, 2, 3, 0 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_A1B5G5R5_UNORM, - .StrName = "MESA_FORMAT_A1B5G5R5_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 5, .GreenBits = 5, .BlueBits = 5, .AlphaBits = 1, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 3, 2, 1, 0 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_B5G5R5A1_UNORM, - .StrName = "MESA_FORMAT_B5G5R5A1_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 5, .GreenBits = 5, .BlueBits = 5, .AlphaBits = 1, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 2, 1, 0, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_B5G5R5X1_UNORM, - .StrName = "MESA_FORMAT_B5G5R5X1_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 5, .GreenBits = 5, .BlueBits = 5, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 2, 1, 0, 5 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_A1R5G5B5_UNORM, - .StrName = "MESA_FORMAT_A1R5G5B5_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 5, .GreenBits = 5, .BlueBits = 5, .AlphaBits = 1, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 1, 2, 3, 0 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_L8A8_UNORM, - .StrName = "MESA_FORMAT_L8A8_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_LUMINANCE_ALPHA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 8, - .LuminanceBits = 8, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 0, 0, 0, 1 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 1, 2, 0, 0, 0, 1), - }, - { - .Name = MESA_FORMAT_A8L8_UNORM, - .StrName = "MESA_FORMAT_A8L8_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_LUMINANCE_ALPHA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 8, - .LuminanceBits = 8, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 1, 1, 1, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 1, 2, 1, 1, 1, 0), - }, - { - .Name = MESA_FORMAT_R8G8_UNORM, - .StrName = "MESA_FORMAT_R8G8_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RG, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 0, 1, 4, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 1, 2, 0, 1, 4, 5), - }, - { - .Name = MESA_FORMAT_G8R8_UNORM, - .StrName = "MESA_FORMAT_G8R8_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RG, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 1, 0, 4, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 1, 2, 1, 0, 4, 5), - }, - { - .Name = MESA_FORMAT_L4A4_UNORM, - .StrName = "MESA_FORMAT_L4A4_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_LUMINANCE_ALPHA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 4, - .LuminanceBits = 4, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 1, - .Swizzle = { 0, 0, 0, 1 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_B2G3R3_UNORM, - .StrName = "MESA_FORMAT_B2G3R3_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 3, .GreenBits = 3, .BlueBits = 2, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 1, - .Swizzle = { 2, 1, 0, 5 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_R16G16_UNORM, - .StrName = "MESA_FORMAT_R16G16_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RG, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 16, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 1, 4, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 0, 0, 1, 2, 0, 1, 4, 5), - }, - { - .Name = MESA_FORMAT_G16R16_UNORM, - .StrName = "MESA_FORMAT_G16R16_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RG, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 16, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 1, 0, 4, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 0, 0, 1, 2, 1, 0, 4, 5), - }, - { - .Name = MESA_FORMAT_B10G10R10A2_UNORM, - .StrName = "MESA_FORMAT_B10G10R10A2_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 10, .GreenBits = 10, .BlueBits = 10, .AlphaBits = 2, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 2, 1, 0, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_B10G10R10X2_UNORM, - .StrName = "MESA_FORMAT_B10G10R10X2_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 10, .GreenBits = 10, .BlueBits = 10, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 2, 1, 0, 5 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_R10G10B10A2_UNORM, - .StrName = "MESA_FORMAT_R10G10B10A2_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 10, .GreenBits = 10, .BlueBits = 10, .AlphaBits = 2, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_R10G10B10X2_UNORM, - .StrName = "MESA_FORMAT_R10G10B10X2_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 10, .GreenBits = 10, .BlueBits = 10, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_S8_UINT_Z24_UNORM, - .StrName = "MESA_FORMAT_S8_UINT_Z24_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_DEPTH_STENCIL, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 24, .StencilBits = 8, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 1, 6, 6 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_X8_UINT_Z24_UNORM, - .StrName = "MESA_FORMAT_X8_UINT_Z24_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_DEPTH_COMPONENT, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 24, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 6, 6, 6 }, - .ArrayFormat = MESA_ARRAY_FORMAT(3, 0, 0, 1, 2, 0, 6, 6, 6), - }, - { - .Name = MESA_FORMAT_Z24_UNORM_S8_UINT, - .StrName = "MESA_FORMAT_Z24_UNORM_S8_UINT", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_DEPTH_STENCIL, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 24, .StencilBits = 8, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 1, 0, 6, 6 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_Z24_UNORM_X8_UINT, - .StrName = "MESA_FORMAT_Z24_UNORM_X8_UINT", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_DEPTH_COMPONENT, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 24, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 1, 6, 6, 6 }, - .ArrayFormat = MESA_ARRAY_FORMAT(3, 0, 0, 1, 2, 1, 6, 6, 6), - }, - { - .Name = MESA_FORMAT_R3G3B2_UNORM, - .StrName = "MESA_FORMAT_R3G3B2_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 3, .GreenBits = 3, .BlueBits = 2, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 1, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_A4B4G4R4_UNORM, - .StrName = "MESA_FORMAT_A4B4G4R4_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 4, .GreenBits = 4, .BlueBits = 4, .AlphaBits = 4, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 3, 2, 1, 0 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_R4G4B4A4_UNORM, - .StrName = "MESA_FORMAT_R4G4B4A4_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 4, .GreenBits = 4, .BlueBits = 4, .AlphaBits = 4, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_R5G5B5A1_UNORM, - .StrName = "MESA_FORMAT_R5G5B5A1_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 5, .GreenBits = 5, .BlueBits = 5, .AlphaBits = 1, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_A2B10G10R10_UNORM, - .StrName = "MESA_FORMAT_A2B10G10R10_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 10, .GreenBits = 10, .BlueBits = 10, .AlphaBits = 2, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 3, 2, 1, 0 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_A2R10G10B10_UNORM, - .StrName = "MESA_FORMAT_A2R10G10B10_UNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 10, .GreenBits = 10, .BlueBits = 10, .AlphaBits = 2, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 1, 2, 3, 0 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_YCBCR, - .StrName = "MESA_FORMAT_YCBCR", - .Layout = MESA_FORMAT_LAYOUT_OTHER, - .BaseFormat = GL_YCBCR_MESA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_YCBCR_REV, - .StrName = "MESA_FORMAT_YCBCR_REV", - .Layout = MESA_FORMAT_LAYOUT_OTHER, - .BaseFormat = GL_YCBCR_MESA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_A_UNORM8, - .StrName = "MESA_FORMAT_A_UNORM8", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_ALPHA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 1, - .Swizzle = { 4, 4, 4, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 1, 1, 4, 4, 4, 0), - }, - { - .Name = MESA_FORMAT_A_UNORM16, - .StrName = "MESA_FORMAT_A_UNORM16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_ALPHA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 16, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 4, 4, 4, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 0, 0, 1, 1, 4, 4, 4, 0), - }, - { - .Name = MESA_FORMAT_L_UNORM8, - .StrName = "MESA_FORMAT_L_UNORM8", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_LUMINANCE, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 8, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 1, - .Swizzle = { 0, 0, 0, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 1, 1, 0, 0, 0, 5), - }, - { - .Name = MESA_FORMAT_L_UNORM16, - .StrName = "MESA_FORMAT_L_UNORM16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_LUMINANCE, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 16, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 0, 0, 0, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 0, 0, 1, 1, 0, 0, 0, 5), - }, - { - .Name = MESA_FORMAT_I_UNORM8, - .StrName = "MESA_FORMAT_I_UNORM8", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_INTENSITY, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 8, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 1, - .Swizzle = { 0, 0, 0, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 1, 1, 0, 0, 0, 0), - }, - { - .Name = MESA_FORMAT_I_UNORM16, - .StrName = "MESA_FORMAT_I_UNORM16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_INTENSITY, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 16, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 0, 0, 0, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 0, 0, 1, 1, 0, 0, 0, 0), - }, - { - .Name = MESA_FORMAT_R_UNORM8, - .StrName = "MESA_FORMAT_R_UNORM8", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RED, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 1, - .Swizzle = { 0, 4, 4, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 1, 1, 0, 4, 4, 5), - }, - { - .Name = MESA_FORMAT_R_UNORM16, - .StrName = "MESA_FORMAT_R_UNORM16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RED, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 0, 4, 4, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 0, 0, 1, 1, 0, 4, 4, 5), - }, - { - .Name = MESA_FORMAT_BGR_UNORM8, - .StrName = "MESA_FORMAT_BGR_UNORM8", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 3, - .Swizzle = { 2, 1, 0, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 1, 3, 2, 1, 0, 5), - }, - { - .Name = MESA_FORMAT_RGB_UNORM8, - .StrName = "MESA_FORMAT_RGB_UNORM8", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 3, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 1, 3, 0, 1, 2, 5), - }, - { - .Name = MESA_FORMAT_RGBA_UNORM16, - .StrName = "MESA_FORMAT_RGBA_UNORM16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 16, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 8, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 0, 0, 1, 4, 0, 1, 2, 3), - }, - { - .Name = MESA_FORMAT_RGBX_UNORM16, - .StrName = "MESA_FORMAT_RGBX_UNORM16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 8, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 0, 0, 1, 4, 0, 1, 2, 5), - }, - { - .Name = MESA_FORMAT_Z_UNORM16, - .StrName = "MESA_FORMAT_Z_UNORM16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_DEPTH_COMPONENT, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 16, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 0, 6, 6, 6 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 0, 0, 1, 1, 0, 6, 6, 6), - }, - { - .Name = MESA_FORMAT_Z_UNORM32, - .StrName = "MESA_FORMAT_Z_UNORM32", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_DEPTH_COMPONENT, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 32, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 6, 6, 6 }, - .ArrayFormat = MESA_ARRAY_FORMAT(4, 0, 0, 1, 1, 0, 6, 6, 6), - }, - { - .Name = MESA_FORMAT_S_UINT8, - .StrName = "MESA_FORMAT_S_UINT8", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_STENCIL_INDEX, - .DataType = GL_UNSIGNED_INT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 8, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 1, - .Swizzle = { 6, 0, 6, 6 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 0, 1, 6, 0, 6, 6), - }, - { - .Name = MESA_FORMAT_A8B8G8R8_SNORM, - .StrName = "MESA_FORMAT_A8B8G8R8_SNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_SIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 3, 2, 1, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 1, 0, 1, 4, 3, 2, 1, 0), - }, - { - .Name = MESA_FORMAT_X8B8G8R8_SNORM, - .StrName = "MESA_FORMAT_X8B8G8R8_SNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGB, - .DataType = GL_SIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 3, 2, 1, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 1, 0, 1, 4, 3, 2, 1, 5), - }, - { - .Name = MESA_FORMAT_R8G8B8A8_SNORM, - .StrName = "MESA_FORMAT_R8G8B8A8_SNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_SIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 1, 0, 1, 4, 0, 1, 2, 3), - }, - { - .Name = MESA_FORMAT_R8G8B8X8_SNORM, - .StrName = "MESA_FORMAT_R8G8B8X8_SNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGB, - .DataType = GL_SIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 1, 0, 1, 4, 0, 1, 2, 5), - }, - { - .Name = MESA_FORMAT_R16G16_SNORM, - .StrName = "MESA_FORMAT_R16G16_SNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RG, - .DataType = GL_SIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 16, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 1, 4, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 1, 0, 1, 2, 0, 1, 4, 5), - }, - { - .Name = MESA_FORMAT_G16R16_SNORM, - .StrName = "MESA_FORMAT_G16R16_SNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RG, - .DataType = GL_SIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 16, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 1, 0, 4, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 1, 0, 1, 2, 1, 0, 4, 5), - }, - { - .Name = MESA_FORMAT_R8G8_SNORM, - .StrName = "MESA_FORMAT_R8G8_SNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RG, - .DataType = GL_SIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 0, 1, 4, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 1, 0, 1, 2, 0, 1, 4, 5), - }, - { - .Name = MESA_FORMAT_G8R8_SNORM, - .StrName = "MESA_FORMAT_G8R8_SNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RG, - .DataType = GL_SIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 1, 0, 4, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 1, 0, 1, 2, 1, 0, 4, 5), - }, - { - .Name = MESA_FORMAT_L8A8_SNORM, - .StrName = "MESA_FORMAT_L8A8_SNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_LUMINANCE_ALPHA, - .DataType = GL_SIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 8, - .LuminanceBits = 8, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 0, 0, 0, 1 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 1, 0, 1, 2, 0, 0, 0, 1), - }, - { - .Name = MESA_FORMAT_A8L8_SNORM, - .StrName = "MESA_FORMAT_A8L8_SNORM", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_LUMINANCE_ALPHA, - .DataType = GL_SIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 8, - .LuminanceBits = 8, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 1, 1, 1, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 1, 0, 1, 2, 1, 1, 1, 0), - }, - { - .Name = MESA_FORMAT_A_SNORM8, - .StrName = "MESA_FORMAT_A_SNORM8", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_ALPHA, - .DataType = GL_SIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 1, - .Swizzle = { 4, 4, 4, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 1, 0, 1, 1, 4, 4, 4, 0), - }, - { - .Name = MESA_FORMAT_A_SNORM16, - .StrName = "MESA_FORMAT_A_SNORM16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_ALPHA, - .DataType = GL_SIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 16, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 4, 4, 4, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 1, 0, 1, 1, 4, 4, 4, 0), - }, - { - .Name = MESA_FORMAT_L_SNORM8, - .StrName = "MESA_FORMAT_L_SNORM8", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_LUMINANCE, - .DataType = GL_SIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 8, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 1, - .Swizzle = { 0, 0, 0, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 1, 0, 1, 1, 0, 0, 0, 5), - }, - { - .Name = MESA_FORMAT_L_SNORM16, - .StrName = "MESA_FORMAT_L_SNORM16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_LUMINANCE, - .DataType = GL_SIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 16, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 0, 0, 0, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 1, 0, 1, 1, 0, 0, 0, 5), - }, - { - .Name = MESA_FORMAT_I_SNORM8, - .StrName = "MESA_FORMAT_I_SNORM8", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_INTENSITY, - .DataType = GL_SIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 8, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 1, - .Swizzle = { 0, 0, 0, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 1, 0, 1, 1, 0, 0, 0, 0), - }, - { - .Name = MESA_FORMAT_I_SNORM16, - .StrName = "MESA_FORMAT_I_SNORM16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_INTENSITY, - .DataType = GL_SIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 16, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 0, 0, 0, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 1, 0, 1, 1, 0, 0, 0, 0), - }, - { - .Name = MESA_FORMAT_R_SNORM8, - .StrName = "MESA_FORMAT_R_SNORM8", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RED, - .DataType = GL_SIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 1, - .Swizzle = { 0, 4, 4, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 1, 0, 1, 1, 0, 4, 4, 5), - }, - { - .Name = MESA_FORMAT_R_SNORM16, - .StrName = "MESA_FORMAT_R_SNORM16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RED, - .DataType = GL_SIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 0, 4, 4, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 1, 0, 1, 1, 0, 4, 4, 5), - }, - { - .Name = MESA_FORMAT_LA_SNORM16, - .StrName = "MESA_FORMAT_LA_SNORM16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_LUMINANCE_ALPHA, - .DataType = GL_SIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 16, - .LuminanceBits = 16, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 0, 0, 1 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 1, 0, 1, 2, 0, 0, 0, 1), - }, - { - .Name = MESA_FORMAT_RGB_SNORM16, - .StrName = "MESA_FORMAT_RGB_SNORM16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RGB, - .DataType = GL_SIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 6, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 1, 0, 1, 3, 0, 1, 2, 5), - }, - { - .Name = MESA_FORMAT_RGBA_SNORM16, - .StrName = "MESA_FORMAT_RGBA_SNORM16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RGBA, - .DataType = GL_SIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 16, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 8, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 1, 0, 1, 4, 0, 1, 2, 3), - }, - { - .Name = MESA_FORMAT_RGBX_SNORM16, - .StrName = "MESA_FORMAT_RGBX_SNORM16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RGB, - .DataType = GL_SIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 8, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 1, 0, 1, 4, 0, 1, 2, 5), - }, - { - .Name = MESA_FORMAT_A8B8G8R8_SRGB, - .StrName = "MESA_FORMAT_A8B8G8R8_SRGB", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 3, 2, 1, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 1, 4, 3, 2, 1, 0), - }, - { - .Name = MESA_FORMAT_B8G8R8A8_SRGB, - .StrName = "MESA_FORMAT_B8G8R8A8_SRGB", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 2, 1, 0, 3 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 1, 4, 2, 1, 0, 3), - }, - { - .Name = MESA_FORMAT_A8R8G8B8_SRGB, - .StrName = "MESA_FORMAT_A8R8G8B8_SRGB", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 1, 2, 3, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 1, 4, 1, 2, 3, 0), - }, - { - .Name = MESA_FORMAT_B8G8R8X8_SRGB, - .StrName = "MESA_FORMAT_B8G8R8X8_SRGB", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 2, 1, 0, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 1, 4, 2, 1, 0, 5), - }, - { - .Name = MESA_FORMAT_X8R8G8B8_SRGB, - .StrName = "MESA_FORMAT_X8R8G8B8_SRGB", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 1, 2, 3, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 1, 4, 1, 2, 3, 5), - }, - { - .Name = MESA_FORMAT_R8G8B8A8_SRGB, - .StrName = "MESA_FORMAT_R8G8B8A8_SRGB", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 1, 4, 0, 1, 2, 3), - }, - { - .Name = MESA_FORMAT_R8G8B8X8_SRGB, - .StrName = "MESA_FORMAT_R8G8B8X8_SRGB", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 1, 4, 0, 1, 2, 5), - }, - { - .Name = MESA_FORMAT_X8B8G8R8_SRGB, - .StrName = "MESA_FORMAT_X8B8G8R8_SRGB", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 3, 2, 1, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 1, 4, 3, 2, 1, 5), - }, - { - .Name = MESA_FORMAT_L8A8_SRGB, - .StrName = "MESA_FORMAT_L8A8_SRGB", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_LUMINANCE_ALPHA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 8, - .LuminanceBits = 8, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 0, 0, 0, 1 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 1, 2, 0, 0, 0, 1), - }, - { - .Name = MESA_FORMAT_A8L8_SRGB, - .StrName = "MESA_FORMAT_A8L8_SRGB", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_LUMINANCE_ALPHA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 8, - .LuminanceBits = 8, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 1, 1, 1, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 1, 2, 1, 1, 1, 0), - }, - { - .Name = MESA_FORMAT_L_SRGB8, - .StrName = "MESA_FORMAT_L_SRGB8", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_LUMINANCE, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 8, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 1, - .Swizzle = { 0, 0, 0, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 1, 1, 0, 0, 0, 5), - }, - { - .Name = MESA_FORMAT_BGR_SRGB8, - .StrName = "MESA_FORMAT_BGR_SRGB8", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 3, - .Swizzle = { 2, 1, 0, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 1, 3, 2, 1, 0, 5), - }, - { - .Name = MESA_FORMAT_R9G9B9E5_FLOAT, - .StrName = "MESA_FORMAT_R9G9B9E5_FLOAT", - .Layout = MESA_FORMAT_LAYOUT_OTHER, - .BaseFormat = GL_RGB, - .DataType = GL_FLOAT, - .RedBits = 9, .GreenBits = 9, .BlueBits = 9, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_R11G11B10_FLOAT, - .StrName = "MESA_FORMAT_R11G11B10_FLOAT", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGB, - .DataType = GL_FLOAT, - .RedBits = 11, .GreenBits = 11, .BlueBits = 10, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_Z32_FLOAT_S8X24_UINT, - .StrName = "MESA_FORMAT_Z32_FLOAT_S8X24_UINT", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_DEPTH_STENCIL, - .DataType = GL_FLOAT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 32, .StencilBits = 8, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 8, - .Swizzle = { 2, 0, 6, 6 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_A_FLOAT16, - .StrName = "MESA_FORMAT_A_FLOAT16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_ALPHA, - .DataType = GL_FLOAT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 16, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 4, 4, 4, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 1, 1, 1, 1, 4, 4, 4, 0), - }, - { - .Name = MESA_FORMAT_A_FLOAT32, - .StrName = "MESA_FORMAT_A_FLOAT32", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_ALPHA, - .DataType = GL_FLOAT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 32, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 4, 4, 4, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(4, 1, 1, 1, 1, 4, 4, 4, 0), - }, - { - .Name = MESA_FORMAT_L_FLOAT16, - .StrName = "MESA_FORMAT_L_FLOAT16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_LUMINANCE, - .DataType = GL_FLOAT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 16, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 0, 0, 0, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 1, 1, 1, 1, 0, 0, 0, 5), - }, - { - .Name = MESA_FORMAT_L_FLOAT32, - .StrName = "MESA_FORMAT_L_FLOAT32", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_LUMINANCE, - .DataType = GL_FLOAT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 32, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 0, 0, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(4, 1, 1, 1, 1, 0, 0, 0, 5), - }, - { - .Name = MESA_FORMAT_LA_FLOAT16, - .StrName = "MESA_FORMAT_LA_FLOAT16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_LUMINANCE_ALPHA, - .DataType = GL_FLOAT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 16, - .LuminanceBits = 16, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 0, 0, 1 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 1, 1, 1, 2, 0, 0, 0, 1), - }, - { - .Name = MESA_FORMAT_LA_FLOAT32, - .StrName = "MESA_FORMAT_LA_FLOAT32", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_LUMINANCE_ALPHA, - .DataType = GL_FLOAT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 32, - .LuminanceBits = 32, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 8, - .Swizzle = { 0, 0, 0, 1 }, - .ArrayFormat = MESA_ARRAY_FORMAT(4, 1, 1, 1, 2, 0, 0, 0, 1), - }, - { - .Name = MESA_FORMAT_I_FLOAT16, - .StrName = "MESA_FORMAT_I_FLOAT16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_INTENSITY, - .DataType = GL_FLOAT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 16, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 0, 0, 0, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 1, 1, 1, 1, 0, 0, 0, 0), - }, - { - .Name = MESA_FORMAT_I_FLOAT32, - .StrName = "MESA_FORMAT_I_FLOAT32", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_INTENSITY, - .DataType = GL_FLOAT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 32, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 0, 0, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(4, 1, 1, 1, 1, 0, 0, 0, 0), - }, - { - .Name = MESA_FORMAT_R_FLOAT16, - .StrName = "MESA_FORMAT_R_FLOAT16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RED, - .DataType = GL_FLOAT, - .RedBits = 16, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 0, 4, 4, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 1, 1, 1, 1, 0, 4, 4, 5), - }, - { - .Name = MESA_FORMAT_R_FLOAT32, - .StrName = "MESA_FORMAT_R_FLOAT32", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RED, - .DataType = GL_FLOAT, - .RedBits = 32, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 4, 4, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(4, 1, 1, 1, 1, 0, 4, 4, 5), - }, - { - .Name = MESA_FORMAT_RG_FLOAT16, - .StrName = "MESA_FORMAT_RG_FLOAT16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RG, - .DataType = GL_FLOAT, - .RedBits = 16, .GreenBits = 16, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 1, 4, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 1, 1, 1, 2, 0, 1, 4, 5), - }, - { - .Name = MESA_FORMAT_RG_FLOAT32, - .StrName = "MESA_FORMAT_RG_FLOAT32", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RG, - .DataType = GL_FLOAT, - .RedBits = 32, .GreenBits = 32, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 8, - .Swizzle = { 0, 1, 4, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(4, 1, 1, 1, 2, 0, 1, 4, 5), - }, - { - .Name = MESA_FORMAT_RGB_FLOAT16, - .StrName = "MESA_FORMAT_RGB_FLOAT16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RGB, - .DataType = GL_FLOAT, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 6, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 1, 1, 1, 3, 0, 1, 2, 5), - }, - { - .Name = MESA_FORMAT_RGB_FLOAT32, - .StrName = "MESA_FORMAT_RGB_FLOAT32", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RGB, - .DataType = GL_FLOAT, - .RedBits = 32, .GreenBits = 32, .BlueBits = 32, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 12, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(4, 1, 1, 1, 3, 0, 1, 2, 5), - }, - { - .Name = MESA_FORMAT_RGBA_FLOAT16, - .StrName = "MESA_FORMAT_RGBA_FLOAT16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RGBA, - .DataType = GL_FLOAT, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 16, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 8, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 1, 1, 1, 4, 0, 1, 2, 3), - }, - { - .Name = MESA_FORMAT_RGBA_FLOAT32, - .StrName = "MESA_FORMAT_RGBA_FLOAT32", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RGBA, - .DataType = GL_FLOAT, - .RedBits = 32, .GreenBits = 32, .BlueBits = 32, .AlphaBits = 32, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = MESA_ARRAY_FORMAT(4, 1, 1, 1, 4, 0, 1, 2, 3), - }, - { - .Name = MESA_FORMAT_RGBX_FLOAT16, - .StrName = "MESA_FORMAT_RGBX_FLOAT16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RGB, - .DataType = GL_FLOAT, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 8, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 1, 1, 1, 4, 0, 1, 2, 5), - }, - { - .Name = MESA_FORMAT_RGBX_FLOAT32, - .StrName = "MESA_FORMAT_RGBX_FLOAT32", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RGB, - .DataType = GL_FLOAT, - .RedBits = 32, .GreenBits = 32, .BlueBits = 32, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(4, 1, 1, 1, 4, 0, 1, 2, 5), - }, - { - .Name = MESA_FORMAT_Z_FLOAT32, - .StrName = "MESA_FORMAT_Z_FLOAT32", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_DEPTH_COMPONENT, - .DataType = GL_FLOAT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 32, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 6, 6, 6 }, - .ArrayFormat = MESA_ARRAY_FORMAT(4, 1, 1, 1, 1, 0, 6, 6, 6), - }, - { - .Name = MESA_FORMAT_A8B8G8R8_UINT, - .StrName = "MESA_FORMAT_A8B8G8R8_UINT", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_INT, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 3, 2, 1, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 0, 4, 3, 2, 1, 0), - }, - { - .Name = MESA_FORMAT_A8R8G8B8_UINT, - .StrName = "MESA_FORMAT_A8R8G8B8_UINT", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_INT, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 1, 2, 3, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 0, 4, 1, 2, 3, 0), - }, - { - .Name = MESA_FORMAT_R8G8B8A8_UINT, - .StrName = "MESA_FORMAT_R8G8B8A8_UINT", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_INT, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 0, 4, 0, 1, 2, 3), - }, - { - .Name = MESA_FORMAT_B8G8R8A8_UINT, - .StrName = "MESA_FORMAT_B8G8R8A8_UINT", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_INT, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 2, 1, 0, 3 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 0, 4, 2, 1, 0, 3), - }, - { - .Name = MESA_FORMAT_B10G10R10A2_UINT, - .StrName = "MESA_FORMAT_B10G10R10A2_UINT", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_INT, - .RedBits = 10, .GreenBits = 10, .BlueBits = 10, .AlphaBits = 2, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 2, 1, 0, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_R10G10B10A2_UINT, - .StrName = "MESA_FORMAT_R10G10B10A2_UINT", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_INT, - .RedBits = 10, .GreenBits = 10, .BlueBits = 10, .AlphaBits = 2, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_A2B10G10R10_UINT, - .StrName = "MESA_FORMAT_A2B10G10R10_UINT", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_INT, - .RedBits = 10, .GreenBits = 10, .BlueBits = 10, .AlphaBits = 2, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 3, 2, 1, 0 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_A2R10G10B10_UINT, - .StrName = "MESA_FORMAT_A2R10G10B10_UINT", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_INT, - .RedBits = 10, .GreenBits = 10, .BlueBits = 10, .AlphaBits = 2, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 1, 2, 3, 0 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_B5G6R5_UINT, - .StrName = "MESA_FORMAT_B5G6R5_UINT", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_INT, - .RedBits = 5, .GreenBits = 6, .BlueBits = 5, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 2, 1, 0, 5 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_R5G6B5_UINT, - .StrName = "MESA_FORMAT_R5G6B5_UINT", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_INT, - .RedBits = 5, .GreenBits = 6, .BlueBits = 5, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_B2G3R3_UINT, - .StrName = "MESA_FORMAT_B2G3R3_UINT", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_INT, - .RedBits = 3, .GreenBits = 3, .BlueBits = 2, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 1, - .Swizzle = { 2, 1, 0, 5 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_R3G3B2_UINT, - .StrName = "MESA_FORMAT_R3G3B2_UINT", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_INT, - .RedBits = 3, .GreenBits = 3, .BlueBits = 2, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 1, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_A4B4G4R4_UINT, - .StrName = "MESA_FORMAT_A4B4G4R4_UINT", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_INT, - .RedBits = 4, .GreenBits = 4, .BlueBits = 4, .AlphaBits = 4, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 3, 2, 1, 0 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_R4G4B4A4_UINT, - .StrName = "MESA_FORMAT_R4G4B4A4_UINT", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_INT, - .RedBits = 4, .GreenBits = 4, .BlueBits = 4, .AlphaBits = 4, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_B4G4R4A4_UINT, - .StrName = "MESA_FORMAT_B4G4R4A4_UINT", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_INT, - .RedBits = 4, .GreenBits = 4, .BlueBits = 4, .AlphaBits = 4, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 2, 1, 0, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_A4R4G4B4_UINT, - .StrName = "MESA_FORMAT_A4R4G4B4_UINT", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_INT, - .RedBits = 4, .GreenBits = 4, .BlueBits = 4, .AlphaBits = 4, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 1, 2, 3, 0 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_A1B5G5R5_UINT, - .StrName = "MESA_FORMAT_A1B5G5R5_UINT", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_INT, - .RedBits = 5, .GreenBits = 5, .BlueBits = 5, .AlphaBits = 1, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 3, 2, 1, 0 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_B5G5R5A1_UINT, - .StrName = "MESA_FORMAT_B5G5R5A1_UINT", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_INT, - .RedBits = 5, .GreenBits = 5, .BlueBits = 5, .AlphaBits = 1, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 2, 1, 0, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_A1R5G5B5_UINT, - .StrName = "MESA_FORMAT_A1R5G5B5_UINT", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_INT, - .RedBits = 5, .GreenBits = 5, .BlueBits = 5, .AlphaBits = 1, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 1, 2, 3, 0 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_R5G5B5A1_UINT, - .StrName = "MESA_FORMAT_R5G5B5A1_UINT", - .Layout = MESA_FORMAT_LAYOUT_PACKED, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_INT, - .RedBits = 5, .GreenBits = 5, .BlueBits = 5, .AlphaBits = 1, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_A_UINT8, - .StrName = "MESA_FORMAT_A_UINT8", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_ALPHA, - .DataType = GL_UNSIGNED_INT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 1, - .Swizzle = { 4, 4, 4, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 0, 1, 4, 4, 4, 0), - }, - { - .Name = MESA_FORMAT_A_UINT16, - .StrName = "MESA_FORMAT_A_UINT16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_ALPHA, - .DataType = GL_UNSIGNED_INT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 16, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 4, 4, 4, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 0, 0, 0, 1, 4, 4, 4, 0), - }, - { - .Name = MESA_FORMAT_A_UINT32, - .StrName = "MESA_FORMAT_A_UINT32", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_ALPHA, - .DataType = GL_UNSIGNED_INT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 32, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 4, 4, 4, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(4, 0, 0, 0, 1, 4, 4, 4, 0), - }, - { - .Name = MESA_FORMAT_A_SINT8, - .StrName = "MESA_FORMAT_A_SINT8", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_ALPHA, - .DataType = GL_INT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 1, - .Swizzle = { 4, 4, 4, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 1, 0, 0, 1, 4, 4, 4, 0), - }, - { - .Name = MESA_FORMAT_A_SINT16, - .StrName = "MESA_FORMAT_A_SINT16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_ALPHA, - .DataType = GL_INT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 16, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 4, 4, 4, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 1, 0, 0, 1, 4, 4, 4, 0), - }, - { - .Name = MESA_FORMAT_A_SINT32, - .StrName = "MESA_FORMAT_A_SINT32", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_ALPHA, - .DataType = GL_INT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 32, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 4, 4, 4, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(4, 1, 0, 0, 1, 4, 4, 4, 0), - }, - { - .Name = MESA_FORMAT_I_UINT8, - .StrName = "MESA_FORMAT_I_UINT8", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_INTENSITY, - .DataType = GL_UNSIGNED_INT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 8, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 1, - .Swizzle = { 0, 0, 0, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 0, 1, 0, 0, 0, 0), - }, - { - .Name = MESA_FORMAT_I_UINT16, - .StrName = "MESA_FORMAT_I_UINT16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_INTENSITY, - .DataType = GL_UNSIGNED_INT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 16, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 0, 0, 0, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 0, 0, 0, 1, 0, 0, 0, 0), - }, - { - .Name = MESA_FORMAT_I_UINT32, - .StrName = "MESA_FORMAT_I_UINT32", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_INTENSITY, - .DataType = GL_UNSIGNED_INT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 32, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 0, 0, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(4, 0, 0, 0, 1, 0, 0, 0, 0), - }, - { - .Name = MESA_FORMAT_I_SINT8, - .StrName = "MESA_FORMAT_I_SINT8", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_INTENSITY, - .DataType = GL_INT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 8, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 1, - .Swizzle = { 0, 0, 0, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 1, 0, 0, 1, 0, 0, 0, 0), - }, - { - .Name = MESA_FORMAT_I_SINT16, - .StrName = "MESA_FORMAT_I_SINT16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_INTENSITY, - .DataType = GL_INT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 16, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 0, 0, 0, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 1, 0, 0, 1, 0, 0, 0, 0), - }, - { - .Name = MESA_FORMAT_I_SINT32, - .StrName = "MESA_FORMAT_I_SINT32", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_INTENSITY, - .DataType = GL_INT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 32, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 0, 0, 0 }, - .ArrayFormat = MESA_ARRAY_FORMAT(4, 1, 0, 0, 1, 0, 0, 0, 0), - }, - { - .Name = MESA_FORMAT_L_UINT8, - .StrName = "MESA_FORMAT_L_UINT8", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_LUMINANCE, - .DataType = GL_UNSIGNED_INT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 8, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 1, - .Swizzle = { 0, 0, 0, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 0, 1, 0, 0, 0, 5), - }, - { - .Name = MESA_FORMAT_L_UINT16, - .StrName = "MESA_FORMAT_L_UINT16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_LUMINANCE, - .DataType = GL_UNSIGNED_INT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 16, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 0, 0, 0, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 0, 0, 0, 1, 0, 0, 0, 5), - }, - { - .Name = MESA_FORMAT_L_UINT32, - .StrName = "MESA_FORMAT_L_UINT32", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_LUMINANCE, - .DataType = GL_UNSIGNED_INT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 32, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 0, 0, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(4, 0, 0, 0, 1, 0, 0, 0, 5), - }, - { - .Name = MESA_FORMAT_L_SINT8, - .StrName = "MESA_FORMAT_L_SINT8", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_LUMINANCE, - .DataType = GL_INT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 8, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 1, - .Swizzle = { 0, 0, 0, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 1, 0, 0, 1, 0, 0, 0, 5), - }, - { - .Name = MESA_FORMAT_L_SINT16, - .StrName = "MESA_FORMAT_L_SINT16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_LUMINANCE, - .DataType = GL_INT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 16, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 0, 0, 0, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 1, 0, 0, 1, 0, 0, 0, 5), - }, - { - .Name = MESA_FORMAT_L_SINT32, - .StrName = "MESA_FORMAT_L_SINT32", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_LUMINANCE, - .DataType = GL_INT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 32, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 0, 0, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(4, 1, 0, 0, 1, 0, 0, 0, 5), - }, - { - .Name = MESA_FORMAT_LA_UINT8, - .StrName = "MESA_FORMAT_LA_UINT8", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_LUMINANCE_ALPHA, - .DataType = GL_UNSIGNED_INT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 8, - .LuminanceBits = 8, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 0, 0, 0, 1 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 0, 2, 0, 0, 0, 1), - }, - { - .Name = MESA_FORMAT_LA_UINT16, - .StrName = "MESA_FORMAT_LA_UINT16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_LUMINANCE_ALPHA, - .DataType = GL_UNSIGNED_INT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 16, - .LuminanceBits = 16, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 0, 0, 1 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 0, 0, 0, 2, 0, 0, 0, 1), - }, - { - .Name = MESA_FORMAT_LA_UINT32, - .StrName = "MESA_FORMAT_LA_UINT32", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_LUMINANCE_ALPHA, - .DataType = GL_UNSIGNED_INT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 32, - .LuminanceBits = 32, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 8, - .Swizzle = { 0, 0, 0, 1 }, - .ArrayFormat = MESA_ARRAY_FORMAT(4, 0, 0, 0, 2, 0, 0, 0, 1), - }, - { - .Name = MESA_FORMAT_LA_SINT8, - .StrName = "MESA_FORMAT_LA_SINT8", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_LUMINANCE_ALPHA, - .DataType = GL_INT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 8, - .LuminanceBits = 8, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 0, 0, 0, 1 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 1, 0, 0, 2, 0, 0, 0, 1), - }, - { - .Name = MESA_FORMAT_LA_SINT16, - .StrName = "MESA_FORMAT_LA_SINT16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_LUMINANCE_ALPHA, - .DataType = GL_INT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 16, - .LuminanceBits = 16, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 0, 0, 1 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 1, 0, 0, 2, 0, 0, 0, 1), - }, - { - .Name = MESA_FORMAT_LA_SINT32, - .StrName = "MESA_FORMAT_LA_SINT32", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_LUMINANCE_ALPHA, - .DataType = GL_INT, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 32, - .LuminanceBits = 32, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 8, - .Swizzle = { 0, 0, 0, 1 }, - .ArrayFormat = MESA_ARRAY_FORMAT(4, 1, 0, 0, 2, 0, 0, 0, 1), - }, - { - .Name = MESA_FORMAT_R_UINT8, - .StrName = "MESA_FORMAT_R_UINT8", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RED, - .DataType = GL_UNSIGNED_INT, - .RedBits = 8, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 1, - .Swizzle = { 0, 4, 4, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 0, 1, 0, 4, 4, 5), - }, - { - .Name = MESA_FORMAT_R_UINT16, - .StrName = "MESA_FORMAT_R_UINT16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RED, - .DataType = GL_UNSIGNED_INT, - .RedBits = 16, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 0, 4, 4, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 0, 0, 0, 1, 0, 4, 4, 5), - }, - { - .Name = MESA_FORMAT_R_UINT32, - .StrName = "MESA_FORMAT_R_UINT32", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RED, - .DataType = GL_UNSIGNED_INT, - .RedBits = 32, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 4, 4, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(4, 0, 0, 0, 1, 0, 4, 4, 5), - }, - { - .Name = MESA_FORMAT_R_SINT8, - .StrName = "MESA_FORMAT_R_SINT8", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RED, - .DataType = GL_INT, - .RedBits = 8, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 1, - .Swizzle = { 0, 4, 4, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 1, 0, 0, 1, 0, 4, 4, 5), - }, - { - .Name = MESA_FORMAT_R_SINT16, - .StrName = "MESA_FORMAT_R_SINT16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RED, - .DataType = GL_INT, - .RedBits = 16, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 0, 4, 4, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 1, 0, 0, 1, 0, 4, 4, 5), - }, - { - .Name = MESA_FORMAT_R_SINT32, - .StrName = "MESA_FORMAT_R_SINT32", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RED, - .DataType = GL_INT, - .RedBits = 32, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 4, 4, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(4, 1, 0, 0, 1, 0, 4, 4, 5), - }, - { - .Name = MESA_FORMAT_RG_UINT8, - .StrName = "MESA_FORMAT_RG_UINT8", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RG, - .DataType = GL_UNSIGNED_INT, - .RedBits = 8, .GreenBits = 8, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 0, 1, 4, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 0, 2, 0, 1, 4, 5), - }, - { - .Name = MESA_FORMAT_RG_UINT16, - .StrName = "MESA_FORMAT_RG_UINT16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RG, - .DataType = GL_UNSIGNED_INT, - .RedBits = 16, .GreenBits = 16, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 1, 4, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 0, 0, 0, 2, 0, 1, 4, 5), - }, - { - .Name = MESA_FORMAT_RG_UINT32, - .StrName = "MESA_FORMAT_RG_UINT32", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RG, - .DataType = GL_UNSIGNED_INT, - .RedBits = 32, .GreenBits = 32, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 8, - .Swizzle = { 0, 1, 4, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(4, 0, 0, 0, 2, 0, 1, 4, 5), - }, - { - .Name = MESA_FORMAT_RG_SINT8, - .StrName = "MESA_FORMAT_RG_SINT8", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RG, - .DataType = GL_INT, - .RedBits = 8, .GreenBits = 8, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 2, - .Swizzle = { 0, 1, 4, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 1, 0, 0, 2, 0, 1, 4, 5), - }, - { - .Name = MESA_FORMAT_RG_SINT16, - .StrName = "MESA_FORMAT_RG_SINT16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RG, - .DataType = GL_INT, - .RedBits = 16, .GreenBits = 16, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 1, 4, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 1, 0, 0, 2, 0, 1, 4, 5), - }, - { - .Name = MESA_FORMAT_RG_SINT32, - .StrName = "MESA_FORMAT_RG_SINT32", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RG, - .DataType = GL_INT, - .RedBits = 32, .GreenBits = 32, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 8, - .Swizzle = { 0, 1, 4, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(4, 1, 0, 0, 2, 0, 1, 4, 5), - }, - { - .Name = MESA_FORMAT_RGB_UINT8, - .StrName = "MESA_FORMAT_RGB_UINT8", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_INT, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 3, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 0, 3, 0, 1, 2, 5), - }, - { - .Name = MESA_FORMAT_RGB_UINT16, - .StrName = "MESA_FORMAT_RGB_UINT16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_INT, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 6, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 0, 0, 0, 3, 0, 1, 2, 5), - }, - { - .Name = MESA_FORMAT_RGB_UINT32, - .StrName = "MESA_FORMAT_RGB_UINT32", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_INT, - .RedBits = 32, .GreenBits = 32, .BlueBits = 32, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 12, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(4, 0, 0, 0, 3, 0, 1, 2, 5), - }, - { - .Name = MESA_FORMAT_RGB_SINT8, - .StrName = "MESA_FORMAT_RGB_SINT8", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RGB, - .DataType = GL_INT, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 3, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 1, 0, 0, 3, 0, 1, 2, 5), - }, - { - .Name = MESA_FORMAT_RGB_SINT16, - .StrName = "MESA_FORMAT_RGB_SINT16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RGB, - .DataType = GL_INT, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 6, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 1, 0, 0, 3, 0, 1, 2, 5), - }, - { - .Name = MESA_FORMAT_RGB_SINT32, - .StrName = "MESA_FORMAT_RGB_SINT32", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RGB, - .DataType = GL_INT, - .RedBits = 32, .GreenBits = 32, .BlueBits = 32, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 12, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(4, 1, 0, 0, 3, 0, 1, 2, 5), - }, - { - .Name = MESA_FORMAT_RGBA_UINT8, - .StrName = "MESA_FORMAT_RGBA_UINT8", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_INT, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 0, 4, 0, 1, 2, 3), - }, - { - .Name = MESA_FORMAT_RGBA_UINT16, - .StrName = "MESA_FORMAT_RGBA_UINT16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_INT, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 16, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 8, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 0, 0, 0, 4, 0, 1, 2, 3), - }, - { - .Name = MESA_FORMAT_RGBA_UINT32, - .StrName = "MESA_FORMAT_RGBA_UINT32", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_INT, - .RedBits = 32, .GreenBits = 32, .BlueBits = 32, .AlphaBits = 32, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = MESA_ARRAY_FORMAT(4, 0, 0, 0, 4, 0, 1, 2, 3), - }, - { - .Name = MESA_FORMAT_RGBA_SINT8, - .StrName = "MESA_FORMAT_RGBA_SINT8", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RGBA, - .DataType = GL_INT, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 1, 0, 0, 4, 0, 1, 2, 3), - }, - { - .Name = MESA_FORMAT_RGBA_SINT16, - .StrName = "MESA_FORMAT_RGBA_SINT16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RGBA, - .DataType = GL_INT, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 16, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 8, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 1, 0, 0, 4, 0, 1, 2, 3), - }, - { - .Name = MESA_FORMAT_RGBA_SINT32, - .StrName = "MESA_FORMAT_RGBA_SINT32", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RGBA, - .DataType = GL_INT, - .RedBits = 32, .GreenBits = 32, .BlueBits = 32, .AlphaBits = 32, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = MESA_ARRAY_FORMAT(4, 1, 0, 0, 4, 0, 1, 2, 3), - }, - { - .Name = MESA_FORMAT_RGBX_UINT8, - .StrName = "MESA_FORMAT_RGBX_UINT8", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_INT, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 0, 0, 0, 4, 0, 1, 2, 5), - }, - { - .Name = MESA_FORMAT_RGBX_UINT16, - .StrName = "MESA_FORMAT_RGBX_UINT16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_INT, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 8, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 0, 0, 0, 4, 0, 1, 2, 5), - }, - { - .Name = MESA_FORMAT_RGBX_UINT32, - .StrName = "MESA_FORMAT_RGBX_UINT32", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_INT, - .RedBits = 32, .GreenBits = 32, .BlueBits = 32, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(4, 0, 0, 0, 4, 0, 1, 2, 5), - }, - { - .Name = MESA_FORMAT_RGBX_SINT8, - .StrName = "MESA_FORMAT_RGBX_SINT8", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RGB, - .DataType = GL_INT, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 4, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(1, 1, 0, 0, 4, 0, 1, 2, 5), - }, - { - .Name = MESA_FORMAT_RGBX_SINT16, - .StrName = "MESA_FORMAT_RGBX_SINT16", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RGB, - .DataType = GL_INT, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 8, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(2, 1, 0, 0, 4, 0, 1, 2, 5), - }, - { - .Name = MESA_FORMAT_RGBX_SINT32, - .StrName = "MESA_FORMAT_RGBX_SINT32", - .Layout = MESA_FORMAT_LAYOUT_ARRAY, - .BaseFormat = GL_RGB, - .DataType = GL_INT, - .RedBits = 32, .GreenBits = 32, .BlueBits = 32, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 1, .BlockHeight = 1, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = MESA_ARRAY_FORMAT(4, 1, 0, 0, 4, 0, 1, 2, 5), - }, - { - .Name = MESA_FORMAT_RGB_DXT1, - .StrName = "MESA_FORMAT_RGB_DXT1", - .Layout = MESA_FORMAT_LAYOUT_S3TC, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 4, .GreenBits = 4, .BlueBits = 4, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 8, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_RGBA_DXT1, - .StrName = "MESA_FORMAT_RGBA_DXT1", - .Layout = MESA_FORMAT_LAYOUT_S3TC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 4, .GreenBits = 4, .BlueBits = 4, .AlphaBits = 4, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 8, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_RGBA_DXT3, - .StrName = "MESA_FORMAT_RGBA_DXT3", - .Layout = MESA_FORMAT_LAYOUT_S3TC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 4, .GreenBits = 4, .BlueBits = 4, .AlphaBits = 4, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_RGBA_DXT5, - .StrName = "MESA_FORMAT_RGBA_DXT5", - .Layout = MESA_FORMAT_LAYOUT_S3TC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 4, .GreenBits = 4, .BlueBits = 4, .AlphaBits = 4, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_SRGB_DXT1, - .StrName = "MESA_FORMAT_SRGB_DXT1", - .Layout = MESA_FORMAT_LAYOUT_S3TC, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 4, .GreenBits = 4, .BlueBits = 4, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 8, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_SRGBA_DXT1, - .StrName = "MESA_FORMAT_SRGBA_DXT1", - .Layout = MESA_FORMAT_LAYOUT_S3TC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 4, .GreenBits = 4, .BlueBits = 4, .AlphaBits = 4, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 8, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_SRGBA_DXT3, - .StrName = "MESA_FORMAT_SRGBA_DXT3", - .Layout = MESA_FORMAT_LAYOUT_S3TC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 4, .GreenBits = 4, .BlueBits = 4, .AlphaBits = 4, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_SRGBA_DXT5, - .StrName = "MESA_FORMAT_SRGBA_DXT5", - .Layout = MESA_FORMAT_LAYOUT_S3TC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 4, .GreenBits = 4, .BlueBits = 4, .AlphaBits = 4, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_RGB_FXT1, - .StrName = "MESA_FORMAT_RGB_FXT1", - .Layout = MESA_FORMAT_LAYOUT_FXT1, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 4, .GreenBits = 4, .BlueBits = 4, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 8, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_RGBA_FXT1, - .StrName = "MESA_FORMAT_RGBA_FXT1", - .Layout = MESA_FORMAT_LAYOUT_FXT1, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 4, .GreenBits = 4, .BlueBits = 4, .AlphaBits = 1, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 8, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_R_RGTC1_UNORM, - .StrName = "MESA_FORMAT_R_RGTC1_UNORM", - .Layout = MESA_FORMAT_LAYOUT_RGTC, - .BaseFormat = GL_RED, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 8, - .Swizzle = { 0, 4, 4, 5 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_R_RGTC1_SNORM, - .StrName = "MESA_FORMAT_R_RGTC1_SNORM", - .Layout = MESA_FORMAT_LAYOUT_RGTC, - .BaseFormat = GL_RED, - .DataType = GL_SIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 8, - .Swizzle = { 0, 4, 4, 5 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_RG_RGTC2_UNORM, - .StrName = "MESA_FORMAT_RG_RGTC2_UNORM", - .Layout = MESA_FORMAT_LAYOUT_RGTC, - .BaseFormat = GL_RG, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 4, 5 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_RG_RGTC2_SNORM, - .StrName = "MESA_FORMAT_RG_RGTC2_SNORM", - .Layout = MESA_FORMAT_LAYOUT_RGTC, - .BaseFormat = GL_RG, - .DataType = GL_SIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 4, 5 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_L_LATC1_UNORM, - .StrName = "MESA_FORMAT_L_LATC1_UNORM", - .Layout = MESA_FORMAT_LAYOUT_LATC, - .BaseFormat = GL_LUMINANCE, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 8, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 8, - .Swizzle = { 0, 0, 0, 5 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_L_LATC1_SNORM, - .StrName = "MESA_FORMAT_L_LATC1_SNORM", - .Layout = MESA_FORMAT_LAYOUT_LATC, - .BaseFormat = GL_LUMINANCE, - .DataType = GL_SIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 8, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 8, - .Swizzle = { 0, 0, 0, 5 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_LA_LATC2_UNORM, - .StrName = "MESA_FORMAT_LA_LATC2_UNORM", - .Layout = MESA_FORMAT_LAYOUT_LATC, - .BaseFormat = GL_LUMINANCE_ALPHA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 8, - .LuminanceBits = 8, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 0, 0, 1 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_LA_LATC2_SNORM, - .StrName = "MESA_FORMAT_LA_LATC2_SNORM", - .Layout = MESA_FORMAT_LAYOUT_LATC, - .BaseFormat = GL_LUMINANCE_ALPHA, - .DataType = GL_SIGNED_NORMALIZED, - .RedBits = 0, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 8, - .LuminanceBits = 8, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 0, 0, 1 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_ETC1_RGB8, - .StrName = "MESA_FORMAT_ETC1_RGB8", - .Layout = MESA_FORMAT_LAYOUT_ETC1, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 8, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_ETC2_RGB8, - .StrName = "MESA_FORMAT_ETC2_RGB8", - .Layout = MESA_FORMAT_LAYOUT_ETC2, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 8, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_ETC2_SRGB8, - .StrName = "MESA_FORMAT_ETC2_SRGB8", - .Layout = MESA_FORMAT_LAYOUT_ETC2, - .BaseFormat = GL_RGB, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 8, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_ETC2_RGBA8_EAC, - .StrName = "MESA_FORMAT_ETC2_RGBA8_EAC", - .Layout = MESA_FORMAT_LAYOUT_ETC2, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_ETC2_SRGB8_ALPHA8_EAC, - .StrName = "MESA_FORMAT_ETC2_SRGB8_ALPHA8_EAC", - .Layout = MESA_FORMAT_LAYOUT_ETC2, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_ETC2_R11_EAC, - .StrName = "MESA_FORMAT_ETC2_R11_EAC", - .Layout = MESA_FORMAT_LAYOUT_ETC2, - .BaseFormat = GL_RED, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 11, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 8, - .Swizzle = { 0, 4, 4, 5 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_ETC2_RG11_EAC, - .StrName = "MESA_FORMAT_ETC2_RG11_EAC", - .Layout = MESA_FORMAT_LAYOUT_ETC2, - .BaseFormat = GL_RG, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 11, .GreenBits = 11, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 4, 5 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_ETC2_SIGNED_R11_EAC, - .StrName = "MESA_FORMAT_ETC2_SIGNED_R11_EAC", - .Layout = MESA_FORMAT_LAYOUT_ETC2, - .BaseFormat = GL_RED, - .DataType = GL_SIGNED_NORMALIZED, - .RedBits = 11, .GreenBits = 0, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 8, - .Swizzle = { 0, 4, 4, 5 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_ETC2_SIGNED_RG11_EAC, - .StrName = "MESA_FORMAT_ETC2_SIGNED_RG11_EAC", - .Layout = MESA_FORMAT_LAYOUT_ETC2, - .BaseFormat = GL_RG, - .DataType = GL_SIGNED_NORMALIZED, - .RedBits = 11, .GreenBits = 11, .BlueBits = 0, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 4, 5 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_ETC2_RGB8_PUNCHTHROUGH_ALPHA1, - .StrName = "MESA_FORMAT_ETC2_RGB8_PUNCHTHROUGH_ALPHA1", - .Layout = MESA_FORMAT_LAYOUT_ETC2, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 1, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 8, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_ETC2_SRGB8_PUNCHTHROUGH_ALPHA1, - .StrName = "MESA_FORMAT_ETC2_SRGB8_PUNCHTHROUGH_ALPHA1", - .Layout = MESA_FORMAT_LAYOUT_ETC2, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 1, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 8, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_BPTC_RGBA_UNORM, - .StrName = "MESA_FORMAT_BPTC_RGBA_UNORM", - .Layout = MESA_FORMAT_LAYOUT_BPTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_BPTC_SRGB_ALPHA_UNORM, - .StrName = "MESA_FORMAT_BPTC_SRGB_ALPHA_UNORM", - .Layout = MESA_FORMAT_LAYOUT_BPTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_BPTC_RGB_SIGNED_FLOAT, - .StrName = "MESA_FORMAT_BPTC_RGB_SIGNED_FLOAT", - .Layout = MESA_FORMAT_LAYOUT_BPTC, - .BaseFormat = GL_RGB, - .DataType = GL_FLOAT, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_BPTC_RGB_UNSIGNED_FLOAT, - .StrName = "MESA_FORMAT_BPTC_RGB_UNSIGNED_FLOAT", - .Layout = MESA_FORMAT_LAYOUT_BPTC, - .BaseFormat = GL_RGB, - .DataType = GL_FLOAT, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 0, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 5 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_RGBA_ASTC_4x4, - .StrName = "MESA_FORMAT_RGBA_ASTC_4x4", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 16, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_RGBA_ASTC_5x4, - .StrName = "MESA_FORMAT_RGBA_ASTC_5x4", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 16, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 5, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_RGBA_ASTC_5x5, - .StrName = "MESA_FORMAT_RGBA_ASTC_5x5", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 16, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 5, .BlockHeight = 5, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_RGBA_ASTC_6x5, - .StrName = "MESA_FORMAT_RGBA_ASTC_6x5", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 16, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 6, .BlockHeight = 5, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_RGBA_ASTC_6x6, - .StrName = "MESA_FORMAT_RGBA_ASTC_6x6", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 16, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 6, .BlockHeight = 6, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_RGBA_ASTC_8x5, - .StrName = "MESA_FORMAT_RGBA_ASTC_8x5", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 16, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 8, .BlockHeight = 5, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_RGBA_ASTC_8x6, - .StrName = "MESA_FORMAT_RGBA_ASTC_8x6", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 16, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 8, .BlockHeight = 6, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_RGBA_ASTC_8x8, - .StrName = "MESA_FORMAT_RGBA_ASTC_8x8", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 16, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 8, .BlockHeight = 8, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_RGBA_ASTC_10x5, - .StrName = "MESA_FORMAT_RGBA_ASTC_10x5", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 16, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 10, .BlockHeight = 5, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_RGBA_ASTC_10x6, - .StrName = "MESA_FORMAT_RGBA_ASTC_10x6", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 16, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 10, .BlockHeight = 6, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_RGBA_ASTC_10x8, - .StrName = "MESA_FORMAT_RGBA_ASTC_10x8", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 16, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 10, .BlockHeight = 8, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_RGBA_ASTC_10x10, - .StrName = "MESA_FORMAT_RGBA_ASTC_10x10", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 16, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 10, .BlockHeight = 10, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_RGBA_ASTC_12x10, - .StrName = "MESA_FORMAT_RGBA_ASTC_12x10", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 16, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 12, .BlockHeight = 10, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_RGBA_ASTC_12x12, - .StrName = "MESA_FORMAT_RGBA_ASTC_12x12", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 16, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 12, .BlockHeight = 12, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_SRGB8_ALPHA8_ASTC_4x4, - .StrName = "MESA_FORMAT_SRGB8_ALPHA8_ASTC_4x4", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_SRGB8_ALPHA8_ASTC_5x4, - .StrName = "MESA_FORMAT_SRGB8_ALPHA8_ASTC_5x4", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 5, .BlockHeight = 4, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_SRGB8_ALPHA8_ASTC_5x5, - .StrName = "MESA_FORMAT_SRGB8_ALPHA8_ASTC_5x5", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 5, .BlockHeight = 5, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_SRGB8_ALPHA8_ASTC_6x5, - .StrName = "MESA_FORMAT_SRGB8_ALPHA8_ASTC_6x5", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 6, .BlockHeight = 5, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_SRGB8_ALPHA8_ASTC_6x6, - .StrName = "MESA_FORMAT_SRGB8_ALPHA8_ASTC_6x6", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 6, .BlockHeight = 6, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_SRGB8_ALPHA8_ASTC_8x5, - .StrName = "MESA_FORMAT_SRGB8_ALPHA8_ASTC_8x5", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 8, .BlockHeight = 5, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_SRGB8_ALPHA8_ASTC_8x6, - .StrName = "MESA_FORMAT_SRGB8_ALPHA8_ASTC_8x6", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 8, .BlockHeight = 6, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_SRGB8_ALPHA8_ASTC_8x8, - .StrName = "MESA_FORMAT_SRGB8_ALPHA8_ASTC_8x8", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 8, .BlockHeight = 8, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_SRGB8_ALPHA8_ASTC_10x5, - .StrName = "MESA_FORMAT_SRGB8_ALPHA8_ASTC_10x5", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 10, .BlockHeight = 5, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_SRGB8_ALPHA8_ASTC_10x6, - .StrName = "MESA_FORMAT_SRGB8_ALPHA8_ASTC_10x6", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 10, .BlockHeight = 6, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_SRGB8_ALPHA8_ASTC_10x8, - .StrName = "MESA_FORMAT_SRGB8_ALPHA8_ASTC_10x8", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 10, .BlockHeight = 8, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_SRGB8_ALPHA8_ASTC_10x10, - .StrName = "MESA_FORMAT_SRGB8_ALPHA8_ASTC_10x10", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 10, .BlockHeight = 10, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_SRGB8_ALPHA8_ASTC_12x10, - .StrName = "MESA_FORMAT_SRGB8_ALPHA8_ASTC_12x10", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 12, .BlockHeight = 10, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_SRGB8_ALPHA8_ASTC_12x12, - .StrName = "MESA_FORMAT_SRGB8_ALPHA8_ASTC_12x12", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 12, .BlockHeight = 12, .BlockDepth = 1, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_RGBA_ASTC_3x3x3, - .StrName = "MESA_FORMAT_RGBA_ASTC_3x3x3", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 16, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 3, .BlockHeight = 3, .BlockDepth = 3, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_RGBA_ASTC_4x3x3, - .StrName = "MESA_FORMAT_RGBA_ASTC_4x3x3", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 16, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 4, .BlockHeight = 3, .BlockDepth = 3, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_RGBA_ASTC_4x4x3, - .StrName = "MESA_FORMAT_RGBA_ASTC_4x4x3", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 16, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 3, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_RGBA_ASTC_4x4x4, - .StrName = "MESA_FORMAT_RGBA_ASTC_4x4x4", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 16, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 4, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_RGBA_ASTC_5x4x4, - .StrName = "MESA_FORMAT_RGBA_ASTC_5x4x4", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 16, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 5, .BlockHeight = 4, .BlockDepth = 4, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_RGBA_ASTC_5x5x4, - .StrName = "MESA_FORMAT_RGBA_ASTC_5x5x4", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 16, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 5, .BlockHeight = 5, .BlockDepth = 4, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_RGBA_ASTC_5x5x5, - .StrName = "MESA_FORMAT_RGBA_ASTC_5x5x5", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 16, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 5, .BlockHeight = 5, .BlockDepth = 5, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_RGBA_ASTC_6x5x5, - .StrName = "MESA_FORMAT_RGBA_ASTC_6x5x5", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 16, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 6, .BlockHeight = 5, .BlockDepth = 5, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_RGBA_ASTC_6x6x5, - .StrName = "MESA_FORMAT_RGBA_ASTC_6x6x5", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 16, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 6, .BlockHeight = 6, .BlockDepth = 5, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_RGBA_ASTC_6x6x6, - .StrName = "MESA_FORMAT_RGBA_ASTC_6x6x6", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 16, .GreenBits = 16, .BlueBits = 16, .AlphaBits = 16, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 0, - .BlockWidth = 6, .BlockHeight = 6, .BlockDepth = 6, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_SRGB8_ALPHA8_ASTC_3x3x3, - .StrName = "MESA_FORMAT_SRGB8_ALPHA8_ASTC_3x3x3", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 3, .BlockHeight = 3, .BlockDepth = 3, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_SRGB8_ALPHA8_ASTC_4x3x3, - .StrName = "MESA_FORMAT_SRGB8_ALPHA8_ASTC_4x3x3", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 4, .BlockHeight = 3, .BlockDepth = 3, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_SRGB8_ALPHA8_ASTC_4x4x3, - .StrName = "MESA_FORMAT_SRGB8_ALPHA8_ASTC_4x4x3", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 3, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_SRGB8_ALPHA8_ASTC_4x4x4, - .StrName = "MESA_FORMAT_SRGB8_ALPHA8_ASTC_4x4x4", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 4, .BlockHeight = 4, .BlockDepth = 4, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_SRGB8_ALPHA8_ASTC_5x4x4, - .StrName = "MESA_FORMAT_SRGB8_ALPHA8_ASTC_5x4x4", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 5, .BlockHeight = 4, .BlockDepth = 4, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_SRGB8_ALPHA8_ASTC_5x5x4, - .StrName = "MESA_FORMAT_SRGB8_ALPHA8_ASTC_5x5x4", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 5, .BlockHeight = 5, .BlockDepth = 4, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_SRGB8_ALPHA8_ASTC_5x5x5, - .StrName = "MESA_FORMAT_SRGB8_ALPHA8_ASTC_5x5x5", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 5, .BlockHeight = 5, .BlockDepth = 5, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_SRGB8_ALPHA8_ASTC_6x5x5, - .StrName = "MESA_FORMAT_SRGB8_ALPHA8_ASTC_6x5x5", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 6, .BlockHeight = 5, .BlockDepth = 5, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_SRGB8_ALPHA8_ASTC_6x6x5, - .StrName = "MESA_FORMAT_SRGB8_ALPHA8_ASTC_6x6x5", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 6, .BlockHeight = 6, .BlockDepth = 5, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, - }, - { - .Name = MESA_FORMAT_SRGB8_ALPHA8_ASTC_6x6x6, - .StrName = "MESA_FORMAT_SRGB8_ALPHA8_ASTC_6x6x6", - .Layout = MESA_FORMAT_LAYOUT_ASTC, - .BaseFormat = GL_RGBA, - .DataType = GL_UNSIGNED_NORMALIZED, - .RedBits = 8, .GreenBits = 8, .BlueBits = 8, .AlphaBits = 8, - .LuminanceBits = 0, .IntensityBits = 0, .DepthBits = 0, .StencilBits = 0, - .IsSRGBFormat = 1, - .BlockWidth = 6, .BlockHeight = 6, .BlockDepth = 6, - .BytesPerBlock = 16, - .Swizzle = { 0, 1, 2, 3 }, - .ArrayFormat = 0, + MESA_FORMAT_NONE, + "MESA_FORMAT_NONE", + MESA_FORMAT_LAYOUT_OTHER, + GL_NONE, + GL_NONE, + 0, 0, 0, 0, + 0, 0, 0, 0, + 1, 1, 1, + { 4, 4, 4, 5 }, + 0, + }, + { + MESA_FORMAT_A8B8G8R8_UNORM, + "MESA_FORMAT_A8B8G8R8_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 8, 8, 8, 8, + 0, 0, 0, 0, + 1, 1, 4, + { 3, 2, 1, 0 }, + MESA_ARRAY_FORMAT(1, 0, 0, 1, 4, 3, 2, 1, 0), + }, + { + MESA_FORMAT_X8B8G8R8_UNORM, + "MESA_FORMAT_X8B8G8R8_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGB, + GL_UNSIGNED_NORMALIZED, + 8, 8, 8, 0, + 0, 0, 0, 0, + 1, 1, 4, + { 3, 2, 1, 5 }, + MESA_ARRAY_FORMAT(1, 0, 0, 1, 4, 3, 2, 1, 5), + }, + { + MESA_FORMAT_R8G8B8A8_UNORM, + "MESA_FORMAT_R8G8B8A8_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 8, 8, 8, 8, + 0, 0, 0, 0, + 1, 1, 4, + { 0, 1, 2, 3 }, + MESA_ARRAY_FORMAT(1, 0, 0, 1, 4, 0, 1, 2, 3), + }, + { + MESA_FORMAT_R8G8B8X8_UNORM, + "MESA_FORMAT_R8G8B8X8_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGB, + GL_UNSIGNED_NORMALIZED, + 8, 8, 8, 0, + 0, 0, 0, 0, + 1, 1, 4, + { 0, 1, 2, 5 }, + MESA_ARRAY_FORMAT(1, 0, 0, 1, 4, 0, 1, 2, 5), + }, + { + MESA_FORMAT_B8G8R8A8_UNORM, + "MESA_FORMAT_B8G8R8A8_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 8, 8, 8, 8, + 0, 0, 0, 0, + 1, 1, 4, + { 2, 1, 0, 3 }, + MESA_ARRAY_FORMAT(1, 0, 0, 1, 4, 2, 1, 0, 3), + }, + { + MESA_FORMAT_B8G8R8X8_UNORM, + "MESA_FORMAT_B8G8R8X8_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGB, + GL_UNSIGNED_NORMALIZED, + 8, 8, 8, 0, + 0, 0, 0, 0, + 1, 1, 4, + { 2, 1, 0, 5 }, + MESA_ARRAY_FORMAT(1, 0, 0, 1, 4, 2, 1, 0, 5), + }, + { + MESA_FORMAT_A8R8G8B8_UNORM, + "MESA_FORMAT_A8R8G8B8_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 8, 8, 8, 8, + 0, 0, 0, 0, + 1, 1, 4, + { 1, 2, 3, 0 }, + MESA_ARRAY_FORMAT(1, 0, 0, 1, 4, 1, 2, 3, 0), + }, + { + MESA_FORMAT_X8R8G8B8_UNORM, + "MESA_FORMAT_X8R8G8B8_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGB, + GL_UNSIGNED_NORMALIZED, + 8, 8, 8, 0, + 0, 0, 0, 0, + 1, 1, 4, + { 1, 2, 3, 5 }, + MESA_ARRAY_FORMAT(1, 0, 0, 1, 4, 1, 2, 3, 5), + }, + { + MESA_FORMAT_L16A16_UNORM, + "MESA_FORMAT_L16A16_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_LUMINANCE_ALPHA, + GL_UNSIGNED_NORMALIZED, + 0, 0, 0, 16, + 16, 0, 0, 0, + 1, 1, 4, + { 0, 0, 0, 1 }, + MESA_ARRAY_FORMAT(2, 0, 0, 1, 2, 0, 0, 0, 1), + }, + { + MESA_FORMAT_A16L16_UNORM, + "MESA_FORMAT_A16L16_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_LUMINANCE_ALPHA, + GL_UNSIGNED_NORMALIZED, + 0, 0, 0, 16, + 16, 0, 0, 0, + 1, 1, 4, + { 1, 1, 1, 0 }, + MESA_ARRAY_FORMAT(2, 0, 0, 1, 2, 1, 1, 1, 0), + }, + { + MESA_FORMAT_B5G6R5_UNORM, + "MESA_FORMAT_B5G6R5_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGB, + GL_UNSIGNED_NORMALIZED, + 5, 6, 5, 0, + 0, 0, 0, 0, + 1, 1, 2, + { 2, 1, 0, 5 }, + 0, + }, + { + MESA_FORMAT_R5G6B5_UNORM, + "MESA_FORMAT_R5G6B5_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGB, + GL_UNSIGNED_NORMALIZED, + 5, 6, 5, 0, + 0, 0, 0, 0, + 1, 1, 2, + { 0, 1, 2, 5 }, + 0, + }, + { + MESA_FORMAT_B4G4R4A4_UNORM, + "MESA_FORMAT_B4G4R4A4_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 4, 4, 4, 4, + 0, 0, 0, 0, + 1, 1, 2, + { 2, 1, 0, 3 }, + 0, + }, + { + MESA_FORMAT_B4G4R4X4_UNORM, + "MESA_FORMAT_B4G4R4X4_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGB, + GL_UNSIGNED_NORMALIZED, + 4, 4, 4, 0, + 0, 0, 0, 0, + 1, 1, 2, + { 2, 1, 0, 5 }, + 0, + }, + { + MESA_FORMAT_A4R4G4B4_UNORM, + "MESA_FORMAT_A4R4G4B4_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 4, 4, 4, 4, + 0, 0, 0, 0, + 1, 1, 2, + { 1, 2, 3, 0 }, + 0, + }, + { + MESA_FORMAT_A1B5G5R5_UNORM, + "MESA_FORMAT_A1B5G5R5_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 5, 5, 5, 1, + 0, 0, 0, 0, + 1, 1, 2, + { 3, 2, 1, 0 }, + 0, + }, + { + MESA_FORMAT_B5G5R5A1_UNORM, + "MESA_FORMAT_B5G5R5A1_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 5, 5, 5, 1, + 0, 0, 0, 0, + 1, 1, 2, + { 2, 1, 0, 3 }, + 0, + }, + { + MESA_FORMAT_B5G5R5X1_UNORM, + "MESA_FORMAT_B5G5R5X1_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGB, + GL_UNSIGNED_NORMALIZED, + 5, 5, 5, 0, + 0, 0, 0, 0, + 1, 1, 2, + { 2, 1, 0, 5 }, + 0, + }, + { + MESA_FORMAT_A1R5G5B5_UNORM, + "MESA_FORMAT_A1R5G5B5_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 5, 5, 5, 1, + 0, 0, 0, 0, + 1, 1, 2, + { 1, 2, 3, 0 }, + 0, + }, + { + MESA_FORMAT_L8A8_UNORM, + "MESA_FORMAT_L8A8_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_LUMINANCE_ALPHA, + GL_UNSIGNED_NORMALIZED, + 0, 0, 0, 8, + 8, 0, 0, 0, + 1, 1, 2, + { 0, 0, 0, 1 }, + MESA_ARRAY_FORMAT(1, 0, 0, 1, 2, 0, 0, 0, 1), + }, + { + MESA_FORMAT_A8L8_UNORM, + "MESA_FORMAT_A8L8_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_LUMINANCE_ALPHA, + GL_UNSIGNED_NORMALIZED, + 0, 0, 0, 8, + 8, 0, 0, 0, + 1, 1, 2, + { 1, 1, 1, 0 }, + MESA_ARRAY_FORMAT(1, 0, 0, 1, 2, 1, 1, 1, 0), + }, + { + MESA_FORMAT_R8G8_UNORM, + "MESA_FORMAT_R8G8_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RG, + GL_UNSIGNED_NORMALIZED, + 8, 8, 0, 0, + 0, 0, 0, 0, + 1, 1, 2, + { 0, 1, 4, 5 }, + MESA_ARRAY_FORMAT(1, 0, 0, 1, 2, 0, 1, 4, 5), + }, + { + MESA_FORMAT_G8R8_UNORM, + "MESA_FORMAT_G8R8_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RG, + GL_UNSIGNED_NORMALIZED, + 8, 8, 0, 0, + 0, 0, 0, 0, + 1, 1, 2, + { 1, 0, 4, 5 }, + MESA_ARRAY_FORMAT(1, 0, 0, 1, 2, 1, 0, 4, 5), + }, + { + MESA_FORMAT_L4A4_UNORM, + "MESA_FORMAT_L4A4_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_LUMINANCE_ALPHA, + GL_UNSIGNED_NORMALIZED, + 0, 0, 0, 4, + 4, 0, 0, 0, + 1, 1, 1, + { 0, 0, 0, 1 }, + 0, + }, + { + MESA_FORMAT_B2G3R3_UNORM, + "MESA_FORMAT_B2G3R3_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGB, + GL_UNSIGNED_NORMALIZED, + 3, 3, 2, 0, + 0, 0, 0, 0, + 1, 1, 1, + { 2, 1, 0, 5 }, + 0, + }, + { + MESA_FORMAT_R16G16_UNORM, + "MESA_FORMAT_R16G16_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RG, + GL_UNSIGNED_NORMALIZED, + 16, 16, 0, 0, + 0, 0, 0, 0, + 1, 1, 4, + { 0, 1, 4, 5 }, + MESA_ARRAY_FORMAT(2, 0, 0, 1, 2, 0, 1, 4, 5), + }, + { + MESA_FORMAT_G16R16_UNORM, + "MESA_FORMAT_G16R16_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RG, + GL_UNSIGNED_NORMALIZED, + 16, 16, 0, 0, + 0, 0, 0, 0, + 1, 1, 4, + { 1, 0, 4, 5 }, + MESA_ARRAY_FORMAT(2, 0, 0, 1, 2, 1, 0, 4, 5), + }, + { + MESA_FORMAT_B10G10R10A2_UNORM, + "MESA_FORMAT_B10G10R10A2_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 10, 10, 10, 2, + 0, 0, 0, 0, + 1, 1, 4, + { 2, 1, 0, 3 }, + 0, + }, + { + MESA_FORMAT_B10G10R10X2_UNORM, + "MESA_FORMAT_B10G10R10X2_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGB, + GL_UNSIGNED_NORMALIZED, + 10, 10, 10, 0, + 0, 0, 0, 0, + 1, 1, 4, + { 2, 1, 0, 5 }, + 0, + }, + { + MESA_FORMAT_R10G10B10A2_UNORM, + "MESA_FORMAT_R10G10B10A2_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 10, 10, 10, 2, + 0, 0, 0, 0, + 1, 1, 4, + { 0, 1, 2, 3 }, + 0, + }, + { + MESA_FORMAT_R10G10B10X2_UNORM, + "MESA_FORMAT_R10G10B10X2_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGB, + GL_UNSIGNED_NORMALIZED, + 10, 10, 10, 0, + 0, 0, 0, 0, + 1, 1, 4, + { 0, 1, 2, 5 }, + 0, + }, + { + MESA_FORMAT_S8_UINT_Z24_UNORM, + "MESA_FORMAT_S8_UINT_Z24_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_DEPTH_STENCIL, + GL_UNSIGNED_NORMALIZED, + 0, 0, 0, 0, + 0, 0, 24, 8, + 1, 1, 4, + { 0, 1, 6, 6 }, + 0, + }, + { + MESA_FORMAT_X8_UINT_Z24_UNORM, + "MESA_FORMAT_X8_UINT_Z24_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_DEPTH_COMPONENT, + GL_UNSIGNED_NORMALIZED, + 0, 0, 0, 0, + 0, 0, 24, 0, + 1, 1, 4, + { 0, 6, 6, 6 }, + MESA_ARRAY_FORMAT(3, 0, 0, 1, 2, 0, 6, 6, 6), + }, + { + MESA_FORMAT_Z24_UNORM_S8_UINT, + "MESA_FORMAT_Z24_UNORM_S8_UINT", + MESA_FORMAT_LAYOUT_PACKED, + GL_DEPTH_STENCIL, + GL_UNSIGNED_NORMALIZED, + 0, 0, 0, 0, + 0, 0, 24, 8, + 1, 1, 4, + { 1, 0, 6, 6 }, + 0, + }, + { + MESA_FORMAT_Z24_UNORM_X8_UINT, + "MESA_FORMAT_Z24_UNORM_X8_UINT", + MESA_FORMAT_LAYOUT_PACKED, + GL_DEPTH_COMPONENT, + GL_UNSIGNED_NORMALIZED, + 0, 0, 0, 0, + 0, 0, 24, 0, + 1, 1, 4, + { 1, 6, 6, 6 }, + MESA_ARRAY_FORMAT(3, 0, 0, 1, 2, 1, 6, 6, 6), + }, + { + MESA_FORMAT_R3G3B2_UNORM, + "MESA_FORMAT_R3G3B2_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGB, + GL_UNSIGNED_NORMALIZED, + 3, 3, 2, 0, + 0, 0, 0, 0, + 1, 1, 1, + { 0, 1, 2, 5 }, + 0, + }, + { + MESA_FORMAT_A4B4G4R4_UNORM, + "MESA_FORMAT_A4B4G4R4_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 4, 4, 4, 4, + 0, 0, 0, 0, + 1, 1, 2, + { 3, 2, 1, 0 }, + 0, + }, + { + MESA_FORMAT_R4G4B4A4_UNORM, + "MESA_FORMAT_R4G4B4A4_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 4, 4, 4, 4, + 0, 0, 0, 0, + 1, 1, 2, + { 0, 1, 2, 3 }, + 0, + }, + { + MESA_FORMAT_R5G5B5A1_UNORM, + "MESA_FORMAT_R5G5B5A1_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 5, 5, 5, 1, + 0, 0, 0, 0, + 1, 1, 2, + { 0, 1, 2, 3 }, + 0, + }, + { + MESA_FORMAT_A2B10G10R10_UNORM, + "MESA_FORMAT_A2B10G10R10_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 10, 10, 10, 2, + 0, 0, 0, 0, + 1, 1, 4, + { 3, 2, 1, 0 }, + 0, + }, + { + MESA_FORMAT_A2R10G10B10_UNORM, + "MESA_FORMAT_A2R10G10B10_UNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 10, 10, 10, 2, + 0, 0, 0, 0, + 1, 1, 4, + { 1, 2, 3, 0 }, + 0, + }, + { + MESA_FORMAT_YCBCR, + "MESA_FORMAT_YCBCR", + MESA_FORMAT_LAYOUT_OTHER, + GL_YCBCR_MESA, + GL_UNSIGNED_NORMALIZED, + 0, 0, 0, 0, + 0, 0, 0, 0, + 1, 1, 2, + { 0, 1, 2, 3 }, + 0, + }, + { + MESA_FORMAT_YCBCR_REV, + "MESA_FORMAT_YCBCR_REV", + MESA_FORMAT_LAYOUT_OTHER, + GL_YCBCR_MESA, + GL_UNSIGNED_NORMALIZED, + 0, 0, 0, 0, + 0, 0, 0, 0, + 1, 1, 2, + { 0, 1, 2, 3 }, + 0, + }, + { + MESA_FORMAT_A_UNORM8, + "MESA_FORMAT_A_UNORM8", + MESA_FORMAT_LAYOUT_ARRAY, + GL_ALPHA, + GL_UNSIGNED_NORMALIZED, + 0, 0, 0, 8, + 0, 0, 0, 0, + 1, 1, 1, + { 4, 4, 4, 0 }, + MESA_ARRAY_FORMAT(1, 0, 0, 1, 1, 4, 4, 4, 0), + }, + { + MESA_FORMAT_A_UNORM16, + "MESA_FORMAT_A_UNORM16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_ALPHA, + GL_UNSIGNED_NORMALIZED, + 0, 0, 0, 16, + 0, 0, 0, 0, + 1, 1, 2, + { 4, 4, 4, 0 }, + MESA_ARRAY_FORMAT(2, 0, 0, 1, 1, 4, 4, 4, 0), + }, + { + MESA_FORMAT_L_UNORM8, + "MESA_FORMAT_L_UNORM8", + MESA_FORMAT_LAYOUT_ARRAY, + GL_LUMINANCE, + GL_UNSIGNED_NORMALIZED, + 0, 0, 0, 0, + 8, 0, 0, 0, + 1, 1, 1, + { 0, 0, 0, 5 }, + MESA_ARRAY_FORMAT(1, 0, 0, 1, 1, 0, 0, 0, 5), + }, + { + MESA_FORMAT_L_UNORM16, + "MESA_FORMAT_L_UNORM16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_LUMINANCE, + GL_UNSIGNED_NORMALIZED, + 0, 0, 0, 0, + 16, 0, 0, 0, + 1, 1, 2, + { 0, 0, 0, 5 }, + MESA_ARRAY_FORMAT(2, 0, 0, 1, 1, 0, 0, 0, 5), + }, + { + MESA_FORMAT_I_UNORM8, + "MESA_FORMAT_I_UNORM8", + MESA_FORMAT_LAYOUT_ARRAY, + GL_INTENSITY, + GL_UNSIGNED_NORMALIZED, + 0, 0, 0, 0, + 0, 8, 0, 0, + 1, 1, 1, + { 0, 0, 0, 0 }, + MESA_ARRAY_FORMAT(1, 0, 0, 1, 1, 0, 0, 0, 0), + }, + { + MESA_FORMAT_I_UNORM16, + "MESA_FORMAT_I_UNORM16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_INTENSITY, + GL_UNSIGNED_NORMALIZED, + 0, 0, 0, 0, + 0, 16, 0, 0, + 1, 1, 2, + { 0, 0, 0, 0 }, + MESA_ARRAY_FORMAT(2, 0, 0, 1, 1, 0, 0, 0, 0), + }, + { + MESA_FORMAT_R_UNORM8, + "MESA_FORMAT_R_UNORM8", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RED, + GL_UNSIGNED_NORMALIZED, + 8, 0, 0, 0, + 0, 0, 0, 0, + 1, 1, 1, + { 0, 4, 4, 5 }, + MESA_ARRAY_FORMAT(1, 0, 0, 1, 1, 0, 4, 4, 5), + }, + { + MESA_FORMAT_R_UNORM16, + "MESA_FORMAT_R_UNORM16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RED, + GL_UNSIGNED_NORMALIZED, + 16, 0, 0, 0, + 0, 0, 0, 0, + 1, 1, 2, + { 0, 4, 4, 5 }, + MESA_ARRAY_FORMAT(2, 0, 0, 1, 1, 0, 4, 4, 5), + }, + { + MESA_FORMAT_BGR_UNORM8, + "MESA_FORMAT_BGR_UNORM8", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RGB, + GL_UNSIGNED_NORMALIZED, + 8, 8, 8, 0, + 0, 0, 0, 0, + 1, 1, 3, + { 2, 1, 0, 5 }, + MESA_ARRAY_FORMAT(1, 0, 0, 1, 3, 2, 1, 0, 5), + }, + { + MESA_FORMAT_RGB_UNORM8, + "MESA_FORMAT_RGB_UNORM8", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RGB, + GL_UNSIGNED_NORMALIZED, + 8, 8, 8, 0, + 0, 0, 0, 0, + 1, 1, 3, + { 0, 1, 2, 5 }, + MESA_ARRAY_FORMAT(1, 0, 0, 1, 3, 0, 1, 2, 5), + }, + { + MESA_FORMAT_RGBA_UNORM16, + "MESA_FORMAT_RGBA_UNORM16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 16, 16, 16, 16, + 0, 0, 0, 0, + 1, 1, 8, + { 0, 1, 2, 3 }, + MESA_ARRAY_FORMAT(2, 0, 0, 1, 4, 0, 1, 2, 3), + }, + { + MESA_FORMAT_RGBX_UNORM16, + "MESA_FORMAT_RGBX_UNORM16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RGB, + GL_UNSIGNED_NORMALIZED, + 16, 16, 16, 0, + 0, 0, 0, 0, + 1, 1, 8, + { 0, 1, 2, 5 }, + MESA_ARRAY_FORMAT(2, 0, 0, 1, 4, 0, 1, 2, 5), + }, + { + MESA_FORMAT_Z_UNORM16, + "MESA_FORMAT_Z_UNORM16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_DEPTH_COMPONENT, + GL_UNSIGNED_NORMALIZED, + 0, 0, 0, 0, + 0, 0, 16, 0, + 1, 1, 2, + { 0, 6, 6, 6 }, + MESA_ARRAY_FORMAT(2, 0, 0, 1, 1, 0, 6, 6, 6), + }, + { + MESA_FORMAT_Z_UNORM32, + "MESA_FORMAT_Z_UNORM32", + MESA_FORMAT_LAYOUT_ARRAY, + GL_DEPTH_COMPONENT, + GL_UNSIGNED_NORMALIZED, + 0, 0, 0, 0, + 0, 0, 32, 0, + 1, 1, 4, + { 0, 6, 6, 6 }, + MESA_ARRAY_FORMAT(4, 0, 0, 1, 1, 0, 6, 6, 6), + }, + { + MESA_FORMAT_S_UINT8, + "MESA_FORMAT_S_UINT8", + MESA_FORMAT_LAYOUT_ARRAY, + GL_STENCIL_INDEX, + GL_UNSIGNED_INT, + 0, 0, 0, 0, + 0, 0, 0, 8, + 1, 1, 1, + { 6, 0, 6, 6 }, + MESA_ARRAY_FORMAT(1, 0, 0, 0, 1, 6, 0, 6, 6), + }, + { + MESA_FORMAT_A8B8G8R8_SNORM, + "MESA_FORMAT_A8B8G8R8_SNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_SIGNED_NORMALIZED, + 8, 8, 8, 8, + 0, 0, 0, 0, + 1, 1, 4, + { 3, 2, 1, 0 }, + MESA_ARRAY_FORMAT(1, 1, 0, 1, 4, 3, 2, 1, 0), + }, + { + MESA_FORMAT_X8B8G8R8_SNORM, + "MESA_FORMAT_X8B8G8R8_SNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGB, + GL_SIGNED_NORMALIZED, + 8, 8, 8, 0, + 0, 0, 0, 0, + 1, 1, 4, + { 3, 2, 1, 5 }, + MESA_ARRAY_FORMAT(1, 1, 0, 1, 4, 3, 2, 1, 5), + }, + { + MESA_FORMAT_R8G8B8A8_SNORM, + "MESA_FORMAT_R8G8B8A8_SNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_SIGNED_NORMALIZED, + 8, 8, 8, 8, + 0, 0, 0, 0, + 1, 1, 4, + { 0, 1, 2, 3 }, + MESA_ARRAY_FORMAT(1, 1, 0, 1, 4, 0, 1, 2, 3), + }, + { + MESA_FORMAT_R8G8B8X8_SNORM, + "MESA_FORMAT_R8G8B8X8_SNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGB, + GL_SIGNED_NORMALIZED, + 8, 8, 8, 0, + 0, 0, 0, 0, + 1, 1, 4, + { 0, 1, 2, 5 }, + MESA_ARRAY_FORMAT(1, 1, 0, 1, 4, 0, 1, 2, 5), + }, + { + MESA_FORMAT_R16G16_SNORM, + "MESA_FORMAT_R16G16_SNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RG, + GL_SIGNED_NORMALIZED, + 16, 16, 0, 0, + 0, 0, 0, 0, + 1, 1, 4, + { 0, 1, 4, 5 }, + MESA_ARRAY_FORMAT(2, 1, 0, 1, 2, 0, 1, 4, 5), + }, + { + MESA_FORMAT_G16R16_SNORM, + "MESA_FORMAT_G16R16_SNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RG, + GL_SIGNED_NORMALIZED, + 16, 16, 0, 0, + 0, 0, 0, 0, + 1, 1, 4, + { 1, 0, 4, 5 }, + MESA_ARRAY_FORMAT(2, 1, 0, 1, 2, 1, 0, 4, 5), + }, + { + MESA_FORMAT_R8G8_SNORM, + "MESA_FORMAT_R8G8_SNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RG, + GL_SIGNED_NORMALIZED, + 8, 8, 0, 0, + 0, 0, 0, 0, + 1, 1, 2, + { 0, 1, 4, 5 }, + MESA_ARRAY_FORMAT(1, 1, 0, 1, 2, 0, 1, 4, 5), + }, + { + MESA_FORMAT_G8R8_SNORM, + "MESA_FORMAT_G8R8_SNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_RG, + GL_SIGNED_NORMALIZED, + 8, 8, 0, 0, + 0, 0, 0, 0, + 1, 1, 2, + { 1, 0, 4, 5 }, + MESA_ARRAY_FORMAT(1, 1, 0, 1, 2, 1, 0, 4, 5), + }, + { + MESA_FORMAT_L8A8_SNORM, + "MESA_FORMAT_L8A8_SNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_LUMINANCE_ALPHA, + GL_SIGNED_NORMALIZED, + 0, 0, 0, 8, + 8, 0, 0, 0, + 1, 1, 2, + { 0, 0, 0, 1 }, + MESA_ARRAY_FORMAT(1, 1, 0, 1, 2, 0, 0, 0, 1), + }, + { + MESA_FORMAT_A8L8_SNORM, + "MESA_FORMAT_A8L8_SNORM", + MESA_FORMAT_LAYOUT_PACKED, + GL_LUMINANCE_ALPHA, + GL_SIGNED_NORMALIZED, + 0, 0, 0, 8, + 8, 0, 0, 0, + 1, 1, 2, + { 1, 1, 1, 0 }, + MESA_ARRAY_FORMAT(1, 1, 0, 1, 2, 1, 1, 1, 0), + }, + { + MESA_FORMAT_A_SNORM8, + "MESA_FORMAT_A_SNORM8", + MESA_FORMAT_LAYOUT_ARRAY, + GL_ALPHA, + GL_SIGNED_NORMALIZED, + 0, 0, 0, 8, + 0, 0, 0, 0, + 1, 1, 1, + { 4, 4, 4, 0 }, + MESA_ARRAY_FORMAT(1, 1, 0, 1, 1, 4, 4, 4, 0), + }, + { + MESA_FORMAT_A_SNORM16, + "MESA_FORMAT_A_SNORM16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_ALPHA, + GL_SIGNED_NORMALIZED, + 0, 0, 0, 16, + 0, 0, 0, 0, + 1, 1, 2, + { 4, 4, 4, 0 }, + MESA_ARRAY_FORMAT(2, 1, 0, 1, 1, 4, 4, 4, 0), + }, + { + MESA_FORMAT_L_SNORM8, + "MESA_FORMAT_L_SNORM8", + MESA_FORMAT_LAYOUT_ARRAY, + GL_LUMINANCE, + GL_SIGNED_NORMALIZED, + 0, 0, 0, 0, + 8, 0, 0, 0, + 1, 1, 1, + { 0, 0, 0, 5 }, + MESA_ARRAY_FORMAT(1, 1, 0, 1, 1, 0, 0, 0, 5), + }, + { + MESA_FORMAT_L_SNORM16, + "MESA_FORMAT_L_SNORM16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_LUMINANCE, + GL_SIGNED_NORMALIZED, + 0, 0, 0, 0, + 16, 0, 0, 0, + 1, 1, 2, + { 0, 0, 0, 5 }, + MESA_ARRAY_FORMAT(2, 1, 0, 1, 1, 0, 0, 0, 5), + }, + { + MESA_FORMAT_I_SNORM8, + "MESA_FORMAT_I_SNORM8", + MESA_FORMAT_LAYOUT_ARRAY, + GL_INTENSITY, + GL_SIGNED_NORMALIZED, + 0, 0, 0, 0, + 0, 8, 0, 0, + 1, 1, 1, + { 0, 0, 0, 0 }, + MESA_ARRAY_FORMAT(1, 1, 0, 1, 1, 0, 0, 0, 0), + }, + { + MESA_FORMAT_I_SNORM16, + "MESA_FORMAT_I_SNORM16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_INTENSITY, + GL_SIGNED_NORMALIZED, + 0, 0, 0, 0, + 0, 16, 0, 0, + 1, 1, 2, + { 0, 0, 0, 0 }, + MESA_ARRAY_FORMAT(2, 1, 0, 1, 1, 0, 0, 0, 0), + }, + { + MESA_FORMAT_R_SNORM8, + "MESA_FORMAT_R_SNORM8", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RED, + GL_SIGNED_NORMALIZED, + 8, 0, 0, 0, + 0, 0, 0, 0, + 1, 1, 1, + { 0, 4, 4, 5 }, + MESA_ARRAY_FORMAT(1, 1, 0, 1, 1, 0, 4, 4, 5), + }, + { + MESA_FORMAT_R_SNORM16, + "MESA_FORMAT_R_SNORM16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RED, + GL_SIGNED_NORMALIZED, + 16, 0, 0, 0, + 0, 0, 0, 0, + 1, 1, 2, + { 0, 4, 4, 5 }, + MESA_ARRAY_FORMAT(2, 1, 0, 1, 1, 0, 4, 4, 5), + }, + { + MESA_FORMAT_LA_SNORM16, + "MESA_FORMAT_LA_SNORM16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_LUMINANCE_ALPHA, + GL_SIGNED_NORMALIZED, + 0, 0, 0, 16, + 16, 0, 0, 0, + 1, 1, 4, + { 0, 0, 0, 1 }, + MESA_ARRAY_FORMAT(2, 1, 0, 1, 2, 0, 0, 0, 1), + }, + { + MESA_FORMAT_RGB_SNORM16, + "MESA_FORMAT_RGB_SNORM16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RGB, + GL_SIGNED_NORMALIZED, + 16, 16, 16, 0, + 0, 0, 0, 0, + 1, 1, 6, + { 0, 1, 2, 5 }, + MESA_ARRAY_FORMAT(2, 1, 0, 1, 3, 0, 1, 2, 5), + }, + { + MESA_FORMAT_RGBA_SNORM16, + "MESA_FORMAT_RGBA_SNORM16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RGBA, + GL_SIGNED_NORMALIZED, + 16, 16, 16, 16, + 0, 0, 0, 0, + 1, 1, 8, + { 0, 1, 2, 3 }, + MESA_ARRAY_FORMAT(2, 1, 0, 1, 4, 0, 1, 2, 3), + }, + { + MESA_FORMAT_RGBX_SNORM16, + "MESA_FORMAT_RGBX_SNORM16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RGB, + GL_SIGNED_NORMALIZED, + 16, 16, 16, 0, + 0, 0, 0, 0, + 1, 1, 8, + { 0, 1, 2, 5 }, + MESA_ARRAY_FORMAT(2, 1, 0, 1, 4, 0, 1, 2, 5), + }, + { + MESA_FORMAT_A8B8G8R8_SRGB, + "MESA_FORMAT_A8B8G8R8_SRGB", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 8, 8, 8, 8, + 0, 0, 0, 0, + 1, 1, 4, + { 3, 2, 1, 0 }, + MESA_ARRAY_FORMAT(1, 0, 0, 1, 4, 3, 2, 1, 0), + }, + { + MESA_FORMAT_B8G8R8A8_SRGB, + "MESA_FORMAT_B8G8R8A8_SRGB", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 8, 8, 8, 8, + 0, 0, 0, 0, + 1, 1, 4, + { 2, 1, 0, 3 }, + MESA_ARRAY_FORMAT(1, 0, 0, 1, 4, 2, 1, 0, 3), + }, + { + MESA_FORMAT_A8R8G8B8_SRGB, + "MESA_FORMAT_A8R8G8B8_SRGB", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 8, 8, 8, 8, + 0, 0, 0, 0, + 1, 1, 4, + { 1, 2, 3, 0 }, + MESA_ARRAY_FORMAT(1, 0, 0, 1, 4, 1, 2, 3, 0), + }, + { + MESA_FORMAT_B8G8R8X8_SRGB, + "MESA_FORMAT_B8G8R8X8_SRGB", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGB, + GL_UNSIGNED_NORMALIZED, + 8, 8, 8, 0, + 0, 0, 0, 0, + 1, 1, 4, + { 2, 1, 0, 5 }, + MESA_ARRAY_FORMAT(1, 0, 0, 1, 4, 2, 1, 0, 5), + }, + { + MESA_FORMAT_X8R8G8B8_SRGB, + "MESA_FORMAT_X8R8G8B8_SRGB", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGB, + GL_UNSIGNED_NORMALIZED, + 8, 8, 8, 0, + 0, 0, 0, 0, + 1, 1, 4, + { 1, 2, 3, 5 }, + MESA_ARRAY_FORMAT(1, 0, 0, 1, 4, 1, 2, 3, 5), + }, + { + MESA_FORMAT_R8G8B8A8_SRGB, + "MESA_FORMAT_R8G8B8A8_SRGB", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 8, 8, 8, 8, + 0, 0, 0, 0, + 1, 1, 4, + { 0, 1, 2, 3 }, + MESA_ARRAY_FORMAT(1, 0, 0, 1, 4, 0, 1, 2, 3), + }, + { + MESA_FORMAT_R8G8B8X8_SRGB, + "MESA_FORMAT_R8G8B8X8_SRGB", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGB, + GL_UNSIGNED_NORMALIZED, + 8, 8, 8, 0, + 0, 0, 0, 0, + 1, 1, 4, + { 0, 1, 2, 5 }, + MESA_ARRAY_FORMAT(1, 0, 0, 1, 4, 0, 1, 2, 5), + }, + { + MESA_FORMAT_X8B8G8R8_SRGB, + "MESA_FORMAT_X8B8G8R8_SRGB", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGB, + GL_UNSIGNED_NORMALIZED, + 8, 8, 8, 0, + 0, 0, 0, 0, + 1, 1, 4, + { 3, 2, 1, 5 }, + MESA_ARRAY_FORMAT(1, 0, 0, 1, 4, 3, 2, 1, 5), + }, + { + MESA_FORMAT_L8A8_SRGB, + "MESA_FORMAT_L8A8_SRGB", + MESA_FORMAT_LAYOUT_PACKED, + GL_LUMINANCE_ALPHA, + GL_UNSIGNED_NORMALIZED, + 0, 0, 0, 8, + 8, 0, 0, 0, + 1, 1, 2, + { 0, 0, 0, 1 }, + MESA_ARRAY_FORMAT(1, 0, 0, 1, 2, 0, 0, 0, 1), + }, + { + MESA_FORMAT_A8L8_SRGB, + "MESA_FORMAT_A8L8_SRGB", + MESA_FORMAT_LAYOUT_PACKED, + GL_LUMINANCE_ALPHA, + GL_UNSIGNED_NORMALIZED, + 0, 0, 0, 8, + 8, 0, 0, 0, + 1, 1, 2, + { 1, 1, 1, 0 }, + MESA_ARRAY_FORMAT(1, 0, 0, 1, 2, 1, 1, 1, 0), + }, + { + MESA_FORMAT_L_SRGB8, + "MESA_FORMAT_L_SRGB8", + MESA_FORMAT_LAYOUT_ARRAY, + GL_LUMINANCE, + GL_UNSIGNED_NORMALIZED, + 0, 0, 0, 0, + 8, 0, 0, 0, + 1, 1, 1, + { 0, 0, 0, 5 }, + MESA_ARRAY_FORMAT(1, 0, 0, 1, 1, 0, 0, 0, 5), + }, + { + MESA_FORMAT_BGR_SRGB8, + "MESA_FORMAT_BGR_SRGB8", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RGB, + GL_UNSIGNED_NORMALIZED, + 8, 8, 8, 0, + 0, 0, 0, 0, + 1, 1, 3, + { 2, 1, 0, 5 }, + MESA_ARRAY_FORMAT(1, 0, 0, 1, 3, 2, 1, 0, 5), + }, + { + MESA_FORMAT_R9G9B9E5_FLOAT, + "MESA_FORMAT_R9G9B9E5_FLOAT", + MESA_FORMAT_LAYOUT_OTHER, + GL_RGB, + GL_FLOAT, + 9, 9, 9, 0, + 0, 0, 0, 0, + 1, 1, 4, + { 0, 1, 2, 5 }, + 0, + }, + { + MESA_FORMAT_R11G11B10_FLOAT, + "MESA_FORMAT_R11G11B10_FLOAT", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGB, + GL_FLOAT, + 11, 11, 10, 0, + 0, 0, 0, 0, + 1, 1, 4, + { 0, 1, 2, 5 }, + 0, + }, + { + MESA_FORMAT_Z32_FLOAT_S8X24_UINT, + "MESA_FORMAT_Z32_FLOAT_S8X24_UINT", + MESA_FORMAT_LAYOUT_PACKED, + GL_DEPTH_STENCIL, + GL_FLOAT, + 0, 0, 0, 0, + 0, 0, 32, 8, + 1, 1, 8, + { 2, 0, 6, 6 }, + 0, + }, + { + MESA_FORMAT_A_FLOAT16, + "MESA_FORMAT_A_FLOAT16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_ALPHA, + GL_FLOAT, + 0, 0, 0, 16, + 0, 0, 0, 0, + 1, 1, 2, + { 4, 4, 4, 0 }, + MESA_ARRAY_FORMAT(2, 1, 1, 1, 1, 4, 4, 4, 0), + }, + { + MESA_FORMAT_A_FLOAT32, + "MESA_FORMAT_A_FLOAT32", + MESA_FORMAT_LAYOUT_ARRAY, + GL_ALPHA, + GL_FLOAT, + 0, 0, 0, 32, + 0, 0, 0, 0, + 1, 1, 4, + { 4, 4, 4, 0 }, + MESA_ARRAY_FORMAT(4, 1, 1, 1, 1, 4, 4, 4, 0), + }, + { + MESA_FORMAT_L_FLOAT16, + "MESA_FORMAT_L_FLOAT16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_LUMINANCE, + GL_FLOAT, + 0, 0, 0, 0, + 16, 0, 0, 0, + 1, 1, 2, + { 0, 0, 0, 5 }, + MESA_ARRAY_FORMAT(2, 1, 1, 1, 1, 0, 0, 0, 5), + }, + { + MESA_FORMAT_L_FLOAT32, + "MESA_FORMAT_L_FLOAT32", + MESA_FORMAT_LAYOUT_ARRAY, + GL_LUMINANCE, + GL_FLOAT, + 0, 0, 0, 0, + 32, 0, 0, 0, + 1, 1, 4, + { 0, 0, 0, 5 }, + MESA_ARRAY_FORMAT(4, 1, 1, 1, 1, 0, 0, 0, 5), + }, + { + MESA_FORMAT_LA_FLOAT16, + "MESA_FORMAT_LA_FLOAT16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_LUMINANCE_ALPHA, + GL_FLOAT, + 0, 0, 0, 16, + 16, 0, 0, 0, + 1, 1, 4, + { 0, 0, 0, 1 }, + MESA_ARRAY_FORMAT(2, 1, 1, 1, 2, 0, 0, 0, 1), + }, + { + MESA_FORMAT_LA_FLOAT32, + "MESA_FORMAT_LA_FLOAT32", + MESA_FORMAT_LAYOUT_ARRAY, + GL_LUMINANCE_ALPHA, + GL_FLOAT, + 0, 0, 0, 32, + 32, 0, 0, 0, + 1, 1, 8, + { 0, 0, 0, 1 }, + MESA_ARRAY_FORMAT(4, 1, 1, 1, 2, 0, 0, 0, 1), + }, + { + MESA_FORMAT_I_FLOAT16, + "MESA_FORMAT_I_FLOAT16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_INTENSITY, + GL_FLOAT, + 0, 0, 0, 0, + 0, 16, 0, 0, + 1, 1, 2, + { 0, 0, 0, 0 }, + MESA_ARRAY_FORMAT(2, 1, 1, 1, 1, 0, 0, 0, 0), + }, + { + MESA_FORMAT_I_FLOAT32, + "MESA_FORMAT_I_FLOAT32", + MESA_FORMAT_LAYOUT_ARRAY, + GL_INTENSITY, + GL_FLOAT, + 0, 0, 0, 0, + 0, 32, 0, 0, + 1, 1, 4, + { 0, 0, 0, 0 }, + MESA_ARRAY_FORMAT(4, 1, 1, 1, 1, 0, 0, 0, 0), + }, + { + MESA_FORMAT_R_FLOAT16, + "MESA_FORMAT_R_FLOAT16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RED, + GL_FLOAT, + 16, 0, 0, 0, + 0, 0, 0, 0, + 1, 1, 2, + { 0, 4, 4, 5 }, + MESA_ARRAY_FORMAT(2, 1, 1, 1, 1, 0, 4, 4, 5), + }, + { + MESA_FORMAT_R_FLOAT32, + "MESA_FORMAT_R_FLOAT32", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RED, + GL_FLOAT, + 32, 0, 0, 0, + 0, 0, 0, 0, + 1, 1, 4, + { 0, 4, 4, 5 }, + MESA_ARRAY_FORMAT(4, 1, 1, 1, 1, 0, 4, 4, 5), + }, + { + MESA_FORMAT_RG_FLOAT16, + "MESA_FORMAT_RG_FLOAT16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RG, + GL_FLOAT, + 16, 16, 0, 0, + 0, 0, 0, 0, + 1, 1, 4, + { 0, 1, 4, 5 }, + MESA_ARRAY_FORMAT(2, 1, 1, 1, 2, 0, 1, 4, 5), + }, + { + MESA_FORMAT_RG_FLOAT32, + "MESA_FORMAT_RG_FLOAT32", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RG, + GL_FLOAT, + 32, 32, 0, 0, + 0, 0, 0, 0, + 1, 1, 8, + { 0, 1, 4, 5 }, + MESA_ARRAY_FORMAT(4, 1, 1, 1, 2, 0, 1, 4, 5), + }, + { + MESA_FORMAT_RGB_FLOAT16, + "MESA_FORMAT_RGB_FLOAT16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RGB, + GL_FLOAT, + 16, 16, 16, 0, + 0, 0, 0, 0, + 1, 1, 6, + { 0, 1, 2, 5 }, + MESA_ARRAY_FORMAT(2, 1, 1, 1, 3, 0, 1, 2, 5), + }, + { + MESA_FORMAT_RGB_FLOAT32, + "MESA_FORMAT_RGB_FLOAT32", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RGB, + GL_FLOAT, + 32, 32, 32, 0, + 0, 0, 0, 0, + 1, 1, 12, + { 0, 1, 2, 5 }, + MESA_ARRAY_FORMAT(4, 1, 1, 1, 3, 0, 1, 2, 5), + }, + { + MESA_FORMAT_RGBA_FLOAT16, + "MESA_FORMAT_RGBA_FLOAT16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RGBA, + GL_FLOAT, + 16, 16, 16, 16, + 0, 0, 0, 0, + 1, 1, 8, + { 0, 1, 2, 3 }, + MESA_ARRAY_FORMAT(2, 1, 1, 1, 4, 0, 1, 2, 3), + }, + { + MESA_FORMAT_RGBA_FLOAT32, + "MESA_FORMAT_RGBA_FLOAT32", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RGBA, + GL_FLOAT, + 32, 32, 32, 32, + 0, 0, 0, 0, + 1, 1, 16, + { 0, 1, 2, 3 }, + MESA_ARRAY_FORMAT(4, 1, 1, 1, 4, 0, 1, 2, 3), + }, + { + MESA_FORMAT_RGBX_FLOAT16, + "MESA_FORMAT_RGBX_FLOAT16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RGB, + GL_FLOAT, + 16, 16, 16, 0, + 0, 0, 0, 0, + 1, 1, 8, + { 0, 1, 2, 5 }, + MESA_ARRAY_FORMAT(2, 1, 1, 1, 4, 0, 1, 2, 5), + }, + { + MESA_FORMAT_RGBX_FLOAT32, + "MESA_FORMAT_RGBX_FLOAT32", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RGB, + GL_FLOAT, + 32, 32, 32, 0, + 0, 0, 0, 0, + 1, 1, 16, + { 0, 1, 2, 5 }, + MESA_ARRAY_FORMAT(4, 1, 1, 1, 4, 0, 1, 2, 5), + }, + { + MESA_FORMAT_Z_FLOAT32, + "MESA_FORMAT_Z_FLOAT32", + MESA_FORMAT_LAYOUT_ARRAY, + GL_DEPTH_COMPONENT, + GL_FLOAT, + 0, 0, 0, 0, + 0, 0, 32, 0, + 1, 1, 4, + { 0, 6, 6, 6 }, + MESA_ARRAY_FORMAT(4, 1, 1, 1, 1, 0, 6, 6, 6), + }, + { + MESA_FORMAT_A8B8G8R8_UINT, + "MESA_FORMAT_A8B8G8R8_UINT", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_INT, + 8, 8, 8, 8, + 0, 0, 0, 0, + 1, 1, 4, + { 3, 2, 1, 0 }, + MESA_ARRAY_FORMAT(1, 0, 0, 0, 4, 3, 2, 1, 0), + }, + { + MESA_FORMAT_A8R8G8B8_UINT, + "MESA_FORMAT_A8R8G8B8_UINT", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_INT, + 8, 8, 8, 8, + 0, 0, 0, 0, + 1, 1, 4, + { 1, 2, 3, 0 }, + MESA_ARRAY_FORMAT(1, 0, 0, 0, 4, 1, 2, 3, 0), + }, + { + MESA_FORMAT_R8G8B8A8_UINT, + "MESA_FORMAT_R8G8B8A8_UINT", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_INT, + 8, 8, 8, 8, + 0, 0, 0, 0, + 1, 1, 4, + { 0, 1, 2, 3 }, + MESA_ARRAY_FORMAT(1, 0, 0, 0, 4, 0, 1, 2, 3), + }, + { + MESA_FORMAT_B8G8R8A8_UINT, + "MESA_FORMAT_B8G8R8A8_UINT", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_INT, + 8, 8, 8, 8, + 0, 0, 0, 0, + 1, 1, 4, + { 2, 1, 0, 3 }, + MESA_ARRAY_FORMAT(1, 0, 0, 0, 4, 2, 1, 0, 3), + }, + { + MESA_FORMAT_B10G10R10A2_UINT, + "MESA_FORMAT_B10G10R10A2_UINT", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_INT, + 10, 10, 10, 2, + 0, 0, 0, 0, + 1, 1, 4, + { 2, 1, 0, 3 }, + 0, + }, + { + MESA_FORMAT_R10G10B10A2_UINT, + "MESA_FORMAT_R10G10B10A2_UINT", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_INT, + 10, 10, 10, 2, + 0, 0, 0, 0, + 1, 1, 4, + { 0, 1, 2, 3 }, + 0, + }, + { + MESA_FORMAT_A2B10G10R10_UINT, + "MESA_FORMAT_A2B10G10R10_UINT", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_INT, + 10, 10, 10, 2, + 0, 0, 0, 0, + 1, 1, 4, + { 3, 2, 1, 0 }, + 0, + }, + { + MESA_FORMAT_A2R10G10B10_UINT, + "MESA_FORMAT_A2R10G10B10_UINT", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_INT, + 10, 10, 10, 2, + 0, 0, 0, 0, + 1, 1, 4, + { 1, 2, 3, 0 }, + 0, + }, + { + MESA_FORMAT_B5G6R5_UINT, + "MESA_FORMAT_B5G6R5_UINT", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGB, + GL_UNSIGNED_INT, + 5, 6, 5, 0, + 0, 0, 0, 0, + 1, 1, 2, + { 2, 1, 0, 5 }, + 0, + }, + { + MESA_FORMAT_R5G6B5_UINT, + "MESA_FORMAT_R5G6B5_UINT", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGB, + GL_UNSIGNED_INT, + 5, 6, 5, 0, + 0, 0, 0, 0, + 1, 1, 2, + { 0, 1, 2, 5 }, + 0, + }, + { + MESA_FORMAT_B2G3R3_UINT, + "MESA_FORMAT_B2G3R3_UINT", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGB, + GL_UNSIGNED_INT, + 3, 3, 2, 0, + 0, 0, 0, 0, + 1, 1, 1, + { 2, 1, 0, 5 }, + 0, + }, + { + MESA_FORMAT_R3G3B2_UINT, + "MESA_FORMAT_R3G3B2_UINT", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGB, + GL_UNSIGNED_INT, + 3, 3, 2, 0, + 0, 0, 0, 0, + 1, 1, 1, + { 0, 1, 2, 5 }, + 0, + }, + { + MESA_FORMAT_A4B4G4R4_UINT, + "MESA_FORMAT_A4B4G4R4_UINT", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_INT, + 4, 4, 4, 4, + 0, 0, 0, 0, + 1, 1, 2, + { 3, 2, 1, 0 }, + 0, + }, + { + MESA_FORMAT_R4G4B4A4_UINT, + "MESA_FORMAT_R4G4B4A4_UINT", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_INT, + 4, 4, 4, 4, + 0, 0, 0, 0, + 1, 1, 2, + { 0, 1, 2, 3 }, + 0, + }, + { + MESA_FORMAT_B4G4R4A4_UINT, + "MESA_FORMAT_B4G4R4A4_UINT", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_INT, + 4, 4, 4, 4, + 0, 0, 0, 0, + 1, 1, 2, + { 2, 1, 0, 3 }, + 0, + }, + { + MESA_FORMAT_A4R4G4B4_UINT, + "MESA_FORMAT_A4R4G4B4_UINT", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_INT, + 4, 4, 4, 4, + 0, 0, 0, 0, + 1, 1, 2, + { 1, 2, 3, 0 }, + 0, + }, + { + MESA_FORMAT_A1B5G5R5_UINT, + "MESA_FORMAT_A1B5G5R5_UINT", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_INT, + 5, 5, 5, 1, + 0, 0, 0, 0, + 1, 1, 2, + { 3, 2, 1, 0 }, + 0, + }, + { + MESA_FORMAT_B5G5R5A1_UINT, + "MESA_FORMAT_B5G5R5A1_UINT", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_INT, + 5, 5, 5, 1, + 0, 0, 0, 0, + 1, 1, 2, + { 2, 1, 0, 3 }, + 0, + }, + { + MESA_FORMAT_A1R5G5B5_UINT, + "MESA_FORMAT_A1R5G5B5_UINT", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_INT, + 5, 5, 5, 1, + 0, 0, 0, 0, + 1, 1, 2, + { 1, 2, 3, 0 }, + 0, + }, + { + MESA_FORMAT_R5G5B5A1_UINT, + "MESA_FORMAT_R5G5B5A1_UINT", + MESA_FORMAT_LAYOUT_PACKED, + GL_RGBA, + GL_UNSIGNED_INT, + 5, 5, 5, 1, + 0, 0, 0, 0, + 1, 1, 2, + { 0, 1, 2, 3 }, + 0, + }, + { + MESA_FORMAT_A_UINT8, + "MESA_FORMAT_A_UINT8", + MESA_FORMAT_LAYOUT_ARRAY, + GL_ALPHA, + GL_UNSIGNED_INT, + 0, 0, 0, 8, + 0, 0, 0, 0, + 1, 1, 1, + { 4, 4, 4, 0 }, + MESA_ARRAY_FORMAT(1, 0, 0, 0, 1, 4, 4, 4, 0), + }, + { + MESA_FORMAT_A_UINT16, + "MESA_FORMAT_A_UINT16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_ALPHA, + GL_UNSIGNED_INT, + 0, 0, 0, 16, + 0, 0, 0, 0, + 1, 1, 2, + { 4, 4, 4, 0 }, + MESA_ARRAY_FORMAT(2, 0, 0, 0, 1, 4, 4, 4, 0), + }, + { + MESA_FORMAT_A_UINT32, + "MESA_FORMAT_A_UINT32", + MESA_FORMAT_LAYOUT_ARRAY, + GL_ALPHA, + GL_UNSIGNED_INT, + 0, 0, 0, 32, + 0, 0, 0, 0, + 1, 1, 4, + { 4, 4, 4, 0 }, + MESA_ARRAY_FORMAT(4, 0, 0, 0, 1, 4, 4, 4, 0), + }, + { + MESA_FORMAT_A_SINT8, + "MESA_FORMAT_A_SINT8", + MESA_FORMAT_LAYOUT_ARRAY, + GL_ALPHA, + GL_INT, + 0, 0, 0, 8, + 0, 0, 0, 0, + 1, 1, 1, + { 4, 4, 4, 0 }, + MESA_ARRAY_FORMAT(1, 1, 0, 0, 1, 4, 4, 4, 0), + }, + { + MESA_FORMAT_A_SINT16, + "MESA_FORMAT_A_SINT16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_ALPHA, + GL_INT, + 0, 0, 0, 16, + 0, 0, 0, 0, + 1, 1, 2, + { 4, 4, 4, 0 }, + MESA_ARRAY_FORMAT(2, 1, 0, 0, 1, 4, 4, 4, 0), + }, + { + MESA_FORMAT_A_SINT32, + "MESA_FORMAT_A_SINT32", + MESA_FORMAT_LAYOUT_ARRAY, + GL_ALPHA, + GL_INT, + 0, 0, 0, 32, + 0, 0, 0, 0, + 1, 1, 4, + { 4, 4, 4, 0 }, + MESA_ARRAY_FORMAT(4, 1, 0, 0, 1, 4, 4, 4, 0), + }, + { + MESA_FORMAT_I_UINT8, + "MESA_FORMAT_I_UINT8", + MESA_FORMAT_LAYOUT_ARRAY, + GL_INTENSITY, + GL_UNSIGNED_INT, + 0, 0, 0, 0, + 0, 8, 0, 0, + 1, 1, 1, + { 0, 0, 0, 0 }, + MESA_ARRAY_FORMAT(1, 0, 0, 0, 1, 0, 0, 0, 0), + }, + { + MESA_FORMAT_I_UINT16, + "MESA_FORMAT_I_UINT16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_INTENSITY, + GL_UNSIGNED_INT, + 0, 0, 0, 0, + 0, 16, 0, 0, + 1, 1, 2, + { 0, 0, 0, 0 }, + MESA_ARRAY_FORMAT(2, 0, 0, 0, 1, 0, 0, 0, 0), + }, + { + MESA_FORMAT_I_UINT32, + "MESA_FORMAT_I_UINT32", + MESA_FORMAT_LAYOUT_ARRAY, + GL_INTENSITY, + GL_UNSIGNED_INT, + 0, 0, 0, 0, + 0, 32, 0, 0, + 1, 1, 4, + { 0, 0, 0, 0 }, + MESA_ARRAY_FORMAT(4, 0, 0, 0, 1, 0, 0, 0, 0), + }, + { + MESA_FORMAT_I_SINT8, + "MESA_FORMAT_I_SINT8", + MESA_FORMAT_LAYOUT_ARRAY, + GL_INTENSITY, + GL_INT, + 0, 0, 0, 0, + 0, 8, 0, 0, + 1, 1, 1, + { 0, 0, 0, 0 }, + MESA_ARRAY_FORMAT(1, 1, 0, 0, 1, 0, 0, 0, 0), + }, + { + MESA_FORMAT_I_SINT16, + "MESA_FORMAT_I_SINT16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_INTENSITY, + GL_INT, + 0, 0, 0, 0, + 0, 16, 0, 0, + 1, 1, 2, + { 0, 0, 0, 0 }, + MESA_ARRAY_FORMAT(2, 1, 0, 0, 1, 0, 0, 0, 0), + }, + { + MESA_FORMAT_I_SINT32, + "MESA_FORMAT_I_SINT32", + MESA_FORMAT_LAYOUT_ARRAY, + GL_INTENSITY, + GL_INT, + 0, 0, 0, 0, + 0, 32, 0, 0, + 1, 1, 4, + { 0, 0, 0, 0 }, + MESA_ARRAY_FORMAT(4, 1, 0, 0, 1, 0, 0, 0, 0), + }, + { + MESA_FORMAT_L_UINT8, + "MESA_FORMAT_L_UINT8", + MESA_FORMAT_LAYOUT_ARRAY, + GL_LUMINANCE, + GL_UNSIGNED_INT, + 0, 0, 0, 0, + 8, 0, 0, 0, + 1, 1, 1, + { 0, 0, 0, 5 }, + MESA_ARRAY_FORMAT(1, 0, 0, 0, 1, 0, 0, 0, 5), + }, + { + MESA_FORMAT_L_UINT16, + "MESA_FORMAT_L_UINT16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_LUMINANCE, + GL_UNSIGNED_INT, + 0, 0, 0, 0, + 16, 0, 0, 0, + 1, 1, 2, + { 0, 0, 0, 5 }, + MESA_ARRAY_FORMAT(2, 0, 0, 0, 1, 0, 0, 0, 5), + }, + { + MESA_FORMAT_L_UINT32, + "MESA_FORMAT_L_UINT32", + MESA_FORMAT_LAYOUT_ARRAY, + GL_LUMINANCE, + GL_UNSIGNED_INT, + 0, 0, 0, 0, + 32, 0, 0, 0, + 1, 1, 4, + { 0, 0, 0, 5 }, + MESA_ARRAY_FORMAT(4, 0, 0, 0, 1, 0, 0, 0, 5), + }, + { + MESA_FORMAT_L_SINT8, + "MESA_FORMAT_L_SINT8", + MESA_FORMAT_LAYOUT_ARRAY, + GL_LUMINANCE, + GL_INT, + 0, 0, 0, 0, + 8, 0, 0, 0, + 1, 1, 1, + { 0, 0, 0, 5 }, + MESA_ARRAY_FORMAT(1, 1, 0, 0, 1, 0, 0, 0, 5), + }, + { + MESA_FORMAT_L_SINT16, + "MESA_FORMAT_L_SINT16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_LUMINANCE, + GL_INT, + 0, 0, 0, 0, + 16, 0, 0, 0, + 1, 1, 2, + { 0, 0, 0, 5 }, + MESA_ARRAY_FORMAT(2, 1, 0, 0, 1, 0, 0, 0, 5), + }, + { + MESA_FORMAT_L_SINT32, + "MESA_FORMAT_L_SINT32", + MESA_FORMAT_LAYOUT_ARRAY, + GL_LUMINANCE, + GL_INT, + 0, 0, 0, 0, + 32, 0, 0, 0, + 1, 1, 4, + { 0, 0, 0, 5 }, + MESA_ARRAY_FORMAT(4, 1, 0, 0, 1, 0, 0, 0, 5), + }, + { + MESA_FORMAT_LA_UINT8, + "MESA_FORMAT_LA_UINT8", + MESA_FORMAT_LAYOUT_ARRAY, + GL_LUMINANCE_ALPHA, + GL_UNSIGNED_INT, + 0, 0, 0, 8, + 8, 0, 0, 0, + 1, 1, 2, + { 0, 0, 0, 1 }, + MESA_ARRAY_FORMAT(1, 0, 0, 0, 2, 0, 0, 0, 1), + }, + { + MESA_FORMAT_LA_UINT16, + "MESA_FORMAT_LA_UINT16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_LUMINANCE_ALPHA, + GL_UNSIGNED_INT, + 0, 0, 0, 16, + 16, 0, 0, 0, + 1, 1, 4, + { 0, 0, 0, 1 }, + MESA_ARRAY_FORMAT(2, 0, 0, 0, 2, 0, 0, 0, 1), + }, + { + MESA_FORMAT_LA_UINT32, + "MESA_FORMAT_LA_UINT32", + MESA_FORMAT_LAYOUT_ARRAY, + GL_LUMINANCE_ALPHA, + GL_UNSIGNED_INT, + 0, 0, 0, 32, + 32, 0, 0, 0, + 1, 1, 8, + { 0, 0, 0, 1 }, + MESA_ARRAY_FORMAT(4, 0, 0, 0, 2, 0, 0, 0, 1), + }, + { + MESA_FORMAT_LA_SINT8, + "MESA_FORMAT_LA_SINT8", + MESA_FORMAT_LAYOUT_ARRAY, + GL_LUMINANCE_ALPHA, + GL_INT, + 0, 0, 0, 8, + 8, 0, 0, 0, + 1, 1, 2, + { 0, 0, 0, 1 }, + MESA_ARRAY_FORMAT(1, 1, 0, 0, 2, 0, 0, 0, 1), + }, + { + MESA_FORMAT_LA_SINT16, + "MESA_FORMAT_LA_SINT16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_LUMINANCE_ALPHA, + GL_INT, + 0, 0, 0, 16, + 16, 0, 0, 0, + 1, 1, 4, + { 0, 0, 0, 1 }, + MESA_ARRAY_FORMAT(2, 1, 0, 0, 2, 0, 0, 0, 1), + }, + { + MESA_FORMAT_LA_SINT32, + "MESA_FORMAT_LA_SINT32", + MESA_FORMAT_LAYOUT_ARRAY, + GL_LUMINANCE_ALPHA, + GL_INT, + 0, 0, 0, 32, + 32, 0, 0, 0, + 1, 1, 8, + { 0, 0, 0, 1 }, + MESA_ARRAY_FORMAT(4, 1, 0, 0, 2, 0, 0, 0, 1), + }, + { + MESA_FORMAT_R_UINT8, + "MESA_FORMAT_R_UINT8", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RED, + GL_UNSIGNED_INT, + 8, 0, 0, 0, + 0, 0, 0, 0, + 1, 1, 1, + { 0, 4, 4, 5 }, + MESA_ARRAY_FORMAT(1, 0, 0, 0, 1, 0, 4, 4, 5), + }, + { + MESA_FORMAT_R_UINT16, + "MESA_FORMAT_R_UINT16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RED, + GL_UNSIGNED_INT, + 16, 0, 0, 0, + 0, 0, 0, 0, + 1, 1, 2, + { 0, 4, 4, 5 }, + MESA_ARRAY_FORMAT(2, 0, 0, 0, 1, 0, 4, 4, 5), + }, + { + MESA_FORMAT_R_UINT32, + "MESA_FORMAT_R_UINT32", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RED, + GL_UNSIGNED_INT, + 32, 0, 0, 0, + 0, 0, 0, 0, + 1, 1, 4, + { 0, 4, 4, 5 }, + MESA_ARRAY_FORMAT(4, 0, 0, 0, 1, 0, 4, 4, 5), + }, + { + MESA_FORMAT_R_SINT8, + "MESA_FORMAT_R_SINT8", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RED, + GL_INT, + 8, 0, 0, 0, + 0, 0, 0, 0, + 1, 1, 1, + { 0, 4, 4, 5 }, + MESA_ARRAY_FORMAT(1, 1, 0, 0, 1, 0, 4, 4, 5), + }, + { + MESA_FORMAT_R_SINT16, + "MESA_FORMAT_R_SINT16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RED, + GL_INT, + 16, 0, 0, 0, + 0, 0, 0, 0, + 1, 1, 2, + { 0, 4, 4, 5 }, + MESA_ARRAY_FORMAT(2, 1, 0, 0, 1, 0, 4, 4, 5), + }, + { + MESA_FORMAT_R_SINT32, + "MESA_FORMAT_R_SINT32", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RED, + GL_INT, + 32, 0, 0, 0, + 0, 0, 0, 0, + 1, 1, 4, + { 0, 4, 4, 5 }, + MESA_ARRAY_FORMAT(4, 1, 0, 0, 1, 0, 4, 4, 5), + }, + { + MESA_FORMAT_RG_UINT8, + "MESA_FORMAT_RG_UINT8", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RG, + GL_UNSIGNED_INT, + 8, 8, 0, 0, + 0, 0, 0, 0, + 1, 1, 2, + { 0, 1, 4, 5 }, + MESA_ARRAY_FORMAT(1, 0, 0, 0, 2, 0, 1, 4, 5), + }, + { + MESA_FORMAT_RG_UINT16, + "MESA_FORMAT_RG_UINT16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RG, + GL_UNSIGNED_INT, + 16, 16, 0, 0, + 0, 0, 0, 0, + 1, 1, 4, + { 0, 1, 4, 5 }, + MESA_ARRAY_FORMAT(2, 0, 0, 0, 2, 0, 1, 4, 5), + }, + { + MESA_FORMAT_RG_UINT32, + "MESA_FORMAT_RG_UINT32", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RG, + GL_UNSIGNED_INT, + 32, 32, 0, 0, + 0, 0, 0, 0, + 1, 1, 8, + { 0, 1, 4, 5 }, + MESA_ARRAY_FORMAT(4, 0, 0, 0, 2, 0, 1, 4, 5), + }, + { + MESA_FORMAT_RG_SINT8, + "MESA_FORMAT_RG_SINT8", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RG, + GL_INT, + 8, 8, 0, 0, + 0, 0, 0, 0, + 1, 1, 2, + { 0, 1, 4, 5 }, + MESA_ARRAY_FORMAT(1, 1, 0, 0, 2, 0, 1, 4, 5), + }, + { + MESA_FORMAT_RG_SINT16, + "MESA_FORMAT_RG_SINT16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RG, + GL_INT, + 16, 16, 0, 0, + 0, 0, 0, 0, + 1, 1, 4, + { 0, 1, 4, 5 }, + MESA_ARRAY_FORMAT(2, 1, 0, 0, 2, 0, 1, 4, 5), + }, + { + MESA_FORMAT_RG_SINT32, + "MESA_FORMAT_RG_SINT32", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RG, + GL_INT, + 32, 32, 0, 0, + 0, 0, 0, 0, + 1, 1, 8, + { 0, 1, 4, 5 }, + MESA_ARRAY_FORMAT(4, 1, 0, 0, 2, 0, 1, 4, 5), + }, + { + MESA_FORMAT_RGB_UINT8, + "MESA_FORMAT_RGB_UINT8", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RGB, + GL_UNSIGNED_INT, + 8, 8, 8, 0, + 0, 0, 0, 0, + 1, 1, 3, + { 0, 1, 2, 5 }, + MESA_ARRAY_FORMAT(1, 0, 0, 0, 3, 0, 1, 2, 5), + }, + { + MESA_FORMAT_RGB_UINT16, + "MESA_FORMAT_RGB_UINT16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RGB, + GL_UNSIGNED_INT, + 16, 16, 16, 0, + 0, 0, 0, 0, + 1, 1, 6, + { 0, 1, 2, 5 }, + MESA_ARRAY_FORMAT(2, 0, 0, 0, 3, 0, 1, 2, 5), + }, + { + MESA_FORMAT_RGB_UINT32, + "MESA_FORMAT_RGB_UINT32", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RGB, + GL_UNSIGNED_INT, + 32, 32, 32, 0, + 0, 0, 0, 0, + 1, 1, 12, + { 0, 1, 2, 5 }, + MESA_ARRAY_FORMAT(4, 0, 0, 0, 3, 0, 1, 2, 5), + }, + { + MESA_FORMAT_RGB_SINT8, + "MESA_FORMAT_RGB_SINT8", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RGB, + GL_INT, + 8, 8, 8, 0, + 0, 0, 0, 0, + 1, 1, 3, + { 0, 1, 2, 5 }, + MESA_ARRAY_FORMAT(1, 1, 0, 0, 3, 0, 1, 2, 5), + }, + { + MESA_FORMAT_RGB_SINT16, + "MESA_FORMAT_RGB_SINT16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RGB, + GL_INT, + 16, 16, 16, 0, + 0, 0, 0, 0, + 1, 1, 6, + { 0, 1, 2, 5 }, + MESA_ARRAY_FORMAT(2, 1, 0, 0, 3, 0, 1, 2, 5), + }, + { + MESA_FORMAT_RGB_SINT32, + "MESA_FORMAT_RGB_SINT32", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RGB, + GL_INT, + 32, 32, 32, 0, + 0, 0, 0, 0, + 1, 1, 12, + { 0, 1, 2, 5 }, + MESA_ARRAY_FORMAT(4, 1, 0, 0, 3, 0, 1, 2, 5), + }, + { + MESA_FORMAT_RGBA_UINT8, + "MESA_FORMAT_RGBA_UINT8", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RGBA, + GL_UNSIGNED_INT, + 8, 8, 8, 8, + 0, 0, 0, 0, + 1, 1, 4, + { 0, 1, 2, 3 }, + MESA_ARRAY_FORMAT(1, 0, 0, 0, 4, 0, 1, 2, 3), + }, + { + MESA_FORMAT_RGBA_UINT16, + "MESA_FORMAT_RGBA_UINT16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RGBA, + GL_UNSIGNED_INT, + 16, 16, 16, 16, + 0, 0, 0, 0, + 1, 1, 8, + { 0, 1, 2, 3 }, + MESA_ARRAY_FORMAT(2, 0, 0, 0, 4, 0, 1, 2, 3), + }, + { + MESA_FORMAT_RGBA_UINT32, + "MESA_FORMAT_RGBA_UINT32", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RGBA, + GL_UNSIGNED_INT, + 32, 32, 32, 32, + 0, 0, 0, 0, + 1, 1, 16, + { 0, 1, 2, 3 }, + MESA_ARRAY_FORMAT(4, 0, 0, 0, 4, 0, 1, 2, 3), + }, + { + MESA_FORMAT_RGBA_SINT8, + "MESA_FORMAT_RGBA_SINT8", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RGBA, + GL_INT, + 8, 8, 8, 8, + 0, 0, 0, 0, + 1, 1, 4, + { 0, 1, 2, 3 }, + MESA_ARRAY_FORMAT(1, 1, 0, 0, 4, 0, 1, 2, 3), + }, + { + MESA_FORMAT_RGBA_SINT16, + "MESA_FORMAT_RGBA_SINT16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RGBA, + GL_INT, + 16, 16, 16, 16, + 0, 0, 0, 0, + 1, 1, 8, + { 0, 1, 2, 3 }, + MESA_ARRAY_FORMAT(2, 1, 0, 0, 4, 0, 1, 2, 3), + }, + { + MESA_FORMAT_RGBA_SINT32, + "MESA_FORMAT_RGBA_SINT32", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RGBA, + GL_INT, + 32, 32, 32, 32, + 0, 0, 0, 0, + 1, 1, 16, + { 0, 1, 2, 3 }, + MESA_ARRAY_FORMAT(4, 1, 0, 0, 4, 0, 1, 2, 3), + }, + { + MESA_FORMAT_RGBX_UINT8, + "MESA_FORMAT_RGBX_UINT8", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RGB, + GL_UNSIGNED_INT, + 8, 8, 8, 0, + 0, 0, 0, 0, + 1, 1, 4, + { 0, 1, 2, 5 }, + MESA_ARRAY_FORMAT(1, 0, 0, 0, 4, 0, 1, 2, 5), + }, + { + MESA_FORMAT_RGBX_UINT16, + "MESA_FORMAT_RGBX_UINT16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RGB, + GL_UNSIGNED_INT, + 16, 16, 16, 0, + 0, 0, 0, 0, + 1, 1, 8, + { 0, 1, 2, 5 }, + MESA_ARRAY_FORMAT(2, 0, 0, 0, 4, 0, 1, 2, 5), + }, + { + MESA_FORMAT_RGBX_UINT32, + "MESA_FORMAT_RGBX_UINT32", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RGB, + GL_UNSIGNED_INT, + 32, 32, 32, 0, + 0, 0, 0, 0, + 1, 1, 16, + { 0, 1, 2, 5 }, + MESA_ARRAY_FORMAT(4, 0, 0, 0, 4, 0, 1, 2, 5), + }, + { + MESA_FORMAT_RGBX_SINT8, + "MESA_FORMAT_RGBX_SINT8", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RGB, + GL_INT, + 8, 8, 8, 0, + 0, 0, 0, 0, + 1, 1, 4, + { 0, 1, 2, 5 }, + MESA_ARRAY_FORMAT(1, 1, 0, 0, 4, 0, 1, 2, 5), + }, + { + MESA_FORMAT_RGBX_SINT16, + "MESA_FORMAT_RGBX_SINT16", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RGB, + GL_INT, + 16, 16, 16, 0, + 0, 0, 0, 0, + 1, 1, 8, + { 0, 1, 2, 5 }, + MESA_ARRAY_FORMAT(2, 1, 0, 0, 4, 0, 1, 2, 5), + }, + { + MESA_FORMAT_RGBX_SINT32, + "MESA_FORMAT_RGBX_SINT32", + MESA_FORMAT_LAYOUT_ARRAY, + GL_RGB, + GL_INT, + 32, 32, 32, 0, + 0, 0, 0, 0, + 1, 1, 16, + { 0, 1, 2, 5 }, + MESA_ARRAY_FORMAT(4, 1, 0, 0, 4, 0, 1, 2, 5), + }, + { + MESA_FORMAT_RGB_DXT1, + "MESA_FORMAT_RGB_DXT1", + MESA_FORMAT_LAYOUT_S3TC, + GL_RGB, + GL_UNSIGNED_NORMALIZED, + 4, 4, 4, 0, + 0, 0, 0, 0, + 4, 4, 8, + { 0, 1, 2, 5 }, + 0, + }, + { + MESA_FORMAT_RGBA_DXT1, + "MESA_FORMAT_RGBA_DXT1", + MESA_FORMAT_LAYOUT_S3TC, + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 4, 4, 4, 4, + 0, 0, 0, 0, + 4, 4, 8, + { 0, 1, 2, 3 }, + 0, + }, + { + MESA_FORMAT_RGBA_DXT3, + "MESA_FORMAT_RGBA_DXT3", + MESA_FORMAT_LAYOUT_S3TC, + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 4, 4, 4, 4, + 0, 0, 0, 0, + 4, 4, 16, + { 0, 1, 2, 3 }, + 0, + }, + { + MESA_FORMAT_RGBA_DXT5, + "MESA_FORMAT_RGBA_DXT5", + MESA_FORMAT_LAYOUT_S3TC, + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 4, 4, 4, 4, + 0, 0, 0, 0, + 4, 4, 16, + { 0, 1, 2, 3 }, + 0, + }, + { + MESA_FORMAT_SRGB_DXT1, + "MESA_FORMAT_SRGB_DXT1", + MESA_FORMAT_LAYOUT_S3TC, + GL_RGB, + GL_UNSIGNED_NORMALIZED, + 4, 4, 4, 0, + 0, 0, 0, 0, + 4, 4, 8, + { 0, 1, 2, 5 }, + 0, + }, + { + MESA_FORMAT_SRGBA_DXT1, + "MESA_FORMAT_SRGBA_DXT1", + MESA_FORMAT_LAYOUT_S3TC, + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 4, 4, 4, 4, + 0, 0, 0, 0, + 4, 4, 8, + { 0, 1, 2, 3 }, + 0, + }, + { + MESA_FORMAT_SRGBA_DXT3, + "MESA_FORMAT_SRGBA_DXT3", + MESA_FORMAT_LAYOUT_S3TC, + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 4, 4, 4, 4, + 0, 0, 0, 0, + 4, 4, 16, + { 0, 1, 2, 3 }, + 0, + }, + { + MESA_FORMAT_SRGBA_DXT5, + "MESA_FORMAT_SRGBA_DXT5", + MESA_FORMAT_LAYOUT_S3TC, + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 4, 4, 4, 4, + 0, 0, 0, 0, + 4, 4, 16, + { 0, 1, 2, 3 }, + 0, + }, + { + MESA_FORMAT_RGB_FXT1, + "MESA_FORMAT_RGB_FXT1", + MESA_FORMAT_LAYOUT_FXT1, + GL_RGB, + GL_UNSIGNED_NORMALIZED, + 4, 4, 4, 0, + 0, 0, 0, 0, + 8, 4, 16, + { 0, 1, 2, 5 }, + 0, + }, + { + MESA_FORMAT_RGBA_FXT1, + "MESA_FORMAT_RGBA_FXT1", + MESA_FORMAT_LAYOUT_FXT1, + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 4, 4, 4, 1, + 0, 0, 0, 0, + 8, 4, 16, + { 0, 1, 2, 3 }, + 0, + }, + { + MESA_FORMAT_R_RGTC1_UNORM, + "MESA_FORMAT_R_RGTC1_UNORM", + MESA_FORMAT_LAYOUT_RGTC, + GL_RED, + GL_UNSIGNED_NORMALIZED, + 8, 0, 0, 0, + 0, 0, 0, 0, + 4, 4, 8, + { 0, 4, 4, 5 }, + 0, + }, + { + MESA_FORMAT_R_RGTC1_SNORM, + "MESA_FORMAT_R_RGTC1_SNORM", + MESA_FORMAT_LAYOUT_RGTC, + GL_RED, + GL_SIGNED_NORMALIZED, + 8, 0, 0, 0, + 0, 0, 0, 0, + 4, 4, 8, + { 0, 4, 4, 5 }, + 0, + }, + { + MESA_FORMAT_RG_RGTC2_UNORM, + "MESA_FORMAT_RG_RGTC2_UNORM", + MESA_FORMAT_LAYOUT_RGTC, + GL_RG, + GL_UNSIGNED_NORMALIZED, + 8, 8, 0, 0, + 0, 0, 0, 0, + 4, 4, 16, + { 0, 1, 4, 5 }, + 0, + }, + { + MESA_FORMAT_RG_RGTC2_SNORM, + "MESA_FORMAT_RG_RGTC2_SNORM", + MESA_FORMAT_LAYOUT_RGTC, + GL_RG, + GL_SIGNED_NORMALIZED, + 8, 8, 0, 0, + 0, 0, 0, 0, + 4, 4, 16, + { 0, 1, 4, 5 }, + 0, + }, + { + MESA_FORMAT_L_LATC1_UNORM, + "MESA_FORMAT_L_LATC1_UNORM", + MESA_FORMAT_LAYOUT_RGTC, + GL_LUMINANCE, + GL_UNSIGNED_NORMALIZED, + 0, 0, 0, 0, + 8, 0, 0, 0, + 4, 4, 8, + { 0, 0, 0, 5 }, + 0, + }, + { + MESA_FORMAT_L_LATC1_SNORM, + "MESA_FORMAT_L_LATC1_SNORM", + MESA_FORMAT_LAYOUT_RGTC, + GL_LUMINANCE, + GL_SIGNED_NORMALIZED, + 0, 0, 0, 0, + 8, 0, 0, 0, + 4, 4, 8, + { 0, 0, 0, 5 }, + 0, + }, + { + MESA_FORMAT_LA_LATC2_UNORM, + "MESA_FORMAT_LA_LATC2_UNORM", + MESA_FORMAT_LAYOUT_RGTC, + GL_LUMINANCE_ALPHA, + GL_UNSIGNED_NORMALIZED, + 0, 0, 0, 8, + 8, 0, 0, 0, + 4, 4, 16, + { 0, 0, 0, 1 }, + 0, + }, + { + MESA_FORMAT_LA_LATC2_SNORM, + "MESA_FORMAT_LA_LATC2_SNORM", + MESA_FORMAT_LAYOUT_RGTC, + GL_LUMINANCE_ALPHA, + GL_SIGNED_NORMALIZED, + 0, 0, 0, 8, + 8, 0, 0, 0, + 4, 4, 16, + { 0, 0, 0, 1 }, + 0, + }, + { + MESA_FORMAT_ETC1_RGB8, + "MESA_FORMAT_ETC1_RGB8", + MESA_FORMAT_LAYOUT_ETC1, + GL_RGB, + GL_UNSIGNED_NORMALIZED, + 8, 8, 8, 0, + 0, 0, 0, 0, + 4, 4, 8, + { 0, 1, 2, 5 }, + 0, + }, + { + MESA_FORMAT_ETC2_RGB8, + "MESA_FORMAT_ETC2_RGB8", + MESA_FORMAT_LAYOUT_ETC2, + GL_RGB, + GL_UNSIGNED_NORMALIZED, + 8, 8, 8, 0, + 0, 0, 0, 0, + 4, 4, 8, + { 0, 1, 2, 5 }, + 0, + }, + { + MESA_FORMAT_ETC2_SRGB8, + "MESA_FORMAT_ETC2_SRGB8", + MESA_FORMAT_LAYOUT_ETC2, + GL_RGB, + GL_UNSIGNED_NORMALIZED, + 8, 8, 8, 0, + 0, 0, 0, 0, + 4, 4, 8, + { 0, 1, 2, 5 }, + 0, + }, + { + MESA_FORMAT_ETC2_RGBA8_EAC, + "MESA_FORMAT_ETC2_RGBA8_EAC", + MESA_FORMAT_LAYOUT_ETC2, + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 8, 8, 8, 8, + 0, 0, 0, 0, + 4, 4, 16, + { 0, 1, 2, 3 }, + 0, + }, + { + MESA_FORMAT_ETC2_SRGB8_ALPHA8_EAC, + "MESA_FORMAT_ETC2_SRGB8_ALPHA8_EAC", + MESA_FORMAT_LAYOUT_ETC2, + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 8, 8, 8, 8, + 0, 0, 0, 0, + 4, 4, 16, + { 0, 1, 2, 3 }, + 0, + }, + { + MESA_FORMAT_ETC2_R11_EAC, + "MESA_FORMAT_ETC2_R11_EAC", + MESA_FORMAT_LAYOUT_ETC2, + GL_RED, + GL_UNSIGNED_NORMALIZED, + 11, 0, 0, 0, + 0, 0, 0, 0, + 4, 4, 8, + { 0, 4, 4, 5 }, + 0, + }, + { + MESA_FORMAT_ETC2_RG11_EAC, + "MESA_FORMAT_ETC2_RG11_EAC", + MESA_FORMAT_LAYOUT_ETC2, + GL_RG, + GL_UNSIGNED_NORMALIZED, + 11, 11, 0, 0, + 0, 0, 0, 0, + 4, 4, 16, + { 0, 1, 4, 5 }, + 0, + }, + { + MESA_FORMAT_ETC2_SIGNED_R11_EAC, + "MESA_FORMAT_ETC2_SIGNED_R11_EAC", + MESA_FORMAT_LAYOUT_ETC2, + GL_RED, + GL_SIGNED_NORMALIZED, + 11, 0, 0, 0, + 0, 0, 0, 0, + 4, 4, 8, + { 0, 4, 4, 5 }, + 0, + }, + { + MESA_FORMAT_ETC2_SIGNED_RG11_EAC, + "MESA_FORMAT_ETC2_SIGNED_RG11_EAC", + MESA_FORMAT_LAYOUT_ETC2, + GL_RG, + GL_SIGNED_NORMALIZED, + 11, 11, 0, 0, + 0, 0, 0, 0, + 4, 4, 16, + { 0, 1, 4, 5 }, + 0, + }, + { + MESA_FORMAT_ETC2_RGB8_PUNCHTHROUGH_ALPHA1, + "MESA_FORMAT_ETC2_RGB8_PUNCHTHROUGH_ALPHA1", + MESA_FORMAT_LAYOUT_ETC2, + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 8, 8, 8, 1, + 0, 0, 0, 0, + 4, 4, 8, + { 0, 1, 2, 3 }, + 0, + }, + { + MESA_FORMAT_ETC2_SRGB8_PUNCHTHROUGH_ALPHA1, + "MESA_FORMAT_ETC2_SRGB8_PUNCHTHROUGH_ALPHA1", + MESA_FORMAT_LAYOUT_ETC2, + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 8, 8, 8, 1, + 0, 0, 0, 0, + 4, 4, 8, + { 0, 1, 2, 3 }, + 0, + }, + { + MESA_FORMAT_BPTC_RGBA_UNORM, + "MESA_FORMAT_BPTC_RGBA_UNORM", + MESA_FORMAT_LAYOUT_BPTC, + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 8, 8, 8, 8, + 0, 0, 0, 0, + 4, 4, 16, + { 0, 1, 2, 3 }, + 0, + }, + { + MESA_FORMAT_BPTC_SRGB_ALPHA_UNORM, + "MESA_FORMAT_BPTC_SRGB_ALPHA_UNORM", + MESA_FORMAT_LAYOUT_BPTC, + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 8, 8, 8, 8, + 0, 0, 0, 0, + 4, 4, 16, + { 0, 1, 2, 3 }, + 0, + }, + { + MESA_FORMAT_BPTC_RGB_SIGNED_FLOAT, + "MESA_FORMAT_BPTC_RGB_SIGNED_FLOAT", + MESA_FORMAT_LAYOUT_BPTC, + GL_RGB, + GL_FLOAT, + 16, 16, 16, 0, + 0, 0, 0, 0, + 4, 4, 16, + { 0, 1, 2, 5 }, + 0, + }, + { + MESA_FORMAT_BPTC_RGB_UNSIGNED_FLOAT, + "MESA_FORMAT_BPTC_RGB_UNSIGNED_FLOAT", + MESA_FORMAT_LAYOUT_BPTC, + GL_RGB, + GL_FLOAT, + 16, 16, 16, 0, + 0, 0, 0, 0, + 4, 4, 16, + { 0, 1, 2, 5 }, + 0, }, }; diff --git a/lib/mesa/src/mesa/main/formats.c b/lib/mesa/src/mesa/main/formats.c index 5c29d37bb..179ee163a 100644 --- a/lib/mesa/src/mesa/main/formats.c +++ b/lib/mesa/src/mesa/main/formats.c @@ -65,12 +65,10 @@ struct gl_format_info GLubyte DepthBits; GLubyte StencilBits; - bool IsSRGBFormat; - /** - * To describe compressed formats. If not compressed, Width=Height=Depth=1. + * To describe compressed formats. If not compressed, Width=Height=1. */ - GLubyte BlockWidth, BlockHeight, BlockDepth; + GLubyte BlockWidth, BlockHeight; GLubyte BytesPerBlock; uint8_t Swizzle[4]; @@ -83,7 +81,6 @@ static const struct gl_format_info * _mesa_get_format_info(mesa_format format) { const struct gl_format_info *info = &format_info[format]; - STATIC_ASSERT(ARRAY_SIZE(format_info) == MESA_FORMAT_COUNT); assert(info->Name == format); return info; } @@ -132,25 +129,21 @@ _mesa_get_format_bits(mesa_format format, GLenum pname) case GL_TEXTURE_RED_SIZE: case GL_RENDERBUFFER_RED_SIZE_EXT: case GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE: - case GL_INTERNALFORMAT_RED_SIZE: return info->RedBits; case GL_GREEN_BITS: case GL_TEXTURE_GREEN_SIZE: case GL_RENDERBUFFER_GREEN_SIZE_EXT: case GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: - case GL_INTERNALFORMAT_GREEN_SIZE: return info->GreenBits; case GL_BLUE_BITS: case GL_TEXTURE_BLUE_SIZE: case GL_RENDERBUFFER_BLUE_SIZE_EXT: case GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: - case GL_INTERNALFORMAT_BLUE_SIZE: return info->BlueBits; case GL_ALPHA_BITS: case GL_TEXTURE_ALPHA_SIZE: case GL_RENDERBUFFER_ALPHA_SIZE_EXT: case GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: - case GL_INTERNALFORMAT_ALPHA_SIZE: return info->AlphaBits; case GL_TEXTURE_INTENSITY_SIZE: return info->IntensityBits; @@ -162,13 +155,11 @@ _mesa_get_format_bits(mesa_format format, GLenum pname) case GL_TEXTURE_DEPTH_SIZE_ARB: case GL_RENDERBUFFER_DEPTH_SIZE_EXT: case GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: - case GL_INTERNALFORMAT_DEPTH_SIZE: return info->DepthBits; case GL_STENCIL_BITS: case GL_TEXTURE_STENCIL_SIZE_EXT: case GL_RENDERBUFFER_STENCIL_SIZE_EXT: case GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: - case GL_INTERNALFORMAT_STENCIL_SIZE: return info->StencilBits; default: _mesa_problem(NULL, "bad pname in _mesa_get_format_bits()"); @@ -194,6 +185,16 @@ _mesa_get_format_max_bits(mesa_format format) /** * Return the layout type of the given format. + * The return value will be one of: + * MESA_FORMAT_LAYOUT_ARRAY + * MESA_FORMAT_LAYOUT_PACKED + * MESA_FORMAT_LAYOUT_S3TC + * MESA_FORMAT_LAYOUT_RGTC + * MESA_FORMAT_LAYOUT_FXT1 + * MESA_FORMAT_LAYOUT_ETC1 + * MESA_FORMAT_LAYOUT_ETC2 + * MESA_FORMAT_LAYOUT_BPTC + * MESA_FORMAT_LAYOUT_OTHER */ extern enum mesa_format_layout _mesa_get_format_layout(mesa_format format) @@ -315,32 +316,8 @@ void _mesa_get_format_block_size(mesa_format format, GLuint *bw, GLuint *bh) { const struct gl_format_info *info = _mesa_get_format_info(format); - /* Use _mesa_get_format_block_size_3d() for 3D blocks. */ - assert(info->BlockDepth == 1); - - *bw = info->BlockWidth; - *bh = info->BlockHeight; -} - - -/** - * Return the block size (in pixels) for the given format. Normally - * the block size is 1x1x1. But compressed formats will have block - * sizes of 4x4x4, 3x3x3 pixels, etc. - * \param bw returns block width in pixels - * \param bh returns block height in pixels - * \param bd returns block depth in pixels - */ -void -_mesa_get_format_block_size_3d(mesa_format format, - GLuint *bw, - GLuint *bh, - GLuint *bd) -{ - const struct gl_format_info *info = _mesa_get_format_info(format); *bw = info->BlockWidth; *bh = info->BlockHeight; - *bd = info->BlockDepth; } @@ -591,8 +568,30 @@ _mesa_is_format_color_format(mesa_format format) GLenum _mesa_get_format_color_encoding(mesa_format format) { - const struct gl_format_info *info = _mesa_get_format_info(format); - return info->IsSRGBFormat ? GL_SRGB : GL_LINEAR; + /* XXX this info should be encoded in gl_format_info */ + switch (format) { + case MESA_FORMAT_BGR_SRGB8: + case MESA_FORMAT_A8B8G8R8_SRGB: + case MESA_FORMAT_B8G8R8A8_SRGB: + case MESA_FORMAT_A8R8G8B8_SRGB: + case MESA_FORMAT_R8G8B8A8_SRGB: + case MESA_FORMAT_L_SRGB8: + case MESA_FORMAT_L8A8_SRGB: + case MESA_FORMAT_A8L8_SRGB: + case MESA_FORMAT_SRGB_DXT1: + case MESA_FORMAT_SRGBA_DXT1: + case MESA_FORMAT_SRGBA_DXT3: + case MESA_FORMAT_SRGBA_DXT5: + case MESA_FORMAT_R8G8B8X8_SRGB: + case MESA_FORMAT_ETC2_SRGB8: + case MESA_FORMAT_ETC2_SRGB8_ALPHA8_EAC: + case MESA_FORMAT_ETC2_SRGB8_PUNCHTHROUGH_ALPHA1: + case MESA_FORMAT_B8G8R8X8_SRGB: + case MESA_FORMAT_BPTC_SRGB_ALPHA_UNORM: + return GL_SRGB; + default: + return GL_LINEAR; + } } @@ -622,6 +621,81 @@ _mesa_is_format_etc2(mesa_format format) /** + * For an sRGB format, return the corresponding linear color space format. + * For non-sRGB formats, return the format as-is. + */ +mesa_format +_mesa_get_srgb_format_linear(mesa_format format) +{ + switch (format) { + case MESA_FORMAT_BGR_SRGB8: + format = MESA_FORMAT_BGR_UNORM8; + break; + case MESA_FORMAT_A8B8G8R8_SRGB: + format = MESA_FORMAT_A8B8G8R8_UNORM; + break; + case MESA_FORMAT_B8G8R8A8_SRGB: + format = MESA_FORMAT_B8G8R8A8_UNORM; + break; + case MESA_FORMAT_A8R8G8B8_SRGB: + format = MESA_FORMAT_A8R8G8B8_UNORM; + break; + case MESA_FORMAT_R8G8B8A8_SRGB: + format = MESA_FORMAT_R8G8B8A8_UNORM; + break; + case MESA_FORMAT_L_SRGB8: + format = MESA_FORMAT_L_UNORM8; + break; + case MESA_FORMAT_L8A8_SRGB: + format = MESA_FORMAT_L8A8_UNORM; + break; + case MESA_FORMAT_A8L8_SRGB: + format = MESA_FORMAT_A8L8_UNORM; + break; + case MESA_FORMAT_SRGB_DXT1: + format = MESA_FORMAT_RGB_DXT1; + break; + case MESA_FORMAT_SRGBA_DXT1: + format = MESA_FORMAT_RGBA_DXT1; + break; + case MESA_FORMAT_SRGBA_DXT3: + format = MESA_FORMAT_RGBA_DXT3; + break; + case MESA_FORMAT_SRGBA_DXT5: + format = MESA_FORMAT_RGBA_DXT5; + break; + case MESA_FORMAT_R8G8B8X8_SRGB: + format = MESA_FORMAT_R8G8B8X8_UNORM; + break; + case MESA_FORMAT_X8B8G8R8_SRGB: + format = MESA_FORMAT_X8B8G8R8_UNORM; + break; + case MESA_FORMAT_ETC2_SRGB8: + format = MESA_FORMAT_ETC2_RGB8; + break; + case MESA_FORMAT_ETC2_SRGB8_ALPHA8_EAC: + format = MESA_FORMAT_ETC2_RGBA8_EAC; + break; + case MESA_FORMAT_ETC2_SRGB8_PUNCHTHROUGH_ALPHA1: + format = MESA_FORMAT_ETC2_RGB8_PUNCHTHROUGH_ALPHA1; + break; + case MESA_FORMAT_BPTC_SRGB_ALPHA_UNORM: + format = MESA_FORMAT_BPTC_RGBA_UNORM; + break; + case MESA_FORMAT_B8G8R8X8_SRGB: + format = MESA_FORMAT_B8G8R8X8_UNORM; + break; + case MESA_FORMAT_X8R8G8B8_SRGB: + format = MESA_FORMAT_X8R8G8B8_UNORM; + break; + default: + break; + } + return format; +} + + +/** * If the given format is a compressed format, return a corresponding * uncompressed format. */ @@ -744,22 +818,20 @@ _mesa_format_image_size(mesa_format format, GLsizei width, GLsizei height, GLsizei depth) { const struct gl_format_info *info = _mesa_get_format_info(format); - GLuint sz; /* Strictly speaking, a conditional isn't needed here */ - if (info->BlockWidth > 1 || info->BlockHeight > 1 || info->BlockDepth > 1) { + if (info->BlockWidth > 1 || info->BlockHeight > 1) { /* compressed format (2D only for now) */ - const GLuint bw = info->BlockWidth; - const GLuint bh = info->BlockHeight; - const GLuint bd = info->BlockDepth; + const GLuint bw = info->BlockWidth, bh = info->BlockHeight; const GLuint wblocks = (width + bw - 1) / bw; const GLuint hblocks = (height + bh - 1) / bh; - const GLuint dblocks = (depth + bd - 1) / bd; - sz = wblocks * hblocks * dblocks * info->BytesPerBlock; - } else + const GLuint sz = wblocks * hblocks * info->BytesPerBlock; + return sz * depth; + } + else { /* non-compressed */ - sz = width * height * depth * info->BytesPerBlock; - - return sz; + const GLuint sz = width * height * depth * info->BytesPerBlock; + return sz; + } } @@ -772,23 +844,23 @@ _mesa_format_image_size64(mesa_format format, GLsizei width, GLsizei height, GLsizei depth) { const struct gl_format_info *info = _mesa_get_format_info(format); - uint64_t sz; /* Strictly speaking, a conditional isn't needed here */ - if (info->BlockWidth > 1 || info->BlockHeight > 1 || info->BlockDepth > 1) { + if (info->BlockWidth > 1 || info->BlockHeight > 1) { /* compressed format (2D only for now) */ - const uint64_t bw = info->BlockWidth; - const uint64_t bh = info->BlockHeight; - const uint64_t bd = info->BlockDepth; + const uint64_t bw = info->BlockWidth, bh = info->BlockHeight; const uint64_t wblocks = (width + bw - 1) / bw; const uint64_t hblocks = (height + bh - 1) / bh; - const uint64_t dblocks = (depth + bd - 1) / bd; - sz = wblocks * hblocks * dblocks * info->BytesPerBlock; - } else + const uint64_t sz = wblocks * hblocks * info->BytesPerBlock; + return sz * depth; + } + else { /* non-compressed */ - sz = ((uint64_t) width * (uint64_t) height * - (uint64_t) depth * info->BytesPerBlock); - - return sz; + const uint64_t sz = ((uint64_t) width * + (uint64_t) height * + (uint64_t) depth * + info->BytesPerBlock); + return sz; + } } @@ -812,13 +884,124 @@ _mesa_format_row_stride(mesa_format format, GLsizei width) } +/** + * Debug/test: check that all formats are handled in the + * _mesa_format_to_type_and_comps() function. When new pixel formats + * are added to Mesa, that function needs to be updated. + * This is a no-op after the first call. + */ +static void +check_format_to_type_and_comps(void) +{ + mesa_format f; + + for (f = MESA_FORMAT_NONE + 1; f < MESA_FORMAT_COUNT; f++) { + GLenum datatype = 0; + GLuint comps = 0; + /* This function will emit a problem/warning if the format is + * not handled. + */ + _mesa_format_to_type_and_comps(f, &datatype, &comps); + } +} /** - * Return datatype and number of components per texel for the given - * uncompressed mesa_format. Only used for mipmap generation code. + * Do sanity checking of the format info table. */ void -_mesa_uncompressed_format_to_type_and_comps(mesa_format format, +_mesa_test_formats(void) +{ + GLuint i; + + STATIC_ASSERT(ARRAY_SIZE(format_info) == MESA_FORMAT_COUNT); + + for (i = 0; i < MESA_FORMAT_COUNT; i++) { + const struct gl_format_info *info = _mesa_get_format_info(i); + assert(info); + + assert(info->Name == i); + + if (info->Name == MESA_FORMAT_NONE) + continue; + + if (info->BlockWidth == 1 && info->BlockHeight == 1) { + if (info->RedBits > 0) { + GLuint t = info->RedBits + info->GreenBits + + info->BlueBits + info->AlphaBits; + assert(t / 8 <= info->BytesPerBlock); + (void) t; + } + } + + assert(info->DataType == GL_UNSIGNED_NORMALIZED || + info->DataType == GL_SIGNED_NORMALIZED || + info->DataType == GL_UNSIGNED_INT || + info->DataType == GL_INT || + info->DataType == GL_FLOAT || + /* Z32_FLOAT_X24S8 has DataType of GL_NONE */ + info->DataType == GL_NONE); + + if (info->BaseFormat == GL_RGB) { + assert(info->RedBits > 0); + assert(info->GreenBits > 0); + assert(info->BlueBits > 0); + assert(info->AlphaBits == 0); + assert(info->LuminanceBits == 0); + assert(info->IntensityBits == 0); + } + else if (info->BaseFormat == GL_RGBA) { + assert(info->RedBits > 0); + assert(info->GreenBits > 0); + assert(info->BlueBits > 0); + assert(info->AlphaBits > 0); + assert(info->LuminanceBits == 0); + assert(info->IntensityBits == 0); + } + else if (info->BaseFormat == GL_RG) { + assert(info->RedBits > 0); + assert(info->GreenBits > 0); + assert(info->BlueBits == 0); + assert(info->AlphaBits == 0); + assert(info->LuminanceBits == 0); + assert(info->IntensityBits == 0); + } + else if (info->BaseFormat == GL_RED) { + assert(info->RedBits > 0); + assert(info->GreenBits == 0); + assert(info->BlueBits == 0); + assert(info->AlphaBits == 0); + assert(info->LuminanceBits == 0); + assert(info->IntensityBits == 0); + } + else if (info->BaseFormat == GL_LUMINANCE) { + assert(info->RedBits == 0); + assert(info->GreenBits == 0); + assert(info->BlueBits == 0); + assert(info->AlphaBits == 0); + assert(info->LuminanceBits > 0); + assert(info->IntensityBits == 0); + } + else if (info->BaseFormat == GL_INTENSITY) { + assert(info->RedBits == 0); + assert(info->GreenBits == 0); + assert(info->BlueBits == 0); + assert(info->AlphaBits == 0); + assert(info->LuminanceBits == 0); + assert(info->IntensityBits > 0); + } + } + + check_format_to_type_and_comps(); +} + + + +/** + * Return datatype and number of components per texel for the given mesa_format. + * Only used for mipmap generation code. + */ +void +_mesa_format_to_type_and_comps(mesa_format format, GLenum *datatype, GLuint *comps) { switch (format) { @@ -1068,6 +1251,44 @@ _mesa_uncompressed_format_to_type_and_comps(mesa_format format, *comps = 2; return; + case MESA_FORMAT_RGB_FXT1: + case MESA_FORMAT_RGBA_FXT1: + case MESA_FORMAT_RGB_DXT1: + case MESA_FORMAT_RGBA_DXT1: + case MESA_FORMAT_RGBA_DXT3: + case MESA_FORMAT_RGBA_DXT5: + case MESA_FORMAT_SRGB_DXT1: + case MESA_FORMAT_SRGBA_DXT1: + case MESA_FORMAT_SRGBA_DXT3: + case MESA_FORMAT_SRGBA_DXT5: + case MESA_FORMAT_R_RGTC1_UNORM: + case MESA_FORMAT_R_RGTC1_SNORM: + case MESA_FORMAT_RG_RGTC2_UNORM: + case MESA_FORMAT_RG_RGTC2_SNORM: + case MESA_FORMAT_L_LATC1_UNORM: + case MESA_FORMAT_L_LATC1_SNORM: + case MESA_FORMAT_LA_LATC2_UNORM: + case MESA_FORMAT_LA_LATC2_SNORM: + case MESA_FORMAT_ETC1_RGB8: + case MESA_FORMAT_ETC2_RGB8: + case MESA_FORMAT_ETC2_SRGB8: + case MESA_FORMAT_ETC2_RGBA8_EAC: + case MESA_FORMAT_ETC2_SRGB8_ALPHA8_EAC: + case MESA_FORMAT_ETC2_R11_EAC: + case MESA_FORMAT_ETC2_RG11_EAC: + case MESA_FORMAT_ETC2_SIGNED_R11_EAC: + case MESA_FORMAT_ETC2_SIGNED_RG11_EAC: + case MESA_FORMAT_ETC2_RGB8_PUNCHTHROUGH_ALPHA1: + case MESA_FORMAT_ETC2_SRGB8_PUNCHTHROUGH_ALPHA1: + case MESA_FORMAT_BPTC_RGBA_UNORM: + case MESA_FORMAT_BPTC_SRGB_ALPHA_UNORM: + case MESA_FORMAT_BPTC_RGB_SIGNED_FLOAT: + case MESA_FORMAT_BPTC_RGB_UNSIGNED_FLOAT: + /* XXX generate error instead? */ + *datatype = GL_UNSIGNED_BYTE; + *comps = 0; + return; + case MESA_FORMAT_RGBA_FLOAT32: *datatype = GL_FLOAT; *comps = 4; @@ -1365,12 +1586,14 @@ _mesa_uncompressed_format_to_type_and_comps(mesa_format format, case MESA_FORMAT_COUNT: assert(0); return; + + case MESA_FORMAT_NONE: + /* For debug builds, warn if any formats are not handled */ +#ifdef DEBUG default: - /* Warn if any formats are not handled */ - _mesa_problem(NULL, "bad format %s in _mesa_uncompressed_format_to_type_and_comps", +#endif + _mesa_problem(NULL, "bad format %s in _mesa_format_to_type_and_comps", _mesa_get_format_name(format)); - assert(format == MESA_FORMAT_NONE || - _mesa_is_format_compressed(format)); *datatype = 0; *comps = 1; } @@ -1383,26 +1606,20 @@ _mesa_uncompressed_format_to_type_and_comps(mesa_format format, * \param format the user-specified image format * \param type the user-specified image datatype * \param swapBytes typically the current pixel pack/unpack byteswap state - * \param[out] error GL_NO_ERROR if format is an expected input. - * GL_INVALID_ENUM if format is an unexpected input. * \return GL_TRUE if the formats match, GL_FALSE otherwise. */ GLboolean _mesa_format_matches_format_and_type(mesa_format mesa_format, GLenum format, GLenum type, - GLboolean swapBytes, GLenum *error) + GLboolean swapBytes) { const GLboolean littleEndian = _mesa_little_endian(); - if (error) - *error = GL_NO_ERROR; /* Note: When reading a GL format/type combination, the format lists channel * assignments from most significant channel in the type to least * significant. A type with _REV indicates that the assignments are * swapped, so they are listed from least significant to most significant. * - * Compressed formats will fall through and return GL_FALSE. - * * For sanity, please keep this switch statement ordered the same as the * enums in formats.h. */ @@ -1663,6 +1880,26 @@ _mesa_format_matches_format_and_type(mesa_format mesa_format, case MESA_FORMAT_S_UINT8: return format == GL_STENCIL_INDEX && type == GL_UNSIGNED_BYTE; + case MESA_FORMAT_SRGB_DXT1: + case MESA_FORMAT_SRGBA_DXT1: + case MESA_FORMAT_SRGBA_DXT3: + case MESA_FORMAT_SRGBA_DXT5: + return GL_FALSE; + + case MESA_FORMAT_RGB_FXT1: + case MESA_FORMAT_RGBA_FXT1: + case MESA_FORMAT_RGB_DXT1: + case MESA_FORMAT_RGBA_DXT1: + case MESA_FORMAT_RGBA_DXT3: + case MESA_FORMAT_RGBA_DXT5: + return GL_FALSE; + + case MESA_FORMAT_BPTC_RGBA_UNORM: + case MESA_FORMAT_BPTC_SRGB_ALPHA_UNORM: + case MESA_FORMAT_BPTC_RGB_SIGNED_FLOAT: + case MESA_FORMAT_BPTC_RGB_UNSIGNED_FLOAT: + return GL_FALSE; + case MESA_FORMAT_RGBA_FLOAT32: return format == GL_RGBA && type == GL_FLOAT && !swapBytes; case MESA_FORMAT_RGBA_FLOAT16: @@ -1859,6 +2096,31 @@ _mesa_format_matches_format_and_type(mesa_format mesa_format, return format == GL_RGBA && type == GL_UNSIGNED_SHORT && !swapBytes; + case MESA_FORMAT_R_RGTC1_UNORM: + case MESA_FORMAT_R_RGTC1_SNORM: + case MESA_FORMAT_RG_RGTC2_UNORM: + case MESA_FORMAT_RG_RGTC2_SNORM: + return GL_FALSE; + + case MESA_FORMAT_L_LATC1_UNORM: + case MESA_FORMAT_L_LATC1_SNORM: + case MESA_FORMAT_LA_LATC2_UNORM: + case MESA_FORMAT_LA_LATC2_SNORM: + return GL_FALSE; + + case MESA_FORMAT_ETC1_RGB8: + case MESA_FORMAT_ETC2_RGB8: + case MESA_FORMAT_ETC2_SRGB8: + case MESA_FORMAT_ETC2_RGBA8_EAC: + case MESA_FORMAT_ETC2_SRGB8_ALPHA8_EAC: + case MESA_FORMAT_ETC2_R11_EAC: + case MESA_FORMAT_ETC2_RG11_EAC: + case MESA_FORMAT_ETC2_SIGNED_R11_EAC: + case MESA_FORMAT_ETC2_SIGNED_RG11_EAC: + case MESA_FORMAT_ETC2_RGB8_PUNCHTHROUGH_ALPHA1: + case MESA_FORMAT_ETC2_SRGB8_PUNCHTHROUGH_ALPHA1: + return GL_FALSE; + case MESA_FORMAT_A_SNORM8: return format == GL_ALPHA && type == GL_BYTE; case MESA_FORMAT_L_SNORM8: @@ -2031,11 +2293,8 @@ _mesa_format_matches_format_and_type(mesa_format mesa_format, case MESA_FORMAT_B8G8R8X8_SRGB: case MESA_FORMAT_X8R8G8B8_SRGB: return GL_FALSE; - default: - assert(_mesa_is_format_compressed(mesa_format)); - if (error) - *error = GL_INVALID_ENUM; } + return GL_FALSE; } diff --git a/lib/mesa/src/mesa/main/formats.h b/lib/mesa/src/mesa/main/formats.h index fbcbe36b7..3fb64965c 100644 --- a/lib/mesa/src/mesa/main/formats.h +++ b/lib/mesa/src/mesa/main/formats.h @@ -66,12 +66,10 @@ enum mesa_format_layout { MESA_FORMAT_LAYOUT_PACKED, MESA_FORMAT_LAYOUT_S3TC, MESA_FORMAT_LAYOUT_RGTC, - MESA_FORMAT_LAYOUT_LATC, MESA_FORMAT_LAYOUT_FXT1, MESA_FORMAT_LAYOUT_ETC1, MESA_FORMAT_LAYOUT_ETC2, MESA_FORMAT_LAYOUT_BPTC, - MESA_FORMAT_LAYOUT_ASTC, MESA_FORMAT_LAYOUT_OTHER, }; @@ -605,57 +603,6 @@ typedef enum MESA_FORMAT_BPTC_RGB_SIGNED_FLOAT, MESA_FORMAT_BPTC_RGB_UNSIGNED_FLOAT, - /* ASTC compressed formats */ - MESA_FORMAT_RGBA_ASTC_4x4, - MESA_FORMAT_RGBA_ASTC_5x4, - MESA_FORMAT_RGBA_ASTC_5x5, - MESA_FORMAT_RGBA_ASTC_6x5, - MESA_FORMAT_RGBA_ASTC_6x6, - MESA_FORMAT_RGBA_ASTC_8x5, - MESA_FORMAT_RGBA_ASTC_8x6, - MESA_FORMAT_RGBA_ASTC_8x8, - MESA_FORMAT_RGBA_ASTC_10x5, - MESA_FORMAT_RGBA_ASTC_10x6, - MESA_FORMAT_RGBA_ASTC_10x8, - MESA_FORMAT_RGBA_ASTC_10x10, - MESA_FORMAT_RGBA_ASTC_12x10, - MESA_FORMAT_RGBA_ASTC_12x12, - - MESA_FORMAT_SRGB8_ALPHA8_ASTC_4x4, - MESA_FORMAT_SRGB8_ALPHA8_ASTC_5x4, - MESA_FORMAT_SRGB8_ALPHA8_ASTC_5x5, - MESA_FORMAT_SRGB8_ALPHA8_ASTC_6x5, - MESA_FORMAT_SRGB8_ALPHA8_ASTC_6x6, - MESA_FORMAT_SRGB8_ALPHA8_ASTC_8x5, - MESA_FORMAT_SRGB8_ALPHA8_ASTC_8x6, - MESA_FORMAT_SRGB8_ALPHA8_ASTC_8x8, - MESA_FORMAT_SRGB8_ALPHA8_ASTC_10x5, - MESA_FORMAT_SRGB8_ALPHA8_ASTC_10x6, - MESA_FORMAT_SRGB8_ALPHA8_ASTC_10x8, - MESA_FORMAT_SRGB8_ALPHA8_ASTC_10x10, - MESA_FORMAT_SRGB8_ALPHA8_ASTC_12x10, - MESA_FORMAT_SRGB8_ALPHA8_ASTC_12x12, - - MESA_FORMAT_RGBA_ASTC_3x3x3, - MESA_FORMAT_RGBA_ASTC_4x3x3, - MESA_FORMAT_RGBA_ASTC_4x4x3, - MESA_FORMAT_RGBA_ASTC_4x4x4, - MESA_FORMAT_RGBA_ASTC_5x4x4, - MESA_FORMAT_RGBA_ASTC_5x5x4, - MESA_FORMAT_RGBA_ASTC_5x5x5, - MESA_FORMAT_RGBA_ASTC_6x5x5, - MESA_FORMAT_RGBA_ASTC_6x6x5, - MESA_FORMAT_RGBA_ASTC_6x6x6, - MESA_FORMAT_SRGB8_ALPHA8_ASTC_3x3x3, - MESA_FORMAT_SRGB8_ALPHA8_ASTC_4x3x3, - MESA_FORMAT_SRGB8_ALPHA8_ASTC_4x4x3, - MESA_FORMAT_SRGB8_ALPHA8_ASTC_4x4x4, - MESA_FORMAT_SRGB8_ALPHA8_ASTC_5x4x4, - MESA_FORMAT_SRGB8_ALPHA8_ASTC_5x5x4, - MESA_FORMAT_SRGB8_ALPHA8_ASTC_5x5x5, - MESA_FORMAT_SRGB8_ALPHA8_ASTC_6x5x5, - MESA_FORMAT_SRGB8_ALPHA8_ASTC_6x6x5, - MESA_FORMAT_SRGB8_ALPHA8_ASTC_6x6x6, MESA_FORMAT_COUNT } mesa_format; @@ -684,10 +631,6 @@ _mesa_get_format_base_format(uint32_t format); extern void _mesa_get_format_block_size(mesa_format format, GLuint *bw, GLuint *bh); -extern void -_mesa_get_format_block_size_3d(mesa_format format, GLuint *bw, - GLuint *bh, GLuint *bd); - extern mesa_array_format _mesa_array_format_flip_channels(mesa_array_format format); @@ -739,7 +682,7 @@ extern GLint _mesa_format_row_stride(mesa_format format, GLsizei width); extern void -_mesa_uncompressed_format_to_type_and_comps(mesa_format format, +_mesa_format_to_type_and_comps(mesa_format format, GLenum *datatype, GLuint *comps); extern void @@ -749,9 +692,6 @@ extern mesa_format _mesa_get_srgb_format_linear(mesa_format format); extern mesa_format -_mesa_get_linear_format_srgb(mesa_format format); - -extern mesa_format _mesa_get_uncompressed_format(mesa_format format); extern GLuint @@ -763,10 +703,7 @@ _mesa_format_has_color_component(mesa_format format, int component); GLboolean _mesa_format_matches_format_and_type(mesa_format mesa_format, GLenum format, GLenum type, - GLboolean swapBytes, GLenum *error); - -mesa_format -_mesa_format_fallback_rgbx_to_rgba(mesa_format format); + GLboolean swapBytes); #ifdef __cplusplus } diff --git a/lib/mesa/src/mesa/main/genmipmap.c b/lib/mesa/src/mesa/main/genmipmap.c index be49136aa..c18f9d522 100644 --- a/lib/mesa/src/mesa/main/genmipmap.c +++ b/lib/mesa/src/mesa/main/genmipmap.c @@ -38,18 +38,27 @@ #include "texobj.h" #include "hash.h" -bool -_mesa_is_valid_generate_texture_mipmap_target(struct gl_context *ctx, - GLenum target) +/** + * Implements glGenerateMipmap and glGenerateTextureMipmap. + * Generates all the mipmap levels below the base level. + */ +void +_mesa_generate_texture_mipmap(struct gl_context *ctx, + struct gl_texture_object *texObj, GLenum target, + bool dsa) { - bool error; + struct gl_texture_image *srcImage; + GLboolean error; + const char *suffix = dsa ? "Texture" : ""; + + FLUSH_VERTICES(ctx, 0); switch (target) { case GL_TEXTURE_1D: error = _mesa_is_gles(ctx); break; case GL_TEXTURE_2D: - error = false; + error = GL_FALSE; break; case GL_TEXTURE_3D: error = ctx->API == API_OPENGLES; @@ -65,58 +74,19 @@ _mesa_is_valid_generate_texture_mipmap_target(struct gl_context *ctx, || !ctx->Extensions.EXT_texture_array; break; case GL_TEXTURE_CUBE_MAP_ARRAY: - error = !_mesa_has_texture_cube_map_array(ctx); + error = _mesa_is_gles(ctx) || + !ctx->Extensions.ARB_texture_cube_map_array; break; default: - error = true; + error = GL_TRUE; } - return !error; -} - -bool -_mesa_is_valid_generate_texture_mipmap_internalformat(struct gl_context *ctx, - GLenum internalformat) -{ - if (_mesa_is_gles3(ctx)) { - /* From the ES 3.2 specification's description of GenerateMipmap(): - * "An INVALID_OPERATION error is generated if the levelbase array was - * not specified with an unsized internal format from table 8.3 or a - * sized internal format that is both color-renderable and - * texture-filterable according to table 8.10." - * - * GL_EXT_texture_format_BGRA8888 adds a GL_BGRA_EXT unsized internal - * format, and includes it in a very similar looking table. So we - * include it here as well. - */ - return internalformat == GL_RGBA || internalformat == GL_RGB || - internalformat == GL_LUMINANCE_ALPHA || - internalformat == GL_LUMINANCE || internalformat == GL_ALPHA || - internalformat == GL_BGRA_EXT || - (_mesa_is_es3_color_renderable(internalformat) && - _mesa_is_es3_texture_filterable(ctx, internalformat)); + if (error) { + _mesa_error(ctx, GL_INVALID_ENUM, "glGenerate%sMipmap(target=%s)", + suffix, _mesa_enum_to_string(target)); + return; } - return (!_mesa_is_enum_format_integer(internalformat) && - !_mesa_is_depthstencil_format(internalformat) && - !_mesa_is_astc_format(internalformat) && - !_mesa_is_stencil_format(internalformat)); -} - -/** - * Implements glGenerateMipmap and glGenerateTextureMipmap. - * Generates all the mipmap levels below the base level. - */ -static void -generate_texture_mipmap(struct gl_context *ctx, - struct gl_texture_object *texObj, GLenum target, - bool dsa) -{ - struct gl_texture_image *srcImage; - const char *suffix = dsa ? "Texture" : ""; - - FLUSH_VERTICES(ctx, 0); - if (texObj->BaseLevel >= texObj->MaxLevel) { /* nothing to do */ return; @@ -139,17 +109,12 @@ generate_texture_mipmap(struct gl_context *ctx, return; } - if (!_mesa_is_valid_generate_texture_mipmap_internalformat(ctx, - srcImage->InternalFormat)) { + if (_mesa_is_enum_format_integer(srcImage->InternalFormat) || + _mesa_is_depthstencil_format(srcImage->InternalFormat) || + _mesa_is_stencil_format(srcImage->InternalFormat)) { _mesa_unlock_texture(ctx, texObj); _mesa_error(ctx, GL_INVALID_OPERATION, - "glGenerate%sMipmap(invalid internal format %s)", suffix, - _mesa_enum_to_string(srcImage->InternalFormat)); - return; - } - - if (srcImage->Width == 0 || srcImage->Height == 0) { - _mesa_unlock_texture(ctx, texObj); + "glGenerate%sMipmap(invalid internal format)", suffix); return; } @@ -157,7 +122,7 @@ generate_texture_mipmap(struct gl_context *ctx, GLuint face; for (face = 0; face < 6; face++) { ctx->Driver.GenerateMipmap(ctx, - GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, texObj); + GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB + face, texObj); } } else { @@ -177,17 +142,11 @@ _mesa_GenerateMipmap(GLenum target) struct gl_texture_object *texObj; GET_CURRENT_CONTEXT(ctx); - if (!_mesa_is_valid_generate_texture_mipmap_target(ctx, target)) { - _mesa_error(ctx, GL_INVALID_ENUM, "glGenerateMipmap(target=%s)", - _mesa_enum_to_string(target)); - return; - } - texObj = _mesa_get_current_tex_object(ctx, target); if (!texObj) return; - generate_texture_mipmap(ctx, texObj, target, false); + _mesa_generate_texture_mipmap(ctx, texObj, target, false); } /** @@ -203,11 +162,5 @@ _mesa_GenerateTextureMipmap(GLuint texture) if (!texObj) return; - if (!_mesa_is_valid_generate_texture_mipmap_target(ctx, texObj->Target)) { - _mesa_error(ctx, GL_INVALID_ENUM, "glGenerateTextureMipmap(target=%s)", - _mesa_enum_to_string(texObj->Target)); - return; - } - - generate_texture_mipmap(ctx, texObj, texObj->Target, true); + _mesa_generate_texture_mipmap(ctx, texObj, texObj->Target, true); } diff --git a/lib/mesa/src/mesa/main/genmipmap.h b/lib/mesa/src/mesa/main/genmipmap.h index 94f7f7a68..f4ef85951 100644 --- a/lib/mesa/src/mesa/main/genmipmap.h +++ b/lib/mesa/src/mesa/main/genmipmap.h @@ -28,12 +28,10 @@ #include "glheader.h" -bool -_mesa_is_valid_generate_texture_mipmap_target(struct gl_context *ctx, - GLenum target); -bool -_mesa_is_valid_generate_texture_mipmap_internalformat(struct gl_context *ctx, - GLenum internalformat); +extern void +_mesa_generate_texture_mipmap(struct gl_context *ctx, + struct gl_texture_object *texObj, GLenum target, + bool dsa); extern void GLAPIENTRY _mesa_GenerateMipmap(GLenum target); diff --git a/lib/mesa/src/mesa/main/getstring.c b/lib/mesa/src/mesa/main/getstring.c index 5da405d9f..9873fdbf1 100644 --- a/lib/mesa/src/mesa/main/getstring.c +++ b/lib/mesa/src/mesa/main/getstring.c @@ -26,12 +26,11 @@ #include <stdbool.h> #include "glheader.h" #include "context.h" -#include "debug_output.h" #include "get.h" #include "enums.h" #include "extensions.h" #include "mtypes.h" -#include "macros.h" + /** * Return the string for a glGetString(GL_SHADING_LANGUAGE_VERSION) query. @@ -80,8 +79,6 @@ shading_language_version(struct gl_context *ctx) return (const GLubyte *) "OpenGL ES GLSL ES 3.00"; case 31: return (const GLubyte *) "OpenGL ES GLSL ES 3.10"; - case 32: - return (const GLubyte *) "OpenGL ES GLSL ES 3.20"; default: _mesa_problem(ctx, "Invalid OpenGL ES version in shading_language_version()"); @@ -124,7 +121,7 @@ _mesa_GetString( GLenum name ) assert(ctx->Driver.GetString); { /* Give the driver the chance to handle this query */ - const GLubyte *str = ctx->Driver.GetString(ctx, name); + const GLubyte *str = (*ctx->Driver.GetString)(ctx, name); if (str) return str; } @@ -206,18 +203,12 @@ _mesa_GetPointerv( GLenum pname, GLvoid **params ) { GET_CURRENT_CONTEXT(ctx); const GLuint clientUnit = ctx->Array.ActiveTexture; - const char *callerstr; - - if (_mesa_is_desktop_gl(ctx)) - callerstr = "glGetPointerv"; - else - callerstr = "glGetPointervKHR"; if (!params) return; if (MESA_VERBOSE & VERBOSE_API) - _mesa_debug(ctx, "%s %s\n", callerstr, _mesa_enum_to_string(pname)); + _mesa_debug(ctx, "glGetPointerv %s\n", _mesa_enum_to_string(pname)); switch (pname) { case GL_VERTEX_ARRAY_POINTER: @@ -277,7 +268,10 @@ _mesa_GetPointerv( GLenum pname, GLvoid **params ) break; case GL_DEBUG_CALLBACK_FUNCTION_ARB: case GL_DEBUG_CALLBACK_USER_PARAM_ARB: - *params = _mesa_get_debug_state_ptr(ctx, pname); + if (!_mesa_is_desktop_gl(ctx)) + goto invalid_pname; + else + *params = _mesa_get_debug_state_ptr(ctx, pname); break; default: goto invalid_pname; @@ -286,7 +280,7 @@ _mesa_GetPointerv( GLenum pname, GLvoid **params ) return; invalid_pname: - _mesa_error( ctx, GL_INVALID_ENUM, "%s", callerstr); + _mesa_error( ctx, GL_INVALID_ENUM, "glGetPointerv" ); return; } @@ -304,17 +298,6 @@ _mesa_GetError( void ) GLenum e = ctx->ErrorValue; ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, 0); - /* From Issue (3) of the KHR_no_error spec: - * - * "Should glGetError() always return NO_ERROR or have undefined - * results? - * - * RESOLVED: It should for all errors except OUT_OF_MEMORY." - */ - if (_mesa_is_no_error_enabled(ctx) && e != GL_OUT_OF_MEMORY) { - e = GL_NO_ERROR; - } - if (MESA_VERBOSE & VERBOSE_API) _mesa_debug(ctx, "glGetError <-- %s\n", _mesa_enum_to_string(e)); @@ -322,3 +305,59 @@ _mesa_GetError( void ) ctx->ErrorDebugCount = 0; return e; } + +/** + * Returns an error code specified by GL_ARB_robustness, or GL_NO_ERROR. + * \return current context status + */ +GLenum GLAPIENTRY +_mesa_GetGraphicsResetStatusARB( void ) +{ + GET_CURRENT_CONTEXT(ctx); + GLenum status = GL_NO_ERROR; + + /* The ARB_robustness specification says: + * + * "If the reset notification behavior is NO_RESET_NOTIFICATION_ARB, + * then the implementation will never deliver notification of reset + * events, and GetGraphicsResetStatusARB will always return NO_ERROR." + */ + if (ctx->Const.ResetStrategy == GL_NO_RESET_NOTIFICATION_ARB) { + if (MESA_VERBOSE & VERBOSE_API) + _mesa_debug(ctx, + "glGetGraphicsResetStatusARB always returns GL_NO_ERROR " + "because reset notifictation was not requested at context " + "creation.\n"); + + return GL_NO_ERROR; + } + + if (ctx->Driver.GetGraphicsResetStatus) { + /* Query the reset status of this context from the driver core. + */ + status = ctx->Driver.GetGraphicsResetStatus(ctx); + + mtx_lock(&ctx->Shared->Mutex); + + /* If this context has not been affected by a GPU reset, check to see if + * some other context in the share group has been affected by a reset. + * If another context saw a reset but this context did not, assume that + * this context was not guilty. + */ + if (status != GL_NO_ERROR) { + ctx->Shared->ShareGroupReset = true; + } else if (ctx->Shared->ShareGroupReset && !ctx->ShareGroupReset) { + status = GL_INNOCENT_CONTEXT_RESET_ARB; + } + + ctx->ShareGroupReset = ctx->Shared->ShareGroupReset; + mtx_unlock(&ctx->Shared->Mutex); + } + + if (!ctx->Driver.GetGraphicsResetStatus && (MESA_VERBOSE & VERBOSE_API)) + _mesa_debug(ctx, + "glGetGraphicsResetStatusARB always returns GL_NO_ERROR " + "because the driver doesn't track reset status.\n"); + + return status; +} diff --git a/lib/mesa/src/mesa/main/hash.h b/lib/mesa/src/mesa/main/hash.h index 02960e3b3..da3b9973d 100644 --- a/lib/mesa/src/mesa/main/hash.h +++ b/lib/mesa/src/mesa/main/hash.h @@ -33,76 +33,7 @@ #include "glheader.h" -#include "imports.h" -/** - * Magic GLuint object name that gets stored outside of the struct hash_table. - * - * The hash table needs a particular pointer to be the marker for a key that - * was deleted from the table, along with NULL for the "never allocated in the - * table" marker. Legacy GL allows any GLuint to be used as a GL object name, - * and we use a 1:1 mapping from GLuints to key pointers, so we need to be - * able to track a GLuint that happens to match the deleted key outside of - * struct hash_table. We tell the hash table to use "1" as the deleted key - * value, so that we test the deleted-key-in-the-table path as best we can. - */ -#define DELETED_KEY_VALUE 1 - -/** @{ - * Mapping from our use of GLuint as both the key and the hash value to the - * hash_table.h API - * - * There exist many integer hash functions, designed to avoid collisions when - * the integers are spread across key space with some patterns. In GL, the - * pattern (in the case of glGen*()ed object IDs) is that the keys are unique - * contiguous integers starting from 1. Because of that, we just use the key - * as the hash value, to minimize the cost of the hash function. If objects - * are never deleted, we will never see a collision in the table, because the - * table resizes itself when it approaches full, and thus key % table_size == - * key. - * - * The case where we could have collisions for genned objects would be - * something like: glGenBuffers(&a, 100); glDeleteBuffers(&a + 50, 50); - * glGenBuffers(&b, 100), because objects 1-50 and 101-200 are allocated at - * the end of that sequence, instead of 1-150. So far it doesn't appear to be - * a problem. - */ -static inline bool -uint_key_compare(const void *a, const void *b) -{ - return a == b; -} - -static inline uint32_t -uint_hash(GLuint id) -{ - return id; -} - -static inline uint32_t -uint_key_hash(const void *key) -{ - return uint_hash((uintptr_t)key); -} - -static inline void * -uint_key(GLuint id) -{ - return (void *)(uintptr_t) id; -} -/** @} */ - -/** - * The hash table data structure. - */ -struct _mesa_HashTable { - struct hash_table *ht; - GLuint MaxKey; /**< highest key inserted so far */ - mtx_t Mutex; /**< mutual exclusion lock */ - GLboolean InDeleteAll; /**< Debug check */ - /** Value that would be in the table for DELETED_KEY_VALUE. */ - void *deleted_key_data; -}; extern struct _mesa_HashTable *_mesa_NewHashTable(void); @@ -114,42 +45,15 @@ extern void _mesa_HashInsert(struct _mesa_HashTable *table, GLuint key, void *da extern void _mesa_HashRemove(struct _mesa_HashTable *table, GLuint key); -/** - * Lock the hash table mutex. - * - * This function should be used when multiple objects need - * to be looked up in the hash table, to avoid having to lock - * and unlock the mutex each time. - * - * \param table the hash table. - */ -static inline void -_mesa_HashLockMutex(struct _mesa_HashTable *table) -{ - assert(table); - mtx_lock(&table->Mutex); -} +extern void _mesa_HashLockMutex(struct _mesa_HashTable *table); - -/** - * Unlock the hash table mutex. - * - * \param table the hash table. - */ -static inline void -_mesa_HashUnlockMutex(struct _mesa_HashTable *table) -{ - assert(table); - mtx_unlock(&table->Mutex); -} +extern void _mesa_HashUnlockMutex(struct _mesa_HashTable *table); extern void *_mesa_HashLookupLocked(struct _mesa_HashTable *table, GLuint key); extern void _mesa_HashInsertLocked(struct _mesa_HashTable *table, GLuint key, void *data); -extern void _mesa_HashRemoveLocked(struct _mesa_HashTable *table, GLuint key); - extern void _mesa_HashDeleteAll(struct _mesa_HashTable *table, void (*callback)(GLuint key, void *data, void *userData), @@ -160,11 +64,6 @@ _mesa_HashWalk(const struct _mesa_HashTable *table, void (*callback)(GLuint key, void *data, void *userData), void *userData); -extern void -_mesa_HashWalkLocked(const struct _mesa_HashTable *table, - void (*callback)(GLuint key, void *data, void *userData), - void *userData); - extern void _mesa_HashPrint(const struct _mesa_HashTable *table); extern GLuint _mesa_HashFindFreeKeyBlock(struct _mesa_HashTable *table, GLuint numKeys); diff --git a/lib/mesa/src/mesa/main/image.c b/lib/mesa/src/mesa/main/image.c index ad6b378f7..e79e3e68e 100644 --- a/lib/mesa/src/mesa/main/image.c +++ b/lib/mesa/src/mesa/main/image.c @@ -151,8 +151,8 @@ _mesa_image_offset( GLuint dimensions, if (type == GL_BITMAP) { /* BITMAP data */ - GLintptr bytes_per_row; - GLintptr bytes_per_image; + GLint bytes_per_row; + GLint bytes_per_image; /* components per pixel for color or stencil index: */ const GLint comp_per_pixel = 1; @@ -170,8 +170,8 @@ _mesa_image_offset( GLuint dimensions, } else { /* Non-BITMAP data */ - GLintptr bytes_per_pixel, bytes_per_row, remainder, bytes_per_image; - GLintptr topOfImage; + GLint bytes_per_pixel, bytes_per_row, remainder, bytes_per_image; + GLint topOfImage; bytes_per_pixel = _mesa_bytes_per_pixel( format, type ); @@ -408,7 +408,9 @@ _mesa_expand_bitmap(GLsizei width, GLsizei height, const GLint srcStride = _mesa_image_row_stride(unpack, width, GL_COLOR_INDEX, GL_BITMAP); GLint row, col; - GLubyte *dstRow = destBuffer; + +#define SET_PIXEL(COL, ROW) \ + destBuffer[(ROW) * destStride + (COL)] = onValue; for (row = 0; row < height; row++) { const GLubyte *src = srcRow; @@ -419,7 +421,7 @@ _mesa_expand_bitmap(GLsizei width, GLsizei height, for (col = 0; col < width; col++) { if (*src & mask) { - dstRow[col] = onValue; + SET_PIXEL(col, row); } if (mask == 128U) { @@ -441,7 +443,7 @@ _mesa_expand_bitmap(GLsizei width, GLsizei height, for (col = 0; col < width; col++) { if (*src & mask) { - dstRow[col] = onValue; + SET_PIXEL(col, row); } if (mask == 1U) { @@ -459,8 +461,9 @@ _mesa_expand_bitmap(GLsizei width, GLsizei height, } srcRow += srcStride; - dstRow += destStride; } /* row */ + +#undef SET_PIXEL } @@ -581,7 +584,7 @@ _mesa_convert_colors(GLenum srcType, const GLvoid *src, } break; default: - unreachable("Invalid datatype in _mesa_convert_colors"); + _mesa_problem(NULL, "Invalid datatype in _mesa_convert_colors"); } free(tempBuffer); @@ -667,7 +670,7 @@ _mesa_clip_drawpixels(const struct gl_context *ctx, * so that the image region is entirely within the window bounds. * Note: this is different from _mesa_clip_drawpixels() in that the * scissor box is ignored, and we use the bounds of the current readbuffer - * surface or the attached image. + * surface. * * \return GL_TRUE if region to read is in bounds * GL_FALSE if region is completely out of bounds (nothing to read) @@ -679,18 +682,6 @@ _mesa_clip_readpixels(const struct gl_context *ctx, struct gl_pixelstore_attrib *pack) { const struct gl_framebuffer *buffer = ctx->ReadBuffer; - struct gl_renderbuffer *rb = buffer->_ColorReadBuffer; - GLsizei clip_width; - GLsizei clip_height; - - if (rb) { - clip_width = rb->Width; - clip_height = rb->Height; - } else { - clip_width = buffer->Width; - clip_height = buffer->Height; - } - if (pack->RowLength == 0) { pack->RowLength = *width; @@ -703,8 +694,8 @@ _mesa_clip_readpixels(const struct gl_context *ctx, *srcX = 0; } /* right clipping */ - if (*srcX + *width > clip_width) - *width -= (*srcX + *width - clip_width); + if (*srcX + *width > (GLsizei) buffer->Width) + *width -= (*srcX + *width - buffer->Width); if (*width <= 0) return GL_FALSE; @@ -716,8 +707,8 @@ _mesa_clip_readpixels(const struct gl_context *ctx, *srcY = 0; } /* top clipping */ - if (*srcY + *height > clip_height) - *height -= (*srcY + *height - clip_height); + if (*srcY + *height > (GLsizei) buffer->Height) + *height -= (*srcY + *height - buffer->Height); if (*height <= 0) return GL_FALSE; diff --git a/lib/mesa/src/mesa/main/light.c b/lib/mesa/src/mesa/main/light.c index fcd3263cc..14b4b0416 100644 --- a/lib/mesa/src/mesa/main/light.c +++ b/lib/mesa/src/mesa/main/light.c @@ -31,9 +31,9 @@ #include "enums.h" #include "light.h" #include "macros.h" +#include "util/simple_list.h" #include "mtypes.h" #include "math/m_matrix.h" -#include "util/bitscan.h" void GLAPIENTRY @@ -186,7 +186,8 @@ _mesa_light(struct gl_context *ctx, GLuint lnum, GLenum pname, const GLfloat *pa light->QuadraticAttenuation = params[0]; break; default: - unreachable("Unexpected pname in _mesa_light()"); + _mesa_problem(ctx, "Unexpected pname in _mesa_light()"); + return; } if (ctx->Driver.Lightfv) @@ -249,7 +250,17 @@ _mesa_Lightfv( GLenum light, GLenum pname, const GLfloat *params ) } break; case GL_CONSTANT_ATTENUATION: + if (params[0] < 0.0F) { + _mesa_error(ctx, GL_INVALID_VALUE, "glLight"); + return; + } + break; case GL_LINEAR_ATTENUATION: + if (params[0] < 0.0F) { + _mesa_error(ctx, GL_INVALID_VALUE, "glLight"); + return; + } + break; case GL_QUADRATIC_ATTENUATION: if (params[0] < 0.0F) { _mesa_error(ctx, GL_INVALID_VALUE, "glLight"); @@ -611,6 +622,7 @@ _mesa_material_bitmask( struct gl_context *ctx, GLenum face, GLenum pname, void _mesa_update_material( struct gl_context *ctx, GLuint bitmask ) { + struct gl_light *light, *list = &ctx->Light.EnabledList; GLfloat (*mat)[4] = ctx->Light.Material.Attrib; if (MESA_VERBOSE & VERBOSE_MATERIAL) @@ -621,20 +633,14 @@ _mesa_update_material( struct gl_context *ctx, GLuint bitmask ) /* update material ambience */ if (bitmask & MAT_BIT_FRONT_AMBIENT) { - GLbitfield mask = ctx->Light._EnabledLights; - while (mask) { - const int i = u_bit_scan(&mask); - struct gl_light *light = &ctx->Light.Light[i]; + foreach (light, list) { SCALE_3V( light->_MatAmbient[0], light->Ambient, mat[MAT_ATTRIB_FRONT_AMBIENT]); } } if (bitmask & MAT_BIT_BACK_AMBIENT) { - GLbitfield mask = ctx->Light._EnabledLights; - while (mask) { - const int i = u_bit_scan(&mask); - struct gl_light *light = &ctx->Light.Light[i]; + foreach (light, list) { SCALE_3V( light->_MatAmbient[1], light->Ambient, mat[MAT_ATTRIB_BACK_AMBIENT]); } @@ -655,20 +661,14 @@ _mesa_update_material( struct gl_context *ctx, GLuint bitmask ) /* update material diffuse values */ if (bitmask & MAT_BIT_FRONT_DIFFUSE) { - GLbitfield mask = ctx->Light._EnabledLights; - while (mask) { - const int i = u_bit_scan(&mask); - struct gl_light *light = &ctx->Light.Light[i]; + foreach (light, list) { SCALE_3V( light->_MatDiffuse[0], light->Diffuse, mat[MAT_ATTRIB_FRONT_DIFFUSE] ); } } if (bitmask & MAT_BIT_BACK_DIFFUSE) { - GLbitfield mask = ctx->Light._EnabledLights; - while (mask) { - const int i = u_bit_scan(&mask); - struct gl_light *light = &ctx->Light.Light[i]; + foreach (light, list) { SCALE_3V( light->_MatDiffuse[1], light->Diffuse, mat[MAT_ATTRIB_BACK_DIFFUSE] ); } @@ -676,20 +676,14 @@ _mesa_update_material( struct gl_context *ctx, GLuint bitmask ) /* update material specular values */ if (bitmask & MAT_BIT_FRONT_SPECULAR) { - GLbitfield mask = ctx->Light._EnabledLights; - while (mask) { - const int i = u_bit_scan(&mask); - struct gl_light *light = &ctx->Light.Light[i]; + foreach (light, list) { SCALE_3V( light->_MatSpecular[0], light->Specular, mat[MAT_ATTRIB_FRONT_SPECULAR]); } } if (bitmask & MAT_BIT_BACK_SPECULAR) { - GLbitfield mask = ctx->Light._EnabledLights; - while (mask) { - const int i = u_bit_scan(&mask); - struct gl_light *light = &ctx->Light.Light[i]; + foreach (light, list) { SCALE_3V( light->_MatSpecular[1], light->Specular, mat[MAT_ATTRIB_BACK_SPECULAR]); } @@ -705,14 +699,13 @@ _mesa_update_material( struct gl_context *ctx, GLuint bitmask ) void _mesa_update_color_material( struct gl_context *ctx, const GLfloat color[4] ) { - GLbitfield bitmask = ctx->Light._ColorMaterialBitmask; + const GLbitfield bitmask = ctx->Light._ColorMaterialBitmask; struct gl_material *mat = &ctx->Light.Material; + int i; - while (bitmask) { - const int i = u_bit_scan(&bitmask); - - COPY_4FV( mat->Attrib[i], color ); - } + for (i = 0 ; i < MAT_ATTRIB_MAX ; i++) + if (bitmask & (1<<i)) + COPY_4FV( mat->Attrib[i], color ); _mesa_update_material( ctx, bitmask ); } @@ -881,15 +874,13 @@ void _mesa_update_lighting( struct gl_context *ctx ) { GLbitfield flags = 0; + struct gl_light *light; ctx->Light._NeedEyeCoords = GL_FALSE; if (!ctx->Light.Enabled) return; - GLbitfield mask = ctx->Light._EnabledLights; - while (mask) { - const int i = u_bit_scan(&mask); - struct gl_light *light = &ctx->Light.Light[i]; + foreach(light, &ctx->Light.EnabledList) { flags |= light->_Flags; } @@ -945,6 +936,7 @@ _mesa_update_lighting( struct gl_context *ctx ) static void compute_light_positions( struct gl_context *ctx ) { + struct gl_light *light; static const GLfloat eye_z[3] = { 0, 0, 1 }; if (!ctx->Light.Enabled) @@ -957,10 +949,7 @@ compute_light_positions( struct gl_context *ctx ) TRANSFORM_NORMAL( ctx->_EyeZDir, eye_z, ctx->ModelviewMatrixStack.Top->m ); } - GLbitfield mask = ctx->Light._EnabledLights; - while (mask) { - const int i = u_bit_scan(&mask); - struct gl_light *light = &ctx->Light.Light[i]; + foreach (light, &ctx->Light.EnabledList) { if (ctx->_NeedEyeCoords) { /* _Position is in eye coordinate space */ @@ -1032,7 +1021,6 @@ static void update_modelview_scale( struct gl_context *ctx ) { ctx->_ModelViewInvScale = 1.0F; - ctx->_ModelViewInvScaleEyespace = 1.0F; if (!_math_matrix_is_length_preserving(ctx->ModelviewMatrixStack.Top)) { const GLfloat *m = ctx->ModelviewMatrixStack.Top->inv; GLfloat f = m[2] * m[2] + m[6] * m[6] + m[10] * m[10]; @@ -1041,7 +1029,6 @@ update_modelview_scale( struct gl_context *ctx ) ctx->_ModelViewInvScale = 1.0f / sqrtf(f); else ctx->_ModelViewInvScale = sqrtf(f); - ctx->_ModelViewInvScaleEyespace = 1.0f / sqrtf(f); } } @@ -1123,6 +1110,8 @@ _mesa_allow_light_in_model( struct gl_context *ctx, GLboolean flag ) static void init_light( struct gl_light *l, GLuint n ) { + make_empty_list( l ); + ASSIGN_4V( l->Ambient, 0.0, 0.0, 0.0, 1.0 ); if (n==0) { ASSIGN_4V( l->Diffuse, 1.0, 1.0, 1.0, 1.0 ); @@ -1192,10 +1181,10 @@ _mesa_init_lighting( struct gl_context *ctx ) GLuint i; /* Lighting group */ - ctx->Light._EnabledLights = 0; for (i = 0; i < MAX_LIGHTS; i++) { init_light( &ctx->Light.Light[i], i ); } + make_empty_list( &ctx->Light.EnabledList ); init_lightmodel( &ctx->Light.Model ); init_material( &ctx->Light.Material ); @@ -1218,5 +1207,4 @@ _mesa_init_lighting( struct gl_context *ctx ) ctx->_NeedEyeCoords = GL_FALSE; ctx->_ForceEyeCoords = GL_FALSE; ctx->_ModelViewInvScale = 1.0; - ctx->_ModelViewInvScaleEyespace = 1.0; } diff --git a/lib/mesa/src/mesa/main/lines.c b/lib/mesa/src/mesa/main/lines.c index d83a7d88d..c020fb3eb 100644 --- a/lib/mesa/src/mesa/main/lines.c +++ b/lib/mesa/src/mesa/main/lines.c @@ -45,10 +45,6 @@ _mesa_LineWidth( GLfloat width ) if (MESA_VERBOSE & VERBOSE_API) _mesa_debug(ctx, "glLineWidth %f\n", width); - /* If width is unchanged, there can't be an error */ - if (ctx->Line.Width == width) - return; - if (width <= 0.0F) { _mesa_error( ctx, GL_INVALID_VALUE, "glLineWidth" ); return; @@ -72,8 +68,10 @@ _mesa_LineWidth( GLfloat width ) return; } - FLUSH_VERTICES(ctx, ctx->DriverFlags.NewLineState ? 0 : _NEW_LINE); - ctx->NewDriverState |= ctx->DriverFlags.NewLineState; + if (ctx->Line.Width == width) + return; + + FLUSH_VERTICES(ctx, _NEW_LINE); ctx->Line.Width = width; if (ctx->Driver.LineWidth) @@ -107,8 +105,7 @@ _mesa_LineStipple( GLint factor, GLushort pattern ) ctx->Line.StipplePattern == pattern) return; - FLUSH_VERTICES(ctx, ctx->DriverFlags.NewLineState ? 0 : _NEW_LINE); - ctx->NewDriverState |= ctx->DriverFlags.NewLineState; + FLUSH_VERTICES(ctx, _NEW_LINE); ctx->Line.StippleFactor = factor; ctx->Line.StipplePattern = pattern; diff --git a/lib/mesa/src/mesa/main/multisample.c b/lib/mesa/src/mesa/main/multisample.c index 38d91f720..e7783ea53 100644 --- a/lib/mesa/src/mesa/main/multisample.c +++ b/lib/mesa/src/mesa/main/multisample.c @@ -41,16 +41,11 @@ _mesa_SampleCoverage(GLclampf value, GLboolean invert) { GET_CURRENT_CONTEXT(ctx); - value = CLAMP(value, 0.0f, 1.0f); + FLUSH_VERTICES(ctx, 0); - if (ctx->Multisample.SampleCoverageInvert == invert && - ctx->Multisample.SampleCoverageValue == value) - return; - - FLUSH_VERTICES(ctx, ctx->DriverFlags.NewSampleMask ? 0 : _NEW_MULTISAMPLE); - ctx->NewDriverState |= ctx->DriverFlags.NewSampleMask; - ctx->Multisample.SampleCoverageValue = value; + ctx->Multisample.SampleCoverageValue = CLAMP(value, 0.0f, 1.0f); ctx->Multisample.SampleCoverageInvert = invert; + ctx->NewState |= _NEW_MULTISAMPLE; } @@ -120,11 +115,7 @@ _mesa_SampleMaski(GLuint index, GLbitfield mask) return; } - if (ctx->Multisample.SampleMaskValue == mask) - return; - - FLUSH_VERTICES(ctx, ctx->DriverFlags.NewSampleMask ? 0 : _NEW_MULTISAMPLE); - ctx->NewDriverState |= ctx->DriverFlags.NewSampleMask; + FLUSH_VERTICES(ctx, _NEW_MULTISAMPLE); ctx->Multisample.SampleMaskValue = mask; } @@ -136,21 +127,15 @@ _mesa_MinSampleShading(GLclampf value) { GET_CURRENT_CONTEXT(ctx); - if (!_mesa_has_ARB_sample_shading(ctx) && - !_mesa_has_OES_sample_shading(ctx)) { + if (!ctx->Extensions.ARB_sample_shading || !_mesa_is_desktop_gl(ctx)) { _mesa_error(ctx, GL_INVALID_OPERATION, "glMinSampleShading"); return; } - value = CLAMP(value, 0.0f, 1.0f); - - if (ctx->Multisample.MinSampleShadingValue == value) - return; + FLUSH_VERTICES(ctx, 0); - FLUSH_VERTICES(ctx, - ctx->DriverFlags.NewSampleShading ? 0 : _NEW_MULTISAMPLE); - ctx->NewDriverState |= ctx->DriverFlags.NewSampleShading; - ctx->Multisample.MinSampleShadingValue = value; + ctx->Multisample.MinSampleShadingValue = CLAMP(value, 0.0f, 1.0f); + ctx->NewState |= _NEW_MULTISAMPLE; } /** @@ -189,15 +174,10 @@ _mesa_check_sample_count(struct gl_context *ctx, GLenum target, * for <internalformat> then the error INVALID_OPERATION is generated." */ if (ctx->Extensions.ARB_internalformat_query) { - GLint buffer[16] = {-1}; - GLint limit; - - ctx->Driver.QueryInternalFormat(ctx, target, internalFormat, - GL_SAMPLES, buffer); - /* since the query returns samples sorted in descending order, - * the first element is the greatest supported sample value. - */ - limit = buffer[0]; + GLint buffer[16]; + int count = ctx->Driver.QuerySamplesForFormat(ctx, target, + internalFormat, buffer); + int limit = count ? buffer[0] : -1; return samples > limit ? GL_INVALID_OPERATION : GL_NO_ERROR; } diff --git a/lib/mesa/src/mesa/main/pipelineobj.h b/lib/mesa/src/mesa/main/pipelineobj.h index 8cc5954ee..6dee775ab 100644 --- a/lib/mesa/src/mesa/main/pipelineobj.h +++ b/lib/mesa/src/mesa/main/pipelineobj.h @@ -67,39 +67,25 @@ _mesa_bind_pipeline(struct gl_context *ctx, struct gl_pipeline_object *pipe); extern GLboolean -_mesa_validate_program_pipeline(struct gl_context * ctx, - struct gl_pipeline_object *pipe); +_mesa_validate_program_pipeline(struct gl_context * ctx, struct gl_pipeline_object *pipe, GLboolean IsBound); -void GLAPIENTRY -_mesa_UseProgramStages_no_error(GLuint pipeline, GLbitfield stages, - GLuint prog); extern void GLAPIENTRY _mesa_UseProgramStages(GLuint pipeline, GLbitfield stages, GLuint program); -void GLAPIENTRY -_mesa_ActiveShaderProgram_no_error(GLuint pipeline, GLuint program); extern void GLAPIENTRY _mesa_ActiveShaderProgram(GLuint pipeline, GLuint program); -void GLAPIENTRY -_mesa_BindProgramPipeline_no_error(GLuint pipeline); extern void GLAPIENTRY _mesa_BindProgramPipeline(GLuint pipeline); extern void GLAPIENTRY _mesa_DeleteProgramPipelines(GLsizei n, const GLuint *pipelines); -void GLAPIENTRY -_mesa_GenProgramPipelines_no_error(GLsizei n, GLuint *pipelines); - extern void GLAPIENTRY _mesa_GenProgramPipelines(GLsizei n, GLuint *pipelines); void GLAPIENTRY -_mesa_CreateProgramPipelines_no_error(GLsizei n, GLuint *pipelines); - -void GLAPIENTRY _mesa_CreateProgramPipelines(GLsizei n, GLuint *pipelines); extern GLboolean GLAPIENTRY diff --git a/lib/mesa/src/mesa/main/pixel.c b/lib/mesa/src/mesa/main/pixel.c index 345c5d183..608a54547 100644 --- a/lib/mesa/src/mesa/main/pixel.c +++ b/lib/mesa/src/mesa/main/pixel.c @@ -598,13 +598,12 @@ _mesa_PixelTransferi( GLenum pname, GLint param ) /***** State Management *****/ /**********************************************************************/ - -/** - * Update mesa pixel transfer derived state to indicate which operations are - * enabled. +/* + * Return a bitmask of IMAGE_*_BIT flags which to indicate which + * pixel transfer operations are enabled. */ -void -_mesa_update_pixel( struct gl_context *ctx ) +static void +update_image_transfer_state(struct gl_context *ctx) { GLuint mask = 0; @@ -624,6 +623,16 @@ _mesa_update_pixel( struct gl_context *ctx ) } +/** + * Update mesa pixel transfer derived state. + */ +void _mesa_update_pixel( struct gl_context *ctx, GLuint new_state ) +{ + if (new_state & _NEW_PIXEL) + update_image_transfer_state(ctx); +} + + /**********************************************************************/ /***** Initialization *****/ /**********************************************************************/ diff --git a/lib/mesa/src/mesa/main/pixel.h b/lib/mesa/src/mesa/main/pixel.h index 17e737628..fd1782e1b 100644 --- a/lib/mesa/src/mesa/main/pixel.h +++ b/lib/mesa/src/mesa/main/pixel.h @@ -64,7 +64,7 @@ void GLAPIENTRY _mesa_PixelTransferi( GLenum pname, GLint param ); extern void -_mesa_update_pixel( struct gl_context *ctx ); +_mesa_update_pixel( struct gl_context *ctx, GLuint newstate ); extern void _mesa_init_pixel( struct gl_context * ctx ); diff --git a/lib/mesa/src/mesa/main/pixelstore.c b/lib/mesa/src/mesa/main/pixelstore.c index 6123da922..fc815337b 100644 --- a/lib/mesa/src/mesa/main/pixelstore.c +++ b/lib/mesa/src/mesa/main/pixelstore.c @@ -35,228 +35,204 @@ #include "mtypes.h" -static ALWAYS_INLINE void -pixel_storei(GLenum pname, GLint param, bool no_error) +void GLAPIENTRY +_mesa_PixelStorei( GLenum pname, GLint param ) { /* NOTE: this call can't be compiled into the display list */ GET_CURRENT_CONTEXT(ctx); switch (pname) { case GL_PACK_SWAP_BYTES: - if (!no_error && !_mesa_is_desktop_gl(ctx)) + if (!_mesa_is_desktop_gl(ctx)) goto invalid_enum_error; ctx->Pack.SwapBytes = param ? GL_TRUE : GL_FALSE; break; case GL_PACK_LSB_FIRST: - if (!no_error && !_mesa_is_desktop_gl(ctx)) + if (!_mesa_is_desktop_gl(ctx)) goto invalid_enum_error; ctx->Pack.LsbFirst = param ? GL_TRUE : GL_FALSE; break; case GL_PACK_ROW_LENGTH: - if (!no_error && !_mesa_is_desktop_gl(ctx) && !_mesa_is_gles3(ctx)) + if (!_mesa_is_desktop_gl(ctx) && !_mesa_is_gles3(ctx)) goto invalid_enum_error; - if (!no_error && param<0) + if (param<0) goto invalid_value_error; ctx->Pack.RowLength = param; break; case GL_PACK_IMAGE_HEIGHT: - if (!no_error && !_mesa_is_desktop_gl(ctx) && !_mesa_is_gles3(ctx)) + if (!_mesa_is_desktop_gl(ctx) && !_mesa_is_gles3(ctx)) goto invalid_enum_error; - if (!no_error && param<0) + if (param<0) goto invalid_value_error; ctx->Pack.ImageHeight = param; break; case GL_PACK_SKIP_PIXELS: - if (!no_error && !_mesa_is_desktop_gl(ctx) && !_mesa_is_gles3(ctx)) + if (!_mesa_is_desktop_gl(ctx) && !_mesa_is_gles3(ctx)) goto invalid_enum_error; - if (!no_error && param<0) + if (param<0) goto invalid_value_error; ctx->Pack.SkipPixels = param; break; case GL_PACK_SKIP_ROWS: - if (!no_error && !_mesa_is_desktop_gl(ctx) && !_mesa_is_gles3(ctx)) + if (!_mesa_is_desktop_gl(ctx) && !_mesa_is_gles3(ctx)) goto invalid_enum_error; - if (!no_error && param<0) + if (param<0) goto invalid_value_error; ctx->Pack.SkipRows = param; break; case GL_PACK_SKIP_IMAGES: - if (!no_error && !_mesa_is_desktop_gl(ctx) && !_mesa_is_gles3(ctx)) + if (!_mesa_is_desktop_gl(ctx) && !_mesa_is_gles3(ctx)) goto invalid_enum_error; - if (!no_error && param<0) + if (param<0) goto invalid_value_error; ctx->Pack.SkipImages = param; break; case GL_PACK_ALIGNMENT: - if (!no_error && param!=1 && param!=2 && param!=4 && param!=8) + if (param!=1 && param!=2 && param!=4 && param!=8) goto invalid_value_error; ctx->Pack.Alignment = param; break; case GL_PACK_INVERT_MESA: - if (!no_error && - (!_mesa_is_desktop_gl(ctx) || !ctx->Extensions.MESA_pack_invert)) + if (!_mesa_is_desktop_gl(ctx) || !ctx->Extensions.MESA_pack_invert) goto invalid_enum_error; ctx->Pack.Invert = param; break; case GL_PACK_COMPRESSED_BLOCK_WIDTH: - if (!no_error && !_mesa_is_desktop_gl(ctx)) + if (!_mesa_is_desktop_gl(ctx)) goto invalid_enum_error; - if (!no_error && param<0) + if (param<0) goto invalid_value_error; ctx->Pack.CompressedBlockWidth = param; break; case GL_PACK_COMPRESSED_BLOCK_HEIGHT: - if (!no_error && !_mesa_is_desktop_gl(ctx)) + if (!_mesa_is_desktop_gl(ctx)) goto invalid_enum_error; - if (!no_error && param<0) + if (param<0) goto invalid_value_error; ctx->Pack.CompressedBlockHeight = param; break; case GL_PACK_COMPRESSED_BLOCK_DEPTH: - if (!no_error && !_mesa_is_desktop_gl(ctx)) + if (!_mesa_is_desktop_gl(ctx)) goto invalid_enum_error; - if (!no_error && param<0) + if (param<0) goto invalid_value_error; ctx->Pack.CompressedBlockDepth = param; break; case GL_PACK_COMPRESSED_BLOCK_SIZE: - if (!no_error && !_mesa_is_desktop_gl(ctx)) + if (!_mesa_is_desktop_gl(ctx)) goto invalid_enum_error; - if (!no_error && param<0) + if (param<0) goto invalid_value_error; ctx->Pack.CompressedBlockSize = param; break; case GL_UNPACK_SWAP_BYTES: - if (!no_error && !_mesa_is_desktop_gl(ctx)) + if (!_mesa_is_desktop_gl(ctx)) goto invalid_enum_error; ctx->Unpack.SwapBytes = param ? GL_TRUE : GL_FALSE; break; case GL_UNPACK_LSB_FIRST: - if (!no_error && !_mesa_is_desktop_gl(ctx)) + if (!_mesa_is_desktop_gl(ctx)) goto invalid_enum_error; ctx->Unpack.LsbFirst = param ? GL_TRUE : GL_FALSE; break; case GL_UNPACK_ROW_LENGTH: - if (!no_error && ctx->API == API_OPENGLES) + if (ctx->API == API_OPENGLES) goto invalid_enum_error; - if (!no_error && param<0) + if (param<0) goto invalid_value_error; ctx->Unpack.RowLength = param; break; case GL_UNPACK_IMAGE_HEIGHT: - if (!no_error && !_mesa_is_desktop_gl(ctx) && !_mesa_is_gles3(ctx)) + if (!_mesa_is_desktop_gl(ctx) && !_mesa_is_gles3(ctx)) goto invalid_enum_error; - if (!no_error && param<0) + if (param<0) goto invalid_value_error; ctx->Unpack.ImageHeight = param; break; case GL_UNPACK_SKIP_PIXELS: - if (!no_error && ctx->API == API_OPENGLES) + if (ctx->API == API_OPENGLES) goto invalid_enum_error; - if (!no_error && param<0) + if (param<0) goto invalid_value_error; ctx->Unpack.SkipPixels = param; break; case GL_UNPACK_SKIP_ROWS: - if (!no_error && ctx->API == API_OPENGLES) + if (ctx->API == API_OPENGLES) goto invalid_enum_error; - if (!no_error && param<0) + if (param<0) goto invalid_value_error; ctx->Unpack.SkipRows = param; break; case GL_UNPACK_SKIP_IMAGES: - if (!no_error && !_mesa_is_desktop_gl(ctx) && !_mesa_is_gles3(ctx)) + if (!_mesa_is_desktop_gl(ctx) && !_mesa_is_gles3(ctx)) goto invalid_enum_error; - if (!no_error && param < 0) + if (param < 0) goto invalid_value_error; ctx->Unpack.SkipImages = param; break; case GL_UNPACK_ALIGNMENT: - if (!no_error && param!=1 && param!=2 && param!=4 && param!=8) + if (param!=1 && param!=2 && param!=4 && param!=8) goto invalid_value_error; ctx->Unpack.Alignment = param; break; case GL_UNPACK_COMPRESSED_BLOCK_WIDTH: - if (!no_error && !_mesa_is_desktop_gl(ctx)) + if (!_mesa_is_desktop_gl(ctx)) goto invalid_enum_error; - if (!no_error && param<0) + if (param<0) goto invalid_value_error; ctx->Unpack.CompressedBlockWidth = param; break; case GL_UNPACK_COMPRESSED_BLOCK_HEIGHT: - if (!no_error && !_mesa_is_desktop_gl(ctx)) + if (!_mesa_is_desktop_gl(ctx)) goto invalid_enum_error; - if (!no_error && param<0) + if (param<0) goto invalid_value_error; ctx->Unpack.CompressedBlockHeight = param; break; case GL_UNPACK_COMPRESSED_BLOCK_DEPTH: - if (!no_error && !_mesa_is_desktop_gl(ctx)) + if (!_mesa_is_desktop_gl(ctx)) goto invalid_enum_error; - if (!no_error && param<0) + if (param<0) goto invalid_value_error; ctx->Unpack.CompressedBlockDepth = param; break; case GL_UNPACK_COMPRESSED_BLOCK_SIZE: - if (!no_error && !_mesa_is_desktop_gl(ctx)) + if (!_mesa_is_desktop_gl(ctx)) goto invalid_enum_error; - if (!no_error && param<0) + if (param<0) goto invalid_value_error; ctx->Unpack.CompressedBlockSize = param; break; default: - if (!no_error) - goto invalid_enum_error; - else - unreachable("invalid pixel store enum"); + goto invalid_enum_error; } return; invalid_enum_error: - _mesa_error(ctx, GL_INVALID_ENUM, "glPixelStore"); + _mesa_error( ctx, GL_INVALID_ENUM, "glPixelStore" ); return; invalid_value_error: - _mesa_error(ctx, GL_INVALID_VALUE, "glPixelStore(param)"); + _mesa_error( ctx, GL_INVALID_VALUE, "glPixelStore(param)" ); return; } void GLAPIENTRY -_mesa_PixelStorei(GLenum pname, GLint param) -{ - pixel_storei(pname, param, false); -} - - -void GLAPIENTRY -_mesa_PixelStoref(GLenum pname, GLfloat param) -{ - _mesa_PixelStorei(pname, IROUND(param)); -} - - -void GLAPIENTRY -_mesa_PixelStorei_no_error(GLenum pname, GLint param) +_mesa_PixelStoref( GLenum pname, GLfloat param ) { - pixel_storei(pname, param, true); + _mesa_PixelStorei( pname, IROUND(param) ); } -void GLAPIENTRY -_mesa_PixelStoref_no_error(GLenum pname, GLfloat param) -{ - _mesa_PixelStorei_no_error(pname, IROUND(param)); -} - /** * Initialize the context's pixel store state. */ void -_mesa_init_pixelstore(struct gl_context *ctx) +_mesa_init_pixelstore( struct gl_context *ctx ) { /* Pixel transfer */ ctx->Pack.Alignment = 4; diff --git a/lib/mesa/src/mesa/main/pixelstore.h b/lib/mesa/src/mesa/main/pixelstore.h index d21c6fe27..68384548a 100644 --- a/lib/mesa/src/mesa/main/pixelstore.h +++ b/lib/mesa/src/mesa/main/pixelstore.h @@ -45,14 +45,6 @@ extern void GLAPIENTRY _mesa_PixelStoref( GLenum pname, GLfloat param ); -extern void GLAPIENTRY -_mesa_PixelStorei_no_error(GLenum pname, GLint param); - - -extern void GLAPIENTRY -_mesa_PixelStoref_no_error(GLenum pname, GLfloat param); - - extern void _mesa_init_pixelstore( struct gl_context *ctx ); diff --git a/lib/mesa/src/mesa/main/polygon.h b/lib/mesa/src/mesa/main/polygon.h index 39b7a73be..41344a2ef 100644 --- a/lib/mesa/src/mesa/main/polygon.h +++ b/lib/mesa/src/mesa/main/polygon.h @@ -39,17 +39,11 @@ struct gl_context; extern void GLAPIENTRY _mesa_GetnPolygonStippleARB( GLsizei bufSize, GLubyte *dest ); -void GLAPIENTRY -_mesa_CullFace_no_error(GLenum mode); - extern void GLAPIENTRY -_mesa_CullFace(GLenum mode); - -void GLAPIENTRY -_mesa_FrontFace_no_error(GLenum mode); +_mesa_CullFace( GLenum mode ); extern void GLAPIENTRY -_mesa_FrontFace(GLenum mode); +_mesa_FrontFace( GLenum mode ); extern void GLAPIENTRY _mesa_PolygonMode( GLenum face, GLenum mode ); diff --git a/lib/mesa/src/mesa/main/queryobj.h b/lib/mesa/src/mesa/main/queryobj.h index 24a82571d..d1036fcce 100644 --- a/lib/mesa/src/mesa/main/queryobj.h +++ b/lib/mesa/src/mesa/main/queryobj.h @@ -35,7 +35,7 @@ static inline struct gl_query_object * _mesa_lookup_query_object(struct gl_context *ctx, GLuint id) { return (struct gl_query_object *) - _mesa_HashLookupLocked(ctx->Query.QueryObjects, id); + _mesa_HashLookup(ctx->Query.QueryObjects, id); } diff --git a/lib/mesa/src/mesa/main/rastpos.c b/lib/mesa/src/mesa/main/rastpos.c index 43f67596d..54b2125a8 100644 --- a/lib/mesa/src/mesa/main/rastpos.c +++ b/lib/mesa/src/mesa/main/rastpos.c @@ -36,449 +36,6 @@ #include "rastpos.h" #include "state.h" #include "main/dispatch.h" -#include "main/viewport.h" -#include "util/bitscan.h" - - - -/** - * Clip a point against the view volume. - * - * \param v vertex vector describing the point to clip. - * - * \return zero if outside view volume, or one if inside. - */ -static GLuint -viewclip_point_xy( const GLfloat v[] ) -{ - if ( v[0] > v[3] || v[0] < -v[3] - || v[1] > v[3] || v[1] < -v[3] ) { - return 0; - } - else { - return 1; - } -} - - -/** - * Clip a point against the far/near Z clipping planes. - * - * \param v vertex vector describing the point to clip. - * - * \return zero if outside view volume, or one if inside. - */ -static GLuint -viewclip_point_z( const GLfloat v[] ) -{ - if (v[2] > v[3] || v[2] < -v[3] ) { - return 0; - } - else { - return 1; - } -} - - -/** - * Clip a point against the user clipping planes. - * - * \param ctx GL context. - * \param v vertex vector describing the point to clip. - * - * \return zero if the point was clipped, or one otherwise. - */ -static GLuint -userclip_point( struct gl_context *ctx, const GLfloat v[] ) -{ - GLbitfield mask = ctx->Transform.ClipPlanesEnabled; - while (mask) { - const int p = u_bit_scan(&mask); - GLfloat dot = v[0] * ctx->Transform._ClipUserPlane[p][0] - + v[1] * ctx->Transform._ClipUserPlane[p][1] - + v[2] * ctx->Transform._ClipUserPlane[p][2] - + v[3] * ctx->Transform._ClipUserPlane[p][3]; - - if (dot < 0.0F) { - return 0; - } - } - - return 1; -} - - -/** - * Compute lighting for the raster position. RGB modes computed. - * \param ctx the context - * \param vertex vertex location - * \param normal normal vector - * \param Rcolor returned color - * \param Rspec returned specular color (if separate specular enabled) - */ -static void -shade_rastpos(struct gl_context *ctx, - const GLfloat vertex[4], - const GLfloat normal[3], - GLfloat Rcolor[4], - GLfloat Rspec[4]) -{ - /*const*/ GLfloat (*base)[3] = ctx->Light._BaseColor; - GLbitfield mask; - GLfloat diffuseColor[4], specularColor[4]; /* for RGB mode only */ - - COPY_3V(diffuseColor, base[0]); - diffuseColor[3] = CLAMP( - ctx->Light.Material.Attrib[MAT_ATTRIB_FRONT_DIFFUSE][3], 0.0F, 1.0F ); - ASSIGN_4V(specularColor, 0.0, 0.0, 0.0, 1.0); - - mask = ctx->Light._EnabledLights; - while (mask) { - const int i = u_bit_scan(&mask); - struct gl_light *light = &ctx->Light.Light[i]; - GLfloat attenuation = 1.0; - GLfloat VP[3]; /* vector from vertex to light pos */ - GLfloat n_dot_VP; - GLfloat diffuseContrib[3], specularContrib[3]; - - if (!(light->_Flags & LIGHT_POSITIONAL)) { - /* light at infinity */ - COPY_3V(VP, light->_VP_inf_norm); - attenuation = light->_VP_inf_spot_attenuation; - } - else { - /* local/positional light */ - GLfloat d; - - /* VP = vector from vertex pos to light[i].pos */ - SUB_3V(VP, light->_Position, vertex); - /* d = length(VP) */ - d = (GLfloat) LEN_3FV( VP ); - if (d > 1.0e-6F) { - /* normalize VP */ - GLfloat invd = 1.0F / d; - SELF_SCALE_SCALAR_3V(VP, invd); - } - - /* atti */ - attenuation = 1.0F / (light->ConstantAttenuation + d * - (light->LinearAttenuation + d * - light->QuadraticAttenuation)); - - if (light->_Flags & LIGHT_SPOT) { - GLfloat PV_dot_dir = - DOT3(VP, light->_NormSpotDirection); - - if (PV_dot_dir<light->_CosCutoff) { - continue; - } - else { - GLfloat spot = powf(PV_dot_dir, light->SpotExponent); - attenuation *= spot; - } - } - } - - if (attenuation < 1e-3F) - continue; - - n_dot_VP = DOT3( normal, VP ); - - if (n_dot_VP < 0.0F) { - ACC_SCALE_SCALAR_3V(diffuseColor, attenuation, light->_MatAmbient[0]); - continue; - } - - /* Ambient + diffuse */ - COPY_3V(diffuseContrib, light->_MatAmbient[0]); - ACC_SCALE_SCALAR_3V(diffuseContrib, n_dot_VP, light->_MatDiffuse[0]); - - /* Specular */ - { - const GLfloat *h; - GLfloat n_dot_h; - - ASSIGN_3V(specularContrib, 0.0, 0.0, 0.0); - - if (ctx->Light.Model.LocalViewer) { - GLfloat v[3]; - COPY_3V(v, vertex); - NORMALIZE_3FV(v); - SUB_3V(VP, VP, v); - NORMALIZE_3FV(VP); - h = VP; - } - else if (light->_Flags & LIGHT_POSITIONAL) { - ACC_3V(VP, ctx->_EyeZDir); - NORMALIZE_3FV(VP); - h = VP; - } - else { - h = light->_h_inf_norm; - } - - n_dot_h = DOT3(normal, h); - - if (n_dot_h > 0.0F) { - GLfloat shine; - GLfloat spec_coef; - - shine = ctx->Light.Material.Attrib[MAT_ATTRIB_FRONT_SHININESS][0]; - spec_coef = powf(n_dot_h, shine); - - if (spec_coef > 1.0e-10F) { - if (ctx->Light.Model.ColorControl==GL_SEPARATE_SPECULAR_COLOR) { - ACC_SCALE_SCALAR_3V( specularContrib, spec_coef, - light->_MatSpecular[0]); - } - else { - ACC_SCALE_SCALAR_3V( diffuseContrib, spec_coef, - light->_MatSpecular[0]); - } - } - } - } - - ACC_SCALE_SCALAR_3V( diffuseColor, attenuation, diffuseContrib ); - ACC_SCALE_SCALAR_3V( specularColor, attenuation, specularContrib ); - } - - Rcolor[0] = CLAMP(diffuseColor[0], 0.0F, 1.0F); - Rcolor[1] = CLAMP(diffuseColor[1], 0.0F, 1.0F); - Rcolor[2] = CLAMP(diffuseColor[2], 0.0F, 1.0F); - Rcolor[3] = CLAMP(diffuseColor[3], 0.0F, 1.0F); - Rspec[0] = CLAMP(specularColor[0], 0.0F, 1.0F); - Rspec[1] = CLAMP(specularColor[1], 0.0F, 1.0F); - Rspec[2] = CLAMP(specularColor[2], 0.0F, 1.0F); - Rspec[3] = CLAMP(specularColor[3], 0.0F, 1.0F); -} - - -/** - * Do texgen needed for glRasterPos. - * \param ctx rendering context - * \param vObj object-space vertex coordinate - * \param vEye eye-space vertex coordinate - * \param normal vertex normal - * \param unit texture unit number - * \param texcoord incoming texcoord and resulting texcoord - */ -static void -compute_texgen(struct gl_context *ctx, const GLfloat vObj[4], const GLfloat vEye[4], - const GLfloat normal[3], GLuint unit, GLfloat texcoord[4]) -{ - const struct gl_texture_unit *texUnit = &ctx->Texture.Unit[unit]; - - /* always compute sphere map terms, just in case */ - GLfloat u[3], two_nu, rx, ry, rz, m, mInv; - COPY_3V(u, vEye); - NORMALIZE_3FV(u); - two_nu = 2.0F * DOT3(normal, u); - rx = u[0] - normal[0] * two_nu; - ry = u[1] - normal[1] * two_nu; - rz = u[2] - normal[2] * two_nu; - m = rx * rx + ry * ry + (rz + 1.0F) * (rz + 1.0F); - if (m > 0.0F) - mInv = 0.5F * (1.0f / sqrtf(m)); - else - mInv = 0.0F; - - if (texUnit->TexGenEnabled & S_BIT) { - switch (texUnit->GenS.Mode) { - case GL_OBJECT_LINEAR: - texcoord[0] = DOT4(vObj, texUnit->GenS.ObjectPlane); - break; - case GL_EYE_LINEAR: - texcoord[0] = DOT4(vEye, texUnit->GenS.EyePlane); - break; - case GL_SPHERE_MAP: - texcoord[0] = rx * mInv + 0.5F; - break; - case GL_REFLECTION_MAP: - texcoord[0] = rx; - break; - case GL_NORMAL_MAP: - texcoord[0] = normal[0]; - break; - default: - _mesa_problem(ctx, "Bad S texgen in compute_texgen()"); - return; - } - } - - if (texUnit->TexGenEnabled & T_BIT) { - switch (texUnit->GenT.Mode) { - case GL_OBJECT_LINEAR: - texcoord[1] = DOT4(vObj, texUnit->GenT.ObjectPlane); - break; - case GL_EYE_LINEAR: - texcoord[1] = DOT4(vEye, texUnit->GenT.EyePlane); - break; - case GL_SPHERE_MAP: - texcoord[1] = ry * mInv + 0.5F; - break; - case GL_REFLECTION_MAP: - texcoord[1] = ry; - break; - case GL_NORMAL_MAP: - texcoord[1] = normal[1]; - break; - default: - _mesa_problem(ctx, "Bad T texgen in compute_texgen()"); - return; - } - } - - if (texUnit->TexGenEnabled & R_BIT) { - switch (texUnit->GenR.Mode) { - case GL_OBJECT_LINEAR: - texcoord[2] = DOT4(vObj, texUnit->GenR.ObjectPlane); - break; - case GL_EYE_LINEAR: - texcoord[2] = DOT4(vEye, texUnit->GenR.EyePlane); - break; - case GL_REFLECTION_MAP: - texcoord[2] = rz; - break; - case GL_NORMAL_MAP: - texcoord[2] = normal[2]; - break; - default: - _mesa_problem(ctx, "Bad R texgen in compute_texgen()"); - return; - } - } - - if (texUnit->TexGenEnabled & Q_BIT) { - switch (texUnit->GenQ.Mode) { - case GL_OBJECT_LINEAR: - texcoord[3] = DOT4(vObj, texUnit->GenQ.ObjectPlane); - break; - case GL_EYE_LINEAR: - texcoord[3] = DOT4(vEye, texUnit->GenQ.EyePlane); - break; - default: - _mesa_problem(ctx, "Bad Q texgen in compute_texgen()"); - return; - } - } -} - - -/** - * glRasterPos transformation. Typically called via ctx->Driver.RasterPos(). - * - * \param vObj vertex position in object space - */ -void -_mesa_RasterPos(struct gl_context *ctx, const GLfloat vObj[4]) -{ - if (_mesa_arb_vertex_program_enabled(ctx)) { - /* XXX implement this */ - _mesa_problem(ctx, "Vertex programs not implemented for glRasterPos"); - return; - } - else { - GLfloat eye[4], clip[4], ndc[3], d; - GLfloat *norm, eyenorm[3]; - GLfloat *objnorm = ctx->Current.Attrib[VERT_ATTRIB_NORMAL]; - float scale[3], translate[3]; - - /* apply modelview matrix: eye = MV * obj */ - TRANSFORM_POINT( eye, ctx->ModelviewMatrixStack.Top->m, vObj ); - /* apply projection matrix: clip = Proj * eye */ - TRANSFORM_POINT( clip, ctx->ProjectionMatrixStack.Top->m, eye ); - - /* clip to view volume. */ - if (!ctx->Transform.DepthClamp) { - if (viewclip_point_z(clip) == 0) { - ctx->Current.RasterPosValid = GL_FALSE; - return; - } - } - if (!ctx->Transform.RasterPositionUnclipped) { - if (viewclip_point_xy(clip) == 0) { - ctx->Current.RasterPosValid = GL_FALSE; - return; - } - } - - /* clip to user clipping planes */ - if (ctx->Transform.ClipPlanesEnabled && !userclip_point(ctx, clip)) { - ctx->Current.RasterPosValid = GL_FALSE; - return; - } - - /* ndc = clip / W */ - d = (clip[3] == 0.0F) ? 1.0F : 1.0F / clip[3]; - ndc[0] = clip[0] * d; - ndc[1] = clip[1] * d; - ndc[2] = clip[2] * d; - /* wincoord = viewport_mapping(ndc) */ - _mesa_get_viewport_xform(ctx, 0, scale, translate); - ctx->Current.RasterPos[0] = ndc[0] * scale[0] + translate[0]; - ctx->Current.RasterPos[1] = ndc[1] * scale[1] + translate[1]; - ctx->Current.RasterPos[2] = ndc[2] * scale[2] + translate[2]; - ctx->Current.RasterPos[3] = clip[3]; - - if (ctx->Transform.DepthClamp) { - ctx->Current.RasterPos[3] = CLAMP(ctx->Current.RasterPos[3], - ctx->ViewportArray[0].Near, - ctx->ViewportArray[0].Far); - } - - /* compute raster distance */ - if (ctx->Fog.FogCoordinateSource == GL_FOG_COORDINATE_EXT) - ctx->Current.RasterDistance = ctx->Current.Attrib[VERT_ATTRIB_FOG][0]; - else - ctx->Current.RasterDistance = - sqrtf( eye[0]*eye[0] + eye[1]*eye[1] + eye[2]*eye[2] ); - - /* compute transformed normal vector (for lighting or texgen) */ - if (ctx->_NeedEyeCoords) { - const GLfloat *inv = ctx->ModelviewMatrixStack.Top->inv; - TRANSFORM_NORMAL( eyenorm, objnorm, inv ); - norm = eyenorm; - } - else { - norm = objnorm; - } - - /* update raster color */ - if (ctx->Light.Enabled) { - /* lighting */ - shade_rastpos( ctx, vObj, norm, - ctx->Current.RasterColor, - ctx->Current.RasterSecondaryColor ); - } - else { - /* use current color */ - COPY_4FV(ctx->Current.RasterColor, - ctx->Current.Attrib[VERT_ATTRIB_COLOR0]); - COPY_4FV(ctx->Current.RasterSecondaryColor, - ctx->Current.Attrib[VERT_ATTRIB_COLOR1]); - } - - /* texture coords */ - { - GLuint u; - for (u = 0; u < ctx->Const.MaxTextureCoordUnits; u++) { - GLfloat tc[4]; - COPY_4V(tc, ctx->Current.Attrib[VERT_ATTRIB_TEX0 + u]); - if (ctx->Texture.Unit[u].TexGenEnabled) { - compute_texgen(ctx, vObj, eye, norm, u, tc); - } - TRANSFORM_POINT(ctx->Current.RasterTexCoords[u], - ctx->TextureMatrixStack[u].Top->m, tc); - } - } - - ctx->Current.RasterPosValid = GL_TRUE; - } - - if (ctx->RenderMode == GL_SELECT) { - _mesa_update_hitflag( ctx, ctx->Current.RasterPos[2] ); - } -} /** diff --git a/lib/mesa/src/mesa/main/samplerobj.h b/lib/mesa/src/mesa/main/samplerobj.h index 26b5dd6b0..7bea91114 100644 --- a/lib/mesa/src/mesa/main/samplerobj.h +++ b/lib/mesa/src/mesa/main/samplerobj.h @@ -27,12 +27,14 @@ #ifndef SAMPLEROBJ_H #define SAMPLEROBJ_H -#include "mtypes.h" - #ifdef __cplusplus extern "C" { #endif + +#include "mtypes.h" + + struct dd_function_table; static inline struct gl_sampler_object * @@ -78,32 +80,8 @@ _mesa_new_sampler_object(struct gl_context *ctx, GLuint name); extern void _mesa_init_sampler_object_functions(struct dd_function_table *driver); -extern void -_mesa_set_sampler_wrap(struct gl_context *ctx, struct gl_sampler_object *samp, - GLenum s, GLenum t, GLenum r); - -extern void -_mesa_set_sampler_filters(struct gl_context *ctx, - struct gl_sampler_object *samp, - GLenum min_filter, GLenum mag_filter); - -extern void -_mesa_set_sampler_srgb_decode(struct gl_context *ctx, - struct gl_sampler_object *samp, GLenum param); - -extern void -_mesa_bind_sampler(struct gl_context *ctx, GLuint unit, - struct gl_sampler_object *sampObj); - -void GLAPIENTRY -_mesa_GenSamplers_no_error(GLsizei count, GLuint *samplers); - void GLAPIENTRY _mesa_GenSamplers(GLsizei count, GLuint *samplers); - -void GLAPIENTRY -_mesa_CreateSamplers_no_error(GLsizei count, GLuint *samplers); - void GLAPIENTRY _mesa_CreateSamplers(GLsizei count, GLuint *samplers); void GLAPIENTRY diff --git a/lib/mesa/src/mesa/main/scissor.c b/lib/mesa/src/mesa/main/scissor.c index b38db06bc..bc8224c7d 100644 --- a/lib/mesa/src/mesa/main/scissor.c +++ b/lib/mesa/src/mesa/main/scissor.c @@ -25,7 +25,6 @@ #include "main/glheader.h" #include "main/context.h" -#include "main/enums.h" #include "main/mtypes.h" #include "main/scissor.h" @@ -48,19 +47,29 @@ set_scissor_no_notify(struct gl_context *ctx, unsigned idx, height == ctx->Scissor.ScissorArray[idx].Height) return; - FLUSH_VERTICES(ctx, ctx->DriverFlags.NewScissorRect ? 0 : _NEW_SCISSOR); - ctx->NewDriverState |= ctx->DriverFlags.NewScissorRect; - + FLUSH_VERTICES(ctx, _NEW_SCISSOR); ctx->Scissor.ScissorArray[idx].X = x; ctx->Scissor.ScissorArray[idx].Y = y; ctx->Scissor.ScissorArray[idx].Width = width; ctx->Scissor.ScissorArray[idx].Height = height; } -static void -scissor(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height) +/** + * Called via glScissor + */ +void GLAPIENTRY +_mesa_Scissor( GLint x, GLint y, GLsizei width, GLsizei height ) { unsigned i; + GET_CURRENT_CONTEXT(ctx); + + if (MESA_VERBOSE & VERBOSE_API) + _mesa_debug(ctx, "glScissor %d %d %d %d\n", x, y, width, height); + + if (width < 0 || height < 0) { + _mesa_error( ctx, GL_INVALID_VALUE, "glScissor" ); + return; + } /* The GL_ARB_viewport_array spec says: * @@ -81,32 +90,6 @@ scissor(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height) ctx->Driver.Scissor(ctx); } -/** - * Called via glScissor - */ -void GLAPIENTRY -_mesa_Scissor_no_error(GLint x, GLint y, GLsizei width, GLsizei height) -{ - GET_CURRENT_CONTEXT(ctx); - scissor(ctx, x, y, width, height); -} - -void GLAPIENTRY -_mesa_Scissor(GLint x, GLint y, GLsizei width, GLsizei height) -{ - GET_CURRENT_CONTEXT(ctx); - - if (MESA_VERBOSE & VERBOSE_API) - _mesa_debug(ctx, "glScissor %d %d %d %d\n", x, y, width, height); - - if (width < 0 || height < 0) { - _mesa_error( ctx, GL_INVALID_VALUE, "glScissor" ); - return; - } - - scissor(ctx, x, y, width, height); -} - /** * Define the scissor box. @@ -131,19 +114,6 @@ _mesa_set_scissor(struct gl_context *ctx, unsigned idx, ctx->Driver.Scissor(ctx); } -static void -scissor_array(struct gl_context *ctx, GLuint first, GLsizei count, - struct gl_scissor_rect *rect) -{ - for (GLsizei i = 0; i < count; i++) { - set_scissor_no_notify(ctx, i + first, rect[i].X, rect[i].Y, - rect[i].Width, rect[i].Height); - } - - if (ctx->Driver.Scissor) - ctx->Driver.Scissor(ctx); -} - /** * Define count scissor boxes starting at index. * @@ -156,15 +126,6 @@ scissor_array(struct gl_context *ctx, GLuint first, GLsizei count, * Verifies the parameters and call set_scissor_no_notify to do the work. */ void GLAPIENTRY -_mesa_ScissorArrayv_no_error(GLuint first, GLsizei count, const GLint *v) -{ - GET_CURRENT_CONTEXT(ctx); - - struct gl_scissor_rect *p = (struct gl_scissor_rect *)v; - scissor_array(ctx, first, count, p); -} - -void GLAPIENTRY _mesa_ScissorArrayv(GLuint first, GLsizei count, const GLint *v) { int i; @@ -188,7 +149,12 @@ _mesa_ScissorArrayv(GLuint first, GLsizei count, const GLint *v) } } - scissor_array(ctx, first, count, p); + for (i = 0; i < count; i++) + set_scissor_no_notify(ctx, i + first, + p[i].X, p[i].Y, p[i].Width, p[i].Height); + + if (ctx->Driver.Scissor) + ctx->Driver.Scissor(ctx); } /** @@ -202,10 +168,11 @@ _mesa_ScissorArrayv(GLuint first, GLsizei count, const GLint *v) * Verifies the parameters call set_scissor_no_notify to do the work. */ static void -scissor_indexed_err(struct gl_context *ctx, GLuint index, GLint left, - GLint bottom, GLsizei width, GLsizei height, - const char *function) +ScissorIndexed(GLuint index, GLint left, GLint bottom, + GLsizei width, GLsizei height, const char *function) { + GET_CURRENT_CONTEXT(ctx); + if (MESA_VERBOSE & VERBOSE_API) _mesa_debug(ctx, "%s(%d, %d, %d, %d, %d)\n", function, index, left, bottom, width, height); @@ -224,93 +191,25 @@ scissor_indexed_err(struct gl_context *ctx, GLuint index, GLint left, return; } - _mesa_set_scissor(ctx, index, left, bottom, width, height); -} + set_scissor_no_notify(ctx, index, left, bottom, width, height); -void GLAPIENTRY -_mesa_ScissorIndexed_no_error(GLuint index, GLint left, GLint bottom, - GLsizei width, GLsizei height) -{ - GET_CURRENT_CONTEXT(ctx); - _mesa_set_scissor(ctx, index, left, bottom, width, height); + if (ctx->Driver.Scissor) + ctx->Driver.Scissor(ctx); } void GLAPIENTRY _mesa_ScissorIndexed(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height) { - GET_CURRENT_CONTEXT(ctx); - scissor_indexed_err(ctx, index, left, bottom, width, height, - "glScissorIndexed"); -} - -void GLAPIENTRY -_mesa_ScissorIndexedv_no_error(GLuint index, const GLint *v) -{ - GET_CURRENT_CONTEXT(ctx); - _mesa_set_scissor(ctx, index, v[0], v[1], v[2], v[3]); + ScissorIndexed(index, left, bottom, width, height, "glScissorIndexed"); } void GLAPIENTRY _mesa_ScissorIndexedv(GLuint index, const GLint *v) { - GET_CURRENT_CONTEXT(ctx); - scissor_indexed_err(ctx, index, v[0], v[1], v[2], v[3], - "glScissorIndexedv"); -} - -void GLAPIENTRY -_mesa_WindowRectanglesEXT(GLenum mode, GLsizei count, const GLint *box) -{ - int i; - struct gl_scissor_rect newval[MAX_WINDOW_RECTANGLES]; - GET_CURRENT_CONTEXT(ctx); - - if (MESA_VERBOSE & VERBOSE_API) - _mesa_debug(ctx, "glWindowRectanglesEXT(%s, %d, %p)\n", - _mesa_enum_to_string(mode), count, box); - - if (mode != GL_INCLUSIVE_EXT && mode != GL_EXCLUSIVE_EXT) { - _mesa_error(ctx, GL_INVALID_ENUM, - "glWindowRectanglesEXT(invalid mode 0x%x)", mode); - return; - } - - if (count < 0) { - _mesa_error(ctx, GL_INVALID_VALUE, "glWindowRectanglesEXT(count < 0)"); - return; - } - - if (count > ctx->Const.MaxWindowRectangles) { - _mesa_error(ctx, GL_INVALID_VALUE, - "glWindowRectanglesEXT(count >= MaxWindowRectangles (%d)", - ctx->Const.MaxWindowRectangles); - return; - } - - for (i = 0; i < count; i++) { - if (box[2] < 0 || box[3] < 0) { - _mesa_error(ctx, GL_INVALID_VALUE, - "glWindowRectanglesEXT(box %d: w < 0 || h < 0)", i); - return; - } - newval[i].X = box[0]; - newval[i].Y = box[1]; - newval[i].Width = box[2]; - newval[i].Height = box[3]; - box += 4; - } - - FLUSH_VERTICES(ctx, 0); - ctx->NewDriverState |= ctx->DriverFlags.NewWindowRectangles; - - memcpy(ctx->Scissor.WindowRects, newval, - sizeof(struct gl_scissor_rect) * count); - ctx->Scissor.NumWindowRects = count; - ctx->Scissor.WindowRectMode = mode; + ScissorIndexed(index, v[0], v[1], v[2], v[3], "glScissorIndexedv"); } - /** * Initialize the context's scissor state. * \param ctx the GL context. @@ -322,7 +221,6 @@ _mesa_init_scissor(struct gl_context *ctx) /* Scissor group */ ctx->Scissor.EnableFlags = 0; - ctx->Scissor.WindowRectMode = GL_EXCLUSIVE_EXT; /* Note: ctx->Const.MaxViewports may not have been set by the driver yet, * so just initialize all of them. diff --git a/lib/mesa/src/mesa/main/scissor.h b/lib/mesa/src/mesa/main/scissor.h index 264873eaf..5f9a9945a 100644 --- a/lib/mesa/src/mesa/main/scissor.h +++ b/lib/mesa/src/mesa/main/scissor.h @@ -31,34 +31,18 @@ struct gl_context; -void GLAPIENTRY -_mesa_Scissor_no_error(GLint x, GLint y, GLsizei width, GLsizei height); - extern void GLAPIENTRY _mesa_Scissor( GLint x, GLint y, GLsizei width, GLsizei height ); -void GLAPIENTRY -_mesa_ScissorArrayv_no_error(GLuint first, GLsizei count, const GLint * v); - extern void GLAPIENTRY _mesa_ScissorArrayv(GLuint first, GLsizei count, const GLint * v); -void GLAPIENTRY -_mesa_ScissorIndexed_no_error(GLuint index, GLint left, GLint bottom, - GLsizei width, GLsizei height); - extern void GLAPIENTRY _mesa_ScissorIndexed(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); -void GLAPIENTRY -_mesa_ScissorIndexedv_no_error(GLuint index, const GLint * v); - extern void GLAPIENTRY _mesa_ScissorIndexedv(GLuint index, const GLint * v); -extern void GLAPIENTRY -_mesa_WindowRectanglesEXT(GLenum mode, GLsizei count, const GLint *box); - extern void _mesa_set_scissor(struct gl_context *ctx, unsigned idx, GLint x, GLint y, GLsizei width, GLsizei height); diff --git a/lib/mesa/src/mesa/main/stencil.c b/lib/mesa/src/mesa/main/stencil.c index d89312ce1..2a19a17b8 100644 --- a/lib/mesa/src/mesa/main/stencil.c +++ b/lib/mesa/src/mesa/main/stencil.c @@ -109,9 +109,6 @@ _mesa_ClearStencil( GLint s ) { GET_CURRENT_CONTEXT(ctx); - if (MESA_VERBOSE & VERBOSE_API) - _mesa_debug(ctx, "glClearStencil(%d)\n", s); - ctx->Stencil.Clear = (GLuint) s; } @@ -127,8 +124,8 @@ _mesa_ClearStencil( GLint s ) * \sa glStencilFunc(). * * Verifies the parameters and updates the respective values in - * __struct gl_contextRec::Stencil. On change flushes the vertices and notifies - * the driver via the dd_function_table::StencilFunc callback. + * __struct gl_contextRec::Stencil. On change flushes the vertices and notifies the + * driver via the dd_function_table::StencilFunc callback. */ void GLAPIENTRY _mesa_StencilFuncSeparateATI( GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask ) @@ -157,8 +154,7 @@ _mesa_StencilFuncSeparateATI( GLenum frontfunc, GLenum backfunc, GLint ref, GLui ctx->Stencil.Ref[0] == ref && ctx->Stencil.Ref[1] == ref) return; - FLUSH_VERTICES(ctx, ctx->DriverFlags.NewStencil ? 0 : _NEW_STENCIL); - ctx->NewDriverState |= ctx->DriverFlags.NewStencil; + FLUSH_VERTICES(ctx, _NEW_STENCIL); ctx->Stencil.Function[0] = frontfunc; ctx->Stencil.Function[1] = backfunc; ctx->Stencil.Ref[0] = ctx->Stencil.Ref[1] = ref; @@ -182,21 +178,29 @@ _mesa_StencilFuncSeparateATI( GLenum frontfunc, GLenum backfunc, GLint ref, GLui * \sa glStencilFunc(). * * Verifies the parameters and updates the respective values in - * __struct gl_contextRec::Stencil. On change flushes the vertices and notifies - * the driver via the dd_function_table::StencilFunc callback. + * __struct gl_contextRec::Stencil. On change flushes the vertices and notifies the + * driver via the dd_function_table::StencilFunc callback. */ -static void -stencil_func(struct gl_context *ctx, GLenum func, GLint ref, GLuint mask) +void GLAPIENTRY +_mesa_StencilFunc( GLenum func, GLint ref, GLuint mask ) { + GET_CURRENT_CONTEXT(ctx); const GLint face = ctx->Stencil.ActiveFace; + if (MESA_VERBOSE & VERBOSE_API) + _mesa_debug(ctx, "glStencilFunc()\n"); + + if (!validate_stencil_func(ctx, func)) { + _mesa_error(ctx, GL_INVALID_ENUM, "glStencilFunc(func)"); + return; + } + if (face != 0) { if (ctx->Stencil.Function[face] == func && ctx->Stencil.ValueMask[face] == mask && ctx->Stencil.Ref[face] == ref) return; - FLUSH_VERTICES(ctx, ctx->DriverFlags.NewStencil ? 0 : _NEW_STENCIL); - ctx->NewDriverState |= ctx->DriverFlags.NewStencil; + FLUSH_VERTICES(ctx, _NEW_STENCIL); ctx->Stencil.Function[face] = func; ctx->Stencil.Ref[face] = ref; ctx->Stencil.ValueMask[face] = mask; @@ -217,8 +221,7 @@ stencil_func(struct gl_context *ctx, GLenum func, GLint ref, GLuint mask) ctx->Stencil.Ref[0] == ref && ctx->Stencil.Ref[1] == ref) return; - FLUSH_VERTICES(ctx, ctx->DriverFlags.NewStencil ? 0 : _NEW_STENCIL); - ctx->NewDriverState |= ctx->DriverFlags.NewStencil; + FLUSH_VERTICES(ctx, _NEW_STENCIL); ctx->Stencil.Function[0] = ctx->Stencil.Function[1] = func; ctx->Stencil.Ref[0] = ctx->Stencil.Ref[1] = ref; ctx->Stencil.ValueMask[0] = ctx->Stencil.ValueMask[1] = mask; @@ -232,31 +235,6 @@ stencil_func(struct gl_context *ctx, GLenum func, GLint ref, GLuint mask) } -void GLAPIENTRY -_mesa_StencilFunc_no_error(GLenum func, GLint ref, GLuint mask) -{ - GET_CURRENT_CONTEXT(ctx); - stencil_func(ctx, func, ref, mask); -} - - -void GLAPIENTRY -_mesa_StencilFunc(GLenum func, GLint ref, GLuint mask) -{ - GET_CURRENT_CONTEXT(ctx); - - if (MESA_VERBOSE & VERBOSE_API) - _mesa_debug(ctx, "glStencilFunc()\n"); - - if (!validate_stencil_func(ctx, func)) { - _mesa_error(ctx, GL_INVALID_ENUM, "glStencilFunc(func)"); - return; - } - - stencil_func(ctx, func, ref, mask); -} - - /** * Set the stencil writing mask. * @@ -282,8 +260,7 @@ _mesa_StencilMask( GLuint mask ) */ if (ctx->Stencil.WriteMask[face] == mask) return; - FLUSH_VERTICES(ctx, ctx->DriverFlags.NewStencil ? 0 : _NEW_STENCIL); - ctx->NewDriverState |= ctx->DriverFlags.NewStencil; + FLUSH_VERTICES(ctx, _NEW_STENCIL); ctx->Stencil.WriteMask[face] = mask; /* Only propagate the change to the driver if EXT_stencil_two_side @@ -298,8 +275,7 @@ _mesa_StencilMask( GLuint mask ) if (ctx->Stencil.WriteMask[0] == mask && ctx->Stencil.WriteMask[1] == mask) return; - FLUSH_VERTICES(ctx, ctx->DriverFlags.NewStencil ? 0 : _NEW_STENCIL); - ctx->NewDriverState |= ctx->DriverFlags.NewStencil; + FLUSH_VERTICES(ctx, _NEW_STENCIL); ctx->Stencil.WriteMask[0] = ctx->Stencil.WriteMask[1] = mask; if (ctx->Driver.StencilMaskSeparate) { ctx->Driver.StencilMaskSeparate(ctx, @@ -322,22 +298,38 @@ _mesa_StencilMask( GLuint mask ) * \sa glStencilOp(). * * Verifies the parameters and updates the respective fields in - * __struct gl_contextRec::Stencil. On change flushes the vertices and notifies - * the driver via the dd_function_table::StencilOp callback. + * __struct gl_contextRec::Stencil. On change flushes the vertices and notifies the + * driver via the dd_function_table::StencilOp callback. */ -static void -stencil_op(struct gl_context *ctx, GLenum fail, GLenum zfail, GLenum zpass) +void GLAPIENTRY +_mesa_StencilOp(GLenum fail, GLenum zfail, GLenum zpass) { + GET_CURRENT_CONTEXT(ctx); const GLint face = ctx->Stencil.ActiveFace; + if (MESA_VERBOSE & VERBOSE_API) + _mesa_debug(ctx, "glStencilOp()\n"); + + if (!validate_stencil_op(ctx, fail)) { + _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOp(sfail)"); + return; + } + if (!validate_stencil_op(ctx, zfail)) { + _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOp(zfail)"); + return; + } + if (!validate_stencil_op(ctx, zpass)) { + _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOp(zpass)"); + return; + } + if (face != 0) { /* only set active face state */ if (ctx->Stencil.ZFailFunc[face] == zfail && ctx->Stencil.ZPassFunc[face] == zpass && ctx->Stencil.FailFunc[face] == fail) return; - FLUSH_VERTICES(ctx, ctx->DriverFlags.NewStencil ? 0 : _NEW_STENCIL); - ctx->NewDriverState |= ctx->DriverFlags.NewStencil; + FLUSH_VERTICES(ctx, _NEW_STENCIL); ctx->Stencil.ZFailFunc[face] = zfail; ctx->Stencil.ZPassFunc[face] = zpass; ctx->Stencil.FailFunc[face] = fail; @@ -358,8 +350,7 @@ stencil_op(struct gl_context *ctx, GLenum fail, GLenum zfail, GLenum zpass) ctx->Stencil.FailFunc[0] == fail && ctx->Stencil.FailFunc[1] == fail) return; - FLUSH_VERTICES(ctx, ctx->DriverFlags.NewStencil ? 0 : _NEW_STENCIL); - ctx->NewDriverState |= ctx->DriverFlags.NewStencil; + FLUSH_VERTICES(ctx, _NEW_STENCIL); ctx->Stencil.ZFailFunc[0] = ctx->Stencil.ZFailFunc[1] = zfail; ctx->Stencil.ZPassFunc[0] = ctx->Stencil.ZPassFunc[1] = zpass; ctx->Stencil.FailFunc[0] = ctx->Stencil.FailFunc[1] = fail; @@ -373,40 +364,6 @@ stencil_op(struct gl_context *ctx, GLenum fail, GLenum zfail, GLenum zpass) } -void GLAPIENTRY -_mesa_StencilOp_no_error(GLenum fail, GLenum zfail, GLenum zpass) -{ - GET_CURRENT_CONTEXT(ctx); - stencil_op(ctx, fail, zfail, zpass); -} - - -void GLAPIENTRY -_mesa_StencilOp(GLenum fail, GLenum zfail, GLenum zpass) -{ - GET_CURRENT_CONTEXT(ctx); - - if (MESA_VERBOSE & VERBOSE_API) - _mesa_debug(ctx, "glStencilOp()\n"); - - if (!validate_stencil_op(ctx, fail)) { - _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOp(sfail)"); - return; - } - - if (!validate_stencil_op(ctx, zfail)) { - _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOp(zfail)"); - return; - } - - if (!validate_stencil_op(ctx, zpass)) { - _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOp(zpass)"); - return; - } - - stencil_op(ctx, fail, zfail, zpass); -} - /* GL_EXT_stencil_two_side */ void GLAPIENTRY @@ -431,93 +388,88 @@ _mesa_ActiveStencilFaceEXT(GLenum face) } -static void -stencil_op_separate(struct gl_context *ctx, GLenum face, GLenum sfail, - GLenum zfail, GLenum zpass) + +/** + * OpenGL 2.0 function. + * \todo Make StencilOp() call this function. And eventually remove the + * ctx->Driver.StencilOp function and use ctx->Driver.StencilOpSeparate + * instead. + */ +void GLAPIENTRY +_mesa_StencilOpSeparate(GLenum face, GLenum sfail, GLenum zfail, GLenum zpass) { GLboolean set = GL_FALSE; + GET_CURRENT_CONTEXT(ctx); + + if (MESA_VERBOSE & VERBOSE_API) + _mesa_debug(ctx, "glStencilOpSeparate()\n"); + + if (!validate_stencil_op(ctx, sfail)) { + _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOpSeparate(sfail)"); + return; + } + if (!validate_stencil_op(ctx, zfail)) { + _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOpSeparate(zfail)"); + return; + } + if (!validate_stencil_op(ctx, zpass)) { + _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOpSeparate(zpass)"); + return; + } + if (face != GL_FRONT && face != GL_BACK && face != GL_FRONT_AND_BACK) { + _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOpSeparate(face)"); + return; + } if (face != GL_BACK) { /* set front */ if (ctx->Stencil.ZFailFunc[0] != zfail || ctx->Stencil.ZPassFunc[0] != zpass || ctx->Stencil.FailFunc[0] != sfail){ - FLUSH_VERTICES(ctx, ctx->DriverFlags.NewStencil ? 0 : _NEW_STENCIL); - ctx->NewDriverState |= ctx->DriverFlags.NewStencil; + FLUSH_VERTICES(ctx, _NEW_STENCIL); ctx->Stencil.ZFailFunc[0] = zfail; ctx->Stencil.ZPassFunc[0] = zpass; ctx->Stencil.FailFunc[0] = sfail; set = GL_TRUE; } } - if (face != GL_FRONT) { /* set back */ if (ctx->Stencil.ZFailFunc[1] != zfail || ctx->Stencil.ZPassFunc[1] != zpass || ctx->Stencil.FailFunc[1] != sfail) { - FLUSH_VERTICES(ctx, ctx->DriverFlags.NewStencil ? 0 : _NEW_STENCIL); - ctx->NewDriverState |= ctx->DriverFlags.NewStencil; + FLUSH_VERTICES(ctx, _NEW_STENCIL); ctx->Stencil.ZFailFunc[1] = zfail; ctx->Stencil.ZPassFunc[1] = zpass; ctx->Stencil.FailFunc[1] = sfail; set = GL_TRUE; } } - if (set && ctx->Driver.StencilOpSeparate) { ctx->Driver.StencilOpSeparate(ctx, face, sfail, zfail, zpass); } } +/* OpenGL 2.0 */ void GLAPIENTRY -_mesa_StencilOpSeparate_no_error(GLenum face, GLenum sfail, GLenum zfail, - GLenum zpass) -{ - GET_CURRENT_CONTEXT(ctx); - stencil_op_separate(ctx, face, sfail, zfail, zpass); -} - - -void GLAPIENTRY -_mesa_StencilOpSeparate(GLenum face, GLenum sfail, GLenum zfail, GLenum zpass) +_mesa_StencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask) { GET_CURRENT_CONTEXT(ctx); if (MESA_VERBOSE & VERBOSE_API) - _mesa_debug(ctx, "glStencilOpSeparate()\n"); - - if (!validate_stencil_op(ctx, sfail)) { - _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOpSeparate(sfail)"); - return; - } - - if (!validate_stencil_op(ctx, zfail)) { - _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOpSeparate(zfail)"); - return; - } + _mesa_debug(ctx, "glStencilFuncSeparate()\n"); - if (!validate_stencil_op(ctx, zpass)) { - _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOpSeparate(zpass)"); + if (face != GL_FRONT && face != GL_BACK && face != GL_FRONT_AND_BACK) { + _mesa_error(ctx, GL_INVALID_ENUM, "glStencilFuncSeparate(face)"); return; } - - if (face != GL_FRONT && face != GL_BACK && face != GL_FRONT_AND_BACK) { - _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOpSeparate(face)"); + if (!validate_stencil_func(ctx, func)) { + _mesa_error(ctx, GL_INVALID_ENUM, "glStencilFuncSeparate(func)"); return; } - stencil_op_separate(ctx, face, sfail, zfail, zpass); -} - - -static void -stencil_func_separate(struct gl_context *ctx, GLenum face, GLenum func, - GLint ref, GLuint mask) -{ - FLUSH_VERTICES(ctx, ctx->DriverFlags.NewStencil ? 0 : _NEW_STENCIL); - ctx->NewDriverState |= ctx->DriverFlags.NewStencil; + FLUSH_VERTICES(ctx, _NEW_STENCIL); if (face != GL_BACK) { /* set front */ @@ -525,14 +477,12 @@ stencil_func_separate(struct gl_context *ctx, GLenum face, GLenum func, ctx->Stencil.Ref[0] = ref; ctx->Stencil.ValueMask[0] = mask; } - if (face != GL_FRONT) { /* set back */ ctx->Stencil.Function[1] = func; ctx->Stencil.Ref[1] = ref; ctx->Stencil.ValueMask[1] = mask; } - if (ctx->Driver.StencilFuncSeparate) { ctx->Driver.StencilFuncSeparate(ctx, face, func, ref, mask); } @@ -541,79 +491,57 @@ stencil_func_separate(struct gl_context *ctx, GLenum face, GLenum func, /* OpenGL 2.0 */ void GLAPIENTRY -_mesa_StencilFuncSeparate_no_error(GLenum face, GLenum func, GLint ref, - GLuint mask) -{ - GET_CURRENT_CONTEXT(ctx); - stencil_func_separate(ctx, face, func, ref, mask); -} - - -void GLAPIENTRY -_mesa_StencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask) +_mesa_StencilMaskSeparate(GLenum face, GLuint mask) { GET_CURRENT_CONTEXT(ctx); if (MESA_VERBOSE & VERBOSE_API) - _mesa_debug(ctx, "glStencilFuncSeparate()\n"); + _mesa_debug(ctx, "glStencilMaskSeparate()\n"); if (face != GL_FRONT && face != GL_BACK && face != GL_FRONT_AND_BACK) { - _mesa_error(ctx, GL_INVALID_ENUM, "glStencilFuncSeparate(face)"); - return; - } - - if (!validate_stencil_func(ctx, func)) { - _mesa_error(ctx, GL_INVALID_ENUM, "glStencilFuncSeparate(func)"); + _mesa_error(ctx, GL_INVALID_ENUM, "glStencilaMaskSeparate(face)"); return; } - stencil_func_separate(ctx, face, func, ref, mask); -} - - -static void -stencil_mask_separate(struct gl_context *ctx, GLenum face, GLuint mask) -{ - FLUSH_VERTICES(ctx, ctx->DriverFlags.NewStencil ? 0 : _NEW_STENCIL); - ctx->NewDriverState |= ctx->DriverFlags.NewStencil; + FLUSH_VERTICES(ctx, _NEW_STENCIL); if (face != GL_BACK) { ctx->Stencil.WriteMask[0] = mask; } - if (face != GL_FRONT) { ctx->Stencil.WriteMask[1] = mask; } - if (ctx->Driver.StencilMaskSeparate) { ctx->Driver.StencilMaskSeparate(ctx, face, mask); } } -/* OpenGL 2.0 */ -void GLAPIENTRY -_mesa_StencilMaskSeparate_no_error(GLenum face, GLuint mask) -{ - GET_CURRENT_CONTEXT(ctx); - stencil_mask_separate(ctx, face, mask); -} - - -void GLAPIENTRY -_mesa_StencilMaskSeparate(GLenum face, GLuint mask) +/** + * Update derived stencil state. + */ +void +_mesa_update_stencil(struct gl_context *ctx) { - GET_CURRENT_CONTEXT(ctx); - - if (MESA_VERBOSE & VERBOSE_API) - _mesa_debug(ctx, "glStencilMaskSeparate()\n"); - - if (face != GL_FRONT && face != GL_BACK && face != GL_FRONT_AND_BACK) { - _mesa_error(ctx, GL_INVALID_ENUM, "glStencilaMaskSeparate(face)"); - return; - } - - stencil_mask_separate(ctx, face, mask); + const GLint face = ctx->Stencil._BackFace; + + ctx->Stencil._Enabled = (ctx->Stencil.Enabled && + ctx->DrawBuffer->Visual.stencilBits > 0); + + ctx->Stencil._TestTwoSide = + ctx->Stencil._Enabled && + (ctx->Stencil.Function[0] != ctx->Stencil.Function[face] || + ctx->Stencil.FailFunc[0] != ctx->Stencil.FailFunc[face] || + ctx->Stencil.ZPassFunc[0] != ctx->Stencil.ZPassFunc[face] || + ctx->Stencil.ZFailFunc[0] != ctx->Stencil.ZFailFunc[face] || + ctx->Stencil.Ref[0] != ctx->Stencil.Ref[face] || + ctx->Stencil.ValueMask[0] != ctx->Stencil.ValueMask[face] || + ctx->Stencil.WriteMask[0] != ctx->Stencil.WriteMask[face]); + + ctx->Stencil._WriteEnabled = + ctx->Stencil._Enabled && + (ctx->Stencil.WriteMask[0] != 0 || + (ctx->Stencil._TestTwoSide && ctx->Stencil.WriteMask[face] != 0)); } diff --git a/lib/mesa/src/mesa/main/stencil.h b/lib/mesa/src/mesa/main/stencil.h index dc371ec36..3302cb947 100644 --- a/lib/mesa/src/mesa/main/stencil.h +++ b/lib/mesa/src/mesa/main/stencil.h @@ -41,38 +41,26 @@ extern void GLAPIENTRY _mesa_ClearStencil( GLint s ); -void GLAPIENTRY -_mesa_StencilFunc_no_error(GLenum func, GLint ref, GLuint mask); - extern void GLAPIENTRY -_mesa_StencilFunc(GLenum func, GLint ref, GLuint mask); +_mesa_StencilFunc( GLenum func, GLint ref, GLuint mask ); extern void GLAPIENTRY _mesa_StencilMask( GLuint mask ); -void GLAPIENTRY -_mesa_StencilOp_no_error(GLenum fail, GLenum zfail, GLenum zpass); extern void GLAPIENTRY -_mesa_StencilOp(GLenum fail, GLenum zfail, GLenum zpass); +_mesa_StencilOp( GLenum fail, GLenum zfail, GLenum zpass ); extern void GLAPIENTRY _mesa_ActiveStencilFaceEXT(GLenum face); -void GLAPIENTRY -_mesa_StencilOpSeparate_no_error(GLenum face, GLenum fail, GLenum zfail, - GLenum zpass); extern void GLAPIENTRY _mesa_StencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass); -void GLAPIENTRY -_mesa_StencilFuncSeparate_no_error(GLenum face, GLenum func, GLint ref, - GLuint mask); - extern void GLAPIENTRY _mesa_StencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask); @@ -80,12 +68,14 @@ _mesa_StencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask); extern void GLAPIENTRY _mesa_StencilFuncSeparateATI(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); -void GLAPIENTRY -_mesa_StencilMaskSeparate_no_error(GLenum face, GLuint mask); - extern void GLAPIENTRY _mesa_StencilMaskSeparate(GLenum face, GLuint mask); + +extern void +_mesa_update_stencil(struct gl_context *ctx); + + extern void _mesa_init_stencil( struct gl_context * ctx ); @@ -103,35 +93,4 @@ _mesa_get_stencil_ref(struct gl_context const *ctx, int face) return CLAMP(ref, 0, stencilMax); } -static inline bool -_mesa_stencil_is_enabled(const struct gl_context *ctx) -{ - return ctx->Stencil.Enabled && - ctx->DrawBuffer->Visual.stencilBits > 0; -} - -static inline bool -_mesa_stencil_is_two_sided(const struct gl_context *ctx) -{ - const int face = ctx->Stencil._BackFace; - - return _mesa_stencil_is_enabled(ctx) && - (ctx->Stencil.Function[0] != ctx->Stencil.Function[face] || - ctx->Stencil.FailFunc[0] != ctx->Stencil.FailFunc[face] || - ctx->Stencil.ZPassFunc[0] != ctx->Stencil.ZPassFunc[face] || - ctx->Stencil.ZFailFunc[0] != ctx->Stencil.ZFailFunc[face] || - ctx->Stencil.Ref[0] != ctx->Stencil.Ref[face] || - ctx->Stencil.ValueMask[0] != ctx->Stencil.ValueMask[face] || - ctx->Stencil.WriteMask[0] != ctx->Stencil.WriteMask[face]); -} - -static inline bool -_mesa_stencil_is_write_enabled(const struct gl_context *ctx, bool is_two_sided) -{ - return _mesa_stencil_is_enabled(ctx) && - (ctx->Stencil.WriteMask[0] != 0 || - (is_two_sided && - ctx->Stencil.WriteMask[ctx->Stencil._BackFace] != 0)); -} - #endif diff --git a/lib/mesa/src/mesa/main/syncobj.c b/lib/mesa/src/mesa/main/syncobj.c index 9c165314b..c1b2d3bed 100644 --- a/lib/mesa/src/mesa/main/syncobj.c +++ b/lib/mesa/src/mesa/main/syncobj.c @@ -167,42 +167,34 @@ _mesa_free_sync_data(struct gl_context *ctx) * - not in sync objects hash table * - type is GL_SYNC_FENCE * - not marked as deleted - * - * Returns the internal gl_sync_object pointer if the sync object is valid - * or NULL if it isn't. - * - * If "incRefCount" is true, the reference count is incremented, which is - * normally what you want; otherwise, a glDeleteSync from another thread - * could delete the sync object while you are still working on it. */ -struct gl_sync_object * -_mesa_get_and_ref_sync(struct gl_context *ctx, GLsync sync, bool incRefCount) +bool +_mesa_validate_sync(struct gl_context *ctx, + const struct gl_sync_object *syncObj) { - struct gl_sync_object *syncObj = (struct gl_sync_object *) sync; - mtx_lock(&ctx->Shared->Mutex); - if (syncObj != NULL + return (syncObj != NULL) && _mesa_set_search(ctx->Shared->SyncObjects, syncObj) != NULL && (syncObj->Type == GL_SYNC_FENCE) - && !syncObj->DeletePending) { - if (incRefCount) { - syncObj->RefCount++; - } - } else { - syncObj = NULL; - } + && !syncObj->DeletePending; +} + + +void +_mesa_ref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj) +{ + mtx_lock(&ctx->Shared->Mutex); + syncObj->RefCount++; mtx_unlock(&ctx->Shared->Mutex); - return syncObj; } void -_mesa_unref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj, - int amount) +_mesa_unref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj) { struct set_entry *entry; mtx_lock(&ctx->Shared->Mutex); - syncObj->RefCount -= amount; + syncObj->RefCount--; if (syncObj->RefCount == 0) { entry = _mesa_set_search(ctx->Shared->SyncObjects, syncObj); assert (entry != NULL); @@ -220,9 +212,10 @@ GLboolean GLAPIENTRY _mesa_IsSync(GLsync sync) { GET_CURRENT_CONTEXT(ctx); + struct gl_sync_object *const syncObj = (struct gl_sync_object *) sync; ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, GL_FALSE); - return _mesa_get_and_ref_sync(ctx, sync, false) ? GL_TRUE : GL_FALSE; + return _mesa_validate_sync(ctx, syncObj) ? GL_TRUE : GL_FALSE; } @@ -230,7 +223,7 @@ void GLAPIENTRY _mesa_DeleteSync(GLsync sync) { GET_CURRENT_CONTEXT(ctx); - struct gl_sync_object *syncObj; + struct gl_sync_object *const syncObj = (struct gl_sync_object *) sync; /* From the GL_ARB_sync spec: * @@ -242,26 +235,37 @@ _mesa_DeleteSync(GLsync sync) return; } - syncObj = _mesa_get_and_ref_sync(ctx, sync, true); - if (!syncObj) { + if (!_mesa_validate_sync(ctx, syncObj)) { _mesa_error(ctx, GL_INVALID_VALUE, "glDeleteSync (not a valid sync object)"); return; } /* If there are no client-waits or server-waits pending on this sync, delete - * the underlying object. Note that we double-unref the object, as - * _mesa_get_and_ref_sync above took an extra refcount to make sure the pointer - * is valid for us to manipulate. + * the underlying object. */ syncObj->DeletePending = GL_TRUE; - _mesa_unref_sync_object(ctx, syncObj, 2); + _mesa_unref_sync_object(ctx, syncObj); } -static GLsync -fence_sync(struct gl_context *ctx, GLenum condition, GLbitfield flags) +GLsync GLAPIENTRY +_mesa_FenceSync(GLenum condition, GLbitfield flags) { + GET_CURRENT_CONTEXT(ctx); struct gl_sync_object *syncObj; + ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, 0); + + if (condition != GL_SYNC_GPU_COMMANDS_COMPLETE) { + _mesa_error(ctx, GL_INVALID_ENUM, "glFenceSync(condition=0x%x)", + condition); + return 0; + } + + if (flags != 0) { + _mesa_error(ctx, GL_INVALID_VALUE, "glFenceSync(flags=0x%x)", + condition); + return 0; + } syncObj = ctx->Driver.NewSyncObject(ctx, GL_SYNC_FENCE); if (syncObj != NULL) { @@ -284,48 +288,32 @@ fence_sync(struct gl_context *ctx, GLenum condition, GLbitfield flags) _mesa_set_add(ctx->Shared->SyncObjects, syncObj); mtx_unlock(&ctx->Shared->Mutex); - return (GLsync)syncObj; + return (GLsync) syncObj; } return NULL; } -GLsync GLAPIENTRY -_mesa_FenceSync_no_error(GLenum condition, GLbitfield flags) -{ - GET_CURRENT_CONTEXT(ctx); - return fence_sync(ctx, condition, flags); -} - - -GLsync GLAPIENTRY -_mesa_FenceSync(GLenum condition, GLbitfield flags) +GLenum GLAPIENTRY +_mesa_ClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout) { GET_CURRENT_CONTEXT(ctx); - ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, 0); + struct gl_sync_object *const syncObj = (struct gl_sync_object *) sync; + GLenum ret; + ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, GL_WAIT_FAILED); - if (condition != GL_SYNC_GPU_COMMANDS_COMPLETE) { - _mesa_error(ctx, GL_INVALID_ENUM, "glFenceSync(condition=0x%x)", - condition); - return 0; + if (!_mesa_validate_sync(ctx, syncObj)) { + _mesa_error(ctx, GL_INVALID_VALUE, "glClientWaitSync (not a valid sync object)"); + return GL_WAIT_FAILED; } - if (flags != 0) { - _mesa_error(ctx, GL_INVALID_VALUE, "glFenceSync(flags=0x%x)", - condition); - return 0; + if ((flags & ~GL_SYNC_FLUSH_COMMANDS_BIT) != 0) { + _mesa_error(ctx, GL_INVALID_VALUE, "glClientWaitSync(flags=0x%x)", flags); + return GL_WAIT_FAILED; } - return fence_sync(ctx, condition, flags); -} - - -static GLenum -client_wait_sync(struct gl_context *ctx, struct gl_sync_object *syncObj, - GLbitfield flags, GLuint64 timeout) -{ - GLenum ret; + _mesa_ref_sync_object(ctx, syncObj); /* From the GL_ARB_sync spec: * @@ -347,49 +335,21 @@ client_wait_sync(struct gl_context *ctx, struct gl_sync_object *syncObj, } } - _mesa_unref_sync_object(ctx, syncObj, 1); + _mesa_unref_sync_object(ctx, syncObj); return ret; } -GLenum GLAPIENTRY -_mesa_ClientWaitSync_no_error(GLsync sync, GLbitfield flags, GLuint64 timeout) -{ - GET_CURRENT_CONTEXT(ctx); - - struct gl_sync_object *syncObj = _mesa_get_and_ref_sync(ctx, sync, true); - return client_wait_sync(ctx, syncObj, flags, timeout); -} - - -GLenum GLAPIENTRY -_mesa_ClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout) -{ - GET_CURRENT_CONTEXT(ctx); - struct gl_sync_object *syncObj; - - ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, GL_WAIT_FAILED); - - if ((flags & ~GL_SYNC_FLUSH_COMMANDS_BIT) != 0) { - _mesa_error(ctx, GL_INVALID_VALUE, "glClientWaitSync(flags=0x%x)", flags); - return GL_WAIT_FAILED; - } - - syncObj = _mesa_get_and_ref_sync(ctx, sync, true); - if (!syncObj) { - _mesa_error(ctx, GL_INVALID_VALUE, "glClientWaitSync (not a valid sync object)"); - return GL_WAIT_FAILED; - } - - return client_wait_sync(ctx, syncObj, flags, timeout); -} - - void GLAPIENTRY _mesa_WaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout) { GET_CURRENT_CONTEXT(ctx); - struct gl_sync_object *syncObj; + struct gl_sync_object *const syncObj = (struct gl_sync_object *) sync; + + if (!_mesa_validate_sync(ctx, syncObj)) { + _mesa_error(ctx, GL_INVALID_VALUE, "glWaitSync (not a valid sync object)"); + return; + } if (flags != 0) { _mesa_error(ctx, GL_INVALID_VALUE, "glWaitSync(flags=0x%x)", flags); @@ -402,14 +362,7 @@ _mesa_WaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout) return; } - syncObj = _mesa_get_and_ref_sync(ctx, sync, true); - if (!syncObj) { - _mesa_error(ctx, GL_INVALID_VALUE, "glWaitSync (not a valid sync object)"); - return; - } - ctx->Driver.ServerWaitSync(ctx, syncObj, flags, timeout); - _mesa_unref_sync_object(ctx, syncObj, 1); } @@ -418,12 +371,11 @@ _mesa_GetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values) { GET_CURRENT_CONTEXT(ctx); - struct gl_sync_object *syncObj; + struct gl_sync_object *const syncObj = (struct gl_sync_object *) sync; GLsizei size = 0; GLint v[1]; - syncObj = _mesa_get_and_ref_sync(ctx, sync, true); - if (!syncObj) { + if (!_mesa_validate_sync(ctx, syncObj)) { _mesa_error(ctx, GL_INVALID_VALUE, "glGetSynciv (not a valid sync object)"); return; } @@ -457,18 +409,9 @@ _mesa_GetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, default: _mesa_error(ctx, GL_INVALID_ENUM, "glGetSynciv(pname=0x%x)\n", pname); - _mesa_unref_sync_object(ctx, syncObj, 1); return; } - /* Section 4.1.3 (Sync Object Queries) of the OpenGL ES 3.10 spec says: - * - * "An INVALID_VALUE error is generated if bufSize is negative." - */ - if (bufSize < 0) { - _mesa_error(ctx, GL_INVALID_VALUE, "glGetSynciv(pname=0x%x)\n", pname); - } - if (size > 0 && bufSize > 0) { const GLsizei copy_count = MIN2(size, bufSize); @@ -478,6 +421,4 @@ _mesa_GetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, if (length != NULL) { *length = size; } - - _mesa_unref_sync_object(ctx, syncObj, 1); } diff --git a/lib/mesa/src/mesa/main/syncobj.h b/lib/mesa/src/mesa/main/syncobj.h index 2b50d062b..5d510e873 100644 --- a/lib/mesa/src/mesa/main/syncobj.h +++ b/lib/mesa/src/mesa/main/syncobj.h @@ -47,12 +47,15 @@ _mesa_init_sync(struct gl_context *); extern void _mesa_free_sync_data(struct gl_context *); -struct gl_sync_object * -_mesa_get_and_ref_sync(struct gl_context *ctx, GLsync sync, bool incRefCount); +extern void +_mesa_ref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj); extern void -_mesa_unref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj, - int amount); +_mesa_unref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj); + +extern bool +_mesa_validate_sync(struct gl_context *ctx, + const struct gl_sync_object *syncObj); extern GLboolean GLAPIENTRY _mesa_IsSync(GLsync sync); @@ -60,15 +63,9 @@ _mesa_IsSync(GLsync sync); extern void GLAPIENTRY _mesa_DeleteSync(GLsync sync); -GLsync GLAPIENTRY -_mesa_FenceSync_no_error(GLenum condition, GLbitfield flags); - extern GLsync GLAPIENTRY _mesa_FenceSync(GLenum condition, GLbitfield flags); -GLenum GLAPIENTRY -_mesa_ClientWaitSync_no_error(GLsync sync, GLbitfield flags, GLuint64 timeout); - extern GLenum GLAPIENTRY _mesa_ClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout); diff --git a/lib/mesa/src/mesa/main/texstorage.c b/lib/mesa/src/mesa/main/texstorage.c index ef4fe58f5..51f49b33f 100644 --- a/lib/mesa/src/mesa/main/texstorage.c +++ b/lib/mesa/src/mesa/main/texstorage.c @@ -22,11 +22,14 @@ * OTHER DEALINGS IN THE SOFTWARE. */ + /** * \file texstorage.c * GL_ARB_texture_storage functions */ + + #include "glheader.h" #include "context.h" #include "enums.h" @@ -48,51 +51,31 @@ * This is a bit different than legal_teximage_target() when it comes * to cube maps. */ -static bool -legal_texobj_target(const struct gl_context *ctx, GLuint dims, GLenum target) +static GLboolean +legal_texobj_target(struct gl_context *ctx, GLuint dims, GLenum target) { - if (dims < 1 || dims > 3) { - _mesa_problem(ctx, "invalid dims=%u in legal_texobj_target()", dims); - return false; - } - - switch (dims) { - case 2: - switch (target) { - case GL_TEXTURE_2D: - return true; - case GL_TEXTURE_CUBE_MAP: - return ctx->Extensions.ARB_texture_cube_map; - } - break; - case 3: - switch (target) { - case GL_TEXTURE_3D: - return true; - case GL_TEXTURE_2D_ARRAY: - return ctx->Extensions.EXT_texture_array; - case GL_TEXTURE_CUBE_MAP_ARRAY: - return _mesa_has_texture_cube_map_array(ctx); - } - break; - } - - if (!_mesa_is_desktop_gl(ctx)) - return false; + if (_mesa_is_gles3(ctx) + && target != GL_TEXTURE_2D + && target != GL_TEXTURE_CUBE_MAP + && target != GL_TEXTURE_3D + && target != GL_TEXTURE_2D_ARRAY) + return GL_FALSE; switch (dims) { case 1: switch (target) { case GL_TEXTURE_1D: case GL_PROXY_TEXTURE_1D: - return true; + return GL_TRUE; default: - return false; + return GL_FALSE; } case 2: switch (target) { + case GL_TEXTURE_2D: case GL_PROXY_TEXTURE_2D: - return true; + return GL_TRUE; + case GL_TEXTURE_CUBE_MAP: case GL_PROXY_TEXTURE_CUBE_MAP: return ctx->Extensions.ARB_texture_cube_map; case GL_TEXTURE_RECTANGLE: @@ -102,28 +85,32 @@ legal_texobj_target(const struct gl_context *ctx, GLuint dims, GLenum target) case GL_PROXY_TEXTURE_1D_ARRAY: return ctx->Extensions.EXT_texture_array; default: - return false; + return GL_FALSE; } case 3: switch (target) { + case GL_TEXTURE_3D: case GL_PROXY_TEXTURE_3D: - return true; + return GL_TRUE; + case GL_TEXTURE_2D_ARRAY: case GL_PROXY_TEXTURE_2D_ARRAY: return ctx->Extensions.EXT_texture_array; + case GL_TEXTURE_CUBE_MAP_ARRAY: case GL_PROXY_TEXTURE_CUBE_MAP_ARRAY: return ctx->Extensions.ARB_texture_cube_map_array; default: - return false; + return GL_FALSE; } default: - unreachable("impossible dimensions"); + _mesa_problem(ctx, "invalid dims=%u in legal_texobj_target()", dims); + return GL_FALSE; } } /** Helper to get a particular texture image in a texture object */ static struct gl_texture_image * -get_tex_image(struct gl_context *ctx, +get_tex_image(struct gl_context *ctx, struct gl_texture_object *texObj, GLuint face, GLuint level) { @@ -164,8 +151,7 @@ initialize_texture_fields(struct gl_context *ctx, 0, internalFormat, texFormat); } - _mesa_next_mipmap_level_size(target, 0, - levelWidth, levelHeight, levelDepth, + _mesa_next_mipmap_level_size(target, 0, levelWidth, levelHeight, levelDepth, &levelWidth, &levelHeight, &levelDepth); } return GL_TRUE; @@ -195,7 +181,9 @@ clear_texture_fields(struct gl_context *ctx, return; } - _mesa_clear_texture_image(ctx, texImage); + _mesa_init_teximage_fields(ctx, texImage, + 0, 0, 0, 0, /* w, h, d, border */ + GL_NONE, MESA_FORMAT_NONE); } } } @@ -216,8 +204,7 @@ update_fbo_texture(struct gl_context *ctx, struct gl_texture_object *texObj) GLboolean -_mesa_is_legal_tex_storage_format(const struct gl_context *ctx, - GLenum internalformat) +_mesa_is_legal_tex_storage_format(struct gl_context *ctx, GLenum internalformat) { /* check internal format - note that only sized formats are allowed */ switch (internalformat) { @@ -259,7 +246,6 @@ _mesa_is_legal_tex_storage_format(const struct gl_context *ctx, } } - /** * Default ctx->Driver.AllocTextureStorage() handler. * @@ -320,16 +306,24 @@ tex_storage_error_check(struct gl_context *ctx, "glTex%sStorage%uD(width, height or depth < 1)", suffix, dims); return GL_TRUE; - } - - if (_mesa_is_compressed_format(ctx, internalformat)) { - GLenum err; - if (!_mesa_target_can_be_compressed(ctx, target, internalformat, &err)) { - _mesa_error(ctx, err, + } + + /* From section 3.8.6, page 146 of OpenGL ES 3.0 spec: + * + * "The ETC2/EAC texture compression algorithm supports only + * two-dimensional images. If internalformat is an ETC2/EAC format, + * CompressedTexImage3D will generate an INVALID_OPERATION error if + * target is not TEXTURE_2D_ARRAY." + * + * This should also be applicable for glTexStorage3D(). + */ + if (_mesa_is_compressed_format(ctx, internalformat) + && !_mesa_target_can_be_compressed(ctx, target, internalformat)) { + _mesa_error(ctx, _mesa_is_desktop_gl(ctx)? + GL_INVALID_ENUM : GL_INVALID_OPERATION, "glTex%sStorage%dD(internalformat = %s)", suffix, dims, _mesa_enum_to_string(internalformat)); - return GL_TRUE; - } + return GL_TRUE; } /* levels check */ @@ -337,7 +331,7 @@ tex_storage_error_check(struct gl_context *ctx, _mesa_error(ctx, GL_INVALID_VALUE, "glTex%sStorage%uD(levels < 1)", suffix, dims); return GL_TRUE; - } + } /* check levels against maximum (note different error than above) */ if (levels > (GLint) _mesa_max_texture_levels(ctx, target)) { @@ -372,11 +366,11 @@ tex_storage_error_check(struct gl_context *ctx, } /* additional checks for depth textures */ - if (!_mesa_legal_texture_base_format_for_target(ctx, target, internalformat)) { - _mesa_error(ctx, GL_INVALID_OPERATION, "glTex%sStorage%uD(bad target for texture)", - suffix, dims); + if (!_mesa_legal_texture_base_format_for_target(ctx, target, internalformat, + dims, dsa ? + "glTextureStorage" : + "glTexStorage")) return GL_TRUE; - } return GL_FALSE; } @@ -386,12 +380,12 @@ tex_storage_error_check(struct gl_context *ctx, * Helper that does the storage allocation for _mesa_TexStorage1/2/3D() * and _mesa_TextureStorage1/2/3D(). */ -static void -texture_storage(struct gl_context *ctx, GLuint dims, - struct gl_texture_object *texObj, - GLenum target, GLsizei levels, - GLenum internalformat, GLsizei width, - GLsizei height, GLsizei depth, bool dsa) +void +_mesa_texture_storage(struct gl_context *ctx, GLuint dims, + struct gl_texture_object *texObj, + GLenum target, GLsizei levels, + GLenum internalformat, GLsizei width, + GLsizei height, GLsizei depth, bool dsa) { GLboolean sizeOK, dimensionsOK; mesa_format texFormat; @@ -404,15 +398,17 @@ texture_storage(struct gl_context *ctx, GLuint dims, return; /* error was recorded */ } + texFormat = _mesa_choose_texture_format(ctx, texObj, target, 0, internalformat, GL_NONE, GL_NONE); + assert(texFormat != MESA_FORMAT_NONE); /* check that width, height, depth are legal for the mipmap level */ dimensionsOK = _mesa_legal_texture_dimensions(ctx, target, 0, width, height, depth, 0); - sizeOK = ctx->Driver.TestProxyTexImage(ctx, target, levels, 0, texFormat, - 1, width, height, depth); + sizeOK = ctx->Driver.TestProxyTexImage(ctx, target, 0, texFormat, + width, height, depth, 0); if (_mesa_is_proxy_texture(target)) { if (dimensionsOK && sizeOK) { @@ -468,37 +464,36 @@ texture_storage(struct gl_context *ctx, GLuint dims, } } - /** * Helper used by _mesa_TexStorage1/2/3D(). */ static void texstorage(GLuint dims, GLenum target, GLsizei levels, GLenum internalformat, - GLsizei width, GLsizei height, GLsizei depth, const char *caller) + GLsizei width, GLsizei height, GLsizei depth) { struct gl_texture_object *texObj; GET_CURRENT_CONTEXT(ctx); - /* Check target. This is done here so that texture_storage - * can receive unsized formats. - */ + /* target check */ + /* This is done here so that _mesa_texture_storage can receive unsized + * formats. */ if (!legal_texobj_target(ctx, dims, target)) { _mesa_error(ctx, GL_INVALID_ENUM, - "%s(illegal target=%s)", - caller, _mesa_enum_to_string(target)); + "glTexStorage%uD(illegal target=%s)", + dims, _mesa_enum_to_string(target)); return; } if (MESA_VERBOSE & (VERBOSE_API|VERBOSE_TEXTURE)) - _mesa_debug(ctx, "%s %s %d %s %d %d %d\n", caller, + _mesa_debug(ctx, "glTexStorage%uD %s %d %s %d %d %d\n", + dims, _mesa_enum_to_string(target), levels, _mesa_enum_to_string(internalformat), width, height, depth); - /* Check the format to make sure it is sized. */ if (!_mesa_is_legal_tex_storage_format(ctx, internalformat)) { _mesa_error(ctx, GL_INVALID_ENUM, - "%s(internalformat = %s)", caller, + "glTexStorage%uD(internalformat = %s)", dims, _mesa_enum_to_string(internalformat)); return; } @@ -507,61 +502,62 @@ texstorage(GLuint dims, GLenum target, GLsizei levels, GLenum internalformat, if (!texObj) return; - texture_storage(ctx, dims, texObj, target, levels, - internalformat, width, height, depth, false); + _mesa_texture_storage(ctx, dims, texObj, target, levels, + internalformat, width, height, depth, false); } - /** * Helper used by _mesa_TextureStorage1/2/3D(). */ static void texturestorage(GLuint dims, GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, - GLsizei depth, const char *caller) + GLsizei depth) { struct gl_texture_object *texObj; GET_CURRENT_CONTEXT(ctx); if (MESA_VERBOSE & (VERBOSE_API|VERBOSE_TEXTURE)) - _mesa_debug(ctx, "%s %d %d %s %d %d %d\n", - caller, texture, levels, + _mesa_debug(ctx, "glTextureStorage%uD %d %d %s %d %d %d\n", + dims, texture, levels, _mesa_enum_to_string(internalformat), width, height, depth); /* Check the format to make sure it is sized. */ if (!_mesa_is_legal_tex_storage_format(ctx, internalformat)) { _mesa_error(ctx, GL_INVALID_ENUM, - "%s(internalformat = %s)", caller, + "glTextureStorage%uD(internalformat = %s)", dims, _mesa_enum_to_string(internalformat)); return; } - texObj = _mesa_lookup_texture_err(ctx, texture, caller); - if (!texObj) + /* Get the texture object by Name. */ + texObj = _mesa_lookup_texture(ctx, texture); + if (!texObj) { + _mesa_error(ctx, GL_INVALID_OPERATION, + "glTextureStorage%uD(texture = %d)", dims, texture); return; + } - /* Check target. This is done here so that texture_storage - * can receive unsized formats. - */ + /* target check */ + /* This is done here so that _mesa_texture_storage can receive unsized + * formats. */ if (!legal_texobj_target(ctx, dims, texObj->Target)) { _mesa_error(ctx, GL_INVALID_ENUM, - "%s(illegal target=%s)", caller, - _mesa_enum_to_string(texObj->Target)); + "glTextureStorage%uD(illegal target=%s)", + dims, _mesa_enum_to_string(texObj->Target)); return; } - texture_storage(ctx, dims, texObj, texObj->Target, - levels, internalformat, width, height, depth, true); + _mesa_texture_storage(ctx, dims, texObj, texObj->Target, + levels, internalformat, width, height, depth, true); } - void GLAPIENTRY _mesa_TexStorage1D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width) { - texstorage(1, target, levels, internalformat, width, 1, 1, - "glTexStorage1D"); + texstorage(1, target, levels, internalformat, width, 1, 1); } @@ -569,8 +565,7 @@ void GLAPIENTRY _mesa_TexStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height) { - texstorage(2, target, levels, internalformat, width, height, 1, - "glTexStorage2D"); + texstorage(2, target, levels, internalformat, width, height, 1); } @@ -578,17 +573,14 @@ void GLAPIENTRY _mesa_TexStorage3D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth) { - texstorage(3, target, levels, internalformat, width, height, depth, - "glTexStorage3D"); + texstorage(3, target, levels, internalformat, width, height, depth); } - void GLAPIENTRY _mesa_TextureStorage1D(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width) { - texturestorage(1, texture, levels, internalformat, width, 1, 1, - "glTextureStorage1D"); + texturestorage(1, texture, levels, internalformat, width, 1, 1); } @@ -597,17 +589,14 @@ _mesa_TextureStorage2D(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height) { - texturestorage(2, texture, levels, internalformat, width, height, 1, - "glTextureStorage2D"); + texturestorage(2, texture, levels, internalformat, width, height, 1); } - void GLAPIENTRY _mesa_TextureStorage3D(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth) { - texturestorage(3, texture, levels, internalformat, width, height, depth, - "glTextureStorage3D"); + texturestorage(3, texture, levels, internalformat, width, height, depth); } @@ -656,6 +645,7 @@ _mesa_TextureStorage2DEXT(GLuint texture, GLenum target, GLsizei levels, } + void GLAPIENTRY _mesa_TextureStorage3DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, diff --git a/lib/mesa/src/mesa/main/texstorage.h b/lib/mesa/src/mesa/main/texstorage.h index 526c61e85..033ecb7ed 100644 --- a/lib/mesa/src/mesa/main/texstorage.h +++ b/lib/mesa/src/mesa/main/texstorage.h @@ -31,6 +31,13 @@ */ /*@{*/ +extern void +_mesa_texture_storage(struct gl_context *ctx, GLuint dims, + struct gl_texture_object *texObj, + GLenum target, GLsizei levels, + GLenum internalformat, GLsizei width, + GLsizei height, GLsizei depth, bool dsa); + /** * Texture width, height and depth check shared with the * multisample variants of TexStorage functions. @@ -104,8 +111,7 @@ _mesa_TextureStorage3DEXT(GLuint texture, GLenum target, GLsizei levels, GLsizei width, GLsizei height, GLsizei depth); extern GLboolean -_mesa_is_legal_tex_storage_format(const struct gl_context *ctx, - GLenum internalformat); +_mesa_is_legal_tex_storage_format(struct gl_context *ctx, GLenum internalformat); extern GLboolean _mesa_AllocTextureStorage_sw(struct gl_context *ctx, diff --git a/lib/mesa/src/mesa/main/textureview.c b/lib/mesa/src/mesa/main/textureview.c index cef9caff4..5a3282a40 100644 --- a/lib/mesa/src/mesa/main/textureview.c +++ b/lib/mesa/src/mesa/main/textureview.c @@ -82,39 +82,6 @@ | | COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT | --------------------------------------------------------------------------- */ - -#define VIEW_CLASS_GLES(x) (GL_VIEW_CLASS_BPTC_FLOAT + 1 + x) -#define VIEW_CLASS_EAC_R11 VIEW_CLASS_GLES(0) -#define VIEW_CLASS_EAC_RG11 VIEW_CLASS_GLES(1) -#define VIEW_CLASS_ETC2_RGB VIEW_CLASS_GLES(2) -#define VIEW_CLASS_ETC2_RGBA VIEW_CLASS_GLES(3) -#define VIEW_CLASS_ETC2_EAC_RGBA VIEW_CLASS_GLES(4) -#define VIEW_CLASS_ASTC_4x4_RGBA VIEW_CLASS_GLES(5) -#define VIEW_CLASS_ASTC_5x4_RGBA VIEW_CLASS_GLES(6) -#define VIEW_CLASS_ASTC_5x5_RGBA VIEW_CLASS_GLES(7) -#define VIEW_CLASS_ASTC_6x5_RGBA VIEW_CLASS_GLES(8) -#define VIEW_CLASS_ASTC_6x6_RGBA VIEW_CLASS_GLES(9) -#define VIEW_CLASS_ASTC_8x5_RGBA VIEW_CLASS_GLES(10) -#define VIEW_CLASS_ASTC_8x6_RGBA VIEW_CLASS_GLES(11) -#define VIEW_CLASS_ASTC_8x8_RGBA VIEW_CLASS_GLES(12) -#define VIEW_CLASS_ASTC_10x5_RGBA VIEW_CLASS_GLES(13) -#define VIEW_CLASS_ASTC_10x6_RGBA VIEW_CLASS_GLES(14) -#define VIEW_CLASS_ASTC_10x8_RGBA VIEW_CLASS_GLES(15) -#define VIEW_CLASS_ASTC_10x10_RGBA VIEW_CLASS_GLES(16) -#define VIEW_CLASS_ASTC_12x10_RGBA VIEW_CLASS_GLES(17) -#define VIEW_CLASS_ASTC_12x12_RGBA VIEW_CLASS_GLES(18) -#define VIEW_CLASS_ASTC_3x3x3_RGBA VIEW_CLASS_GLES(19) -#define VIEW_CLASS_ASTC_4x3x3_RGBA VIEW_CLASS_GLES(20) -#define VIEW_CLASS_ASTC_4x4x3_RGBA VIEW_CLASS_GLES(21) -#define VIEW_CLASS_ASTC_4x4x4_RGBA VIEW_CLASS_GLES(22) -#define VIEW_CLASS_ASTC_5x4x4_RGBA VIEW_CLASS_GLES(23) -#define VIEW_CLASS_ASTC_5x5x4_RGBA VIEW_CLASS_GLES(24) -#define VIEW_CLASS_ASTC_5x5x5_RGBA VIEW_CLASS_GLES(25) -#define VIEW_CLASS_ASTC_6x5x5_RGBA VIEW_CLASS_GLES(26) -#define VIEW_CLASS_ASTC_6x6x5_RGBA VIEW_CLASS_GLES(27) -#define VIEW_CLASS_ASTC_6x6x6_RGBA VIEW_CLASS_GLES(28) - - struct internal_format_class_info { GLenum view_class; GLenum internal_format; @@ -195,61 +162,12 @@ static const struct internal_format_class_info s3tc_compatible_internal_formats[ {GL_VIEW_CLASS_S3TC_DXT5_RGBA, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}, }; -static const struct internal_format_class_info gles_etc2_compatible_internal_formats[] = { - {VIEW_CLASS_EAC_R11, GL_COMPRESSED_R11_EAC}, - {VIEW_CLASS_EAC_R11, GL_COMPRESSED_SIGNED_R11_EAC}, - {VIEW_CLASS_EAC_RG11, GL_COMPRESSED_RG11_EAC}, - {VIEW_CLASS_EAC_RG11, GL_COMPRESSED_SIGNED_RG11_EAC}, - {VIEW_CLASS_ETC2_RGB, GL_COMPRESSED_RGB8_ETC2}, - {VIEW_CLASS_ETC2_RGB, GL_COMPRESSED_SRGB8_ETC2}, - {VIEW_CLASS_ETC2_RGBA, GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2}, - {VIEW_CLASS_ETC2_RGBA, GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2}, - {VIEW_CLASS_ETC2_EAC_RGBA, GL_COMPRESSED_RGBA8_ETC2_EAC}, - {VIEW_CLASS_ETC2_EAC_RGBA, GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC}, -}; - -static const struct internal_format_class_info gles_astc_compatible_internal_formats[] = { -#define ASTC_FMT(size) \ - {VIEW_CLASS_ASTC_##size##_RGBA, GL_COMPRESSED_RGBA_ASTC_##size##_KHR}, \ - {VIEW_CLASS_ASTC_##size##_RGBA, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_##size##_KHR} - - ASTC_FMT(4x4), - ASTC_FMT(5x4), - ASTC_FMT(5x5), - ASTC_FMT(6x5), - ASTC_FMT(6x6), - ASTC_FMT(8x5), - ASTC_FMT(8x6), - ASTC_FMT(8x8), - ASTC_FMT(10x5), - ASTC_FMT(10x6), - ASTC_FMT(10x8), - ASTC_FMT(10x10), - ASTC_FMT(12x10), - ASTC_FMT(12x12), -#undef ASTC_FMT -}; - -static const struct internal_format_class_info gles_astc_3d_compatible_internal_formats[] = { -#define ASTC_FMT(size) \ - {VIEW_CLASS_ASTC_##size##_RGBA, GL_COMPRESSED_RGBA_ASTC_##size##_OES}, \ - {VIEW_CLASS_ASTC_##size##_RGBA, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_##size##_OES} - - ASTC_FMT(3x3x3), - ASTC_FMT(4x3x3), - ASTC_FMT(4x4x3), - ASTC_FMT(4x4x4), - ASTC_FMT(5x4x4), - ASTC_FMT(5x5x4), - ASTC_FMT(5x5x5), - ASTC_FMT(6x5x5), - ASTC_FMT(6x6x5), - ASTC_FMT(6x6x6), -#undef ASTC_FMT -}; - -GLenum -_mesa_texture_view_lookup_view_class(const struct gl_context *ctx, GLenum internalformat) +/** + * Lookup format view class based on internalformat + * \return VIEW_CLASS if internalformat found in table, false otherwise. + */ +static GLenum +lookup_view_class(const struct gl_context *ctx, GLenum internalformat) { GLuint i; @@ -266,30 +184,6 @@ _mesa_texture_view_lookup_view_class(const struct gl_context *ctx, GLenum intern return s3tc_compatible_internal_formats[i].view_class; } } - - if (_mesa_is_gles3(ctx)) { - for (i = 0; i < ARRAY_SIZE(gles_etc2_compatible_internal_formats); i++) { - if (gles_etc2_compatible_internal_formats[i].internal_format - == internalformat) - return gles_etc2_compatible_internal_formats[i].view_class; - } - - if (ctx->Extensions.KHR_texture_compression_astc_ldr) { - for (i = 0; i < ARRAY_SIZE(gles_astc_compatible_internal_formats); i++) { - if (gles_astc_compatible_internal_formats[i].internal_format - == internalformat) - return gles_astc_compatible_internal_formats[i].view_class; - } - } - - if (ctx->Extensions.OES_texture_compression_astc) { - for (i = 0; i < ARRAY_SIZE(gles_astc_3d_compatible_internal_formats); i++) { - if (gles_astc_3d_compatible_internal_formats[i].internal_format - == internalformat) - return gles_astc_3d_compatible_internal_formats[i].view_class; - } - } - } return GL_FALSE; } @@ -317,7 +211,10 @@ initialize_texture_fields(struct gl_context *ctx, for (level = 0; level < levels; level++) { for (face = 0; face < numFaces; face++) { struct gl_texture_image *texImage; - const GLenum faceTarget = _mesa_cube_face_target(target, face); + GLenum faceTarget = target; + + if (target == GL_TEXTURE_CUBE_MAP) + faceTarget = GL_TEXTURE_CUBE_MAP_POSITIVE_X + face; texImage = _mesa_get_tex_image(ctx, texObj, faceTarget, level); @@ -442,8 +339,8 @@ _mesa_texture_view_compatible_format(const struct gl_context *ctx, if (origInternalFormat == newInternalFormat) return true; - origViewClass = _mesa_texture_view_lookup_view_class(ctx, origInternalFormat); - newViewClass = _mesa_texture_view_lookup_view_class(ctx, newInternalFormat); + origViewClass = lookup_view_class(ctx, origInternalFormat); + newViewClass = lookup_view_class(ctx, newInternalFormat); if ((origViewClass == newViewClass) && origViewClass != false) return true; @@ -633,12 +530,15 @@ _mesa_TextureView(GLuint texture, GLenum target, GLuint origtexture, texFormat = _mesa_choose_texture_format(ctx, texObj, target, 0, internalformat, GL_NONE, GL_NONE); + assert(texFormat != MESA_FORMAT_NONE); if (texFormat == MESA_FORMAT_NONE) return; newViewNumLevels = MIN2(numlevels, origTexObj->NumLevels - minlevel); newViewNumLayers = MIN2(numlayers, origTexObj->NumLayers - minlayer); - faceTarget = _mesa_cube_face_target(origTexObj->Target, minlayer); + faceTarget = origTexObj->Target; + if (faceTarget == GL_TEXTURE_CUBE_MAP) + faceTarget = GL_TEXTURE_CUBE_MAP_POSITIVE_X + minlayer; /* Get a reference to what will become this View's base level */ origTexImage = _mesa_select_tex_image(origTexObj, faceTarget, minlevel); @@ -662,38 +562,13 @@ _mesa_TextureView(GLuint texture, GLenum target, GLuint origtexture, case GL_TEXTURE_2D: case GL_TEXTURE_2D_MULTISAMPLE: case GL_TEXTURE_RECTANGLE: - depth = 1; - break; case GL_TEXTURE_CUBE_MAP: - /* If the new texture's target is TEXTURE_CUBE_MAP, the clamped - * <numlayers> must be equal to 6. - */ - if (newViewNumLayers != 6) { - _mesa_error(ctx, GL_INVALID_VALUE, - "glTextureView(clamped numlayers %d != 6)", - newViewNumLayers); - return; - } depth = 1; break; case GL_TEXTURE_2D_ARRAY: - case GL_TEXTURE_2D_MULTISAMPLE_ARRAY: - depth = newViewNumLayers; - break; case GL_TEXTURE_CUBE_MAP_ARRAY: - /* If the new texture's target is TEXTURE_CUBE_MAP_ARRAY, - * then <numlayers> counts layer-faces rather than layers, - * and the clamped <numlayers> must be a multiple of 6. - * Otherwise, the error INVALID_VALUE is generated. - */ - if ((newViewNumLayers % 6) != 0) { - _mesa_error(ctx, GL_INVALID_VALUE, - "glTextureView(clamped numlayers %d is not" - " a multiple of 6)", - newViewNumLayers); - return; - } + case GL_TEXTURE_2D_MULTISAMPLE_ARRAY: depth = newViewNumLayers; break; } @@ -713,9 +588,8 @@ _mesa_TextureView(GLuint texture, GLenum target, GLuint origtexture, return; } - sizeOK = ctx->Driver.TestProxyTexImage(ctx, target, 1, 0, texFormat, - origTexImage->NumSamples, - width, height, depth); + sizeOK = ctx->Driver.TestProxyTexImage(ctx, target, 0, texFormat, + width, height, depth, 0); if (!sizeOK) { _mesa_error(ctx, GL_INVALID_OPERATION, "glTextureView(invalid texture size)"); @@ -738,9 +612,32 @@ _mesa_TextureView(GLuint texture, GLenum target, GLuint origtexture, return; } break; + case GL_TEXTURE_CUBE_MAP: + /* If the new texture's target is TEXTURE_CUBE_MAP, the clamped + * <numlayers> must be equal to 6. + */ + if (newViewNumLayers != 6) { + _mesa_error(ctx, GL_INVALID_VALUE, + "glTextureView(clamped numlayers %d != 6)", + newViewNumLayers); + return; + } break; + case GL_TEXTURE_CUBE_MAP_ARRAY: + /* If the new texture's target is TEXTURE_CUBE_MAP_ARRAY, + * then <numlayers> counts layer-faces rather than layers, + * and the clamped <numlayers> must be a multiple of 6. + * Otherwise, the error INVALID_VALUE is generated. + */ + if ((newViewNumLayers % 6) != 0) { + _mesa_error(ctx, GL_INVALID_VALUE, + "glTextureView(clamped numlayers %d is not" + " a multiple of 6)", + newViewNumLayers); + return; + } break; } @@ -784,8 +681,6 @@ _mesa_TextureView(GLuint texture, GLenum target, GLuint origtexture, texObj->Immutable = GL_TRUE; texObj->ImmutableLevels = origTexObj->ImmutableLevels; texObj->Target = target; - texObj->TargetIndex = _mesa_tex_target_to_index(ctx, target); - assert(texObj->TargetIndex < NUM_TEXTURE_TARGETS); if (ctx->Driver.TextureView != NULL && !ctx->Driver.TextureView(ctx, texObj, origTexObj)) { diff --git a/lib/mesa/src/mesa/main/transformfeedback.h b/lib/mesa/src/mesa/main/transformfeedback.h index cb3bb6754..bb9729cdb 100644 --- a/lib/mesa/src/mesa/main/transformfeedback.h +++ b/lib/mesa/src/mesa/main/transformfeedback.h @@ -50,7 +50,7 @@ extern void _mesa_init_transform_feedback_functions(struct dd_function_table *driver); extern unsigned -_mesa_compute_max_transform_feedback_vertices( struct gl_context *ctx, +_mesa_compute_max_transform_feedback_vertices( const struct gl_transform_feedback_object *obj, const struct gl_transform_feedback_info *info); @@ -63,11 +63,13 @@ _mesa_BeginTransformFeedback(GLenum mode); extern void GLAPIENTRY _mesa_EndTransformFeedback(void); -extern bool -_mesa_validate_buffer_range_xfb(struct gl_context *ctx, - struct gl_transform_feedback_object *obj, - GLuint index, struct gl_buffer_object *bufObj, - GLintptr offset, GLsizeiptr size, bool dsa); +extern void +_mesa_bind_buffer_range_transform_feedback(struct gl_context *ctx, + struct gl_transform_feedback_object *obj, + GLuint index, + struct gl_buffer_object *bufObj, + GLintptr offset, + GLsizeiptr size, bool dsa); extern void _mesa_bind_buffer_base_transform_feedback(struct gl_context *ctx, @@ -143,29 +145,6 @@ _mesa_set_transform_feedback_binding(struct gl_context *ctx, tfObj->BufferNames[index] = bufObj->Name; tfObj->Offset[index] = offset; tfObj->RequestedSize[index] = size; - - if (bufObj != ctx->Shared->NullBufferObj) - bufObj->UsageHistory |= USAGE_TRANSFORM_FEEDBACK_BUFFER; -} - -static inline void -_mesa_bind_buffer_range_xfb(struct gl_context *ctx, - struct gl_transform_feedback_object *obj, - GLuint index, struct gl_buffer_object *bufObj, - GLintptr offset, GLsizeiptr size) -{ - /* Note: no need to FLUSH_VERTICES or flag NewTransformFeedback, because - * transform feedback buffers can't be changed while transform feedback is - * active. - */ - - /* The general binding point */ - _mesa_reference_buffer_object(ctx, - &ctx->TransformFeedback.CurrentBuffer, - bufObj); - - /* The per-attribute binding point */ - _mesa_set_transform_feedback_binding(ctx, obj, index, bufObj, offset, size); } /*** GL_ARB_direct_state_access ***/ diff --git a/lib/mesa/src/mesa/main/vdpau.c b/lib/mesa/src/mesa/main/vdpau.c index 051071beb..0efa56e4f 100644 --- a/lib/mesa/src/mesa/main/vdpau.c +++ b/lib/mesa/src/mesa/main/vdpau.c @@ -145,11 +145,11 @@ register_surface(struct gl_context *ctx, GLboolean isOutput, surf->output = isOutput; for (i = 0; i < numTextureNames; ++i) { struct gl_texture_object *tex; - - tex = _mesa_lookup_texture_err(ctx, textureNames[i], - "VDPAURegisterSurfaceNV"); + tex = _mesa_lookup_texture(ctx, textureNames[i]); if (tex == NULL) { free(surf); + _mesa_error(ctx, GL_INVALID_OPERATION, + "VDPAURegisterSurfaceNV(texture ID not found)"); return (GLintptr)NULL; } @@ -163,10 +163,9 @@ register_surface(struct gl_context *ctx, GLboolean isOutput, return (GLintptr)NULL; } - if (tex->Target == 0) { + if (tex->Target == 0) tex->Target = target; - tex->TargetIndex = _mesa_tex_target_to_index(ctx, target); - } else if (tex->Target != target) { + else if (tex->Target != target) { _mesa_unlock_texture(ctx, tex); free(surf); _mesa_error(ctx, GL_INVALID_OPERATION, diff --git a/lib/mesa/src/mesa/main/viewport.h b/lib/mesa/src/mesa/main/viewport.h index f974da5d6..b0675db10 100644 --- a/lib/mesa/src/mesa/main/viewport.h +++ b/lib/mesa/src/mesa/main/viewport.h @@ -31,28 +31,15 @@ struct gl_context; -void GLAPIENTRY -_mesa_Viewport_no_error(GLint x, GLint y, GLsizei width, GLsizei height); - extern void GLAPIENTRY _mesa_Viewport(GLint x, GLint y, GLsizei width, GLsizei height); -void GLAPIENTRY -_mesa_ViewportArrayv_no_error(GLuint first, GLsizei count, const GLfloat * v); - extern void GLAPIENTRY _mesa_ViewportArrayv(GLuint first, GLsizei count, const GLfloat * v); -void GLAPIENTRY -_mesa_ViewportIndexedf_no_error(GLuint index, GLfloat x, GLfloat y, GLfloat w, - GLfloat h); - extern void GLAPIENTRY _mesa_ViewportIndexedf(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); -void GLAPIENTRY -_mesa_ViewportIndexedfv_no_error(GLuint index, const GLfloat * v); - extern void GLAPIENTRY _mesa_ViewportIndexedfv(GLuint index, const GLfloat * v); @@ -71,17 +58,8 @@ extern void GLAPIENTRY _mesa_DepthRangeArrayv(GLuint first, GLsizei count, const GLclampd * v); extern void GLAPIENTRY -_mesa_DepthRangeArrayfvOES(GLuint first, GLsizei count, const GLfloat * v); - -void GLAPIENTRY -_mesa_DepthRangeIndexed_no_error(GLuint index, GLclampd n, GLclampd f); - -extern void GLAPIENTRY _mesa_DepthRangeIndexed(GLuint index, GLclampd n, GLclampd f); -extern void GLAPIENTRY -_mesa_DepthRangeIndexedfOES(GLuint index, GLfloat n, GLfloat f); - extern void _mesa_set_depth_range(struct gl_context *ctx, unsigned idx, GLclampd nearval, GLclampd farval); @@ -90,9 +68,6 @@ extern void _mesa_init_viewport(struct gl_context *ctx); -void GLAPIENTRY -_mesa_ClipControl_no_error(GLenum origin, GLenum depth); - extern void GLAPIENTRY _mesa_ClipControl(GLenum origin, GLenum depth); diff --git a/lib/mesa/src/mesa/main/vtxfmt.c b/lib/mesa/src/mesa/main/vtxfmt.c index d3c83e5eb..81bf4c589 100644 --- a/lib/mesa/src/mesa/main/vtxfmt.c +++ b/lib/mesa/src/mesa/main/vtxfmt.c @@ -217,10 +217,6 @@ install_vtxfmt(struct gl_context *ctx, struct _glapi_table *tab, SET_VertexAttribL2dv(tab, vfmt->VertexAttribL2dv); SET_VertexAttribL3dv(tab, vfmt->VertexAttribL3dv); SET_VertexAttribL4dv(tab, vfmt->VertexAttribL4dv); - - /* GL_ARB_bindless_texture */ - SET_VertexAttribL1ui64ARB(tab, vfmt->VertexAttribL1ui64ARB); - SET_VertexAttribL1ui64vARB(tab, vfmt->VertexAttribL1ui64vARB); } } diff --git a/lib/mesa/src/mesa/math/m_debug_util.h b/lib/mesa/src/mesa/math/m_debug_util.h index 495978509..25ee029ce 100644 --- a/lib/mesa/src/mesa/math/m_debug_util.h +++ b/lib/mesa/src/mesa/math/m_debug_util.h @@ -216,7 +216,7 @@ extern char *mesa_profile; x = LONG_MAX; \ for ( cycle_i = 0 ; cycle_i < 10 ; cycle_i++ ) { \ unsigned long cycle_tmp1, cycle_tmp2; \ - rdtscll(cycle_tmp1); + rdtscll(cycle_tmp1); \ #define END_RACE(x) \ rdtscll(cycle_tmp2); \ diff --git a/lib/mesa/src/mesa/program/prog_parameter.h b/lib/mesa/src/mesa/program/prog_parameter.h index f50e99c8a..74a5fd918 100644 --- a/lib/mesa/src/mesa/program/prog_parameter.h +++ b/lib/mesa/src/mesa/program/prog_parameter.h @@ -34,7 +34,6 @@ #include "main/mtypes.h" #include "prog_statevars.h" -#include <string.h> #ifdef __cplusplus extern "C" { @@ -69,6 +68,7 @@ struct gl_program_parameter * The next program parameter's Size will be Size-4 of this parameter. */ GLuint Size; + GLboolean Initialized; /**< debug: Has the ParameterValue[] been set? */ /** * A sequence of STATE_* tokens and integers to identify GL state. */ @@ -99,9 +99,18 @@ _mesa_new_parameter_list_sized(unsigned size); extern void _mesa_free_parameter_list(struct gl_program_parameter_list *paramList); -extern void -_mesa_reserve_parameter_storage(struct gl_program_parameter_list *paramList, - unsigned reserve_slots); +extern struct gl_program_parameter_list * +_mesa_clone_parameter_list(const struct gl_program_parameter_list *list); + +extern struct gl_program_parameter_list * +_mesa_combine_parameter_lists(const struct gl_program_parameter_list *a, + const struct gl_program_parameter_list *b); + +static inline GLuint +_mesa_num_parameters(const struct gl_program_parameter_list *list) +{ + return list ? list->NumParameters : 0; +} extern GLint _mesa_add_parameter(struct gl_program_parameter_list *paramList, @@ -115,36 +124,23 @@ _mesa_add_typed_unnamed_constant(struct gl_program_parameter_list *paramList, const gl_constant_value values[4], GLuint size, GLenum datatype, GLuint *swizzleOut); -static inline GLint +extern GLint _mesa_add_unnamed_constant(struct gl_program_parameter_list *paramList, const gl_constant_value values[4], GLuint size, - GLuint *swizzleOut) -{ - return _mesa_add_typed_unnamed_constant(paramList, values, size, GL_NONE, - swizzleOut); -} + GLuint *swizzleOut); extern GLint _mesa_add_state_reference(struct gl_program_parameter_list *paramList, const gl_state_index stateTokens[STATE_LENGTH]); - -static inline GLint +extern GLint _mesa_lookup_parameter_index(const struct gl_program_parameter_list *paramList, - const char *name) -{ - if (!paramList) - return -1; - - /* name must be null-terminated */ - for (GLint i = 0; i < (GLint) paramList->NumParameters; i++) { - if (paramList->Parameters[i].Name && - strcmp(paramList->Parameters[i].Name, name) == 0) - return i; - } + GLsizei nameLen, const char *name); - return -1; -} +extern GLboolean +_mesa_lookup_parameter_constant(const struct gl_program_parameter_list *list, + const gl_constant_value v[], GLuint vSize, + GLint *posOut, GLuint *swizzleOut); #ifdef __cplusplus } diff --git a/lib/mesa/src/mesa/sparc/sparc_matrix.h b/lib/mesa/src/mesa/sparc/sparc_matrix.h index 6ef0acde6..f677d9bda 100644 --- a/lib/mesa/src/mesa/sparc/sparc_matrix.h +++ b/lib/mesa/src/mesa/sparc/sparc_matrix.h @@ -151,7 +151,7 @@ #define LDMATRIX_0_5_10(BASE) \ ld [BASE + ( 0 * 0x4)], M0; \ ld [BASE + ( 5 * 0x4)], M5; \ - ld [BASE + (10 * 0x4)], M10; + ld [BASE + (10 * 0x4)], M10; \ #define LDMATRIX_0_5_10_12_13_14(BASE) \ ld [BASE + ( 0 * 0x4)], M0; \ diff --git a/lib/mesa/src/mesa/state_tracker/st_atom_constbuf.h b/lib/mesa/src/mesa/state_tracker/st_atom_constbuf.h index e810a24fe..9b3f84455 100644 --- a/lib/mesa/src/mesa/state_tracker/st_atom_constbuf.h +++ b/lib/mesa/src/mesa/state_tracker/st_atom_constbuf.h @@ -29,13 +29,13 @@ #ifndef ST_ATOM_CONSTBUF_H #define ST_ATOM_CONSTBUF_H -#include "compiler/shader_enums.h" - struct gl_program_parameter_list; struct st_context; -void st_upload_constants(struct st_context *st, struct gl_program *prog); +void st_upload_constants( struct st_context *st, + struct gl_program_parameter_list *params, + unsigned id); #endif /* ST_ATOM_CONSTBUF_H */ diff --git a/lib/mesa/src/mesa/state_tracker/st_atom_depth.c b/lib/mesa/src/mesa/state_tracker/st_atom_depth.c index 3b2beaf6e..d9cc97029 100644 --- a/lib/mesa/src/mesa/state_tracker/st_atom_depth.c +++ b/lib/mesa/src/mesa/state_tracker/st_atom_depth.c @@ -95,8 +95,8 @@ gl_stencil_op_to_pipe(GLenum func) } } -void -st_update_depth_stencil_alpha(struct st_context *st) +static void +update_depth_stencil_alpha(struct st_context *st) { struct pipe_depth_stencil_alpha_state *dsa = &st->state.depth_stencil; struct pipe_stencil_ref sr; @@ -128,7 +128,7 @@ st_update_depth_stencil_alpha(struct st_context *st) dsa->stencil[0].writemask = ctx->Stencil.WriteMask[0] & 0xff; sr.ref_value[0] = _mesa_get_stencil_ref(ctx, 0); - if (_mesa_stencil_is_two_sided(ctx)) { + if (ctx->Stencil._TestTwoSide) { const GLuint back = ctx->Stencil._BackFace; dsa->stencil[1].enabled = 1; dsa->stencil[1].func = st_compare_func_to_pipe(ctx->Stencil.Function[back]); @@ -149,8 +149,7 @@ st_update_depth_stencil_alpha(struct st_context *st) } } - if (ctx->Color.AlphaEnabled && - !(ctx->DrawBuffer->_IntegerBuffers & 0x1)) { + if (ctx->Color.AlphaEnabled) { dsa->alpha.enabled = 1; dsa->alpha.func = st_compare_func_to_pipe(ctx->Color.AlphaFunc); dsa->alpha.ref_value = ctx->Color.AlphaRefUnclamped; @@ -159,3 +158,13 @@ st_update_depth_stencil_alpha(struct st_context *st) cso_set_depth_stencil_alpha(st->cso_context, dsa); cso_set_stencil_ref(st->cso_context, &sr); } + + +const struct st_tracked_state st_update_depth_stencil_alpha = { + "st_update_depth_stencil", /* name */ + { /* dirty */ + (_NEW_DEPTH|_NEW_STENCIL|_NEW_COLOR|_NEW_BUFFERS),/* mesa */ + 0, /* st */ + }, + update_depth_stencil_alpha /* update */ +}; diff --git a/lib/mesa/src/mesa/state_tracker/st_atom_msaa.c b/lib/mesa/src/mesa/state_tracker/st_atom_msaa.c index 814077faa..703cb5e75 100644 --- a/lib/mesa/src/mesa/state_tracker/st_atom_msaa.c +++ b/lib/mesa/src/mesa/state_tracker/st_atom_msaa.c @@ -33,18 +33,20 @@ #include "st_program.h" #include "cso_cache/cso_context.h" -#include "main/framebuffer.h" +#include "util/u_framebuffer.h" -/* Update the sample mask for MSAA. +/* Second state atom for user clip planes: */ -void st_update_sample_mask( struct st_context *st ) +static void update_sample_mask( struct st_context *st ) { unsigned sample_mask = 0xffffffff; - unsigned sample_count = st->state.fb_num_samples; + struct pipe_framebuffer_state *framebuffer = &st->state.framebuffer; + /* dependency here on bound surface (or rather, sample count) is worrying */ + unsigned sample_count = util_framebuffer_get_num_samples(framebuffer); - if (_mesa_is_multisample_enabled(st->ctx) && sample_count > 1) { - /* unlike in gallium/d3d10 the mask is only active if msaa is enabled */ + if (st->ctx->Multisample.Enabled && sample_count > 1) { + /* unlike in gallium/d3d10 the mask is only active if msaa is enabled */ if (st->ctx->Multisample.SampleCoverage) { unsigned nr_bits; nr_bits = (unsigned) @@ -52,7 +54,7 @@ void st_update_sample_mask( struct st_context *st ) /* there's lot of ways how to do this. We just use first few bits, since we have no knowledge of sample positions here. When app-supplied mask though is used too might need to be smarter. - Also, there's an interface restriction here in theory it is + Also, there's a interface restriction here in theory it is encouraged this mask not be the same at each pixel. */ sample_mask = (1 << nr_bits) - 1; if (st->ctx->Multisample.SampleCoverageInvert) @@ -62,10 +64,15 @@ void st_update_sample_mask( struct st_context *st ) sample_mask &= st->ctx->Multisample.SampleMaskValue; } - cso_set_sample_mask(st->cso_context, sample_mask); + /* mask off unused bits or don't care? */ + + if (sample_mask != st->state.sample_mask) { + st->state.sample_mask = sample_mask; + cso_set_sample_mask(st->cso_context, sample_mask); + } } -void st_update_sample_shading( struct st_context *st ) +static void update_sample_shading( struct st_context *st ) { if (!st->fp) return; @@ -77,3 +84,21 @@ void st_update_sample_shading( struct st_context *st ) st->cso_context, _mesa_get_min_invocations_per_fragment(st->ctx, &st->fp->Base, false)); } + +const struct st_tracked_state st_update_msaa = { + "st_update_msaa", /* name */ + { /* dirty */ + (_NEW_MULTISAMPLE | _NEW_BUFFERS), /* mesa */ + ST_NEW_FRAMEBUFFER, /* st */ + }, + update_sample_mask /* update */ +}; + +const struct st_tracked_state st_update_sample_shading = { + "st_update_sample_shading", /* name */ + { /* dirty */ + (_NEW_MULTISAMPLE | _NEW_PROGRAM | _NEW_BUFFERS), /* mesa */ + ST_NEW_FRAGMENT_PROGRAM | ST_NEW_FRAMEBUFFER, /* st */ + }, + update_sample_shading /* update */ +}; diff --git a/lib/mesa/src/mesa/state_tracker/st_atom_pixeltransfer.c b/lib/mesa/src/mesa/state_tracker/st_atom_pixeltransfer.c index 9b9903607..a04163cc1 100644 --- a/lib/mesa/src/mesa/state_tracker/st_atom_pixeltransfer.c +++ b/lib/mesa/src/mesa/state_tracker/st_atom_pixeltransfer.c @@ -25,18 +25,65 @@ * **************************************************************************/ -/* Authors: +/* + * Generate fragment programs to implement pixel transfer ops, such as + * scale/bias, colortable, convolution... + * + * Authors: * Brian Paul */ +#include "main/imports.h" +#include "main/image.h" +#include "main/macros.h" +#include "program/program.h" +#include "program/prog_cache.h" +#include "program/prog_instruction.h" +#include "program/prog_parameter.h" +#include "program/prog_print.h" + #include "st_context.h" -#include "st_sampler_view.h" +#include "st_format.h" #include "st_texture.h" +#include "pipe/p_screen.h" +#include "pipe/p_context.h" #include "util/u_inlines.h" #include "util/u_pack_color.h" +struct state_key +{ + GLuint scaleAndBias:1; + GLuint pixelMaps:1; + +#if 0 + GLfloat Maps[3][256][4]; + int NumMaps; + GLint NumStages; + pipeline_stage Stages[STAGE_MAX]; + GLboolean StagesUsed[STAGE_MAX]; + GLfloat Scale1[4], Bias1[4]; + GLfloat Scale2[4], Bias2[4]; +#endif +}; + +static void +make_state_key(struct gl_context *ctx, struct state_key *key) +{ + memset(key, 0, sizeof(*key)); + + if (ctx->Pixel.RedBias != 0.0 || ctx->Pixel.RedScale != 1.0 || + ctx->Pixel.GreenBias != 0.0 || ctx->Pixel.GreenScale != 1.0 || + ctx->Pixel.BlueBias != 0.0 || ctx->Pixel.BlueScale != 1.0 || + ctx->Pixel.AlphaBias != 0.0 || ctx->Pixel.AlphaScale != 1.0) { + key->scaleAndBias = 1; + } + + key->pixelMaps = ctx->Pixel.MapColorFlag; +} + + /** * Update the pixelmap texture with the contents of the R/G/B/A pixel maps. */ @@ -81,15 +128,74 @@ load_color_map_texture(struct gl_context *ctx, struct pipe_resource *pt) pipe_transfer_unmap(pipe, transfer); } + + +#define MAX_INST 100 + /** - * Upload the pixel transfer color map texture. + * Returns a fragment program which implements the current pixel transfer ops. */ -void -st_update_pixel_transfer(struct st_context *st) +static struct gl_fragment_program * +get_pixel_transfer_program(struct gl_context *ctx, const struct state_key *key) { - struct gl_context *ctx = st->ctx; + struct st_context *st = st_context(ctx); + struct prog_instruction inst[MAX_INST]; + struct gl_program_parameter_list *params; + struct gl_fragment_program *fp; + GLuint ic = 0; + const GLuint colorTemp = 0; + + fp = (struct gl_fragment_program *) + ctx->Driver.NewProgram(ctx, GL_FRAGMENT_PROGRAM_ARB, 0); + if (!fp) + return NULL; + + params = _mesa_new_parameter_list(); + + /* + * Get initial pixel color from the texture. + * TEX colorTemp, fragment.texcoord[0], texture[0], 2D; + */ + _mesa_init_instructions(inst + ic, 1); + inst[ic].Opcode = OPCODE_TEX; + inst[ic].DstReg.File = PROGRAM_TEMPORARY; + inst[ic].DstReg.Index = colorTemp; + inst[ic].SrcReg[0].File = PROGRAM_INPUT; + inst[ic].SrcReg[0].Index = VARYING_SLOT_TEX0; + inst[ic].TexSrcUnit = 0; + inst[ic].TexSrcTarget = TEXTURE_2D_INDEX; + ic++; + fp->Base.InputsRead = BITFIELD64_BIT(VARYING_SLOT_TEX0); + fp->Base.OutputsWritten = BITFIELD64_BIT(FRAG_RESULT_COLOR); + fp->Base.SamplersUsed = 0x1; /* sampler 0 (bit 0) is used */ + + if (key->scaleAndBias) { + static const gl_state_index scale_state[STATE_LENGTH] = + { STATE_INTERNAL, STATE_PT_SCALE, 0, 0, 0 }; + static const gl_state_index bias_state[STATE_LENGTH] = + { STATE_INTERNAL, STATE_PT_BIAS, 0, 0, 0 }; + GLint scale_p, bias_p; + + scale_p = _mesa_add_state_reference(params, scale_state); + bias_p = _mesa_add_state_reference(params, bias_state); + + /* MAD colorTemp, colorTemp, scale, bias; */ + _mesa_init_instructions(inst + ic, 1); + inst[ic].Opcode = OPCODE_MAD; + inst[ic].DstReg.File = PROGRAM_TEMPORARY; + inst[ic].DstReg.Index = colorTemp; + inst[ic].SrcReg[0].File = PROGRAM_TEMPORARY; + inst[ic].SrcReg[0].Index = colorTemp; + inst[ic].SrcReg[1].File = PROGRAM_STATE_VAR; + inst[ic].SrcReg[1].Index = scale_p; + inst[ic].SrcReg[2].File = PROGRAM_STATE_VAR; + inst[ic].SrcReg[2].Index = bias_p; + ic++; + } + + if (key->pixelMaps) { + const GLuint temp = 1; - if (ctx->Pixel.MapColorFlag) { /* create the colormap/texture now if not already done */ if (!st->pixel_xfer.pixelmap_texture) { st->pixel_xfer.pixelmap_texture = st_create_color_map_texture(ctx); @@ -97,6 +203,122 @@ st_update_pixel_transfer(struct st_context *st) st_create_texture_sampler_view(st->pipe, st->pixel_xfer.pixelmap_texture); } + + /* with a little effort, we can do four pixel map look-ups with + * two TEX instructions: + */ + + /* TEX temp.rg, colorTemp.rgba, texture[1], 2D; */ + _mesa_init_instructions(inst + ic, 1); + inst[ic].Opcode = OPCODE_TEX; + inst[ic].DstReg.File = PROGRAM_TEMPORARY; + inst[ic].DstReg.Index = temp; + inst[ic].DstReg.WriteMask = WRITEMASK_XY; /* write R,G */ + inst[ic].SrcReg[0].File = PROGRAM_TEMPORARY; + inst[ic].SrcReg[0].Index = colorTemp; + inst[ic].TexSrcUnit = 1; + inst[ic].TexSrcTarget = TEXTURE_2D_INDEX; + ic++; + + /* TEX temp.ba, colorTemp.baba, texture[1], 2D; */ + _mesa_init_instructions(inst + ic, 1); + inst[ic].Opcode = OPCODE_TEX; + inst[ic].DstReg.File = PROGRAM_TEMPORARY; + inst[ic].DstReg.Index = temp; + inst[ic].DstReg.WriteMask = WRITEMASK_ZW; /* write B,A */ + inst[ic].SrcReg[0].File = PROGRAM_TEMPORARY; + inst[ic].SrcReg[0].Index = colorTemp; + inst[ic].SrcReg[0].Swizzle = MAKE_SWIZZLE4(SWIZZLE_Z, SWIZZLE_W, + SWIZZLE_Z, SWIZZLE_W); + inst[ic].TexSrcUnit = 1; + inst[ic].TexSrcTarget = TEXTURE_2D_INDEX; + ic++; + + /* MOV colorTemp, temp; */ + _mesa_init_instructions(inst + ic, 1); + inst[ic].Opcode = OPCODE_MOV; + inst[ic].DstReg.File = PROGRAM_TEMPORARY; + inst[ic].DstReg.Index = colorTemp; + inst[ic].SrcReg[0].File = PROGRAM_TEMPORARY; + inst[ic].SrcReg[0].Index = temp; + ic++; + + fp->Base.SamplersUsed |= (1 << 1); /* sampler 1 is used */ + } + + /* Modify last instruction's dst reg to write to result.color */ + { + struct prog_instruction *last = &inst[ic - 1]; + last->DstReg.File = PROGRAM_OUTPUT; + last->DstReg.Index = FRAG_RESULT_COLOR; + } + + /* END; */ + _mesa_init_instructions(inst + ic, 1); + inst[ic].Opcode = OPCODE_END; + ic++; + + assert(ic <= MAX_INST); + + + fp->Base.Instructions = _mesa_alloc_instructions(ic); + if (!fp->Base.Instructions) { + _mesa_error(ctx, GL_OUT_OF_MEMORY, + "generating pixel transfer program"); + _mesa_free_parameter_list(params); + return NULL; + } + + _mesa_copy_instructions(fp->Base.Instructions, inst, ic); + fp->Base.NumInstructions = ic; + fp->Base.Parameters = params; + +#if 0 + printf("========= pixel transfer prog\n"); + _mesa_print_program(&fp->Base); + _mesa_print_parameter_list(fp->Base.Parameters); +#endif + + return fp; +} + + + +/** + * Update st->pixel_xfer.program in response to new pixel-transfer state. + */ +static void +update_pixel_transfer(struct st_context *st) +{ + struct gl_context *ctx = st->ctx; + struct state_key key; + struct gl_fragment_program *fp; + + make_state_key(st->ctx, &key); + + fp = (struct gl_fragment_program *) + _mesa_search_program_cache(st->pixel_xfer.cache, &key, sizeof(key)); + if (!fp) { + fp = get_pixel_transfer_program(st->ctx, &key); + _mesa_program_cache_insert(st->ctx, st->pixel_xfer.cache, + &key, sizeof(key), &fp->Base); + } + + if (ctx->Pixel.MapColorFlag) { load_color_map_texture(ctx, st->pixel_xfer.pixelmap_texture); } + st->pixel_xfer.pixelmap_enabled = ctx->Pixel.MapColorFlag; + + st->pixel_xfer.program = (struct st_fragment_program *) fp; } + + + +const struct st_tracked_state st_update_pixel_transfer = { + "st_update_pixel_transfer", /* name */ + { /* dirty */ + _NEW_PIXEL, /* mesa */ + 0, /* st */ + }, + update_pixel_transfer /* update */ +}; diff --git a/lib/mesa/src/mesa/state_tracker/st_atom_scissor.c b/lib/mesa/src/mesa/state_tracker/st_atom_scissor.c index a87d02941..4ebe799e3 100644 --- a/lib/mesa/src/mesa/state_tracker/st_atom_scissor.c +++ b/lib/mesa/src/mesa/state_tracker/st_atom_scissor.c @@ -32,7 +32,6 @@ #include "main/macros.h" -#include "main/framebuffer.h" #include "st_context.h" #include "pipe/p_context.h" #include "st_atom.h" @@ -41,23 +40,20 @@ /** * Scissor depends on the scissor box, and the framebuffer dimensions. */ -void -st_update_scissor( struct st_context *st ) +static void +update_scissor( struct st_context *st ) { struct pipe_scissor_state scissor[PIPE_MAX_VIEWPORTS]; const struct gl_context *ctx = st->ctx; const struct gl_framebuffer *fb = ctx->DrawBuffer; - const unsigned int fb_width = _mesa_geometric_width(fb); - const unsigned int fb_height = _mesa_geometric_height(fb); GLint miny, maxy; unsigned i; bool changed = false; - - for (i = 0 ; i < st->state.num_viewports; i++) { + for (i = 0 ; i < ctx->Const.MaxViewports; i++) { scissor[i].minx = 0; scissor[i].miny = 0; - scissor[i].maxx = fb_width; - scissor[i].maxy = fb_height; + scissor[i].maxx = fb->Width; + scissor[i].maxy = fb->Height; if (ctx->Scissor.EnableFlags & (1 << i)) { /* need to be careful here with xmax or ymax < 0 */ @@ -82,7 +78,7 @@ st_update_scissor( struct st_context *st ) /* Now invert Y if needed. * Gallium drivers use the convention Y=0=top for surfaces. */ - if (st->state.fb_orientation == Y_0_TOP) { + if (st_fb_orientation(fb) == Y_0_TOP) { miny = fb->Height - scissor[i].maxy; maxy = fb->Height - scissor[i].miny; scissor[i].miny = miny; @@ -95,51 +91,16 @@ st_update_scissor( struct st_context *st ) changed = true; } } - - if (changed) { - struct pipe_context *pipe = st->pipe; - - pipe->set_scissor_states(pipe, 0, st->state.num_viewports, scissor); - } + if (changed) + st->pipe->set_scissor_states(st->pipe, 0, ctx->Const.MaxViewports, scissor); /* activate */ } -void -st_update_window_rectangles(struct st_context *st) -{ - struct pipe_scissor_state new_rects[PIPE_MAX_WINDOW_RECTANGLES]; - const struct gl_context *ctx = st->ctx; - const struct gl_scissor_attrib *scissor = &ctx->Scissor; - unsigned i; - bool changed = false; - unsigned num_rects = scissor->NumWindowRects; - bool include = scissor->WindowRectMode == GL_INCLUSIVE_EXT; - if (ctx->DrawBuffer == ctx->WinSysDrawBuffer) { - num_rects = 0; - include = false; - } - for (i = 0; i < num_rects; i++) { - const struct gl_scissor_rect *rect = &scissor->WindowRects[i]; - new_rects[i].minx = MAX2(rect->X, 0); - new_rects[i].miny = MAX2(rect->Y, 0); - new_rects[i].maxx = MAX2(rect->X + rect->Width, 0); - new_rects[i].maxy = MAX2(rect->Y + rect->Height, 0); - } - if (num_rects > 0 && memcmp(new_rects, st->state.window_rects.rects, - num_rects * sizeof(struct pipe_scissor_state))) { - memcpy(st->state.window_rects.rects, new_rects, - num_rects * sizeof(struct pipe_scissor_state)); - changed = true; - } - if (st->state.window_rects.num != num_rects) { - st->state.window_rects.num = num_rects; - changed = true; - } - if (st->state.window_rects.include != include) { - st->state.window_rects.include = include; - changed = true; - } - if (changed) - st->pipe->set_window_rectangles( - st->pipe, include, num_rects, new_rects); -} +const struct st_tracked_state st_update_scissor = { + "st_update_scissor", /* name */ + { /* dirty */ + (_NEW_SCISSOR | _NEW_BUFFERS), /* mesa */ + 0, /* st */ + }, + update_scissor /* update */ +}; diff --git a/lib/mesa/src/mesa/state_tracker/st_atom_stipple.c b/lib/mesa/src/mesa/state_tracker/st_atom_stipple.c index 87599f94d..3918a1e49 100644 --- a/lib/mesa/src/mesa/state_tracker/st_atom_stipple.c +++ b/lib/mesa/src/mesa/state_tracker/st_atom_stipple.c @@ -60,9 +60,9 @@ invert_stipple(GLuint dest[32], const GLuint src[32], GLuint winHeight) } -/** Update the stipple when the pattern or window height changes */ -void -st_update_polygon_stipple( struct st_context *st ) + +static void +update_stipple( struct st_context *st ) { const struct gl_context *ctx = st->ctx; const GLuint sz = sizeof(st->state.poly_stipple); @@ -74,13 +74,21 @@ st_update_polygon_stipple( struct st_context *st ) memcpy(st->state.poly_stipple, ctx->PolygonStipple, sz); - if (_mesa_is_user_fbo(ctx->DrawBuffer)) { - memcpy(newStipple.stipple, ctx->PolygonStipple, sizeof(newStipple.stipple)); - } else { - invert_stipple(newStipple.stipple, ctx->PolygonStipple, - ctx->DrawBuffer->Height); - } + invert_stipple(newStipple.stipple, ctx->PolygonStipple, + ctx->DrawBuffer->Height); st->pipe->set_polygon_stipple(st->pipe, &newStipple); } } + + +/** Update the stipple when the pattern or window height changes */ +const struct st_tracked_state st_update_polygon_stipple = { + "st_update_polygon_stipple", /* name */ + { /* dirty */ + (_NEW_POLYGONSTIPPLE | + _NEW_BUFFERS), /* mesa */ + 0, /* st */ + }, + update_stipple /* update */ +}; diff --git a/lib/mesa/src/mesa/state_tracker/st_atom_tess.c b/lib/mesa/src/mesa/state_tracker/st_atom_tess.c index 6cf3ff733..8e6287a90 100644 --- a/lib/mesa/src/mesa/state_tracker/st_atom_tess.c +++ b/lib/mesa/src/mesa/state_tracker/st_atom_tess.c @@ -37,8 +37,8 @@ #include "st_atom.h" -void -st_update_tess(struct st_context *st) +static void +update_tess(struct st_context *st) { const struct gl_context *ctx = st->ctx; struct pipe_context *pipe = st->pipe; @@ -50,3 +50,13 @@ st_update_tess(struct st_context *st) ctx->TessCtrlProgram.patch_default_outer_level, ctx->TessCtrlProgram.patch_default_inner_level); } + + +const struct st_tracked_state st_update_tess = { + "update_tess", /* name */ + { /* dirty */ + 0, /* mesa */ + ST_NEW_TESS_STATE, /* st */ + }, + update_tess /* update */ +}; diff --git a/lib/mesa/src/mesa/state_tracker/st_atom_viewport.c b/lib/mesa/src/mesa/state_tracker/st_atom_viewport.c index 6e3347e7c..9a692ceca 100644 --- a/lib/mesa/src/mesa/state_tracker/st_atom_viewport.c +++ b/lib/mesa/src/mesa/state_tracker/st_atom_viewport.c @@ -39,34 +39,54 @@ * - depthrange * - window pos/size or FBO size */ -void -st_update_viewport( struct st_context *st ) +static void +update_viewport( struct st_context *st ) { struct gl_context *ctx = st->ctx; + GLfloat yScale, yBias; unsigned i; + /* _NEW_BUFFERS + */ + if (st_fb_orientation(ctx->DrawBuffer) == Y_0_TOP) { + /* Drawing to a window. The corresponding gallium surface uses + * Y=0=TOP but OpenGL is Y=0=BOTTOM. So we need to invert the viewport. + */ + yScale = -1; + yBias = (GLfloat)ctx->DrawBuffer->Height; + } + else { + /* Drawing to an FBO where Y=0=BOTTOM, like OpenGL - don't invert */ + yScale = 1.0; + yBias = 0.0; + } /* _NEW_VIEWPORT */ - for (i = 0; i < st->state.num_viewports; i++) { - float *scale = st->state.viewport[i].scale; - float *translate = st->state.viewport[i].translate; - + for (i = 0; i < ctx->Const.MaxViewports; i++) + { + float scale[3], translate[3]; _mesa_get_viewport_xform(ctx, i, scale, translate); - /* _NEW_BUFFERS */ - /* Drawing to a window where the coordinate system is upside down. */ - if (st->state.fb_orientation == Y_0_TOP) { - scale[1] *= -1; - translate[1] = st->state.fb_height - translate[1]; - } + st->state.viewport[i].scale[0] = scale[0]; + st->state.viewport[i].scale[1] = scale[1] * yScale; + st->state.viewport[i].scale[2] = scale[2]; + + st->state.viewport[i].translate[0] = translate[0]; + st->state.viewport[i].translate[1] = translate[1] * yScale + yBias; + st->state.viewport[i].translate[2] = translate[2]; } cso_set_viewport(st->cso_context, &st->state.viewport[0]); + if (ctx->Const.MaxViewports > 1) + st->pipe->set_viewport_states(st->pipe, 1, ctx->Const.MaxViewports - 1, &st->state.viewport[1]); +} - if (st->state.num_viewports > 1) { - struct pipe_context *pipe = st->pipe; - pipe->set_viewport_states(pipe, 1, st->state.num_viewports - 1, - &st->state.viewport[1]); - } -} +const struct st_tracked_state st_update_viewport = { + "st_update_viewport", /* name */ + { /* dirty */ + _NEW_BUFFERS | _NEW_VIEWPORT, /* mesa */ + 0, /* st */ + }, + update_viewport /* update */ +}; diff --git a/lib/mesa/src/mesa/state_tracker/st_cb_strings.c b/lib/mesa/src/mesa/state_tracker/st_cb_strings.c index 85fe5a7ef..fc48fd05e 100644 --- a/lib/mesa/src/mesa/state_tracker/st_cb_strings.c +++ b/lib/mesa/src/mesa/state_tracker/st_cb_strings.c @@ -39,6 +39,8 @@ #include "st_context.h" #include "st_cb_strings.h" +#define ST_VERSION_STRING "0.4" + static const GLubyte * st_get_string(struct gl_context * ctx, GLenum name) { @@ -47,11 +49,17 @@ st_get_string(struct gl_context * ctx, GLenum name) switch (name) { case GL_VENDOR: { - return (GLubyte *) screen->get_vendor(screen); + const char *vendor = screen->get_vendor( screen ); + util_snprintf(st->vendor, sizeof(st->vendor), "%s", vendor); + return (GLubyte *) st->vendor; } case GL_RENDERER: - return (GLubyte *) screen->get_name(screen); + util_snprintf(st->renderer, sizeof(st->renderer), "Gallium %s on %s", + ST_VERSION_STRING, + screen->get_name( screen )); + + return (GLubyte *) st->renderer; default: return NULL; diff --git a/lib/mesa/src/mesa/swrast/s_triangle.c b/lib/mesa/src/mesa/swrast/s_triangle.c index a4113e558..876a74b08 100644 --- a/lib/mesa/src/mesa/swrast/s_triangle.c +++ b/lib/mesa/src/mesa/swrast/s_triangle.c @@ -36,7 +36,6 @@ #include "main/mtypes.h" #include "main/state.h" #include "main/samplerobj.h" -#include "main/stencil.h" #include "main/teximage.h" #include "program/prog_instruction.h" @@ -1024,7 +1023,7 @@ _swrast_choose_triangle( struct gl_context *ctx ) ctx->Depth.Test && ctx->Depth.Mask == GL_FALSE && ctx->Depth.Func == GL_LESS && - !_mesa_stencil_is_enabled(ctx) && + !ctx->Stencil._Enabled && depthRb && depthRb->Format == MESA_FORMAT_Z_UNORM16) { if (ctx->Color.ColorMask[0][0] == 0 && @@ -1042,7 +1041,7 @@ _swrast_choose_triangle( struct gl_context *ctx ) */ if (ctx->Texture._EnabledCoordUnits || _swrast_use_fragment_program(ctx) || - _mesa_ati_fragment_shader_enabled(ctx) || + ctx->ATIFragmentShader._Enabled || _mesa_need_secondary_color(ctx) || swrast->_FogEnabled) { /* Ugh, we do a _lot_ of tests to pick the best textured tri func */ @@ -1071,7 +1070,7 @@ _swrast_choose_triangle( struct gl_context *ctx ) /* First see if we can use an optimized 2-D texture function */ if (ctx->Texture._EnabledCoordUnits == 0x1 && !_swrast_use_fragment_program(ctx) - && !_mesa_ati_fragment_shader_enabled(ctx) + && !ctx->ATIFragmentShader._Enabled && ctx->Texture._MaxEnabledTexImageUnit == 0 && ctx->Texture.Unit[0]._Current->Target == GL_TEXTURE_2D && samp->WrapS == GL_REPEAT diff --git a/lib/mesa/src/mesa/swrast_setup/ss_context.c b/lib/mesa/src/mesa/swrast_setup/ss_context.c index ec20d6c35..74b1da342 100644 --- a/lib/mesa/src/mesa/swrast_setup/ss_context.c +++ b/lib/mesa/src/mesa/swrast_setup/ss_context.c @@ -28,7 +28,6 @@ #include "main/glheader.h" #include "main/imports.h" #include "main/macros.h" -#include "main/state.h" #include "tnl/tnl.h" #include "tnl/t_context.h" #include "tnl/t_pipeline.h" @@ -114,7 +113,7 @@ setup_vertex_format(struct gl_context *ctx) TNLcontext *tnl = TNL_CONTEXT(ctx); SScontext *swsetup = SWSETUP_CONTEXT(ctx); GLboolean intColors = !ctx->FragmentProgram._Current - && !_mesa_ati_fragment_shader_enabled(ctx) + && !ctx->ATIFragmentShader._Enabled && ctx->RenderMode == GL_RENDER && CHAN_TYPE != GL_FLOAT; diff --git a/lib/mesa/src/mesa/swrast_setup/ss_triangle.c b/lib/mesa/src/mesa/swrast_setup/ss_triangle.c index d3a0e2310..b92c20be2 100644 --- a/lib/mesa/src/mesa/swrast_setup/ss_triangle.c +++ b/lib/mesa/src/mesa/swrast_setup/ss_triangle.c @@ -29,8 +29,6 @@ #include "main/glheader.h" #include "main/macros.h" #include "main/mtypes.h" -#include "main/stencil.h" -#include "main/state.h" #include "tnl/t_context.h" @@ -257,7 +255,7 @@ void _swsetup_choose_trifuncs( struct gl_context *ctx ) */ if (ctx->Polygon.FrontMode != GL_FILL || ctx->Polygon.BackMode != GL_FILL || - (ctx->Stencil.Enabled && _mesa_stencil_is_two_sided(ctx))) + (ctx->Stencil.Enabled && ctx->Stencil._TestTwoSide)) ind |= SS_UNFILLED_BIT; tnl->Driver.Render.Triangle = tri_tab[ind]; diff --git a/lib/mesa/src/mesa/swrast_setup/ss_tritmp.h b/lib/mesa/src/mesa/swrast_setup/ss_tritmp.h index c88747274..adb77bd32 100644 --- a/lib/mesa/src/mesa/swrast_setup/ss_tritmp.h +++ b/lib/mesa/src/mesa/swrast_setup/ss_tritmp.h @@ -58,7 +58,7 @@ static void TAG(triangle)(struct gl_context *ctx, GLuint e0, GLuint e1, GLuint e if (IND & (SS_TWOSIDE_BIT | SS_UNFILLED_BIT)) { - facing = (cc < 0.0F) ^ _mesa_polygon_get_front_bit(ctx); + facing = (cc < 0.0F) ^ ctx->Polygon._FrontBit; if (IND & SS_UNFILLED_BIT) mode = facing ? ctx->Polygon.BackMode : ctx->Polygon.FrontMode; diff --git a/lib/mesa/src/mesa/tnl_dd/t_dd_tritmp.h b/lib/mesa/src/mesa/tnl_dd/t_dd_tritmp.h index 2294a76a6..2176f1f16 100644 --- a/lib/mesa/src/mesa/tnl_dd/t_dd_tritmp.h +++ b/lib/mesa/src/mesa/tnl_dd/t_dd_tritmp.h @@ -137,7 +137,7 @@ static void TAG(triangle)( struct gl_context *ctx, GLuint e0, GLuint e1, GLuint if (DO_TWOSIDE || DO_UNFILLED || DO_TWOSTENCIL) { - facing = AREA_IS_CCW( cc ) ^ _mesa_polygon_get_front_bit(ctx); + facing = AREA_IS_CCW( cc ) ^ ctx->Polygon._FrontBit; if (DO_UNFILLED) { if (facing) { @@ -362,7 +362,7 @@ static void TAG(quadr)( struct gl_context *ctx, if (DO_TWOSIDE || DO_UNFILLED || DO_TWOSTENCIL) { - facing = AREA_IS_CCW( cc ) ^ _mesa_polygon_get_front_bit(ctx); + facing = AREA_IS_CCW( cc ) ^ ctx->Polygon._FrontBit; if (DO_UNFILLED) { if (facing) { diff --git a/lib/mesa/src/mesa/vbo/vbo_attrib_tmp.h b/lib/mesa/src/mesa/vbo/vbo_attrib_tmp.h index 8328445b2..e73b8fb5f 100644 --- a/lib/mesa/src/mesa/vbo/vbo_attrib_tmp.h +++ b/lib/mesa/src/mesa/vbo/vbo_attrib_tmp.h @@ -25,7 +25,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. **************************************************************************/ -#include "util/format_r11g11b10f.h" +#include "util/u_format_r11g11b10f.h" #include "main/varray.h" @@ -41,8 +41,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. FLOAT_AS_UNION(V2), FLOAT_AS_UNION(V3)) #define ATTRD( A, N, V0, V1, V2, V3 ) \ ATTR_UNION(A, N, GL_DOUBLE, double, V0, V1, V2, V3) -#define ATTRUI64( A, N, V0, V1, V2, V3 ) \ - ATTR_UNION(A, N, GL_UNSIGNED_INT64_ARB, uint64_t, V0, V1, V2, V3) /* float */ @@ -228,7 +226,7 @@ static inline float conv_i2_to_norm_float(const struct gl_context *ctx, int i2) } while(0) #define ATTR_UI_INDEX(ctx, val, type, normalized, index, arg) do { \ - if ((index) == 0 && _mesa_attr_zero_aliases_vertex(ctx)) { \ + if ((index) == 0) { \ ATTR_UI(ctx, val, (type), normalized, 0, (arg)); \ } else if ((index) < MAX_VERTEX_GENERIC_ATTRIBS) { \ ATTR_UI(ctx, val, (type), normalized, VBO_ATTRIB_GENERIC0 + (index), (arg)); \ @@ -248,9 +246,6 @@ static inline float conv_i2_to_norm_float(const struct gl_context *ctx, int i2) #define ATTR3D( A, X, Y, Z ) ATTRD( A, 3, X, Y, Z, 1 ) #define ATTR4D( A, X, Y, Z, W ) ATTRD( A, 4, X, Y, Z, W ) -#define ATTR1UIV64( A, V ) ATTRUI64( A, 1, (V)[0], 0, 0, 0 ) -#define ATTR1UI64( A, X ) ATTRUI64( A, 1, X, 0, 0, 0 ) - static void GLAPIENTRY TAG(Vertex2f)(GLfloat x, GLfloat y) @@ -1307,29 +1302,6 @@ TAG(VertexAttribL4dv)(GLuint index, const GLdouble * v) ERROR(GL_INVALID_VALUE); } -static void GLAPIENTRY -TAG(VertexAttribL1ui64ARB)(GLuint index, GLuint64EXT x) -{ - GET_CURRENT_CONTEXT(ctx); - if (index == 0 && _mesa_attr_zero_aliases_vertex(ctx)) - ATTR1UI64(0, x); - else if (index < MAX_VERTEX_GENERIC_ATTRIBS) - ATTR1UI64(VBO_ATTRIB_GENERIC0 + index, x); - else - ERROR(GL_INVALID_VALUE); -} - -static void GLAPIENTRY -TAG(VertexAttribL1ui64vARB)(GLuint index, const GLuint64EXT *v) -{ - GET_CURRENT_CONTEXT(ctx); - if (index == 0 && _mesa_attr_zero_aliases_vertex(ctx)) - ATTR1UIV64(0, v); - else if (index < MAX_VERTEX_GENERIC_ATTRIBS) - ATTR1UIV64(VBO_ATTRIB_GENERIC0 + index, v); - else - ERROR(GL_INVALID_VALUE); -} #undef ATTR1FV #undef ATTR2FV diff --git a/lib/mesa/src/mesa/vbo/vbo_exec.c b/lib/mesa/src/mesa/vbo/vbo_exec.c index dc26dfd37..eb9035043 100644 --- a/lib/mesa/src/mesa/vbo/vbo_exec.c +++ b/lib/mesa/src/mesa/vbo/vbo_exec.c @@ -26,6 +26,7 @@ */ +#include "main/api_arrayelt.h" #include "main/glheader.h" #include "main/mtypes.h" #include "main/vtxfmt.h" @@ -33,26 +34,26 @@ -void -vbo_exec_init(struct gl_context *ctx) +void vbo_exec_init( struct gl_context *ctx ) { struct vbo_exec_context *exec = &vbo_context(ctx)->exec; exec->ctx = ctx; - /* aelt_context should have been created by the caller */ - assert(ctx->aelt_context); + /* Initialize the arrayelt helper + */ + if (!ctx->aelt_context && + !_ae_create_context( ctx )) + return; - vbo_exec_vtx_init(exec); + vbo_exec_vtx_init( exec ); ctx->Driver.NeedFlush = 0; ctx->Driver.CurrentExecPrimitive = PRIM_OUTSIDE_BEGIN_END; + ctx->Driver.BeginVertices = vbo_exec_BeginVertices; + ctx->Driver.FlushVertices = vbo_exec_FlushVertices; - /* The aelt_context state should still be dirty from its creation */ - assert(_ae_is_state_dirty(ctx)); - - exec->array.recalculate_inputs = GL_TRUE; - exec->eval.recalculate_maps = GL_TRUE; + vbo_exec_invalidate_state( ctx, ~0 ); } @@ -70,6 +71,27 @@ void vbo_exec_destroy( struct gl_context *ctx ) /** + * Really want to install these callbacks to a central facility to be + * invoked according to the state flags. That will have to wait for a + * mesa rework: + */ +void vbo_exec_invalidate_state( struct gl_context *ctx, GLuint new_state ) +{ + struct vbo_context *vbo = vbo_context(ctx); + struct vbo_exec_context *exec = &vbo->exec; + + if (!exec->validating && new_state & (_NEW_PROGRAM|_NEW_ARRAY)) { + exec->array.recalculate_inputs = GL_TRUE; + } + + if (new_state & _NEW_EVAL) + exec->eval.recalculate_maps = GL_TRUE; + + _ae_invalidate_state(ctx, new_state); +} + + +/** * Figure out the number of transform feedback primitives that will be output * considering the drawing mode, number of vertices, and instance count, * assuming that no geometry shading is done and primitive restart is not diff --git a/lib/mesa/src/mesa/vbo/vbo_primitive_restart.c b/lib/mesa/src/mesa/vbo/vbo_primitive_restart.c index 8f04def37..0662c5cd4 100644 --- a/lib/mesa/src/mesa/vbo/vbo_primitive_restart.c +++ b/lib/mesa/src/mesa/vbo/vbo_primitive_restart.c @@ -175,7 +175,7 @@ vbo_sw_primitive_restart(struct gl_context *ctx, GLuint sub_prim_num; GLuint end_index; GLuint sub_end_index; - GLuint restart_index = _mesa_primitive_restart_index(ctx, ib->index_size); + GLuint restart_index = _mesa_primitive_restart_index(ctx, ib->type); struct _mesa_prim temp_prim; struct vbo_context *vbo = vbo_context(ctx); vbo_draw_func draw_prims_func = vbo->draw_prims; @@ -226,7 +226,7 @@ vbo_sw_primitive_restart(struct gl_context *ctx, ptr = ADD_POINTERS(ib->obj->Mappings[MAP_INTERNAL].Pointer, ib->ptr); - sub_prims = find_sub_primitives(ptr, ib->index_size, + sub_prims = find_sub_primitives(ptr, vbo_sizeof_ib_type(ib->type), 0, ib->count, restart_index, &num_sub_prims); diff --git a/lib/mesa/src/mesa/vbo/vbo_save_loopback.c b/lib/mesa/src/mesa/vbo/vbo_save_loopback.c index 1dae91b0b..7410f1875 100644 --- a/lib/mesa/src/mesa/vbo/vbo_save_loopback.c +++ b/lib/mesa/src/mesa/vbo/vbo_save_loopback.c @@ -1,8 +1,8 @@ /************************************************************************** - * + * * Copyright 2005 VMware, Inc. * All Rights Reserved. - * + * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including @@ -10,11 +10,11 @@ * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: - * + * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial portions * of the Software. - * + * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. @@ -22,7 +22,7 @@ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * + * **************************************************************************/ #include <stdio.h> @@ -37,41 +37,33 @@ #include "vbo_context.h" -typedef void (*attr_func)(struct gl_context *ctx, GLint index, const GLfloat *); +typedef void (*attr_func)( struct gl_context *ctx, GLint target, const GLfloat * ); /* This file makes heavy use of the aliasing of NV vertex attributes * with the legacy attributes, and also with ARB and Material * attributes as currently implemented. */ -static void -VertexAttrib1fvNV(struct gl_context *ctx, GLint index, const GLfloat *v) +static void VertexAttrib1fvNV(struct gl_context *ctx, GLint target, const GLfloat *v) { - CALL_VertexAttrib1fvNV(ctx->Exec, (index, v)); + CALL_VertexAttrib1fvNV(ctx->Exec, (target, v)); } - -static void -VertexAttrib2fvNV(struct gl_context *ctx, GLint index, const GLfloat *v) +static void VertexAttrib2fvNV(struct gl_context *ctx, GLint target, const GLfloat *v) { - CALL_VertexAttrib2fvNV(ctx->Exec, (index, v)); + CALL_VertexAttrib2fvNV(ctx->Exec, (target, v)); } - -static void -VertexAttrib3fvNV(struct gl_context *ctx, GLint index, const GLfloat *v) +static void VertexAttrib3fvNV(struct gl_context *ctx, GLint target, const GLfloat *v) { - CALL_VertexAttrib3fvNV(ctx->Exec, (index, v)); + CALL_VertexAttrib3fvNV(ctx->Exec, (target, v)); } - -static void -VertexAttrib4fvNV(struct gl_context *ctx, GLint index, const GLfloat *v) +static void VertexAttrib4fvNV(struct gl_context *ctx, GLint target, const GLfloat *v) { - CALL_VertexAttrib4fvNV(ctx->Exec, (index, v)); + CALL_VertexAttrib4fvNV(ctx->Exec, (target, v)); } - static attr_func vert_attrfunc[4] = { VertexAttrib1fvNV, VertexAttrib2fvNV, @@ -79,26 +71,22 @@ static attr_func vert_attrfunc[4] = { VertexAttrib4fvNV }; - struct loopback_attr { - GLint index; + GLint target; GLint sz; attr_func func; }; - -/** - * Don't emit ends and begins on wrapped primitives. Don't replay +/* Don't emit ends and begins on wrapped primitives. Don't replay * wrapped vertices. If we get here, it's probably because the * precalculated wrapping is wrong. */ -static void -loopback_prim(struct gl_context *ctx, - const GLfloat *buffer, - const struct _mesa_prim *prim, - GLuint wrap_count, - GLuint vertex_size, - const struct loopback_attr *la, GLuint nr) +static void loopback_prim( struct gl_context *ctx, + const GLfloat *buffer, + const struct _mesa_prim *prim, + GLuint wrap_count, + GLuint vertex_size, + const struct loopback_attr *la, GLuint nr ) { GLint start = prim->start; GLint end = start + prim->count; @@ -108,13 +96,14 @@ loopback_prim(struct gl_context *ctx, if (0) printf("loopback prim %s(%s,%s) verts %d..%d\n", - _mesa_lookup_prim_by_nr(prim->mode), - prim->begin ? "begin" : "..", - prim->end ? "end" : "..", - start, end); + _mesa_lookup_prim_by_nr(prim->mode), + prim->begin ? "begin" : "..", + prim->end ? "end" : "..", + start, + end); if (prim->begin) { - CALL_Begin(GET_DISPATCH(), (prim->mode)); + CALL_Begin(GET_DISPATCH(), ( prim->mode )); } else { assert(start == 0); @@ -123,17 +112,17 @@ loopback_prim(struct gl_context *ctx, data = buffer + start * vertex_size; - for (j = start; j < end; j++) { + for (j = start ; j < end ; j++) { const GLfloat *tmp = data + la[0].sz; - for (k = 1; k < nr; k++) { - la[k].func(ctx, la[k].index, tmp); - tmp += la[k].sz; + for (k = 1 ; k < nr ; k++) { + la[k].func( ctx, la[k].target, tmp ); + tmp += la[k].sz; } - + /* Fire the vertex */ - la[0].func(ctx, VBO_ATTRIB_POS, data); + la[0].func( ctx, VBO_ATTRIB_POS, data ); data = tmp; } @@ -142,16 +131,13 @@ loopback_prim(struct gl_context *ctx, } } - -/** - * Primitives generated by DrawArrays/DrawElements/Rectf may be +/* Primitives generated by DrawArrays/DrawElements/Rectf may be * caught here. If there is no primitive in progress, execute them * normally, otherwise need to track and discard the generated * primitives. */ -static void -loopback_weak_prim(struct gl_context *ctx, - const struct _mesa_prim *prim) +static void loopback_weak_prim( struct gl_context *ctx, + const struct _mesa_prim *prim ) { /* Use the prim_weak flag to ensure that if this primitive * wraps, we don't mistake future vertex_lists for part of the @@ -167,14 +153,13 @@ loopback_weak_prim(struct gl_context *ctx, } -void -vbo_loopback_vertex_list(struct gl_context *ctx, - const GLfloat *buffer, - const GLubyte *attrsz, - const struct _mesa_prim *prim, - GLuint prim_count, - GLuint wrap_count, - GLuint vertex_size) +void vbo_loopback_vertex_list( struct gl_context *ctx, + const GLfloat *buffer, + const GLubyte *attrsz, + const struct _mesa_prim *prim, + GLuint prim_count, + GLuint wrap_count, + GLuint vertex_size) { struct loopback_attr la[VBO_ATTRIB_MAX]; GLuint i, nr = 0; @@ -182,21 +167,24 @@ vbo_loopback_vertex_list(struct gl_context *ctx, /* All Legacy, NV, ARB and Material attributes are routed through * the NV attributes entrypoints: */ - for (i = 0; i < VBO_ATTRIB_MAX; i++) { + for (i = 0 ; i < VBO_ATTRIB_MAX ; i++) { if (attrsz[i]) { - la[nr].index = i; - la[nr].sz = attrsz[i]; - la[nr].func = vert_attrfunc[attrsz[i]-1]; - nr++; + la[nr].target = i; + la[nr].sz = attrsz[i]; + la[nr].func = vert_attrfunc[attrsz[i]-1]; + nr++; } } - for (i = 0; i < prim_count; i++) { + for (i = 0 ; i < prim_count ; i++) { if ((prim[i].mode & VBO_SAVE_PRIM_WEAK) && - _mesa_inside_begin_end(ctx)) { - loopback_weak_prim(ctx, &prim[i]); - } else { - loopback_prim(ctx, buffer, &prim[i], wrap_count, vertex_size, la, nr); + _mesa_inside_begin_end(ctx)) + { + loopback_weak_prim( ctx, &prim[i] ); + } + else + { + loopback_prim( ctx, buffer, &prim[i], wrap_count, vertex_size, la, nr ); } } } diff --git a/lib/mesa/src/mesa/x86/mmx_blend.S b/lib/mesa/src/mesa/x86/mmx_blend.S index df736cdaa..eeaf43ea9 100644 --- a/lib/mesa/src/mesa/x86/mmx_blend.S +++ b/lib/mesa/src/mesa/x86/mmx_blend.S @@ -235,7 +235,7 @@ TWO(PUNPCKHWD ( MA2, MA2 )) /* pa2 | pa2 | | TWO(PUNPCKHDQ ( MA2, MA2 )) /* pa2 | pa2 | pa2 | pa2 */ #define GMB_PACK( MS1, MS2 ) \ - PACKUSWB ( MS2, MS1 ) /* sa2 | sb2 | sg2 | sr2 | sa1 | sb1 | sg1 | sr1 */ ; + PACKUSWB ( MS2, MS1 ) /* sa2 | sb2 | sg2 | sr2 | sa1 | sb1 | sg1 | sr1 */ ;\ #define GMB_STORE(rgba, MSS ) \ ONE(MOVD ( MSS, REGIND(rgba) )) /* | | | | sa1 | sb1 | sg1 | sr1 */ ;\ diff --git a/lib/mesa/src/mesa/x86/read_rgba_span_x86.S b/lib/mesa/src/mesa/x86/read_rgba_span_x86.S index 0b94f024e..5def1f859 100644 --- a/lib/mesa/src/mesa/x86/read_rgba_span_x86.S +++ b/lib/mesa/src/mesa/x86/read_rgba_span_x86.S @@ -65,7 +65,7 @@ movl (%ebx), %eax ; \ bswap %eax /* ARGB -> BGRA */ ; \ rorl $8, %eax /* BGRA -> ABGR */ ; \ - movl %eax, (%ecx) /* ABGR -> R, G, B, A */ ; + movl %eax, (%ecx) /* ABGR -> R, G, B, A */ ; \ /** diff --git a/lib/mesa/src/util/hash_table.c b/lib/mesa/src/util/hash_table.c index a9d442d68..3247593c1 100644 --- a/lib/mesa/src/util/hash_table.c +++ b/lib/mesa/src/util/hash_table.c @@ -47,7 +47,6 @@ #include "hash_table.h" #include "ralloc.h" #include "macros.h" -#include "main/hash.h" static const uint32_t deleted_key_value; @@ -164,32 +163,6 @@ _mesa_hash_table_destroy(struct hash_table *ht, ralloc_free(ht); } -/** - * Deletes all entries of the given hash table without deleting the table - * itself or changing its structure. - * - * If delete_function is passed, it gets called on each entry present. - */ -void -_mesa_hash_table_clear(struct hash_table *ht, - void (*delete_function)(struct hash_entry *entry)) -{ - struct hash_entry *entry; - - for (entry = ht->table; entry != ht->table + ht->size; entry++) { - if (entry->key == NULL) - continue; - - if (delete_function != NULL && entry->key != ht->deleted_key) - delete_function(entry); - - entry->key = NULL; - } - - ht->entries = 0; - ht->deleted_entries = 0; -} - /** Sets the value of the key pointer used for deleted entries in the table. * * The assumption is that usually keys are actual pointers, so we use a @@ -296,8 +269,6 @@ hash_table_insert(struct hash_table *ht, uint32_t hash, uint32_t start_hash_address, hash_address; struct hash_entry *available_entry = NULL; - assert(key != NULL); - if (ht->entries >= ht->max_entries) { _mesa_hash_table_rehash(ht, ht->size_index + 1); } else if (ht->deleted_entries + ht->entries >= ht->max_entries) { @@ -329,8 +300,7 @@ hash_table_insert(struct hash_table *ht, uint32_t hash, * required to avoid memory leaks, perform a search * before inserting. */ - if (!entry_is_deleted(ht, entry) && - entry->hash == hash && + if (entry->hash == hash && ht->key_equals_function(key, entry->key)) { entry->key = key; entry->data = data; @@ -503,149 +473,3 @@ _mesa_key_pointer_equal(const void *a, const void *b) { return a == b; } - -/** - * Hash table wrapper which supports 64-bit keys. - * - * TODO: unify all hash table implementations. - */ - -struct hash_key_u64 { - uint64_t value; -}; - -static uint32_t -key_u64_hash(const void *key) -{ - return _mesa_hash_data(key, sizeof(struct hash_key_u64)); -} - -static bool -key_u64_equals(const void *a, const void *b) -{ - const struct hash_key_u64 *aa = a; - const struct hash_key_u64 *bb = b; - - return aa->value == bb->value; -} - -struct hash_table_u64 * -_mesa_hash_table_u64_create(void *mem_ctx) -{ - struct hash_table_u64 *ht; - - ht = CALLOC_STRUCT(hash_table_u64); - if (!ht) - return NULL; - - if (sizeof(void *) == 8) { - ht->table = _mesa_hash_table_create(mem_ctx, _mesa_hash_pointer, - _mesa_key_pointer_equal); - } else { - ht->table = _mesa_hash_table_create(mem_ctx, key_u64_hash, - key_u64_equals); - } - - if (ht->table) - _mesa_hash_table_set_deleted_key(ht->table, uint_key(DELETED_KEY_VALUE)); - - return ht; -} - -void -_mesa_hash_table_u64_destroy(struct hash_table_u64 *ht, - void (*delete_function)(struct hash_entry *entry)) -{ - if (!ht) - return; - - if (ht->deleted_key_data) { - if (delete_function) { - struct hash_table *table = ht->table; - struct hash_entry deleted_entry; - - /* Create a fake entry for the delete function. */ - deleted_entry.hash = table->key_hash_function(table->deleted_key); - deleted_entry.key = table->deleted_key; - deleted_entry.data = ht->deleted_key_data; - - delete_function(&deleted_entry); - } - ht->deleted_key_data = NULL; - } - - _mesa_hash_table_destroy(ht->table, delete_function); - free(ht); -} - -void -_mesa_hash_table_u64_insert(struct hash_table_u64 *ht, uint64_t key, - void *data) -{ - if (key == DELETED_KEY_VALUE) { - ht->deleted_key_data = data; - return; - } - - if (sizeof(void *) == 8) { - _mesa_hash_table_insert(ht->table, (void *)key, data); - } else { - struct hash_key_u64 *_key = CALLOC_STRUCT(hash_key_u64); - - if (!_key) - return; - _key->value = key; - - _mesa_hash_table_insert(ht->table, _key, data); - } -} - -static struct hash_entry * -hash_table_u64_search(struct hash_table_u64 *ht, uint64_t key) -{ - if (sizeof(void *) == 8) { - return _mesa_hash_table_search(ht->table, (void *)key); - } else { - struct hash_key_u64 _key = { .value = key }; - return _mesa_hash_table_search(ht->table, &_key); - } -} - -void * -_mesa_hash_table_u64_search(struct hash_table_u64 *ht, uint64_t key) -{ - struct hash_entry *entry; - - if (key == DELETED_KEY_VALUE) - return ht->deleted_key_data; - - entry = hash_table_u64_search(ht, key); - if (!entry) - return NULL; - - return entry->data; -} - -void -_mesa_hash_table_u64_remove(struct hash_table_u64 *ht, uint64_t key) -{ - struct hash_entry *entry; - - if (key == DELETED_KEY_VALUE) { - ht->deleted_key_data = NULL; - return; - } - - entry = hash_table_u64_search(ht, key); - if (!entry) - return; - - if (sizeof(void *) == 8) { - _mesa_hash_table_remove(ht->table, entry); - } else { - struct hash_key *_key = (struct hash_key *)entry->key; - - _mesa_hash_table_remove(ht->table, entry); - free(_key); - } -} diff --git a/lib/mesa/src/util/hash_table.h b/lib/mesa/src/util/hash_table.h index cf939130f..eb9dbc333 100644 --- a/lib/mesa/src/util/hash_table.h +++ b/lib/mesa/src/util/hash_table.h @@ -64,16 +64,9 @@ _mesa_hash_table_create(void *mem_ctx, const void *b)); void _mesa_hash_table_destroy(struct hash_table *ht, void (*delete_function)(struct hash_entry *entry)); -void _mesa_hash_table_clear(struct hash_table *ht, - void (*delete_function)(struct hash_entry *entry)); void _mesa_hash_table_set_deleted_key(struct hash_table *ht, const void *deleted_key); -static inline uint32_t _mesa_hash_table_num_entries(struct hash_table *ht) -{ - return ht->entries; -} - struct hash_entry * _mesa_hash_table_insert(struct hash_table *ht, const void *key, void *data); struct hash_entry * @@ -105,13 +98,10 @@ static inline uint32_t _mesa_key_hash_string(const void *key) static inline uint32_t _mesa_hash_pointer(const void *pointer) { - uintptr_t num = (uintptr_t) pointer; - return (uint32_t) ((num >> 2) ^ (num >> 6) ^ (num >> 10) ^ (num >> 14)); + return _mesa_hash_data(&pointer, sizeof(pointer)); } -enum { - _mesa_fnv32_1a_offset_bias = 2166136261u, -}; +static const uint32_t _mesa_fnv32_1a_offset_bias = 2166136261u; static inline uint32_t _mesa_fnv32_1a_accumulate_block(uint32_t hash, const void *data, size_t size) @@ -140,44 +130,6 @@ _mesa_fnv32_1a_accumulate_block(uint32_t hash, const void *data, size_t size) entry != NULL; \ entry = _mesa_hash_table_next_entry(ht, entry)) -static inline void -hash_table_call_foreach(struct hash_table *ht, - void (*callback)(const void *key, - void *data, - void *closure), - void *closure) -{ - struct hash_entry *entry; - - hash_table_foreach(ht, entry) - callback(entry->key, entry->data, closure); -} - -/** - * Hash table wrapper which supports 64-bit keys. - */ -struct hash_table_u64 { - struct hash_table *table; - void *deleted_key_data; -}; - -struct hash_table_u64 * -_mesa_hash_table_u64_create(void *mem_ctx); - -void -_mesa_hash_table_u64_destroy(struct hash_table_u64 *ht, - void (*delete_function)(struct hash_entry *entry)); - -void -_mesa_hash_table_u64_insert(struct hash_table_u64 *ht, uint64_t key, - void *data); - -void * -_mesa_hash_table_u64_search(struct hash_table_u64 *ht, uint64_t key); - -void -_mesa_hash_table_u64_remove(struct hash_table_u64 *ht, uint64_t key); - #ifdef __cplusplus } /* extern C */ #endif diff --git a/lib/mesa/src/util/set.c b/lib/mesa/src/util/set.c index 392506639..f01f8699a 100644 --- a/lib/mesa/src/util/set.c +++ b/lib/mesa/src/util/set.c @@ -45,8 +45,8 @@ * free to avoid exponential performance degradation as the hash table fills */ -static const uint32_t deleted_key_value; -static const void *deleted_key = &deleted_key_value; +uint32_t deleted_key_value; +const void *deleted_key = &deleted_key_value; static const struct { uint32_t max_entries, size, rehash; @@ -282,8 +282,7 @@ set_add(struct set *ht, uint32_t hash, const void *key) * If freeing of old keys is required to avoid memory leaks, * perform a search before inserting. */ - if (!entry_is_deleted(entry) && - entry->hash == hash && + if (entry->hash == hash && ht->key_equals_function(key, entry->key)) { entry->key = key; return entry; diff --git a/lib/mesa/src/util/strtod.c b/lib/mesa/src/util/strtod.c index de695d64b..ea7d395e2 100644 --- a/lib/mesa/src/util/strtod.c +++ b/lib/mesa/src/util/strtod.c @@ -26,13 +26,13 @@ #include <stdlib.h> -#if defined(_GNU_SOURCE) && defined(HAVE_STRTOD_L) +#ifdef _GNU_SOURCE #include <locale.h> #ifdef HAVE_XLOCALE_H #include <xlocale.h> -#endif static locale_t loc; #endif +#endif #include "strtod.h" @@ -40,7 +40,7 @@ static locale_t loc; void _mesa_locale_init(void) { -#if defined(_GNU_SOURCE) && defined(HAVE_STRTOD_L) +#if defined(_GNU_SOURCE) && defined(HAVE_XLOCALE_H) loc = newlocale(LC_CTYPE_MASK, "C", NULL); #endif } @@ -48,7 +48,7 @@ _mesa_locale_init(void) void _mesa_locale_fini(void) { -#if defined(_GNU_SOURCE) && defined(HAVE_STRTOD_L) +#if defined(_GNU_SOURCE) && defined(HAVE_XLOCALE_H) freelocale(loc); #endif } @@ -60,7 +60,7 @@ _mesa_locale_fini(void) double _mesa_strtod(const char *s, char **end) { -#if defined(_GNU_SOURCE) && defined(HAVE_STRTOD_L) +#if defined(_GNU_SOURCE) && defined(HAVE_XLOCALE_H) return strtod_l(s, end, loc); #else return strtod(s, end); @@ -75,7 +75,7 @@ _mesa_strtod(const char *s, char **end) float _mesa_strtof(const char *s, char **end) { -#if defined(_GNU_SOURCE) && defined(HAVE_STRTOD_L) +#if defined(_GNU_SOURCE) && defined(HAVE_XLOCALE_H) return strtof_l(s, end, loc); #elif defined(HAVE_STRTOF) return strtof(s, end); |